您的位置: 网站首页 > 电子与嵌入式 > 单片机原理与应用 > 第8章 单片机的输入/输出接口 > 【8.5.2 模数转换器(ADC)接口技术】

8.5.2 模数转换器(ADC)接口技术

 

8.5.2  模数转换器ADC)接口技术

1ADC基本构成

A/D转换电路和计算机的发展相似,经历了电子管、晶体管、中小规模和大规模集成电路3个阶段,超导技术等也开始应用于超高速A/D转换中。目前,单片集成型ADC的应用最为广泛。单片ADC在一块芯片上集成了多种高性能的模拟和逻辑部件,控制逻辑大多数与微处理器和控制器相兼容。为适应系统集成的需要,有些转换器还将多路转换开关、时钟电路、基准电压源、二/十进制译码器和转换电路等集成在一个芯片内,构成数据采集系统和输入输出装置。

A/D转换器可分成直接型ADC和间接型ADC。前者输入的模拟电压被直接转换成数字代码,不经任何中间变量;后者首先把输入的模拟电压转换成某种中间变量(时间、频率、脉冲宽度等),然后再把这个中间变量转换为数字代码输出。直接型ADC又可分为电荷再分配型、反馈比较型和非反馈比较型,间接型ADC则可分为电压—时间变换型、电压—频率(V/F)变换型和-型等。

由于A/D转换器的设计思想和制造技术不断创新,同时为满足不同的检测和控制任务,结构不同、性能各异的A/D转换电路层出不穷。目前应用较广泛的类型主要有逐次逼近式ADC、双积分式ADCV/F变换式ADC-ADC。逐次逼近式ADC在精度、速度和价格上较为适中,因而经常使用;双积分式ADC精度高,抗干扰性能好,但转换速度较慢;-△型ADC综合了上述两者的优点,抗干扰能力强,速度快,应用越来越广泛;V/F变换ADC多用于转换速度要求不高和信号需要远距离传输的场合。

ADC的发展趋势主要表现在速度和精度两个方面,目前的速度已达到l 000 MHz,而分辨率可达到24位。但速度和精度实际上是矛盾的,如1 000 MHz高速ADC的精度只有8位,而24A/D转换器ADSl210/121 1在保证精度时的转换速度仅为10 Hz

高速ADC多采用并行转换、流水线(pipeline)结构,传统的高精度ADC大多采用逐次逼近方式,目前主要是基于-调制及数字滤波技术、多斜率转换技术等。

实现高精度转换需要十分复杂的结构,如ADSl210/1211内部有两阶-调制器、3阶数字滤波,采用多种自校正技术,输入端有可编程增益放大器,输出部分包括内部微处理器、指令寄存器、命令寄存器、数据输出寄存器、失调校正和满量程校正寄存器,以及基准电压源、时钟产生电路等。由于位数较多,高精度ADC经常采用串行输出方式。

2ADC的主要特性参数

ADCDAC的技术指标有密切的联系和相同的概念,如分辨率、量化误差、线性度、转换精度、稳定时间等。另外,转换速率(Conversion Rate)也是衡量ADC转换速度的指标,即每秒完成转换的次数,等于完成一次A/D转换所需时间(稳定时间)的倒数。

这里,结合A/D转换器的特性参数给出设计时的选择要点。

1)分辨率。

分辨率与系统要求的范围和精度有关,是系统各个环节如传感器、信号预处理电路、输出电路精度,甚至软件算法中的一部分。通常来说,与DAC相同,A/D转换器的分辨率至少要比总精度要求的最低分辨率高一位,并与其他环节所能达到的精度相匹配。

2)转换速率。

速率是个相对的概念,一般来说,积分型、电荷平衡型和跟踪比较型的A/D转换速度较慢,转换时间为毫秒级,通常构成低速转换器,适用于对温度、压力、流量等缓变参量的检测和控制。逐次比较型的A/D转换器的转换时间为微秒级,属于中速A/D转换器,常用于工业多通道单片机控制系统等。高速A/D转换器一般是用双极型或CMOS工艺制成的全并行型、串并行型和电压转移函数型的转换器,转换时间约20ns100ns,即转换速率可达5000万次/秒,多用于雷达和数字通信、实时瞬态记录和分析。

假定单片机的机器周期为1ms2ms,考虑到读数据、启动转换、存数据及处理等任务,宜选用转换时间为100ms左右的A/D转换器,其转换速率为10 k/秒。实际中,若一个周期的波形采样10个点,这时A/D转换器最高可处理的信号频率为1kHz。如果要求转换时间为10ms或更短,即信号频率在100 kHz以上,则应提高单片机的速度或者采用先采样后处理的策略。

3)采样/保持(sample/hold)电路。

采样/保持电路的目的是在A/D转换过程中,使模拟电压保持稳定,减小模拟电压变化带来的误差。是否加采样保持器应根据分辨率、转换时间和信号带宽关系综合确定。原则上,直流和变化非常缓慢的信号可不用采样保持器,其他情况都应加采样保持器。

4)接口方式。

A/D转换器的数据输出有并行和串行两种方式。带有串行接口的单片机可与相应的串行ADC连接。MCS-51单片机可通过并行接口模拟串行协议,与串行ADC连接,减少连线和电路空间。

5)量程控制引脚。

A/D转换器的模拟量输入可能是双极性或单极性,应注意A/D转换器是否提供了不同量程的引脚。有的A/D转换器提供了双极性偏置控制引脚(bi-offset contr01),当此引脚接地时,信号办公设备为单极性方式;当此引脚接参考电压时,信号输入为双极性方式。有的A/D转换器(如AD574A等)还提供两个模拟输入引脚,分别为10V IN20V IN,不同量程的输入电压可从不同引脚输入。

另外,还应考虑影响A/D转换器技术指标的主要因素,如电源的稳定性、温度因素及电磁干扰等。

3.并行A/D转换器ADC0809

A/D转换器是将模拟电量转换为数字量的器件。A/D转换器的种类和型号很多,按总线分有并行转换和串行转换两种;按内部原理分有计数器型、逐次逼近型、双积分型,以及-△型,本节介绍并行A/D转换器AD0809和目前较为广泛使用的-△型A/D转换器AD7705

1ADC0809内部结构。

ADC0809是逐次逼近型8A/D转换器,片内有8路模拟开关,可对8路模拟电压量实现分时转换。典型转换速度为l00ns。片内带有三态输出缓冲器,可直接与单片机的数据总线相连。

8-29ADC0809内部结构图,其中SAR实现8位逐次逼近式A/D转换;8路模拟开关实现8路模拟输入信号(IN0IN7)的分时转换;通道地址锁存器的3位地址输入(ADDCADDBADDA)编码由ALE信号写入到地址锁存译码器,再由地址锁存译码器译码,控制通道选择开关,选通8路模拟输入中的一路。当地址为000时(ADDA为低位),模拟开关选通输入通道IN0;地址为001时,选通IN1;依次类推,地址为111时,模拟开关选通IN7ALE为地址锁存有效信号,外部时钟CLKA/D转换器提供同步脉冲,最高工作频率为640kHzSTART信号用于启动A/D转换。EOC为转换完成信号,启动转换后,EOC变为低电平,转换完成后变为高电平,此信号可用作向单片机提出中断申请,或者作为查询信号。OE为三态缓冲器的输出允许信号,高电平时,缓冲器从D0D7脚输出转换数据。

基准电压输入Vref+)和Vref-)用于决定输入模拟电压的范围。允许Vref+)和Vref-)是差动的或不共地的电压信号,多数情况下,Vref+)接+5VVref-)接GND,此时输入量程为0V5V。当转换精度要求不高或电源电压Vcc较稳定和准确时,Vref+)可以接VCC,否则应单独提供基准电源。

8-29  ADC0809的结构框图

根据图8-30所示的时序图,ADC0809的工作过程如下所述。

8-30  ADC0809时序图

把通道地址送到ADDAADDC上,选择模拟输入。

在通道地址信号有效期间,ALE的上升沿将该地址锁存到内部地址锁存器。

START引脚的下降沿启动A/D转换。

变换开始后,EOC引脚呈现低电平,EOC重新变为高电平时表示转换结束。

OE信号打开输出锁存器的三态门输出结果。

2ADC08098X51单片机接口。

ADC0809的时钟信号CLK由单片机的地址锁存允许信号ALE提供,若单片机晶振频率为6MHz,则ALE信号输出为500kHz,满足CLK信号低于640kHz的要求。当P2.0同时有效时,P0.1P0.2输出的数据经过ALE锁存到地址及锁存译码器,同时启动A/D转换。当P2.0信号同时有效时,OE有效,输出缓冲器打开,单片机接收转换数据,如图8-31所示。

8-31  ADC0808/08098751的连接

转换结束信号EOC根据不同的传送方式和单片机的连接方式也不同。

·    无条件传送方式:当采用延时方式时EOC悬空,启动转换后延时l00ps,再读转换结果。

·    查询传送方式:可将EOC接并行口(P1P3)的某线,检测EOC变高后,再读取转换结果。

·    中断传送方式:可将EOC经非门反相接到单片机的中断请求端,一旦转换完成EOC变为高电平,向8×51提出中断请求,进入中断服务程序后读取转换结果。

参考程序如下所示。

主程序:

0RG 0000H            

LJMP MAIN            

ORG 0013H             ;外部中断1入口地址

LJMP INTl            

ORG  0100H           

MAIN:MOV  R0,#60H           ;置数据区首地址

MOV R2,#08H           ;8路计数初值

SETB  IT              ;外部中断为边沿触发

SETB EA               ;开中断

SETB  EXl             ;允许INT1

MOV  DPTR,#FEF8H      ;指向0809通道0

MOVX  @DPTR,A         ;启动A/D转换(该指令使P2.0变为低电平

                      ;生成START需要的上升沿)

MOV A,R2              ;8路巡回检测数送A

JNZ  HE               ;等待中断,8路未完,继续

SJMP$                

中断服务程序:

INT1:MOVX A,@DPTR          

MOV @R0,A             ;向指定单元存数

INC DPTR              ;输入通道数加1

INC R0                ;存储单元地址加1

MOVX @DPTR,A          ;启动新通道A/D转换

DEC R2                ;待检通道数减1

RETI                  ;中断返回

4-△型转换器AD7705/06及其应用

在智能仪器仪表的应用中,由于传统的传感器信号是模拟信号,所以对于智能化的仪器,肯定需要A/D转换器以实现单片机的控制。在许多应用场合需要16位以上的高精度测量,而传统的积分型和逐次逼近型A/D转换器实现起来难度较大,且成本很高。近年来兴起的-A/D转换技术能以较低的成本获取极高的分辨率。AD公司的AD7705/06以及AD7707是比较典型的16A/D转换芯片。

1AD7705/06简介。

AD7705/06是美国AD公司(Anolog Devices Inc)开发的一款新型A/D芯片,其特点是功能多、引脚少、功耗低、16位精度、价格低,当然AD77系列中也有24位的,原理结构和AD7705相同,价格较高。其外形引线如图8-32所示。

·    SCLK串行时钟。

·    MCLK IN外接基本时钟输入,或与MCLK OUT一起接晶体振荡器。

·    MCLK OUT基本时钟输出时,与MCLK IN一起接晶体振荡器,若时钟由外部提供给MCLK IN,则MCLK OUT可以悬空。

·    片选,低电平有效,有效时可以对AD7705进行读/写,一般接MCUI/O口。

·    复位,低电平有效。

·    INl+)、INI-):通道1模拟信号输入端。

·    IN2+)、IN2-):通道2模拟信号输入端。

·    REF IN+)、REF IN-):参考电压源,其电压范围确定输入模拟信号的变化范围。

·    数据准备好,低电平有效,启动A/D后,变为高电平,转换结束,变为低电平,在AD7705/06CMR寄存器中D7位也显示DRDY状态。

·    DOUT数据输出。

·    DIN数据输入。

·    VDD电源。

·    GND地。

8-32  AD7705引线图

其功能框图如图8-33所示。AD7705/06芯片是带有自校正功能的∑-△A/D转换器,其内部由多路模拟开关、缓冲器、可编程增益放大器(PGA)、-调制器、数字滤波器、基准电压输入、时钟电路及串行接口组成。其中,串行接口包括寄存器组,它由通信寄存器、设置寄存器、时钟寄存器、数据输出寄存器、零点校正寄存器和满程校正寄存器等组成。该芯片还包括两通道差分输入(AD7705)和3种伪差分通道输入(AD7706)。

8-33  AD7705功能框图

AD7705/06PGA可通过指令设定,对不同幅度的输入信号实现1248163264128倍的放大,因此AD7705/06芯片既可直接接受从传感器送来的低电压输入信号(无须外接放大器),亦可接受高电压(10V)信号;它运用-技术实现16位无误码性能;它的输出速度同样可由指令设定,范围为20Hz500Hz;它能够通过指令设定对零点和满程进行校正;AD7705/06与微处理器的数据传送通过串行方式进行,采用了节省端口线的通信方式,最少只占用控制机的两条端口线。

2AD7705/06的基本连接方式以及与微处理器的接口电路。

AD7705/06的基本连接如图8-34所示,其中AD780/REFl92提供+2.5V高精度基准电压。由于AD7705只有两个差分通道,所以它可以进行两种模拟量的转换。

8-34  AD7705基本连接图

AD7705/06与微处理器的连接非常方便,在对它的操作过程中,涉及到的接口引脚有SCLKDOUTDIN,它与微处理器的接口有两线、三线、四线及多线方式。在两线方式下,通常使DOUTDIN相连接,接串行口RXD引脚,用于数据的输出和输入,而SCLK与串行口TXD引脚相连,用于输入串行时钟脉冲,始终为低电平;在三线方式下,引脚可以由微处理器的某一端口线控制。在四线方式下,引脚可以由微处理器的某条端口线控制;在多线控制方式下,所有的接口引脚都由微处理器来控制。

8-35AD7705/068x51的连接图,采用两线方式,AD7706的输出信号DOUT和输入信号DIN直接接到8031RXDP3.0)端,而8031TXDP3.1)端则为AD7706提供时钟信号,可见在这样的连接方式下,A/D转换器的串行时钟SCLK是由8031TXD引脚提供的。单片机利用串行口与AD7705/06进行通信,将串行口设定为工作方式0,即同步移位寄存器方式。此外,单片机还通过P1.0引脚来控制,通过P1.1引脚来判断。在多芯片系统中,首先应选中芯片,系统就得先清P1.1口线。接收数据时,首先要判断P1.1的引脚电平,若为低电平,则表明已有有效的转换数据在芯片的数据输出寄存器中,这样,单片机置位REN,此时开始接收数据,当接收到8位数据时,中断标志位RI置位,一次串行接收结束,单片机自动停止发送移位脉冲,该8位数据从串行口缓冲器读入内存,并使用软件清除RI,单片机又开始发送移位脉冲,直到又收到8位数据,则另一次串行接收结束。这样,这次的8位数据与刚才接收的高8位数据组合成为16位数据,即一次A/D转换的结果。这种接口方法直接利用了单片机本身的硬件资源,从而简化了电路的设计。

8-36AD7705的读时序。图8-37AD7705的写时序。

8-35  AD77058X51连接电路

8-36  AD7705读时序

8-37  AD7705写时序

程序1AD7706的初始化程序。

BEGIN:  CLRA

MOVA#010H        ;设置串行工作方式0

MOVSCON,A         

CLRP1.0            ;选中芯片AD7706

    MOVA,#20H          ;CMR进行写操作,下一操作选定CKR

    MOVSBUF,A         

    JNBTI,$            ;接收完毕,TI复位

    CLRTI             

    MOVA,#0CH          ;设置CLK

    MOVSBUF,A         

JNB TI,$           

CLR TI

MOV A,#010H         ;CMR写操作,下一操作选定STR

MOV SBUFA

JNB TI,$

CLR TI

MOV A,#40H          ;设置STR

MOV SBUF,A

JNB TI,$

CLR TI

RET

程序2:输入字节程序(判断引脚)。

INB1:   CLR C

JB P1.1,INB1        ;判断DRDY引脚电平

CLR P1.0            ;DRDY0,进行读数据操作

MOV A,#38H          ;CMR写操作,下一操作选定DOR

MOV SBUF,A         

MOV A,SBUF          ;AD7706中读入转换数据

MOV R3,A            ;8位存入R3

JB TI,$        

CLR TI             

MOV A,SBUF          ;AD7706中读入转换数据

MOV R4,A            ;8位存入R4

JNB TI,$           

CLR TI             

RET

程序3:输入字节程序(判断CMR的最高位)。

INB2:   CLR P1.0            ;AD7706进行操作

MOV A,#08H          ;CMR写操作,下一操作选定CMR

MOV SBUF,A         

MOV A,SBUF          ;AD7706CMR

ANL A,#10000000B    ;判断DRDY位,若为0,则数据有效

JNZ INB2            ;等待

MOV A,#38H          ;CMR写操作,下一操作选定DOR

MOV SBUF,A

MOV A,SBUF

MOV R3,A

JNB TI,$

CLR TI

MOV A,SBUF

MOV R4,A

JNB TI,$

RET