假设D3、D2、D1、D0全为1,则BS3、BS2、BS1、BS0全部与“1”端相连。根据电流定律,有: 由于开关 BS3 ~ BS0 的状态是受要转换的二进制数 D3、D2、D1、D0 控制的,并不一定全是“1”。因因此,可以得到通式:
对于 n 位 D/A 转换器,它的输出电压VOUT与输入二进制数B( Dn-1~ D0) 的关系式可写成: 考虑到放大器反相端为虚地,故: 选取 Rfb = R ,可以得到: 对于 n 位 D/A 转换器,它的输出电压VOUT与输入二进制数B( Dn-1~ D0) 的关系式可写成: 结论:由上述推导可见,输出电压除了与输入的二进制数有关,还与运算放大器的反馈电阻 Rfb以及基准电压VREF有关。
- + 3 A 2 1 R S N I V G 负载 (外接) 外接地 T U O (a) 经典的前置放大器
138 为3 线-8 线译码器 138 为3 线-8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其主要电特性的典型值如下: 当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。 利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。
接口程序如下: MOV BX,BUFF ;置采样数据区首址 MOV CX,08H ;8路输入 START: OUT PA,AL ;启动A/D转换 REOC: IN AL,PB ;读EOC RCR AL,01 ;判断EOC JNC REOC ;若EOC=0,继续查询 IN AL,PA ;若EOC=1,读A/D转换数 MOV [BX],AL ;存A/D转换数 INC BX ;存A/D转换数地址加1 INC PA ;接口地址加1 LOOP START ;循环
设8路D/A转换的8个输出数据存放在内存数据段BUF0~BUF7单元中,主过程已装填DS, 8 片DAC0832的通道口地址为38H~3FH,分别存放在从CH0开始的8个连续单元中,该D/A转换模板的接口子程序: DOUT PROC NEAR MOV CX,8 MOV BX,OFFSET BUF0 NEXT: MOV AL,[BX] OUT CH0,AL INC CH0 INC BX LOOP NEXT RET DOUT ENDP
DAC0832性能 一个8位D/A转换器 电流输出方式 稳定时间为1μs 采用20脚双立直插式封装
DAC0832的原理框图及引脚如图4-3所示。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。8 位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存,由LE1加以控制;8位DAC寄存器用于存放待转换的数字量,由加LE2以控制;8位D/A转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制2个寄存器的选通或锁存状态。
DAC0832管脚功能 DI0~DI7:数据输入线,其中DI0为最低有效位LSB ,DI7为 最高有效位MSB。 CS:片选信号,输入线,低电平有效。 WR1:写信号1,输入线,低电平有效。 ILE:输入允许锁存信号,输入线,高电平有效 当ILE、和CS,WR1同时有效时,8位输入寄存器端为高电平"1",此时寄存器的输出端Q跟随输入端D的电平变化;反之,当端为低电平"0"时,原D 端输入数据被锁存于Q端,在此期间D端电平的变化不影响Q端。
XFER(Transfer Control Signal):传送控制信号,输入线, 低电平有效。 IOUT1:DAC电流输出端1,一般作为运算放大器差动输入信号之一。 IOUT2:DAC电流输出端2,一般作为运算放大器另一个差动输入信号。 Rfb:固化在芯片内的反馈电阻连接端,用于连接运算放大器的输出端。 VREF:基准电压源端,输入线,10 VDC~ 10 VDC。 VCC:工作电压源端,输入线,5 VDC ~ 15 VDC。
当WR2和XFER同时有效时,8位DAC寄存器端为高电平“1”,此时DAC寄存器的输出端Q跟随输入端D也就是输入寄存器Q端的电平变化;反之,当端为低电平“0”时,第一级8位输入寄存器Q端的状态则锁存到第二级8位DAC寄存器中,以便第三级8位DAC转换器进行D/A转换。 一般情况下为了简化接口电路,可以把和直接接地,使第二级8位DAC寄存器的输入端到输出端直通,只有第一级8位输入寄存器置成可选通、可锁存的单缓冲输入方式。 特殊情况下可采用双缓冲输入方式,即把两个寄存器都分别接成受控方式。
12位DAC1210芯片 DAC1210工作原理 DAC1210内部有三个寄存器: 一个8位输入寄存器,用于存放12位数字量中的高8位DI11~DI4;一个4位输入寄存器,用于存放12位数字量中的低4位DI3 ~DI0; 一个12位DAC寄存器,存放上述两个输入寄存器送来的12位数字量; 12位D/A转换器用于完成12位数字量的转换。 由与门、非与门组成的输入控制电路来控制3个寄存器的选通或锁存状态。其中引脚(片选信号、低电平有效)、(写信号、低电平有效)和BYTE1/(字节控制信号)的组合, 用来控制 8 位输入寄存器和 4 位输入寄存器。
当CS、WR1为低电平“0”,BYTE1/为高电平“1”时,与门的输出LE1、LE2为“1”,选通 8 位和 4 位两个输入寄存器,将要转换的12位数据全部送入寄存器;当BYTE1/为低电平“0”时,LE1为“0”,8位输入寄存器锁存刚传送的 8 位数据,而LE2仍为“1”,4 位输入寄存器仍为选通,新的低 4 位数据将刷新刚传送的 4 位数据。因此,在与计算机接口电路中,计算机必须先送高 8 位后送低 4 位。XFER(传送控制信号、低电平有效)和WR2(写信号、低电平有效)用来控制 12 位DAC寄存器,当XFER和WR2同为低电平“0”时,与门输出LE3为“1”,12 位数据全部送入DAC寄存器,当XFER和WR2有一个为高电平“1”时,与门输出LE3即为“0”,则12位DAC寄存器锁存住数据使12位D/A转换器开始数摸转换。
4.2.1 DAC0832接口电路
由于DAC0832内部有输入寄存器,所以它的数据总线可直接与主机的数据总线相连,图4-5为DAC0832与PC总线的单缓冲接口电路,它是由DAC0832转换芯片、运算放大器以及74LS138译码器和门电路构成的的地址译码电路组成。图中,0832内的DAC寄存器控制端的和直接接地,使DAC寄存器的输入到输出始终直通;而输入寄存器的控制端分别受地址译码信号与输入输出指令控制,即PC的地址线A9~A0经138译码器和门电路产生接口地址信号作为DAC0832的片选信号,输入输出写信号作为DAC0832的写信号。
D/A转换接口程序: MOV DX,220H //口地址如220H送入DX MOV AL,[DATA] //被转换的数据如DATA送入累加器AL OUT DX,AL //送入D/A转换器进行转换
DAC1210接口电路
图2-6是12位D/A转换器DAC1210与PC总线的一种接口电路,它是由DAC1210转换芯片、运算放大器以及地址译码电路组成。与8位DAC0832接口电路不同的是,除了数据总线D7~D0与DAC1210高8位DI11 ~ DI4直接相连,D3~D0还要与DAC1210低4位DI3~DI0复用,因而控制电路也略为复杂。 图中,CS、WR1和BYTE1/组合,用来依次控制8位输入寄存器(LE1)和4位输入寄存器(LE2)的选通与锁存,XFER和WR2用来控制DAC寄存器(LE3)的选通与锁存,LOW与WR1、WR2连接,用来在执行输出指令时获得低电平有效,译码器的两条输出线Y0、Y2分别连到CS和XFER,一条地址线A0连到BYTE1/BYTE2,从而形成三个口地址:低4位输入寄存器为380H,高8位输入寄存器为381H,12位DAC寄存器为384H。
在软件设计中,为了实现8位数据线D0~D7传送12位被转换数,主机须分两次传送被转换数。首先将被转换数的高8位传给8位输入寄存器DI11~DI4,再将低4位传给4位输入寄存器DI3~DI0,然后再打开DAC寄存器,把12 位数据送到12位D /A转换器去转换。当输出指令执行完后,DAC寄存器又自动处于锁存状态以保持数模转换的输出不变。设12位被转换数的高8位存放在DATA单元中,低4位存放在DATA+1单元中。
转换程序 DAC: MOV DX,0381H MOV AL,[DATA] OUT DX,AL ;送高8位数据 DEC DX
普通运放V/I变换电路 0~10 mA的输出 + - V in 0~10 A T 1 2 I f s R 3 4 5 6 L 图4-9为0~10 V/0~10 mA的变换电路,由运放A和三极管T1、T2组成,R1 和 R2是输入电阻,Rf 是反馈电阻,RL是负载的等效电阻。输入电压Vin 经输入电阻进入运算放大器A,放大后进入三极管T1、T2。由于T2射极接有反馈电阻R f,得到反馈电压Vf加至输入端,形成运放A的差动输入信号。该变换电路由于具有较强的电流反馈,所以有较好的恒流性能。
输入电压 Vin 和输出电流 Io 之间关系如下: 若 R3、R4>>Rf、RL,可以认为 Io 全部流经 Rf,由此可得: V-= Vin·R4/(R1+R4)+Io·RL·R1 /(R1+R4) V+= Io(Rf+RL)·R2 /(R2+R3) 对于运放,有V- ≈ V+,则 Vin·R4/(R1+R4)+Io·RL·R1 /(R1+R4)= Io(Rf+RL)·R2 /(R2+R3) 若取R1 = R2 ,R3 = R4,则由上式整理可得 Io = Vin·R3 /(R1·Rf ) 可以看出,输出电流 Io 和输人电压 Vin 呈线性对应的单值函数关系。 R3 /(R1·Rf)为一常教,与其他参数无关。 若取Vin= 0~10 V,R1 = R2 = 100 kΩ,R3 = R4 =20 kΩ,Rf = 200 Ω,则输出电流Io = 0 ~10 mA。
逐位逼近式A/D转换原理 一个n位A/D转换器是由n位寄存器、n位D/A转换器、运算比较器、控制逻辑电路、输出锁存器等五部分组成。现以4位A/D转换器把模拟量9转换为二进制数1001为例,说明逐位逼近式A/D转换器的工作原理。如图3-10所示。
图3-10 逐位逼近式A/D转换原理图
当启动信号作用后,时钟信号在控制逻辑作用下, 首先使寄存器的最高位D3 1,其余为0, 此数字量1000经D/A转换器转换成模拟电压即VO 8,送到比较器输入端与被转换的模拟量VIN = 9进行比较,控制逻辑根据比较器的输出进行判断。当VIN VO,则保留D3 = 1; 再对下一位D2进行比较,同样先使D2 1,与上一位D3位一起即1100进入D/A转换器,转换为VO 12再进入比较器,与VIN 9比较,因VIN VO,则使D2 0; 再下一位D1位也是如此,D1 1即1010,经D/A转换为VO = 10,再与VIN 9比较,因VIN VO,则使D1 0; 最后一位D0 1-即1001经D/A转换为VO 9,再与VIN 9比较,因VIN VO,保留D0 1。比较完毕,寄存器中的数字量1001即为模拟量9的转换结果,存在输出锁存器中等待输出。
一个 n 位A/D转换器的模数转换表达式是 (3-4) 式中 n —— n位A/D转换器; VR+、VR- ——基准电压源的正、负输入; VIN——要转换的输入模拟量; B——转换后的输出数字量。 即当基准电压源确定之后,n位A/D转换器的输出数字量B与要转换的输入模拟量VIN呈正比。
2.双积分式A/D转换原理
双积分A/D转换原理 1电路构成:开关 基准电源 积分器 比较器 控制逻辑电路 时钟计数器 A 按下开关Vin 对C充电 正向积分 B 充电时间到,开关接基准电源(与Vin极性相反)反向放电,反向计分 C 放点完毕 输出信号 计数值 反应输入电压
电压/频率式A/D转换原理 电荷平衡转换法 积分器 电压比较器 单稳态定时器 当A1输出电压为0时,A2 起作用,输出跳变,暂态时间为T,C被反向充电,充电电流为IR-Vi /Ri,电压上升;当定时T1时间结束,定时器恢复稳态,使开关S断开,反向充电停止。 开关S断开后,正输入电压Vi开始对电容C正向充电,当Vo=0时,比较器A2输出再次跳变,又使单稳态定时器产生T1时间的定时脉冲而控制开关S再次闭合,A1再次反向充电,同时Vfo端又输出高电平。如此反复下去。