有关 D/A,A/D的基本概念
DAC及其接口
ADC及其接口
A/D,D/A应用举例本章内容
了解微机控制系统的一般组成
了解 D/A,A/D的基本原理
了解 DAC,ADC的主要性能指标
掌握 DAC,ADC与 CPU的接口及其应用学习目的
10.1 模拟量接口概述数 /模 (D/A)和模 /数 (A/D )转换技术 主要用于计算机实时控制和自动测量系统中 。 在工业控制和参数测量时,经常会遇到如温度,压力,流量,
速度等连续变化的物理量 (通称模拟量 )。 用计算机处理这些模拟量必须先将其转换为电信号,然后再经 A/D转换器将其转换为数字量 。 对于大多数的被控对象,计算机加工处理后输出的数字形式的控制信号还应经 D/A转换变成模拟量,才能推动执行机构工作 。 一个包含 A/D和 D/A的计算机实时控制系统框图如下图所示 。
控制对象传感器执行对象功放采样保持器
A/D
D/A
微型机系统模拟量放大器离散量 数字量模拟量 数字量
-
+
计算机控制系统框图一,D/A转换的组成
10.2 D/A转换及其接口
DAC组成框图基准电压
D/A电阻网络模拟电子开关
……
输出模拟量 A
……
输入数字量 D
A = K · D
三个主要组成部分:模拟电子开关,
产生权电流 (压 )的电阻网络,基准电压 。 其中电阻网络可分为权电阻网络和 R-2RT型电阻网络,后者使用更加普遍 。
二,DAC转换器的主要参数
1,分辨率
D/A 转换器 输出模拟量的最小变化量。
例如 8位 D/A,转换后电压满度为 5V,
则其能分辨的最小电压 =5v/28?20mv
2,转换时间数字量输入到转换后输出达到稳定值所需的时间 。 转换时间决定 DAC的最高工作频率 。
3,精度
D/A 转换器实际输出与理论值的误差。
4,线性度实际转换关系曲线上的模拟值与理想直线的偏差 。
理想输出模拟输出数字输入实际输出偏差三,DAC0832 及其与 CPU的 接口
DAC0832 是美国数据公司的 8位双缓冲 D/A转换器 。
1,DAC0832 的内部结构
DAC0832的方框图
12
1
2
18
17
19
7
6
5
4
16
15
14
13
3
9
8
10
11
20
V c c
V
R E F
R f b
I o u t 1
I o u t 2
A G N D
DGND
D A C 0 8 3 2
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
I L E
CS
1
WR
2
WR
XFER
输入寄存器
D A C
寄存器
D / A
寄存器
L E 1 L E 2
输入寄存器寄存器寄存器
2,DAC0832 的引脚定义
DI0~DI7,数字量输入。
ILE,输入锁存允许。
片选。:CS
1:WR 1 写信号控制第一级缓冲器的锁存
2:WR 2 写信号传递控制:X F ER 2
控制第二级缓冲器的锁存
VREF,基准电压。
AGND,模拟信号地。
VCC,工作电源。
DGND,数字信号地。
Rfb,片内反馈电阻。
IOUT1:
IOUT2,电流输出端,IOUT1+IOUT2=C
3,DAC0832 的工作方式
(1) 直通方式接高电平。接地,、、,I L ECSX F ERWRWR 21
(2)单缓冲方式用于一路模拟量输出或多路模拟量非同步输出的场合 。
指令 OUT PORT,AL 即可启动 D/A。
DAC0832 单缓冲方式接口原理
8086
A 7
~
A 0 ILE
D7
~
D0
…
…
D 7
~
D 0
译码器 + E DAC0832
M / IO
WR
XFER
WR1
WR2
CS
(3) 双缓冲方式用于多个 DAC0832 同时输出的场合。
PC机与两片 DAC0832的接口
DAC0832
ILE
8086
CPU DAC0832
ILE
CS
XFER
CS
XFER
WR1WR
M / IO
+E
D ~ D07
地址译码
WR11
WR2
D ~ D07
-
+
-
+
WR2
MOV BX,DATA ; BX指向数据缓冲区
MOV DX,280H ; 第 1片 0832输入寄存器地址为 280H
MOV AL,[BX]
OUT DX,AL ; 数据到第 1片 0832的输入寄存器
INC BX
INC DX ; DX指向第 2片 0832输入寄存器 (281H)
MOV AL,[BX]
OUT DX,AL ; 数据到第 2片 0832的输入寄存器
INC DX
OUT DX,AL ; 同时打开两片 0832的 DAC寄存器,
数据同时开始转换四、利用 DAC0832的函数波形发生器
1,硬件连接用 DAC0832作为波形发生器
u0
CPU总线
8255
0832
PA7
ILE
~
+E
CS
1WR
XFER
PA0~
D0
D7
WR2
1
XFER
2,产生三角波的程序段
MOV DX,303H ; 303H为 8255A控制口地址
MOV AL,10000000B ;
OUT DX,AL ; 8255A初始化
MOV DX,300H ; 300H为 8255A A口地址
MOV AL,00H
L1,OUT DX,AL
INC AL
JNZ L1; L1对应三角波的上升段
MOV AL,0FFH
L2,OUT DX,AL
DEC AL
JNZ L2; L2对应三角波的下降段
JMP L1
3,思考如何产生方波锯齿波梯形波
10.3 A/D转换及其接口一,A/D转换的基本原理实现 A/D转换的办法很多,常用的有逐次逼近法,双积分法和电压频率转换法等。
A
(U,I)
D0
DnA/D?
1,逐次逼近型 A/D
逐次逼近式 A/D转换原理图
V i
V s
8 位
D/ A
转换器逐次逼近寄存器缓冲寄存器
C L K
转换结束启动信号按制逻辑
D
7
D 0
V
C
位基本过程,① 预测最高位 D7,置预测值为 1000000B
② 比较待转换模拟量 Vin和预测值对应的模拟量 V1
若 VIN > V1,保留 D7 = 1;
VIN< V1,置 D7 = 0;
③ 同样方法,预值 D6,D5 … D 0。
2,双积分型 A/D
双积分 A./D转换
V
i
S
V
R E F
时钟 控制逻辑 计数器数字量输 出比较器
o
图
11
-
13
双积分
A / D
转换启动
C
时钟 控制逻辑 计数器数字量输 出比较器
V
时钟 控制逻辑 计数器数字量输 出比较器图 - 双积分 转换启动
+
+
时钟 控制逻辑 计数器数字量输 出比较器图 - 双积分 转换启动时钟 控制逻辑 计数器数字量输 出比较器时钟 控制逻辑 计数器数字量输 出积分器比较器图 - 双积分 转换启动
–
–
时钟 控制逻辑 计数器数字量输 出比较器图 - 双积分 转换启动时钟 控制逻辑 计数器数字量输 出比较器时钟 控制逻辑 计数器数字量输 出比较器图 - 双积分 转换启动时钟 控制逻辑 计数器数字量输 出比较器图 - 双积分 转换启动时钟 控制逻辑 计数器数字量输 出比较器时钟 控制逻辑 计数器数字量输 出积分器比较器图 - 双积分 转换启动双积分波形
Vo
Vo2
Vo1
0
T1 T21
T22
t
基本过程,(1)对 Vi进行固定时间的积分 (C充电 );
(2) 电子开关转换到对 VREF进行反向积分,直到积分输出为 0。
(VREF与 Vi极性相反 )
(3) T21,T22? VX
用标准的钟脉冲测量 T21,T22,即可得到对应的数字量。
3,V/F型 A/D
(a) 原理框图
Vi VFC f
数据输出清零信号时钟控制
T门控门
f = k·Vi (b) 波形
VFC
输出门控计数器输入
T
二,ADC转换器的主要参数
1,分辨率输出对输入信号变化的灵敏度,用数字量的位数表示。
例,10位 A/D转换满度为 5V的电压,能分辨的最小电压 5V/210? 5mv。
2,精度转换结果相对于实际值的准确度。
3,转换时间启动转换到得到稳定输出所需的时间。
4,量程能转换的电压范围。
三,ADC0809及其与 CPU的接口
1,ADC0809的主要技术指标分辨率,8位时钟频率,?640KHZ
转换时间,?100?s
不可调误差,?1LSB
电源,5V
模拟量输入,8路 0~ 5V
2,ADC0809的内部结构
ADC0809结构图
V
R E R ( + )
V
R E R ( - )
GNDV c c
A D D A
A D D B
A D D C
A L E
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
OE
E O C
S T A R T C L O C K
D A C
地址锁存和译码通道选择开关定时和控制逐次逼近寄存器 S A R
8 位三态锁存缓冲器
IN
7
IN
0
IN
1
地址锁存和译码通道选择开关定时和控制逐次逼近寄存器位三态锁存缓冲器
3,ADC0809的引脚信号符 号 引脚号 功能
IN0- IN7 26- 28,1- 5 为 8个通道模拟量输入线
ADD A
ADD B
ADD C 25- 23
多路开关地址选择线。 A为最低位,C为最高位,通常分别接在地址线的低 3位
2–8- 2–1 17,1,15,818- 21 8位数字量输出结果
ALE 22 地址锁存有效输入线。该信号上升沿把 ADDA,ADDB、ADDC三选择线的状态锁存入多路开关地址寄存器中
START 6 启动锁存有效输入线。该号上升沿清除 ADC的内部寄存器而在下降沿启动内部控制逻辑,开始 A/D转换工作
EOC 7 转换完成输出线,当 EOC为 1时表示转换已完成
CLOCK 10 转换定时时钟输入线。其频率不能高于 640kHZ,当频率为 640kH
Z时,转换速度约 100?s
OUTPUTENABLE 9 允许输入线。在 OE为,1”时,三态输出锁存器脱离三态,把数据送往总线
12,16 参考电压输入线)(
REF)(REF V、V
VCC 11 接 +5V
GND 13 接地
4,ADC0809的工作时序图 11-19是 ADC0809的工作时序图,对指定通道采集一个数据的过程如下:
数据
64 C L K
S T A R T
A L E
通道地址
E O C
OE
D
7
- D
0
图 11 - 17 A D C 0 8 0 9 的工作时序
--
图 -
ADC0809的工作时序
5,ADC 0809 与 CPU 的接口
A0
DB7
WR
A3~
A2
M/IO
A1A
2
D0~
D2
8086
地址译码
ADC 0809
OE
DB0~
EOC
START
ALE
ADDA
ADDB
ADDC
CS1
CS2
RD
ADC0809与 CPU的接口设 CS1口地址为 00H~ 07H,对应 8路模入通道,用于启动 A/D转换和读取结果。
设 CS2口地址为 08H~ 0FH,对应 8路模入通道,用于 EOC状态信号读取。
(1) 程序查询法
MOV DX,01H
OUT DX,AL; 启动 IN1转换
TEST0,MOV DX,09H
IN AL,DX; 读取 EOC
AND AL,01H;
JZ TEST0; EOC= 0,等待
MOV DX,01H
IN AL,DX; 读取结果
…
(2) 中断方法将 EOC信号连接到 CPU的 INTR线上,当转换结束,EOC变高,向 CPU
提出中断请求。在中断服务程序中,
CPU读取转换结果。
主程序中:
MOV DX,01H
OUT DX,AL;启动 A/D
STI
中断服务程序:
MOV DX,01H
IN AL,DX;读取转换结果
…
…
…
…
10.4 A/D,D/A应用举例设计一个数据采集系统,使用 A/D转换器输入通道 0采集数据,将结果连续存放到从 2000H开始的 8个 RAM单元中,然后再经
D/A转换器将采集到的数据按一定的速率输出为对应的电压 。
1,接口电路原理及说明数据采集电路的 A/D与 D/A接口电路图输入信号处理
CLK START
ALE
OE
EOC
IN0
ADDA
ADDB
ADDC
输入输出输出信号处理
ADC0809
1
1 >
>
INTR
IOR
CS1(90H~ 97H)
IOW
CLK
500KHZ
IOUT1
IOUT2
DAC0832
IOW
CS2(80H)
WR1
WR2
CS
XFER
D0~ D7 数据线接口电路如图所示,设 A/D采用 ADC0809,
输入通道 0对应地址为 90H,EOC信号接到
CPU的中断输入; D/A采用 DAC0832,其片选地址为 80H。 当启动 A/D后,根据 EOC的中断信号,将输入值读入,存放在 2000H开始的
RAM中,共 8个字节,一旦存满后,就将数据读出,送到 D/A转换器输出 。
2,源程序及说明程序初始化时,将寄存器 BX的值设为
2000H,计数值 8存放在寄存器 CL中,并开放中断 。 然后启动 A/D转换,由中断服务程序自动完成上述功能 。
初始化程序如下:
MOV BX,2000H
MOV CH,0
MOV CL,8
STI ;开中断
OUT 90H,AL ;启动 A/D转换
JMP S ;等待中断产生中断服务程序如下:
PUSH AX
IN AL,90H ;从 A/D读数
MOV [BX],AL ;存入指定的单元
INC BX
DEC CL
JCXZ DA-OUT ;已接收到指定长度的数据,;转 D/A输出
EXP-END,POP AX ;否则,继续接收
IRET
DA-OUT,CLI ;关中断
MOV BX,2000H
MOV CX,0008H
DA-LOOP,MOV AL,[BX]
INC BX
OUT 80H,AL ;送到 D/A
DEC CX
JCXZ EXP-END ;直到指定长度的数据送完
JMP DA-LOOP ; 否则,继续送数