6.4模拟量输入/输出通道6.4.1概述在一个实际的系统中需用传感器把各种物理参数(如压力和温度等)测量出来,并转换为电信号,再经过A/D转换器,传送给微型计算机;微型计算机加工处理后,通过D/A转换器去控制各种参数量。把模拟量转换成数字量的器件,称为模数转换器,简称为A/D(AnologtoDigit)。把数字量转换成模拟量的器件称为数模转换器,简称为D/A(DigittoAnolog)。一、模拟输入输出系统A/D转换器的作用:将模拟的电信号转换成数字信号。在将物理量转换成数字量之前,必须先将物理量转换成电模拟量,这种转换是靠传感器完成的。应用场合:微型计算机处理的是数字量,而实际上外界事物大多是模拟量,如:温度、压力、流量、浓度、速度、水位、距离等等,这些都是非电的物理量,它们必须经过适当的转换才能为微机处理。这一转换过程称为A/D转换,又称为量化过程。需要用到A/D转换器。传感器:传感器一般是指能够进行非电量和电量之间转换的敏感元件。传感器的精度直接影响整个系统的精度,如果传感器误差较大,则测量电路、放大电路以及A/D转换电路和微型计算机的处理都会受到影响。其发展方向在高精尖方面。几种典型的传感器。温度传感器、湿度传感器、气敏传感器、压电式和压阻式传感器、光纤传感器等二、A/D转化过程一般的A/D转换过程是通过采样、保持、量化和编码4个步骤完成的,这些步骤往往是合并进行的。三、多路模拟开关与采样保持电路1、多路模拟开关工作原理:由多个数字模拟开关组成,由地址确定输出模拟信号。芯片AD7501,AD75022、采样保持电路由电容、输入输出缓冲器、模拟开关、控制电路组成6.4.2DAC的一般工作原理为了实现数字量到模拟量的转换,必须将每位代码按其权值的大小转换成相应的模拟量,然后将各模拟分量相加,其总和就是与数字量对应的模拟量,这就是D/A转换的基本原理。D/A转换器主要由电阻网络、电子开关、基准电压及运算放大器组成。二、D/A转换器的基本结构1.权电阻网络D/A转换器⑴解码网络”由电阻网、受数字控制的模拟开关、基准源三部分构成。d1n位权网-+RfdnI0If∑V02.梯形R-2R解码网6.5.2数/模转换器芯片(DAC)及其接口技术(1)分辨率(Resolution)单位数字量对应模拟量增量。(2)精度(Accuracy)分绝对精度(AbsoluteAccuracy)和相对精度(RelativeAccuracy)(3)线性误差和微分线性误差(4)数据转换器的温度系数。分温度系数(TemperatureCoefficient)和增益温度系数(GainTemperatureCoefficient)(5)建立时间(SettlingTime),在数字输入端发生满量程码的变化以后,D/A的模拟输出稳定到最终值1/2LSB时,所需要的时间。(6)电源敏感度(PowerSupplySenstivity)(7)输出电压一致性(顺从性)(OutputVoltageCompliance)1.DAC-0832原理及应用⑴主要性能指标8位,单极性,数据线与TTL兼容;二级数据锁存(第一级为输入锁存);20脚双列直插式封装(DIP封装)。(宽小型:SO封装)⑵引脚介绍:DI0-DI7:8位数据输入端,为MSB位;ILE:数据允许锁存信号,高电平有效;CS:输入寄存器选择信号,低电平有效,它和ILE信号一起来决定是否起作用;WR1:输入寄存器的写选通信号;XFER:传送控制信号;WR2:DAC寄存器的写选通信号,必须和XFER同时有效;IOUT1:D/A转换器输出电流端之一。DAC锁存的数据位为“1”的位电流均流出此端;当DAC锁存器各位全1时,输出电流最大,全0时输出为0;IOUT2:D/A转换器输出电流端之二。与IOUT1是互补关系;Rbf:内备的反馈电阻引出端,另一端在片内与相接,芯片内部已提供一个反馈电阻,约;Vref:基准电压源输入端,此端可以接正电压,也可接负电压,供解码网用-10---+10;VCC:芯片供电电源引入端;AGND:模拟信号地,即模拟电路接地端;DGND:数字量地。⑶内部结构及控制原理+D7D0+5V(80H)Y0IOW(81H)Y1ERV0VRI02I01RfbDI7DI0ILECSWR1WR2XFER.........MOVAL,80H;立即数OUT80H,AL;80H:地址,送入R1锁存OUT81H,AL;传送,与AL中数无关CSXFERWR1,2DI0~DI7DAC-0832(1)ILEVCCCSXFERWR1,2DI0~DI7DAC-0832(2)ILEVCCport1port3port2D0~D7WR+5V+5V+5V三、数/模转换器芯片和微处理器的接口需要注意的问题绝大多数所谓与微处理器兼容的转换器件都还需要配置一些用于地址译码、数据锁存和信号组合等方面的外加电路才能与微机协同工作。数据线连接原则:不具备锁存器时,则需外加寄存器;具备锁存器时,不加寄存器DAC位数DBUS数据线宽度:①数据线的连接方法(有选通控制端,可直接相连);②锁存器:第一级:二个寄存器以上,不足的需外加;第二级:DAC锁存器。3.数/模转换器的应用1)单缓冲方式DAC0832工作在单缓冲方式下的一种连接电路.在实际应用中,经常需要用到一个有规律变化的电压去控制某个过程。可以利用D/A转换器产生各种波形,如方波、三角波、锯齿波以及它们的复合波形和不规则波形等。①锯齿波MOVDX,0FFFOHMOVAL,00HL1:OUTDX,ALINCALJMPL1②三角波MOVDX,0FFF0HMOVAL,00HL1:OUTDX,ALINCALJNZL1MOVAL,0FFHL2:OUTDX,ALDECALJNZL2JMPL1③方波MOVDX,0FFF0HL1:MOVAL,00HOUTDX,ALCALLDELAYMOVAL,0FFHOUTDX,ALCALLDELAYJMPL12)双缓冲方式DAC0832工作于双缓冲方式的连接电路图如图所示。CPU执行第一条输出指令,将数据输入输入寄存器,第二条输出指令,将输入寄存器的数据输入DAC寄存器。这两条输出指令所用的地址是不同的。6.6.3模/数转换芯片(ADC)及其接口技术一、A/D的工作原理按被转换的模拟量类型可分为时间/数字、电压/数字、机械变量/数字等。应用最多的是电压/数字转换器。电压/数字转换器又可分为多种类型:按转换方式可分为:直接转换、间接转换。按输出方式分可分为:并行、串行、串并行。按转换原理可分为:计数式、比较式。按转换速度可分为:低速、中速、高速。按转换精度和分辨率可分为:3位、4位、8位、10位、12位、14位、16位等等计数器对时钟脉冲加1计数,产生从0开始的数字量,经D/A转换器转换成模拟电压V0,V0和待转换电压Vi进行比较,若ViVo则Vc=l,继续计数:若Vi≤Vo则输出Vc=0,停止计数,计数器输出的数字量与输入模拟电压Vi相等效的数字量。三、A/D的性能参数和术语1.分辨率2.量化误差:在A/D转换中整量化所产生的误差。3.转换时间:指A/D完成一次转换所需要的时间。4.绝对精度:绝对精度指的是A/D转换器的输出端所产生的数字代码中,分别对应于实际需要的模拟输入值与理论上要求的模拟输入值之差5.相对精度:相对精度指的是满度值校准以后,任一数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。。6.漏码:如果模拟输入连续增加(或减小)时,数字输出不是连续增加(或减小)而是越过某一个数字,即出现漏码。四、A/D芯片ADC0808(0809)1、主要性能指标2、原理图及控制原理①模拟量输入;②A/D转换器;③数据输出3、引脚介绍:VCC:主电源输入端。REF(+)、REF(-):基准电源输入端,使用中REF(-)一般接地,REF(+)最大可接,要求不高时,REF(+)接的电源。GND:模拟地数字地共用的接地端。CLK:时钟输入引脚,时钟频率范围,典型值,此时转换时间约为。IN0-IN7:8路模拟量单极性电压的输入引脚。ADDA、ADDB、ADDC:8选1模拟开关的三位通道地址输入端。用来选择对应的输入通道.比如CBA=011,则选中引脚的输入电压。C、B、A通常与系统地址总线相连的.ALE:为通道地址锁存允许选通控制端,输入上跳沿有效;它有效时,C、B、A的通道地址值才能进入通道地址锁存器,ALE下跳为低电平(无效)时,锁存器锁存进入的通道地址。START:启动A/D转换控制引脚,由高电平下跳为低电平时有效;即对该引脚输入正脉冲下跳沿后,ADC开始逐次比较;也可将START与ALE连接在一起使用,安排一个CPU写端口地址;正脉冲上升沿通道地址(码)被写入通道地址锁存器,下降沿启动A/D转换.EOC:ADC转换状态输出信号引脚;未启动转换时,EOC为高电平,启动转换后,正在逐次逼近比较期间EOC为低电平,低电平持续时间为A/D转换时间,约(与时钟频率有关),一旦转换完毕,EOC端上跳为高电平,此信号可供CPU查询或向CPU发中断。DB7~DB0:8位数字量输出引脚,它是三态输出数据锁存器的输出引脚,未选通时,8个引脚对片内均为高阻断开;可与系统数据总线直接相连。OE:数字量输出允许控制端,输入正脉冲有效;有效时,数据输出三态门被打开,转换好的数字量各位被送到引脚上;无效时,浮空(高阻隔离)4、接口电路软、硬件设计举例(1).A/D转换器与系统连接时需考虑的问题数据输出线的连接模拟输入电压的连接A/D转换的启动信号转换结束信号的处理方式时钟的提供参考电压的接法。(2)当A/D转换结束,ADC输出一个转换结束信号数据。CPU可有多种方法读取转换结果:①查询方式;②中断方式;③延时方式;①ADC0808/9与CPU接口(查询法)例:假设仅对模拟通道IN0进行A/D转换。采用查询方式的程序如下(对0通道采样一个点),接口电路程序如下OUT50H,AL;选通IN0启动A/D转换W:INAL,41H;输入EOC标志TESTAL,01HJZW;未结束,返回等待INAL,49H;结束,把结果送入AL中2、若对IN0~IN7这8个通道的模拟量各采样100个点,并转换成数字量的采用查询方式的程序段如下:MOVBX,OFFSETWP;设置数据存储指针MOVCL,100;设置计数初值N:MOVDX,0050HP:OUTDX,AL;选通一个通道,启动A/DNOPW:INAL,41H;输入EOC标志TESTAL,0lH;测试状态JZW;未结束,返回等待INAL,49H;结束,读数据MOV[BX],AL;存数INCBX;修改存储地址指针INCDX;修改A/D通道地址CMPDX,0058H;判断八个通道是否转换完JNZP;未完,返回启动新通道DECCL;100个点是否采样完了,未完返回再启动IN0通道JNZNHLT;100个点完成,暂停A/D芯片和CPU间的时序配合问题⑴固定延时等待法⑵保持等待法⑶中断响应法⑷查询法⑸双重缓冲法A/D分辨率超过微处理器数据总线位数时的接口ADC的控制和状态信号⑴启动信号(START)⑵转换结束信号(EOC或READY或BUSY)⑶输出允许信号(OUTPUTENABLE)ADC0809芯片和系统的连接举例设某系统对8路模拟量分时进行数据采集,选用ADC0809芯片进行A/D转换,转换结果采用查询方式传送,所以除了一个传送转换结果的输入端口外,还需要传送8个模拟量的选择信号和A/D转换的状态信息。因此,可以采用8255A作为ADC0809和CPU的连接接口,将A口设为方式0的输入方式,用于传送转换结果,B口不用,用C口的PC2~PC0输出8路模拟量的选择信号