1、第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 第第7章章 模模/数数(A/D)与数与数/模模(D/A)转换转换 7.1 模模/数数(A/D)转换转换 7.2 数数/模模(D/A)转换转换 7.3 实验实验 习题习题7 第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 7.1 模模/数数(A/D)转换转换 7.1.1 模/数转换器的原理与主要技术指标 1.模/数转换器的原理 模/数转换器可把模拟量转换成数字量,实际应用中是把模拟电压转换成二进制数字量。模/数转换的方法有计数式A/D转换,逐次逼近式A/D转换,双积
2、分式A/D转换,并行A/D转换和串/并行A/D转换等。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 计数式A/D转换由计数器、比较器和一个内部D/A转换器组成,线路比较简单,价格也便宜,但转换速度比较慢,现在已不常使用。双积分式A/D转换主要由积分器、零比较器、计数器以及时钟发生器组成。逐次逼近式A/D转换既具有一定的转换速度,又具有一定的精度,是目前广泛应用的816位ADC的主流产品。逐次逼近式A/D转换的原理如图7-1所示。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 时序控制逻辑逐次逼近寄存器8位D/
3、A转换器CLK启动输出VcVoVi比较器图7-1 逐次逼近式A/D转换第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 2.模/数(A/D)转换器的主要技术指标 1)分辨率 分辨率是指A/D转换器能分辨的最小模拟输入电压值,常用可转换成的数字量的位数来表示(例如,8位、10位、12位、16位等)。分辨率 12n压最大输入满量程模拟电第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 其中,n是可转换成的数字量的位数。所以位数越高,分辨率也越高。例如,当输入满量程电压为5 V时,对于8位A/D转换器,A/D转换的分辨率
4、为5 V/2550.0195 V。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 2)转换时间 转换时间反映了A/D转换的速度。转换时间是启动ADC开始转换到完成一次转换所需要的时间。目前常用的A/D转换集成电路芯片的转换时间在微秒数量级。不同的ADC有不同的转换时间,转换时间是编程时必须考虑的因素。3)量程 量程是指能进行转换的输入电压的最大范围。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 4)绝对精度 绝对精度是指ADC输出端产生一个给定的数字量时,ADC输入端的实际模拟量输入值与理论值之差,把这个差值
5、的最大值定义为绝对精度。ADC输出端的一个确定的数字量所对应的模拟输入量是一个范围,而不是一个固定值。5)相对精度 类似于绝对精度,相对精度是指ADC输出端产生一个给定的数字量时,ADC输入端实际模拟量输入值与理论值之差的最大值与满量程值之比,一般用百分数来表示。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 7.1.2 模/数接口芯片ADC0809 ADC0809是CMOS逐次逼近式8位A/D转换器,它具有8通路模拟信号输入端,模拟输入电压范围为05 V,转换时间为100 s,输出端具有三态输出数据锁存器,5 V电源供电,功耗为15 mW。第第7 7
6、章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 1.ADC0809的引脚 ADC0809的引脚如图7-2所示,各引脚功能如下。IN0IN7:8通路模拟信号输入端,同一时刻只可有一路模拟信号输入。ADDA、ADDB、ADDC:地址信号线,输入,用于选择控制8通路输入模拟量中的某一路工作。ADDA、ADDB、ADDC与IN0IN7的关系见表7-1。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 表7-1 ADDAADDC与IN0IN7的关系ADDCADDBADDA模拟信号输入通路选择000 IN0001 IN1010 IN2
7、011 IN3100 IN4101 IN5110 IN6111 IN7第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 ADC08091IN32IN43IN54IN65IN76START7EOC8D39OE10CLK11VCC12VREF()13GND14D12827262524232221201918171615D2VREF()D0D4D5D6D7ALEADDCADDBADDAIN2IN1IN0图7-2 ADC0809 引脚图第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 ALE:地址锁存允许信号,输入,高电平
8、有效,配合ADDA、ADDB、ADDC工作。D7D0:8位数字量输出端。START:A/D转换启动信号输入端,START的上升沿使逐次逼近寄存器复位,下降沿启动ADC进行A/D转换工作。CLK:时钟脉冲输入端,CLK的频率范围为101280 kHz。EOC:A/D转换结束信号,输出,高电平有效,可作为中断请求信号。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 OE:数字量输出允许信号。VREF(+)VREF():基准参考电压正负输入端,用来提供A/D转换器内部D/A使用的标准电平,与微机接口时常对应使用5 V、0 V或使用0 V、5 V。VCC:电源
9、电压,5 V。GND:地线。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 2.ADC0809的结构与工作过程 ADC0809的内部结构如图7-3所示,其功能与工作过程如下:输入到地址锁存与译码模块的ADDA、ADDB、ADDC三位地址信号用于决定IN0IN7中哪一路模拟信号可以输入,然后使地址锁存与译码模块的ALE1,从而使IN0IN7中被选中的一路模拟信号经通道选择开关送达比较器的输入端。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 向定时和控制模块发出启动信号START,START的上升沿使逐次逼近寄存
10、器SAR清零,下降沿启动A/D转换。这时定时和控制模块的EOC输出信号变为低电平,表示A/D转换正在进行。当A/D转换结束后,EOC变为高电平,表示A/D转换完成。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 定时和控制逐次逼近寄存器SARDAC通道选择开关地址锁存和译码8位三态锁存缓冲器START CLOCKIN0IN1IN2IN3IN4IN5IN6IN7ADDAADDBADDCALEVCCGNDVREF()VREF()ADCD0D1D2D3D4D5D6D7OEEOC图7-3 ADC0809内部结构第第7 7章章 模模/数数(A/D)(A/D)与数
11、与数/模模(D/A)(D/A)转换转换 A/D转换完成后,转换好的数字数据已送入8位三态锁存缓冲器模块。如果使8位三态锁存缓冲器模块的OE信号变为高电平,则8位三态锁存缓冲器的三态门被打开,转换好的8位数字量数据被输出到数据线上。如上所述,EOC信号变为高电平表示A/D转换完成,EOC可作为中断申请信号,通知CPU取走数据。在查询传送方式中,EOC可以作为CPU查询外设(ADC)的状态信号。ADC0809的工作时序如图7-4所示,ADC0809在进行A/D转换前,先通过ADDA、ADDB、ADDC选择模拟输入通路。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)
12、转换转换 OEEOCADDA/B/CSTART/ALED7D0DATA图7-4 ADC0809的工作时序 第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 7.1.3 ADC0809与系统的接口及应用 1.ADC0809与CPU的连接 ADC0809与计算机系统的连接主要考虑三方面,即与系统的数据总线、地址总线和控制总线的连接。由于ADC0809的输出D7D0具有三态输出锁存缓冲器,因此ADC0809与计算机连接时可以直接和CPU的数据总线相连。地址总线的A0、A1、A2可以对应连接ADC0809的ADDA、ADDB、ADDC三位地址信号输入线,用以控制
13、8路模拟输入中哪一路被选中输入。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 系统的控制总线要进行与ADC0809的启动转换信号START、输出允许信号OE、转换结束信号EOC以及ALE等信号线的连接。启动信号START要求是一个正脉冲信号,通常可由CPU控制发出,输出允许信号OE也需要CPU提供一个正脉冲信号。在A/D转换结束时,ADC0809会发出转换结束信号EOC,通知CPU可以读取转换数据。CPU可以采取中断方式或查询方式读取转换结果。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 ADC0809与C
14、PU的连接如图7-5所示,CPU控制总线的I/O写信号 与片选信号 经或非门后,连接到ADC0809的START与ALE引脚,这样CPU在执行OUT指令时就能对ADC0809执行写操作,产生START与ALE所需的正脉冲。IOWCS第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 VCCVREF()5 VD7D0D7D0数据线STARTALECSIOWIN0模拟量输入IN7ADDAA0ADDBA1ADDCA2EOCEOCOECSIORVREF()GNDCLKCLK500 kHzADC0809图7-5 ADC0809与CPU的连接第第7 7章章 模模/数数
15、(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 例7.1 如图7-5所示,设系统译码后使片选信号有效的端口地址为220H227H,参考电压VREF为5 V,ADC0809的工作时钟为500 kHz。如果使模拟电压信号分别从模拟输入通路2和通路4输入,分别进行一次A/D转换,转换好的数字量分别存入BL、CL寄存器,请编写实现这些功能的程序。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 解 参照表7-1可知IN0IN7对应的端口地址分别为220H227H。程序如下:MOV DX,222H;模拟输入通路2的端口地址OUT DX,AL;启动A
16、/D转换CALL DELAY;调用延时子程序,延时约150 s,等待A/D转换完成IN AL,DX;将A/D转换的结果读入ALMOV BL,AL;结果存入BL第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 MOV DX,224H;模拟输入通路4的端口地址OUT DX,AL;启动A/D转换CAL DELAY;调用延时子程序,延时约150 s,等待A/D转换完成IN AL,DX;将A/D转换的结果读入ALMOV CL,AL;结果存入CL第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 例7.2 A/D转换电路如图7-
17、5所示,请编写程序实现对图7-5中的8路模拟输入电压量的轮询输入,并把转换结果存入DI指向的存储缓冲区BUF。解 程序如下:LEA DI,BUF ;DI指向A/D转换结果的存储缓冲区 MOV CL,8 MOV DX,220H;模拟输入通路0的端口地址第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 LOP:OUT DX,AL;启动A/D转换 CALL DELAY;调用延时子程序,延时约150 s,等待A/D转换完成IN AL,DX;将A/D转换的结果读入AL MOV DI,AL;结果存入DI指向的缓冲区 INC DI;DI指向缓冲区下一个单元 INC D
18、X ;DX为下一个模拟输入通路的端口地址 DEC CL JNZ LOP第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 例7.1和例7.2实现的A/D转换并没有对A/D转换结束信号EOC进行处理,而是采用软件延时的方法处理A/D转换。例7.3 设在8086/8088系统中ADC0809与系统的连接如图7-6所示,请利用A/D转换结束信号EOC作为中断请求信号,采用中断方式把从IN7输入的模拟量转换成数字量后存入BUFFER存储单元。设经译码器选中ADC0809工作的端口地址为220H227H。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(
19、D/A)(D/A)转换转换 解 CPU经译码器选中ADC0809工作的端口地址为220H227H,从图7-6可知,当CPU对端口地址为220H227H进行写操作时,可以启动ADC0809工作;当CPU对端口地址为220H227H进行读操作时,可以读取ADC0809的转换结果。ADDAADDC对应连接至地址总线的A0A2,只有当CPU访问220H227H端口,并且对ADC0809进行读/写操作时,ADDAADDC上的地址信号才有意义,IN7的有效地址为227H。A/D转换结束信号EOC连接系统的中断请求线IRQ2,第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转
20、换转换 VCCVREF()5 VD7D0D7D0数据线STARTALEIOWIN0模拟量输入IN7ADDAA0ADDBA1ADDCA2EOCIRQ2OEIORVREF()GNDCLKCLK500 kHzADC0809地址译码图7-6 ADC0809以中断方式与CPU的连接 第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 当A/D转换结束信号EOC有效时,会经过IRQ2向CPU提出中断请求。在8086/8088系统中,IRQ2的中断类型号是0AH(请参阅第3章的表3-2),可以据此设置中断矢量。程序中采用把中断服务程序的入口地址直接存入中断矢量表的方法设
21、置中断矢量,并且由于IRQ2是为用户保留的中断,因此在程序结束处没有再采取措施恢复原系统的中断矢量。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 DATA SEGMENT BUFFER DB?;定义存放结果的缓冲区DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX CLI;关中断 MOV AX,0 MOV ES,AX第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 MOV DI,4*0AH ;DI获得IRQ2(0AH号)
22、的中断矢量在内存中 ;的地址 MOV AX,OFFSET ADCINT ;中断服务程序的入口地址的地址偏移量 MOV ES:DI,AX ;在中断矢量表中设置中断服务程序入口地址 ;的偏移量 MOV AX,SEG ADCINT ;中断服务程序入口地址的段地址第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 INC DI INC DI MOV ES:DI,AX ;在中断矢量表中设置中断服务程序入口地址 ;的段地址 MOV SI,OFFSET BUFFER ;设置存放结果的存储单元地址第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/
23、A)转换转换 MOV DX,227H;选择模拟通道IN7 OUT DX,AL;发出启动转换信号 STI;开中断 HLT ;等待中断 MOV AH,4CH INT 21H;程序结束第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 ADCINT:CLI;中断服务程序入口,关中断 MOV DX,227H;选择模拟通道IN7 IN AL,DX;输入转换结果 MOV SI,AL;转换结果存入存储单元 MOV AL,20H OUT 20H,AL;发中断结束命令 STI;开中断 IRET;中断返回CODE ENDS END START第第7 7章章 模模/数数(A/D
24、)(A/D)与数与数/模模(D/A)(D/A)转换转换 2.ADC0809经8255A与系统的连接 ADC0809芯片通过Intel 8255A与PC总线连接的方法如图7-7所示。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 PC总线D7D6D5D4D3D2D1D0IOWIORAENA9A8A7A6A5A4A3A2A1A0IRQ2374H377HIntel 8255AD7D6D5D4D3D2D1D0PA7PA6PA5PA4PA3PA2PA1PA0WRRDPC6PC5PC4CSA1A0PC0PC7PC2ADC 0809D7D6D5D4D3D2D1D05
25、 VVCCVREF()IN7IN6IN5IN4IN3IN2IN1IN0ADDCADDBADDASTARTALEOEEOCVREF()GNDCLK500 kHz图7-7 ADC0809通过8255A与系统的连接 第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 Intel 8255A的端口A作为8位数据的输入口,8255A的D7D0连接系统的数据总线,ADC0809转换后生成的数字量经D7D0送往8255的PA7PA0。待转换的模拟信号从ADC0809的IN7IN0输入。8255A的端口地址374H377H由地址总线译码后产生。8255A的PC4PC6输出
26、,与ADDA、ADDB和ADDC相连,用来选择ADC0809模拟输入通路。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 例7.4 如图7-7所示的电路构成8路模拟量输入采集系统,设有8路模拟量输入信号,信号电压规定在05 V的范围内,分别从IN0IN7输入。要求从0通路开始,顺序把8个通路输入的模拟量转换成数字量,存入BUF开始的存储单元中。要求以查询传送方式工作。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 解 程序如下:;8255A工作于方式0,端口A和端口C的低4位输入,端口C的高4位输出 DATA
27、SEGMENT BUF DB 8 DUP(0)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 START:MOV AX,DATA MOV DS,AX MOV AL,10010001B ;8255A的端口A输入,PC7PC4输出,;PC3PC0输入 MOV DX,377H;8255A控制字寄存器地址 OUT DX,AL MOV DI,OFFSET BUF ;设置存储单元首地址第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 M
28、OV CX,8;模拟通路个数 MOV AL,0H ;设定开始转换的模拟通路IN0的地址 LP0:PUSH AL;保护转换的模拟通路地址OR AL,80H;选择模拟通道,且发出启动转换信号 ;(PC71)MOV DX,376H;端口C地址 OUT DX,AL AND AL,7FH OUT DX,AL;启动脉冲的下降沿(PC70)第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 LP1:IN AL,DX ;从端口C读取数据 AND AL,00000l00B ;检查PC2,确定EOC电平是否变低 JZ LP1 ;EOC未变低,循环等待 LP2:IN AL,DX
29、;变低,再读端口C AND AL,00000100B ;根据PC2检查EOC电平是否变高 JNZLP2;EOC未变高,循环等待 MOV DX,374H;端口A地址 IN AL,DX;EOC变高,转换结束,读入数据第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 MOV DI,AL;存入BUF存储单元POP AL;恢复当前转换的模拟通路地址ADD AL,00010000B;下一个模拟通路地址INC DI;修改存储单元地址指针LOOP LP0;CX10,则转换下一个模拟通路MOV AH,4CHINT 21HCODE ENDS END START第第7 7章章
30、 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 程序中通过使PC7先后为1和0产生START启动信号所需的正脉冲,正脉冲的宽度可参考时序图要求予以考虑。EOC是A/D转换结束信号,是一个负的方波,由高电平变为低电平表示A/D转换开始,整个转换过程中保持低电平,所以第一次根据EOC判断A/D转换是否开始;EOC由低电平再变到高电平,表示A/D转换结束,所以第二次再根据EOC判断A/D转换是否结束。先后要进行两次判断,同时还要考虑电路中EOC与PC2之间连有非门对电平的影响。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 7.1
31、.4 16位模/数转换芯片ADC1143简介 1.ADC1143功能结构 模/数(A/D)转换芯片有8位、10位、12位、16位等,一般来说,位数越多,精度越高。ADC1143是32脚DIP封装的逐次逼近式16位高精度A/D 转换器,其内部结构如图7-8所示。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 控制逻辑和内部时钟16位 CMOS 逐次逼近寄存器STCOSOTR比较器10 kVx110 kVx25 kVx32.2 MOSRIVaVa16位 CMOS D/A转换器D15D010 V参考源ROVdAGDGMSB图7-8 ADC1143内部结构第第
32、7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 ADC1143的各引脚功能简述如下。Vx1、Vx2、Vx3:都是模拟电压输入端,但模拟电压输入范围随不同的连接而不同。Va、Va:分别为正负模拟电压输入端。Vd:数字电路电压输入端。D15D0:16位并行数字量输出端。:二进制补码输出端,内部有数据锁存功能,但不是三态输出。SO:串行输出端,每位宽度为一个时钟周期。MSB第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 RO:10 V基准电压输出端。RI:基准电压输入端,如果使用片内基准电压源,则可用一个100 的精密电
33、位器把RI和RO相连,以便于增益校准。OS:偏移校正输入端,用于0输出校正。TR:启动A/D转换信号输入端,启动脉冲宽度应不小于1 s。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 ST:A/D转换状态输出端,可用于判断转换是否结束,中断方式中可作为中断请求信号。CO:内部时钟输出引线。AG:模拟地。DG:数字地。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 2.ADC1143在计算机系统中的应用 图7-9是ADCl143在计算机系统中的使用方法。该电路中使用8255A作为ADC1143与CPU之间的接口。
34、第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 ADC1143VaOSVaW215 V15 VRIVx3W1ROVx1D7D0STD15D874LS24474LS2448255APC0PA7PA0PB7PB0PB6PC7TRVx2PC6PB5PB3CPUAD346MC14051V1V8VoA、B、CAIAODI模拟输入GG图7-9 ADCl143与CPU的连接第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 由于ADC1143是单路A/D转换器,因此处理多路模拟信号输入时需要使用外接模拟多路转换开关,图中使用了集
35、成电路芯片MC14051。MC14051是CMOS 8通道模拟多路转换器。图中使用了高速采样保持放大器AD346。采样保持器的作用是对输入的模拟信号进行保持,辅助A/D转换器工作,以减小误差。ADC1143的输出具有数据锁存功能,但是没有三态控制功能,所以要使用两片三态缓冲器74LS244。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 7.2 数数/模模(D/A)转换转换 7.2.1 数/模转换的工作原理 数字量是由数字代码按位组合起来表示的,每一个数位都有其不同的权值。把数字量转换成模拟量的基本思想是:先把每一位数字代码根据其权值转换成相应的模拟分
36、量,然后将各模拟分量相加,得到的总和就是与数字量对应的模拟量。例如:1011B12302212112011第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 这就是D/A转换的基本思想(式中二进制数各位的权值分别为23、22、21、20)。D/A转换器主要由逻辑电路、电子开关、产生权电流或权电压的电阻网络、基准电压以及电压或电流放大器等部分组成,如图7-10所示。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 逻辑电路电子开关电阻网络基准电压数字量输入模拟电压输出图7-10 D/A转换器的基本组成第第7 7章章 模
37、模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 D/A转换器具体实现转换的部分主要包括:电子开关、电阻网络和基准电压三部分。根据电阻网络的不同,D/A转换器可分为权电阻解码D/A,R-2R电阻解码网络D/A等。其中,R-2R电阻解码网络D/A转换器是一种被广泛使用的D/A转换器,这种D/A转换器反映了一般D/A转换器的基本工作原理。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 2R2R10K0D0R2R10K1D1R2R10K2D2R2R10K3D3VREFVout图7-11 R-2R电阻解码网络D/A转换原理 第第7 7章章
38、 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 以4位R-2R电阻解码网络D/A转换为例,其基本原理如图7-11所示。图7-11中4位二进制数D3、D2、D1、D0,每一位二进制数对应一位电子开关,当该位二进制数为“1”时,与该位对应的电子开关经电阻连接到参考电压VREF端;当该位二进制数为“0”时,电子开关接地。为简便起见,假设VREF16 V,根据电路原理分析可知:第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 当D31,D2D1D00时,VoutVREF/28 V;当D30,D22,D1D00时,VoutVREF/44
39、 V;当D3D20,D11,D00时,VoutVREF/82 V;当D3D2D10,D01时,VoutVREF/161 V。根据线性网络的叠加原理,该R-2R网络的输出电压为:Vout2D34D28D116D0VREF 第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 经分析可知:当D3D2D1D01时,可得到最高的输出电压15 V;当D3D2D1D00时,可得到最低的输出电压0 V。对于n位的D/A转换器,有一个n位的电子开关,D/A转换器的输出电压满足下式:Vout=2D1n4D2n8D3nn2D0VREF 第第7 7章章 模模/数数(A/D)(A/
40、D)与数与数/模模(D/A)(D/A)转换转换 7.2.2 数/模转换器的主要技术指标 数/模(D/A)转换器的主要技术指标反映了D/A转换器的性能,主要包括以下四种。1.分辨率 分辨率是指D/A转换器可输出的模拟量的最小变化量,也就是最小输出电压(输入的数字量只有D0=1)与最大输出电压(输入的数字量所有位都等于1)之比。8位D/A的分辨率为12182551=(用百分数表示约为0.392)第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 设D/A满量程输出电压为5 V。8位D/A所能分辨的最小电压为 50.39219.6 mV第第7 7章章 模模/数数
41、(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 2.转换精度 转换精度是指模拟输出信号的实际值与理论计算值的偏差,通常用百分数来表示。它反映了D/A转换器把数字量转换为模拟量的准确程度。3.建立时间 建立时间是指从输入待转换的数字量开始,到输出的模拟信号幅度稳定在额定值上下1/2 LSB时所需的时间。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 4.输出电平范围 输出电平范围是指当D/A转换器可输出的最低电压与可输出的最高电压的电压差值。常用的D/A转换器的输出范围是05 V,010 V,2.52.5 V,55 V,1010 V等。第
42、第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 7.2.3 数/模接口芯片DAC0832 数/模接口芯片种类很多,有通用型、高速型、高精度型等,转换位数有8位、12位、16位等,输出模拟信号有电流输出型和电压输出型,在应用中可根据实际需要进行选择。DAC0832是采用CMOS工艺制造的8位电流输出型D/A转换器,分辨率为8位,建立时间为1 s,功耗为20 mW,数字输入电平为TTL电平。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 1.DAC0832的结构 DAC0832的结构如图7-12所示。它由一个8位的输
43、入寄存器、一个8位的DAC寄存器和一个8位D/A转换器以及控制电路组成。D/A转换器中使用的是R-2R电阻网络。DAC0832中的输入寄存器和DAC寄存器可以分别控制,从而可以根据需要接成两级输入锁存的双缓冲方式,一级输入锁存的单缓冲方式,或接成完全直通的无缓冲方式。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 输入寄存器D0D1D2D3D4D5D6D7LE1ILEDAC寄存器D/A转换器LE2DAC0832VCCDGNDAGNDIOUT2IOUT1RFBVREFCS1WR2WRXFER图7-12 DAC0832内部结构第第7 7章章 模模/数数(A
44、/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 2.DAC0832的引脚功能 DAC0832是有20个引脚的双列直插式芯片,其引脚排列如图7-13所示。20个引脚中包括与CPU系统连接的信号线,与外设连接的信号线以及其它引线。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 DAC0832CS1234567891020191817161514131211DGNDRFBVREFD0D1D2D3AGNDIOUT1IOUT2D7D6D5D4VCCILE1WR2WRXFER图7-13 DAC0832的引脚第第7 7章章 模模/数数(A/D)(A/D)
45、与数与数/模模(D/A)(D/A)转换转换 1)与CPU系统相连的信号线D7D0:8位数据输入线,用于数字量输入。ILE:输入锁存允许信号,高电平有效。:片选信号,低电平有效,与ILE结合决定 是否有效。:写命令l,当 为低电平,且ILE和 有效时,把输入数据锁存入输入寄存器;、ILE和三个控制信号构成第一级输入锁存命令。CS1WR1WR1WRCS1WR第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 :写命令2,低电平有效,该信号与 配合,当 也有效时,可使输入寄存器中的数据传送到DAC寄存器中。:传送控制信号,低电平有效,与 配合,构成第二级寄存器(
46、DAC寄存器)的输入锁存命令。2WRXFERXFERXFER2WR第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 2)与外设相连的信号线 IOUT1:DAC电流输出1,它是输入数字量中逻辑电平为“1”的所有位输出电流的总和。当所有位逻辑电平全为“1”时,IOUT1为最大值;当所有位逻辑电平全为“0”时,IOUT1为“0”。IOUT2:DAC电流输出2,它是输入数字量中逻辑电平为“0”的所有位输出电流的总和。RFB:反馈电阻,为外部运算放大器提供一个反馈电压。RFB也可由外部提供。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D
47、/A)转换转换 3)其它引线 VREF:参考电压输入端,要求外部提供精密基准电压,VREF一般在1010 V之间。VCC:芯片工作电源电压,一般为515 V。AGND:模拟地。DGND:数字地。模拟地要连接模拟电路的公共地,数字地要连接数字电路的公共地,最后把它们汇接为一点接到总电源的地线上。为避免模拟信号与数字信号互相干扰,两种不同的地线不可交叉混接。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 3.DAC0832 工作方式 DAC0832 有三种工作方式,工作方式的选择由 ILE、CS、1WR、2WR和XFER等信号线的有效电平来控制。完全直通的
48、无缓冲方式是把 CPU 送来的数字量不经过缓冲,直接送到 DAC 转换器中进行转换。此时要求 ILE 接高电平,其它所有控制信号CS、1WR、2WR和XFER都应处于有效的低电平状态。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 一级输入锁存的单缓冲方式是通过控制 ILE、CS、1WR或2WR和XFER信号使输入寄存器或 DAC 寄存器中的一个寄存器处于直通状态。两级输入锁存的双缓冲方式中,数据通过输入寄存器和 DAC寄存器分别锁存后再送入D/A转换电路。此时要求用ILE、CS、1WR信 号 与 另 一 组 信 号2WR和XFER先 后 进 行 控制
49、。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 7.2.4 DAC0832与系统的接口及应用 1.DAC0832与CPU的接口 DAC0832与CPU接口时要进行数据总线、地址总线和控制总线的连接。对于8位数据总线的CPU(如Intel 8088),DAC0832的数据线D7D0可直接连至CPU的数据总线。在图7-14的电路中,VCC、VREF和ILE都连接到5 V电源,从而使参考电压VREF为5 V,使ILE保持有效的高电平。第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 VREFILEVCCD7D0RFB
50、IOUT1IOUT2AGNDDGND5 VDB7DB0数据线XFER1WR2WRCSCSWR图7-14 DAC0832 与CPU的连接第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 例7.5 利用图7-14所示的DAC电路产生10个对称方波,波形可通过示波器查看。假设使 有效的译码地址为2A0H。解 程序如下:MOV CX,10;循环次数 MOV DX,2A0H;使有效的地址CS第第7 7章章 模模/数数(A/D)(A/D)与数与数/模模(D/A)(D/A)转换转换 LOP:MOV AL,0 ;产生0电平的数字量 OUT DX,AL ;让DAC进行D/