71
第7第 第 / 第第第 / 第第第 7.1 第/第D/A 第第 7.2 第/第A/D 第第 7.3 第第 A/D 第第第第第 7.4 第第第第第

第 7 章 数/模与模/数转换

  • Upload
    agalia

  • View
    101

  • Download
    4

Embed Size (px)

DESCRIPTION

第 7 章 数/模与模/数转换. 7.1 数/模( D/A) 转换 7.2 模 / 数( A/D) 转换 7.3 典型 A/D 转换器芯片 7.4 数据采集系统. 数字量 :从键盘读入的字符代码,送往磁盘存储的文 件信息等。 模拟量 :语音信号,送往 VGA 显示器的视频信号,以 及工业生产过程中温度、流量等物理量。它们随 着时间连续变化。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 7 章      数/模与模/数转换

第 7 章 数 / 模与模 / 数转换 7.1 数 / 模( D/A )转换 7.2 模 / 数( A/D )转换 7.3 典型 A/D 转换器芯片 7.4 数据采集系统

Page 2: 第 7 章      数/模与模/数转换

数字量(Digit )和模拟量(Analog)

•数字量:从键盘读入的字符代码,送往磁盘存储的文 件信息等。• 模拟量:语音信号,送往 VGA 显示器的视频信号,以及工业生产过程中温度、流量等物理量。它们随着时间连续变化。• 为了使用计算机对模拟量进行采集、加工和输出,需要把模拟量转换成便于数字计算机存储和加工的数字量( A/D 转换, ADC ),或者把数字量转换成模拟量 (D/A 转换, DAC) 。

• D/A 与 A/D 转换是计算机用于多媒体、工业控制等领 域的一项重要技术。

Page 3: 第 7 章      数/模与模/数转换

图 7-1

模拟量输入输出通道

工业生产过程

温度

流量

传感器

变送器

多路开关

采样保持器

A/D转换器

数字量

微机系统控制

数字量I/O接口

锁存器

D/A转换

放大驱动

模拟量

电压量

信号处理

信号处理

Page 4: 第 7 章      数/模与模/数转换

1 . 传感器(变送器)• 把外部的物理量(例如:声音、温度、压力、流量 等)转换成电流或电压信号。2 . A/D 转换器( Analog Digit Converter, ADC)

• 将电压表示的模拟量转换成数字量,送计算机处理, 它是输入通道的核心环节。• AD 转换器输入模拟信号通常有以下几种电压范围: 单极性 0~5V 、 0~10V 、 0~20V; 双极性 ±2.5V 、 ±5V 、 ±10V 等。

Page 5: 第 7 章      数/模与模/数转换

3 . 信号处理• 传感器输出的信号比较微弱,需要经过放大,获得ADC 所要求的输入电平范围。• 安装在现场的传感器及其传输线路容易受到干扰信号的 影响,需要加接滤波电路,滤去干扰信号。4 . 多路开关( Multiplexer)

• 需要监测或控制的模拟量往往多于一个。可以使用多路 模拟开关,轮流接通其中的一路,使多个模拟信号共用 一个 ADC 进行 A/D 转换。

Page 6: 第 7 章      数/模与模/数转换

5 . 采样 / 保持器( Sample Holder)

• 如果在一次转换期间,输入的模拟量有较大的变化, 那么转换得到的结果会产生误差,甚至发生错误。• A/D 转换期间保持输入信号不变的电路称为采样 / 保持 电路。• 转换开始之前,采样 / 保持电路采集输入信号(采样)• 转换进行过程中,它向 A/D 转换器保持固定的输出 (保持)。6 . D/A 转换器( Digit Analog Converter, DAC) :

• D/A 转换器将成数字量转换成模拟量输出。

Page 7: 第 7 章      数/模与模/数转换

7.1 数 / 模( D/A )转换7.1.1 数 / 模转换原理7.1.2 D/A 转换芯片— DAC0832

Page 8: 第 7 章      数/模与模/数转换

图 7-2

1. 权电阻 D/A

Rf

A-+ 模拟量

输出运算放大器

Vo

权电阻位切换开关d3

d2

d1

d0

VR

二进制输入

2R

4R

8R

R

Page 9: 第 7 章      数/模与模/数转换

2. R-2R T 型电阻网络 D/A 转换器

二进制输入

2R

-+A

2R

2R

2R

R

2R

R

R

2R

VRef

R

A

B

C

D

d3

d2

d1

d0

I

I1I2 Vo

Page 10: 第 7 章      数/模与模/数转换

• D/A 转换器进行一次数字量到模拟量的转换需要的时间, 称为 D/A 转换时间,一般在 500ns( 纳秒 , 1ns=10-9s) 左右。• 为了保存由计算机送来的数字信号,通常还需要配置一 个“数据寄存器”,向 D/A 转换器提供稳定的数字信号。

)2·2·2·2·(2·2

2 40

31

22

13

Re0 dddd

RVR

IRV fi

)2·2·2·2·(2

00

11

22

334

Re ddddV f

Page 11: 第 7 章      数/模与模/数转换

7.1.2 D/A 转换芯片—DAC0832

8位输入寄存器

8位DAC寄存器

8位DAC

&

&

LE2LE1

VREFIout2

Rfb

Vcc

AGND

Iout1

DGND

D0~D7

ILECS

WR1

WR2XFER

12

3

456

7

8

910 11

1213

14

1516

1718

19

20

DAC0832

CS

WR1

AGND

D3D2D1

D0

VREF

RfbDGND IOUT2

IOUT1

D7

D6

D5D4XREF

WR2

ILE

Vcc

(a) DAC0832引脚 (b) DAC0832内部结构

Page 12: 第 7 章      数/模与模/数转换

1 . DAC0832 的引脚信号• DI0~DI7 : 8 位数字量输入。• ILE :数据锁存允许信号,高电平有效;• CS# :输入寄存器选择信号,低电平有效;• WR1# :输入寄存器的“写”选通信号,低电平有效。• 输入寄存器的锁存信号LE1#=(CS#+WR1#)#·ILE 。

LE1#=1 ,输入锁存器状态随数据输入状态变化; LE1#=0 时,锁存输入数据。

Page 13: 第 7 章      数/模与模/数转换

• XFER# :数据转移控制信号,低电平有效;• WR2# : DAC 寄存器的“写”选通信号。• DAC 寄存器的锁存信号 LE2#=WR2#+XREF# 。 LE2# =1 时, DAC 寄存器的输出跟随输入变化; LE2# =0 时,锁存输入寄存器状态。• VREF :基准电压输入。(+ 10V ~- 10V )

DAC0832 的引脚信号

Page 14: 第 7 章      数/模与模/数转换

• Rfb :反馈信号输入,芯片内已连接有反馈电阻。• IOUT1 和 IOUT2 :电流输出引脚。 IOUT1 与 IOUT2 的和为常数, IOUT1 随 DAC 寄存器的内容线性变化。• Vcc 是工作电源; DGND 是数字地, AGND 为模拟 信号地。

DAC0832 的引脚信号

Page 15: 第 7 章      数/模与模/数转换

• 为了保证转换精度,模拟信号部分应使用高精度基 准电源 VREF 和独立的地线。• 为了避免数字信号对模拟信号的干扰,提高输出的 稳定性,减少误差,应把数字地和模拟地分开:

模拟地:模拟信号及基准电源的参考地; 数字地:工作电源地,数据、地址、控制等数字 信号逻辑地。

• D/A 转换器的输出一般都要接运算放大器,微小信 号经放大后才能驱动执行机构的部件。

DAC0832 的引脚信号

Page 16: 第 7 章      数/模与模/数转换

图 7-5

DAC0832 的连接DAC0832

D7-D0 D7-D0

PORT0

PORT1

译码器

CS

XFER

WR1WR2IOW

ILE

Vref

+5V

Iout1

Iout2

Rfb

模拟地

R

2R

Vref

-+

2R

Vout

-

+

地址

M/IO

Page 17: 第 7 章      数/模与模/数转换

2. DAC0832 的应用• 直通输入:把 CS#, WR1# , WR2#, XREF#都接地,由 微机的并口(例如 8255 )向 0832 输出。• 单缓冲:地址选通 PORT0 连接 CS# 。 I/O 写信号IOW#同 时连接到 WR1# 、 WR2# 和 XREF# 。执行一次输出指令可 以将数据写入。• 双缓冲方式: 在输出一个模拟信号的同时,可送入下一个数据,实现多个 DAC同时输出新的模拟量。 DAC0832占用两个端口地址,地址线 A0=0 时选中第一级, A0=1 时选中第二级。 输出一个数据需要执行两条输出指令:

第一条指令将数据写入 0832的输入寄存器;第二条指令将数据从输入寄存器送入 DAC寄存器

Page 18: 第 7 章      数/模与模/数转换

图 7-5

DAC0832 的应用DAC0832

D7-D0 D7-D0

PORT0

PORT1

译码器

CS

XFER

WR1WR2IOW

ILE

Vref

+5V

Iout1

Iout2

Rfb

模拟地

R

2R

Vref

-+

2R

Vout

-

+

地址

M/IO

Page 19: 第 7 章      数/模与模/数转换

MOV AL , NUM ;被转换的数据送 AL

MOV DX, PORT0 ;输入寄存器偶地址送 DX

OUT DX, AL ;数据送到输入寄存器 INC DX ; A0=1

OUT DX, AL ;数据送入 DAC 寄存器

双缓冲方式输出程序

Page 20: 第 7 章      数/模与模/数转换

输出锯齿波的程序段

MOV AL, 0

J1 : CALL OUTPUT ;输出当前值 INC AL ;产生下一个输出值 JMP J1

Page 21: 第 7 章      数/模与模/数转换

输出三角波的程序段S0 : MOV AL , 0 ; AL 中置初值 0 ,S1: CALL OUTPUT ;输出三角波的上升段

INC ALJNZ S1DEC AL

S1 : CALL OUTPUT ;输出三角波的下降段DEC AL ;产生下降段下一个值JNZ S2 ; JMP S1 ;下降段结束,

; 输出下一个三角波

Page 22: 第 7 章      数/模与模/数转换

OUTPUT PROC NEAR MOV DX, PORT0 ; DAC0832端口地址

OUT DX, ALINC DXOUT DX, AL ;PUSH AXMOV AX, N ;延时的时间常数

WT: DEC AXJNZ WT ;延时POP AXRET

OUTPUT ENDP

子程序“ OUTPUT”

Page 23: 第 7 章      数/模与模/数转换

7.2 A/D 转换

7.2.1 信号变换中的采样、量化和编码 7.2.2   A/D 转换原理 7.2.3   A/D 转换器的主要技术指标

Page 24: 第 7 章      数/模与模/数转换

7.2.1 信号变换中的采样、量化和编码1. 采样

• 采样:模拟信号的大小随着时间不断地变化, A/D转换实际上是按一定的周期对各瞬时值进行转换。• 采样保持:对于变化较快的输入模拟信号, A/D 转换前可采用采样保持器,使得在转换期间保持固定的模拟信号值。• 采样定理:采样频率要高于或至少等于输入信号最高频率的 2倍。实际应用中,采样频率可以达到信号最高频率的 4~ 8倍。

Page 25: 第 7 章      数/模与模/数转换

2. 量化• 量化是把采样值取整为最小单位 Δ 的整数倍。• 量化的最小单位称为量化单位 Δ ,它等于输入 信号的最大值 / 数字量的最大值,对应于数字量 1 。• 输入信号的最大值一般等于所使用的“参考电压 (VREF )”

0 1Δ 2Δ 3Δ 4Δ 5Δ 6Δ 7Δ 待转换模拟量

转换后数字量000 001 010 011 100 101 110

Page 26: 第 7 章      数/模与模/数转换

000001010011100101110111

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t

采样量化结果

量化区间

010 101 110 111 111 110 100 011 010 001

V(t)

Page 27: 第 7 章      数/模与模/数转换

图 7-7

000001010011100101110111

DN

0

理想A/D关系直线

转换曲线1

(a) 转换曲线1,量化误差1LSB

(b)理想转换曲线,量化误差: ± (1/2)LSB

18

28

38

48

58

68

78

VIVREF

000001010011100101110111

DN

0

理想转换曲线

18

28

38

48

58

68

78

VIVREF

理想A/D关系直线

Page 28: 第 7 章      数/模与模/数转换

3. 编码• 量化得到的数值通常用二进制表示。• 对有正负极性(双极性)的模拟量一般采用偏移码表示。 例如, 8 位二进制偏移码 10000000 代表数值 0 , 00000000 代表负电压满量程, 11111111 代表正电压满量程 (数值为负时符号位为 0 ,为正时符号位为 1 ) 。

Page 29: 第 7 章      数/模与模/数转换

7.2.2   A/D 转换原理

这种方式的转换中有两个积分时间: T0 :用模拟输入电压对电容积分(充电)的时间 这个时间是固定的; T1 :以电容充电后的电压为初值,对参考电源 VRef 反向积分,也就是积分电容被放电至 零所需的时间(或 T2 )。

1.  双积分型 A/D 转换器

Page 30: 第 7 章      数/模与模/数转换

图 7-8

双积分型 A/D 转换器

基准电压

输入电压

K Vout -+

。。。

积分器

CF

R 检零比较器

数据输出

(a) 双积分A/D转换器结构

VA1

VA2

V1V2

V1>V2

T0 T2T1

t

(b) 模拟信号大小与积分时间的关系

时钟

控制逻辑

计数器

VRef

Vi

Page 31: 第 7 章      数/模与模/数转换

• Vi/VRef = T1/T0 。 由于 VRef 、 T0 固定,通过测量放电时间 T1 ,可求出输入模拟电压 Vi 的大小。• 双积分型 A/D 转换测量输入电压 Vi 在 T0 时间内的平均值,所以对常态干扰(串模干扰)有很强的抑制作用,尤其对正负波形对称的干扰信号,抑制效果更好。• 双积分型的 A/D 转换器电路简单,抗干扰能力强,精度高,但是转换速度比较慢,通常为 ms级,一般用于低频信号的测量。

双积分型 A/D 转换器

Page 32: 第 7 章      数/模与模/数转换

图 7-9

2. 逐次逼近式 A/D 转换器+

-

比较器

VRef

START EOC

数字量

输出

D3 D2 D1 D0

Vx

终值

Vc

0t时序及控制逻辑

D/A

Vx

SAR

(1000)

(0100)

(0110)

(0101)

0010

0100

0110

1000

1100

Page 33: 第 7 章      数/模与模/数转换

逐次逼近式 A/D 转换器的特点( 1 ) 转换速度较快,转换时间在 1~ 100μs 以内,分辨率可达 18 位,适用于高精度、高频信号

的 A/D 转换;( 2 ) 转换时间固定,不随输入信号的大小而变化;( 3 ) 抗干扰能力较双积分型弱。采样时,干扰信号会 造成较大的误差,需要采取适当的滤波措施。

Page 34: 第 7 章      数/模与模/数转换

图 7-10

3. 跟踪计数式模数转换器

D7D6D5D4D3D2 D1 D0

Vo

Vx

CLK

C

比较器+-

8位D/A转换器

8位可逆计数器

Page 35: 第 7 章      数/模与模/数转换

图 7-11

4. ∑-△型模数转换器(设输入模拟量 Vin=1/4VREF)

D

-VREF

+VREF

+

-A B

C

CLKVIN

+-

1位DAC

1位数据流

Σ

Σ -Δ调制器

∫1位比较器

积分器 A

B

C

D

+(5/4)VREF

-(3/4)VREF

0 1 0 1 11 1 0

+VREF

-VREF

=5/8

Page 36: 第 7 章      数/模与模/数转换

• ∑-△型模数转换器以串行数据流方式输出结果;• 转换精度为 1LSB ;

• 转换完成后,比较器输出 0/1相间的数字流;• 输入模拟量 Vin 发生变化,输出数字流随之变化。• 模拟量输入端接有多路开关时,通道切换后要等 待足够长的时间,才能读取转换结果。• ∑-△型模数转换器抗干扰能力强,转换精度高,常用于高分辨率(常见为 16 、 18 、 24 位)的中、低频信号测量。• AD7714 是一个∑ -△型模数转换器芯片,转换精度 24 位。

∑-△型模数转换器

Page 37: 第 7 章      数/模与模/数转换

1. 分辨率 分辨率反映 A/D 转换器对输入微小变化的响应能力,用数字量最低位( LSB )所对应的模拟输入电平值(Δ) 表示。 分辨率直接与转换器的位数有关,也可以用数字量的位数来表示分辨率。注意:分辨率与精度是两个不同的概念。 分辨率高的转换器,精度不一定高。

7.2.3   A/D 转换器的主要技术指标

Page 38: 第 7 章      数/模与模/数转换

2. 精度 ( 有绝对精度和相对精度两种 )

( 1 )绝对误差 绝对误差等于实际转换结果与理论转换结果之差。 也可以用数字量的最小有效位( LSB)的分数值表示。例如 : ±1LSB , ±1/2 LSB , ±1/4 LSB 等( 2 )相对误差 相对误差是指数字量所对应的模拟输入量的实际值与 理论值之差,用模拟电压满量程的百分比表示。例: 10 位 A/D 芯片,输入满量程 10V , 绝对精度 ±1/2LSB (△= 9.77mV ) 绝对精度为: 1/2△(= 4.88mV ) 相对精度为: 4.88mV/10V = 0.048 %。

Page 39: 第 7 章      数/模与模/数转换

3. 转换时间完成一次 A/D转换所需要的时间。(发出转换命令信号到转换结束的时间)转换时间的倒数称为转换速率。例: AD574 的转换时间 25μs ,

转换速率为 40KHz ( =1/25 μs )

4. 量程量程:被转换的模拟输入电压范围, 分单极性、双极性两种类型。单极性常见量程为  0~ 5V , 0 ~ 10V , 0 ~ 20V ;

双极性量程常为- 5V ~+ 5V ,- 10V ~ +10V 。

Page 40: 第 7 章      数/模与模/数转换

5. 逻辑电平与输出方式多数 A/D 转换器输出的数字信号与 TTL 电平兼容,以并行方式输出。∑-△A/D 转换芯片以串行方式输出数据,这对单片机类 CPU 连接是很方便的。

6. 工作温度范围温度会对比较器、运算放大器、电阻网络等部件的工作产生影响。A/D 转换器的工作温度范围一般为 0~ 70℃。军用品为- 55℃~+ 125℃。

Page 41: 第 7 章      数/模与模/数转换

7.3 典型 A/D 转换器芯片 逐次逼近型 8 位 A/D 转换芯片; 片内有 8 路模拟开关,可以同时连接 8 路模拟量; 单极性,量程为 0~ 5V ; 典型的转换速度 100μs ; 片内有三态输出缓冲器,可直接与 CPU总线连接; 有较高的性能价格比,适用于对精度和采样速度要求 不高的场合或一般的工业控制领域。

7.3.1 ADC0809

Page 42: 第 7 章      数/模与模/数转换

图 7-12

IN7

IN0D7

D0

数字量输出ADDA

ADDBADDC

ALE

VCCGND REF(+) REF(-) OE

EOC

START CLK

三态输出锁存缓冲器

电阻网络

SAR

8路模拟开关

地址锁存与译码

控制与时序

树状开关

Page 43: 第 7 章      数/模与模/数转换

1. 模拟输入部分模拟输入部分由 8 选 1 多路开关,地址锁存与译码逻辑组成。从 IN0~IN7 引脚输入 8 路单端模拟信号;由三位地址输入 ADDA , ADDB , ADDC译码选择 8 路中的一路, ALE 为高电平时,三个地址信号被锁存。

2 . A/D 变换器部分由逐次逼近寄存器 SAR ( 8 位)、比较器、电阻网络等控制逻辑组成。

Page 44: 第 7 章      数/模与模/数转换

3. 基准电压输入 VREF(+)和 VREF(- )它们决定了输入模拟电压的最大值和最小值对转换精度要求不高时,可以把 VREF(+) 接到Vcc ( +5V )电源上, VREF( - ) 接 GND (地)为了避免数字脉冲信号对基准电源的干扰,可以设置独立的 VREF(+) 和 VREF( - ) ,加在两个引脚的电压必须满足以下条件:

VREF(+)+VREF( - ) =Vcc ,偏差值≤ ±0.1V

Vcc≥VREF(+)≥VREF( - ) ≥0

Page 45: 第 7 章      数/模与模/数转换

图 7-13

4  . ADC0809 的时序

Page 46: 第 7 章      数/模与模/数转换

( 1 ) ALE 信号锁存地址信号 ADDA~ADDC 。对应的模拟信号进入 0809( 2 ) START脉冲启动 A/D 转换( 3 ) 转换完成后,转换结束信号 EOC 变为高电平:

可以作为状态信号由 CPU查询; 可以作为中断请求信号通知 CPU 。

( 4 ) CPU 在查询式 I/O 程序或中断服务程序中: 执行输入指令(读 ADC0809 数据端口); 该指令经地址译码电路产生 OE 信号, 0809 内三态缓冲器被打开, 转换结果通过数据总线进入 CPU 。

ADC0809 的工作过程

Page 47: 第 7 章      数/模与模/数转换

ADC0809与系统有三种常见的连接方法:( 1 ) 占用三个 I/O端口:

端口 1 用来向 0809 输出模拟通道号并锁存;端口 2 用于启动转换;端口 3 读取转换后的数据结果。

( 2 ) 占用二个 I/O端口: 端口 1 输出模拟通道号并锁存,同时启动转换;端口 2 读取转换后的数据结果。

( 3 ) 通过并行接口芯片(例如 8255A )连接。

5. ADC0809 芯片应用举例

Page 48: 第 7 章      数/模与模/数转换

图 7-14

ADC0809 芯片应用举例

RD

WR

A0A1

Intel 8255

PB4

PB2

PB1

PB0

PC4

PB3

START

ADDC

ADDB

ADDA

EOC

ALE

ADC 0809

IN3

D0~D7PA0~PA7

CS

A0A1

地址译码

IOR

IOW

Page 49: 第 7 章      数/模与模/数转换

START: MOV AL, 98H ; 8255A方式字:方式 0 , A口输入, B口输出MOV DX, 03FFFH ; 8255A 控制端口地址OUT DX, AL ; 送 8255A方式字MOV AL, 0BH ; 通道号 3 、 ALE 信号MOV DL, 0FDH ; 8255A 的 B口地址OUT DX, AL ; 送通道号 3 及 ALE 信号MOV AL, 1BH ; 增加启动信号 START OUT DX, AL ; 启动 A/D 转换

ADC0809 转换程序

Page 50: 第 7 章      数/模与模/数转换

MOV AL, 0BH ; OUT DX, AL ; 撤销 START 信号MOV DL, 0FEH ; 8255A 的 C口地址

TST: IN AL, DX ; 读 C口状态AND AL, 10H ; 查询 EOC 状态 JZ TST ; 如未转换完,再测试MOV DL, 0FCH ; 8255 PA端口地址IN AL, DX ; 从 A端口读入转换结果………

ADC0809 转换程序(续)

Page 51: 第 7 章      数/模与模/数转换

1. AD 转换器 AD574 的主要特性: 美国 AD公司的产品 12 位逐次逼近式 A/D 转换器, 8 位 /12 位 A/D 转换 12 位数据可以一次输出,也可以分二次输出 三态缓冲输出; 带有基准源和时钟; 转换时间: 25μs ( 12 位); 分辨率: 12 位; 精度: ±1LSB 。

7.3.2 AD574A

Page 52: 第 7 章      数/模与模/数转换

AD574 共有 28根引脚, DIP封装( 1 ) 12 位数字量输出: DB11~DB0

( 2 ) 模拟量输入: 10VIN 及 20VIN ,双极性 ±5V 或 ±10V 输入,单极性 0~+ 10V 或 0~+20V 输入

AD574 的引脚信号

Page 53: 第 7 章      数/模与模/数转换

CS# - 片选信号,低电平有效。CE - 芯片允许信号,高电平有效。R/C# - 读出和转换控制信号, =1 为读, =0 为转换。12/8#-数据输出格式选择控制线,

= 1 时 12 位同时输出; = 0 时 高 8 位、低四位分两次输出,左对齐格式

A0 - 字节方式下的高 / 低字节选择控制线。STS-状态输出信号线

转换过程中, STS 为高电平 转换完成后,该脚为低电平。

BIP-输入信号极性选择, 接地时输入单极性信号; 接 +10V 时输入双极性模拟信号(输出偏移码)

( 3 ) AD574 的控制信号:

Page 54: 第 7 章      数/模与模/数转换

图 7-15

AD574 的引脚信号12

+5V电源VLOGIC

3数据方式选择 12/8

片选 CS字节地址/短循环 4

56789

1011121314

A0

2827262524232221201918171615

读/转换 R/C片使能 CE

+12/+15V电源VCC

+10V 基准输出模拟地 AG

基准输入REFIN-12/-15V 电源VEE

双极性偏移 BIP OFF10V量程输入10VIN

20V量程输入20VIN

STSDB11 (MSB)DB10

DB0 (LSB)

DB9

DB8

DB7

DB6DB5

DB4

DB3

DB2

DB1

数字地 DG

AD574A

Page 55: 第 7 章      数/模与模/数转换

图 7-16

3. AD574 的输入连接REFIN

REFOUT

10VIN

20VIN

BIP

+12V

-12V

100Ω

100Ω

0~10V

0~20V

模入

AD574

REFIN

REFOUT

AD574

100Ω

BIP

10VIN

20VIN

-5V~+5V

-10V~+10V

模入

100Ω

100Ω增益

增益

失调 失调

Page 56: 第 7 章      数/模与模/数转换

图 7-17

4. AD574A 的输出接口(字节方式)D11D10D9D8D7D6D5D4D3D2D1D0

CE

R/C

CS

A0

D7

.

.

.

.

D0

地址译码

&IOW

IOR

80H~81HA0

12/8

AD574

Page 57: 第 7 章      数/模与模/数转换

以 8 位总线接口为例,直接读取(固定延时)方式实现一次转换的程序如下:OUT 80H, AL ; 启动 12 位转换CALL DELAY ; 延时,等待转换结束IN AL, 80H ; 读入高 8 位MOV AH, AL IN AL, 81H ; 读入低位字节,转换值在 AX 的高 12 位中

MOV CL, 4SHR AX, CL ; 把转换值移入 AX 低 12 位

Page 58: 第 7 章      数/模与模/数转换

7.4 数据采集系统某公司电镀线微机集散控制系统:一个以工控 PC ( PC - Bus industrial computer )为核心的数据采集系统。系统功能:

检测电镀工艺参数(温度、电流、安培小时累计)电镀槽温度控制,加料控制。行车控制

Page 59: 第 7 章      数/模与模/数转换

图 7-18

电镀线微机集散控制系统

Page 60: 第 7 章      数/模与模/数转换

工业控制数据采集系统以往用单片机,单板机配以各种AD , DA 芯片自行设计模拟量输入输出通道。

优点:成本低,结构紧凑。缺点:软硬件开发周期长,难度大。

工控 PC 特点:• 使用标准化的机箱,整机抗震、防尘能力强;• 有抗干扰能力极强的电源和主板,能 24小时连续工作。• 软件开发以高级语言为主,设计周期短,软件的调试、移植 较汇编语言方便。• 配有有各种商品化的 I/O 、 A/D 、 D/A 接口卡 , 结构紧凑 , 性能稳 定 , 用户可迅速组装成一套完整数据采集系统 ,系统升级方便。

7.4.1 工控 PC 简介

Page 61: 第 7 章      数/模与模/数转换

多功能 ISA总线接口卡:• 16 路开关量 I/O

• 16 路 A/D ( 12 位)• 1 路 D/A

• A/D 转换使用 AD574 ,配以 16 路模拟开关及量程切换• 占用 16 个端口地址,基地址由开关设定

7.4.2 PCL818 多功能接口卡

Page 62: 第 7 章      数/模与模/数转换

1. 定时中断方式采样及数字滤波 对 8 个点的温度数据定时巡回采集

在 1CH 定时中断服务程序中 (每 55ms 进入一次 )对 8 路温度模拟量进行查询式输入,一路 A/D 转换时间小于 40μs , 8 路采样所耗费的时间小于 0.5ms 。

7.4.3 数据采集软件设计

Page 63: 第 7 章      数/模与模/数转换

采用移动算术平均方法进行“数字滤波”。构造一个“先进先出( FIFO ”) 队列,每采样一次,把 15 个数据顺序向前移动一个位置,新的数据放入这个队列的尾部。 将本次的采样值与前 15 次采样值相加,求出的平均值作为本次的采样值。 本例中,对于 8 个点的数据采集,构造了二维数组ti[8][16] ,每一路温度存入数组的一行 ti[i] ,滤波后

Page 64: 第 7 章      数/模与模/数转换

2. 非线性标度变换• 实际的传感器存在着“非线性”,可以把温度 K 和转换值 AD 之间的关系近似看作由 3 个点表示的二条“折线”。• 测量每个传感器的三点 6 个坐标值, N 路 A/D 有N×6 个参数,将这些数据存放在 TEMP.TXT 文件中。 根据每个传感器的 6 个坐标值(k1 , k2 , k3 , ad1 , ad2 , ad3) 计算相应的物理量。测量值 AD 和它所对应的温度 K 之间的转换公式为:AD >AD2 时:K=K2+(K3-K2) (AD-AD2) /(AD3-AD2)• AD <AD2 时:

K=K1+(K2-K1) (AD-AD1) /(AD2-AD1)

Page 65: 第 7 章      数/模与模/数转换

/* 符号名、全局变量和函数声明 */ # include “dos.h” # define N 8 /* 采样点数 */ # define BASE 0x300 /* AD818卡基地址 */ # define INTERRUPT 0x1c /* 定时中断类型号 */ static unsigned t[N],sum[N]={0},sample[N][16]={0} ,sp=0;Void interrupt far (* oldhandler)( );

/* 定义 oldhandler 为指向中断服务程序的指针*/

3. 温度数据采集程序

Page 66: 第 7 章      数/模与模/数转换

main( ){ int i, j ; void far handler( ); /* 函数 handler( ) 声明 */oldhander = getvect ( INTERRUPT ); /* 读出原 1CH 中断向量 */setvect (INTERRUPT , handler ); /* 把新的 1CH 中断向量写入向量表 */ …………..}

主函数( 1 ) ---- 设定中断向量 */

Page 67: 第 7 章      数/模与模/数转换

unsigned int AD818( int scan ) /* 函数 AD818从 AD818 卡采集一次数据, scan 为通道号 */{ int lbit, hbit, it=0, result ; outportb (BASE+2, scan) ; /* 向 AD818 输出通道号 */ outportb (BASE +1, 0) ; /* AD 输入量程控制 */ outportb (BASE +9, 0) ; /* 不使用中断或 DMA */ outportb (BASE +0, 0) ; /* 启动 AD 转换 */

数据采集函数 ---- AD818( ) (1)

Page 68: 第 7 章      数/模与模/数转换

do { it = it+1; result = inportb(BASE +8)&128; /* 读出 AD 状态寄存器,查询 EOC ,等待 AD 转换完成*/ } while (result!=0 && it<=10000); lbit=inportb (BASE + 0) & 0xf0;

/* 读入低 8 位,清除其中无效的最低 4 位 */ hbit=inportb (BASE + 1); /* 读入高 8 位 */ if (it<=10000) return (hbit*16+lbit/16); /* 采集正常,拼接二段数据 */ else return (0); /* 采集数据超时, 818 卡有故障 */ }

数据采集函数 ---- AD818( ) (2)

Page 69: 第 7 章      数/模与模/数转换

void interrupt far handler( ) /* 55ms 定时中断服务程序,采集每个点的数据 */{ int isp, s ; for ( isp=0 ; isp<=N- 1; isp++) { s = AD818( isp ) ; /* 采集一个点的数据 */ sum[isp] = sum[isp] - sample[isp][sp] + s ; /* 求 16 个采样值的和 */ sample[isp][sp] = s; /* 将本次采样值替换最早的采样值 */ t[isp] = nonlinear(sum[isp] / 16) ; /* 求平均并非线性补偿后得到现场温度 */ } if ( ++sp == 16) sp = 0; /* 移动 FIFO 队列未指针 */ oldhandler( ); } /* 进入原 1CH 中断服务程序,此后返回断点 */}

定时中断服务(数据采集)函数

Page 70: 第 7 章      数/模与模/数转换

习题 7

1. A/D 和 D/A 转换在微机应用中分别起什么作用?2. 怎样将 D/A 转换器连接到微型计算机?3. 修改图 7-5 ,将 DAC0832 的两级锁存合为一级使用,画出连接图,并编写输出三角波和锯齿波的程序。4. 一个 8 位 D/A 转换器的满量程(对应于数字量 255 )为 10V 。分别确定模拟量 2.0V 和 8.0V 所对应的数字量。5. 简述逐次逼近式 A/D 转换器的工作原理,并将它和 Σ-

ΔA/D 转换器进行比较。

Page 71: 第 7 章      数/模与模/数转换

6. 若 ADC 输入模拟电压信号的最高频率为 100KHZ ,采样频率的下限是多少?完成一次 A/D 转换时间的上限是多少?7. 在使用 A/D 和 D/A 转换器的系统中,地线连接时应注意什么?8. 怎样用一个 A/D 芯片测量多路信息 ?9. 一 台 工 控 PC 有 两 块 818 卡 , 基 地 址 分 别 为

base1,base2,试编制采样 24 路(一块卡 16 路,一块卡8 路)模拟量的 C 语言程序。