1、2023-2-10计算机接口技术1第第9章章 A/D与与D/A转换器接口转换器接口本章主要内容本章主要内容模拟量接口的作用模拟量接口的作用 A/D转换器接口设计的任务与方法转换器接口设计的任务与方法A/D转换器转换器接口应用设计举例接口应用设计举例D/A转换器接口设计的任务与方法转换器接口设计的任务与方法D/A转换器接口应用设计举例转换器接口应用设计举例2023-2-10计算机接口技术29.1 模拟量接口的作用模拟量接口的作用 微型计算机在微型计算机在实时控制、在线动态测量和对物理过程进行监控,以及图像、语音处理领域的应用中,都要与一些连续变化的模拟量与一些连续变化的模拟量(如温度、压力、流量
2、、位移、速度、光亮度、声音、颜色等)打打交道交道,但数字计算机本身只能识别和处理数字量,因此,必须经过必须经过转换器转换器,把模拟量模拟量A转换成数字量数字量D,或将数字量数字量D转换成模拟量模拟量A,才能实现CPU与被控对象之间的信息交换。显然,微机在面向过程控制、自动测量和自动监控系统与各种被控、被测对象发生关系时,需要设置一种需要设置一种“模拟量接口模拟量接口”。2023-2-10计算机接口技术3 模拟量接口电路的作用模拟量接口电路的作用:把把微处理器系统的离散的数字信号离散的数字信号与模拟设备中连续变化的模拟信号模拟设备中连续变化的模拟信号电压、电流之间建立起适配建立起适配关系关系,以
3、便计算机执行控制与测量任务。从硬件角度来看,模拟量接口模拟量接口就是微处理器微处理器与A/D转换器转换器和D/A转换器转换器之间的连接电路连接电路,前者称为模入接口模入接口,后者称为模模出接口出接口。2023-2-10计算机接口技术49.2 A/D转换器转换器功能:功能:把模拟量变换成数字量把模拟量变换成数字量分类分类:按分辨率按分辨率可分为4位、6位、8位、10位、14位、16位和BCD码的312位、512位等;按照转换速度按照转换速度可分为超高速、高速、中速及低速等;按转换原理按转换原理可分为直接ADC(有逐次逼近型、并联比较型等)和间接ADC(有电压时间转换型(积分型)、电压频率转换型、
4、电压脉宽转换型等)。2023-2-10计算机接口技术59.2.1 A/D转换器的主要技术指标转换器的主要技术指标1.1.分辨率分辨率 分辨率分辨率是指ADC能够把模拟量转换成二进制数的位数能够把模拟量转换成二进制数的位数。例如,用1个10位ADC转换一个满量程为5V的电压,则它能分辨的最小电压为5000mV/10245mV。若模拟输入值的变化小于5mV的电压,则ADC无反映,输出保持不变,即只能分辨出5mV以上的变化。同样5V电压,若采用12位ADC,则它能分辨的最小电压为5000mV/40961mV。可见,ADC的数字量输出位数越多,其分辨的数字量输出位数越多,其分辨率就越高。率就越高。20
5、23-2-10计算机接口技术6 ADC的分辨率反映在它的输出数据线的宽度上的分辨率反映在它的输出数据线的宽度上,如ADC0809的分辨率是8位,它的数据线也是8根;AD574A的分辨率是12位,它的数据线也是12根。分辨率不同分辨率不同会影响ADC接口与系统数据总线的连接接口与系统数据总线的连接。当分辨率即ADC的输出数据线宽度大于微机系统数据总线宽度时,就不能一次传输,而需两次传输,要增加附加电路(缓冲寄存器),从而影响接口电路的组成及数据传输的途径。2023-2-10计算机接口技术72.2.转换时间转换时间 转换时间转换时间是从输入启动转换信号开始到转换结束从输入启动转换信号开始到转换结束
6、,得到稳定的数字得到稳定的数字量输出为止所需的时间量输出为止所需的时间,一般为ms级和s级。转换时间的快慢转换时间的快慢将会影响ADC接口与接口与CPU交换数据的方式交换数据的方式。低速和中速ADC一般采用查询或中断方式,而高速ADC就应采用DMA方式。2023-2-10计算机接口技术89.2.2 A/D转换器的外部特性转换器的外部特性 由于A/D转换器转换器内部一般没有设置供用户访问的寄存器没有设置供用户访问的寄存器,也没有命令字。它的转换操作是由其内部硬件逻辑电路完成的,而不是它执行内部的命令完成的,因此,它不好用可编程特性的编程模型来表述不好用可编程特性的编程模型来表述。在分析A/D转换
7、器芯片时,主要是看它的外部连接特性主要是看它的外部连接特性,其中转换启动信号是CPU对A/D转换器唯一的控制信号。从外部特性来看从外部特性来看,无论是哪种ADC芯片,都必不可少地设置设置有4种基本种基本外部信号线。外部信号线。这些信号线是实现A/D转换操作的条件,也是设计是设计ADC接口硬件接口硬件电路的依据。电路的依据。2023-2-10计算机接口技术91 1模拟信号输入线模拟信号输入线 来自被转换对象的模拟量输入线来自被转换对象的模拟量输入线,有单通道输入与多通道输入之分接口硬件电路的依据。2 2数字量输出线数字量输出线 ADC的数字量数据输出线的数字量数据输出线。数据线的根数表示ADC的
8、分辨率。3 3转换启动线转换启动线 外部控制信号外部控制信号,此信号一到,A/D转换才能开始转换才能开始,启动转换信号不到,ADC不会自动开始转换,并且是发一次启动信号只能转换一发一次启动信号只能转换一次,次,采集一个数据。4 4转换结束线转换结束线 转换完毕后由ADCADC发出发出A/D转换结束转换结束信号信号,利用它以查询或中断方式向微处理器报告转换已经完成。只有转换结束信号出现时只有转换结束信号出现时,微处理器才可以开始读取数据才可以开始读取数据。2023-2-10计算机接口技术10几种A/D转换器芯片相同功能的引脚对照相同功能的引脚对照如表如表9.1所示所示。2023-2-10计算机接
9、口技术119.3 A/D转换器接口设计的任务与方法转换器接口设计的任务与方法由于接口连接的对象接口连接的对象A/D转换器自身的操作比较单一的操作比较单一,因而要求外部对对它实施的控制比较简单它实施的控制比较简单,所以转换器接口只需少数几根信号线,采用并行接口就绰绰有余,甚至使用一些IC芯片也能满足接口功能要求。但是,转换器转换器与CPU交换数据的方式多种多样交换数据的方式多种多样,查询、中断、DMA方式都有可能,因此在转换器接口设计中接口设计中会牵涉到对系统中断、会牵涉到对系统中断、DMA资源的应的应用。用。A/D转换器接口设计的任务,转换器接口设计的任务,主要有两个方面:有两个方面:ADC如
10、何与如何与CPU进行连进行连接接和如何与如何与CPU交换数据交换数据,有时还要考虑对所采集的数据进行在线处理。2023-2-10计算机接口技术129.3.1 A/D转换器与转换器与CPU的连接的连接在A/D转换器与CPU的进行连接时,要注意分析它的4种外部信号线的特点,采用不同的方法。1.ADC1.ADC转换的启动信号转换的启动信号 1)ADC的转换启动方式的转换启动方式有脉冲启动脉冲启动和电平启动电平启动之分。若是脉冲启动脉冲启动,则则只需接口电路提供提供1个宽度满足启动要求的脉冲信号个宽度满足启动要求的脉冲信号即可。一般采用IOW或IOR的脉宽就可以了。若是电平启动电平启动,则要求启动信号
11、的电平在转换过则要求启动信号的电平在转换过程中保持不变程中保持不变,否则(如中途撤销)就会停止转换而产生错误的结果。为此,就应增加附加电路(如D触发器、单稳电路)或采用可编程并行I/O接口芯片来锁存这个启动信号,使之在转换过程中维持不变。2023-2-10计算机接口技术13 2)ADC的转换启动信号的转换启动信号有单个信号启动单个信号启动和由多个信号组合起来的复多个信号组合起来的复合信号合信号启动之分。若是由单个信号启动由单个信号启动,如ADC0809的START,则只需接口电路提供1个START正脉冲信号。若是由复合信号启动由复合信号启动,如AD574A的CE(R/C=0),CS,则 CE、
12、R/C=0和 CS三个信号要同时满足要求才能启动。2.ADC2.ADC模拟量输入的控制信号模拟量输入的控制信号 1)ADC的模拟信号输入信号的模拟信号输入信号有多通道多通道和单通道单通道之分。若是多通道多通道,则则要求接口电路提供通道地址线提供通道地址线及通道地址锁存信号线通道地址锁存信号线,以便选择与确定输入模拟量的通道号。若是单通道单通道,则不需要处理则不需要处理。2023-2-10计算机接口技术14 3.ADC3.ADC数字量输出的控制信号数字量输出的控制信号 1)ADC的数据输出是否是三态锁存器。若是的数据输出是否是三态锁存器。若是,则ADC的输出数据线可的输出数据线可直接挂在直接挂在
13、CPU的数据总线上的数据总线上;否则否则,必须在ADC的输出数据线与CPU的数据总线之间外加三态锁存器才能连接外加三态锁存器才能连接。2)ADC的分辨率与系统数据总线宽度是否一致的分辨率与系统数据总线宽度是否一致。若一致若一致,则数据只需1次传输,数据线可直接连接数据线可直接连接;若不一致若不一致,则数据需分批传输,应增加附加电增加附加电路路(缓冲寄存器)。2023-2-10计算机接口技术15 4.ADC4.ADC的转换结束信号的转换结束信号 A/D转换结束后,用转换结束信号通知CPU,转换已经结束,请求读取数据。转换结束信号转换结束信号的逻辑定义,有的是高电平有效有的是高电平有效,有的是低电
14、平有的是低电平有效。有效。转换结束信号可用于查询方式、中断方式、DMA方式的申请信号。2023-2-10计算机接口技术169.3.2 A/D转换器与转换器与CPU之间的数据交换方式之间的数据交换方式 采集的数据用什么方式采集的数据用什么方式传输到内存传输到内存,是是A/D转换器接口设计转换器接口设计,也是数据采集系统设计中的一个重要内容数据采集系统设计中的一个重要内容,因为数据传输速度是关系到数据采集速率的重要因素。假定ADC的转换时间转换时间为为T,每次转换后将数据传输到数据传输到指定的内内存存单元所需的时间的时间为为,则采集采集速率的上限速率的上限为f0=1/(T+)。所以,为了提高数据采
15、集速率,一是采用高速A/D转换芯片,使T尽量小;一是减少数据传输过程中所花的时间,特别是高速或超高速数据采集高速或超高速数据采集系统系统,的减少显得尤为重要。的减少显得尤为重要。因此,需要研究ADC与CPU之间数据交换采用什么方式的问题。2023-2-10计算机接口技术17ADC与内存之间交换数据与内存之间交换数据,根据不同的要求,可采用查询、可采用查询、中断、中断、DMA方式,以及在板方式,以及在板RAM技术技术。不同的方式不同的方式使ADC接接口电路的组成不同口电路的组成不同,编程的方法也不同编程的方法也不同。所谓在板所谓在板RAM技术技术是针对超高速数据采集系统,其ADC速度非常快,采用
16、DMA方式传输也跟不上转换的速度,故在在ADC板上设置板上设置RAM,把采集的数据先就近存放在,把采集的数据先就近存放在RAM中中,然然后后,再从板上的再从板上的RAM取出数据送到内存取出数据送到内存。这也是是数据采集系统中为解决为解决转换速度快,而传输速度跟不上的一种方法转换速度快,而传输速度跟不上的一种方法。2023-2-10计算机接口技术189.3.3 A/D转换器的数据在线处理转换器的数据在线处理实际应用中,对采集到的数据一般都要进行一些处理对采集到的数据一般都要进行一些处理,包括生成生成数据文件数据文件、存盘存盘、显示显示、打印打印、远距离传输远距离传输等。有的还要将采集的数据作为重
17、要参数参与运算,进行进一步的加工。虽然这些处理不属于ADC接口控制程序的内容,但它们是是A/DA/D转换之后,常常遇到的操作转换之后,常常遇到的操作,因此,往往也把其中的一些操作放在A/D转换程序之中。例如,将采集到的数据在屏幕上显示出来,以便观察A/D转换的结果是否正确。又如,将前端机采集的数据生成数据文件,再传输到上位机去进行加工等。2023-2-10计算机接口技术199.3.4 A/D转换器接口设计需考虑的问题转换器接口设计需考虑的问题1.ADC的模拟量输入是否是多通道?的模拟量输入是否是多通道?是是,则需选择通道号,应提应提供通道选择线供通道选择线;不是不是,则不做处理则不做处理。2.
18、ADC的分辨率是否大于系统数据总线宽度?的分辨率是否大于系统数据总线宽度?是是,则要分两次传输,故需增加锁存器故需增加锁存器,并提供锁存器选通信号;不是不是,则不做处理则不做处理。3.ADC芯片内部是否有三态输出锁存器?芯片内部是否有三态输出锁存器?无无,则ADC的数据线不能与系统的数据线直接连接,故需增加三态锁存器需增加三态锁存器,并提供锁存允许信号;有有,则不做处理则不做处理。4.ADC的启动方式是脉冲触发还是电平触发?的启动方式是脉冲触发还是电平触发?是脉冲是脉冲,则提供脉冲信号;是电平是电平,则提供电平信号,并保持到转换结束。2023-2-10计算机接口技术205.A/D转换的数据采用
19、哪种传输方式?转换的数据采用哪种传输方式?有无条件传输无条件传输、查询方式查询方式、中断方式中断方式和DMA方式方式等多种方式选择。传输的方式不同,接口的硬件组成和软件编程就不同。6.对对A/D转换的数据进行什么样的处理?转换的数据进行什么样的处理?有显示显示、打印打印、生成文生成文件存盘件存盘、远距离传输距离传输等多种处理。7.ADC接口电路采用什么元器件组成?接口电路采用什么元器件组成?有普通IC芯片芯片、可编程可编程并行口芯片并行口芯片、GAL器件等多种选择。前面4项是由接口对象ADC决定的(可从芯片手册中查到),用户无法改变,只能按照它的要求在设计中给予满足。后面3项是可以改变的,设计
20、者应根据设计目标灵活选用。2023-2-10计算机接口技术219.4 查询方式的查询方式的ADC接口设接口设 例例9.1 查询方式的查询方式的ADC接口设计接口设计1 1要求要求要求利用要求利用ADC0804ADC0804采集采集100100个字节数据个字节数据,采集的数据以查询方式以查询方式传输到内存BUFR区。接口电路采用普通接口电路采用普通ICIC芯片芯片组成。2分析分析 按照按照9.3.4节的方法进行分析节的方法进行分析,ADC0804是单个模拟量输入单个模拟量输入,故不提供通道选择信号。ADC0804的分辨率为分辨率为8位位,并具有三态输出锁存器具有三态输出锁存器,故可与系统数据总线
21、直接相连。ADC0804的启动方式启动方式为脉冲启动脉冲启动,当它的输入引脚 CS和WR 两个信号同时有效,就开始转换。转换结束信号换结束信号是 INTR,当INTR=0,表示转换结束。数据传输方式为查询方式查询方式,故需将转换结束状态信号作为查询的对象。2023-2-10计算机接口技术223设计设计(1 1)硬件设计)硬件设计由以上分析可知由以上分析可知,本接口电路的任务本接口电路的任务是提供转换启动信号提供转换启动信号和转换转换结束状态信号结束状态信号,以及输入输入8 8位数据的通路位数据的通路。为此,要设计端口地址译要设计端口地址译码电路码电路,产生产生 CSCS,并由由 C CS S和
22、和W WR R 共同组成共同组成启动信号启动信号。同时,还要设要设置一个三态门置一个三态门,将转换结束信号转换结束信号I INTRNTR引到数据线的数据线的D7D7上上,以便CPU读读取状态取状态。而转换器的转换器的8 8位数据线位数据线直接与系统数据线连接系统数据线连接。接口电路原理接口电路原理如图如图9.19.1所示所示。2023-2-10计算机接口技术23图9.1 查询方式ADC接口电路原理图2023-2-10计算机接口技术24 (2)(2)软件编程软件编程 ADCADC接口控制程序接口控制程序,也就是数据采集程序数据采集程序,其程序的基本其程序的基本结构是循环程序结构是循环程序。因为数
23、据采集往往要采样多个点的数据,而每一次启动,只能采集(转换)1个数据,所以,采集程序要循环执行多次,直至采样次数已到为止。查询方式数据采集流程图数据采集流程图如图如图9.2所示所示。查询方式数据采集汇编语言程序段和C语言程序段,见教材见教材P166167.图9.2 查询方式数据采集程序流程2023-2-10计算机接口技术259.5 中断方式的中断方式的ADC接口设计接口设计 例例9.2 中断方式的中断方式的ADC接口设计接口设计 1.1.要求要求 采用采用ADC0809,从通道通道7采集100个字节数据个字节数据,采集的数据以中断方式传中断方式传输输到内存缓冲区,并将转换结束信号EOC连到IR
24、Q4上,请求中断。2.2.分析分析 要实现上述设计要求,至少有3个方面的问题个方面的问题需要考虑:被控对象ADC0809的外部特性的外部特性、接口电路结构形式接口电路结构形式、中断处理中断处理。下面分别进行分析。(1)ADC0809的外部特性的外部特性 ADC0809的外部的外部引脚引脚如图如图9.3所示所示,内部逻辑内部逻辑如图如图9.4所示所示。ADC0809的时序的时序如图如图9.5所示所示。2023-2-10计算机接口技术26图9.4 ADC0809内部逻辑原理图 图9.3 ADC0809引脚图2023-2-10计算机接口技术27ADC0809的时序的时序如图如图9.5所示所示。图9.
25、5 ADC0809的时序2023-2-10计算机接口技术28 按照按照9.3.4节的方法,结合图节的方法,结合图9.3、图、图9.4进行分析进行分析,ADC0809有8个模拟量输入端个模拟量输入端(IN0IN7),相应设置相应设置3根模拟量通道地址线根模拟量通道地址线(ADDAADDC),用以编码来选择8个模拟量输入通道。并且还设置还设置1根通道地址锁存允许信号根通道地址锁存允许信号ALE,高电平有效。当选择通道地址时,需使ALE变高,锁存由ADDAADDC编码所选中的通道号,将该通道的模拟量接入ADC。ADC0809的分辨为分辨为8,有有8根数字量输出线根数字量输出线(D7D0),带有三态输
26、带有三态输出锁存缓冲器出锁存缓冲器。并设置了设置了1根数据输出允许信号数据输出允许信号OE,高电平有效。当读数据时,要使OE置高,打开三态输出缓冲器,把转换的数字量送到数据线上。2023-2-10计算机接口技术29(2)接口电路结构形式接口电路结构形式接口电路采用采用可编程并行接口芯片并行接口芯片82C55A,并把转换结束信号把转换结束信号EOC连到连到系统总线的IRQ4实现中断传送中断传送。(3)中断处理中断处理由于本例题是利用系统的中断资源利用系统的中断资源,故不需要进行中断系统的硬件设计和82C59A的初始化,只需做两件事只需做两件事:中断向量的修改中断向量的修改:修改的对象是IRQ4的
27、中断向量,修改的步骤和方法见第5.9.1节。对对82C59A两个命令的使用两个命令的使用:在主程序中用命令在主程序中用命令OCW1屏蔽屏蔽/开放开放IRQ4的中断请求的中断请求;在服务程序中在服务程序中返回主程序之前,用用OCW2发中断结束发中断结束EOI,清除IRQ4在中断控制器内部ISR寄存器中置1的位。2023-2-10计算机接口技术303 3设计设计(1)硬件设计)硬件设计根据上述分析可知根据上述分析可知,本接口电路本接口电路要提供提供ADC0809模拟量通道号模拟量通道号选择信号选择信号、启动转换信号启动转换信号、读数据允许信号读数据允许信号。这些信号都可由这些信号都可由82C55A
28、接口芯片实现接口芯片实现。而EOC的中断请求直接连到的中断请求直接连到系统总线的IRQ4上。中断方式的中断方式的ADC接口电路接口电路如图如图9.6所示所示。2023-2-10计算机接口技术31图9.6 中断方式的ADC接口电路原理2023-2-10计算机接口技术32(a)主程序流程(b)中断服务程序(2 2)软件设计)软件设计本例的程序流程图程序流程图如图如图9.7所示所示。整个程序分主程序和中断服务程序两部分。2023-2-10计算机接口技术33中断方式数据采集中断方式数据采集汇编语言程序段和汇编语言程序段和C语言程序段语言程序段见教材见教材P1701722023-2-10计算机接口技术3
29、49.6 DMA方式的方式的ADC接口设计接口设计例例9.3 DMA方式的方式的ADC接口设计接口设计1 1要求要求 8位ADC共采集4KB数据,采集的数据采集的数据用DMA方式送到送到从30400H单元开始的内存单元开始的内存保存,以待处理,内存地址以加1方式递增。使用DMAC 82C37的通道1,采用单一的传输方式。2 2分析与设计分析与设计 1)接口电路组成)接口电路组成 采用采用DMA方式的数据采集系统电路方式的数据采集系统电路如图如图9.8所示所示。2023-2-10计算机接口技术35 DMA方式的方式的ADC接口接口电路电路包括ADC、采样保持器采样保持器S/H、A/D转换启动逻辑
30、转换启动逻辑U1、DMA申请寄存器申请寄存器U2及DMA回答信号回答信号DACK1逻辑等部分。DMA控制器82C37A未在图9.8中画出,只在图9.8的左侧画出了它的部分信号线。图9.8 DMA方式的ADC接口原理图2023-2-10计算机接口技术363DMAC传输参数的设置传输参数的设置 从从6.6节节用户对系统DMA资源的应用可知可知,由于系统的DMA控制器初始化已经被系统在上电时设置好了,用户要做的仅仅是设置相关的用户要做的仅仅是设置相关的DMA传输参数传输参数,然后等待A/D转换器申请DMA传送。在传送开始之前,还要填写页面地址寄存器还要填写页面地址寄存器,将高于16位以上的地址写入页
31、面地址寄存器。例如,假设传送的内存首地址是32000H,则页面寄存器的内容为3,基地址寄存器中内容为2000H。如果寻址范围不超过如果寻址范围不超过16位位地址地址,则可不使用写页面地址寄存器则可不使用写页面地址寄存器。本例根据题意,需要启用通道1的页面地址寄存器。2023-2-10计算机接口技术37数据采集中数据采集中DMA传输参数设置的传输参数设置的汇编语言程序段如下汇编语言程序段如下:ADC_SETUP PROC NEAR CLI ;关中断 ;设置工作方式 MOV AL,00000101B ;屏蔽通道屏蔽通道1,禁止DREQ1的申请 OUT 0AH,AL MOV AL,01000101B
32、 ;方式命令字方式命令字(通道1,单传方式,地址加1,;非自动预置,DMA写)OUT OBH,AL ;送入方式寄存器 OUT OCH,AL ;清先清先/后触发器后触发器(软命令);设置页面地址(最高4位地址)MOV AL,03H ;页面地址页面地址(最高4位地址)OUT 83H,AL ;通道1的页面寄存器2023-2-10计算机接口技术38;设置基地址(低16位)MOV AL,00H ;低低8位地址位地址 OUT 02H,AL ;通道1的基地址寄存器 MOV AL,04H ;高高8位地址位地址 OUT 02H,AL ;通道1的基地址寄存器 ;设置字节数 MOV AL,0FFH ;字节数低字节数
33、低8位位 OUT 03H,AL ;通道1的字节计数器 MOV AL,0FH ;字节数高字节数高8位位 OUT 03H,AL ;通道1的字节计数器 STI ;开中断 MOV AL,00000001B ;开通通道开通通道1,准备接受DREQ1的申请 OUT 0AH,AL RETADC_SETUP ENDP2023-2-10计算机接口技术39/数据采集中数据采集中DMA传输参数设置的传输参数设置的C语言程序段如下语言程序段如下:void ADC_Setup()disable();/关中断outportb(0 x0a,0 x05);/屏蔽通道1,禁止DREQ1申请 outportb(0 x0b,0 x
34、45);/工作方式字:单传方式,地址 /加1,非自动预置,DMA写,通道outportb(0 x0c,0 x45);/清先后触发器(软命令)/设置页面地址(最高4位地址)outportb(0 x83,0 x03);/页面地址(最高4位地址)/设置基地址(低16位)outportb(0 x02,0 x00);/低8位地址outportb(0 x02,0 x04);/高8位地址2023-2-10计算机接口技术40 /设置字节数outportb(0 x03,0 x0ff);/字节数低8位outportb(0 x03,0 x0f);/字节数高8位enable();/开中断outportb(0 x0a,
35、0 x01);/开通通道1,允许DREQ1申请 以上程序可作为数据采集系统的一个子程序供主程序调用。主程序应包括A/D转换定时启动等部分,不在此列出。2023-2-10计算机接口技术419.7 D/A转换器转换器 9.7.1 D/A转换器的主要技术指标转换器的主要技术指标1 1分辨率分辨率分辨率分辨率是指DAC能够把多少位二进制数转换成模拟量能够把多少位二进制数转换成模拟量。例如,DAC0832能够把8位二进制数转换成电流,故DAC0832的分辨率是8位;AD390能够把12位二进制数转换成电压,故AD390的分辨率是12位。分辨率分辨率体现在体现在DAC的数据输入线的宽度的数据输入线的宽度,
36、因此,不同的分辨率分辨率将影响影响DAC与与CPU的数据线连接的数据线连接。当分辨率大于数据总线宽度时,数据分几次传输,需增加附加电路(缓冲寄存器)。2 2转换时间转换时间转换时间转换时间是指数字量从输入到数字量从输入到DAC开始至完成转换开始至完成转换,模拟量输出达到最终值所需的时间所需的时间。DAC的转换时间很快,一般为s级和ns级。2023-2-10计算机接口技术429.7.2 D/A转换器的外部特性转换器的外部特性DAC的外部引脚信号线外部引脚信号线包括:1.数字信号输入线;2.模拟信号输出线;3.CS信号线和WR(或WR1,WR2)信号线,,用于将数字量打入DAC转换器;4.数据输入
37、锁存控制线;5.模拟量输出通道地址线。2023-2-10计算机接口技术43其中,前3种信号线是DAC的基本信号,后2种是附加信号线。附加信号线有时也集成在DAC芯片内部。当DAC芯片内部设置了三态输入锁存器,则在外部就有输入锁存允许信号线。有的芯片(如DAC0832)设置了两级输入锁存器,相应地在外部就有两级输入锁存允许信号线。如果有的芯片(如AD390)设置了输出模拟量开关,则在外部就有模拟量输出通道地址选择信号。另外,在在DAC的外部信号线的外部信号线中,没有像没有像ADC那样专门那样专门的“转换启动转换启动”信号线,也没有也没有“转换结束转换结束”信号线。2023-2-10计算机接口技术
38、449.8 D/A转换器接口设计的任务与方法转换器接口设计的任务与方法9.8.1 D/A9.8.1 D/A转换器与转换器与CPUCPU的连接的连接DAC转换器转换器与ADC转换器转换器的操作有不同的特点不同的特点,首先首先,DAC工作时,只要只要CPU把数据把数据送到它的输入端,写入写入DAC,DAC就开始就开始转换转换,而不需设置专门的启动信号不需设置专门的启动信号去触发转换开始。其次其次,DAC也也不提供转换结束之类的状态信号不提供转换结束之类的状态信号,所以CPU向DAC传输数据时,也不必查询不必查询DAC的状态的状态,只要两次传输数据之间的间隔不小于DAC的转换时间,就能得到正确结果。
39、正因为DAC不设专门的转换启动信号线和转换结束信号线,使接口对接口对DAC提供的提供的信号线少信号线少,连接也就连接也就更简单更简单。2023-2-10计算机接口技术459.8.2 D/A转换器与转换器与CPU之间的数据交换方式之间的数据交换方式 D/AD/A转换器与转换器与CPUCPU交换数据的方式很单一交换数据的方式很单一,既不用查询,也不用中断,更不用DMA方式,是采用无条件方式是采用无条件方式与CPU交换数据,因此软件编程很简单,其主要工作主要工作是向是向DACDAC写数据写数据和解决解决CPUCPU与与DACDAC之间的之间的数据缓冲问题数据缓冲问题。2023-2-10计算机接口技术
40、469.8.3 D/A转换器接口设计需考虑的问题转换器接口设计需考虑的问题 分析与设计DAC接口,相对于ADC接口来讲,比较简单,可从以下几个方面入手:1.DAC的分辨率是否大于系统数据总线的宽度?的分辨率是否大于系统数据总线的宽度?是是,则要分两次传 输,故需增加锁存器需增加锁存器,并提供锁存选通信号;不是不是,则不做处理则不做处理2.DAC芯片内部是否有三态输入锁存器?芯片内部是否有三态输入锁存器?无无,则数据线不能与系统 的DB直接连接,故需增加三态输入锁存器需增加三态输入锁存器,并提供锁存允许信 号;有有,则不做处理则不做处理。3.DAC的模拟量输出是否是多通道?的模拟量输出是否是多通
41、道?是是,则需选择通道号,并提供提供 选择线选择线;不是不是,则不做处理则不做处理。4.DAC的启动方式,只有脉冲触发一种的启动方式,只有脉冲触发一种。DAC不设专门的转换启 动信号,是利用利用 CS和和 IOW共同进行假写操作共同进行假写操作,来实现脉冲启动的。5.DAC的数据传输方式,的数据传输方式,只有无条件传输无条件传输一种。6.DAC接口电路采用什么元器件组成?接口电路采用什么元器件组成?有普通IC芯片芯片、可编程并可编程并行口芯片、GAL器件器件等多种选择。2023-2-10计算机接口技术479.9 锯齿波三角波发生器器接口设计锯齿波三角波发生器器接口设计例例9.4 DAC0832
42、接口设计接口设计1要求要求要求通过DAC0832产生锯齿波产生锯齿波和三角波三角波,按任意键,停止波形输出。2分析因为被连的对象是DAC0832,故首先按照按照9.8.3节的方法节的方法,分析分析DAC0832的连接特性连接特性及工作方式工作方式。然后根据外部连接特性及工作方式进行接口设计。2023-2-10计算机接口技术48(1)外部特性)外部特性 DAC0832是分辨率为8位的乘法型DAC,芯片内部带有两级缓冲寄存器,DAC0832的内部结构和外部引脚的内部结构和外部引脚如如图图9.9所示所示。图9.9 DAC 0832的内部结构和外部引脚2023-2-10计算机接口技术49DAC0832
43、的工作原理的工作原理 图9.9中DAC0832有两个独立的缓冲器两个独立的缓冲器,要转换的数据先送到第一级缓冲器,但不进行转换,只有数据送到第二级缓冲器时才能开始转换,因而称为双缓冲称为双缓冲。为此,设置了为此,设置了5个信号控制这两个信号控制这两个个缓冲缓冲器器进行数据的锁存数据的锁存。其中其中,ILE(输入锁存允许)、CS(片选)和WR1(写信号1)3个信号组合控制第一级缓冲器的锁组合控制第一级缓冲器的锁存存,WR2(写信号2)和XFER(传递控制)两个信号组合控制第组合控制第二级缓冲寄存器的锁存二级缓冲寄存器的锁存。对于锁存控制信号LE1和LE2,当LE1(LE2)=1时,不锁存不锁存;
44、当LE1(LE2)=0时,进行锁存进行锁存。因此当ILE端为高电平,并且CPU执行OUT指令时,则与同时为低电平,使得LE1=1,8位数据送到第一级缓冲器;只有当CPU写操作完毕,和都变高电平时,才能使LE1=0,对输入数据锁存,实现第一级缓冲实现第一级缓冲。同理,当XFER与WR2同时为低电平时,使得LE2=1,第一级缓冲的数据送到第二级缓冲器;当XFER和WR2上升沿使LE2=0时,将这个数据锁存在第二级缓冲器中,实现第二级缓冲实现第二级缓冲,并开始转换并开始转换。2023-2-10计算机接口技术50DAC0832工作的时序关系工作的时序关系DAC0832DAC0832工作的时序关系工作的
45、时序关系如图如图9.109.10所示所示。图中表示,两个数据,数据数据1 1和数据数据2 2分别用用CS1CS1和CS2CS2锁存到锁存到两个DAC0832的第一级缓冲器第一级缓冲器中,最后用最后用XFERXFER信号的上升沿将它们同时锁存到锁存到各自的第二级缓冲第二级缓冲器器,开始D/A转换。图9.10 DAC0832时序图2023-2-10计算机接口技术51(2)DAC0832的工作方式的工作方式DAC0832有单缓冲单缓冲、双缓冲双缓冲和直通直通3种工作方式种工作方式。直通直通就是不进行缓冲不进行缓冲,CPU送来的数字量直接送到第二级缓冲器,并开始转换。此时,ILE端加高电平,其他控制信
46、号都接低电平。单缓冲单缓冲是只进行一级缓冲只进行一级缓冲,具体可用第一组或第二组控制信号对第一级或第二级缓冲器进行控制。双缓冲双缓冲是进行两级缓冲进行两级缓冲,用两组控制信号分别进行控制。一般用于多片DAC0832同时开始转换。2023-2-10计算机接口技术52 3.设计设计(1)硬件设计硬件设计采用82C55A作为DAC与CPU之间的接口芯片,并把82C55A的A口口作为数据输出作为数据输出,而B口口的PB0PB4 5根线作为控制信号作为控制信号来控制DAC0832的工作方式及转换操作。DAC0832的接口电路的接口电路如图如图9.11所示所示。图9.11 DAC0832作函数波形发生器
47、2023-2-10计算机接口技术53(2)软件编程软件编程 根据设计要求产生连续的锯齿波产生连续的锯齿波,可知本例的本例的D/A转换程序是一个循环结构转换程序是一个循环结构,其程序流程图程序流程图如图如图9.12所示所示。图9.12 产生锯齿波的程序流程图2023-2-10计算机接口技术54 锯齿波发生器程序段锯齿波发生器锯齿波发生器汇编语言程序段汇编语言程序段如下如下:CODE SEGMENT ASSUME CS:CODE,DS:CODE ORG 100HSTART:MOV AX,CS MOV DS,AX ;8255A初始化初始化 MOV DX,303H ;82C55A的命令口 MOV AL
48、,10000000B ;82C55A的方式字方式字 OUT DX,AL ;指派指派B口控制口控制DAC的转换的转换 MOV DX,301H ;82C55A的B口地址 MOV AL,00010000B ;置DAC0832为直通工作方式直通工作方式,ILE置1 ;CS、WR1、WR2、XFER均置为0 OUT DX,AL2023-2-10计算机接口技术55 ;生成锯齿波的循环;生成锯齿波的循环 MOV AL,0H ;输出数据从数据从0开始开始 LOP:MOV DX,300H ;82C55A的A口地址 OUT DX,AL ;AL的值送DAC0832 MOV BL,AL ;保存ALBL MOV AH,
49、0BH ;检查是否有任意键按下 INT 21H CMP AL,0FFH JE STOP ;有,则停止输出波形 MOV AL,BL ;无,恢复AL的值 INC AL ;数据加数据加1 JMP LOP ;继续循环输出波形继续循环输出波形 STOP:MOV AX,4C00H ;退出 INT 21HCODE ENDS END START 2023-2-10计算机接口技术56/锯齿波发生器锯齿波发生器C语言程序段如下:语言程序段如下:2023-2-10计算机接口技术57 三角波发生器程序段三角波发生器程序段若要求产生三角波,则程序只需将生成锯齿波的循环修改为生成三角波的循环,程序的其他部分保持不变。20
50、23-2-10计算机接口技术58 /三角波发生器三角波发生器的汇编语言程序汇编语言程序段如下:;生成三角波的循环;生成三角波的循环 MOV DX,300H ;82C55A的A口地址 MOV AL,0H ;输出数据从数据从0开始开始L1:OUT DX,AL MOV BL,AL ;保存ALBL MOV AH,0BH ;检查是否有任意键按下 INT 21H CMP AL,0FFH JE STOP ;有任意键按下,则停止输出波形 MOV AL,BL ;无,恢复AL的值 INC AL ;数据加数据加1 JNZ L1 ;AL是否加满是否加满FFH,未满未满,继续继续 MOV AL,0FFH ;已满已满,A
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。