第9章AD、DA转换接口2014_第1页
第9章AD、DA转换接口2014_第2页
第9章AD、DA转换接口2014_第3页
第9章AD、DA转换接口2014_第4页
第9章AD、DA转换接口2014_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1微机原理与接口技术2014年11月第9章A/D、D/A转换接口

2

9.1D/A与A/D接口概述9.1.1一个典型的计算机自动控制系统

数/模(D/A)和模/数(A/D)转换技术主要用于计算机实时控制和自动测量系统中。在工业控制和参数测量时,经常会遇到如温度、压力、流量等连续变化的物理量(通称模拟量)。用计算机处理这些模拟量必须先将其转换为电信号,然后再经A/D转换器将其转换为数字量。对于大多数的被控对象,计算机加工处理后输出的数字形式控制信号还应经D/A转换变成模拟量。才能推动执行机构工作。一个包含A/D和D/A转换的计算机闭环自动控制系统

如下图所示3生

程传感器执行机构A/D转换器I/O接口计算机D/A转换器I/O接口图9.1典型的计算机自动控制系统模拟量输入通道的组成典型的模拟量输入通道由以下几部分组成1.传感器-非电量的模拟量转换成电量2.量程放大器-把微弱信号放大到A/D转换器所要求输入的量程范围3.低通滤波器-降低噪声,滤去不必要的干扰,以增加信噪比4.多路开关-多个模拟量共用一个A/D转换器进行分时采样和转换。5.采样保持电路-模拟信号是变化的,完成一次转换需要时间,在A/D转换期间,保持输入信号不变的电路。6.A/D转换器-将输入的模拟量转换成数字量,供计算机读取。典型的模拟量输出通道由以下几部分组成1.D/A转换器-把计算机输出的数字量转换成模拟量2.锁存器-D/A转换需要一定的转换时间,在转换期间,输入待转换的数字量应该保持不变,若D/A转换芯片上已带有锁存器,则不必再额外增加。3.放大驱动电路-为了驱动受控设备,采用功率放大器作为模拟量输出的驱动电路。69.1.2模/数转换器(ADC)的主要性能参数1.分辨率(Resolution)

分辨率是指A/D转换器响应输入电压微小变化的能力。通常用数字输出的最低位(LSB)所对应的模拟输入的电平值表示。若输入电压的满量程为VFS,转换器的位数为n,分辨率为(1/2n)VFS.,通常用位数来表示分辨率,如8位、12位等。2.量化误差(Quantizingerror)

在A/D转换中由于整量化产生的固有误差。量化误差在±1/2LSB(最低有效位)之间。

一个8位的A/D转换器,它把输入电压信号分成28=256层,若它的量程为0~5V,那么,量化单位q为:

q==≈0.0195V=19.5mV例如73.转换时间(Conversiontime)

转换时间是A/D完成一次转换所需要的时间。一般转换速度越快越好,常见有高速(转换时间<1us)、中速(转换时间<1ms)和低速(转换时间<1s)等。4.绝对精度

对于A/D,指的是对应于一个给定量,A/D转换器的误差,其误差大小由实际模拟量输入值与理论值之差来度量。通常用数字量的最小有效值LSB的分数值来表示绝对精度。如+-LSB。5.相对精度

对于A/D,指在零点满量程校准后,任一数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。用模拟电压满量程的百分比表示。例如,对于一个8位0~+5V的A/D转换器,如果其相对误差为1LSB,则其绝对误差为19.5mV,相对误差为0.39%。(19,。5mv/5v)4.电源灵敏度 电源灵敏度是指A/D转换器的供电电源的电压发生变化时,产生的转换误差。用电源电压变化1%时相当的模拟量变化的百分数表示。5.量程 量程是指所能转换的模拟输入电压范围。分单极性、双极性两种类型。量程:0——5v,-5v——5v6.输出逻辑电平 多数A/D转换器的输出逻辑电平与TTL电平兼容。7.工作温度范围 由于温度会对比较器、运算放大器、电阻网络等产生影响,故只在一定的温度范围内才能保证额定精度指标。99.1.3数/模转换器(DAC)的主要性能参数1.分辨率(Resolution)

分辨率表明DAC对模拟量的分辨能力,它是最低有效位(LSB)所对应的模拟量,它确定了能由D/A产生的最小模拟量的变化。通常用二进制数的位数表示DAC的分辨率,如分辨率为8位的D/A能给出满量程电压的1/28的分辨能力,显然DAC的位数越多,则分辨率越高。2.线性误差(Linearityerror)相邻两个数字量之间的差应是1LSB,即理想的转换特性应是线性的。在满量程范围内,偏离理想的转换特性的最大值称为线性误差。D/A的实际转换值偏离理想转换特性的最大偏差与满量程之间的百分比称为线性误差。103.建立时间(Settingtime)建立时间也称稳定时间,是指在D/A的数字输入端加上满量程的变化(如从全“0”变为全“1”)以后,其模拟输出稳定到最终值±1/2LSB时所需的时间.4.温度灵敏度

它是指数字输入不变的情况下,模拟输出信号随温度的变化。温度每变化1℃,增益、线性度、零点及偏移(对双极性D/A)等参数的变化量。一般D/A转换器的温度灵敏度为±50PPM/℃。PPM为百万分之一。5.输出电平

不同型号的D/A转换器的输出电平相差较大,一般为5V~10V,有的高压输出型的输出电平高达24V~30V。11

9.2DAC0832数/模转换器

D/A转换器是计算机或其它数字系统与模拟量控制对象之间联系的桥梁,它的任务是将离散的数字信号转换为连续变化的模拟信号。在工业控制领域中,D/A转换器是不可缺少的重要组成部分。9.2.1D/A转换原理数字量是由一位一位的数位构成的,每个数位都代表一定的权。为了把一个数字量变为模拟量,必须把每一位的数码按照权来转换为对应的模拟量,再把各模拟量相加,这样,得到的总模拟量便对应于给定的数据。D/A转换器的主要部件是电阻开关网络,通常是由输入的二进制数的各位控制一些开关,通过电阻网络,在运算放大器的输入端产生与二进制数各位的权成比例的电流,经过运算放大器相加和转换而成为与二进制数成比例的模拟电压。9.2.1D/A转换原理分析输入数字量和输出模拟电压Uo之间的关系

T型网络开路时的输出电压UA即是反相比例运算电路的输入电压。反相比例运算电路T型电阻网络2RA+URS2S0S1S32R2R2R2Rd0d1d2d30RRR110Uo++-ARF2R0011+–

转换原理用戴维宁定理和叠加定理计算UAA+URS2S0S1S32R2R2R2Rd0d1d2d30RRR1102R0011最低位(LSB)最高位(MSB)1000对应二进制数为00012.转换原理对应二进制数为0001时,A2R2R2RRRRR等效电路如右下图1122332R2R2R2RRRR2RURARA00对应二进制数为0001时,等效电路如下RA同理:对应二进制数为0010时,有同理:对应二进制数为1000时,有同理:对应二进制数为0100时,有AR17

9.2.2DAC0832数/模转换器9.2.2DAC0832的内部结构与引脚图

图9.2给出了DAC0832的内部结构。

图9.3给出了DAC0832的引脚图。DAC0832是一种相当普遍且成本较低的数/模转换器。该器件是一个8位转换器,它将一个8位的二进制数转换成模拟电压。

18图9.3DAC0832引脚图720

3

12

11

8

1

CSVREF

WR1RFB

D0D1

D2

D3

D4

D5

D6

D7

XFERILEVCC

DGNDAGND

2

18

9

6

5

4

16

15

14

13

19

10

17

IOUT2

IOUT1

DAC0832WR220各引脚的功能如下:D0~D7:8位数据输入端。CS:片选信号输入端。WR1、WR2:数据写入信号1和2,,低电平有效。ILE:输入寄存器允许信号,当CS,WR1为低电平,ILE为高时,LE1=1,输入数据立即被送到8位输入寄存器的输出端。XFER:传送控制信号,低电平有效。用于控制WR2是否起作用,控制多个DAC0832同时输出时特别有用IOUT1和IOUT2:互补的电流输出端。21RFB:反馈电阻,被制作在芯片内,与外接的运 算放大器配合构成电流/电压转换电路。

VREF:参考电压输入端,转换器的基准电压。

VCC:芯片电源,工作电源输入端。

AGND:模拟地,模拟电路接地点。

DGND:数字地,数字电路接地点。22(1)直通方式9.2.3DAC0832的工作方式DAC0832可工作在三种不同的工作模式:

当ILE接高电平,CS,WR1、WR2和XFER都接数字地时,DAC处于直通方式,8位数字量一旦到达D0~7输入端,就立即加到D/A转换器,被转换成模拟量。此种方式不能直接和数据总线相连接。23(2)单缓冲方式

单缓冲方式是将一个锁存器处于受控锁存器状态或两个寄存器同步受控,另一个锁存器处于直通方式,输入数据经过一级缓冲送入D/A转换器。一般做法是将WR2和XFER接地,使DAC寄存器处于直通状态,另外把ILE接高电平,CS接端口地址译码信号,WR1接CPU系统总线的IOW信号,这样可通过一条输出指令,选中该端口,使CS和WR1有效,启动D/A转换。(3)双缓冲方式即数据通过两个寄存器锁存后再送入D/A转换电路,执行两次写操作才能完成一次D/A转换。双缓冲方式的一大用途是数据接收和启动转换可以异步进行在对数据转换的同时,能进行下一个数据的接收,以提高转换速率。将ILE=1,WR1和WR2接CPU的IOW,CS和XFER分别接两个不同的I/O地址译码信号。执行输出指令时,WR1和WR2均有效。这样第一条输出指令,选择CS端口,把数据写入输入寄存器,再执行第二条输出指令,选择XFER端口,把输入寄存器的内容写入DAC寄存器,实现DA转换。另一用途是可实现多个模拟输出通道同时进行DA转换,在不同的时刻,把要转换的数据分别打入各DA芯片的输入寄存器,然后由一条转换命令同时启动多个DA转换。试画出3片DAC0832构成的3路D/A转换系统。WR1和WR2接CPU的写信号WR,3个DA芯片的CS引脚分别接译码器的前3个片选输出信号,3个XFER引脚连在一起,街道译码器的第4个片选信号上,ILE由CPU形成的一个禁止信号来控制,该信号为低电平时,禁止将数据写入输入寄存器。为高电平时,先用3条输出指令选择3个端口,分别将数据写入各个DA芯片的输入寄存器,当数据都就绪后,再执行一条输出指令,使XFER有效,同时选通3个DA芯片的DAC寄存器,实现同步转换。P4529.2.4DAC0832与CPU的连接D/A转换器与微处理器间的信号连接包括三部分,即数据线、控制线和地址线。微处理器的输出数据要传送给D/A转换器,首先要把数据总线上的输出信号连接到D/A转换芯片的数据输入端。若D/A芯片内带有锁存器,微处理器就把D/A芯片当作一个并行输出端口;若D/A芯片内无锁存器,微处理器就把D/A芯片当作一个并行输出的外设,二者之间还需增加并行输出的接口。这是因为微处理器要处理各种信息,其数据总线上的数据总是不断变化的,使得送给D/A转换器的数据在数据总线上停留时间很短,因而在一般情况下需要锁存器来保存微处理器送给D/A转换器的数据。若cs的端口地址为320H,XFER的端口地址为321H,CPU执行一条输出指令,将数据打入输入寄存器,再执行第二条输出指令,将输入寄存器的内容写入DAC寄存器,并启动DA转换。

代码如下:

MOVDX,320H

MOVAL,DATA

OUTDX,AL

INCDX

OUTDX,AL289.2.4DAC0832与CPU的连接

由于DAC0832内部含有数据锁存器,在与CPU相连时,使其可直接挂在数据总线上。DAC0832采用单缓冲方式

与CPU的连接如图9.4所示。29I1I2I3I4I5I6I7I8I9I10O1O2O3O4O5O6O7O8GAL16V8WRA0A1A2A3A4A5A6A7M/IO+5V10K20HCSWR1WR2DGNDD0~D7D0~D7ILEXFERVREFIOUT1IOUT2AGND_+RFBLM741+5VU0DAC0832图9.4DAC0832与CPU的单缓冲方式连接电路30下面举例说明如何编写D/A转换程序。例

编写图9.4中DAC0832输出三角波的汇编程序,要求三角波的最低电压为0V,最高电压为2.5V。分析:三角波电压范围0~2.5V,对应的数字量 00H~7FH。三角波的下降部分,从7FH 减1,直到数字量降为00H;上升部分则 从00H加1,直到7FH。31相应的程序如下:MOVAL,7FH ;设2.5V初值

DOWN:OUT20H,AL;输出模拟信号到端口20H,三角波下降

;段

DECAL ;输出值减1

CMPAL,00H;输出值到达0V?

JNZDOWN;输出值未达到0V,则跳到DOWN

UP:

OUT20H,AL ;输出模拟量到端口20H,三角波上升段

INCAL ;输出值加1

CMPAL,7FH ;判别输出值是否到达2.5V

JNZUP ;输出值未达到2.5V则跳到UP JMPDOWN;输出值达到2.5V则跳到DOWN循环。32

本例中DAC0832输出的三角波如图9.5所示。若8086的时钟频率为5MHz,则可计算出该三角波的周期大约为1.53ms,即频率约为654Hz。如果要进一步降低三角波的频率(增大其周期),可在每次D/A转换之后加入适当的延时。图9.5DAC0832输出的三角波形图33

9.3ADC0809模/数转换器9.3.1ADC0809的内部结构与引脚图

ADC0809是一种普遍使用且成本较低的CMOS材料A/D转换器。它具有8个模拟量输入通道,可将模拟量转换为8位二进制数字量。

图9.6给出了ADC0809的内部结构。

图9.7给出了ADC0809的引脚图。34图9.6ADC0809转换器的内部结构图EOCOED0D7REF(+)REF(-)ADDCADDBADDAALEIN0IN7比较器通道选择开关逐位逼近寄存器(SAR)开关树型D/A8位锁存和三态门定时和控制通道地址锁存及译码模拟输入数字输出START35图9.7ADC0809的引脚图

10

CLOCK

D0

D1

D2

D3

D4

D5

D6

D7

ADDA

ADDB

ADDC

EOC

OE

ALE

START

REF(+)

REF(-)

Vcc

GND

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

17

14

8

15

18

19

20

21

25

24

23

7

9

22

6

12

16

11

13

26

27

28

1

2

3

4

5

ADC0809

CLOCK369.3.2ADC转换的基本原理ADC原理:用被变换信号与分层得到的若干量化刻度(QuantizeScale)相比较,看它的幅值在哪两个刻度之间,然后取其整值的过程。

存在多种A/D转换技术,各有特点,分别应用于不同的场合计数器式逐次逼近式(ADC0809)双积分式缺点:转换速度低;只能用于直流信号或慢变化信号的转换,优点:一是精度高,且抗干扰能力强。例如制作数字万用表等;电荷平衡ADC:改进双积分的积分电容介质吸收及速度问题。并行式371.计数器式38计数器式ADC原理集成比较器是一种特殊的运算放大器,它有两个信号输入端V+和V-,一个输出端,当V+≥V-时,输出高电平,反之输出低电平。由计数器对固定频率信号CLK进行计数,计数输出值送DAC,DAC的输出模拟量Vo与输入模拟量Vi在比较器中进行比较,随着计数的进行,Vo不断增加,当Vo>Vi,计数器停止计数,此时的计数值即是模拟量Vi对应的数字量。以最低位为增减量单位的逐步计数法(慢)392.逐次逼近式40逐次逼近ADC原理数字量由逐次逼近寄存器SAR产生。SAR使用对分搜索法产生数字量以8位数字量为例,SAR首先产生8位数字量的一半,即10000000B,试探模拟量的大小,若Vo>Vi,清除最高位,若Vo<Vi,保留最高位。在最高位确定后,SAR又以对分搜索法确定次高位,即以低7位的一半y1000000B(y为已确定位)试探模拟量的大小。重复这一过程,直到最低位bit0被确定,转换结束以最高位开始逐步试探,快419.3.3ADC0809与CPU的连接ADC0809与CPU的连接,主要是正确处理数据输出线(D0~D7),启动信号START和转换结束信号EOC与系统总线的连接问题。

图9.8给出了ADC0809与CPU的典型连接图。

A/D转换器与系统连接的问题1.启动信号的供给A/D转换器要求的启动信号一般有两种形式:即电平启动信号和脉冲启动信号。电平启动要求整个转换过程中都必须保证启动信号有效,如果中途撤走启动信号,就会停止转换而得到错误结果。为此,CPU一般要通过并行接口来对AD芯片发启动信号,或者用D触发器使启动信号在AD转换期间保持在有效电平。脉冲信号启动,通常用CPU执行输出指令时发出的片选信号和写信号即可在片内产生启动脉冲,从而开始转换。2.转换结束信号以及转换数据的读取A/D转换结束时,A/D转换芯片会输出转换结束信号,通知CPU读取转换数据。CPU一般可以采用4种方式和A/D转换器进行联络来实现对转换数据的读取。程序查询方式-程序不断读取AD转换结束信号,若发现结束信号有效,则读数据。中断方式-把转换结束信号作为中断请求信号。CPU等待方式-利用CPU的READY引脚的功能,设法在AD转换期间使READY处于低电平,使CPU停止工作,转换结束时,使READY成为高电平,CPU读取转换数据。第四种是固定的延迟程序方式-预先精确地知道完成一次AD转换所需要的时间,执行一个固定的延迟程序。AD转换芯片类型很多AD转换芯片输出端具有可控的三态输出门,输出端可以直接和微处理器的数据总线相连,由读信号控制三态门,转换结束后,微处理器通过执行一条输入指令产生读信号,将数据从AD取出AD转换芯片内部有三态输出门,但这种三态门不是受外部控制的,是由AD芯片在转换结束时自动接通的没有三态输出门电路的AD,这种AD芯片的数据输出线不能直接和微处理器的数据总线相连。13.5A/D转换器与微处理器的接口A/D转换芯片与微处理器接口时,除了要有数据信息的传送外,还应有控制信息和状态信息的联系。其工作过程是:CPU送出控制信号至A/D转换器的启动端,使A/D转换器开始转换;A/D转换需要一定的转换时间,当CPU查询到转换完成,CPU执行输入指令将A/D转换的结果读入。46下面举例说明如何编写A/D转换程序。例

编写图9.8中的A/D转换程序,具体要求如下:①顺序采样IN0~IN78个输入通道的模拟信号;②结果依次保存在ADDBUF开始的八个内存

单元中;③上述采样每隔100ms循环一次。设DELAY是一延时100ms子程序。

分析:(1)模拟输入通道IN0~IN7由A0~A2决定其端口

地址,分别为300H~307H,与IOW相配合,

可启动ADC0809进行转换;

(2)查询端口和读A/D转换结果寄存器的地址分 别为:308H和300H。

47图9.8ADC0809与CPU的连接图300H~307HOE

ALE

START

IN0

IN7

ADDC

ADDB

ADDA

CLK

EOC

D7

D0

REF(-)GND

500KHZ

REF+Vcc

()

+5V

A2

A1

8路模拟输入

IOR

IOW

ADC0809≥1308H~30FHD7

D0

A0

1

2

≥1I/O

译码A9

A3≥148相应的采集程序如下:

AD:MOVCX,0008H ;通道计数单元CX赋初值

MOVDI,OFFSETADDBUF;寻址数据区,结果保存

;在ADDBUF存储区

START:MOVDX,300H ;取IN0启动地址

LOOP1:OUTDX,AL ;启动A/D转换,AL可为

;任意值

PUSHDX ;保存通道地址

MOVDX,308H ;取查询EOC状态的端口

;地址WAIT:INAL,DX ;读EOC状态

TESTAL,80H ;测试A/D转换是否结束

JZWAIT ;未结束,则跳到WAIT;处

49MOVDX,300H;取读A/D转换结果寄存器的

;端口地址

INAL,DX ;读A/D转换结果

MOV[DI],AL;保存转换结果

INCDI ;指向下一保存单元

POPDX;恢复通道地址

INCDX ;指向下一个模拟通道

LOOPLOOP1 ;未完,转入下一通道采样

CALLDELAY;延时100msJMPAD ;进行下一次循环采样,跳至

;AD处。

50

9.4D/A与A/D应用举例

使用ADC0809和DAC0832来捕获和重放语音信号的实例。本例要求ADC0809采样大约1秒钟语音信号并保存到相应存储单元,D/A将此语音信号经扬声器重放10次,然后循环进行上述采样和重放,直到系统关闭。

图9.9给出了相应的电路。511819202123456791011121317272F7H2F6H2F5H2F0HI1

I2

I3

I4

I5

I6

I7

I8

I9

I10

I11

I12

I13

O1

O2O3O4AENIOWIORA9A8A7A6A5A4A3A2A1A0

U3

GAL20V8111224252316762292F6H2627281234510U2

VCCREF(+)IN0IN1

IN2IN3IN4IN5IN6IN7CLK+5VEOCADDAADDBADDCOEALESTART…

D0D7

放大器麦克风500KHZD7

2F5HD0

D1

D2

2F0HGNDREF(-)13+5VD7

D0

74112981918211…

103120+12V扬声器-12V+5V2F7HU1

17DAC0832ADC0809CSXFERDGNDAGNDRFBIOUT2VREFWR2WR1ILEIOUT1D7

D0

-+图9.9A/D和D/A与CPU连接图

52分析(1)DAC0832的I/O端口地址由GAL20V8译码产生的地址是2F7H;ADC0809的EOC状态查询地址为2F6H;读ADC0809转换结果端口地址为2F5H;启动A/D转换端口地址为2F0H。(2)该程序读大约1秒钟语音信号,然后重放10次,重复此进程直到系统被关闭。语音信号被采样存储在VOICE存储区中,采样率为每秒钟采样2048次。设DELAY是延时1/2048秒的子程序,且数据段中已申请2048个单元给VOICE。

53相应的程序如下:

START:CALLREAD ;调用A/D采样语音子程序

MOVCX,0AH ;置为10次

LOOP1:CALLWRITE ;调用D/A放音子程序

LOOPLOOP1 ;重复放音10次

JMPSTART ;进入下一次循环

READPROCNEAR ;A/D语音采样子程序

MOVDI,OFFSETVOICE;寻址数据区

MOVCX,0800H ;装入计数器CX=2048

READA:MOVAL,00H ;选择IN0通道,D2=0, ;D1=0,D0=0

MOVDX,2F0H ;DX指向A/D转换启动端口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论