《单片机与数模及模数转换器接口.doc》由会员分享,可在线阅读,更多相关《单片机与数模及模数转换器接口.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第九章单片机与数模与模数转换器接口当以单片机为核心组成实时测控系统时,通常需要对被控对象的状态进行测试和对控制条件进行监测,因此需要通过前向输入通道将被测信号输入单片机系统中。在科学研究和生产过程中,测控系统的被测参数可以是温度、压力、速度等非电量,也可以是电流、电压、功率和开关量等电量。这些参数信号需通过各类传感器和变送器变换成相应的模拟电量,然后经多路开关汇集送给A/D转换器,转换成相应的数字量送给单片机。经过单片机处理过的数字量,送给D/A转换器,变换成相应的模拟量对被控系统实施控制和调整,使之处于最佳工作状态,如图8-1所示。知识要点:输入输出通道的基本知识,数字量输入输出通道和模拟量
2、输入输出通道的结构A/D转换器工作原理和MCS-51系列单片机的连接以与程序设计方法。D/A转换器工作原理和MCS-51系列单片机的连接以与程序设计方法。第一节 MCS-51单片机与DA转换器的接口和应用一、概述被测信号分为数字量和模拟量两种。1数字量输入数字量包括N位并行数字量、开关量和频率信号。N位并行数字量可以直接送入单片机的I/O接口。若N位数字量并行输入,当N=8时,正好利用一个8位I/O接口输入单片机内;当N8时,可利用一个8位I/O接口输入CPU,然后将其他位屏蔽即可得到N位数据;当N8时,输入方式有两种:一种是利用多个8位I/O接口,另一种是利用一个I/O接口多次选通输入。开关
3、量开关量是输入信号为具有TTL电平的状态信号,如继电器的吸合与断开、光电门的导通与截止、限位开关、按钮、转换开关、接触器等电器的触点通断,其信号电平只有高、低两种电平。图8-2所示是一种开关量检测电路。开关量信号经过了光电隔离,适当选择电阻值,使A点电平符合TTL电平的要求,可以将A点接到单片机I/O接口或经三态门接到单片机数据总线,实现开关量信号输入。频率信号经放大、整形和隔离等处理,即可得到较为理想的矩形波,这种矩形波可直接送入单片机系统,如图8-3所示。2.模拟量输入所谓模拟量,就是一些连续变化的物理量,如温度、速度、电压、电流和压力等。这些被测参数,单片机无法直接处理,需要把这些模拟量
4、通过各类传感器和变送器变换成相应的模拟电量,然后经多路开关汇集送给A/D转换器,转换成相应的数字量送给单片机。模拟量输入通道一般由传感器、放大器、多路模拟开关、采样保持器和A/D转换器组成,其结构形式取决于被测对象的环境、输出信号的类型、数量和大小等,见表8-1。说明:根据传感器输出信号的大小和类型,选择前向输入通道结构。大信号模拟电压,能直接满足A/D转换输入要求,则可直接送入A/D转换器,经过A/D转换后再送入单片机。也可通过V/F转换成频率信号送入单片机。但由于频率测量响应速度慢,多用于一些非快速过程参量的测量,这种通道结构的优点是抗干扰能力强,便于远距离传输。小信号模拟电压,则首先应将
5、该信号电压放大,放大到能满足A/D转换、V/F转换要求的输入电压。以电流为输出信号的传感器或传感仪表则首先应通过I/V转换,将电流信号转换成电压信号。最简单的I/V转换器就是一个精密电阻,当信号电流流过精密电阻时,其电压降与流过的电流大小成正比,从精密电阻两端取出的电压就是I/V变换后的电压信号。二、A/D转换接口技术A/D转换接口技术的主要内容是合理选择A/D转换器和其他外围器件,实现与单片机的正确连接以与编制转换程序。A/D转换器(Analog-Digital Converter)是一种能把输入模拟电压或电流变成与其成正比的数字量的电路芯片,即能把被控对象的各种模拟信息变成计算机可以识别的
6、数字信息。分类:计数器式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行A/D转换器。计数器式A/D转换器结构很简单,但转换速度也很慢,所以很少采用。双积分式A/D转换器抗干扰能力强,转换精度很高,但速度不够理想,常用于数字式测量仪表中。逐次逼近式A/D转换器结构不太复杂,转换速度也高。计算机中广泛采用其作为接口电路。并行A/D转换器的转换速度最快,但因结构复杂而造价较高,故只用于那些转换速度极高的场合。1、概述1)A/D转换器的技术指标:量化误差(Quantizing Error)与分辨率(Resolution)。A/D转换器的分辨率表示输出数字量变化一个相邻数码所需输入模拟
7、电压的变化量,习惯上以输出二进制位数或满量程与2n之比(其中n为ADC的位数)表示。例如A/D转换器AD574A的分辨率为12位,即该转换器的输出数据可以用212个二进制数进行量化,其分辨率为1LSB (1LSB=VFS/212)。如果用百分数来表示分辨率时,其分辨率为 12n1001212100=0.0244一个满量程VFS=10V的12位ADC能够分辨输入电压变化的最小值为2.4mV。量化误差是由于有限数字对模拟数值进行离散取值(量化)而引起的误差。因此,量化误差理论上为一个单位分辨率,即士(1/2)LSB。提高分辩率可减少量化误差。转换精度(Conversion Accuracy)。A/
8、D转换器转换精度反映了一个实际A/D转换器在量化值上与一个理想A/D转换器进行模数转换的差值,由模拟误差和数字误差组成。模拟误差是比较器、解码网络中电阻值以与基准电压波动等引起的误差;数字误差主要包括丢失码误差和量化误差,丢失码误差属于非固定误差,由器件质量决定。转换时间与转换速率。A/D转换器完成一次转换所需要的时间为A/D转换时间,是指从启动A/D转换器开始到获得相应数据所需时间(包括稳定时间)。通常,转换速率是转换时间的倒数,即每秒转换的次数。2) A/D转换器选择要点确定A/D转换器精度与分辨率。用户提出的测控精度要求是综合精度要求,它包括了传感器精度、信号调节电路精度和A/D转换精度
9、与输出电路、伺服机构精度,而且还包括测控软件的精度。应将综合精度在各个环节上进行分配,以确定对A/D转换器的精度要求,据此确定A/D转换器的位数。通常A /D转换器的位数至少要比综合精度要求的最低分辨率高一位,而且应与其他环节所能达到的精度相适应。确定A/D转换器的转换速率。通常根据被测信号的变化率与转换精度要求,确定A/D转换器的转换速率,以保证系统的实时性要求。用不同原理实现的转换器,其转换速率是不一样的,如积分型的、跟踪比较型的A/D转换器转换速率较慢,转换时间一般为几毫秒到几十毫秒,一般用于温度、压力、流量等缓变参量的检测。计算机中广泛采用逐次逼近式A/D转换器为中速转换器,常用于工业
10、多通道单片机测控系统等。并行A/D转换器的转换速度最快,故常用于如实时瞬态记录等转换速度极高的场合。确定环境参数。根据使用环境条件,确定A/D转换芯片要求的一些环境:工作温度、功耗和可靠性等级等。2、A/D转换典型芯片ADC08098位8通道逐次逼近式A/D转换器,CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以与相应的通道地址锁存用译码电路,其转换时间为100us左右。1)ADC0809的内部逻辑结构ADC 0809内部逻辑结构如图所示。图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C 3个地址位进
11、行锁存和译码,其译码输出用于通道选择。2)信号引脚 ADC0809芯片为28引脚双列直插式封装,其引脚排列见图9.14.对ADC0809主要信号引脚的功能说明如下:IN0IN7模拟量输入通道信号单极性,电压X围0-5V,若信号过小还需进行放大。模拟量输入在A/D转换过程中其值不应变化,对变化速度快的模拟量,在输入前应增加采样保持电路。A、B、C地址线A为低位地址,C为高位地址,模拟通道的选择信号,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表9-1ALE 地址锁存允许信号对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。START 转换启动信号START上跳沿时,所有
12、内部寄存器清“0”;START下跳沿时,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST。D7D0 数据输出线为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高位。OE 输出允许信号用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据。CLK 时钟信号ADC 0809的内部没有时钟电路,所需时钟信号由外界提供。通常使用频率为500kHz的时钟信号。EOC 转换结束信号EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。
13、Vcc 5V电源Vref参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为5V(Vref()5V,Vref(一)=0V)。3) 单片机与ADC0809接口三个问题:要给START线送一个100ns宽的起动正脉冲;获取EOC线上的状态信息,因为它是A/D转换的结束标志;要给“三态输出锁存器”分配一个端口地址,也就是给OE线上送一个地址译码器输出信号。MCS-51和ADC接口通常可以采用定时、查询和中断三种方式。定时传送方式对于每种A/D转换器,转换时间作为一项技术指标,是已知的和固定的。如ADC0809的转换时间为128us。可以设计一延时子程序,当启动转换后,CPU调
14、用该延时子程序或用定时器定时,延时时间或定时时间稍大于A/D转换所需时间。等时间一到,转换已经完成,就可以从“三态输出锁存器”读取数据。特点:电路连接简单,但CPU费时较多。查询方式采用查询法就是将转换结束信号接到I/O接口的某一位,或经过三态门接到单片机数据总线上。A/D转换开始之后,CPU就查询转换结束信号,即查询EOC引脚的状态:若它为低电平,表示A/D转换正在进行,则MCS-51应当继续查询;若查询到EOC变为高电平,则给OE线送一个高电平,以便从线上提取A/D转换后的数字量。特点:占用CPU时间,但设计程序比较简单。中断方式采用中断方式传送数据时,将转换结束信号接到单片机的中断申请端
15、,当转换结束时申请中断,CPU响应中断后,通过执行中断服务程序,使OE引脚变高电平,以提取AD转换后的数字量。特点:在A/D转换过程中不占用CPU的时间,且实时性强。4) 应用举例例分别采用不同方式对8路模拟信号轮流采样一遍,并依次把转换后的数据存放到数据存储区。ADC0809与8031接口工作方式见图8-9。EOC开始转换时为低电平,当转换结束时为高电平。查询方式:查询EOC引脚,接P1.0。中断方式:EOC经反相器接8051的外部中断引脚。1)定时传送方式MAIN:MOV R1,data MOV DPTR,7FF8H;P2.7=0,且指向通道0 MOV R7,08H;置通道数LOOP:MO
16、VX DPTR,A;启动A/D转换 MOV R6,0AHDLAY:NOP NOP NOP NOP DJNZ R6,DLAY MOVX A,DPTR;读取转换结果 MOV R1,A INC DPTR;指向下一个通道 INC R1;修改数据区指针 DJNZ R7,LOOP2)查询方式MAIN:MOV R1,data MOV DPTR,7FF8H;P2.7=0,且指向通道0 MOV R7,08H;置通道数LOOP:MOVX DPTR,A;启动A/D转换 SETB P10WAIT:JNB P10,WAIT;查询P10状态 MOVX A,DPTR;读取转换结果 MOV R1,A INC DPTR;指向下
17、一个通道 INC R1;修改数据区指针 DJNZ R7,LOOP;8个通道全采样完了吗? RET3)中断方式 SETB IT1 SETB EX1 SETB EA MOV DPTR,7FF8H MOV A,0 MOVX DPTR,AEINT1:MOV DPTR,7FF8H MOVX A,DPTR MOV 30H,A MOV A,00 MOVX DPTR,A RETI第二节 MCS-51单片机与A/D转换器的接口与应用在以单片机为核心组成的测控系统中,单片机要通过后向输出通道输出控制信号对控制对象实现控制操作。知识要点:后向输出通道的作用、结构DA转换接口与应用一、概述1.后向输出通道的作用分析:
18、数模转换单片机输出的控制信号是数字信号,需要通过D/A转换器把数字量转换成控制对象所需的模拟电压或电流。功率放大驱动经数模转换得到的模拟电压或电流控制信号,不能满足控制对象的功率要求,必须经功率放大,驱动外部伺服系统。干扰信号防止后向输出通道接近控制对象,工作环境相对恶劣,会出现伺服驱动系统通过信号通道、电源以与空间电磁场对单片机应用系统的电磁干扰,另外还会出现机械干扰,因此通常采用信号隔离、电源隔离和大功率开关实现过零切换等方法进行干扰防止。2.后向输出通道的结构根据单片机输出信号和控制对象的特点,后向输出通道的结构如图8-12所示。单片机通过I/O接口或数据总线输出的开关量、数字量和频率量
19、可以直接用于开关量、数字量控制系统和频率调制系统,对于模拟量控制系统,需通过D/A、F/V转换成模拟量控制信号。下面对后向输出通道中的重要部分D/A转换接口进行详细分析。二、D/A转换接口D/A转换接口技术的主要内容是合理选择D/A转换器和其他有关器件,实现与微机的正确连接以与编制转换程序。1概述(1) D/A转换器D/A转换器(Digital to Analog Converter)是一种能把数字量转换成模拟量的电子器件。在单片机测控系统中经常采用的是D/A转换器的集成电路芯片,称为D/A接口芯片或DAC芯片。(2) D/A转换器的性能指标分辨率(Resolution)指D/A接口芯片能分辨
20、的最小输出模拟增量。输入数量发生单位数码变化时,即LSB(最低有效位)产生一次变化时,所对应的输出的模拟量的变化量。对于线性D/A转换器来说,其分辨率与数字量的位数n的关系为在实际使用中,表示分辨率高低更常用的方法是采用输入量的位数,如满量程10V的8位DAC芯片的分辨率为8位。转换精度(Conversion Accuracy)指满量程时DAC的实际模拟输出量与理论值的接近程度,与D/A转换芯片的结构和接口配置电路有关。通常,DAC的转换精度为分辨率的一半。失调误差指输入数字量为零时,模拟输出量与理想输出量的偏差。偏差值的大小一般用LSB的份数或用偏差值表示。(3)D/A转换器的选择要点输入信
21、号的形式。输入信号有并行和串行两种形式,根据实际要求选定。在实际应用中大多数为并行输入。串行输入节省数据线,但速度较慢,适用于远距离数据传输。分辨率和转换精度根据对输出模拟量的精度要求来确定D/A转换器的分辨率和转换精度。常用的分辨率有8位、10位和12位。在精度指标方面,零点误差和满量程误差可以通过电路调整进行补偿,因此主要看芯片的非线性误差和微分非线性误差。建立时间D/A转换器的电流建立时间很短,一般为50-500ns。若是输出电压形式,加上运算放大器电路,电压建立时间一般为1us到几us,一般都能满足系统要求。转换结果的输出形式转换结果的输出形式有电流或电压,有单极性或双极性,有不同量程
22、,还有多通道输出方式。这可根据应用系统对模拟量形式的实际要求来确定。2. D/A转换典型芯片DAC0832芯片DAC0832是微处理器完全兼容的,具有8位分辨率的D/A转换集成芯片,以其价廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。(1) DAC0832的引脚其逻辑结构与管脚号如图所示。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路与转换控制电路构成。为20脚双列直插式封装结构。各引脚信号说明如下:DI7DI0转换数据输入。/CS片选信号(输入),低电平有效。ILE数据锁存允许信号(输入),高电平有效。/WR1第1写信号(输入),低电平有效。该信号与ILE信
23、号共同控制输入寄存器是数据直通方式还是数据锁存方式:当ILE=1和/WR1=0时,为输入寄存器直通方式;当ILE=1和/WR1=1时,为输入寄存器锁存方式。/XFER数据传送控制信号(输入),低电平有效。/WR2第2写信号(输入),低电平有效。该信号与/XFER信号合在一起控制DAC寄存器是数据直通方式还是数据锁存方式:/WR2=0和/XFER=0时,为DAC寄存器直通方式;/WR2=1和/XFER=0时,为DAC寄存器锁存方式。Iout1电流输出“1”;当数据为全1时,输出电流最大;为全0时输出电流最小。Iout2电流输出“2”;DAC转换器的特性之一是:Iout1Iout2=常数。Rfb反
24、馈电阻端。即运算放大器的反馈电阻端,电阻已固化在芯片中。因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器Rfb即为运算放大器的反馈电阻,运算放大器的接法如图所示。Vref基准电压,是外加高精度电压源。该电压可正可负,X围为10V+10V。DGND数字地。AGND模拟地。(2)DAC0832内部结构DAC0832的内部结构框图如图9. 3所示。“8位输入寄存器”用于存放CPU送来的数字量,使输入的数字量得到缓冲和锁存,由/LE1控制。“8位DAC寄存器”用于存放待转换的数字量,由/LE2控制。“8位D/A转换电路”由T型电阻网络和电子开关组成
25、,电子开关受“8位DAC寄存器”输出控制。(3)DAC0832和MCS-51单片机的接口方式单缓冲方式连接所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个(多为DAC寄存器)处于直通方式,而另一个处于受控的锁存方式。应用场合:如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求输出同步的情况下,就可采用单缓冲方式。单缓冲方式连接如图9.4所示。单缓冲方式应用举例:例1产生锯齿波,其电路连接如图所示。图中的DAC0832工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。假定输入寄存器地址为5000H,产生锯齿波的程序清单如下:MOV DPTR ,#5000H MOV R0,#
26、00HWW:MOV A,R0 MOVX DPTR, A INC R0 NOP NOP NOP AJMP WW 例.2小电机驱动。分析:对于小功率直流电机驱动,使用单片机极为方便,其方法就是控制电机定子电压接通和断开时间的比值(即占空比),以此来驱动电机和改变电机的转速,这种方法称为脉冲宽度调速法(或简称脉宽调速法)。占空比以与占空比与电机转速的关系如图所示。电压变换周期为T,电压接通时间为t,则占空比表示为D=tT。设电机固定接通电源时的最大转速为Vmax,则用脉冲宽度调速的电机转速为:VdVmaxDVd与D的函数曲线如9.7(b)所示。可以看出,实际上Vd与D并不完全是线性关系(如图中实线所
27、表示),但可以近似地看成是线性关系,为此我们可以采用控制加电脉冲宽度的办法来驱动电机并调节其转速。按图99的连接,DAC0832输入寄存器的地址为9000H,则MCS- 51电机驱动程序清单如下:ORG 0000HAJMP DAMOTORG 08100HDAMOT:MOV DPTR,#9000H;翰入寄存器地址MOV A,80HMOVX DPTR,A;输出0V电平ACALL DELAY1,维持0V电平MOV A,0FFHMOVX DPTR, A;输出5V电平ACALL DELAY2,维持5V电平AJMP DAMOT说明:按上述程序,改变延时子程序的延迟时间就可以改变电机的转速。如把第二次转换的
28、数字圣从0FFH改为00H,则输出脉冲的极性改变(0V5V),从而也就改变了电机的转向。例3按图8031与DAC0832的接口编写程序,在运算放大器输出端输出一个三角波电压。DAC0832单缓冲方式接口电路: ORG 1000H MOV DPTR,7FFFH;指向0832 MOV R2,0FFH;循环次数 MOV A,00H;赋初值 LOOP1:MOVX DPTR,A;D/A转换输出 INC A DJNZ R2,LOOP1 MOV R2,0FEH LOOP2:DEC A MOVX GDPTR,A DJNZ R2,LOOP2 ALMP LOOP1 END双缓冲方式连接所谓双缓冲方式,就是把DAC
29、0832的输入寄存器和DAC寄存器都接成受控锁存方式。双缓冲方式DAC0832的连接如图910所示。应用场合:对于多路D/A转换接口,要求同步进行D/A转换输出时,必须采用双缓冲器同步方式接法。0832采用这种接法时,数字量的输入锁存和D/A转换输出是分两步完成的,即CPU的数据总线分时地向各路D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中,然后CPU对所有的D/A转换器发出控制信号,使各个D/A转换器输入寄存器中的数据送入DAC寄存器,实现同步转换输出。应用举例:下图是一个两路同步输出的D/A转换接口电路。P2.5和P2.6分别选择两路D/A转换器的输入寄存器,控制输入锁存;P2.
30、7连到两路D/A转换器的/XFER端控制同步转换输出;8031的/WR端与所有的/WR1和/WR2端相连。执行下面8条指令就能完成D/A的同步转换输出。MOV DPTR,0DFFFH;指向0832 (1)MOV A,data11;datal送入0832 (1)中锁存MOVX DPTR,AMOV DPTR,0BFFFH;指向0832 (2)MOV A,data2;data2送入0832 (2)中锁存MOVX DPTR,AMOV DPTR,7FFFH;给0832(1)、0832(2)提供信号,同时完成D/A转换输出MOVX DPTR,A作业:p253,问答题:2、4、5。填空题与选择题做在书本上。16 / 16