第9章 DA和AD转换.docx
《第9章 DA和AD转换.docx》由会员分享,可在线阅读,更多相关《第9章 DA和AD转换.docx(23页珍藏版)》请在冰豆网上搜索。
![第9章 DA和AD转换.docx](https://file1.bdocx.com/fileroot1/2023-2/2/a3e17fda-6200-49e9-b2d6-3108c708e314/a3e17fda-6200-49e9-b2d6-3108c708e3141.gif)
第9章DA和AD转换
第八章D/A和A/D转换
基本内容:
D/A转换和A/D转换的基础知识,D/A转换芯片0832和A/D转换芯片0809的应用。
基本要求:
了解D/A转换的基础知识;掌握0832和0809的结构及使用
重点内容:
D/A转换和A/D转换的工作原理
难点内容:
0832和0809的工作方式。
在自动化领域中,常常通过微型计算机对客观事物的变化信息进行采集、处理、分析和实时控制。
客观事物变化的信息有温度、速度、压力、流量、电流、电压等一些连续变化的物理量。
而计算机只能处理离散的数字量,那么这些模拟信号如何变化才能被计算机接收并可进行处理的数字量呢?
计算机输出的是数字量,但大多数被控设备不能直接接收数字信号,所以还需将计算机输出的数字信号转化成为模拟信号,去控制或驱动被控设备,那么这些数字信号又是如何变化成模拟信号的呢?
对一个控制系统要从以下三方面考虑问题。
图1一个包含A/D和D/A转换环节的控制系统
1.传感器
温度、速度、流量、压力等非电信号,称为物理量。
要把这些物理量转换成电量,才能进行模拟量对数字量的转换,这种把物理量转换成电量的器件称为传感器。
目前有温度、压力、位移、速度、流量等多种传感器。
2.A/D转换器(AnalogtoDigitalConverter,ADC)
把连续变化的电信号转换为数字信号的器件称为模数转换器,即A/D转换器。
3.D/A转换器(DigitaltoAnalogConverter,DAC)
把经过计算机分析处理的数字信号
转换成模拟信号,去控制执行机构的器件,称为数模转换器,即D/A转换器。
可见,D/A转换是A/D转换的逆过程。
这两个互逆的转换过程以及传感器构成一个闭合控制系统,如图1所示。
第一节数模转换
一、D/A转换器的工作原理
D/A转换器是指将数字量转换成模拟量的电路。
数字量输入的位数有8位、12位和16位等,输出的模拟量有电流和电压两种。
D/A转换器工作原理D/A转换器用于将数字量转换成模拟量。
它的输入量是数字量D,输出量为模拟量V0,要求输出量与输入量成正比,即V0=D×VR,其中VR为基准电压。
数字量是由一位一位的数字构成,每个数位都代表一定的权。
例如10000001,最高位的权是27,所以此位上的代码1表示数值1×128。
因此,数字量D可以用每位的权乘以其代码值,然后各位相加。
具体公式如下:
D=dn-1·2n-1+dn-2·2n-2+:
+d0·20其中dn-1,dn-2,:
d0为各位的代码值;2n-1,2n-2,:
20为各位的权。
由以上两个式子可推导出V0=dn-1·2n-1·VR+dn-2·2n-2·VR+:
+d1·21·VR+d0·20·VR将输入的每一位转换为与其权对应的模拟量,各位对应的模拟量相加得到D/A转换器的输出。
模拟量输出与数字量输入成正比。
1、运算放大器的工作特点和原理(稍提一下即可)
特点:
1、开环放大倍数非常高
2、输入阻抗非常大
3、输出阻抗很小
运算放大器的原理:
(a)运算放大器的输入和输出
(b)带反馈电阻的运算放大器
(c)输入端有4个支路的运算放大器由此可求得带有反馈电阻的运算放大器的放大倍数为
2、由T型电阻网络和运算放大器构成的D/A转换器
(a)最简单的D/A转换器(b)阶梯波电压
3、T型权电阻网络
采用T型电阻网络的D/A转换器
二、D/A转换器的输出
电流输出和电压输出
D/A转换的结果若是与输入二进制码成比例的电流,称为电流DAC;
若是与输入二进制码成比例的电压,称为电压DAC。
常用的D/A转换芯片大多属于电流DAC,然而在实际应用中,多数情况需要电压输出,这就需要把电流输出转换为电压输出,采取的措施是用电流DAC电路外加运算放大器。
三、D/A转换器的性能参数
(1)分辨率
阶梯波的每一级增量对应输入数据的最低数位1,在D/A转换时,将最低位增1所引起的增量和最大输入量的比称为分辨率,即
分辨率=1/(2n-1)
其中,n为二进制数位的数目。
分辨率也常用百分比表示,所以,4位的D/A转换器的分辨率也等于1/15=6.67%。
显然,位数越多,分辨率越好。
(2)转换精度
转换精度表明了模拟输出实际值与理想值之间的偏差。
精度可分为绝对精度和相对精度。
绝对精度是指在输入端加入给定数字量时,在输出端实测的模拟量与理论值之间的偏差。
相对精度是指当满量程值校准后,输入的任何数字量所对应的模拟输出值与理论值的误差。
D/A转换器的转换精度与D/A转换器的本身芯片的结构和与外接电路的配置有关。
外接运算放大器,外接参考电源,都可影响D/A转换器的精度。
通常,相对转换精度比绝对转换精度更有实用性。
除了分辨率和转换精度外,D/A转换时涉及的参数还有转换速率、建立时间、线性误差等。
四、典型D/A转换器DAC0832
DAC0832是8位数/模转换芯片,数据的输入方式有双缓冲、单缓冲和直接输入,适用于要求几个模拟量同时输出的情况。
1.不带数据输入寄存器的D/A芯片的使用
超过8位的D/A转换器的连接:
2.带有数据输入寄存器的D/A芯片的使用
特点:
将D/A芯片可直接和数据总线相连。
DAC0832的结构框图和引脚如图2所示。
(书上235页图7.8和7.9)
图2DAC0832的结构框图和引脚
DAC0832具有双缓冲功能,即输入数据可分别经过两个寄存器保存。
第一个寄存器称为8位输入寄存器,数据输入端可直接连接到数据总线上,第二个寄存器为8位DAC寄存器。
引脚说明如下。
D0~D7:
8位数据输入端。
ILE:
输入锁存允许信号,高电平有效。
此信号用来控制8位输入寄存器的数据是否能被锁存的控制信号之一。
CS:
片选信号,低电平有效。
此信号与ILE信号一起用于控制WR1信号能否起作用。
WR1:
写信号1,低电平有效。
在ILE和CS有效的情况下,此信号用于控制将输入数据锁存于输入寄存器中。
ILE、CS、WR1是8位输入寄存器工作时的三个控制信号。
WR2:
写信号2,低电平有效。
在XFER有效的情况下,此信号用于控制将输入寄存器中的数字传送到8位DAC寄存器中。
XFER:
传送控制信号,低电平有效。
此信号和WR2控制信号是决定8位DAC寄存器是否工作的控制信号。
8位D/A转换器接收被8位DAC寄存器锁存的数据,并把该数据转换成相对应的模拟量,输出信号端如下:
IOUT1:
DAC电流输出1,它是逻辑电平为1的各位输出电流之和。
IOUT2:
DAC电流输出2,它是逻辑电平为0的各位输出电流之和。
为保证转换电压的范围、保证电流输出信号转换成电压输出信号、保证DAC0832的正常工作,应具有以下几个引线端:
Rfb:
反馈电阻引脚,该电阻被制作在芯片内,用作运算放大器的反馈电阻。
VREF:
基准电压输入引脚。
一般在-10V~+10V范围内,由外电路提供。
VCC:
逻辑电源。
一般在+5V~+15V范围内。
最佳为+15V。
AGND:
模拟地。
芯片模拟电路接地点。
DGND:
数字地。
芯片数字电路接地点。
DAC0832的工作过程是:
(1)CPU执行输出指令,输出8位数据给DAC0832;
(2)在CPU执行输出指令的同时,使ILE、WR1、CS三个控制信号端都有效,8位数据锁存在8位输入寄存器中;
(3)当WR2、XFER二个控制信号端都有效时,8位数据再次被锁存到8位DAC寄存器,这时8位D/A转换器开始工作,8位数据转换为相对应的模拟电流,从IOUT1和IOUT2输出。
针对使用两个寄存器的方法,形成了DAC0832的三种工作方式,分别为双缓冲方式、单缓冲方式和直通方式。
(1)双缓冲方式:
数据通过二个寄存器锁存后送入D/A转换电路,执行两次写操作才能完成一次D/A转换。
这种方式特别适用于要求同时输出多个模拟量的场合。
(2)单缓冲方式:
两个寄存器中的一个处于直通状态,输入数据只经过一级缓冲送入D/A转换器电路。
在这种方式下,只需执行一次写操作,即可完成D/A转换,可以提高DAC的数据吞吐量。
(3)直通方式:
两个寄存器都处于直通状态,即ILE、CS、WR1、WR2和XFER都处于有效电平状态,数据直接送入D/A转换器电路进行D/A转换。
这种方式可用于一些不采用微机的控制系统中。
五、DAC0832的外部连接
地线的连接方法
单缓冲工作方式:
①只有一路D/A转换;
例:
设
,
,要求
,n=8
a.计算:
由公式
b.编程:
MOV
AL,80H;立即数
OUT
80H,AL;80H:
地址,送入R1锁存
OUT
81H,AL;传送,与AL中数无关
硬件接口图如下:
图8-4
②多路转换,但不要求同步输出。
其方法类似一路D/A转换,每一路按一路D/A转换的形式,按要求依次编程输出即可。
其硬件连接和编程与一路D/A转换类似。
双缓冲工作方式:
两路同步输出:
(见图8-14)
编程:
MOV
AL,DATA1;第一片0832的数据1
OUT
Port1,AL;Port1:
地址,送入第一片0832的R1锁存
MOV
AL,DATA2;第二片0832的数据2
OUT
Port2,AL;Port2:
地址,送入第二片0832的R1锁存
OUT
Port3,AL;不实际输出数据,只是同开两片第二级缓冲的控制端
图8-14
六、DAC0832的接口设计及编程
例1、实现一次D/A转换。
MOVBX,1000H;假设数据放在1000H中
MOVAL,〔BX〕;数据送AL中
MOVDX,PORTA;PORTA为D/A端口号
OUTDX,AL
例2、产生一个锯齿电压。
MOVDX,PORTA;PORTA为D/A端口号
MOVAL,0FFH;初值为0FFH
ROTATE:
INCAL
OUTDX,AL;往D/A输出数据
JMPROTATE
例3、用0832产生三角波
要求三角波电压范围从1V到3V变化,0832口地址为98F0H。
解:
方法:
算出最低和最高电压对应数字量Dl和Dm,然后从低电压数字量开始送D/A,以后数字量加1最高值,再回到最低值,循环进行即可。
由:
可知:
Dl=(Vl/Vref)*256=(1/5)*256=51=33H
Dm=(3/5)*256=153=99H
MinDEQU33H
MaxDEQU99H
MOVDX,98F0H;0832端口地址
LP1:
MOVAL,MinD-1;取最小值-1
LP2:
INCAL;数字量增1
OUTDX,AL;送0832输出
CALLDELAY;调延时程序
TESTAL,MaxD;测试是否到最大值
JNZLP2;未达最大继续加1输出
JMPLP1;到最大回到最小输出
第二节模数转换
一、模/数转换的方法和原理
由于输入的模拟信号在时间上是连续量,所以一般的A/D转换过程为:
采样、保持、量化和编码。
(举例补充说明)
方法:
计数法、双积分法、逐次逼近法
1.计数式A/D转换
特点:
简单、便宜,但是速度比较慢。
(原理性)
2.双积分式A/D转换
(a)电路工作原理(b)双积分原理
特点:
转换精度高,抗干扰能力强(特别是抗工频干扰能力强,是其它A/D转换器所不及的),适合于速度不很高的场合。
3.逐次逼近式A/D转换
特点:
转换速度快、精度高。
常用
4.用软件和D/A转换器来实现A/D转换
程序如下:
START:
XORAX,AX;累加器清零
MOVBL,80H;初值为80H
MOVCX,08H;计数初值为8
AGAIN:
ADDAL,BL;计算试探值
MOVBH,AL;保留试探值
OUTPORTA,AL;PORTA是锁存器地址
INAL,PORTS;PORTS是输入端口的地址
ANDAL,01;取状态位
JZEND1;如状态位为0,则保存此位
MOVAL,BL
NOTAL;求反
ANDAL,BH;使试探位为0
MOVBH,AL;保存试探值
END1:
RORBL,1;右移,得下一个试探值
MOVAL,BH
LOOPAGAIN;继续进行试探和测试
……;后续程序段
另:
还有一种AD转换方法,即并行高速AD转换
特点:
速度高。
内部结构复杂,成本较高,一般用于速度要求很高的场合。
二、A/D转换器主要指标
1.转换精度
转换精度反映了A/D转换器的实际输出接近理想输出的精确程度。
A/D转换器的精度通常采用数字量的最低有效位LSB来表示。
2.分辨率
分辨率表示了A/D转换器能够分辨最小量化信号的能力,与数据位数有关,位数越多,分辨率越高。
对于n位二进制的A/D转换器来说,其能分辨最小量化的信号的能力为2n位,因此,其分辨率为2n。
3.其他如
三、A/D转换器的模数关系
其中:
D为数字量,Vin为输入模拟电压,Vref为参考电压
四、典型A/D转换器DAC0809
ADC0809芯片是CMOS型单片双列直插式模/数转换器件,采用逐次逼近式转换方式,可对8路模拟电压分时进行转换。
1、ADC0808/0809引脚及使用说明
ADC0808/0809是CMOS集成工艺制成的逐次比较型A/D转换芯片。
分辨率10位,转换时间100μS,输入模拟电压范围0至6.5V,片内含8通道多路开关,锁存逻辑控制调制器,具有三态输出锁存缓冲器,能与微机兼容,输出电平与TTL、CMOS兼容。
单电源+5V~6.5V工作。
引脚排列见图8.20所示,各引脚功能为:
1)IN0~IN7(第1~5脚,第26~28脚):
8路模拟量输入脚,可以从8个脚输入OV至+5V待转换模拟电。
2)CLOCK(第10脚):
时钟CP输入端,ADC0808/0809只有在CP信号同步下,才能进行A/D转换。
时钟频率的上限是640KHZ。
3)ALE(第22脚):
地址锁存允许端。
ALE=1时,地址锁存和译码部分把上面所述的CBA的值输入和译码并接通IN0~IN7之一。
当ALE=0时,把CBA的值锁存起来。
4)START(第6脚):
启动脉冲输入端,启动脉冲的上升沿清除逐次逼近寄存器SAR,下跳沿启动ADC开始转换。
5)VDD(第11脚):
电源输入端:
+5V+6.5V。
6)GND(第13脚):
地
7)VREF+(第12脚)VREF-(第16脚):
分别为基准电压的高电平和低电平端。
8)EOC(第7脚):
转换结束信号端。
EOC=0,表示转换正在进行,输出数据不可信。
EOC=1表示转换已完成,输出数据可信。
9)BO~B7(第8、14、15、17~21脚):
转换所得八位输出数据,B7是最高位,BO是最低位。
10)OE(第9脚):
允许输出端。
OE端控制输出锁存器的三态门。
当OE=1时,转换所得的数据送到B0~B7端,当OE=0时,B0~B7脚对外呈高阻状态。
11)ADDA、ADDB、ADDC(第25~23脚):
通道地址输入端。
例如当CBA=001时,模拟量IN1输至ADC0808/0809,CBA=010时,IN2输入ADC0809…依次类推。
ADC0808/0809的功能框图
ADC0808/0809真值表:
ADC0809的内部结构
1、片内集成有具有锁存功能的8路模拟开关,可对8路0~5V的输入模拟电压信号分时进行转换。
2、片内具有多路开关的地址译码和锁存电路、比较器256R电阻T型网络、树状电子开关、逐次逼近寄存器SAR、控制与时序电路等。
3、输出具有TTL三态锁存缓冲器,可直接连到微处理器的数据总线上。
ADC0809的性能指标
1)分辨率为8位。
2)最大不可调误差上±1LSB。
3)单电源+5V。
4)可锁存三态输出,输出与TTL电平兼容。
5)当用+5V电源供电时,模拟输入电压范围为0~5V。
6)温度范围-40~+85℃。
7)功耗为15mw。
8)转换速度取决于芯片的时钟频率,其时钟频率范围为10kHz~1280KHZ,若CLK=500kHZ,转换速度为128μs。
工作时序
ADC0809的工作过程
根据时序图,ADC0809的工作过程如下:
①把通道地址送到ADDA~ADDC上,选择一个模拟输入端;
②在通道地址信号有效期间,ALE上的上升沿使该地址锁存到内部地址锁存器;
③START引脚上的下降沿启动A/D变换;
④变换开始后,EOC引脚呈现低电平,EOC重新变为高电平时表示转换结束;
⑤OE信号打开输出锁存器的三态门送出结果。
转换结束EOC
1、软件延时等待(比如延时1ms)——不用EOC信号
CPU效率最低,只能按最大转换时间延时
简单,容易实现
2、软件查询EOC状态
EOC通过一个三态门连到数据总线的D0(或D1、D2等)
三态门要占用一个I/O端口地址
CPU效率低
3、把EOC作为中断申请信号,向CPU申请中断
在中断服务程序中读入转换结果,效率高
ADC0809与PC总线的接口
需要考虑如下几方面
①模拟信号输入
②数据线的连接
③启动转换信号的连接
④状态信号EOC端的连接
ADC0809与PC总线的连接举例
例1、在一个采用8086为核心的数据采集处理系统如图所示。
其中R1=10K,R2为20K的电位器。
1.写出ADCIN5通道的A/D转换程序片段。
2.如果得到的数字量为3FH,则R2的值被调至多少K?
3.将IN3对应的模拟信号通过0832输出。
1、A/D应用程序清单
;IN5地址:
启动地址F651H,查询EOC地址F650H
START:
MOVDX,0F651H;指向IN5端口
OUTDX,AL;选通IN5并启动A/D转换
MOVDX,0F650H;指向EOC对应端口
TWAIT:
INAL,DX;查询EOC
TESTAL,01H
JZTWAIT
MOVDX,0F651H;指向IN5数据端口
INAL,DX
HLT
2、由
得:
当数字量为3FH时,Vin=Vref*D/(28-1)=Vref*3FH/FFH
而Vin/Vref=R2/(R1+R2),所以
R2/(R1+R2)=3FH/FFH=63/255=0.247,R1=10K
得R2=3.28K即电位器R2调到3.28K处。
3、
LPRET:
MOVDX,0EE51H;指向IN3端口
OUTDX,AL;选通IN3并启动A/D转换
MOVDX,0FEE0H;指向EOC对应端口
TWAIT:
INAL,DX;查询EOC
TESTAL,01H
JZTWAIT
MOVDX,0EE51H;指向IN3数据端口
INAL,DX
MOVDX,0EE56H
OUTDX,AL
JMPLPRET