1
第 11章 数 /模、模 /数转换第 11章 D/A,A/D接口教学重点
DAC 0832原理及其与主机的连接
ADC 0809原理及其与主机的连接
3
模拟量与数字量
模拟量 —— 连续变化的物理量
数字量 —— 时间和数值上都离散的量模拟 /数字转换器
ADCDAC数字 /模拟转换器
4
11.1 模拟输入输出系统(补充)
数字信号模拟信号现场信号
1
现场信号
2
现场信号
n
微型计算机放大器放大器放大器多路开关低通滤波传感器低通滤波传感器低通滤波传感器
A/D转换器采样保持器数字信号受控对象控制信号 模拟信号
D/A转换器放大驱动电路

传感器将各种现场的物理量测量出来并转换成电信号 ( 模拟电压或电流 )
放大器把传感器输出的信号放大到 ADC所需的量程范围
低通滤波器用于降低噪声,滤去高频干扰,
以增加信噪比
多路开关把多个现场信号分时地接通到 A/D转换器采样保持器周期性地采样连续信号,
并在 A/D转换期间保持不变
5
含有 A/D与 D/A转换的监控系统
6
11.2 模 /数与数 /模转换通道的组成
11.2.1 模 /数转换通道的组成一般模 /数转换通道由传感器、信号处理、多路转换开关、采样保持器以及 A/D
转换器组成
7
传感器:能够把非电物理量转换成电量(电流或电压)的器件,一般传感器由电容、电阻、
电感或敏感材料组成,在外加激励电流或电压的驱动下,不同类型的传感器会随不同非电物理量的变化,引起传感器的组成材料发生改变,
使得输出连续变化的电流或电压与非电物理量的变化成正比一、传感器( Transducer)
8
由于传感器组成材料发生改变引起输出电流或电压的变化十分微弱,容易受外界干扰,因此,
在市场上能买到的各种变送器,已将传感器与放大电路制作在一起,输出统一标准的 0~ 10mA或
4~ 20mA电流,或 0~ 5V电压,以便传输或直接送
A/D转换器进行 A/D转换,其中,4~ 20mA标准电流输出的传感器较为普遍,常说的流量变送器、
压力变送器等一般输出 4~ 20mA标准电流,内部处于恒流输出结构,显然电流型传感器比电压型传感器抗干扰能力强,易于远距离传输,因此,
电流型传感器被广泛用于生产过程的检测系统中
9
二、信号放大处理信号放大处理电路,接在 A/D转换器与传感器之间,
用于解决以下存在问题
A/D转换器与传感器二者电压不匹配
如果是电流型输出传感器,要进行 Ⅰ ~ Ⅴ 变换与放大处理,将电流信号对应变换成电压信号
传感器工作在现场,可能存在复杂的强电磁波的干扰,通常采用 RC低通滤波器,滤除叠加在传感器输出信号上的高频干扰信号,也可采用有源滤波技术,使得滤波特性更好
10
三、多路转换开关( Multiplexer)
一个数据采集系统 ( A/D转换 ) 往往要采集多路模拟信号
通常只用一片 A/D转换芯片,轮流选择输入信号进行采集,既节省了硬件开销,又不影响对系统的监测与控制
许多 A/D转换芯片内部具备多路转换开关,一片 A/D转换芯片可以轮流采集多路模拟输入信号,如果 A/D转换芯片不具有多路转换功能,
则在 A/D转换之前外加模拟多路转换开关
11
11.3 模 /数与数 /模转换器的主要技术指标
11.3.1 模 /数转换器的主要技术指标分辨率 ( Resolution)
精度 ( precision)
量程 ( 满刻度范围 —— Full Scale Range)
转换时间 ( Conversion Time)
线性度误差 ( Linearity Error)
12
一、分辨率( Resolution)
分辨率是指转换器所能分辨的被测量的最小值。通常用输出二进制代码的位数来表示。例如称八位 A/D转换器的分辨率称为 8位,它把模拟电压的变化范围分成 28-1级( 255级)。 位数越多,分辨率越高
13
二、精度( precision)
精度是指转换的结果相对于实际的偏差,
精度有两种表示方法
( 1) 绝对精度,用最低位 ( LSB) 的倍数来表示,如 ± ( 1/2) LSB或 ± 1LSB等
( 2) 相对精度,用绝对精度除以满量程值的百分数来表示,例如 ± 0.05%等注意:分辨率与精度是两个不同的概念
14
三、量程(满刻度范围 —— Full Scale Range)
量程是指允许输入模拟电压的变化范围 。 例如,
某转换器具有 0~ 10V的单极性输入模拟电压的范围,
或 -5V~ +5V的双极性范围,那么,它们的量程都为
10V
应当指出,实际上 A/D,D/A转换器的最大输出值总是比满刻度值小 1/2n,n为转换器的位数,这是因为模拟量的 0值是 2n个转换状态中的一个,在 0
值以上,则有 2n-1个梯级
15
)(9 9 7 6.9
4 0 9 6
4 0 9 5
10
2
1
1010
12
V
按通常习惯,转换器的模拟量范围总是用满刻度表示 。 例如 12位的 A/D转换器,其满刻度值为 10V,而实际的最大输出值为
16
四、转换时间( Conversion Time)
从启动转换开始直至转换出稳定的二进代码所需的时间称为转换时间 。 转换时间与转换器工作原理及其位数有关 。 同种工作原理的转换器,通常位数越多,其转换时间则越长五,线性度误差 ( Linearity Error)
理想的转换器特性应该是线性的,即模拟量输入与数字量输出成线性关系 。 线性度误差是转换器实际的模拟数字转换关系与理想直线不同而出现的误差,通常用多少 LSB表示
17
11.3.2 D/A转换器的主要技术指标
D/A转换器与 A/D转换器的主要技术指标基本相同,只是转换时间的概念略有不同,
D/A转换器的转换时间也称建立时间,是指当输入的二进制代码从最小值突然跳变到最大值时,其模拟输出电压相应的满度跳跃并达到稳定值所需的时间 。 一般而言,D/A比
A/D的转换时间要短得多
18
11.2 数 /模转换 DAC0832
DAC
数字 /模拟转换器模拟量数字量
19
9.2.1 D/A转换的基本原理数字量 → 按权相加 → 模拟量
1101B
= 1× 23+ 1× 22+ 0× 21+ 1× 20
= 13
20
D/A转换器的原理图 ( 1)
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
2R
VREF
电阻网络基准电压电子开关
21
D/A转换器的原理图 ( 4)
Iout1= I0+ I1+ I2+ I3
= VREF/2R× ( 1/8+ 1/4+ 1/2+ 1)
Rfb= R
Vout=- Iout1× Rfb
=- VREF× [( 20+ 21+ 22+ 23) /24]
Vout=- ( D/2n) × VREF
22
9.2.2 DAC0832芯片
DAC0832是典型的 8位电流输出型通用 DAC芯片
LE2LE1
Rfb
AGND
DAC0832
Vcc
ILE
VREF输入寄存器
DGND
DI0~ DI7
D/A
转换器
DAC
寄存器
Iout2
Iout1
23
DAC0832的内部结构
LE2LE1
Rfb
AGND
DAC0832
Vcc
ILE
VREF输入寄存器
DGND
DI0~ DI7
D/A
转换器
DAC
寄存器 Iout2Iout1
CS
WR1
WR2
XFER
24
1,DAC0832的数字接口
8位数字输入端
DI0~ DI7( DI0为最低位 )
输入寄存器 ( 第 1级锁存 ) 的控制端
ILE,CS*,WR1*
DAC寄存器 ( 第 2级锁存 ) 的控制端
XFER*,WR2*
25
直通锁存器的工作方式两级缓冲寄存器都是直通锁存器
LE= 1,直通 ( 输出等于输入 )
LE= 0,锁存 ( 输出保持不变 )
LE2LE1 DAC0832
输入寄存器
DI0~ DI7
D/A
转换器
DAC
寄存器 Iout1
26
DAC0832的工作方式:直通方式
LE1= LE2= 1
输入的数字数据直接进入 D/A转换器
LE2LE1 DAC0832
输入寄存器
DI0~ DI7
D/A
转换器
DAC
寄存器 Iout1
27
DAC0832的工作方式:单缓冲方式
LE1= 1,或者 LE2= 1
两个寄存器之一始终处于直通状态
另一个寄存器处于受控状态 ( 缓冲状态 )
LE2LE1 DAC0832
输入寄存器
DI0~ DI7
D/A
转换器
DAC
寄存器 Iout1
28
DAC0832的工作方式:双缓冲方式
两个寄存器都处于受控 ( 缓冲 ) 状态
能够对一个数据进行 D/A转换的同时;输入另一个数据
LE2LE1 DAC0832
输入寄存器
DI0~ DI7
D/A
转换器
DAC
寄存器 Iout1
29
2,DAC0832的模拟输出
Iout1,Iout2—— 电流输出端
Rfb—— 反馈电阻引出端 ( 电阻在芯片内 )
VREF—— 参考电压输入端
+ 10V~- 10V
AGND—— 模拟信号地
VCC—— 电源电压输入端
+ 5V~+ 15V
DGND—— 数字信号地
30
单极性电压输出
Vout= - Iout1× Rfb
= - ( D/28) × VREF
Rfb
Iout2
Iout1
Vout+
_
AGND
A
DI
VREF
31
单极性电压输出:例子设 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
32
双极性电压输出:电路
R1( R)
R3( 2R)R2( 2R)
Rfb
Iout2
Iout1
AGND
DI
VREF
Vout1+
_
A1
Vout2+
_
A2
I1
I2
I1+ I2= 0
1
1O U T
2
3
2O U T
2
R E F
1
R
V
I
R
V
R
V
I

33
双极性电压输出:公式取 R2= R3= 2R1
得 Vout2=-( 2Vout1+ VREF)
因 Vout1=- ( D/28) × VREF
故 Vout2= [2D/256-1]× VREF
34
双极性电压输出:例子设 VREF= 5V
D= FFH= 255时,最大输出电压:
Vmax= [(2*255)/256-1]× 5V= 4.96V
D= 00H时,最小输出电压:
Vmin= [(2*0)/256-1]× 5V=- 5V
D= 81H= 129时,一个最低有效位电压:
VLSB= [(2*129)/256-1]× 5V= 0.04V
Vout2= [2D/256-1]× VREF
35
4,地线的连接
DGNDAGND
模拟电路 数字电路ADC DAC
模拟电路 数字电路模拟地 数字地公共接地点
36
9.2.3 DAC芯片与主机的连接
DAC芯片相当于一个,输出设备,,至少需要一级锁存器作为接口电路
考虑到有些 DAC芯片的数据位数大于主机数据总线宽度,所以分成两种情况:
1,主机位数等于或大于 DAC芯片位数
2,主机位数小于 DAC芯片位数
37
1,主机位数大于或等于 DAC芯片的连接
mov al,buf
mov dx,portd
out dx,al
译码AB
D0~ D7
CLK
DAC
Vout+
_
A
LS273
IOW
38
DAC0832单缓冲方式
WR1
CS
IOW
5V+5V
Rfb
Iout2
Iout1
WR2
XFER
DGND AGND
D0~ D7 DI0~ D17
Vcc
ILE
VREF
Vout+
_
A
译码
AB
39
2,主机位数小于 DAC芯片的连接
数字数据需要多次输出
接口电路也需要多个 ( 级 ) 锁存器保存多次输出的数据
并需要同时将完整的数字量提供给 DAC
转换器
CPU DAC8位 12位
40
两级锁存电路模拟输出
12位
DAC
第 2级 12位锁存控制第 1级低 8位锁存控制第 1级高 4位锁存控制
D0~ D7
4位锁存器
4位锁存器
8位锁存器
8位锁存器由同一个信号控制关键的一级锁存无需输出数据
41
简化的两级锁存电路模拟输出
12位
DAC
第 2级 12位锁存控制第 1级低 8位锁存控制
D0~ D7
4位锁存器
8位锁存器
8位锁存器由同一个信号控制关键的一级锁存需要输出高 4位数据
mov dx,port1
mov al,bl
out dx,al
mov dx,port2
mov al,bh
out dx,al
42
11.2.4 DAC芯片的应用
mov dx,portd
mov al,0
repeat,out dx,al
inc al
jmp repeat
43
输出正向锯齿波
2次数据输出的时间间隔
0
2LSB
1LSB
255LSB
254LSB
锯齿波周期
44
11.3 模 /数转换 ADC0809
模拟量数字量模拟 /数字转换器
ADC
45
11.3.1 A/D转换的基本原理
存在多种 A/D转换技术,各有特点,
分别应用于不同的场合
4种常用的转换技术
计数器式
逐次逼近式
双积分式
并行式
46
1,计数器式 以最低位为增减量单位的逐步计数法时钟复位数字输出比较器模拟输入计数器
D/A转换器 转换结束
47
2,逐次逼近式 从最高位开始的逐位试探法时钟复位数字输出转换结束比较器模拟输入寄存器
D/A转换器
48
3,双积分式 两个积分阶段实质是电压 /时间变换
IREF
Iin
Vin
VREF
积分器比较器
V/I
V/I
时钟启动计数计数器数字输出
T2T1
Vc 固定斜率时间可变固定时间斜率可变转换结束
49
4,并行式速度快成本高直接比较法编码电路
Vin
VREF
数字输出比较器
R
R
R
R
R
R
R/2
R/2
50
11.3.2 ADC0809芯片
具有 A/D转换的基本功能
CMOS工艺制作
8位逐次逼近式 ADC
转换时间为 100?s
包含扩展部件
多路开关
三态锁存缓冲器
ADC0809的内部结构图
ADC0809
地址锁存和译码 OE
通道选择开关
ADDA
ADDB
ADDC
1N0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
8位三态锁存缓冲器DAC
Vcc
比较器
CLOCK START
GND VREF(+) VREF(-)
ALE
逐次逼近寄存器 SAR
定时和控制
D0
D1
D2
D3
D4
D5
D6
D7
EOC
52
1,ADC0809的模拟输入
提供一个 8通道的多路开关和寻址逻辑
IN0~ IN7,8个模拟电压输入端
ADDA,ADDB,ADDC,3个地址输入线
ALE,地址锁存允许信号
ALE的上升沿用于锁存 3个地址输入的状态,然后由译码器从 8个模拟输入中选择一个模拟输入端进行 A/D转换
53
2,ADC0809的转换时序
D0~ D7
OE
EOC
START/ALE
ADDA/B/C
DATA
100?s
2?s+8T
(最大 )
200ns
(最小 )
转换启动信号转换结束信号
54
3,ADC0809的数字输出
ADC0809内部锁存转换后的数字量
具有三态数字量输出端 D0~ D7
配合输出允许信号 OE
o 当输出允许信号 OE为高电平有效时,将三态锁存缓冲器的数字量从 D0~ D7输出
55
4,ADC0809的转换公式
8
)(R E F)(R E F
)(R E Fin
2
VV
VV
N?

输入模拟电压输出数字量基准电压 正 极 基准电压 负 极
56
单极性转换示例
基准电压 VREF(+)= 5V,VREF(- )= 0V
输入模拟电压 Vin= 1.5V
N = ( 1.5- 0) ÷ ( 5- 0) × 256
= 76.8≈77= 4DH
8
)(R E F)(R E F
)(R E Fin 2
VV
VVN?


57
双极性转换示例
基准电压 VREF(+)=+ 5V,VREF(- )=- 5V
输入模拟电压 Vin=- 1.5V
N = ( - 1.5+ 5) ÷ ( 5+ 5) × 256
= 89.6≈90= 5AH
8
)(R E F)(R E F
)(R E Fin 2
VV
VVN?


58
11.3.3 ADC芯片与主机的连接
ADC芯片相当于,输入设备,,需要接口电路提供数据缓冲器
主机需要控制转换的启动
主机还需要及时获知转换是否结束,并进行数据输入等处理
59
1,数据输出线的连接
与主机的连接可分成两种方式
直接相连,用于输出带有三态锁存器的
ADC芯片
通过三态锁存器相连,适用于不带三态锁存器的 ADC芯片,也适用带有三态锁存缓冲器的芯片
ADC芯片的数字输出位数大于系统数据总线位数,需把数据分多次读取
60
2,A/D转换的启动 ( 1)
启动信号一般有两种形式
脉冲信号启动转换
电平信号启动转换转换启动 转换结束
61
2,A/D转换的启动 ( 2)
主机产生启动信号有两种方法
编程启动
软件上,执行一个输出指令
硬件上,利用输出指令产生 ADC启动脉冲,或产生一个启动有效电平
定时启动
启动信号来自定时器输出
62
3,转换结束信号的处理
不同的处理方式对应程序设计方法不同
① 查询方式 —— 把结束信号作为状态信号
② 中断方式 —— 把结束信号作为中断请求信号
③ 延时方式 —— 不使用转换结束信号
④ DMA方式 —— 把结束信号作为 DMA请求信号
63
11.3.4 ADC芯片的应用
例 12.2 编程启动,
转换结束中断处理
例 12.3 编程启动,
转换结束查询处理中断方式
D0~ D7
220h
IRQ2
A0~ A9 译码
Vcc
D0~ D7
EOC
ADDA
ADDB
ADDC
ALE
模拟输入
( 0~ 5V)
500KHzCLOCK
VREF(+)
+5V
IN0
OE
START
GND VREF(-)
IOR
IOW
主程序;数据段
adtempdb 0 ;给定一个临时变量;代码段
…… ;设置中断向量等工作
sti ;开中断
mov dx,220h
out dx,al ;启动 A/D转换
…… ;其他工作例 12.2
中断服务程序
adint proc
sti ;开中断
pushax ;保护寄存器
pushdx
pushds
mov ax,@data ;设置数据段 DS
mov ds,ax
mov dx,220h
inal,dx ;读 A/D转换的数字量
mov adtemp,al;送入缓冲区例 12.2
中断服务程序
mov al,20h ;发送 EOI命令
out 20h,al
popds ;恢复寄存器
popdx
popax
iret ;中断返回
adint endp
例 12.2
查询方式
8通道模拟输入
( 0~ 5V)
Vcc
D7
A3~ A9
D0~ D7 D0~ D7
OE
EOC
A0
A1
A2
ADDA
ADDB
ADDC
译码
500KHzCLOCK
START
GND
VREF(+)
VREF(-)
ALE
+5V
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
220h~ 227h
238h~ 23fh
IOR
IOW
启动转换;数据段
counter equ 8
buf dbcounter dup(0) ;数据缓冲区;代码段
mov bx,offset buf
mov cx,counter
mov dx,220h ;从 IN0开始转换
start1,out dx,al ;启动 A/D转换
pushdx
例 12.3
查询读取
mov dx,238h ;查询是否转换结束
start2,inal,dx ;读入状态信息
test al,80h ;D7= 1,转换结束否?
jz start2 ;没有结束,继续查询
popdx ;转换结束
inal,dx ;读取数据
mov [bx],al ;存入缓冲区
incbx
incdx
loop start1 ;转向下一个模拟通道例 12.3
第 11章 总结
1,了解模拟输入输出系统及各部件功能
2,理解 D/A转换和 A/D转换原理
3,掌握 DAC0832和 ADC0809
4,理解 DAC和 ADC芯片与主机连接问题
5,掌握 ADC芯片的应用