第 11 章 模数 (a/d) 和 数模 (d/a) 转换 中国科学技术大学 何克东. 11.1 概述...
Post on 21-Dec-2015
464 views
TRANSCRIPT
第 11 章
模数 (A/D) 和 数模 (D/A) 转换
中国科学技术大学 何克东
11.1 概述 模拟量——连续变化的物理量
数字量——时间和数值上都离散的量
模拟 / 数字转换器ADCDAC
数字 / 模拟转换器
在实际工程中大量遇到的是连续变化的物理量。所谓连续,包括两方面的含义:一方面从时间上来说,它是随时间连续变化的;另一方面从数值上来说,它的数值也是连续变化的。这种连续变化的物理量通常称为模拟量。例如温度、压力、流量、位移、转速以及连续变化的电压、电流等等。因为微型计算机只能处理数字量的信息,模拟接口的作用就是实现模拟量和数字量之间的转换。
将模拟量转变为数字量的器件称为模数转换器 (Analog to Digital Converter) ,简称 ADC 或 A/D 转换器。计算机的计算结果是数字量,不能用它去直接控制执行部件,需要先把它转换为模拟量,才能用于控制。这种能将数字量转换为模拟量的器件称为数模转换器 (Digital to Analog Converter) ,简称 DAC 或 D/A 转换器。
一、 模拟输入输出系统数字信号
模拟信号现场信号
1
现场信号2
现场信号n
放大器
放大器
放大器
多路开关
低通滤波传感器
低通滤波传感器
低通滤波传感器
A/D转换器
采样保持
器
数字信号受控对象
控制信号
模拟信号
D/A转换器
放大驱动电路
…
I/0接口
放大器把传感器输出的信号放大到 ADC所需的量程范围
多路开关把多个现场信号
分时地接通到A/D 转换器
低通滤波器用于降低噪声、滤去高频干扰,
以增加信噪比
采样保持器周期性地采样连续信号,并在 A/D 转
换期间保持不变
传感器将各种现场的
物理量测量出来并转换成电信号
(模拟电压或电流)
I/0接口
多路开关
11.2 D/A 转换器
DAC数字 / 模拟转换器
数字量
模拟量
一、 D/A 转换的基本原理 D / A 转换器的功能是把计算机输出的二进制数字量电信
号转换成与其数值成正比的模拟量电信号。 D/A 转换器可以视为微机的一种输出设备,实现 D/A 转换器与微机接口技术的关键是数据锁存问题,当 CPU 向 D/A 转换器输出的数据在数据总线上只能持续较短的时间。因此,必须要用数据锁存器将数据锁存,才能为 D/A 转换器提供一个稳定的数据。
数字量 → 按权相加按权相加 → 模拟量
1101B
= 1×21×233 ++ 1×21×222 ++ 0×20×211 ++ 1×21×200
= 13
权电阻网络 D/A 转换器的原理图
Rf
Vo+
_
S3
D1
4R
S2
D2
2R
IO
S4
D4
8R
S1
D3
RVR
电阻网络
基准电压
电子开关I1 I2 I3
I4
If
Σ
运算放大器
虚地 权电阻网络 DAC权电阻网络 DAC
流入相加点 Σ 的总电流为:
IO = d1I1+d2I2+d3I3+d4I4
= d1(VR/R)+d2(VR/2R)+d3(VR/3R)+d4(VR/4R)
= (2VR/R)(d12-1+ d22-2 +d32-3+d42-4)
如果 Rf=R/2, 输入数字量 d1d2d3d4=1000,VR=+5V, 则输出电压:VO = -IO×Rf
=-2VR/R× ( 1× ( 1/2 ) +0×(1/4)+0×(1/8)+0×(1/16))×(R/2)
= -(1/2)VR
= -2.5V
T 型电阻解码网络 D/A 转换器的原理图
Iout2
Iout1
RfbRfb
Vout+
_I1
S1
D1
c
2R
R
I2
S2
D2
b
2R
R
I0
S0
D0
d
2R2R
R
I3
S3
D3
a
2RVREF
T 型 电 阻 解 码 网 络DAC
T 型 电 阻 解 码 网 络DAC
二、 DAC 的主要性能指标 输入数字量 包括输入数字量的码制、数据格式和它们的逻辑电平等。
有二进制码、 BCD 码、补码、偏移二进制码等。 逻辑电平一般为 TTL 电平。
输出模拟量 不同型号的 D / A 转换器件的输出电平相差较大。一般
为 5V ~ 10V ,有的高压输出型的输出电平,则高达 24V ~ 30V 。还有些电流输出型的 D / A 转换器,低的为几个 mA 到几十个 mA ,高的可达 3A 。
分辨率 这是 D / A 转换器中最重要的指标,它表示 D/A 转换器对模
拟量的分辨能力。理论定义为最小输出电压 ( 对应的输入数字量仅最低位为“ 1”) 与最大输出电压 ( 对应的数字输入量为全“ 1”) 之比。对于前述 4 位 D/A 转换器,其分辨率为 1/15 。分辨率越高,转换时对应最小数字输入的模拟信号电压数值越小,也就越灵敏。通常,使用数字输入量的位数来给出分辨率。
例如,单片集成 D/A 转换器 AD7522 的分辨率为 10 位,单片 集成 D/A 转换器 ADll47 的分辨率为 16 位等。
建立时间 对于一个理想的 D/A 转换器 , 其数字输入信号从一个二进制数
变到另一个二进制数时 , 其输出模拟信号电压 , 应立即从原来的输出电压跳变到与新的数字信号相对应的新的输出电压。但是在实际的 D/A 转换器中 , 电路中的电容、电感和开关电路会引起电路时间延迟。所谓建立时间,系指数模转换器中的输入代码有满度值的变化时 , 其输出模拟信号电压 ( 或模拟信号电流 )达到满刻度值 ±1/2LSB精度时所需要的时间。不同型号的 D/A 转换器,其建立时间不同 , 一般从几个纳秒到几个微秒。输出形式是电流的 , 其 D/A 转换器的建立时间是很短的;输出形式是电压的 ,D/A 转换器的主要建立时间是其输出运算放大器所需的响应时间。
转换精度 转换精度以最大的静态转换误差的形式给出。这个转换误差应该是包含非线性误差、比例系数误差以及漂移误差等综合误差。但是有的产品说明书中 , 只是分别给出各项误差 ,而未给出综合误差。
应该注意 , 转换精度和分辨率是 2 个不同的概念。精度是指转换后所得的实际值对于理想值的接近程度,而分辨率是指能够对转换结果发生影响的最小输入量 , 对于分辨率很高的 D / A 转换器并不一定具有很高的精度。
线性误差 通常用非线性误差的大小表示 D/A 转换器的线性度。而非线
性误差为理想的输入 /输出特性曲线与实际转换曲线的偏差,一般取偏差的最大值表示。通常,使用最小数字输入量的分数来给出最大偏差的数值,如 ±1/2LSB 。
DAC0832 的内部结构
LE2LE1
Rfb
AGND
DAC0832Vcc
ILE
VREF输入寄存器
DGND
DI0 ~ DI7D/A转换器
DAC寄存器 Iout2
Iout1
CSWR1WR2
XFER
三、数 /模转换器 DAC0832 是典型的 8位电流输出型通用 DAC芯片
1. DAC0832 的数字接口 8位数字输入端
DI0~ DI7( DI0 为最低位) 输入寄存器(第 1 级锁存)的控制端
ILE 、 CS 、 WR1 DAC寄存器(第 2 级锁存)的控制端
XFER 、 WR2
直通锁存器的工作方式两级缓冲寄存器都是直通锁存器 LE = 1 ,直通(输出等于输入) LE = 0 ,锁存(输出保持不变)
LE2LE1 DAC0832
输入寄存器
DI0 ~ DI7D/A转换器
DAC寄存器
Iout1
DAC0832 的工作方式:直通方式
LE1 = LE2 = 1 输入的数字数据直接进入 D/A 转换器
LE2LE1 DAC0832
输入寄存器
DI0 ~ DI7D/A转换器
DAC寄存器
Iout1
DAC0832 的工作方式:单缓冲方式 LE1 = 1 ,或者 LE2 = 1 两个寄存器之一始终处于直通状态 另一个寄存器处于受控状态(缓冲状态)
LE2LE1 DAC0832
输入寄存器
DI0 ~ DI7D/A转换器
DAC寄存器
Iout1
DAC0832 的工作方式:双缓冲方式 两个寄存器都处于受控(缓冲)状态 能够对一个数据进行 D/A 转换的同时;输入另一个
数据
LE2LE1 DAC0832
输入寄存器
DI0 ~ DI7D/A转换器
DAC寄存器
Iout1
2. DAC0832 的模拟输出 Iout1 、 Iout2—— 电流输出端 Rfb——反馈电阻引出端(电阻在芯片内) VREF——参考电压输入端
+ 10V ~- 10V AGND—— 模拟信号地 VCC—— 电源电压输入端
+ 5V ~+ 15V DGND—— 数字信号地
单极性电压输出Vout =- Iout1×Rfb=-( D/28 ) ×VREF
Rfb
Iout2
Iout1
Vout+
_
AGND
A
DI
VREF
单极性电压输出:例子
设 VREF =- 5V D = FFH = 255 时,最大输出电压:Vmax =( 255/256 ) ×5V = 4.98V D = 00H 时,最小输出电压:Vmin =( 0/256 ) ×5V = 0V D = 01H 时,一个最低有效位( LSB )电压:VLSB =( 1/256 ) ×5V = 0.02V
Vout =-( D/2n ) ×VREF
3. 输出精度的调整
Rfb
Iout2
Iout1Vout
+
_
AGND 调零电位器
调满刻度电位器
电源
5V
A
DI
10K
1M
1KVREF
4. 地线的连接
DGNDAGND
模拟电路 数字电路ADC DAC
模拟电路 数字电路
模拟地模拟地 数字地数字地公共接地点公共接地点
11.2.3 DAC芯片与主机的连接 DAC芯片相当于一个“输出设备”,至少需要一级锁存器作为接口电路
考虑到有些 DAC芯片的数据位数大于主机数据总线宽度,所以分成两种情况:1. 主机位数等于或大于 DAC芯片位数
2. 主机位数小于 DAC芯片位数
1. 主机位数大于或等于 DAC芯片的连接
mov al,bufmov dx,portdout dx,al
mov al,bufmov dx,portdout dx,al
译码AB
D0 ~ D7
CLK
DAC
Vout+
_A
LS273
IOW
DAC0832 单缓冲方式
WR1
CS
IOW
5V+5V
Rfb
Iout2
Iout1
WR2XFERDGND AGND
D0 ~ D7 DI0 ~ D17
VccILE
VREF
Vout+
_
A
译码AB
2. 主机位数小于 DAC芯片的连接 数字数据需要多次输出 接口电路也需要多个(级)锁存器保存
多次输出的数据 并需要同时将完整的数字量提供给
DAC 转换器
CPUCPU DACDAC8 位 12位
两级锁存电路
模拟输出12 位DAC
第 2 级 12 位锁存控制
第 1 级低 8 位锁存控制第 1 级高 4 位锁存控制
D0 ~ D7
4 位锁存器
4 位锁存器
8 位锁存器
8 位锁存器
由同一个信号控制
关键的一级锁存
无需输出数据
简化的两级锁存电路
模拟输出12 位DAC
第 2 级 12 位锁存控制
第 1 级低 8 位锁存控制
D0 ~ D7
4 位锁存器
8 位锁存器
8 位锁存器
由同一个信号控制
关键的一级锁存
需要输出高 4 位数据
mov dx,port1mov al,blout dx,almov dx,port2mov al,bhout dx,al
mov dx,port1mov al,blout dx,almov dx,port2mov al,bhout dx,al
输出正向锯齿波
2 次数据输出的时间间隔
0
2LSB1LSB
255LSB254LSB
锯齿波周期
mov dx,portd mov al,0
repeat: out dx,al inc al
call delay jmp repeat
DAC芯片的应用
11.3 A/D 转换器模拟量
数字量
模拟 / 数字转换器ADC
模/数转换一般要经过传感器、放大器、滤波器、多路开关、采样保持电路、 A / D 转换器等器件,才能把要处理的物理量转换成提供给计算机处理的数字量。
一、 A/D 转换的基本原理
存在多种 A/D 转换技术,各有特点,分别应用于不同的场合
4 种常用的转换技术 计数器式 逐次逼近式 双积分式 并行式
1. 计数器式以最低位为增减量单位的逐步计数法以最低位为增减量单位的逐步计数法
时钟复位
数字输出
比较器模拟输入
计数器
D/A 转换器 转换结束
2. 逐次逼近式从最高位开始的逐位试探法从最高位开始的逐位试探法
时钟复位
数字输出
转换结束
比较器模拟输入
寄存器
D/A 转换器
二、典型的 ADC0809芯片 具有 A/D 转换的基本功能
CMOS 工艺制作 8位逐次逼近式 ADC 转换时间为 100 s
包含扩展部件 多路开关 三态锁存缓冲器
ADC0809 的内部结构图
ADC0809
地址锁存和译码
OE
通道选择开关
ADDAADDBADDC
1N0IN1IN2IN3IN4IN5IN6IN7
8 位三态锁存
缓冲器DAC
Vcc
比较器
CLOCK START
GND VREF(+) VREF(-)
ALE
逐次逼近寄存器 SAR
定时和控制
D0D1D2D3D4D5D6D7
EOC
1. ADC0809 的模拟输入 提供一个 8通道的多路开关和寻址逻辑 IN0 ~ IN7 : 8 个模拟电压输入端 ADDA 、 ADDB 、 ADDC : 3 个地址输入线 ALE :地址锁存允许信号
ALE 的上升沿用于锁存 3个地址输入的状态,然后由译码器从 8 个模拟输入中选择一个模拟输入端进行 A/D 转换
2. ADC0809 的转换时序
D0 ~ D7
OE
EOC
ALE
ADDA/B/C
DATA100s
2s+8T( 最大 )
200ns( 最小 )
转换启动信号
转换结束信号START
3. ADC0809 的数字输出 ADC0809内部锁存转换后的数字量 具有三态数字量输出端 D0 ~ D7 配合输出允许信号 OE
o 当输出允许信号 OE 为高电平有效时,将三态锁存缓冲器的数字量从 D0 ~ D7 输出
单极性转换示例
基准电压 VREF(+) = 5V , VREF( - ) = 0V
输入模拟电压 Vin = 1.5V
N =( 1.5 - 0 ) ÷ ( 5 -
0 ) ×256
= 76.8≈77 = 4DH
8
)(REF)(REF
)(REFin 2VV
VVN
8
)(REF)(REF
)(REFin 2VV
VVN
11.3.3 ADC芯片与主机的连接 ADC芯片相当于“输入设备”,需要接
口电路提供数据缓冲器 主机需要控制转换的启动 主机还需要及时获知转换是否结束,并进
行数据输入等处理
1. 数据输出线的连接 与主机的连接可分成两种方式
直接相连:用于输出带有三态锁存器的 ADC芯片 通过三态锁存器相连:适用于不带三态锁存器的
ADC芯片,也适用带有三态锁存缓冲器的芯片 ADC芯片的数字输出位数大于系统数据总线位数,
需把数据分多次读取
2. A/D 转换的启动( 1)
启动信号一般有两种形式
脉冲信号启动转换
电平信号启动转换
2. A/D 转换的启动( 2) 主机产生启动信号有两种方法 编程启动
软件上,执行一个输出指令 硬件上,利用输出指令产生 ADC启动脉冲,或产生一个启动有效电平
定时启动 启动信号来自定时器输出
3. 转换结束信号的处理 不同的处理方式对应程序设计方法不同
① 查询方式——把结束信号作为状态信号
② 中断方式——把结束信号作为中断请求信号
③ 延时方式——不使用转换结束信号
④ DMA 方式——把结束信号作为 DMA请求信号
假设系统分配给 8255A 的端口地址为 320H 一 323H 。又设 ,已完成对 8255A 的初始化编程,并使 ES 和 DS 有相同的段基地址。若要求 ADC0809 将 8路模拟量转换成 8个数字量后,存放到内存中段基地址为 ES , 偏 移 量 从 DATA—BUF 开始的 存储单元中 , 则 用ADC0809完成一次 8路模拟量的采集子程序 AD_SUB 如下:
AD_SUB PROC
MOV CX, 8 ; CX 作数据计数器 CLD ;清方向标志 MOV BL, 00H ;模拟通道号存在 BL 中 LEA DI , DATA_BUF ;缓冲区偏移地址NEXT_IN : MOV DX , 322H ; C 口地址 MOV AL , BL
OUT DX , AL
MOV DX , 323H
MOV AL , 00000111B ;IPC3 置 1 OUT DX , AL ;送出开始启动信号 NOP ; 延时 NOP
NOP
MOV AL , 00000110B ; PC3 复位 OUT DX , AL ;送出结束启动信号
MOV DX , 322H ; DX 指向 C 口NO_CONV : IN AL ;DX 读入 C 口内容 TEST AL , 80H ; 查 PC'7 ,即 EOC 信号 JNZ NO_CONV ; PC7=1 ,还未开始转换,等待NO_EOC : IN AL , DX ; PC7=1 ,,已启动转换 TEST AL , 80H ;再查 PC7
JZ NO_EOC ; IPC7 = 0 ,转换未结束,等待 MOV DX , 320H ; PC7=1 ,转换结束, DX 指向 A 口 IN AL , DX ;读人数据 STOS DATA_BUF ;存入 ES 段的数据缓冲区 INC BL ;指向下个通道 LOOP NEXT_IN ;尚未完成 8 路转换则循环 RET ;已完成,返回AD_SUB ENDP