第 12 章 模数( a/d )和数模 (d/a) 转换
DESCRIPTION
第 12 章 模数( A/D )和数模 (D/A) 转换. 12.1 概述 12.2D/A 转换器 12.3A/D 转换器. 12.1 概 述. 控 制 对 象. 计 算 机. 多 路 开 关 MUX. 采 样 保 持 器 S/H. A/D 转 换 器. I/O 接 口. 传感器. 放大滤波. 传感器. 放大滤波. 执 行 部 件. 多 路 开 关 MUX. D/A 转 换 器. I/O 接 口. 包括 A/D 和 D/A 的实时控制系统. - PowerPoint PPT PresentationTRANSCRIPT
12.1 概述12.2 D/A 转换器12.3 A/D 转换器
第 12 章 模数( A/D )和数模 (D/A)转换
控
制
对
象
多路开关
MUX
采样保持器
S/H
I/O接
口
A/D转换器
传感器
传感器 放大滤波
放大滤波计
算
机执行部件
多路开关
MUX
I/O接
口
D/A转换器
包括 A/D 和 D/A 的实时控制系统
一、实时过程控制控制系统的结构及组成
12.1 概 述
1 . 传感器:把控制对象的各种参数的物理量用传感器测量 出来,并转换成电信号。2 . 放大器:把传感器输出的信号 ( 一般为 mV 或 V) 放大到 A/D 转换所需的量程范围。
3 . 低通滤波器:抑制干扰,提高信噪比。
4 . 多路开关:对传感器输出的多路信号进行切换,用一路装置进行测量和控制。例: 8 选 1 双向多路开关 CD4051 ,教材: P404
ADC0809 芯片带有多路转换开关。
5. 采样保持电路:对模拟信号进行采样并保持以保证 A/D 转 换的正确性。 教材: P409 ,快变输入信号需要使用采样保持器。
二、采样、量化和编码 处理后得到的几伏量级的模拟信号必须经过采样、量化和编码的过程才能成为数字量。
1 、采样和量化
采样:按相等的时间间隔 t 从电压信号上截取一个个离散的电压瞬时值,即时间上的离散化。
量化:将采样的实际值按幅度大小分层的过程。量化单位越小,一定范围内的电压值被分的层就越多,精度就越高。
例: 8 位 A/D 转换器,分层数 =28=256 ,设:电压量程: 0~5V
量化单位 : q= 电压量程范围 / 2n=5v/2560.019v=19mv
LSB=1 时对应的电压值 n 可表示 A/D 转换分辨率
2 、编码编码就是考虑用一种代码将量化得到的数字量表示出来。编码形式:二进制码、 BCD 码、 ASCII 码等。
例:自然二进制码 设满量程为 1 ,输入模拟量与满量程相比总小于 1 ,故用二进制小数形式表示数字量。
小数 : N=d12-1+ d22-2 +…+dn2-n 教材: P407 表 12-1
MSB, 权最大 LSB, 量化单位
12.2 D/A 转换器 一、数 / 模转换器的原理 ( 组
成)
44
33
22
11
R
R4
R3
R2
R1
2d2d2d2dR
2V8R
Vd
4R
Vd
2R
Vd
R
Vd
44332211O IdIdIdIdI
。I1
I2 I3
If
d1 d2 d3 d4
R 2R 4R 8R
S1 S2 S4S3
Io Σ
-
+Vo
VR =5VI4
Rf = R/2
若 d1d2d3d4=1000 , Rf=R/2
VR
RIoVo
5.2216
10
8
10
4
10
2
11
R
2VR
f
权电阻网络 DAC
虚地点
数模转换器主要性能指标1 、输入数字量 大多为 TTL 电平,接受自然二进制编码。2 、输出模拟量 多数是电流输出型,例: DAC0832 为差动电流输出( IOUT
1+IOUT2= 常数),输出要设计 I/V 转换电路。
3 、分辨率 指输入数据发生 1LSB 变化时所对应的输出模拟量的变化。与数字量位数 n 的关系:分辨率 = 满度值 /2n
* 分辨率可用位数 n 表示。4 、转换时间 指从数字量输入到建立稳定的输出电流的时间。有 ns 和 us 级的转换器。
二、八位 D/A 转换器 DAC0832
131415164567
8
12
11
9
3
20
10
IE
DI7DI6DI5DI4DI3DI2DI1DI0
ILE
CSWR1WR2XFER
19
1
18
2
17
VREF
IOUT2
IOUT1
R1b
R1b
Vcc
DGND
8 位D/A
转换器
8 位DAC
寄存器
8位输入寄存器
DAC0832 的内部结构图
AGNDIE
主要技术指标:
TTL 电平输入
分辨率: 8 位
转换时间: 1 S
满量程误差: ±1LSB
参考电压: ±10V
单电源: +5V~+15V
1. 芯片介绍
2. 芯片的输出电路
单极性输出方式
R数字量输入
VREF
RFB
IOUT2
IOUT1
-+
AGND
VO
DAC
0830
0831
0832
DB
+ 5 V
3. DAC0832 与 CPU 接口方式
DAC0832
WR2WR1CSXFER
Vcc + 5V
D7-D0
-+A
IOUT2IOUT1
AGND
DGNDVREFILE+ 5V
地址总线
DAC0832 与 8 位数据总线微机的连接图
地址译码
WRM/IO
②单缓冲方式:
ILE 接高电平;
CS 、 WR1 、 WR2 、XFER 接控制输出端(连接方式有多种形式);
当对 DAC0832 进行写操作时(执行 OUT 指令),数字量直接被转换成模拟量。
①直通方式: ILE 接高电平; CS 、 WR1 、 WR2 、 XFER直接接地。 D/A 转换器的输出随着总线数据的变化而变化。
Vo
单缓冲方式的应用
例 1 设 DAC 的口地址为 80H ,
要求输出 0~5V 的锯齿波
START : MOV AL , 0FFH
AGAIN : INC AL
OUT 80H , AL
CALL DELAY
JMP AGAIN阶梯的宽度由延时时间决定
例 2 要求 DAC 输出一三角波,波形下限电压为 0.5V ,上限电压为 2.5V 。
下限电压对应的数字量为:0.5*256/5=26=1AH
上限电压对应的数字量为:2.5*256/5=128=80H
BEGIN : MOV AL , 1AHUP : OUT 80H , AL INC AL CMP AL , 81H JNZ UP DEC ALDOWN : OUT 80H , AL DEC AL CMP AL , 19H JNZ DOWN JMP BEGIN
③ 双缓冲方式:
第一种应用情况:在前一个数据转换的同时, CPU将下一个数据先输入至输入寄存器,然后再在某个时刻启动 D/A 转换。
Vo
地址总线
MOV DX , 320H
MOV AL , DATA
OUT DX , AL
INC DX
OUT DX , AL
地址译码
320H
321H
DAC0832
Vcc + 5V
D7-D0
-+A
IOUT2
IOUT1
AGND
DGNDVREF
ILE+ 5V
DAC0832 与 8 位数据总线微机的连接图
WR1WR2IOWR
CS
XFER
-+CS XFER WR2
ILE WR1
DAC1
-+cs XFER WR2
ILE WR1
DAC2
-+CS XFER WR2
ILE WR1
DAC3
译码器AB
CS1
CS2
CS3
XFER
IO/M
WR
VO1
VO2
VO3
第二种应用情况:在多路 DAC 系统中,需要同步 D/A转换时,采用双缓冲方式。
在不同的时刻将要转换的数据分别打入各 DAC 的输入寄存器,然后由一个转换命令同时启动,各个 DAC 转换。
12.3 模拟 / 数字( A/D )转换一、逐次逼近式模 / 数( A/D )转换器原理 实现 A/D 转换的方法有多种,而逐次逼近式 A/D转换具有速度快,分辨率高等优点获得了广泛的应用。这种 A/D 转换器的比较过程与天平的称重的过程相似。若一台天平具有 32 克、 16 克、 8 克、 4 克、 2 克和 1 克等6 种砝码,需要称量的物体重量为 27.4 克。称量从最重的砝码试起,过程如下表所示。次序 加砝码 天平指示 操作 记录
1 32 克 超重 去码 D5=0
2 16 克 欠重 留码 D4=1
3 8 克 欠重 留码 D3=1
4 4 克 超重 去码 D2=0
5 2 克 欠重 留码 D1=1
6 1 克 平衡 留码 D0=1
M=D5*32+D4*16+D3*8+D2*4+D1*2+D0*1=27 (克)
DAC
控制逻辑SAR
缓冲器
+
-
VR
ViCLK
输出数据
逐次逼近式 A/D 转换器原理框图
次序 试探码 D/A 输出 去留码 本次结果
1 1000 2.5V<Vi 留 1000
2 1100 3.75V>Vi 去 1000
3 1010 3.125V>Vi 去 1000
4 1001 2.8125V<Vi 留 1001
二、逐次逼近式 A/D 转换器基本组成控制逻辑 (SAR) :移位寄存器、数据寄存器、时序电路及去留码逻辑电路;DAC: 产生电子砝码;比较器:对输入电压与电子砝码进行比较,并由控制逻辑决定该砝码的去留。
设转换器的位数 n=4 ,相应的电子砝码分别为 2.5V 、1.25V 、 0.625V 、0.3125V 。 Vi=3V,则转换过程及结果如表所示。
逐次逼近式 A/D 转换所需的时间:
一个 8 位转换器完成一次转换大致需要 88=64 个时钟周期
例: ADC0809是 8 位逐次逼近式 A/D 转换器,典型工作时钟频率为 640kHz. 完成一次转换的时间大约为:
tc=64 ( 1/640 103秒) =100us
若为多通道采集,如 8通道,转换时间则是单通道的 8倍。
三、典型模 / 数转换器 ADC0809
1. 芯片简介
8 路模拟开关
控制与时序
SAR
树状开关
电阻网络
三态输出锁存缓冲器地址
锁存与
译码
IN7
IN0
ADDAADDBADDC
ALE
Vcc GND VREF+ VREF- OE
D7
D0
EOC
CLKSTART
ADC0809功能方框图
主要功能
分辨率: 8 位
转换误差:
±1/2LSB~±1LSB
转换时间: 100 µS
时钟频率:
640KHZ
测量路数: 8 路
输出:三态缓冲
单一 5V供电,对应输入模拟电压范围 0~5V
2. ADC0809工作时序START
ALE
通道地址
EOC
OE
DATA
64CLK
①选择当前转换的通道,即将通道编码送地址锁存器;②通过执行 OUT 指令在 START , ALE 上产生一个正脉冲,锁存通道编码并启动 A/D ;
③A/D 转换开始后, EOC 变低,经过 64 个时钟周期后,转换结束, EOC 变高;④转换结束后,通过执行 IN 指令设法在 OE脚上产生一个正脉冲,打开输出缓冲器的三态门读入转换数据。
⑴ 直接连接
MOV AL , 07H
OUT 84H , AL
CALL DELAY120
IN AL , 84H
若采用中断方式,可用 ADC0809 的 EOC 输出端作为 CPU 的中断申请信号,在中断服务程序中读入转换后的数据。
ADC0809 具有三态输出缓冲器,可以与 CPU直接连接。
若地址译码器的输出 Y1 的地址为 84H~87H ,则采用无条件传送方式从输入通道 IN7读入一个模拟量的程序为:
译码
8 分频
OE
ALESTARTADDCADDB
ADDA
D7~D0
EOC
CLOCK
A7~A2
D7~D0
CLK
Nc
IOR
IOW
Y1
VccVREF+
VREF-
GND
+5V
ADC0809 直接与微处理器的连接
ADC
0809
IN7
IN0
3. ADC0809 与微处理器的连接
⑵ 通过并行接口芯片同 CPU 连接
ADC 0809 通过 8255A 的接口原理图
译码Y1
Y0
IOWR
IORD
D7 ~ D0
A0
A1
A7 ~ A2
CLK
8088总线
8255A
PB4
PB2PB1PB0
PA
PC7
WR
RD
DB
A0
A1
CS
问题:用一片 8255A 并行接口芯片控制 ADC0809 的转换过程;分析: 8255A 有三个 8 位的并行口,可用 PB 口输出 0809 的通道选择编码和控制 ADC 的启动, PC 口输入 ADC 的状态。 PA 口作为他用,
实现:首先完成 CPU 与 8255 的连接,然后根据分析完成 ADC 与 8255 的连接
+5VCLOCK
ALESTART
ADDCADDB
ADDA
EOC
OE
Vcc
VREF+
VREF-
GND
ADC
0809
IN7
IN0
D7~D0
8 分频
Y0 地址为 80H~83HY1 地址为 84H~87H
例:对 ADC0809 的 IN0 至 IN7巡回进行采样一次,并将采样的数据存放在以 DATA 开始的内存单元中。
第一步:程序初始化
8255 控制字: 10011000B
MOV AL , 98H ; 8255 方式 0 , PA 口输入,OUT 83H , AL ; PB 口输出, PC 口高四位输入MOV SI , OFFSET DATA ;置内存首址MOV AX , 0H ;开关初始编码MOV CX , 8
第二步:输出通道号
启动 ADC
AGA : MOV AL , AH ;输出通道编码 OUT 81H , AL ADD AL , 10H ;启动 ADC OUT 81H , AL SUB AL , 10H OUT 81H , AL CALL DELAY ; 延时
第三步:判 ADC 转换结束否?结束则读入数据,存入内存。否则再判
LOP : IN AL , 82H ;检查 EOC TEST AL , 80H JZ LOP ; EOC=0 ,继续查询 IN AL , 84H ; EOC=1 ,读入数据 MOV [SI] , AL ;存入内存
第四步:修改循环变量
判测量完否?未完继续
INC SI ;修改指针INC AH ;修改通道编码LOOP AGA ;未完继续
四、 12 位 A/D 转换器 ADC574
ADC574 是 12 位逐次逼近式 A/D 转换器,转换时间为 25us , 28引脚。
ADC 574
1 、 ADC574引脚功能 分辨率为 12 位。 模拟量输入方式: 2 种:单极性、
双极性 模拟输入范围:单极性为 0~5V或
0~10V ;双极性为 -5V~5V或 10V
-10V ~10V 。 +5V 、 +15V 、 -15V供电。 具有锁存三态输出,输出与 TTL
兼容。 片内有电压基准和时钟电路。 必须进行零点和满度调整。
28
27
26
25
24
23
22
21
20
19
1
2
3
4
5
6
7
8
9
10
STS
DB11
DB10
DB9DB8DB7
DB6
DB5
DB4
DB3
+5V
12/8
CS
A0
R/C
CE
+15V
REFOUT
AGND
REFIN
11
12
13
14
18
17
16
15
DB2
DB1
DB0
DGND
-15V
BIP
10VIN
20VIN
ADC
574A
CS ( - )、 CE ( + ): CS ( - )片选信号 Chip Select ,低电平有效; CE ( + )片使能信号 Chip Enable ,高电平有效。
R/C ( - ):读 / 启动 AD 转换信号。高电平时读 AD 转换结果;低电平时启动 AD 转换。
12/8 ( - ):输出数据长度控制。高电平时输出 12 位,低时输出 8 位。 A0:当 R/C 为低时, A0若为高,启动 8 位 AD 转换; A0若为低,
启动 12 位 AD 转换。当 R/C 为高时, A0若为高,输出低 4 位数据; A0若为低,输出高 8 位数据。
STS : STS 为转换结束信号脉冲输出端口,低表示转换结束,高表示正在转换。
REF IN :基准输入线; REF OUT :基准输出线; BIP OFF :单极性补偿。
DB0~DB11 : 12 位数字量输出端口。
10Vin , 20Vin :模拟量输入端口。
表 11.5 AD574 的控制状态表:
AD574 的 8 位输出数据格式
图 11.22 ADC574A 单极性和双极性输入接法
单极性模拟输入方式接线的调整 单极性模入方式 ( 图 2-9) 中, 10VIN 输入
电压范围为 0V~+ 10V , 1LSB 对应的模拟电压为 2.44mV; 2 0VIN 输入电压范围为 0V~20V , 1LSB 对应的模拟电压为 4.88mV 。 R1
用于零点调整, R2 用于满刻度校准。方法为: 如输入电压接 10VIN端,调整 R1 ,使输入
模拟电压为 1.22mV (即 1/ 2LSB )时,输出数字量从 0000 0000 0000 变到 0000 0000 0001;
调整 R2 ,使得输入电压为 9.9963V 时,数字量从 1111 1111 1110 变到 1111 1111 1111 。
双极性模拟输入方式的调整 对于双极性模入方式,把 REF IN , REF O
UT ,和 BIP OFF三个引脚的接线按图 2-10重新安排,双极性模入方式零点与满刻度校准方法与单极性方式近似。需要注意的是,输入模拟量与输出数字量之间的对应关系为:
10VIN端输入时:- 5V→0V→十 5V 对应 000H→800H→FFFH
20VIN端输入时:一 10V→0V→十 10V 对应 000H →800H→FFFH
图 AD574 双极性模拟输入接线方式
图 11.23 AD574A 启动转换和读数据时序
电路中译码器对 A9~ A1进行译码, Y0=210H 、 Y1=212H ~ 213H ,因此, ADC574A 的 CS=211H ~ 213H 分另用于高位和低位数据的读取
D7~D0
译码器
PC 总线
AEN
A9~A0
IOW
IOR
ADC574ADB11~DB4
DB3~DB0
STS
CS
A0
R/C
CE
12/8
Vcc
Vee
10Vin
20Vin
REFin
REFout
BIPOFF
DC
AC
Vin
+15V
-15V
图 AD574 与PC系统总线相连
D3~D0ADCADC574574
与与
PCPC系统系统总线总线连接连接
A/D574 转换器接口电路设计
----- 查询方式一、 12位 A/D转换器接口设计1 、要求 进行 12 位转换,转换结果分两次输出,以左对齐方式存放在首址为 400H 的内存区。共采集 64个数据。 ADC 与 CPU 之间采用查询方式交换数据,采用 AD574A 作为 A/D 转换器。2、分析 AD574A 是具有三态输出锁存器的 A/D 转换器,它可以作 12位转换,也可作 8位转换。3、设计 ( 1)硬件连接
扩展槽
D0~D7
PC
AEN
AO~9
IOW
IOR
DB4~11
DB0~3
STS
AD574ACS-
A0
R/C
CE
12/8
Vcc
Vee
10VIN
20VIN
REFIN
REFOUT
BIPOFF
DG
AG
D7
74LS125
译
码A0
&
&Y1
Y0
Y2
+15V
-15V
图 AD574 与 CPU 连接原理图
AD574 内部有三态输出锁存器,故数据输出线可直接与系统数据线相连,将AD574A 的 12条输出数据线的高 8位接到系统总线的D0~ D7,而把低 4位接到数据总线的高 4位,低 4位补0,以实现左对齐。
转换结束状态信号 STS,通过三态门74LS125接到数据线D7上。要求分两次传送,故将12/8接数字地。CE接 VCC, 允许工作。
图中 I/O 端口地址译码有三个端口地址: Y0=310,为状态口; Y1=311H,为数据口(低 4位); Y2=312 上,为转换启动控制口/数据口(高 8位)。 例如:转换启动端口设置为 312H,其中包含 A0=0,以实现12位转换。读数据端口设置了两个,一个是312H,包含 A0=0,读高字节;一个是311H,包含 A0=1 ,读低字节。
(2)软件编程 根据题目的要求和信号的时序关系,其数据采集的程序段如下:
MOV CX, 40H ;采集次数 MOV SI, 400H ;存放数据内存首址START: MOV DX, 312H ; 12位转换( A0=0)
MOV AL, 0H ;写入的数据可以取任意值 OUT DX,AL ;转换启动( CS,及 R/C均置 0,
CE置 1) MOV DX, 310H ;读状态, Y0=0,打开三态门 L: IN AL, DX AND AL, 80H ;检查 D7=STS=0? JNZ L ;不为 0,转换已结束,则等待 MOV DX, 311H ;为 0,转换已结束,先读低 4位
( A0=1)
IN AL , DX AND AL , 0F0H ;屏蔽低 4位 MOV [SI] , AL ;送内存 INC SI ;内存地址加 1 MOV DX, 312H ;再读高 8位( A0=0) IN AL , DX
MOV [SI], AL ;送内存 INC SI ;内存地址 +1 DEC CX ;采集次数减 1 JNZ START ;未完,继续 MOV AX, 4C00H ;已完,程序退出 INT 21H
表 2.2 AD574 系列产品主要性能比较
C: Commercial I: Industry M: Military
作业
P408
3 、 4 、 5