第 12 章 模数( a/d )和数模 (d/a) 转换

38
12.1 概概 12.2 D/A 概概概 12.3 A/D 概概概 概 12 概 概概A/D 概概概 (D/A) 概概

Upload: jemma

Post on 28-Jan-2016

102 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: 第 12 章  模数( A/D )和数模 (D/A) 转换

12.1 概述12.2 D/A 转换器12.3 A/D 转换器

第 12 章 模数( A/D )和数模 (D/A)转换

Page 2: 第 12 章  模数( A/D )和数模 (D/A) 转换

多路开关

MUX

采样保持器

S/H

I/O接

A/D转换器

传感器

传感器 放大滤波

放大滤波计

机执行部件

多路开关

MUX

I/O接

D/A转换器

包括 A/D 和 D/A 的实时控制系统

一、实时过程控制控制系统的结构及组成

12.1 概 述

Page 3: 第 12 章  模数( A/D )和数模 (D/A) 转换

1 . 传感器:把控制对象的各种参数的物理量用传感器测量      出来,并转换成电信号。2 . 放大器:把传感器输出的信号 ( 一般为 mV 或 V) 放大到 A/D 转换所需的量程范围。

3 . 低通滤波器:抑制干扰,提高信噪比。

4 . 多路开关:对传感器输出的多路信号进行切换,用一路装置进行测量和控制。例: 8 选 1 双向多路开关 CD4051 ,教材: P404

ADC0809 芯片带有多路转换开关。

5. 采样保持电路:对模拟信号进行采样并保持以保证 A/D 转 换的正确性。 教材: P409 ,快变输入信号需要使用采样保持器。

Page 4: 第 12 章  模数( A/D )和数模 (D/A) 转换

二、采样、量化和编码 处理后得到的几伏量级的模拟信号必须经过采样、量化和编码的过程才能成为数字量。

1 、采样和量化

采样:按相等的时间间隔 t 从电压信号上截取一个个离散的电压瞬时值,即时间上的离散化。

量化:将采样的实际值按幅度大小分层的过程。量化单位越小,一定范围内的电压值被分的层就越多,精度就越高。

例: 8 位 A/D 转换器,分层数 =28=256 ,设:电压量程: 0~5V

量化单位 : q= 电压量程范围 / 2n=5v/2560.019v=19mv

LSB=1 时对应的电压值 n 可表示 A/D 转换分辨率

Page 5: 第 12 章  模数( A/D )和数模 (D/A) 转换

2 、编码编码就是考虑用一种代码将量化得到的数字量表示出来。编码形式:二进制码、 BCD 码、 ASCII 码等。

例:自然二进制码 设满量程为 1 ,输入模拟量与满量程相比总小于 1 ,故用二进制小数形式表示数字量。

小数 : N=d12-1+ d22-2 +…+dn2-n 教材: P407 表 12-1

MSB, 权最大 LSB, 量化单位

Page 6: 第 12 章  模数( A/D )和数模 (D/A) 转换

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

虚地点

Page 7: 第 12 章  模数( A/D )和数模 (D/A) 转换

数模转换器主要性能指标1 、输入数字量 大多为 TTL 电平,接受自然二进制编码。2 、输出模拟量 多数是电流输出型,例: DAC0832 为差动电流输出( IOUT

1+IOUT2= 常数),输出要设计 I/V 转换电路。

3 、分辨率 指输入数据发生 1LSB 变化时所对应的输出模拟量的变化。与数字量位数 n 的关系:分辨率 = 满度值 /2n

* 分辨率可用位数 n 表示。4 、转换时间 指从数字量输入到建立稳定的输出电流的时间。有 ns 和 us 级的转换器。

Page 8: 第 12 章  模数( A/D )和数模 (D/A) 转换

二、八位 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. 芯片介绍

Page 9: 第 12 章  模数( A/D )和数模 (D/A) 转换

2. 芯片的输出电路

单极性输出方式

R数字量输入

VREF

RFB

IOUT2

IOUT1

-+

AGND

VO

DAC

0830

0831

0832

DB

+ 5 V

Page 10: 第 12 章  模数( A/D )和数模 (D/A) 转换

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

Page 11: 第 12 章  模数( A/D )和数模 (D/A) 转换

单缓冲方式的应用

例 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

Page 12: 第 12 章  模数( A/D )和数模 (D/A) 转换

③ 双缓冲方式:

第一种应用情况:在前一个数据转换的同时, 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

Page 13: 第 12 章  模数( A/D )和数模 (D/A) 转换

-+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 转换。

Page 14: 第 12 章  模数( A/D )和数模 (D/A) 转换

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 (克)

Page 15: 第 12 章  模数( A/D )和数模 (D/A) 转换

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,则转换过程及结果如表所示。

Page 16: 第 12 章  模数( A/D )和数模 (D/A) 转换

逐次逼近式 A/D 转换所需的时间:

一个 8 位转换器完成一次转换大致需要 88=64 个时钟周期

例: ADC0809是 8 位逐次逼近式 A/D 转换器,典型工作时钟频率为 640kHz. 完成一次转换的时间大约为:

tc=64 ( 1/640 103秒) =100us

若为多通道采集,如 8通道,转换时间则是单通道的 8倍。

Page 17: 第 12 章  模数( A/D )和数模 (D/A) 转换

三、典型模 / 数转换器 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

Page 18: 第 12 章  模数( A/D )和数模 (D/A) 转换

2. ADC0809工作时序START

ALE

通道地址

EOC

OE

DATA

64CLK

①选择当前转换的通道,即将通道编码送地址锁存器;②通过执行 OUT 指令在 START , ALE 上产生一个正脉冲,锁存通道编码并启动 A/D ;

③A/D 转换开始后, EOC 变低,经过 64 个时钟周期后,转换结束, EOC 变高;④转换结束后,通过执行 IN 指令设法在 OE脚上产生一个正脉冲,打开输出缓冲器的三态门读入转换数据。

Page 19: 第 12 章  模数( A/D )和数模 (D/A) 转换

⑴ 直接连接

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 与微处理器的连接

Page 20: 第 12 章  模数( A/D )和数模 (D/A) 转换

⑵ 通过并行接口芯片同 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

Page 21: 第 12 章  模数( A/D )和数模 (D/A) 转换

例:对 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 ;未完继续

Page 22: 第 12 章  模数( A/D )和数模 (D/A) 转换

四、 12 位 A/D 转换器 ADC574

ADC574 是 12 位逐次逼近式 A/D 转换器,转换时间为 25us , 28引脚。

ADC 574

Page 23: 第 12 章  模数( A/D )和数模 (D/A) 转换

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

Page 24: 第 12 章  模数( A/D )和数模 (D/A) 转换

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 :模拟量输入端口。

Page 25: 第 12 章  模数( A/D )和数模 (D/A) 转换

表 11.5 AD574 的控制状态表:

AD574 的 8 位输出数据格式

Page 26: 第 12 章  模数( A/D )和数模 (D/A) 转换

图 11.22 ADC574A 单极性和双极性输入接法

Page 27: 第 12 章  模数( A/D )和数模 (D/A) 转换

单极性模拟输入方式接线的调整 单极性模入方式 ( 图 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 。

Page 28: 第 12 章  模数( A/D )和数模 (D/A) 转换

双极性模拟输入方式的调整 对于双极性模入方式,把 REF IN , REF O

UT ,和 BIP OFF三个引脚的接线按图 2-10重新安排,双极性模入方式零点与满刻度校准方法与单极性方式近似。需要注意的是,输入模拟量与输出数字量之间的对应关系为:

10VIN端输入时:- 5V→0V→十 5V 对应 000H→800H→FFFH

20VIN端输入时:一 10V→0V→十 10V 对应 000H →800H→FFFH

Page 29: 第 12 章  模数( A/D )和数模 (D/A) 转换

图 AD574 双极性模拟输入接线方式

Page 30: 第 12 章  模数( A/D )和数模 (D/A) 转换

图 11.23 AD574A 启动转换和读数据时序

Page 31: 第 12 章  模数( A/D )和数模 (D/A) 转换

 电路中译码器对 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系统系统总线总线连接连接

Page 32: 第 12 章  模数( A/D )和数模 (D/A) 转换

A/D574 转换器接口电路设计

----- 查询方式一、 12位 A/D转换器接口设计1 、要求 进行 12 位转换,转换结果分两次输出,以左对齐方式存放在首址为 400H 的内存区。共采集 64个数据。 ADC 与 CPU 之间采用查询方式交换数据,采用 AD574A 作为 A/D 转换器。2、分析 AD574A 是具有三态输出锁存器的 A/D 转换器,它可以作 12位转换,也可作 8位转换。3、设计 ( 1)硬件连接

Page 33: 第 12 章  模数( A/D )和数模 (D/A) 转换

扩展槽

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 连接原理图

Page 34: 第 12 章  模数( A/D )和数模 (D/A) 转换

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 ,读低字节。

Page 35: 第 12 章  模数( A/D )和数模 (D/A) 转换

(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)

Page 36: 第 12 章  模数( A/D )和数模 (D/A) 转换

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

Page 37: 第 12 章  模数( A/D )和数模 (D/A) 转换

表 2.2 AD574 系列产品主要性能比较

C: Commercial I: Industry M: Military

Page 38: 第 12 章  模数( A/D )和数模 (D/A) 转换

作业

P408

3 、 4 、 5