




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
D/A和A/D转换器接口,A/D及D/A转换器的性能指标,分辨率(Resolution)分辨率是指A/D转换器能分辨的最小输出模拟增量,取决于输入数字量的二进制位数。转换精度(ConversionAccuracy)转换精度指满量程时ADC的实际模拟输出值和理论值的接近程度。量程(满刻度范围FULLScaleRange)量程是指输入模拟电压的变化范围。例如某转换器具有10V的单极性范围或-5+5V的双极性范围。则它们的量程都为10V。满刻度只是个名义值,实际的A/D,D/A转换器的最大输出值总是比满刻度值小1/2n,n为转换器的位数。例如12位的A/D转换器,其满刻度值为10V,而实际的最大输出值为:,A/D转换器的主要技术指标,线性度(Linearity)线性度是指ADC的实际转换特性曲线和理想直线之间的最大偏移差。转换时间(ConversionTime)从发出启动转换开始直至获得稳定的二进代码所需的时间称为转换时间,转换时间与转换器工作原理及其位数有关,同种工作原理的转换器,通常位数越多,其转换时间越长。,D/A转换器的主要技术指标,D/A转换器的主要技术指标与A/D转换器基本相同,只是转换时间的概念略有不同,D/A转换器的转换时间又叫建立时间,它是指当输入的二进制代码从最小值突然跳变至最大值时,其模拟输出电压相应的满度跳跃并达到稳定所需的时间。一般而言,D/A的转换时间比A/D要短得多。,DAC芯片类型及接口方法,各种类型的DAC芯片都具有数字量输入端和模拟量输出端及基准电压端。数字输入端有以下几种类型:无数据锁存器,带单数据锁存器,带双数据锁存器,可接收串行数字输入。第1种在与单片机接口时,要外加锁存器,第2种和第3种可直接与单片机接口,第4种与单片机接口十分简单,接收数据较慢,适用于远距离现场控制的场合。模拟量输出有两种方式:电压输出及电流输出。电压输出的DAC芯片相当于一个电压源,其内阻很小,选用这种芯片时,与它匹配的负载电阻应较大。电流输出的芯片相当于电流源,其内阻较大,选用这种芯片时,负载电阻不可太大。,在实际应用中,常选用电流输出的DAC芯片实现电压输出,如图所示,无内部数据锁存器的DAC芯片,尤其是分辩率高于8位的DAC芯片,在设计与8位单片机接口时,要外加数据锁存器作为缓冲器。下图是一种单缓冲器接口。,在10位DAC芯片与8位单片机之间接入两个锁存器,锁存器A锁存10位数据中的低8位,锁存器B锁存高2位。单片机分两次输出数据,先输出低8位数据到锁存器A,后输出高2位数据到锁存器B。设锁存器A和锁存器B的地址分别为002CH和002DH,则执行下列指令后完成一次D/A转换:MOVDPTR,#002CHMOVA,#DATA8MOVXDPTR,A;输出低8位INCDPTRMOVA,#DATA2MOVXDPTR,A;输出高2位这种接口存在一个问题,就是在输出低8位数据和高2位数据之间,会产生“毛剌”现象,如图3.3(b)所示。假设两个锁存器原来的数据为0001111000,现在要求转换的数据为0100001011,新数据分两次输出,第一次输出低8位,这时DAC将把新的8位数据的与原来数据的高2位一起组成0000001011转换成输出电压,而该电压是不需要的,即所谓“毛刺”。,避免产生毛刺的方法之一是采用双组缓冲器结构,如下图所示。,单片机先把低8位数据选通输入锁存器1中,然后将高2位数据选通输入锁存器3中,并同时选通锁存器2,使锁存器2与锁存器3组成10位锁存器向DAC同时送入10位数据由DAC转换成输出电压。当地址如图中所示时,执行以下程序完成一次D/A转换:MOVDPTR,#6000HMOVA,#DATA8MOVXDPTR,A;输出低8位数据INCDPTRMOVA,#DATA2MOVXDPTR,A;输出高2位,并同时输出10位数据,典型D/A转换器芯片DAC0832及接口DAC0832是一个8位D/A转换器芯片,单电源供电,从+5V+15V均可正常工作,基准电压的范围为10V,电流建立时间为1s,CMOS工艺,低功耗20mm。其内部结构由1个8位输入寄存器、1个8位DAC寄存器和1个8位D/A转换器组成。,DAC0832的内部结构,DAC0832是典型的带内部双数据缓冲器的8位D/A芯片。图中LE是寄存命令,当LE=1时,寄存器输出随输入变化,当LE=0时,数据锁存在寄存器中。当ILE端为高电平,CS与WR1同时为低电平时,使得LE1=1;当WR1变为高电平时,输入寄存器便将输入数据锁存。当XFER与WR2同时为低电平时,使得LE2=1,DAC寄存器的输出随寄存器的输入变化,WR2上升沿将输入寄存器的信息锁存在该寄存器中。,DAC0832的工作方式DAC0832利用WR1、WR2、ILE、XFER控制信号可以构成三种不同的工作方式。直通方式WR1=WR2=0时,数据可以从输入端经两个寄存器直接进入D/A转换器。2)单缓冲方式两个寄存器之一始终处于直通,即WR1=0或WR2=0,另一个寄存器处于受控状态。3)双缓冲方式两个寄存器均处于受控状态。这种工作方式适合于多模拟信号同时输出的应用场合。,单缓冲方式的接口与应用1单缓冲方式连接所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控锁存方式。为使DAC寄存器处于直通方式,应使WR2=0和XFER=0。为此可把这两个信号固定接地,或如电路中把WR2与WR1相连,把XFER与CS相连。为使输入寄存器处于受控锁存方式,应把WR1接8051的WR,ILE接高电平。此外还应把CS接高位地址线或地址译码输出,以便于对输入寄存器进行选择。,DAC0832单缓冲方式接口,2单缓冲方式应用举例-波形发生器在一些控制应用中,需要有一个线性增长的电压(锯齿波)来控制检测过程、移动记录笔或移动电子束等。对此可通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现,其电路连接如图所示。,图中的DAC0832工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。假定输入寄存器地址为7FFFH,产生锯齿波的程序清单如下:MOVA,#00H;取下限值MOVDPTR,#7FFFH;指向0832口地址MM:MOVXDPTR,A;输出INCA;延时NOPNOPNOPSJMPMM;反复执行上述程序就可得到如下图所示的锯齿波。,几点说明:(1)程序每循环一次,A加1,因此实际上锯齿波的上升边是由256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图中所画的先行增长锯齿波。,(2)可通过循环程序段的机器周期数,计算出锯齿波的周期。并可根据需要,通过延时的方法来改变波形周期。若要改变锯齿波的频率,可在AJMPMM指令前加入延迟程序即可。延时较短时可用NOP指令实现(本程序就是如此),需要延时较长时,可以使用一个延长子程序。延迟时间不同,波形周期不同,锯齿波的斜率就不同。(3)通过A加1,可得到正向的锯齿波,反之A减1可得到负向的锯齿波。(4)程序中A的变化范围是0255,因此得到的锯齿波是满幅度的。如要求得到非满幅锯齿波,可通过计算求的数字量的处置和终值,然后在程序中通过置初值和终值的方法实现。,产生矩形波电压的参考程序:ORG1100HSTART:MOVDPTR,#7FFFH;送DAC0832口地址LOOP:MOVA,#dataH;送高电平数据MOVXDPTR,ALCALLDELAYH;调用延时子程序MOVA,#dataL;送低电平数据MOVXDPTR,ALCALLDELAYL;调用延时子程序SJMPLCALL,执行上述程序就可得到如下图所示的矩形波,几点说明:(1)以上程序产生的是矩形波,其低点平的宽度由延时子程序DELAYL所延时的时间来决定,高电平的宽度则由DELAYH所延时的时间决定。(2)改变延时子程序DELAYL和的DELAYH延时时间,就可改变矩形波上下沿的宽度。若DELAYL=DELAYH(两者延时一样),则输出的是方波。(3)改变上限值或下限值便可改变矩形波的幅值;单极性输出时为0-5V或0+5V;双极性输出时为-5V+5V。,双缓冲方式的接口与应用在多路D/A转换的情况下,若要求同步转换输出,必须采用双缓冲方式。DAC0832采用双缓冲方式时,数字量的输入锁存和D/A转换输出是分两步进行的。第一,CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中。第二,CPU对所有的D/A转换器发出控制信号,使各路输入寄存器中的数据进入DAC寄存器,实现同步转换输出。下图为两片DAC0832与8031接实现的双缓冲方式连接电路,能实现两路同步输出。,8051与DAC0832的双缓冲方式接口,实现两路同步输出的程序如下:MOVDPTR,#0DFFFH;送0832(1)输入锁存器地址MOVA,#data1;data1送0832(1)输入锁存器MOVXDPTR,A;MOVDPTR,#0BFFFH;送0832(2)输入锁存器地址MOVA,#data2;data2送0832(2)输入锁存器MOVXDPTR,A;MOVDPTR,#7FFFH;送两路DAC寄存器地址MOVXDPTR,A;两路数据同步转换输出,8051与12位DAC的接口DAC1208的内部结构和原理与DAC0832相似,DAC1208也是双缓冲器结构,输入控制线与DAC0832也很相似,和用来控制输入寄存器,和用来控制DAC寄存器,但增加了一条控制线BYTE1/BYTE2,用来区分输入8位寄存器和4位寄存器,当BYTE1/BYTE2=1时,两个寄存器都被选中,BYTE1/BYTE2=0时,只选中4位输入寄存器。,DAC1208内部结构框图,8051和DAC1208的连接,MOVR0,#21H;8位输入寄存器地址MOVR1,#DIG;高8位数据地址MOVA,R1;取高8位数据MOVXR0,A;送DAC1208DECR0;4位输入寄存器地址INCR1;低4位数据地址MOVA,R1;取低4位数据SWAPA;与高4位数交换MOVXR0,A;送DAC1208MOVR0,#22H;DAC1208的DAC寄存器地址MOVXR0,A;完成12位D/A转换。,设4位输入寄存器地址为20H,8位输入寄存器地址为21H,采用2根译码器输出线作为DAC208的(对应l地址20H和21H)及(对应地址22H),设12位数据存放在内部RAM区的DIG和DIG+1单元中,高8位存于DIG,低4位存于DIG+1。转换程序如下:,ADC接口技术,阶梯波比较式ADC工作原理:,转换开始时,计数器复0,DAC的输出为Vd=0。若输入电压Vi为正,则比较器输出Vc为正,与门打开,计数器对时钟脉冲进行计数,DAC输出即随计数脉冲的增加而增加,如图所示,当VdVi时,比较器输出变负,与门关闭,停止计数。计数器的计数值正比于输入电压,完成了从输入模拟量电压到计数器的计数值数字量的转换。,工作原理是单片机通过P1口发送一个8位数据到DAC,比较器对DAC的输出Vs和需要转换的模拟输入量Vx进行比较。比较的结果(为0,表示VsVx)送到单片机的T0引脚,单片机通过测试引脚T0来确定与模拟输入量Vx合适的数值。,用单片机IO口实现比较式ADC,编程思想是先从P1口输出数据10000000B然后测T0,如果T0为0则保持数据最高位D7为1,如果T0为1则清“0”D7位,再从P1口输出数据1000000B,判T0,若T0为0则保持D6位为1,若T0为1则清“0”D6位,如此进行,最后从P1口输出1B,判T0,若T0为0则保持D0位为1,若T0为1则清“0”D0位,至此便得到与Vx对应的8位数值。,AD:MOVR7,#08H;R7存放比较次数MOVA,#0MOVR6,#0;R6保存中间结果MOVR5,#0;R5存放新的测试数据SETBC;置1进位位CL1:MOVA,R5RRCA;(R5)带C右环移一位MOVR5,AORLA,R6;与R6值相加MOVP1,A;从P1口输出测试数据JBT0,L2;若T0为1则不保留此位MOVR6,A;若T0为0则保留此位为1L2:DJNZR7,L1;判8次比较完否。RET,ADC0809内部逻辑结构ADC0809引脚图,典型A/D转换器芯片ADC0809,2019/12/13,35,可编辑,ADC0809内部多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连。,通道选择表,ADC0809的工作时序图,ADC0809芯片为28引脚为双列直插式封装,其引脚排列如图所示。主要信号引脚的功能如下:IN7IN0模拟量输入通道A、B、C地址线。通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表9-1。ALE地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。,START转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST.D7D0数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高OE输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。,CLK时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号。EOC转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。Vcc+5V电源。Vref参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V,Vref(-)=-5V)。,8051单片机与ADC0809的接口,采用线选法规定其端口地址用单片机的P2.7引脚作为片选信号,因此端口地址为7FFFH。片选信号和信号一起经或非门产生ADC0809的启动信号START和地址锁存信号ALE;片选信号和信号一起经或非门产生ADC0809输出允许信号OE,OE=1时选通三态门使输出锁存器中的转换结果送入数据总线。ADC0809的EOC信号经反相后接到8051的引脚用于产生转换完成的中断请求信号。ADC0809芯片的3位模拟量输入通道地址码输入端A、B、C分别接到8031的P0.0、P0.1和P0.2,故只要向端口地址7FFFH分别写入数据00H07H,即可启动模拟量输入通道07进行A/D转换。,转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。,不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以RD信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。所用的指令为:MOVDPTR,#7FFFHMOVXA,DPTR该指令在送出有效口地址的同时,发出有效信号RD,使0809的输出允许信号OE有效,从而打开三态门输出,使转换后的数据通过数据总线送入A累加器中。,需要说明的是,ADC0809的三个地址端A、B、C既可如前所述与数据线相连,也可与地址线相连,例如与A0A2相连。这时启动A/D转换的指令与上述类似,只不过A的内容为任意数。例如当A、B、C分别与A0、A1、A2相连时,启动A/D转换只需要一条MOVX指令。在此之前,要将P2.7清零并将最低三位与所选择的通道对应的口地址送入数据指针DPTR中。例如要选择IN7通道时,可采用如下两条指令启动A/D转换:MOVDPTR,#7FFFH;送入0809的口地址MOVXDPTR,A;启动A/D转换(IN7)注意:此处A中内容与A/D转换无关,可为任意值。,A/D转换应用举例采用中断工作方式对8路模拟输入信号依次进行A/D转换并把转换结果存入内部数据存储器的程序,设数据存储器的首地址为30H,采用前面的接口电路。初始化程序:MOVR0,#30H;数据区首地址MOVR4,#08H;八路模拟信号MOVR2,#00H;模拟通道0SETBEA;开中断SETBEX1;允许外中断1SETBIT1;边沿触发MOVDPTR,#7FFFH;ADC0809端口地址MOVA,R2MOVXDPTR,A;启动ADC0809SJMP$;等待,中断服务程序:MOVXA,DPTR;输入转换结果MOVR0,A;存入内存INCR0;数据区地址加1INCR2;修改输入通道MOVA,R2MOVXDPTR,A;启动下一路通道DJNZR4,LOOP;八路未完,循环CLREX1;八路完毕,关中断LOOP:RETI;中断返回,AD574A与8051单片机接口,AD574A逻辑控制真值表,(a)启动与转换(b)转换结果输出,AD574A工作时序图,积分型A/D转换器工作原理,双积分型A/D转换器工作原理双积分型A/D转换是一种间接A/D转换技术。首先将模拟电压转换成积分时间,然后用数字脉冲计时方法转换成计数脉冲数,最后将此代表模拟输入电压大小的脉冲数转换成二进制或BCD码输出。,双积分A/D转换电路原理及工作波型图,1.准备期:开关S1、S2、S3断开,S4接通,积分电容C被短路,输出为0。,2.采样期:开关S2、S3、S4断开,S1闭合,积分器对输入模拟电压+Vi进行积分,积分时间固定为T1,在采样期结束的t2时刻,积分器输出电压为:式中为被测模拟电压在T1时间内的平均值。,3.比较期:从t2时刻开始,开关S1、S2、S4断开,S3闭合,将与被测模拟电压极性相反的标准电压-Er接到积分器的输入端(若被测模拟电压为-Vi,则S1、S3、S4断开,S2闭合,将+Er接到积分器的输入端),使积分器进行反向积分。当积分器的输出回到0时,比较器的输出发生跳变。设在t3时刻积分器回0,此时有:式中T2=t3-t2为比较周期。,在T2周期内对一个周期为的时钟脉冲进行计数,得:,由于T1、Er、都是恒定值,从而计数值N就正比于被测模拟电压值,实现了A/D转换。,典型双积分A/D转换器芯片ICL7135,ICL7135是一种常用的4位半BCD码双积分型单片集成ADC芯片,其分辩率相当于14位二进制数,它的转换精度高,转换误差为1LSB,并且能在单极性参考电压下对双极性输入模拟电压进行A/D转换,模拟输入电压范围为01.9999V。芯片采用了自动校零技术,可保证零点在常温下的长期稳定性,模拟输入可以是差动信号,输入阻抗极高。,ICL7135的输出时序图,B8、B4、B2、B1:BCD码数据输出,B8为最高位,B1为最低位。D5、D4、D3、D2、D1:BCD码数据的位驱动信号输出端,分别选通万、千、百、十、个位。,ICL7135与单片机8031的接口电路,ICL7135转换结果输出是动态的,因此必须通过并行接口才能与单片机连接。上图所示为ICL7135通过并行接口芯片8155与单片机8031的接口电路。图中74LS157为4位2选1的数据多路开关,74LS157的SEL输入为低电平时,1A、2A、3A输入信息在1Y、2Y、3Y输出;SEL为高电平时,1B、2B、3B输入信息在1Y、2Y、3Y输出。因此,当7135的高位选通信号D5输出为高电平时,万位数据B1和极性、过量程、欠量程标志输入到8155的PA0PA3,当D5为低电平时,7135的B8、B4、B2、B1输出低位转换结果的BCD码,此时BCD码数据线B8、B4、B2、B1输入到8155的PA3PA0。,8155的定时器作为方波发生器,8031的晶振频取12MHz,8031的ALE端输出2MHz的频率信号给8155定时器输入端TIMERIN,定时器经16分频后,输出频率为125kHz的方波,作为7135的时钟脉冲。8155的PA口工作于选通输入方式,ICL7135的数据输出选通脉冲线接到8155的PA口数据选通信号线ASTB(PC2),8155PA口中断请求线AINTR(PC0)反相后接到8031的。当ICL7135完成一次A/D转换以后,产生5个数据选通脉冲,分别将各位的BCD码结果和标志D1D4打入8155的PA口,PA口接收到一个数据以后,中断标志线AINTR(PC0)变高,通过反相器使单片机8031外部中断1输入端变为低电平,向CPU请求中断,CPU响应中断后,读取8155PA口的数据。,7135A/D转换流程,三积分式ADC的工作原理,为了提高双分积式ADC的分辨率,出现了多积分式ADC。下面简单介绍三重积分式ADC的工作原理。它的特点是比较期由两段斜坡组成,当积分器输出电压接近0点时,突然换接数值较小的基准电压,从而降低了积分器输出电压的斜率,延长积分器回0的时间,使比较周期延长以获得更多的计数值,从而提高了分辨率。而积分器在输出电压较高时,接入数值较大的基准电压,积分速度快,因而转换速度也快。,系统中有两个比较器,比较器1的比较电平为0电平,比较器2的比较电平为V,同时有两个基准电压Er和Er/2m。工作过程如下:采样期:Sx接通,Spb、Sps断开,积分器对被测电压Vi积分,积分周期恒定为T1;比较期I:Spb接通,Sx、Sps断开,积分器对极性与Vi相反的基准电压Er进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民族情民族魂课件
- 2025年急性中风的急救处理策略考试卷答案及解析
- 2025年口腔颌面外科术后护理要点模拟考试答案及解析
- 2025年放射治疗技术评估考试答案及解析
- 2025年药物临床药物不良反应处理答案及解析
- 2025年全科医学肺炎诊断处理流程答案及解析
- 2025年儿科医学专业技术资格考试答案及解析
- 2025年中医外科经络穴位技术操作检测试卷答案及解析
- 2025年眼科常见疾病诊断治疗技能考核测试卷答案及解析
- 中国经济新质生产力解析
- 矿压观测工安全操作规程(标准版)
- 电力、通信排管施工技术交底
- 长春牛津版英语一年级上This is Eddie
- 病理生理学缺氧课件
- 工作文件自用补充调研报告
- 苏科版生物七年级上册全套课件
- 第二章:保险的性质和功能
- 《危险化学品重点县专家指导服务手册》
- 中医学概论智慧树知到答案章节测试2023年安徽中医药大学
- 中华全国律师协会律师办理企业破产法律业务操作指引
- GB/T 5218-1999合金弹簧钢丝
评论
0/150
提交评论