一、任务描述 二、任务分析 三、相关知识 四、任务布置
一、任务描述 (一)A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。 (二)四矿用的ADC0809属第二类,是八位A/D转换器。每采集一次一般需100us。中断方式下,A/D转换结束后会自动产生EOC信号,将其与8051的INT0相接。 返回
二、任务分析 瓦斯传感器输出的模拟电信号经放大后,必须由A/D转换器将其转换为数字信号,才能由单片机进行数据处理。尤其是在煤矿监控系统中,使用单片机构成的测控分站,对模拟量输入、开关量输入进行控制,不仅提高采集速度,还可对数据进行预处理,可实现就地报警、断电控制输出功能;使用单片机提供的串行接口,很容易组成分布式监控系统。 返回
三、相关知识 (一)A/D转换器接口 1、典型A/D转换器芯片ADC0809 ADC0809是典型的8位8通道逐次逼近式A/D转换器,CMOS工艺。 ADC0809的内部逻辑结构如图图8-1所示: 图8-1 ADC0809内部逻辑结构 返回
图8-1中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存和译码,其译码输出用于通道选择,如表8-1所示。 八位A/D转换器是逐次逼近式,由控制与时序电路、逐次逼近寄存器、树状开关以及256R电阻阶梯网络等组成。 输出锁存器用于存放和输出转换得到的数字量。
(1)A/D转换器概述 A/D转换器用于实现模拟量→数字量的转换,按转换原理可分为四种,即:计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。 目前最常用的是双积分式A/D转换器和逐次逼近式A/D转换器。双积分式A/D转换器的主要优点是转换精度高,抗干扰性能好,价格便宜;但转换速度较慢。因此这种转换器主要用于速度要求不高的场合。另一种常用的A/D转换器是逐次逼近式的,逐次逼近式A/D转换器是一种速度较快精度较高的转换器。其转换时间大约在几微秒到几百微秒之间。通常使用的逐次逼近式典型A/D转换器芯片有:
ADC0801-ADC0805型8位MOS型A/D转换器,美国国家半导体公司产品。它是目前最流行的中速廉价型产品。片内有三态数据输出锁存器,单通道输入,转换时间约100微秒左右。 ADC0808 / 0809型8位MOS型A/D转换器。可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为100微秒左右。在本书附录的实训电路板中采用了ADC0809芯片,实现模拟信号到数字信号的转换。下面将重点介绍该芯片的结构及使用。 ADC0816 / 0817。这类产品除输入通道数增加至16个以外,其它性能与ADC0808 /0809型基本相同。
ADC0809芯片为28引脚双列直插式封装,其引脚排列见图8-2 (2)信号引脚 ADC0809芯片为28引脚双列直插式封装,其引脚排列见图8-2 C B A 选择的通道 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 图8-2 ADC0809 引脚图
对ADC0809主要信号引脚的功能说明如下: IN7〜IN0:模拟量输入通道 ADC0809对输入模拟量的要求主要有:信号单极性,电压范围0〜5V若信号过小还需进行放大。另外,模拟量输入在A/D转换过程中其值不应变化太快,因此对变化速度快的模拟量,在输入前应增加采样保持电路。 A、B、C:地址线 A为低位地址,C为高位地址,用于对模拟通道进行选择,引脚图8-2中为ADDA、ADDB和ADDC,其地址状态与通道相对应关系见表8-1 ALE:地址锁存允许信号 对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。 START:转换启动信号 START上跳沿时,所有内部寄存器清0;START下跳沿时,开始进行A/D转换;在A/D转换期间,START应保持低电平。
D7-D0:数据输出线为三态缓冲输出形式,可以和单片机的数据线直接相连。 OE:输出允许信号 用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据。 CLK:时钟信号 ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500kHz的时钟信号。 EOC——转换结束状态信号 EOC=0,正在进行转换;EOC=1,转换结束。该状态信号既可作为 查询的状态标志,又可以作为中断请求信号使用。 Vcc:+5V电源 Vref:参考电源 参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref (+) =+5V,Vref(-) =0V)。
(二)D/A转换器及接口 1、典型D/A转换器芯片DAC0832 DAC0832是一个8位D/A转换器。单电源供电,从+5V~+15V均可正常工作。基准电压的范围为±10V;电流建立时间为1μS;CMOS工艺,低功耗20mW。 DAC0832转换器芯片为20引脚,双列直插式封装,其引脚排列如图8-3所示。DAC0832内部结构框图如图8-4所示。 该转换器由输入寄存器和DAC寄存器构成两级数据输入锁存。使用时数据输入可以采用两级锁存(双锁存)形式,或单级锁存(一级锁存,一级直通)形式,或直接输入(两级直通)形式。
图8-3 DAC0832引脚图 图8-4 DAC0832 内部结构框图
此外,由三个与门电路组成寄存器输出控制逻辑电路,该逻辑电路的功能是进行数据锁存控制,当=0时,输入数据被锁存;当=1时,锁存器的输出跟随输入的数据。 D/A转换电路是一个R-2R T型电阻网络,实现8位数据的转换。对各引脚信号说明如下: 1、DI7~DI0:转换数据输入 2、片选信号(输入),低电平有效 3、ILE:数据锁存允许信号(输入),高电平有效 4、第1写信号(输入),低电平有效 上述两个信号控制输入寄存器是数据直通方式还是数据锁存方式;当ILE=1和=0时,为输入寄存器直通方式;当ILE=1和=1时,为输入寄存器锁存方式。
5、:第2写信号(输入),低电平有效 6、:数据传送控制信号(输入),低电平有效 上述两个信号控制DAC寄存器是数据直通方式还是数据锁存方式;当=0和=0时,为DAC寄存器直通方式;当 =1和=0时,为DAC寄存器锁存方式。 7、Iout1:电流输出1 8、Iout2:电流输出2 DAC转换器的特性之一是:Iout1+Iout2=常数。 9、Rfb—反馈电阻端 0832是电流输出,为了取得电压输出,需在电压输出端接运算放大器,Rfb即为运算放大器的反馈电阻端。运算放大器的接法如图8-5所示。 10、Vref:基准电压,其电压可正可负,范围-10V~+10V。 11、DGND:数字地 12、AGND:模拟地
(三)单缓冲方式的接口与应用 1、单缓冲方式连接 所谓单缓冲方式就是使0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,或者说两个输入寄存器同时受控的方式。在实际应用中,如果只有一路模拟量输出,或虽有几路模拟量但并不要求同步输出的情况,就可采用单缓冲方式。 单缓冲方式的两种连接如图8-6和图8-7所示。 图8-7为两个输入寄存器同时受控的连接方法,和一起接8051的,和共同连接在P2.7,因此两个寄存器的地址相同。 图8-7中, =0和=0,因此DAC寄存器处于直通方式。而输入寄存器处于受控锁存方式,接8051的,ILE接高电平,此外还应把接高位地址或译码输出,以便为输入寄存器确定地址。 其它如数据线连接及地址锁存等问题不再赘述。
图8-6 DAC0832单缓冲方式接口 图8-7 用DAC产生锯齿波
2、单缓冲方式应用举例——产生锯齿波 在许多控制应用中,要求有一个线性增长的电压(锯齿波)来控制检测过程,移动记录笔或移动电子束等。对此可通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现,电路连接如图8-8所示。图中的DAC8032工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。 假定输入寄存器地址为7FFFH,产生锯齿波的源程序清单如下: ORG 0200H DASAW: MOV DPTR,#7FFFH ;输入寄存器地址,假定P2.7接 MOV A,#00H ;转换初值 WW: MOVX @DPTR,A ;D/A转换 INC A NOP ;延时 NOP JMP WW 执行上述程序,在运算放大器的输出端就能得到如图7.34所示的锯齿波
3、通过A加1,可得到正向的锯齿波;如要得到负向的锯齿波,改为减1指令即可实现。 对锯齿波的产生作如下几点说明: A:程序每循环一次,A加1,因此实际上锯齿波的上升边是由256个小阶梯构成的。但由于阶梯很小,所以宏观上看就如图8-8中所表示的线性增长锯齿波。 B:可通过循环程序段的机器周期数,计算出锯齿波的周期。并可根据需要,通过延时的办法来改变波形周期。当延迟时间较短时,可用NOP指令来实现(本程序就是如此);当需要延迟时间较长时,可以使用一个延时子程序。延迟时间不同,波形周期不同,锯齿波的斜率就不同。 3、通过A加1,可得到正向的锯齿波;如要得到负向的锯齿波,改为减1指令即可实现。 4、程序中A的变化范围是从0到255,因此得到的锯齿波是满幅度的。如要求得到非满幅锯齿波,可通过计算求得数字量的初值和终值,然后在程序中通过置初值判终值的办法即可实现。 用同样的方法也可以产生三角波、矩形波、梯形波,请读者自行编写程序。 图8-8 D/A转换产生的锯齿波
所谓双缓冲方式,就是把DAC0832的两个锁存器都接成受控锁存方式。双缓冲DAC0832的连接如图8-9所示。 (3)双缓冲方式的接口与应用 1、双缓冲方式连接 所谓双缓冲方式,就是把DAC0832的两个锁存器都接成受控锁存方式。双缓冲DAC0832的连接如图8-9所示。 图8-9 DAC0832 的双缓冲方式连接
为了实现寄存器的可控,应当给寄存器分配一个地址,以便能按地址进行操作。图7 为了实现寄存器的可控,应当给寄存器分配一个地址,以便能按地址进行操作。图7.35采用地址译码输出分别接和而实现的,然后再给和提供写选通信号。这样就完成了两个锁存器都可控的双缓冲接口方式。 由于两个锁存器分别占据两个地址,因此在程序中需要使用两条传送指令,才能完成一个数字量的模拟转换。假定输入寄存器地址为FEH,DAC寄存器地址为FFH。则完成一次数/模转换的程序段如下: MOV R0,#0FEH ;装入输入寄存器地址 MOVX @R0,A ;转换数据送输入寄存器 INC R0 ;产生DAC寄存器地址 MOVX @ R0 , A ;数据通过DAC寄存器 最后一条指令,表面上看来是把A中数据送DAC寄存器,实际上这种数据转送并不真正进行,该指令只是起到打开DAC寄存器使输入寄存器中数据通过的作用,数据通过后就去进行D/A转换。
2、双缓冲方式应用举例 双缓冲方式用于多路数/模转换系统,以实现多路模拟信号同步输出的目的。例如使用单片机控制X-Y绘图仪。X-Y绘图仪由X、Y两个方向的步进电机驱动,其中一个电机控制绘图笔沿X方向运动,另一个电机控制绘图笔沿Y方向运动,从而绘出图形。因此对X-Y绘图仪的控制有两点基本要求:一是需要两路D/A转换器分别给X通道和Y通道提供模拟信号,二是两路模拟量要同步输出。 两路模拟量输出是为了使绘图笔能沿X-Y轴作平面运动,而模拟量同步输出则是为了使绘制的曲线光滑。否则绘制出的曲线就是台阶状的,如图8-10所示。 (1)同步输出 (2) 先X后Y (3)先Y后X 图8-10 单片机控制X-Y绘图仪
为此就要使用两片DAC0832,并采用双缓冲方式连接,如图8-11所示 。 电路中以译码法产生地址,两片DAC0832共占据三个单元地址,其中两个输入寄存器各占一个地址,而两个DAC寄存器则合用一个地址。 编程时,先用一条传送指令把X坐标数据送到X向转换器的输入寄存器,再用一条传送指令把Y坐标据送到Y向转换器的输入寄存器。最后再用一条传送指令同时打开两个转换器的DAC寄存器,进数据转换,即可实现X、Y两个方向坐标量的同步输出。 假定X方向0832输入寄存器地址为F0H,Y方向0832输入寄存器地址为F1H,两个DAC寄存器公用址为F2H。X坐标数据存于DATA单元中,Y坐标数据存于DATA+1单元中。
图8-11 控制X-Y绘图仪的双片DAC 0832 接口
绘图仪的驱动程序为: MOV R1,#DATA ;X坐标数据单元地址 MOV R0,#0F0H ;X向输入寄存器地址 MOV A,@R1 ;X坐标数据送A MOVX @R0,A ;X坐标数据送输入寄存器 INC R1 ;指向Y坐标数据单元地址 INC R0 ;指向Y向输入寄存器地址 MOV A,@R1 ;Y坐标数据送A MOVX @R0,A ;Y坐标数据送输入寄存器 INC R0 ;指向两个DAC寄存器地址 MOVX @R0,A ;X、Y转换数据同步输出
(四)MCS-51单片机与ADC0809接口 ADC0809与8051单片机的一种连接如图8-12所示。
若无关位都取0,则八路通道IN0~IN7的地址分别为0000H~0007H。 当然口地址也可以由单片机其他不用的口线、或者由几根口线经过译码后来提供,这样八路通道的地址也就有所不同。参考附录中的实训电路图,可以看出,口地址是由单片机的P2.7、P2.6、P2.5经过3-8译码器后的输出来提供的,因此,实训电路中ADC0809八路通道的地址确定如下: 8051 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0809 × × × × × × × ST × × × × × C B A × × × × × × × 0 × × × × × 0 0 0 × × × × × × × 0 × × × × × 1 1 1 若无关位都取0,则八路通道IN0~IN7的地址分别为6000H~6007H。 从图中可以看到,把ADC0809的ALE信号与START信号连接在一起了,这样使得在ALE信号的前沿写入地址信号,紧接着在其后沿就启动转换。因此启动图7.40中的ADC0809进行转换只需要下面的指令(以通道0为例): MOV DPTR,#0000H ;选中通道0 MOVX @DPTR,A ;信号有效,启动转换
电路连接主要涉及两个问题,一是八路模拟信号通道选择,二是A/D转换完成后转换数据的传送。 1、八路模拟通道选择 A、B、C分别接地址锁存器提供的低三位地址,只要把三位地址写入0809中的地址锁存器,就实现了模拟通道选择。对系统来说,地址锁存器是一个输出口,为了把三位地址写入,还要提供口地址。图8-16中使用的是线选法,口地址由P2.0确定,同时和相或取反后作为开始转换的选通信号。因此该ADC0809的通道地址确定如下: 8051 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0809 × × × × × × × ST × × × × × C B A × × × × × × × 0 × × × × × 0 0 0 × × × × × × × 0 × × × × × 1 1 1
A/D转换后得到的是数字量的数据,这些数据应传送给单片机进行处理。数据传送的 2、转换数据的传送 A/D转换后得到的是数字量的数据,这些数据应传送给单片机进行处理。数据传送的 关键问题是如何确认A/D转换完成,因为只有确认数据转换完成后,才能进行传送。为此可采用下述三种方式。 (1)定时传送方式 对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用这个延时子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 返回
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 (2)查询方式 A/D转换芯片有表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,软件测试EOC的状态,即可确知转换是否完成,然后进行数据传送。 (3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确认转换完成,即可通过指令进行数据传送。首先送出口地址并以作选通信号, 当信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接收,即: MOV DPTR,#0000H ;选中通道0 MOVX A, @DPTR ;信号有效,输出转换后的数据到A累加器 返回
四、任务布置 1、四矿煤矿安全监测A/D、D/A系统的组成、安装和调试。 2、四矿煤矿安全监测A/D、D/A系统的检测和维护。 返回