《第十A/D及D/A转换器.ppt》由会员分享,可在线阅读,更多相关《第十A/D及D/A转换器.ppt(52页珍藏版)》请在三一办公上搜索。
1、第十章 数/模、模/数转换接口一、问题的提出:当计算机用于数据采集和过程控制的时候,采集对象往往是连续变化的物理量(如温度、压力、声波等),但计算机处理的是离散的数字量,因此需要对连接变化的物理量(模拟量)进行采样、保持,再把模拟量转换为数字量交给计算机处理、保存等。计算机输出的数字量有时需要转换为模拟量去控制某些执行元件(如声卡播放音乐等)。A/D转换器完成模拟量数定量的转换,D/A转换器完成数字量模拟量的转换。,二、模拟接口 定义:A/D D/A转换器可视作一外部设备 功能:将微机系统的离散的数字信号和设备中连续变 化的模拟量两者建立适配关系,使CPU能进行 控 制与鉴测,10.1 数/模
2、(D/A)转换 D/A转换器完成数字量 模拟量的转换,这在计算机和虚拟信号发生器中应用非常普遍。,CPU,I/O,A/D转换,A/D转换器完成模拟量数字量的转换,一、D/A转换器的主要性能参数(1)分辨率:该参数是描述D/A转换对输入变量变化的敏感 程度。具体指D/A转换器能分辨的最小电压值。分辨率的表示有两种:最小输出电压与最大输出电压之比 用输入端待进行转换的二进制数的位数来表示,位数越多,分辨率越高。分辨率的表示式为:分辨率=Vref/2位数 或 分辨率=(V+ref+V-ref)/2位数 若Vref=5V,8位的D/A转换器分辨率为5/256=20mV。,(3)转换精度:指D/A转换器
3、实际输出与理论值之间的误差,一般采用数字量的最低有效位作为衡量单位。如:1/2LSB表示,当D/A分辨率为20mV,则精度为 10mV.,(2)转换时间:指数字量输入到模拟量输出达到稳定所需的时间。一般电流型D/A转换器在几秒到几百微秒之内;而电压型D/A转换器转换较慢,取决于运算放大器的响应时间。,(4)线性度:当数字量变化时,D/A转换器输出的模拟量按比例变化的程度。线性误差 模拟量输出值与理想输出值之间偏离的最大值。,二.DAC的输入输出特性:DAC(数字模拟变换集成电路)是系统或设备中的一个功能器件,当将它接入系统时,不同的应用场合对其输入输出有不同的要求,DAC的输入输出特性一般考虑
4、以下几方面:(1)输入缓冲能力:DAC的输入缓冲能力是非常重要的,具有缓冲能力(数据寄存器)的DAC芯片可直接与CPU或系统总线相连,否则必须添加锁存器。(2)输入码制:DAC输入有二进制和BCD码两种,对于单极性DAC可接收二进制和BCD码;双极性DAC接收偏移二进制或补码。,(3)输出类型:DAC输出有电流型和电压型两种,用户可根据需要选择,也可进行电流电压转换。(4)输出极性:DAC有单极性和双极性两种,如果要求输出有正负变化,则必须使用双极性DAC芯片。,三、D/A转换器与CPU的接口 1、接口的功能(CPU给DAC送数据无须条件查询)DAC芯片与CPU或系统总线连接时,可从数据总线宽
5、度是否与DAC位数据匹配、DAC是否具有数据寄存器两个方面来考虑,所以接口的功能主要考虑以下两点:(1)进行数据缓冲与锁存(2)需进行两次数字量输入时,可在受控条件下同时进行转换 2、接口形式(1)直通(2)通过外加三态门,数据锁存器与CPU相连(3)通过可编程的I/O接口芯片与CPU相连,四、D/A转换器接口的设计 1.DAC0832与CPU的接口(1).DAC0832的性能参数 DAC0832是一片典型的8位DAC芯片 分辨率:8位 电流型:内部有2级缓冲器 转换时间:1mS 功耗:20mW,(2)DAC0832引脚和内部结构如图10-2所示。,图10-2 DAC0832引脚及内部结构结,
6、DAC0832的内部结构:输入R与DAC寄存器构成双缓冲,(3)工作过程:LE=1 数据传送 0 数据琐存 第一级缓冲:ILE=1:CS WR=0 LE1=1 数据 输入R 随之;CS.,WR=1 LE1=0 数据被琐存于输入R中 第二级缓冲:WR2 XFER=0 LE2=1 输入R中数据 DAC寄存器中 D/A转换:WR、XFER 的上 升 沿将DAC中的数据琐存,并 开始进行D/A转换,DB,(4)可使用多片0832同时进行D/A转换,以便同时产生多个摸拟信号送出,0832,0832,0832,DAC0832有三种工作方式:双缓冲方式 单缓冲方式 直通方式采用单缓冲方式连接如图10-3所示
7、。,注:在DAC实际连接中,要注意区分“模拟地”和“数字地”的 连接,为了避免信号串扰,数字量部分只能连接到数字 地,而模所量部分只能连接到模拟地。(5)DAC的工作方式,(6)应用举例 利用DAC可实现任意波形(如锯齿波、三角波、正弦波等)的输出,如输出锯齿波、三角波的程序段如下:,JNZ TN1 MOV AL,0FFHTN2:OUT DX,AL DEC AL,TRG:MOV DX,200H MOV AL,0HTN1:OUT DX,AL INC AL,JNZ TN2JMP TN1,产生,0,AL全“1”输出,输出锯齿波程序段如下:TRG:MOV DX,200H MOV AL,0HTN:OUT
8、 DX,AL INC AL JMP TN,在图10-6所示的DAC电路中,CPU与DAC0832相连,用于产生Y=2COS(200t)SIN(100t)的函数信号(CS=200H)电路图如下:,图10-6,2.12位DAC连接 由于微机的I/O指令一次只能输出8位数据,因此对于数据宽度大于8位DAC只能分两次输入数据,为此一般大于8位数据宽度的DAC内部均设计有两级数据缓冲,如12位DAC1210内部就有两级数据缓冲,内部结构如图10-4所示。,D7,D6,D5,D4,D3,D2,D1,D0,DI11,DI10,DI9,DI8,DI7,DI6,DI5,DI4,DI3,DI2,DI1,DI0,译
9、码器,Y0,IOW,AEN,AB,Y1,Y2,系统总线,WR1,WR2,BYTE1/BYTE2,XFER,CS,Vcc,AGND,Rfb,101,102,22k,-12V,+12V,W1,10k,10k,Vout,W2,22k,-12V,Vref,DGND,+5V,+12V,2DW7C,470,200,W3,1K,100,4.7uF,图10-5 DAC1210与CPU连接,在图10-5所示的DAC1210连接电路中,电位器W2用于调零、W1用于DAC满刻度修正。设译码器YO端口地址为200H,用该电路产生连续锯齿波输出程序如下:MOV AX,0H TN:MOV BX,AX MOV CL,4 S
10、HL AX,CL SHL AX,CL MOV AL,AH;高8位数据,OUT DX,AL;输出低4位 INZ TN CMP AX,OFFFH JNZ TN MOV AX.0 JMP TN,MOV DX,200H OUT DX,AL;输出高8位数据 MOV AX,BX AND AL,OFH;屏蔽高4位 INC DX;低4位端口地址201H,10.2 A/D转换接口 在数据采集和过程控制中,被采集对象往往是连续变化的物理量(如温度、压力。声波等),由于计算机只能处理离散的数字量,需要对连续变化的物理转换为数字量,这一操作过程就是A/D转换。,一、A/D转换器的分类 1 按分辨率分:有4、6、8、1
11、0、14、16位 二进制 31/2位、51/2位 BCD码 2 按转换速度分;超高 度 转换时间330NS 次超高速 转换时间3333 高 速 转换时间33330 低 速 转换时间330 3 按转换原理分:直接A/D转换器 将模拟信号直接转换成数字信号 间接A/D转换器 先模拟量转换成中间量,然后再 转换成数字量。如电压/时间转换型、电压/频率转换型、电压/脉宽等,二、A/D转换原理 A/D转换的原理很多,常见的有双积分式、逐次逼近式、计数式等,输出码制有二进制、BCD码等,输出数据宽度有8位、12位、16位、20位等(二进制和 BCD码)。常用的是逐次逼近式A/D。,逐次逼近式A/D转换器
12、逐次逼近式A/D转换器原理如图10-10所示,当转换器接收到启动信号后,逐次逼近寄存器清0,通过内部D/A转换器输出使输出电压V0为0,启动信号结束后开始A/D转换。,8位D/A转换器,逐次逼近寄存器,缓冲寄存器,控制电路,D7D0,CLK,转换结束,比较器:ViV0输出为“1”ViV0输出为“0”,Vi,输出模拟电压V0,+,-,图10-10 逐次逼近式A/D转换器,三、A/D转换器特性 A/D转换器的功能是把模拟量转换为数字量,其主要参数有:,(1)分辨率:指A/D转换器可转换成数字量的最小电压,是反映A/D转换器对最小模拟输入值的敏感度,所以分辨率一般表示式为:分辨率=Vref/2位数(
13、单极性)或 分辨率=(V+ref-V-ref)/2位数(双极性),分辨率通常是用A/D的位数来表示,比如 8位、10位、12位等 所以,A/D转换器的输出数字量越多。其分辨率越高。如、:8为ADC满量程为5V,则分辨率为 5000mV/256=20mV,也就是说当模拟电 压小于20mV,ADC就不能转换了,,(2)转换时间:指从输入启动转换信号到转换结束,得到稳定的数字量输出的时间。一般转换速度越快越好(特别是动态信号采集)。常见有:超高速(转换时间1ns)、高速(转换时间1s)、中 速(转换时间1ms)低速(转换时间1s)等。如果采集对象是动态连续信号,要求f采2 f信,也就是说必 须在信号
14、的一个周期内采集2个以上的数据,才能保证信号形态被 还原(避免出现“假频”),这就是“最小采样”原理。若f信=20kHz,则f采 40kHz,其转换时间要求25s.,(4)线性度:当模拟量变化时,A/D转换器输出的数 字量按比例变化的程度(5)量程:指能够转换的电压的范围:05V,0 10V等,(3)精度:有绝对精度和相对精度 绝对精度 指定应于一个给定的数字量的实际 模拟量输入与理论模拟量输入之差。相对精度 指在整个转换范围内任一数字量所 对应的模拟量实际值与理论值之差 通常也用最小有效位的分数表示。,2转换时间 指从启动转换信号被输入开始到结束获得稳定 的数字量输出量为止所需的时间。3转换
15、启动信号(电位启动和脉冲启动)在转换过程中必须保持高/低电平信号直有效,否则将导致转换出错。,三.ADC的输入输出特性 1.输出数据位数 8位,10位,12位,16位等,4 片上带有三态门输出琐存器 可直接与CPU的DB相连 片上未带三态门输出琐存器 与CPU相连需外加琐存器5 转出数字量有二进制和BCD码 ADC的数字量输出线位数越多,说明其分辨率越高。6 模拟信号输入及通道 模拟信号输入来自于外部信号输入对象,有单、多通道 之分。,四、A/D转换器与微处理器的接口 1、接口应具备的功能;A/D转换器的转换是由外部控制,需发送转换启动信号 启动A/D进行A/D转换。读取“转换结束”状态信号,
16、用以查询转换是否结束若 该状态信号有效,可用于产生中断请求或DMA请求。对多个模拟量输入通道进行通道寻址 方法:CPU通过DB送出对应模拟通道的编号,而不是 通过地址总线送出。,发送采样/保持信号S/H,以控制采样/保持器进行 采样与保持操作(需要时)。,。2.A/D转换器与CPU接口方式(1)与CPU直接相连:当ADC芯片内部带有数据输出锁存器和三态门时(如AD574、ADC0809等),它们的数据输出可直接与CPU或数据总线相连。(2)用三态门与CPU相连:对于内部不带数据输出锁存器的ADC芯片(如ADC1210、AD570等),需外接三态锁存器后才能与CPU或系统总线相连。(3)通过I/
17、O接口芯片与CPU相连:无论ADC内部有无数据锁存器,都可使用与CPU配套的并行I/O芯片与ADC相连,这样可简化接口电路,而且可使A/D的时序关系及电平与CPU保持一致,工作更可靠。,2.A/D转换器接口电路的设计实例 注意点:各ADC的转换启动、转换结束命令各不相同,需具体使用时注意。进行12位A/D转换时,需分两次将12位数据送CPU的DB7 0。如先读高4位,后读低8位,则称为“左对齐”,读取高4位时是屏蔽字节中的高4位。,如先读低8位,后读高4位,则称为“右对齐”,ADC0809是逐次逼近式的8位ADC芯片,内部结构如图所示。,(1)8位ADC连接与编程,ADC0809,三态的8位数
18、据输出,模拟通道地址输入端,A,C,ALE,通道地址琐存信号,启动 转换,START,A/D转换结束信号,INOIN7,ADC0809 引脚功能:,8通道模拟信号输入端,输入电压范围05V,EOC,B,如下:,START是ADC0809的A/D转换启动信号,高电平时内部逐次逼近寄存器清0,由10变化时开始A/D转换,信号宽度100ns.CLK为时钟信号,最大为640KHz.图10-12所示电路的CS=220227H,,五、采用中断方式的A/D、D/A转换器接口的设计 ADC0809:ADC0809是8位A/D转换器为ADC08XX系列依次 逼近A/D,可直接与CPU相连。ADC0809精度为1
19、LSB,+5V供电时模拟量输入 电压范围为05V,时钟为640KH,转换速度为 100nS ADC0809有8位路模拟通道,为28PIN双列直插 式器件。,当时钟信号为640hz,START(正脉冲)信号有效后,经100微秒以后,转换结束,EOC置“0”,数据送输出寄存器,同时,EOC置“1”,向CPU发中断请求,以使CPU以中断方式读取ADC转换所得数据。,(2)12位ADC连接与编程 ADC574A是具有三态输出锁存器的12位逐次比较ADC芯片,转换速度快(25us),是目前国内使用最广泛的ADC芯片之一。ADC574A可并行输出12位数据,也可以分两次输出(先高8位后低4位)数据;既可进
20、行8位转换,也可进行12位A/D转换。ADC574的引脚定义和控制信号工作时序如图10-13所示。,ADC,574A,设图10-14所示电路中译码器对A9A1进行译码,Y0=210H,Y1=212H213H,因此,ADC574A的CS=211H213H分另用于高位和 低位数据的读取,采用查询方式的数据采集程序 如下:、MOV CX,40H;采集次数 MOV SI,400H;存放数据内存首址START:MOV DX,312H;12位转换(A0=0)MOV AL,0H;写入的数据可以取任意值 OUT DX,AL;转换启动(cs及R/C均置0 Ce置1)DX,310H;读状态,Y0=0,打开三态门
21、L:IN AL,DX AND AL,80H;检查D7=STS=0?JNZ L;不为0,则等待,MOV DX,312H;为0,读高位(A0=1)IN AL,DX MOV SI,AL;送内存 INC SI;内存地址加1 MOV DX,311H;读低4位(A0=1)IN AL,DX AND AL,0F0H;屏蔽低4位 MOV SI,AL;送内存 INC SI;内存地址加1 DEC CX;数据个数减1,JNZ START;未完,继续 HLT;已完,暂停,#include#includeMain()unsigned int DATA256;采集数据存放数组 unsigned char status,da
22、tah,datal,id;id=1;while(!kbhit()等待键盘,按任意键结束 outportb(0 x212,0 x00);启动12位转换,CS、A0、R/C=0,CE=1do status=inportb(0 x210);读取状态,status=status 0 x80;D7(STS)=1?while(status!=0);STS不等于0,等待A/D转换完,再读状态 datah=inportb(0 x212);A/D转换完成,读取高8位 datal=inportb(0 x213);读取低8位数据 DATAid=16*datah+datal;合成高8位数据与低4位数据 id+;数组下
23、标+1 A/D转换采集程序一般采用中断方式编写(MS-DOS)环境或Windows95/98环境)或线程方式编写(Windows95/98环境),用软件查询方式可能会导致数据丢失,因此使用较少。,四、数据采集系统设计 该数据采集接口板可对16路模拟信号进行采集,A/D变换精度为5V/212=1.2mV,接口板具有数据保持电路,可对变化的模拟信号进行实时采集。1.多路转换开关 16路模拟信通过多路转换开关芯片AD7506进行切换,AD7506是一个161的模式电子开关,用于切换16个被测模拟信号输入端,使16路模式信号的采集共享一片ADC转换器。2.采样/保持器 接口板的采样/保持器采用AD58
24、2芯片,采样/保持状态的控制由差分逻辑输入端+LogicIN和-Logicin完成,模拟信号的输入通过IN+和IN-端输入。,3.ADC与DAC转换器 接口板的A/D转换采用ADC574芯片,DAC采用DAC1210芯片,这两个芯片均是12位的ADC和DAC转换芯片,可保证A/D的信号通过D/A转换器进行完全的回放。4.地址译码器 接口板的地址译码器采用3片74LS136异或门芯片和一片74LS138译码器芯片构成,接口板采用跳线K对I/O地址进行设置和改变。5.工作原理及程序控制 该接口板的主要操作有通道选择命令、启动ADC转换命令、查询ADC转换是否结束、读取ADC转换数据等A/D转换器方面的命令,以及发送DAC转换数据、启动DAC转换器等。,