资源描述
,第10章单片机A/D及D/A转换接口,10.1单片机测控系统与模拟输入通道10.2A/D转换器及接口10.3D/A转换器及接口10.4A/D与D/A转换器芯片的串行接口,10.1单片机测控系统与模拟输入通道,现代技术的基础是信息技术,信息技术的三大支柱是:计算机技术、测控技术、通信技术单片机技术的应用在这个三个领域都有涉足,特别是测控技术,10.1.1单片机测控系统概述,测控技术包括“测”与“控”。测:实时采集被控对象的物理参量,如温度、压力、流量、速度等,这些参量通常是模拟量,即连续变化的物理量连续指的是:一是时间意义上的连续,即量值随时间变化连续变化;二是数值意义上的连续,即量值本身连续变化。模拟量不能直接送给计算机,必须通过模/数转换。,控:把采集的数据经计算机计算、比较等处理后,得出结论,以对被控对象实施校正控制。经计算机处理后得到的数字量结果,必须经数/模转换后才能被控制执行部件所接受。A/D(analog/data)及D/A转换在测控系统中为模拟输入通道及模拟输出通道,10.1.2模拟输入通道,1传感器主要功能是采集信号,也有转换功能,即把采集到的非电信号转换为电信号(电压即电流)。主要有:温度传感器、光电传感器、湿度传感器,流量传感器,压力传感器,机械量传感器,成份分析传感器、PH值传感器。,传感器采集信号和转换信号的能力与质量,将直接影响测控系统的性能。高质量的传感器的输入与输出信号间应具有稳定且重复性好的函数关系、较好的灵敏度和精确度以及较强的抗干扰能力。传感器的发展方向是新原理、集成化和功能器件化。,2放大器,传感器得到的电信号一般幅度较小,难以直接进行A/D转换,所以需要放大器对模拟信号进行放大处理。放大器的种类很多,但在模拟输入通道中使用的是一种高放大倍数并带有负反馈的直接耦合放大器,并对输入信号进行多种数学运算,也为运算放大器。,3采样/保持,采样是为了跟踪输入信号的变化,其实质是将一个连续变化的模拟信号转换为时间上离散的采样信号,所以信号采样要按一定时间间隔进行,并且采样频率远高于信号中的最高频率(一般是2。5倍),所以得到的采样脉冲是一个宽度很窄的脉冲序列。而保持是把采样信号保持一段时间,因为其后的A/D转换需要一个时间过程。在保持期间要维持信号的稳定,所以尽量保持信号不变。在模拟输入通道中,采样电路和保持电路是合在一起的,称为采样/保持电路。,4滤波器,测控系统工作时可能会受到环境干扰,如温度、电场、磁场等,从而造成模拟信号中混有多种频率的噪声信号。甚至干扰信号大于有用信号,为了抑制干扰信号,提高信噪比,在模拟输入通道中应使用滤波器。分为模拟滤波和数字滤波。,模拟滤波器由电子元器件构建的滤波电路,有LC谐振电路,及RC谐振电路。数字滤波是通过程序对采样信号进行平滑加工,以提高有用信号,消除抑制干扰信号。有多种软件可以作数字滤波。如MATLAB软件包等。,5多路开关,一个测控系统可以有多路系统,以便进行多路采集,在多路系统中,只经速度允许,就可以采用多通道共用一个A/D转换器的方案,以简化结构降低成本。因此需要在模拟输入通道中设置一个多路开关以进行切换通道,以实现各个通道被分时、各个地被轮流接通。,10.2转换器及接口技术,模数()转换电路的种类有:计数比较型、逐次逼近型、双积分型等等。逐次逼近型转换器,在精度、速度和价格上都适中,是最常用的转换器件。双积分转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度低。串行输出的A/D芯片由于节省单片机的I/O口线,越来越多地被采用。如具有SPI三线接口的TLC1549、TLC1543、TLC2543、MAX187等,具有2线I2C接口的MAX127、PCF8591(4路8位A/D,还含1路8位D/A)等。,10.2.1逐次逼近型并行输出转换器及接口,ADC0809A/D转换器芯片由8路模拟开关、8位A转换器、三态输出锁存器以及地址锁存译码器等组成。,图10-2ADC0809结构,芯片功能与结构AD分辨力:8位内置多路开关,允许对8路模拟量分时转换;自带微机总线接口;最高转换速度100S次;内部结构如图所示。,引脚功能:IN0IN7:8通道模拟信号输入D0D7:8位数字量输出ADDC、ADDB、ADDC:通道选择,000111对应于IN0IN7ALE:通道地址锁存,正脉冲输入START:启动信号,正脉冲输入EOC:转换结束,转换开始后EOC0,转换结束时EOC1OE:输出允许控制CLK:转换时钟信号,典型值640KVREF()、VREF:AD参考电压VIN=VREF(D7D0)/256;(D7D0)=00HFFHVCC、GND:电源电压+5+15V,工作时序:ALE1:ADDAADDC进入ALE0;ADDAADDC锁存START:上升沿使AD内部复位,下降沿启动A/D(一般START可兼作ALE信号使用)EOC:转换开始后为0,结束时为1OE:高电平使片内数据输出,低电平数据线为高阻,图9-28ADC0809的时序图,2、ADC0809与89C51接口,ADC0809与89C51连接可采用查询方式,也可采用中断方式。图9-29为中断方式连接电路图。由于ADC0809片内有三态输出锁存器,因此可直接与89C51接口。,图10-3ADC0809与89C51的连接,0809与8031接口(总线型)ADDAADDC:连至A0A2DOD7:接数据总线START、ALE:由P2.7、WR“或非”产生例:启动通道0转换MOVDPTR,7FF8HMOVXDPTR,AP2.70,WR0,ALESTATR1,通道地址进入,AD复位。P2.70,WR1,ALESTART0,通道地址锁存,AD启动。EOC:通过非门接INT1,转换结束时产生中断,OE:由P2.7和RD通过“或非”门产生,“读”AD例:MOVXA,DPTR(DPTR7FF8H)P2.7=0,RD0,OE1,D0D7数据总线,被CPU读取。CLK:由ALE通过分频产生,亦可单独提供时钟。VREF()、VREF:参考电压(一般为+5V),3、程序实例:8路巡回检测设对8点温度巡回检测,温度范围3050,检测精度1。数据存放于外RAMA0HA7H单元。主程序:MAIN:MOVR0,0A0H;数据暂存区首址MOVR2,08H;8路数初值SETBIT1;脉冲触发方式SETBEA;开中断SETBEX1MOVDPTR,7FF8H;指向0809首地址(IN0)MOVXDPTR,A;启动AD转换HERE:SJMPHERE;等待中断中断服务程序:MOVXA,DPTR;读A/DMOVXR0,A;存数INCDPTR;更新通道INCR0;更新暂存单元DJNZR2,DONERET1DONE:MOVXDPTR,A;启动AD转换RETI,A/D转换芯片说明,原理划分:积分型:精度高、抗干扰能力强,但速度不高。逐次逼近型:原理简单,中等速度,分辨率较高。闪烁型:速度快,功耗大,且电路复杂。,分辨率高,价格便宜,抗干扰能力强。,2输入电压信号形式,分为单极、双极和差分三种单极:允许电压0+5V,0+10V,和0+20V,线路简单,一条输入线,一条地线。双极:电压可正可负,一条引线输入,但芯片上需要一对极性相反的工作电源与之配合。差分:是不共地电压信号,需要两条线输入。,3输出二进制代码形式,有二进制代码和BCD代码两种形式。二进制代码有8、10、12、14、16、20、24位等。BCD码主要用在数字电压表中,输出的BCD码可直接在LED或LCD中进行显示。常见的有3位半、4位半、5位半。3位半是4组BCD码,分别为千位、百位、十位、个位,但其中对应百、十、个位的BCD码都用来表示数字,即09共10个数字,对应千位的BCD码只用其0或1,其它的3个高位用于表示数值的正负或被测量的欠量程和过量程等标志,所以称为“半”位。所以最大值为1999。,4分辨率,分辨率是转换器对被转换量变化敏感程度的描述。或者说转换器对被转换量变化的分辨能力,也可以说是输入量有多大的变化量转换器输出端才有反应。对于A/D转换器,被转换量是电压,所以分辨率是对输入电压信号变化的分辨能力,即输入电压有多大的量才能使输出量改变一个二进制单位,因此,A/D转换器的分辨率是电压值。,对于N位的A/D转换器,其分辨率为满量程输入电压与2N之比,或满量程电压的1/2N。如满量程为10V的12位A/D转换器,其分辨率为10/212=2.4mV.A/D转换位数越高,分辨率越小,分辨能力越强,,5控制信号,时钟信号:转换启动信号:脉冲信号,ADC0809等,可通过执行一条指令来作为启动信号,有的是电平信号,并且在整个转换过程中电平要一直保持,为此,可使用一个D触发器产生启动信号。,6转换结束和数据读取,3种数据读取方式(1)定时等待(2)查询方式(3)中断方式,10.3D/A转换器接口,后向通道是计算机实现控制运算处理后,对被控对象的输出通道接口。系统的后向通道是一个输出通道,其特点是弱电控制强电,即小信号输出实现大功率控制。常见的被控对象有电机、电磁开关等。单片机实现控制是以数字信号或模拟信号的形式通过口送给被控对象的。其中,数字信号形态的开关量、二进制数字量和频率量可直接用于开关量、数字量系统及频率调制系统的控制;但对于一些模拟量控制系统,则应通过转换器转换成模拟量控制信号后,才能实现控制。10.3.1后向通道中的功率开关器件及接口10.3.2串行输入D/A芯片TLC5615接口技术10.3.3并行输入芯片及接口技术,1.继电器及接口1)单片机与继电器的接口一个典型的继电器与单片机的接口电路如图所示。,图10-5继电器接口,10.3.1后向通道中的功率开关器件及接口,2.光电耦合器(隔离器)件及驱动接口,为防止干扰窜入和保证系统的安全,常常采用光电耦合器,用以实现信号的传输,同时又可将系统与现场隔离开。晶体管输出型光电耦合器的受光器是光电晶体管,如图10-6所示。,图10-6光电耦合器4N25的接口电路,3.光电耦合驱动晶闸管(可控硅)功率开关及接口,图10-7是4N40和MOC3041的接口驱动电路。4N40是常用的单向晶闸管输出型光电耦合器,也称固态继电器。MOC3041是常用的双向晶闸管输出的光电耦合器(固态继电器)。,图10-7晶闸管输出型光电耦合器驱动接口,10.3.2并行输入芯片及接口技术,1.并行输入转换芯片DAC0832主要由两个8位寄存器和一个8位转换器组成。,图108DAC0832结构,1)DAC0832引脚功能,D0D7:数字量数据输入线。ILE:数据锁存允许信号,高电平有效。CS:输入寄存器选择信号,低电平有效。WR1:输入寄存器的“写”选通信号,低电平有效。XFER:数据转移控制信号线,低电平有效。WR2:DAC寄存器的“写”选通信号。VREF:基准电压输入线。RFB:反馈信号输入线,芯片内已有反馈电阻。IOUT1和IOUT2:电流输出线。IOUT1与IOUT2的和为常数,IOUT1随DAC寄存器的内容线性变化。一般在单极性输出时,IOUT2接地;在双极性输出时,接运放。VCC:工作电源。DGND:数字地。AGND:模拟信号地。,2)DAC0832特性,主要的特性参数如下:分辨率为8位。只需在满量程下调整其线性度。可与所有的单片机或微处理器直接接口,需要时亦可不与微处理器连接而单独使用。电流稳定时间为1。可双缓冲、单缓冲或直通数据输入。功耗低,约为200mW。逻辑电平输入与TTL兼容。单电源供电()。,2.D/A转换器与89C51接口,实际应用中常常需要芯片的输出还需要有将电流转换为电压的电路。下面介绍两种电路供参考:图9-44(a)是反相电压输出电路,输出电压;图9-44(b)是同相电压输出电路,输出电压()当接5(或5)时,输出电压范围是5(或05);当接0(或)时,输出电压是0(或0V),图10-9D/A转换输出电路,1)直通式工作方式应用,图所示为直通式工作方式的连接方法。输入到DAC0832的D0D7数据不经控制直达8位D/A转换器。当某一根地线或地址译码器的输出线使DAC0832的脚有效(低电平)或与直接接地时,数据线上的数据字节直通转换器转换并输出.,图10-9DAC0832直通式电压输出电路,2)DAC0832单缓冲工作方式应用,这种方式下,将二级寄存器的控制信号并接,输入数据在控制信号作用下(一次控制,一次缓冲),直接打入8位DAC寄存器中并进入8位D/A转换器进行D/A转换。当执行写指令时,DAC0832相应的控制信号时序如图所示。,图1010一路D/A输出连线图(单路模拟量输出),产生锯齿波的程序,程序如下:MOVDPTR,#2FFFH;设置口地址MOVA,#00H;输入数字量00H到A(初值为00H)LOOP:MOVXDPTR,A;输出对应于A内容的模拟量INCA;修改A的内容(原来值加1)AJMPLOOP,图947D/A产生锯齿波程序框图,产生方波的程序,MOVDPTR,#2FFFH;设置口地址LOOP:MOVA,#0FFH;给A送最大值MOVXDPTR,A;输出相应模拟量ACALL2700H;延时MOVA,#00H;给A送最小值MOVXDPTR,A;D/A输出相应模拟量ACALL2700H;延时AJMPLOOP;返回循环,10.4A/D与D/A转换器芯片的串行接口,10.4.1通过I2C总线连接芯片PCF8591PCF8591是一个单片集成、单独供电、低功耗、8-bitCMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0,A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。功能PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模,PCF8591引脚AIN0AIN3:模拟信号输入端。A0A2:引脚地址端。VDD、VSS:电源端(2.56V)SDA、SCL:I2C总线的数据线、时钟线。OSC:外部时钟输入端,内部时钟输出端。EXT:内部、外部时钟选择线,使用内部时钟时EXT接地。AGND:模拟信号地。AOUT:D/A转换输出端。VREF:基准电源端。,器件地址为1001A2A1A0,可以扩展8片PCF8591。,10.4.2通过软件模拟的串行接口,芯片MAX187MAX187是美信公司推出的12位A/D转换芯片,内部含有采样/保持电路。单5V操作电源,转换速度为10微秒,SPI总线。,当CS为高电平时,MAX不被选中。,当CS为低电平时,MAX被选中。模拟信号从AIN脚输入,并由CS的下降沿启动A/D转换。再通过P1。1输出正时钟脉冲序列给SCLK,对应每个时钟脉冲的下降沿,就出现一位转换数据,然后在下一个输出正时钟脉冲的上升沿处该位数据稳定,由8051的P1。2串行读入。转换数据是从最高位开始出现的,因此,为了读出12位转换数据,需要13个时钟脉冲,在第13个时钟脉冲之后,将CS变为高电平,一次转换结束。,MAX187是美信公司推出的12位A/D转换芯片,内部含有采样/保持电路。单5V操作电源,转换速度为8.5s,具有片上4.096V参考电压,模拟量输入范围为0。三线串行接口,兼容SPI,QSPI.MicroWire总线。1MAX187的引脚功能说明MAX187有8脚DIP封装和16脚SO封装2种,图1给出DIP封装的引脚排列,SO封装请查阅文献1。表1是引脚功能说明。2操作时序,
展开阅读全文