第 11 章 数模和模数转换

35
第 11 第 第第第第第第第

Upload: coyne

Post on 19-Jan-2016

263 views

Category:

Documents


5 download

DESCRIPTION

第 11 章 数模和模数转换. 11.1 数模 (D/A) 转换器. D/A 转换器 D/A 转换器简称 DAC=Digital to Analog Converter. DAC 把数字量转换为模拟量(电压或电流)。. 数模转换原理. 数 / 模转换器的核心器件是“解码网络”常用的解码网络 有权电阻解码网络、 T 型解码网络等. 11.1.1 工作原理 ---T 型解码网络:. V o =K*V ref *(D 0 *2 0 +D 1 *2 1 +…+D n-1 *2 n-1 )/2 n. 11.1.2 D/A 转换器的主要性能参数. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 11 章   数模和模数转换

第 11 章 数模和模数转换

Page 2: 第 11 章   数模和模数转换

11.1 数模 (D/A) 转换器

D/A 转换器

D/A 转换器简称 DAC=Digital to Analog Converter

DAC 把数字量转换为模拟量(电压或电流)。

数模转换原理

数 / 模转换器的核心器件是“解码网络”常用的解码网络有权电阻解码网络、 T 型解码网络等 .

Page 3: 第 11 章   数模和模数转换

图11. 1 D/A转换的原理框图

1 0 1 0

Dn-1 Dn-2

1 0 1 0

D1 D0…………

- A+

Kn-1 Kn-2 K1 K0

2R 2R 2R 2R 2R……

……VREFR R

V0

R

Vo=K*Vref*(D0*20+D1*21+…+Dn-1*2n-1)/2n

11.1.1 工作原理 ---T 型解码网络:

Page 4: 第 11 章   数模和模数转换

11.1.2 D/A 转换器的主要性能参数

( 1 )分辨率: =Vref/2n

( 2 )转换精度:与分辨率有关,但不完全取决于分辨率。

( 3 )转换时间 / 转换速度:( 4 )绝对误差:实际输出值与理论值之

间的最大偏差。 ±1/2LSB 。

Page 5: 第 11 章   数模和模数转换

11.1.3 D/A 转换器及接口电路

DAC0832

Page 6: 第 11 章   数模和模数转换

DAC0832

DAC0832 是 8 位 DAC ,内部有两级缓冲。当 LE1 有效时,数据进入第一级(数据输入寄存器),当 LE2有效时,数据输入寄存器的值进入第二级( DAC 寄存器)。由于 DAC 寄存器的输出直接送 D/A 转换器,使 LE2 有效的命令又称转换命令。

DAC0832 的输出为两个电流信号 IOUT1 和 IOUT2( IOUT1+IOUT2= 常数),内部提供了一个反馈电阻R ,只需加一个运算放大器,利用内部的反馈电阻 R即可获得电压输出

Page 7: 第 11 章   数模和模数转换

20

19

18

17

16

15

14

13

12

11

1

2

3

4

5

6

7

8

9

10

VCC

ILE

WR2

XFER

DI4

DI5

DI6

DI7

IOUT1

IOUT2

CS

WR1

AGND

DI3

DI2

DI1

DI0

VREF

RFB

DGND

DAC0832 的外部引脚

Page 8: 第 11 章   数模和模数转换

11.1.3 DAC0832 的接口设计 --- 单缓冲方式

1. 使数据输入寄存器工作在锁存状态, DAC 寄存器工作在不锁存状态( LE2 始终有效, DAC 寄存器直通)。只使用一级缓冲。适用于大多数情况 .

Page 9: 第 11 章   数模和模数转换

设 D/A 转换端口号为 PORTA ,设需转换的数据放在1000H 单元,则 D/A 转换程序为:

MOV BX , 1000HMOV AL , [BX]MOV DX , PORTAOUT DX , AL

11.1.3 DAC0832 的接口设计 --- 单缓冲方式

Page 10: 第 11 章   数模和模数转换

2. 使用两级缓冲

11.1.3 DAC0832 的接口设计 --- 双缓冲方式

适用于多个 DAC0832 同时使用的情况

Page 11: 第 11 章   数模和模数转换

设 CS’ 由 A15~A1 经译码产生,当 A15~A1=A0832时, CS’ 有效。在 CPU 执行 OUT 指令时,若 A0=0 ,DAC0832 内部 LE1 有效,数据总线上的值( AL )送入数据输入寄存器 ; 若 A0=1 , DAC0832 内部 LE2 有效,数据输入寄存器的值送 DAC 寄存器。

A0832 EQU 200HMOV DX , A0832+0 ; A0=0OUT DX , AL ; AL 的值为待转换的数字MOV DX , A0832+1 ; A0=1OUT DX , AL ; AL 的值无关

13.1.3 DAC0832 的接口设计 --- 双缓冲方式

Page 12: 第 11 章   数模和模数转换

设 CS’ 由 A15~A1 经译码产生,当 A15~A1=A0832时, CS’ 有效。在 CPU 执行 OUT 指令时,若 A0=0 ,DAC0832 内部 LE1 有效,数据总线上的值( AL )送入数据输入寄存器 ; 若 A0=1 , DAC0832 内部 LE2 有效,数据输入寄存器的值送 DAC 寄存器。

A0832 EQU 200HMOV DX , A0832+0 ; A0=0OUT DX , AL ; AL 的值为待转换的数字MOV DX , A0832+1 ; A0=1OUT DX , AL ; AL 的值无关

11.1.3 DAC0832 的接口设计 --- 双缓冲方式

Page 13: 第 11 章   数模和模数转换

3. 直通方式

11.1.3 DAC0832 的接口设计 --- 直通方式

一般接锁存输出 .

Page 14: 第 11 章   数模和模数转换

注:在 DAC 实际连接中,要注意区分“模拟地”和“数字地”的连接,为了避免信号串扰,数字量部分只能连接到数字地,而模所量部分只能连接到模拟地。 采用单缓冲方式连接如图 10-3 所示。 利用 DAC 可实现任意波形(如锯齿波、三角波、正弦波等)的输出,如输出锯齿波、三角波的程序段如下:

TRG : MOV DX , 200H MOV AL , 0H TN1 : OUT DX , AL INC AL

DAC0832 的应用举例 :

Page 15: 第 11 章   数模和模数转换

JNZ TN1 MOV AL , 0FFHTN2 : OUT DX , AL DEC AL JNZ TN1 …………输出锯齿波程序段如下:TRG : MOV DX , 200H MOV AL , 0HTN : OUT DX , AL INC AL JMP TN …………

Page 16: 第 11 章   数模和模数转换

利用图所示的 DAC0832 单缓冲方式连接图,也可输出正弦波,由于 DAC0832 是一个单极性输出 DAC 芯片,因此在正弦波输出中应将 0V平移到 128 数值上,其 C语言控制程序如下:#include<stdio.h>#include<math.h>Main(){ unsigned char V0=128,VOUT; int i;while(!kbhit()) { ∥ 等待键盘 i=0;

while(I<=360){∥ 角度最大为 360 度VOUT=V0+128*sin(3.14159*I/180); ∥ 计算每 10 度的正弦值

outportb(0x200,VOUT); ∥ 输出i=i+10; ∥ 角度 +10

} }}

Page 17: 第 11 章   数模和模数转换

11.2 模数( A/D )转换器 A/D 转换的原理很多 , 常见的有双积分式、

逐次逼近式、计数式等。 输出码制有二进制、 BCD 码等。 输出数据宽度有 8 位、 12 位、 16 位、 2

0 位 24 位等(二进制)。

Page 18: 第 11 章   数模和模数转换

( 1 )逐次逼近型 A/D 转换

图11. 4 逐次逼近式A/D转换器原理图

V1- A+

控制逻辑电路启动信号CLK转换结束

逐次逼近寄存器D/A转换器

缓冲寄存器

比较器V0

Page 19: 第 11 章   数模和模数转换

( 1 )逐次逼近型 A/D 转换原理

转换原理:数字量由逐次逼近寄存器 SAR 产生。 SAR使用对分搜索法产生数字量,以 8 位数字量为例, SAR 首先产生 8 位数字量的一半,即 10000000B, 试探模拟量的大小,若 Vo>Vi ,清除最高位,若 Vo<Vi ,保留最高位。在最高位确定后, SAR 又以对分搜索法确定次高位,即以低 7 位的一半 y1000000B(y 为已确定位 ) 试探模拟量的大小。重复这一过程,直到最低位bit0 被确定,转换结束。

特点:转换速度快,转换精度中等。

Page 20: 第 11 章   数模和模数转换

( 2 )双积分型 A/D 转换器 双积分型 A/D 转换器是将输入电压变换成与平均值成正比

的时间间隔,然后利用计数器测量时间间隔,如图所示。

±Vin+VR

-VR

+

-

+

-

控制逻辑 计数器 / 锁存器 译码器 / 显示器时钟发生器

K4

K1

K2

K3COMPout

C

积分器

比较器R

图 11-5 双积分型 A/D 转换器框图

Page 21: 第 11 章   数模和模数转换

双积分型 A/D 转换器完成一次模一数转换需要三个阶段: 积分(采样: K1 导通)、反积分(比较: K3 导通)和结束

阶段( K4 导通)。双积器对正极性电压输出波形如图所示。

t1 t2 t3 t4t1 t2 t3 t4

T1 T2

T3

V2

V1

0

-V1

+V2

图 13-2 双积分型 A/D 转换器输出波形

Page 22: 第 11 章   数模和模数转换

通过输出波形可求出: Vin=VR/Nm×NX,式中: VR参考电压, Nm参考电压计数值, NX输入电压计数值。可见,双积分型 A/D 转换器输出与时间常数 RC 无关,消除了斜坡电压的各种误差,由于经过两次积分可消除干扰对转换结果的影响。

特点:转换精度高,转换速度慢。

Page 23: 第 11 章   数模和模数转换

( 3 )电压频率转换法

V/F 计数器

定时器

图11. 6 电压频率式A/D转换原理框图

数据输出

Page 24: 第 11 章   数模和模数转换

11.2.2 A/D 转换器的特性参数(1)分辨率(Resolution):指 A/D转换器可转换成数字量

的最小电压(量化阶梯),如8为 ADC满量程为5V,则分辨率为5000mV/256=20mV,也就是说当模拟电压小于20mV,ADC就不能转换了,所以分辨率一般表示式为:

分辨率 =Vref/2 位数(单极性)或 分辨率 =( V+ref-V-ref)/2 位数(双极性)(2)转换时间(Convert Time):指从输入启动转换信号到

转换结束,得到稳定的数字量输出的时间。一般转换速度越好(特别是动态信号采集),常见有超高速(转换时间<1ns)、高速(转换时间<1µs)、中速(转换时间<1ms)和低速(转换时间<1s)等。

Page 25: 第 11 章   数模和模数转换

( 3)量化精度 (Accuracy) :指 A/D 转换器实际输出与理论值之间的误差,一般采用数字量的最低有效位作为衡量单位(如±1/2LSB )。

( 4)线性误差 (Linearity Error) :当模拟量变化时, A/D 转换器输出的数字量按比例变化的程度。

Page 26: 第 11 章   数模和模数转换

11.2.3 模数转换芯片 ADC 08098 位 ADC ,逐次逼近型, 8 路模拟量输入

8位模拟开关

IN7

IN0

地址锁存

逐次逼近寄存器SAR

时序与控制

树状开关

电阻网络

三态输出锁存器

图11. 7 ADC0809的结构框图和引脚

ADDCADDBADDAALE

START EOC CLK OE

VREF(+) VREF(-)

D7

8个模拟输入通道

{ 8选1

比较器

Page 27: 第 11 章   数模和模数转换

ADC0809 引脚图:28

27

26

25

24

23

22

21

20

19

1

2

3

4

5

6

7

8

9

10

IN2

IN1

IN0

ADDA

ADDB

ADDC

ALE

D7

D6

D5

IN3

IN4

IN5

IN6

IN7

START

EOC

D3

OE

CLK

11

12

13

14

18

17

16

15

D4

D0

VREF-

D2

VCC

VREF+

GND

D1

ADC

0809

Page 28: 第 11 章   数模和模数转换

内部有“ 8 选 1”MUX 。当 ALE 信号有效时, ADD_C 、 ADD_B 、 ADD_A 选择 IN0~IN7 。例如 ADD_C 、 ADD_B 、 ADD_A 分别为 011 时,选择 IN3 通道。

数字输出:有三态缓冲器,当 Enable 有效时,从 D7~D0 引脚输出转换后的数字。

启动信号: START 。负脉冲启动。

转换结束信号: EOC ,高电平有效。

模数转换 ADC 0809

Page 29: 第 11 章   数模和模数转换

ADC 0809 的接口设计 1

IN0IN1IN2IN3IN4IN5IN6

ALE

START

OE

26

7

14

17

15

8

11

12

16

22

9

ADC0809

23

IN7

EOC

2-82-72-62-52-42-3

2-22-1

ADDC

ADDBADDA

CLOCK

REF(+)

REF(-)

SN74L28D

SN74L28D

译码器

Yi

IN0

6

27IN1IN2

IN3IN4

IN5IN6

IN7

28

1

2

3

4

5

18

19

20

21

24

25

10

1

13

4

___3IOR

___5IOW

2

6

VCC

EOC

D0D1D2D3

D4D5D6D7

图11. 8 ADC0809J接口电路

Page 30: 第 11 章   数模和模数转换

模数转换 ADC 0809 的接口设计

ADDR DB 8 dup ( 0 )…

MOV DI , ADDR ;设置存放数据的首址MOV CX , 08H ;计数器MOV BL , 00H ;选择通道AA : MOV AL, BLOUT PORTA , AL ;送通道地址CALL DEALY ;延时,等待 A/D 转换IN AL, PORTA ;读取转换的数据MOV [DI] , AL ;保存数据INC BL ;换下一个模拟通道INC DI ;修改数据区指针DEC CXJNZ AA

Page 31: 第 11 章   数模和模数转换

[ 例 2]START 是 ADC0809 的 A/D 转换启动信号,高电平时内部逐次逼近寄存器清 0,由 1→0变化时开始 A/D 转换,信号宽度 >100ns.CLK 为时钟信号,最大为 600KHz.ADC0809 设图 10-12 所示电路的 CS=180 ~ 1

87H ,采用中断方式的采集程序如下:

IN0IN1IN2IN3IN4IN5IN6IN7

Q0Q1Q2Q3

1A

CLK

OEStart

ALE

A0A1A2

IRQ2 EOC

+5V

+5V8MHz

IOR

IOW

180H~187H

图 10-12 ADC0809 典型连接

Page 32: 第 11 章   数模和模数转换

# include <stdio.h>#include <dos.h>Void interrupt far adc-proc() ;Main(){ void (interrupt far*mode)() ; disable() ;∥关中断 mode=getvect(0x0a) ; ∥取 IRQ2 中断向量 setvect(0x0a,adc-proc) ;∥设置中断向量 enable(); ∥ 开中断 outportb(0x180,00); ∥ 启动 ADC 转器,选择 IN0 通道 while( ! Kbhit()){} ∥ 等待键盘 setvect(0x0a,mode); ∥ 有键按下时,恢复 IRQ2 中断

向量 }

Page 33: 第 11 章   数模和模数转换

voed interrupt far adc-proc(){∥ 中断服务程序 unsigned char result; disable(); ∥ 关中断 result=inportb(0x180); ∥ 取 ADC 转换结果 printf(“DIGIAL=%d/n”,result); ∥ 显示转换数据 outportb(0x180,00); ∥ 启动下一次 ADC 转换,选择 IN0

通道 outprotb(0x20,0x20); ∥ 向 8259 送 EOI 信号 enable(); ∥ 开中断}

问题 :不采用中断方式 ,如何采集数据 ?

Page 34: 第 11 章   数模和模数转换

(2) 实验箱上的 A/D 实验箱上采用 8 位 A/D 转换器 ADC0809, 其连接原理图如下 :

Page 35: 第 11 章   数模和模数转换

习题 1 、翻译下列英文: The AD7710 is a complete analog front end for low freque

ncy measurement applications. It employs a sigma-delta conversion technique to realize up to 24 bits of no missing codes performance.

2 、利用实验装置上的 ADC0809, 采集 0~5V 的电压信号。设 ADC0809 的 CS 接 300-30F 地址。编写程序,完成采集,在屏幕上显示采集到的电压值(单位: mv )