第三讲AD转换器ADC实验及应用.docx
- 文档编号:3807185
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:24
- 大小:650.68KB
第三讲AD转换器ADC实验及应用.docx
《第三讲AD转换器ADC实验及应用.docx》由会员分享,可在线阅读,更多相关《第三讲AD转换器ADC实验及应用.docx(24页珍藏版)》请在冰豆网上搜索。
第三讲AD转换器ADC实验及应用
第三讲:
A/D转换器(ADC)、实验及应用
电工电子实验教学中心艾庆生
一、A/D转换器的基本工作原理
A/D转换是将模拟信号转换为数字信号,转换过程通过取样、保持、量化和编码四个步骤完成。
1.取样和保持
取样(也称采样)是将时间上连续变化的信号转换为时间上离散的信号,即将时间上连续变化的模拟量转换为一系列等间隔的脉冲,脉冲的幅度取决于输入模拟量。
其过程如图3-1所示。
图中Ui(t)为输入模拟信号,S(t)为采样脉冲,为取样后的输出信号。
图3-1取样过程
在取样脉冲作用期τ内,取样开关接通,使,在其它时间(TS-τ)内,输出=0。
因此,每经过一个取样周期,对输入信号取样一次,在输出端便得到输入信号的一个取样值。
为了不失真地恢复原来的输入信号,根据取样定理,一个频率有限的模拟信号,其取样频率fS必须大于等于输入模拟信号包含的最高频率fmax的两倍,即取样频率必须满足:
模拟信号经采样后,得到一系列样值脉冲。
采样脉冲宽度τ一般是很短暂的,在下一个采样脉冲到来之前,应暂时保持所取得的样值脉冲幅度,以便进行转换。
因此,在取样电路之后须加保持电路。
图3-2(a)是一种常见的取样保持电路,场效应管V为采样门,电容C为保持电容,运算放大器为跟随器,起缓冲隔离作用。
在取样脉冲S(t)到来的时间τ内,场效应管V导通,输入模拟量Ui(t)向电容充电;假定充电时间常数远小于τ,那么C上的充电电压能及时跟上Ui(t)的采样值。
采样结束,V迅速截止,电容C上的充电电压就保持了前一取样时间τ的输入Ui(t)的值,一直保持到下一个取样脉冲到来为止。
当下一个取样脉冲到来,电容C上的电压再按输入Ui(t)变化。
在输入一连串取样脉冲序列后,取样保持电路的缓冲放大器输出电压Uo(t)便得到如图3-2(b)所示的波形。
(a)取样保持电原理图(b)输出波形图
图3-2取样保持电路及输出波形
2.量化和编码
输入的模拟电压经过取样保持后,得到的是阶梯波。
由于阶梯的幅度是任意的,将会有无限个数值,因此该阶梯波仍是一个可以连续取值的模拟量。
另一方面,由于数字量的位数有限,只能表示有限个数值(n位数字量只能表示2n个数值)。
因此,用数字量来表示连续变化的模拟量时就有一个类似于四舍五入的近似问题。
必须将取样后的样值电平归化到与之接近的离散电平上,这个过程称为量化。
指定的离散电平称为量化电平。
用二进制数码来表示各个量化电平的过程称为编码。
两个量化电平之间的差值称为量化间隔S,位数越多,量化等级越细,S就越小。
取样保持后未量化的Uo值与量化电平Uq值通常是不相等的,其差值称为量化误差δ,即δ=Uo-Uq。
量化的方法一般有两种:
只舍不入法和有舍有入法。
1)只舍不入法
它是将取样保持信号Uo不足一个S的尾数舍去,取其原整数。
如图3-3(a)是采用了只舍不入法。
区域(3)中Uo=3.6V时将它归并到Uq=3V的量化电平,因此,编码后的输出为011。
这种方法δ总为正值,δmax≈S。
2)有舍有入法
当Uo的尾数<S/2时,用舍尾取整法得其量化值;当Uo的尾数≥S/2时,用舍尾入整法得其量化值。
如图3-3(b)采用了有舍有入法。
区域(3)中Uo=3.6V,尾数0.6V≥S/2=0.5V,因此,归化到Uq=4V,编码后为100。
区域(5)中Uo=4.1V,尾数小于0.5V,归化到4V,编码后为100。
这种方法δ可为正,也可为负,但是|δmax|=S/2。
可见,它要比第一种方法误差要小。
a)只舍不入法(b)有舍有入法
二、A/D转换器的主要电路形式
ADC电路分成直接法和间接法两大类。
直接法是通过一套基准电压与取样保持电压进行比较,从而直接转换成数字量。
其特点是工作速度高,转换精度容易保证,调准也比较方便。
间接法是将取样后的模拟信号先转换成时间t或频率f,然后再将t或f转换成数字量。
其特点是工作速度较低,但转换精度可以做得较高,且抗干扰性强,一般在测试仪表中用的较多。
1.计数斜波式A/D转换器
图3-4计数斜波式ADC
2.逐次逼近式A/D转换器(Successiveapproximationregistertype(SAR))
图3-5逐次逼近式ADC
这种转换器是将转换的模拟电压Ui与一系列的基准电压比较。
比较是从高位到低位逐位进行的,并依次确定各位数码是1还是0。
转换开始前,先将逐位逼近寄存器(SAR)清0,开始转换后,控制逻辑将逐位逼近寄存器(SAR)的最高位置1,使其输出为100…000,这个数码被D/A转换器转换成相应的模拟电压Uo,送至比较器与输入Ui比较。
若Uo>Ui,说明寄存器输出的数码大了,应将最高位改为0(去码),同时设次高位为1;若Uo≤Ui,说明寄存器输出的数码还不够大,因此,需将最高位设置的1保留(加码),同时也设次高位为1。
然后,再按同样的方法进行比较,确定次高位的1是去掉还是保留(即去码还是加码)。
这样逐位比较下去,一直到最低位为止,比较完毕后,寄存器中的状态就是转化后的数字输出。
例如,一个待转换的模拟电压Ui=163mV,逐位逼近寄存器(SAR)的数字量为八位。
表3-1Ui=163mV的逐次比较过程
图3-6Ui=163mV逐次比较Uo波形图
3.双积分型A/D转换器
双积分型ADC的转换原理是先将模拟电压Ui转换成与其大小成正比的时间间隔T,再利用基准时钟脉冲通过计数器将T变换成数字量。
图3-7是双积分型ADC的原理框图,它由积分器,零值比较器,时钟控制门G和计数器(计数定时电路)等部分构成。
图3-7双积分ADC原理框图
积分器:
由运算放大器和RC积分网络组成,这是转换器的核心。
它的输入端接开关S,开关S受触发器Fn的控制,当Qn=0时,S接输入电压+Ui,积分器对输入信号电压+Ui(正极性)积分(正向积分);当Qn=1时,S接基准电压-UR(负极性),积分器对基准电压-UR积分(负向积分)。
因此,积分器在一次转换过程中进行两次方向相反的积分。
积分器输出Uo接零值比较器。
零值比较器:
当积分器输出Uo≤0时,比较器输出UC=1;当积分器输出Uo>0时,比较器输出UC=0。
零值比较器输出UC作为控制门G的门控信号。
时钟控制门G:
时钟控制门G有两个输入端,一个接标准时钟脉冲源CP,另一个接零值比较器输出UC。
当零值比较器输出UC=1时,G门开,标准时钟脉冲通过G门加到计数器;当零值比较器输出UC=0时,G门关,标准时钟脉冲不能通过G门加到计数器,计数器停止计数。
计数器(计数定时电路):
它由n+1个触发器构成,触发器Fn-1…F1F0构成n位二进制计数器,触发器Fn实现对S的控制。
计数定时电路在启动脉冲的作用下,全部触发器被置0,触发器Fn输出Qn=0,使开关S接输入电压+Ui,同时n位二进制计数器开始计数(设电容C上初始值为0,并开始正向积分,则此时Uo≤0,比较器输出UC=1,G门开)。
当计数器计入2n个脉冲后,触发器Fn-1…F1F0状态由11…111回到00…000,Fn-1(Qn-1)触发Fn,使Qn=1,发出定时控制信号,使开关转接至-UR,触发器Fn-1…F1F0再从00…000开始计数,并开始负向积分,Uo逐步上升。
当积分器输出Uo>0时,零值比较器输出UC=0,G门关,计数器停止计数,完成一个转换周期,把与输入模拟信号+Ui平均值成正比的时间间隔转换为数字量。
图3-8双积分ADC工作波形
①取样阶段:
在启动脉冲作用下,将全部触发器置0,由于触发器Fn输出Qn=0,使开关S接输入电压+Ui,A/D转换开始,+Ui加到积分器的输入端后,积分器对+Ui进行正向积分。
由于此时Uo≤0,比较器输出UC=1,G门开,n位二进制计数器开始计数,一直到t=T1=2nTCP(TCP为时钟周期)时,触发器Fn-1…F1F0状态回到00…000,而触发器Fn由0翻转为1,由于Qn=1,使开关转接至-UR,至此,取样阶段结束,可求
其中τ=RC为积分时间常数。
当+Ui为正极性不变常量时,Uo(T1)值为
②比较阶段:
开关转至-UR后,积分器对基准电压进行负向积分,积分器输出为
当Uo>0时,零值比较器输出UC=0,G门关,计数器停止计数,完成一个转换周期。
假设此时计数器已记录了α个脉冲,则
可求得
由上式可见,计数器记录的脉冲数α与输入电压+Ui成正比,计数器记录α个脉冲后的状态就表示了+Ui的数字量的二进制代码,实现了A/D转换。
这种A/D转换器具有很多优点。
首先,其转换结果与时间常数RC无关,从而消除了由于斜波电压非线性带来的误差,允许积分电容在一个较宽范围内变化,而不影响转换结果。
其次,由于输入信号积分的时间较长,且是一个固定值T1,而T2正比于输入信号在T1内的平均值,这对于叠加在输入信号上的干扰信号有很强的抑制能力。
最后,这种A/D转换器不必采用高稳定度的时钟源,它只要求时钟源在一个转换周期(T1+T2)内保持稳定即可。
这种转换器被广泛应用于要求精度较高而转换速度要求不高的仪器中。
4.并联比较型A/D转换器
并联比较型A/D转换器的电原理图如图10-16所示。
它由电压比较器,寄存器和编码器三部分构成。
电压比较器:
电压比较器由电阻分压器和七个比较器构成。
在电阻分压器中,量化电平依据有舍有入法进行划分,电阻链把参考电压UR分压,得到从1/16UR到13/16UR之间七个量化电平,量化单位为Δ=(2/16)UR=(1/8)UR。
然后,把这七个量化电平分别接到七个电压比较器C6~C0的负输入端,作为比较基准。
同时,将模拟输入UIN接到七个电压比较器的正输入端,与这七个量化电平进行比较。
若UIN大于比较器的参考电平,则比较器的输出Ci=1,否则Ci=0。
图3-9并联比较型A/D转换器
寄存器:
由七个D触发器构成。
在时钟脉冲CP的作用下,将比较结果暂时寄存,以供编码用。
编码器:
由六个与非门构成。
将比较器送来的七位二进制码转换成三位二进制代码D2、D1、D0。
编码网络的逻辑关系为
表3-2模拟输入、比较器输出与编码输出对照表
例如,假设模拟输入UIN=3.8V,UR=8V。
当模拟输入UIN=3.8V加到各级比较器时,由于
因此,比较器的输出C6~C0为0001111。
在时钟脉冲作用下,比较器的输出存入寄存器,经编码网络输出A/D转换结果:
D2D1D0=100。
这也就是并联比较型A/D转换器的工作过程。
由上述分析可知,并联比较型A/D转换器的转换速度很快,其转换速度实际上取决于器件的速度和时钟脉冲的宽度。
但电路复杂,对于一个n位二进制输出的并联比较型A/D转换器,需2n-1个电压比较器和2n-1个触发器,编码电路也随n的增大变得相当复杂。
其转换精度将受分压网络和电压比较器灵敏度的限制。
因此,这种转换器适用于高速,精度较低的场合。
三、A/D转换器的主要技术指标
1.分辨率
分辨率指A/D转换器对输入模拟信号的分辨能力。
从理论上讲,一个n位二进制数输出的A/D转换器应能区分输入模拟电压的2n个不同量级,能区分输入模拟电压的最小差异为(满量程输入的1/2n)。
例如,A/D转换器的输出为12位二进制数,最大输入模拟信号为10V,则其分辨率为
分辨率=
2.转换速度
转换速度是指完成一次转换所需的时间,转换时间是从接到转换启动信号开始,到输出端获得稳定的数字信号所经过的时间。
A/D转换器的转换速度主要取决于转换电路的类型,不同类型A/D转换器的转换速度相差很大。
双积分型A/D转换器的转换速度最慢,需几百毫秒左右;逐次逼近式A/D转换器的转换速度较快,转换速度在几十微秒;并联型A/D转换器的转换速度最快,仅需几十纳秒时间。
3.相对精度
在理想情况下,输入模拟信号所有转换点应当在一条直线上,但实际的特性不能做到输入模拟信号所有转换点在一条直线上。
相对精度是指实际的转换点偏离理想特性的误差,一般用最低有效位来表示。
例如,10位二进制数输出的A/D转换器AD571,在室温(+25℃)和标准电源电压(U+=+5V,U-=-15V)的条件下,转换误差≤。
当使用环境发生变化时,转换误差也将发生变化,实际使用中应加以注意。
四、八位集成ADC0809
图3-10ADC0809电原理和引脚图
1.八路模拟开关及地址的锁存和译码
ADC0809通过IN0~IN7可输入八路单端模拟电压。
ALE将三位地址线ADDC、ADDB和ADDA进行锁存,然后由译码电路选通八路模拟输入中的某一路进行A/D转换,地址译码与选通输入的关系如表3-3所示。
表3-3地址译码选通表
2.八位D/A转换器
ADC0809内部由树状开关和256R电阻网络构成八位D/A转换器,其输入为逐次近似寄存器SAR的八位二进制数据,输出为UST,变换器的参考电压为UR(+)和UR(-)。
3.逐次近似寄存器SAR和比较器
在比较前,SAR为全0,变换开始,先使SAR的最高位为1,其余仍为0,此数字控制树状开关输出UST,UST和模拟输入UIN送比较器进行比较。
若UST>UIN,则比较器输出逻辑0,SAR的最高位由1变为0;若UST≤UIN,则比较器输出逻辑1SAR的最高位保持1。
此后,SAR的次高位置1,其余较低位仍为0,而以前比较过的高位保持原来值。
再将UST和UIN进行比较。
此后的过程与上述类似,直到最低位比较完为止。
4.三态输出寄存器
转换结束后,SAR的数字送三态输出锁存器,以供读出。
5.引脚功能
IN0~IN7:
模拟输入。
UR(+)和UR(-):
基准电压的正端和负端,由此施加基准电压,基准电压的中心点应在UCC/2附近,其偏差不应超过±0.1V。
ADDC、ADDB、ADDA:
模拟输入端选通地址输入。
ALE:
地址锁存允许信号输入,高有效。
D7~D0:
数码输出。
OE:
输出允许信号,高有效。
即当OE=1时,打开输出锁存器的三态门,将数据送出。
CLK:
时钟脉冲输入端。
一般在此端加500kHz的时钟信号。
START:
启动信号。
为了启动A/D转换过程,应在此引脚加一个正脉冲,脉冲的上升沿将内部寄存器全部清0,在其下降沿开始A/D转换过程。
EOC:
转换结束输出信号。
在START信号上升沿之后1~8个时钟周期内,EOC信号变为低电平。
当转换结束后,转换后数据可以读出时,EOC变为高电平。
6.主要技术指标
分辨率:
八位。
转换时间:
100μs。
功耗:
15mW。
电源:
5V。
7.工作时序
图3-11ADC0809工作时序图
五:
A/D转换实验(ADC0809)
(一)、实验目的:
掌握A/D转换与单片机接口的方法;了解A/D芯片0809转换性能及编程方法。
(二)、实验内容:
利用综合实验仪上的0809做A/D转换器,综合实验仪上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,通过8155键显区数码管显示出来。
(三)、实验器材:
1、超想-3000TB综合实验仪1台2、KEIL仿真器1台
3、连线若干根4、计算机1台
(四)、实验原理:
A/D转换器的功能主要是将输入的模拟信号转换成数字信号,如电压、电流、温度测量等都属于这种转换。
本实验中采用的转换器为ADC0809,它是一个8位逐次逼近型A/D转换器,可以对8个模拟量进行转换,转换时间为100μS。
其工作过程如下:
首先由地址锁存信号ALE的上升沿将引脚ADDA、ADDB和ADDC上的信号锁存到地址寄存器内,用以选择模拟量输入通道;START信号的下降沿启动A/D转换器开始工作;当转换结束时,AD0809使EOC引脚由低电平变成高电平,程序可以通过查询的方式读取转换结果,也可以通过中断方式读取结果。
CLOCK为转换时钟输入端,频率为100KHz-1.2MHz,推荐值为640KHz。
(五)、程序框图:
(六)、实验步骤:
1、设定仿真模式为程序空间在仿真器上,数据空间在用户板上,即点击[设置]下的[仿真模式],在RAM区选中用户RAM,ROM区选中系统ROM(注:
本书中的实验除另行说明外,均与此相同)。
把AD0809的零通道09IN0孔用连线接至模拟信号发生器的VIN孔,AD0809的片选信号CS09孔接“译码器”YC2(0A000-0AFFFH)孔,“脉冲源”中的0.5MHZ孔连AD0809的CLOCK孔。
2、编写程序,并编译通过。
本程序使用查询的方式读取转换结果。
在读取转换结果的指令后设置断点,运行程序,在断点处检查并读出A/D转换结果,数据是否与VIN相对应。
修改程序中错误,使显示值随VIN变化而变化。
(七)、接线图案:
(八)、思考问题:
1、试编写循环采集8路模拟量输入A/D转换程序;
2、以十进制方式显示。
(九)、实验程序:
OUTBITequ0e101h;位控制口
CLK164equ0e102h;段控制口(接164时钟位)
DAT164equ0e102h;段控制口(接164数据位)
INequ0e103h;键盘读入口
LEDBufequ40h;显示缓冲
org0000h
movsp,#60h
movdptr,#0e100h;8155初始化
mova,#03h
movx@dptr,a
mov40h,#00h;显示缓冲器初始化
mov41h,#08h
mov42h,#00h
mov43h,#09h
mov44h,#00h
mov45h,#00h
LOOP1:
MOVR7,#40
VI:
lcallDISPLAY
DJNZR7,VI
mova,#00h
movdptr,#0a000h;0809AD的通道开始转换吗?
movx@dptr,a
movr7,#0fh
loop2:
djnzr7,loop2
movxa,@dptr
movr0,#45h;拆字
lcallptds
sjmploop1
ptds:
movr1,a
lcallptds1
mova,r1
swapa
ptds1:
anla,#0fh
mov@r0,a
decr0
ret
Delay:
movr7,#0;延时子程序
DelayLoop:
djnzr7,DelayLoop
djnzr6,DelayLoop
ret
DISPLAY:
setb0d3h
movr0,#LEDBuf
movr1,#6;共6个八段管
movr2,#00100000b;从左边开始显示
Loop:
movdptr,#OUTBIT
mova,#00h
movx@dptr,a;关所有八段管
mova,@r0
movdptr,#LEDmap
movca,@a+dptr
movB,#8;送164
DLP:
rlca
movr3,a
movacc.0,c
anla,#0fdh
movdptr,#DAT164
movx@dptr,a
movdptr,#CLK164
orla,#02h
movx@dptr,a
anla,#0fDh
movx@dptr,a
mova,r3
djnzB,DLP
movdptr,#OUTBIT
mova,r2
movx@dptr,a;显示一位八段管
movr6,#1
callDelay
mova,r2;显示下一位
rra
movr2,a
incr0
djnzr1,Loop
movdptr,#OUTBIT
mova,#0
movx@dptr,a
clr0d3h;关所有八段管
ret
LEDMAP:
;八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
END
六、A/D转换应用
作业:
将“实验:
A/D转换实验”的两位16进制显示改为十进制显示(为简单起见,只显示两位十进制)。
参考答案:
分析:
本实验获得的A/D数据是8位二进制数据(两位16进制),结果在A寄存器里,原程序直接将其送到数据区显示,较为简单,但读数的直观性不好;本作业就是解决此问题,即将00H~FFH的16进制表示改为0.0~5.0的十进制表示。
解决方法采用“查表法”,即建立两个表格,一个是16进制“个位数”所对应的相应的十进制数据表格,一个是16进制“十位数”所对应的相应的十进制数据表格,然后将A里的两位16进制数据分别查表,换成相对应的十进制数据,再相加,最后送出去显示。
下面通过程序框图,看看原程序与改动以后的程序有哪些不同。
;“验证式”实验四A/D转换实验
OUTBITequ0e101h;位控制口
CLK164equ0e102h;段控制口(接164时钟位)
DAT164equ0e102h;段控制口(接164数据位)
INequ0e103h;键盘读入口
LEDBufequ40h;显示缓冲
;********************************
org0000h
movsp,#60h
movdptr,#0e100h;8155初始化
mova,#03h
movx@dptr,a
mov40h,#0;显示缓冲器初始化
mov41h,#0
mov42h,#0
mov43h,#0
mov44h,#0
mov45h,#0
LOOP1:
MOVR7,#100
VI:
lcallDISPLAY
DJNZR7,VI
mova,#00h
movdptr,#0a000h;0809AD的通道开始转换吗?
movx@dptr,a
movr7,#0fh
loop2:
djnzr7,loop2
movxa,@dptr
lcallV_Disp
sjmploop1
;********************************
Delay:
movr7,#0;延时子程序
DelayLoop:
djnzr7,DelayLoop
djnzr6,DelayLoop
ret
;********************************
DISPLAY:
setb0d3h
movr0,#LEDBuf
movr1,#6;共6个八段管
movr2,#00100000b;从左边开始显示
Loop:
movdp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 AD 转换器 ADC 实验 应用