2019/12/19计算机接口技术1第9章A/D与D/A转换器接口本章主要内容模拟量接口的作用A/D转换器接口设计的任务与方法A/D转换器接口应用设计举例D/A转换器接口设计的任务与方法D/A转换器接口应用设计举例2019/12/19计算机接口技术29.1模拟量接口的作用微型计算机在实时控制、在线动态测量和对物理过程进行监控,以及图像、语音处理领域的应用中,都要与一些连续变化的模拟量(如温度、压力、流量、位移、速度、光亮度、声音、颜色等)打交道,但数字计算机本身只能识别和处理数字量,因此,必须经过转换器,把模拟量A转换成数字量D,或将数字量D转换成模拟量A,才能实现CPU与被控对象之间的信息交换。显然,微机在面向过程控制、自动测量和自动监控系统与各种被控、被测对象发生关系时,需要设置一种“模拟量接口”。2019/12/19计算机接口技术3模拟量接口电路的作用:把微处理器系统的离散的数字信号与模拟设备中连续变化的模拟信号电压、电流之间建立起适配关系,以便计算机执行控制与测量任务。从硬件角度来看,模拟量接口就是微处理器与A/D转换器和D/A转换器之间的连接电路,前者称为模入接口,后者称为模出接口。2019/12/19计算机接口技术49.2A/D转换器功能:把模拟量变换成数字量分类:按分辨率可分为4位、6位、8位、10位、14位、16位和BCD码的312位、512位等;按照转换速度可分为超高速、高速、中速及低速等;按转换原理可分为直接ADC(有逐次逼近型、并联比较型等)和间接ADC(有电压/时间转换型(积分型)、电压/频率转换型、电压/脉宽转换型等)。2019/12/19计算机接口技术59.2.1A/D转换器的主要技术指标1.分辨率分辨率是指ADC能够把模拟量转换成二进制数的位数。例如,用1个10位ADC转换一个满量程为5V的电压,则它能分辨的最小电压为5000mV/1024≈5mV。若模拟输入值的变化小于5mV的电压,则ADC无反映,输出保持不变,即只能分辨出5mV以上的变化。同样5V电压,若采用12位ADC,则它能分辨的最小电压为5000mV/4096≈1mV。可见,ADC的数字量输出位数越多,其分辨率就越高。2019/12/19计算机接口技术6ADC的分辨率反映在它的输出数据线的宽度上,如ADC0809的分辨率是8位,它的数据线也是8根;AD574A的分辨率是12位,它的数据线也是12根。分辨率不同会影响ADC接口与系统数据总线的连接。当分辨率即ADC的输出数据线宽度大于微机系统数据总线宽度时,就不能一次传输,而需两次传输,要增加附加电路(缓冲寄存器),从而影响接口电路的组成及数据传输的途径。2019/12/19计算机接口技术72.转换时间转换时间是从输入启动转换信号开始到转换结束,得到稳定的数字量输出为止所需的时间,一般为ms级和μs级。转换时间的快慢将会影响ADC接口与CPU交换数据的方式。低速和中速ADC一般采用查询或中断方式,而高速ADC就应采用DMA方式。2019/12/19计算机接口技术89.2.2A/D转换器的外部特性由于A/D转换器内部一般没有设置供用户访问的寄存器,也没有命令字。它的转换操作是由其内部硬件逻辑电路完成的,而不是它执行内部的命令完成的,因此,它不好用可编程特性的编程模型来表述。在分析A/D转换器芯片时,主要是看它的外部连接特性,其中转换启动信号是CPU对A/D转换器唯一的控制信号。从外部特性来看,无论是哪种ADC芯片,都必不可少地设置有4种基本外部信号线。这些信号线是实现A/D转换操作的条件,也是设计ADC接口硬件电路的依据。2019/12/19计算机接口技术91.模拟信号输入线来自被转换对象的模拟量输入线,有单通道输入与多通道输入之分接口硬件电路的依据。2.数字量输出线ADC的数字量数据输出线。数据线的根数表示ADC的分辨率。3.转换启动线外部控制信号,此信号一到,A/D转换才能开始,启动转换信号不到,ADC不会自动开始转换,并且是发一次启动信号只能转换一次,采集一个数据。4.转换结束线转换完毕后由ADC发出A/D转换结束信号,利用它以查询或中断方式向微处理器报告转换已经完成。只有转换结束信号出现时,微处理器才可以开始读取数据。2019/12/19计算机接口技术10几种A/D转换器芯片相同功能的引脚对照如表9.1所示。2019/12/19计算机接口技术119.3A/D转换器接口设计的任务与方法由于接口连接的对象A/D转换器自身的操作比较单一,因而要求外部对它实施的控制比较简单,所以转换器接口只需少数几根信号线,采用并行接口就绰绰有余,甚至使用一些IC芯片也能满足接口功能要求。但是,转换器与CPU交换数据的方式多种多样,查询、中断、DMA方式都有可能,因此在转换器接口设计中会牵涉到对系统中断、DMA资源的应用。A/D转换器接口设计的任务,主要有两个方面:ADC如何与CPU进行连接和如何与CPU交换数据,有时还要考虑对所采集的数据进行在线处理。2019/12/19计算机接口技术129.3.1A/D转换器与CPU的连接在A/D转换器与CPU的进行连接时,要注意分析它的4种外部信号线的特点,采用不同的方法。1.ADC转换的启动信号1)ADC的转换启动方式有脉冲启动和电平启动之分。若是脉冲启动,则只需接口电路提供1个宽度满足启动要求的脉冲信号即可。一般采用IOW或IOR的脉宽就可以了。若是电平启动,则要求启动信号的电平在转换过程中保持不变,否则(如中途撤销)就会停止转换而产生错误的结果。为此,就应增加附加电路(如D触发器、单稳电路)或采用可编程并行I/O接口芯片来锁存这个启动信号,使之在转换过程中维持不变。2019/12/19计算机接口技术132)ADC的转换启动信号有单个信号启动和由多个信号组合起来的复合信号启动之分。若是由单个信号启动,如ADC0809的START,则只需接口电路提供1个START正脉冲信号。若是由复合信号启动,如AD574A的CE(R/C=0),CS,则CE、R/C=0和CS三个信号要同时满足要求才能启动。2.ADC模拟量输入的控制信号1)ADC的模拟信号输入信号有多通道和单通道之分。若是多通道,则要求接口电路提供通道地址线及通道地址锁存信号线,以便选择与确定输入模拟量的通道号。若是单通道,则不需要处理。2019/12/19计算机接口技术143.ADC数字量输出的控制信号1)ADC的数据输出是否是三态锁存器。若是,则ADC的输出数据线可直接挂在CPU的数据总线上;否则,必须在ADC的输出数据线与CPU的数据总线之间外加三态锁存器才能连接。2)ADC的分辨率与系统数据总线宽度是否一致。若一致,则数据只需1次传输,数据线可直接连接;若不一致,则数据需分批传输,应增加附加电路(缓冲寄存器)。2019/12/19计算机接口技术154.ADC的转换结束信号A/D转换结束后,用转换结束信号通知CPU,转换已经结束,请求读取数据。转换结束信号的逻辑定义,有的是高电平有效,有的是低电平有效。转换结束信号可用于查询方式、中断方式、DMA方式的申请信号。2019/12/19计算机接口技术169.3.2A/D转换器与CPU之间的数据交换方式采集的数据用什么方式传输到内存,是A/D转换器接口设计,也是数据采集系统设计中的一个重要内容,因为数据传输速度是关系到数据采集速率的重要因素。假定ADC的转换时间为T,每次转换后将数据传输到指定的内存单元所需的时间为τ,则采集速率的上限为f0=1/(T+τ)。所以,为了提高数据采集速率,一是采用高速A/D转换芯片,使T尽量小;一是减少数据传输过程中所花的时间τ,特别是高速或超高速数据采集系统,τ的减少显得尤为重要。因此,需要研究ADC与CPU之间数据交换采用什么方式的问题。2019/12/19计算机接口技术17ADC与内存之间交换数据,根据不同的要求,可采用查询、中断、DMA方式,以及在板RAM技术。不同的方式使ADC接口电路的组成不同,编程的方法也不同。所谓在板RAM技术是针对超高速数据采集系统,其ADC速度非常快,采用DMA方式传输也跟不上转换的速度,故在ADC板上设置RAM,把采集的数据先就近存放在RAM中,然后,再从板上的RAM取出数据送到内存。这也是数据采集系统中为解决转换速度快,而传输速度跟不上的一种方法。2019/12/19计算机接口技术189.3.3A/D转换器的数据在线处理实际应用中,对采集到的数据一般都要进行一些处理,包括生成数据文件、存盘、显示、打印、远距离传输等。有的还要将采集的数据作为重要参数参与运算,进行进一步的加工。虽然这些处理不属于ADC接口控制程序的内容,但它们是A/D转换之后,常常遇到的操作,因此,往往也把其中的一些操作放在A/D转换程序之中。例如,将采集到的数据在屏幕上显示出来,以便观察A/D转换的结果是否正确。又如,将前端机采集的数据生成数据文件,再传输到上位机去进行加工等。2019/12/19计算机接口技术199.3.4A/D转换器接口设计需考虑的问题1.ADC的模拟量输入是否是多通道?是,则需选择通道号,应提供通道选择线;不是,则不做处理。2.ADC的分辨率是否大于系统数据总线宽度?是,则要分两次传输,故需增加锁存器,并提供锁存器选通信号;不是,则不做处理。3.ADC芯片内部是否有三态输出锁存器?无,则ADC的数据线不能与系统的数据线直接连接,故需增加三态锁存器,并提供锁存允许信号;有,则不做处理。4.ADC的启动方式是脉冲触发还是电平触发?是脉冲,则提供脉冲信号;是电平,则提供电平信号,并保持到转换结束。2019/12/19计算机接口技术205.A/D转换的数据采用哪种传输方式?有无条件传输、查询方式、中断方式和DMA方式等多种方式选择。传输的方式不同,接口的硬件组成和软件编程就不同。6.对A/D转换的数据进行什么样的处理?有显示、打印、生成文件存盘、远距离传输等多种处理。7.ADC接口电路采用什么元器件组成?有普通IC芯片、可编程并行口芯片、GAL器件等多种选择。前面4项是由接口对象ADC决定的(可从芯片手册中查到),用户无法改变,只能按照它的要求在设计中给予满足。后面3项是可以改变的,设计者应根据设计目标灵活选用。2019/12/19计算机接口技术219.4查询方式的ADC接口设例9.1查询方式的ADC接口设计1.要求要求利用ADC0804采集100个字节数据,采集的数据以查询方式传输到内存BUFR区。接口电路采用普通IC芯片组成。2.分析按照9.3.4节的方法进行分析,ADC0804是单个模拟量输入,故不提供通道选择信号。ADC0804的分辨率为8位,并具有三态输出锁存器,故可与系统数据总线直接相连。ADC0804的启动方式为脉冲启动,当它的输入引脚CS和WR两个信号同时有效,就开始转换。转换结束信号是INTR,当INTR=0,表示转换结束。数据传输方式为查询方式,故需将转换结束状态信号作为查询的对象。2019/12/19计算机接口技术223.设计(1)硬件设计由以上分析可知,本接口电路的任务是提供转换启动信号和转换结束状态信号,以及输入8位数据的通路。为此,要设计端口地址译码电路,产生CS,并由CS和WR共同组成启动信号。同时,还要设置一个三态门,将转换结束信号INTR引到数据线的D7上,以便CPU读取状态。而转换器的8位数据线直接与系统数据线连接。接口电路原理如图9.1所示。2019/12/19计算机接口技术23图9.1查询方式ADC接口电路原理图2019/12/19计算机接口技术24(2)软件编程ADC接口控制程序,也就是数据采集程序,其程序的基本结构是循环程序。因为数据采集往往要采样多个点的数据,而每一次启动,只能采集(转换)1个数据,所以,采集程序要循环执行多次,直至采样次数已到为止。查询方式数据采集流程图如图9.2所示。查询方式数据采集汇编语言程序段和C语言程序段,见教材P166~167.图9.2查询方式数据采集程序流程2019/12/19计算机接口技术259.5中断方式的AD