1第8章模拟量的输入输出2主要内容:模拟量输入输出通道的组成D/A转换器的工作原理、连接及编程A/D转换器的工作原理、连接及编程3§8.1模拟量输入输出通道模拟量I/O接口的作用:实际工业生产环境——连续变化的模拟量例如:电压、电流、压力、温度、位移、流量计算机内部——离散的数字量二进制数、十进制数工业生产过程的闭环控制4模拟量I/O接口的作用:模拟量D/A传感器执行元件A/D数字量数字量模拟量模拟量输入(数据采集)模拟量输出(过程控制)计算机5模拟量I/O通道的组成:模拟接口电路的任务模拟电路的任务0010110110101100工业生产过程传感器放大滤波多路转换&采样保持A/D转换放大驱动D/A转换输出接口微型计算机执行机构输入接口物理量变换信号处理信号变换I/O接口输入通道输出通道6模拟量的输入通道传感器(Transducer)非电量→电压、电流变送器(Transformer)转换成标准的电信号信号处理(SignalProcessing)放大、整形、滤波7模拟量的输入通道多路转换开关(Multiplexer)多选一采样保持电路(SampleHolder,S/H)保证变换时信号恒定不变A/D变换器(A/DConverter)模拟量转换为数字量8模拟量的输出通道D/A变换器(D/AConverter)数字量转换为模拟量低通滤波平滑输出波形放大驱动提供足够的驱动电压,电流9§8.2数/模(D/A)变换器掌握:D/A变换器的工作原理D/A变换器的主要技术指标DAC0832的三种工作模式DAC0832的应用10一、D/A变换器的基本构成模拟开关电阻网络运算放大器权电阻网络R-2R梯形电阻网络VrefRf模拟开关电阻网络VO数字量∑11二、基本变换原理运放的放大倍数足够大时,输出电压VO与输入电压Vin的关系为:VinRfVO∑RfOinRV=-VR12基本变换原理若输入端有n个支路,则输出电压VO与输入电压Vi的关系为:n0fini=1i1V=-RVRVinRfVO∑R1Rn…13基本变换原理令每个支路的输入电阻为2iRf,并令Vin为一基准电压Vref,则有nn0frefrefiii=1i=1f11V=-RV=-V2R214基本变换原理如果每个支路由一个开关Si控制,Si=1表示Si合上,Si=0表示Si断开,则上式变换为n0irefii=11V=-SV2若Si=1,该项对VO有贡献;若Si=0,该项对VO无贡献对应的电路15权电阻网络2R4R8R16R32R64R128R256RVrefRfVOS1S2S3S4S5S6S7S8这里,上式中的n=816基本变换原理如果用8位二进制代码来控制图中的S1~S8(Di=1时Si闭合;Di=0时Si断开),则不同的二进制代码就对应不同输出电压VO;当代码在0~FFH之间变化时,VO相应地在0~-(255/256)Vref之间变化;为控制电阻网络各支路电阻值的精度,实际的D/A转换器采用R-2R梯形电阻网络,它只用两种阻值的电阻(R和2R)。17R-2R梯形电阻网络RfViV0Vrefn-12102R2R2R2RRRRVn-1V2V1V02R+-...18三、主要技术指标分辨率(Resolution)输入的二进制数每±1个最低有效位(LSB)使输出变化的程度。可用输入数字量的位数来表示,如8位、10位等;也可用一个LSB使输出变化的程度来表示。19分辩率例一个满量程为5V的10位D/A变换器,±1LSB的变化将使输出变化5/(210-1)=5/1023=0.04888V=48.88mV(LSB-LeastSignificantBit)20转换精度(误差)实际输出值与理论值之间的最大偏差影响转换精度的因素:分辩率电源波动温度变化┇21转换时间从开始转换到与满量程值相差±1/2LSB所对应的模拟量所需要的时间tV1/2LSBtCVFULL22四、典型的D/A转换器DAC0832特点:8位电流输出型D/A转换器T型电阻网络差动输出23DAC0832的内部结构输入D04--713--1619121817XFERWR2WR1CSILE&≥1≥1LE1LE2Rfb8位输入寄存器8位DAC寄存器8位D/A转换器VREFIOUT2IOUT1RfbAGND(模拟地)VCC(+5V或+15V)20103911128DAC0832框图DGND(数字地)数据D724主要引脚功能输入寄存器控制信号:D7~D0:输入数据线ILE:输入锁存允许CS:片选信号WR1:写输入锁存器1234567891020191817161514131211VCCILEWR2XFERD4D5D6D7LOUT2LOUT1CSWR1AGNDD3D2D1D0VREFRfbDGNDDAC083225主要引脚功能用于DAC寄存器的控制信号:WR2:写DAC寄存器XFER:允许输入锁存器的数据传送到DAC寄存器26主要引脚功能其它引线:VREF:参考电压。-10V~+10V,一般为+5V或+10VIOUT1、IOUT2:D/A转换差动电流输出。用于连接运算放大器的输入Rfb:内部反馈电阻引脚,接运放输出AGND、DGND:模拟地和数字地27工作时序D0--D7CSWR1ILE(高电平)WR2XFER(模拟输出电流变化)写输入寄存器写DAC寄存器28工作模式单缓冲模式双缓冲模式无缓冲模式29单缓冲模式使输入锁存器或DAC寄存器二者之一处于直通,即芯片只占用一个端口地址。CPU只需一次写入即开始转换。写入数据的程序为:MOVDX,PORTMOVAL,DATAOUTDX,AL与系统的连接见教材p352图30双缓冲模式(标准模式)对输入寄存器和DAC寄存器均需控制;当输入寄存器控制信号有效时,数据写入输入寄存器中;再在DAC寄存器控制信号有效时,数据才写入DAC寄存器,并启动变换;此时芯片占用两个端口地址;优点:数据接收与D/A转换可异步进行;可实现多个DAC同步转换输出分时写入、同步转换。31双缓冲模式同步转换例译码器A10-A00832-10832-2port1port2port332MOVAL,dataMOVDX,port10832-1的输入寄存器地址OUTDX,ALMOVDX,port20832-2的输入寄存器地址OUTDX,ALMOVDX,port3DAC寄存器地址OUTDX,ALHLT双缓冲模式的数据写入程序33无缓冲器模式使内部的两个寄存器都处于直通状态。模拟输出始终跟随输入变化。不能直接与数据总线连接,需外加并行接口(如74LS373、8255等)。34五、D/A转换器的应用信号发生器用于闭环控制系统向D/A转换器写入某种按规律变化的数据,即可在输出端获得相应的各种波形35§8.3模/数(A/D)转换器掌握:A/D转换器的一般工作原理;A/D转换器的主要技术指标;A/D转换器的应用与系统的连接数据采集程序的编写36(A/D)转换器用途用于将连续变化的模拟信号转换为数字信号的装置,简称ADC,是模拟系统与计算机之间的接口部件。37(A/D)转换器类型计数型A/D转换器-------速度慢、价格低,适用于慢速系统双积分型A/D转换器-------分辩率高、抗干扰性好、转换速度慢,适用于中速系统逐位反馈型A/D转换器-------转换精度高、速度快、抗干扰性差38一、A/D转换器的工作原理逐位反馈型A/D转换器类似天平称重量时的尝试法,逐步用砝码的累积重量去逼近被称物体。D/A+-Vi比较器逐次变换寄存器SAR┇┇}数字量输出时序及控制逻辑…VC39二、主要技术指标转换精度量化误差非线性误差其它误差总误差=各误差的均方根40量化间隔一个最低有效位对应的模拟量,即△=Vmax/(2n-1)例:某8位ADC的满量程电压为5V,则其分辨率为:5V/255=19.6mV41量化误差绝对量化误差=1/2△相对量化误差=(1/2)х1LSBх100%例:设满量程电压=10V,A/D变换器位数=10位,则:绝对量化误差≈10/211=4.88mV相对量化误差≈1/211*100%=0.049%42转换时间实现一次转换需要的时间。精度越高(字长越长),转换速度越慢。43输入动态范围允许转换的电压的范围。如0~5V、0~10V等。44三、典型的A/D转换器芯片ADC0809:8通道(8路)输入8位字长逐位逼近型转换时间100μs内置三态输出缓冲器45主要引脚功能D7~D0:输出数据线(三态)IN0~IN7:8通道(路)模拟输入ADDA、ADDB、ADDC:通道地址ALE:通道地址锁存START:启动转换EOC:转换结束状态输出OE:输出允许(打开输出三态门)CLK:时钟输入(10KHz~1.2MHz)46内部结构STARTEOCCLKOED7D0VREF(+)VREF(-)ADDCADDBADDAALEIN0IN7比较器8路模拟开关逐位逼近寄存器SAR树状开关电阻网络三态输出锁存器时序与控制地址锁存及译码D/A8个模拟输入通道8选147工作时序启动地址锁存ADDA--ADDCALE/STARTEOCOED0--D7转换时间48ADC0809的工作过程由时序图知ADC0809的工作过程如下:送通道地址,以选择要转换的模拟输入;锁存通道地址到内部地址锁存器;启动A/D变换;判断转换是否结束;读转换结果49ADC0809的应用芯片与系统的连接编写相应的数据采集程序50芯片与系统的连接模拟输入端Ini:单路输入多路输入单路输入时ADDCADDBADDAIN4ADC0809输入多路输入时ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809输入0输入1输入2输入3输入4CPU指定通道号+5V51通道地址线ADDA-ADDC的连接多路输入时,地址线不能接死,要通过一个接口芯片与数据总线连接。接口芯片可以选用:简单接口芯片74LS273,74LS373等(占用一个I/O地址)可编程并行接口8255(占用四个I/O地址)ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809输入DB74LS273Q2Q1Q0CP来自I/O译码D0-D7ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809DB8255PB2PB1PB0CS#来自I/O译码D0-D7A1A0A1A052数据输出线D0-D7的连接可直接连到DB上,或通过另外一个输入接口与DB相连;两种方法均需占用一个I/O地址D0-D7ADC0809DBOE来自I/O译码D0-D7ADC0809DBOE来自I/O译码直接连DB通过输入接口连DB74LS244+5VDIDOE1#E2#53ALE和START端的连接独立连接:用两个信号分别进行控制——需占用两个I/O端口或两个I/O线;统一连接:用一个脉冲信号的上升沿进行地址锁存,下降沿实现启动转换——只需占用一个I/O端口或一个I/O线。ADC0809ALESTART独立连接来自I/O译码1来自I/O译码2ADC0809ALESTART统一连接来自I/O译码54ADC0809与系统的连接例D0IN0A15--A0IORIOWD7--D0D7-D0EOCOESTARTALEADDCADDBADDA译码器ADC080955判断转换结束的方法软件延时等待(比如延时1ms),此时不用EOC信号------CPU效率最低软件查询EOC状态把EOC作为中断申请信号,接到8259的IR端在中断服务程序中读入转换结果,效率较高EOC通过一个三态门连到数据总线的某个D端三态门占用一个I/O端口地址CPU效率低56判断转换结束的程序用延时等待的方法……MOVDX,start_portOUTDX,AL;启动转换CALLDELAY_1MS;延时1msMOVDX,oe_portINAL,DX;读入结果……57判断转换结束的程序用查询EOC状态的方法……MO