版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 常用A/D、D/A转换器应用介绍 4-1 常用常用A/D转换器转换器 作为智能设备,经常需要处理模拟量的前向通道与后向通道(即输入与输出),这两个环节需要使用模/数与数/模转换器。一、分类 从接口类型分类,分为并口、串口方式及非标准接口;从转换原理分类,又分为比较型与积分型。1、接口方式简介 常用的嵌入式系统外围芯片,包括A/D及D/A芯片,大体上使用三类接口规范:并口、串口方式及非标准接口。(1)并口 此类接口为计算机硬件典型接口。需要含有:电源、数据总线(一般8位)、地址总线(宽度依据器件存储器数量而定)、控制总线(读、写、片选、时钟、中断、复位等)。 此类芯片能够与典型的系统外部
2、总线直接无缝接口(如同8255芯片一样)。如果嵌入式系统没有扩展外部总线,亦可以使用I/O口来模拟总线进行接口。 特点是读写控制速度快,控制软件简单;缺点是占用总线,使用了大量的I/O,芯片尺寸大,线路板布线复杂。(2)串口 考虑到大部分外设都不需要很高的速度,同时也为节省MCU的I/O,目前多种外设:EEPROM、数字传感器芯片、 A/D及D/A芯片、显示模块等都采用串行接口。 常用的串行接口有移位寄存器、SPI、I2C、1线接口等。 特点是读写控制速度相对较慢,需要一定的控制软件开销;优点是仅使用了少量的I/O,最少只需要1根I/O;芯片尺寸校,线路板布线简单。2、转换原理分类 从转换原理
3、分类,分为比较型与积分型。 (一) 比较型ADC 比较型ADC可分为反馈比较型及非反馈(直接)比较型两种。比较型ADC优点是速度快,缺点是很难做到高的位数。 高速的并行比较型ADC是非反馈的,N位2进制A/D转换器就需要2(N-1)个比较器。制作工艺困难,价格比较高,仅用于视频等告诉信号处理场合。(简单介绍4个比较器工程3位2进制ADC的原理) 智能仪器中常用到的中速中精度的逐次逼近型ADC是反馈型。仅使用一个比较器,采用类似与对分搜索的方法工作。图4-1 逐次逼近式转换器原理 (二) 积分型型ADC 常用双积分、V/F、-等类型,以双积分型为例。图4-2 双积分ADC 双积分式ADC的优点:
4、 对R、C及时钟脉冲Tc的长期稳定性无过高要求即可获得很高的转换精度。 微分线性度极好,不会有非单调性。因为积分输出是连续的,因此,计数必然是依次进行的,即从本质上说,不会发生丢码现象。 积分电路为抑制噪声提供了有利条件。双积分式ADC是测量输入电压在定时积分时间T1内的平均值,对干扰有很强的抑制作用,尤其对正负波形对称的干扰信号抑制效果更好,典型的是抗工频干扰。二、ADC特性参数1、量化特性与量化误差图4-3 量化特性及量化误差 数字量化最小分辨率=1;一般最小量化误差=1/2。图4-4 理想ADC的传输特性和量化误差 2、常用性能衡量指标 A/D转换器常用以下几项技术指标来评价其质量水平。
5、 (1) 分辨率 ADC的分辨率定义为ADC所能分辨的输入模拟量的最小变化量。 (2) 转换时间 A/D转换器完成一次转换所需的时间定义为A/D转换时间。 (3) 精度 绝对精度 绝对精度定义为:对应于产生一个给定的输出数字码,理想模拟输入电压与实际模拟输入电压的差值。 绝对精度由增益误差、偏移误差、非线性误差以及噪声等组成。 相对精度 相对精度定义为在整个转换范围内,任一数字输出码所对应的模拟输入实际值与理想值之差与模拟满量程值之比。 偏移误差。 ADC的偏移误差定义为使ADC的输出最低位为1,施加到ADC模拟输入端的实际电压与理论值1/2(Vr2n)(即0.5LSB所对应的电压值)之差(又
6、称为偏移电压)。 增益误差 增益误差是指ADC输出达到满量程时,实际模拟输入与理想模拟输入之间的差值,以模拟输入满量程的百分数表示。 线性度误差 ADC的线性度误差包括积分线性度误差和微分线性度误差两种。 a积分线性度误差 积分线性度误差定义为偏移误差和增益误差均已调零后的实际传输特性与通过零点和满量程点的直线之间的最大偏离值,有时也称为线性度误差。 b微分线性度误差 积分线性度误差是从总体上来看ADC的数字输出,表明其误差最大值。但是,在很多情况下往往对相邻状态间的变化更感兴趣。微分线性度误差就是说明这种问题的技术参数,它定义为ADC传输特性台阶的宽度(实际的量子值)与理想量子值之间的误差,
7、也就是两个相邻码间的模拟输入量的差值对于Vr/2n的偏离值。图4-5 ADC的积分线性度误差 图4-6 ADC的微分线性度误差 与微分线性度误差直接关联的一个ADC的常用术语是失码(Missing Cord)或跳码(Skipped Cord),也叫做非单调性。这个特性决定了ADC的分辨率高并不一定代表它的先进性度高或者微分非线性小。 图4-7 ADC的失码现象 温度对误差的影响 环境温度的改变会造成偏移、增益和线性度误差的变化。一般来讲,目前的芯片制造技术能够对温度漂移进行较好的控制。三、常用ADC芯片接口方法(一) AD574A及其与微处理器的接口图4-8 AD57A的管脚图 AD574是美
8、国AD公司生产的12位高速逐次逼近型模数变换器,图3-8所示片内自备时钟基准源,变换时间快(25s),数字量输出具有三态缓冲器,可直接与微机的总线接El,又可直接采用双极性模拟信号输入,有着广泛的应用场合,供电电源为1 5 V,逻辑电源为+5 V。引脚:CS :片选,低有效;CE :片允许,高有效。RC :读变换,高为读AD变换结果,低为启动AD变换;128 :数据格式,高为12位并行输出,低为8位(或4位)并行输出;A0 :字节地址短周期,高为8位变换输出低4位,低为12位变换输出高8位;STS :变换状态,高为正在变换,低为变换结束STS总共有三种接法:(1)空着:只能在启动变换,25 s
9、以后读AD结果;(2)接静态端口线:可用查询方法,待STS为低后再读AD变换结果;(3)接外部中断线:可引起中断后,读AD变换结果;REFIN :基准输入REFOUT :内部10V基准输出;BIP OFF :双极性方式时,偏置电压输入端(10V基准);DBIIDB0:12位数据总线10VIN :单极性010 V模拟量输入;双极性0 5 V模拟量输入;20VIN :单极性020 V模拟量输入;双极性0 10 V模拟量输入;AGND :模拟地 图4-9 ADC574A单极性和双极性输入接法 表4.10 AD574的控制状态表及8位数据输出数据格式图4-11 AD574A启动转换和读数据时序 对芯片
10、的使用要点:必须清晰读懂时序才能编程控制!对芯片的使用要点:必须清晰读懂时序才能编程控制!图4-12 AD574A与8031的接口 如图4-12是8051单片机与AD574A的接口电路,其中还使用了三态锁存器74LS373和74LS00与非门电路,逻辑控制信号由(、和A0)有8051的数据口P0发出,并由三态锁存器74LS373锁存到输出端Q0、Q1和Q2上,用于控制AD574A的工作过程。AD转换器的数据输出也通过P0数据总线连至8051,由于我们只使用了8位数据口,12位数据分两次读进8051,所以接地。当8051的P3.0查询到STS端转换结束信号后,先将转换后的12位A/D数据的高8位
11、读进8051,然后再将低4位读进8051。其实这里也可以直接采用延时25s后立即采样的方法读取数据。这里不管AD574A是处在启动、转换和输出结果,使能端CE都必须为1,因此将8051的写控制线和读控制线通过与非门74LS00与AD574A的使能端CE相连。实际操作的时候,也可以直接连接到+5V电源。 扩展空间为外部RAM8位寻址。启动一次12位ADC转换时,写命令地址:XXXXX000H;读出高8位数据地址:XXXXX010H;读出低8位数据地址为XXXXX011H。因为只扩展了一个器件,不需要考虑重叠地址问题,此处X可以取任意值,一般取0。编程举例:采用延时取样,读取AD574结果。条件:
12、图3-12,默认MCU为12MHz时钟。#include #include unsigned int get_ad574()unsigned char pdata * data p;unsigned int x;unsigned char i;*p=0 x00;i=25;While(i0) /延时25微秒_nop_();i=i-1;p=0 x02;x=(*p)*256; /读高位p=0 x03;x=x+*p; /并入低位return x4; /清除低四位0返回void main()unsigned int y;y=get_ad574;while(1) 此程序仅为一个采样示例,主函数实际没有使用
13、意义。(二)8路8位分辨率ADC0809及与MCU的直接I/O接口1、简介 ADC0809芯片有28条引脚,采用双列直插式封装,如图3-13所示。下面说明各引脚功能。IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门
14、,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ(典型500KHZ,转换时间小于100s)。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。GND:地。图4-13 ADC0809引脚图 ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果
15、的数字量输出到数据总线上。 图4-14 ADC0809内部逻辑图与通道选择表图4-15 典型总线方式的ADC0809接口如图4-15,是一个典型的0809总线方式接口电路。需要使用相当多的额外门电路配合,同时占用了MCU的I/O数个接口,在有时这样做是得不偿失的。大多数情况下,可以使用图4-16的I/O模拟总线接口方法。图4-16 I/O模拟总线方式的ADC0809接口电路 如图4-16,采用延时100微秒读取结果的采样方法,使用10条I/O模拟总线与0809接口。四分频器将MCU的2MHz的ALE信号分频为500KHz,采用计数器或者74LS74分频。2、编程举例:读取8个通道的输入。条件:
16、图4-16。#include #include unsigned char out8;/8个输入缓冲sbit start_ale=P30;sbit oe=P31;get_adc0809()unsigned char I,j;for(j=0,j0) /延时100微秒_nop_();i=i-1; P2=0 xff; /输入口置1 oe=1; outj=P2; oe=0; void main() start_ale=0; oe=0; get_adc0809(); whlie(1) AD574和和ADC0809都是三十年都是三十年前的经典了!今天在这里讲它们,前的经典了!今天在这里讲它们,目的不是使用
17、,而是将接口方法!目的不是使用,而是将接口方法! 早已经没人使用这些器件了!早已经没人使用这些器件了!(三)串行接口8位分辨率AD转换器TLC549(TLC548) TLC548和TLC549是以8位开关电容逐次逼近A/D转换器为基础而构造的CMOS A/D转换器。它们设计成能通过3态数据输出和模拟输入与微处理器或外围设备串行接口。TLC548和TLC549仅用输入/输出时钟(I/O CLOCK)和芯片选择(CS)输入作数据控制。TLC548 和 TLC549提供了片内系统时钟,它通常工作在4MHz且不需要外部元件。片内系统时钟使内部器件的操作独立于串行输入/输出的时序并允许 TLC548 和
18、TLC549 象许多软件和硬件所要求的那样工作。 I/O CLOCK 和内部系统时钟一起可以实现高速数据传送以及对于TLC548为每秒45,500次转换、对于TLC549为每秒40,000次转换的转换速度。图4-17 TLC549引脚图 特点:8位分辨率A/D转换器微处理器外设或独立工作差分基准输入电压(2.5VVCC)转换时间 17s Max每次总存取与转换周期数 TLC548 高达45,500 TLC549 高达40,000片内软件可控采样!保持总不可调整误差(Total Unadjusted Error) 0.5LSB Max4MHz典型内部系统时钟宽电源范围 3V至6V低功耗 15mW
19、 Max能理想地用于包括电池供电便携式仪表的低成本、高性能应用引脚和控制信号与TLC540、TLC545 8位A/D转换器以及 TLC1540 10位A/D转换器兼容CMOS工艺图4-18 TLC549转换时序(读取当前结果同时启动下一次转换) 转换周期需要36个系统时钟周期(最大为17s),它开始于CS变为低电平之后I/O CLOCK 的第8个下降沿,这适用于该时刻其地址存在于存储器中的通道。 在CS变为低电平之后,最高有效位(A7)自动被放置在DATA OUT总线上。其余的7位(A6-A0)在前7个I/O CLOCK下降沿由时钟同步输出。B7-B0以同样的方式跟在其后。/TLC549转换驱
20、动函数:使用前请定义ad_cs,ad_clk,ad_dat等硬件I/O。unsigned char ad_ctr()unsigned char data i,j,k; ad_dat=1; ad_clk=0; ad_cs=0; for(i=0;i8;i+) j=j1; k=ad_dat;/共移出8位数据 ad_clk=1; ad_clk=0; j=j+k; ad_cs=1; return j;/返回转换结果 因为串行的A/D接口简单,成本低,目前常用。TI公司的逐次比较A/D还有典型的11路输入12位分辨率的TLC2543。(四)双积分ADC转换芯片ICL71351、简介 ICL7135是四位半
21、双积分型A/D转换器,具有精度高和价格低的特点,多年来获得了广泛应用,芯片管脚见图4-19,具体详细资料可以在著名芯片商MAXIM公司的网站www.maxim-上查到(或者在上查找)。它最初的设计目的主要是为了数字测量仪表应用的,主要提供了与LED数码显示器的扫描接口,因此它没有设计与MCU的标准接口,而仅是提供出有限的A/D转换过程信号。大多数书籍在介绍ICL7135与MCU接口电路时,基本都是使用8255或者8155提供多条I/O来对接它的BCD码输出线和万、千、百、十和个位选通线等信号,占用过多I/O口线,实际接口复杂。图4-19 ICL7135管脚图图4-20 ICL7135时序图2、
22、接口与编程设计举例 本设计则独辟蹊径,仅使用三根I/O口线就实现了ICL7135与51单片机的接口。本例默认ICL7135为连续转换方式,如果需要控制它的转换起始过程,则还需要一根I/O口线来控制它的R/H端。接口及BUSY信号波形参见图4-21,具体是利用了ICL7135的BUSY信号输出端,它指示了芯片的积分过程。芯片的积分过程包括了对测量信号的积分阶段及对基准电压的放电阶段,对测量信号积分时间固定为10000个时钟周期,而对基准放电的时间计数就是A/D转换结果。只要对只要对BUSY信号的高电平信号的高电平进行时钟同步计数,再减掉进行时钟同步计数,再减掉10000就能够得到就能够得到A/D
23、结果。具体的结果。具体的设计是使用单片机设计是使用单片机T0计数,计数,INT0接接BUSY做门控,同时使用做门控,同时使用INT0的后沿中断获得的后沿中断获得A/D转换结果。转换结果。具体程序如下: 图4-21 ICL7135管脚排列、接口及积分波形图图4-22 ICL7135应用时钟计数输出电气连接图图4-23 ICL7135利用获得时钟的原理图/程序举例:条件:图4-19#include int data addat; /定义A/D采样结果变量bit adover=0; /定义A/D结束标志sbit pol=P10; /定义A/D结果符号输入接口/INT0中断服务程序,获得A/D结果,同
24、时置标志通知主程序。void ad_t0_int() interrupt 0 addat=256*TH0+TL0; /BUSY后沿引发A/D结束中断,获得采样结果 TH0=55536/256; /重新置T0计数器,置-10000,省略减法操作 TL0=55536%256; if(pol=0) /如果符号采样为负,结果加负号 addat=0-addat; adover=1; /置位采样结束标志,通知主函数/主函数初始化部分void main() TMOD=0 x0d; /T0设置为方式1,门控计数方式 TH0=55536/256; /初值为-10000 TL0=55536%256; EA=1;
25、IT0=1; EX0=1; 本例的硬件接口和驱动程序都十分简洁,但需要指出的是,本例的硬件接口和驱动程序都十分简洁,但需要指出的是,简洁的表面下是有代价的,那就是占用了简洁的表面下是有代价的,那就是占用了MCU的一个定时的一个定时/计计数器和一个外部中断源。数器和一个外部中断源。 积分型A/D的特点是用时间换空间,转换速度慢,但是精度高,常用语DMM应用领域。 目前常用的积分型A/D还有-型芯片,例如ADI公司的AD7705,双通道差动输入,内置1128倍PGA放大器,16位分辨率。目前国产型号为TM7705。 甚至还有专门为电子秤设计的高精度芯片HX711,自带应变桥稳压器,24位分辨率。4
26、-2 常用常用D/A转换器转换器一、分类1、原理 数字量是用代码按数位组合起来表示的,对于有权码,每位代码都有一定的位权。为了将数字量转换成模拟量,必须将每1位的代码按其位权的大小转换成相应的模拟量,然后将这些模拟量相加,即可得到与数字量成正比的总模拟量,从而实现了数字模拟转换。这就是组成D/A转换器的基本指导思想。 D/A转换器由数码寄存器、模拟电子开关电路、解码网络、求和电路及基准电压几部分组成。数字量以串行或并行方式输入、存储于数码寄存器中,数字寄存器输出的各位数码,分别控制对应位的模拟电子开关,使数码为的位在位权网络上产生与其权值成正比的电流值,再由求和电路将各种权值相加,即得到数字量
27、对应的模拟量。 2、类型(1)、按输出分类电流输出型、电压型输出型(2)、接口分类并口、串口二、常用DAC芯片接口方法(一) ADC0832及其与微处理器的接口略(已经是30年前的历史)(二)MAX531及其接口 串行接口,电压输出型,内置2.048V基准,可设置两倍基准输出,单5V供电,上电自动输出清零。图4-24 MAX531管脚及内部结构图图4-25 数据写入时序图 此芯片允许多级芯片级联,实现多路模拟输出同时刷新。图4-26 简易数控直流电压源原理图0.520V/2A)1、电源 电源采用串联稳压电源,变压器为双绕组,功率大于40W。 一组输入输出电压比为220:9,为控制器系统供电。全
28、桥指标为1A/50V,或由4只1N400X系列整流二极管组成;滤波电容采用普通铝电解电容,原则上容量大于或等于220uF即可,耐压需要不低于25V;稳压器采用通用的TO-220封装形式的7805T即可;考虑到稳压后主要电流用户为LED,它为扫描脉动工作,100多mA,输出滤波电容容量宜偏大一些,具体使用了容量为100 uF的铝电解,耐压需要不低于10V。 另外一组为数控输出部分供电,输入输出电压比为220:22,为系统输出供电。全桥指标为3A/50V,或由4只1N540X系列整流二极管组成;滤波电容采用普通铝电解电容,原则上容量大于或等于4700uF即可,耐压需要不低于35V,实际使用了两只;
29、稳压器采用运放跟随器方式,具体采用两级放大器,第一级将D/A输出最大量程扩大到20V,第二级运放采用跟随方式,使用两级三极管扩流。末级使用多管并联,实际三极管全部加了射极负反馈以保证均流;考虑到稳压后要作为1A电源使用,输出滤波电容容量宜偏大一些,具体使用了容量为4700 uF的铝电解,耐压需要不低于35V,实际使用了两只。2、MCU及D/A 考虑到实际问题简单,这里采用普通89C51芯片,单芯片系统。D/A选择了MAXIM公司的MAX531,为电压输出,串行接口的12位D/A转换器。它内置2.048V基准,支持2倍基准电压输出。3、复位电路 考虑到系统的工作稳定性及参数存储需要,这里选择了X
30、5045。4、显示电路及键盘 采用4只LED做显示器,动态扫描方式。设计了3个按键,用来进行初始时间设置。/DA输出函数,使用前需要进行I/O定义!void da_out(unsigned int dat) unsigned char data i; unsigned int data j; j=dat; da_sclk=0; da_cs=0; for(i=0;i16;i+) da_din=j&0 x8000; da_sclk=1; da_sclk=0; j=j1; da_cs=1; da_din=1; da_sclk=1;(三)使用MCU定时器设计PWM式D/A 在某些特殊应用中,需
31、要为外界提供高精度D/A输出,但考虑成本及功耗,不允许使用现成的D/A芯片,此时就可以使用单片机的定时器来设计PWM发生器,再经过滤波产生直流输出来完成D/A功能。如果有的MCU直接支持PWM,则软件更简单。图4-27 使用MCU定时器设计PWM式D/A 如图4-27就是一个PWM式D/A电路。PWM信号从单片机的P1.3输出,由LM285-12转换为高电平稳定的1.25V的PWM调制波形。再经过TLC2252运算放大器构成的二阶低通滤波器和一阶低通滤波器并放大后获得直流输出。本设计中,MCU电源VCC的范围可以在2.7V5V之间,整个D/A转换器功耗低于200A。由于使用了单电源供电,这个电路只能输出15V的工业标准信号。如果需要输出420mA直流信号,只需要把第二级放大器改为可变恒流源电路即可。如果需要双极性信号,则需要配负电源,并使用加法器做电平移动。 单片机使用标准8051内核的芯片,时钟为12MHz。使用T0设计PWM发生器,设计周期为5ms,单周期为5000个计数。分为两个半周期,由T0两次中断来生成。两个半周期的时间有主程序运算决定,通过调用output_dat(unsigned int dat)函数实现对两个半周期定时系数的赋值。具体程序如下: #inc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工培训计划执行与绩效确认信7篇范本
- 2026年四川宜宾三江新区社区工作者(社区综合岗)招聘考试核心押题卷(第1套)(附独家高分解析)
- 汽车构造学试题及答案
- 2026北京考编面试题目及答案
- 2026北森测评面试题及答案
- 2026比赛幕后面试题目及答案
- 2026笔试面试题及答案
- 2026编辑事业编面试题及答案
- 2026兵器专业面试题目及答案
- 2026兵团面试题及答案解析
- 2026广东东莞职业技术学院招聘事业编制专职辅导员13人笔试参考题库及答案详解
- 2026重庆渝富控股集团有限公司所属企业招聘14人备考题库及答案详解1套
- 2026上海长宁区社区工作者招聘94人笔试参考题库及答案详解
- 专利技术合作开发合同范本
- 2026年小学三年级英语第二学期期末考试卷及答案(共十二套)
- (2026年)孕妇糖耐量试验健康知识宣教课件
- 公司入围申请书范文模板
- 2024年海南农垦旅游集团有限公司招聘笔试参考题库含答案解析
- 《新会计法解读》课件
- 悬挑式卸料平台监理实施细则
- 1956-1967国家科学技术发展远景规划纲要
评论
0/150
提交评论