290 likes | 451 Views
8.4 模 / 数 (A/D) 与数 / 模 (D/A) 转换技术及其接口. 8.4.1 D/A 转换接口 D/A 转换器的作用是将二进制的数字量转换为相应的模拟量。 D/A 转换器的主要部件是电阻开关网络,其主要网络形式有权电阻网络和 R–2R 梯形电阻网络,其工作原理这里不作介绍。
E N D
8.4 模/数(A/D)与数/模(D/A)转换技术及其接口 8.4.1 D/A转换接口 D/A转换器的作用是将二进制的数字量转换为相应的模拟量。D/A转换器的主要部件是电阻开关网络,其主要网络形式有权电阻网络和R–2R梯形电阻网络,其工作原理这里不作介绍。 集成D/A芯片类型很多,按生产工艺分有双极型、MOS型等;按字长分有8位、10位、12位等;按输出形式分有电压型和电流型。另外,不同生产厂家的产品,其型号各不相同。例如,美国国家半导体公司的D/A芯片为DAC系列,如DAC0832等;美国模拟器件公司的D/A芯片为AD系列,如AD558等。使用时可参阅各公司提供的使用手册。
1 . DAC0832 DAC0832是美国国家半导体公司采用CMOS工艺生产的8位D/A转换集成电路芯片。它具有与微机连接简单、转换控制方便、价格低廉等特点,因而得到了广泛的应用。 1) DAC0832的结构与引脚 DAC0832的逻辑结构框图如图8.45所示。片内有R–2RT型电阻网络,用于对参考电压提供的两条回路分别产生两个电流信号IOUT1和IOUT2。DAC0832采用8位输入寄存器和8位DAC寄存器二次缓冲方式,这样可以在D/A输出的同时,送入下一个数据,以便提高转换速度。每个输入数据为8位,可以直接与微机的数据总线相连,其逻辑电平与TTL电平兼容。
DI7DI0——D/A转换器的数字量输入引脚。其中DI0为最低位,DI7为最高位。 CS——片选信号输入端,低电平有效。 WR1——输入寄存器的写信号,低电平有效。 ILE——输入寄存器选通信号,高电平有效。ILE信号和CS、WR1共同控制选通输入寄存器。当CS、WR1均为低电平,而ILE为高电平时,LE1=0,输入数据被送至8位输入寄存器的输出端;当上述三个控制信号任一个无效时,LE1变高,输入寄存器将数据锁存,输出端呈保持状态。
XFER——从输入寄存器向DAC寄存器传送D/A转换数据的控制信号,低电平有效。 WR2——DAC寄存器的写信号,低电平有效。当XFER和WR2同时有效时,输入寄存器的数据装入DAC寄存器,并同时启动一次D/A转换。 VCC——芯片电源,其值可在+5+15 V之间选取,典型值取+15 V。 AGND——模拟信号地。 DGND——数字信号地。 RFB——内部反馈电阻引脚,用来外接D/A转换器输出增益调整电位器。
VREF——D/A转换器的基准电压,其范围可在−10+10 V内选定。该端连至片内的R–2RT型电阻网络,由外部提供一个准确的参考电压。该电压精度直接影响着D/A转换精度。 IOUT1——D/A转换器输出电流1,当输入全1时,输出电流最大,约为 ;当输入为全0时,输出电流最小,即为0。 IOUT2——D/A转换器输出电流2,它与IOUT1有如下关系: IOUT1+IOUT2=常数 D/A转换没有形式上的启动信号。实际上将数据写入第二级寄存器的控制信号就是D/A转换器的启动信号。另外,它也没有转换结束信号,D/A转换的过程很快,一般还不到一条指令的执行时间。
2) DAC0832的工作方式 DAC0832内部有两个寄存器,能实现三种工作方式:双缓冲、单缓冲和直通方式。 双缓冲工作方式是指两个寄存器分别受到控制。当ILE、CS和WR1信号均有效时,8位数字量被写入输入寄存器,此时并不进行A/D转换。当WR2和XFER信号均有效时,原来存放在输入寄存器中的数据被写入DAC寄存器,并进入D/A转换器进行D/A转换。在一次转换完成后到下一次转换开始之前,由于寄存器的锁存作用,8位D/A转换器的输入数据保持恒定,因此D/A转换的输出也保持恒定。
单缓冲工作方式是指只有一个寄存器受到控制。这时将另一个寄存器的有关控制信号预先设置成有效,使之开通,或者将两个寄存器的控制信号连在一起,两个寄存器作为一个来使用。单缓冲工作方式是指只有一个寄存器受到控制。这时将另一个寄存器的有关控制信号预先设置成有效,使之开通,或者将两个寄存器的控制信号连在一起,两个寄存器作为一个来使用。 直通工作方式是指两个寄存器的有关控制信号都预先置为有效,两个寄存器都开通。只要数字量送到数据输入端,就立即进入D/A转换器进行转换。这种方式应用较少。
3) 电压输出电路的连接 DAC0832以电流形式输出转换结果,若要得到电压形式的输出,需要外加I/V转换电路,常采用运算放大器实现I/V转换。图8.47给出了DAC0832的电压输出电路。 对于单极性输出电路,输出电压为: 式中D为输入数字量的十进制数。因为转换结果IOUT1接运算放大器的反向端,所以式中有一个负号。若VREF=+5 V,当D=0255(00HFFH)时,VOUT=-(04.98) V。
图8.47 DAC0832的电压输出电路 (a) 单极性输出;(b) 双极性输出
通过调整运算放大器的调零电位器,可以对D/A芯片进行零点补偿。通过调节外接于反馈回路的电位器RP1,可以调整满量程。通过调整运算放大器的调零电位器,可以对D/A芯片进行零点补偿。通过调节外接于反馈回路的电位器RP1,可以调整满量程。 对于双极性输出电路,输出电压的表达式为: 若VREF=+5 V,当D=0时,VOUT1=0,VOUT=-5 V;当D=128(80H)时,VOUT1=-2.5 V,VOUT=0;当D=255(FFH)时,VOUT1=-5.98 V,VOUT = 4.96 V。
4) DAC0832的主要技术指标 • 输入:8位数字量。内有锁存器,数字量输入端可直接与CPU的数据总线相连。 • 输入方式:双缓冲、单缓冲和直通输入三种方式。 • 输入逻辑:与TTL兼容。 • 输出:模拟量电流IOUT1和IOUT2。 • 电流建立时间:1 s。
线性误差:0.2%FSR(Full Scale Range),即该芯片的线性误差为满量程的0.2%。 非线性误差:0.4%FSR。 功耗:20 mW。 工作电压:单一+5+15 V电源。 参考电压:-10+10 V。
2.DAC1210 DAC1210是美国国家半导体公司生产的12位D/A转换器芯片,是智能化仪表中常用的一种高性能的D/A转换器。 DAC1210是24引脚的双列直插式芯片,其内部逻辑结构如图8.48所示。 由图8.48可以看出,其逻辑结构与DAC0832类似,所不同的是DAC1210具有12位的数据输入端,且其12位数据输入寄存器由一个8位的输入寄存器和一个4位的输入寄存器组成。两个输入寄存器的输入允许控制都要求CS和WR1为低电平,但8位输入寄存器的数据输入还要求B1/B2端为高电平。
1) DAC1210的引脚 DI11DI0——D/A转换器的数字量输入引脚。其中DI0为最低位,DI11为最高位。 CS——片选信号输入端,低电平有效。 WR1——输入寄存器的写信号,低电平有效。当此信号有效时,与CS和B1/B2配合起控制作用。 B1/B2——字节控制。此端为高电平时,12位数字同时送入输入锁存器;此端为低电平时,将12位数字量的低4位送到4位输入寄存器。
XFER——D/A转换的控制信号,与WR2配合使用。 WR2——DAC寄存器的写信号,低电平有效。当XFER和WR2同时有效时,输入寄存器的数据装入DAC寄存器,并启动一次D/A转换。 IOUT1——D/A转换器输出电流1。 IOUT2——D/A转换器输出电流2。
VCC——电源,其值可在+5+15 V之间选取,典型值取+15 V。 AGND——模拟信号地。 DGND——数字信号地。 RFB——外部放大器的反馈电阻接线端。 VREF——D/A转换器的基准电压,其范围可在-10+10 V内选定。
2) DAC1210的主要技术指标 输入:12位数字量。内有锁存器,数字量输入端可直接与CPU的数据总线相连。 输入方式:双缓冲、单缓冲和直接输入三种方式。 输入逻辑电平:与TTL兼容。 输出:模拟量电流IOUT1和IOUT2。 电流建立时间:1 s。 功耗:20 mW。 工作电压:单一+5+15 V电源。 参考电压:-10+10 V。
3.D/A转换芯片与微处理器的接口 计算机是通过输出指令将要转换的数字送到D/A转换芯片来实现D/A转换的,但由于输出指令送出的数据在数据总线上持续的时间很短,因而需要数据锁存器来锁存CPU送来的数据,以便完成D/A转换。目前生产的DAC芯片有的片内带有锁存器(如本节介绍的DAC0832和DAC1210),而有的则没有。在实际中若选用了内部不带锁存器的D/A转换芯片,就需要在CPU和D/A芯片之间增加锁存电路。
1) 8位D/A转换器与CPU的接口 这里以8位的D/A转换芯片DAC0832来说明8位D/A转换芯片与ISA总线的连接问题。如图8.49所示,由于DAC0832内部有数据锁存器,其数据输入引脚可直接与CPU的数据总线相连。图中XFER和WR2接地,即DAC0832内部的第2级寄存器接成直通式,只由第1级寄存器控制数据的输入,当CS和WR1同时有效时(ILE始终为有效的高电平),DI7DI0的数据被送入其内部的D/A转换电路进行转换。
如果要求图示系统的VOUT端输出方波,可编程如下:如果要求图示系统的VOUT端输出方波,可编程如下: MOV DX,200H ;端口地址200H送DX LOOP1: MOV AL,00H OUT DX,AL ;将数据0送DAC0832进行转换 CALL DELAY ;调用延时子程序 MOV AL,0FFH OUT DX,AL ;将数据FFH送DAC0832进行转换 CALL DELAY JMP LOOP1
2) 12位D/A转换器与CPU的接口 当D/A转换器位数大于8位时,与8位微处理器接口时被转换的数据就需要分几次(D/A位数≤16时需2次)送出。对于片内带数据锁存器的D/A芯片,应通过合理地使用控制信号实现数据的锁存;对于没有锁存器的芯片,用户自己需要增加数据锁存电路。 这里以片内带有数据锁存器的12位D/A转换芯片DAC1210与外部数据总线为8位的IBM PC/XT总线的接口方法,说明主机数据总线位数小于DAC芯片位数时的接口技术。
图8.50给出了DAC1210与IBM PC/XT总线的连接图。由于DAC1210片内的“8位输入寄存器”(存放待转换数据的高8位)和“4位输入寄存器”(存放待转换数据的低4位)的输入允许控制都需要CS和WR1同时为低电平(参阅图8.48),且“8位输入寄存器”还需要在B1/B2为高时才能被选通,所以当DAC1210与8位数据总线相连,送12位的待转换数据时,必须首先使B1/B2为高(此时CS和WR1也都有效),以便将数据的高8位送到“8位输入寄存器”锁存;然后使B1/B2为低,以使数据的低4位送到“4位输入寄存器”进行锁存。
设图中DAC占用的端口地址为220H222H,为了使两次数据输入端口的地址先偶(220H)后奇(221H),以便与编程习惯一致,可以使地址线A0经一反向器接至B1/B2端。设图中DAC占用的端口地址为220H222H,为了使两次数据输入端口的地址先偶(220H)后奇(221H),以便与编程习惯一致,可以使地址线A0经一反向器接至B1/B2端。 若BX寄存器中低12位为待转换的数字量,以下程序段可完成一次转换输出。 MOV DX,220H ;端口地址220H可保证第一次执行OUT指令时, ;A0=0,B1/B2=1,从而将高8位数据写入“8位 ;输入寄存器”中锁存
MOV CL,04H SHL BX,CL ;BX中的12位数左移4位 MOV AL,BH ;高8位送AL OUT DX,AL ;高8位送“8位输入寄存器”锁存 INC DX ;端口地址变为221H,可保证下一次执行OUT ;指令时,A0=1,B1/B2=0,从而将低4位数据写 ;入“4位输入寄存器”中锁存 MOV AL,BL ;低4位送AL OUT DX,AL ;低4位送“4位输入寄存器”锁存 INC DX ;端口地址变为222H,可保证下一次执行OUT ;指令时,将两个寄存器的内容同时送12位的DAC ;寄存器,且使XFER有效,以便启动D/A转换 OUT DX,AL ;启动D/A转换