《微机原理与应用》模数与数模转换接口_第1页
《微机原理与应用》模数与数模转换接口_第2页
《微机原理与应用》模数与数模转换接口_第3页
《微机原理与应用》模数与数模转换接口_第4页
《微机原理与应用》模数与数模转换接口_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

《微机原理与接口技术》

辅助教学电子课件

第八章

数/模与模/数转换第八章D/A与A/D转换

教学重点DAC0832及其与主机的连接ADC0809及其与主机的连接8.1数/模(D/A)转换D/A(数/模)转换把数字量转换为模拟量A/D(模/数)转换将模拟量转换成数字量模拟量与数字量模拟量——连续变化的物理量数字量——时间和数值上都离散的量模拟/数字转换器ADCDAC数字/模拟转换器数字信号模拟信号现场信号1现场信号2现场信号n微型计算机放大器放大器放大器多路开关低通滤波传感器低通滤波传感器低通滤波传感器A/D转换器采样保持器数字信号受控对象控制信号模拟信号D/A转换器放大驱动电路…模拟输入输出系统传感器将各种现场的物理量测量出来并转换成电信号(模拟电压或电流)

放大器把传感器输出的信号放大到ADC所需的量程范围低通滤波器用于降低噪声、滤去高频干扰,以增加信噪比多路开关把多个现场信号分时地接通到A/D转换器采样保持器周期性地采样连续信号,并在A/D转换期间保持不变8.1.1D/A转换原理数字量→按权相加→模拟量1101B=1×23+1×22+0×21+1×20=13D/A转换器的原理图(1)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF电阻网络基准电压电子开关图示D/A转换器的原理图(2)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF阻抗=2R运算放大器虚地D/A转换器的原理图(3)Va=VREFVb=VREF/2Vc=VREF/4Vd=VREF/8I0=Vd/2R=VREF/(8×2R)I1=Vc/2R=VREF/(4×2R)I2=Vb/2R=VREF/(2×2R)I3=Va/2R=VREF/(1×2R)D/A转换器的原理图(4)Iout1=I0+I1+I2+I3

=VREF/2R×(1/8+1/4+1/2+1)Rfb=RVout=-Iout1×Rfb

=-VREF×[(20+21+22+23)/24]Vout=-(D/2n)×VREF8.1.2D/A转换器的主要参数分辨率:

D/A转换器对数字输入量变化的敏感程度的度量。例如:8位D/A转换器,转换后的电压满程量为5V,其最小分辨电压:

5V/256=20mV10位D/A转换器,对同样的转换电压,它能分辨的最小电压:5V/1024=5mV转换时间:数字输入到完成转换,输出达到最终的稳定值所需的时间电流型D/A转换器的转换时间在ns~μs之间,电压型的D/A转换器转换较慢转换精度

指D/A转换器实际输出电压与理论值之间的误差。与D/A转换器参考电压的精度、权电阻的精度有关。线性度:当数字量变化时,D/A转换器输出模拟量按比例关系变化的程度。D/A转换器的输入输出特性输入缓冲能力输入数据的宽度电流型还是电压型输入的码制是单极性输出还是双极性输出8.1.3DAC0832芯片DAC0832是8位的D/A转换芯片内部有两极输入缓冲寄存器和一个T型电阻网络电流输出型芯片图示1.DAC0832的内部结构LE2LE1RfbAGNDDAC0832VccILEVREF输入寄存器DGNDDI0~DI7D/A转换器DAC寄存器Iout2Iout1CSWR1WR2XFER2.DAC0832的数字接口8位数字输入端

DI0~DI7(DI0为最低位)输入寄存器(第1级锁存)的控制端

ILE、CS*、WR1*DAC寄存器(第2级锁存)的控制端

XFER*、WR2*LE2LE1DAC0832输入寄存器DI0~DI7D/A转换器DAC寄存器Iout1直通锁存器的工作方式3.DAC0832的工作方式直通锁存器的工作方式两级缓冲寄存器都是直通锁存器LE=1,直通(输出等于输入)LE=0,锁存(输出保持不变)DAC0832的工作方式:直通方式LE1=LE2=1输入的数字数据直接进入D/A转换器LE2LE1DAC0832输入寄存器DI0~DI7D/A转换器DAC寄存器Iout1直通方式的连接方法与使用ILE接+5VCS*,WR1*,WR2*,XREF*接地(数字信号地该方式数据输入不使用缓冲寄存器,在输入端DI7~DI0一旦出现数据就立即开始D/A转换。DAC0832的工作方式:单缓冲方式LE1=1,或者LE2=1两个寄存器之一始终处于直通状态另一个寄存器处于受控状态(缓冲状态)LE2LE1DAC0832输入寄存器DI0~DI7D/A转换器DAC寄存器Iout1单缓冲方式的连接方法与使用ILE接+5VWR1*接CPU的IOW*WR2*,XFER*接地(数字信号地),使DAC寄存器处于直通状态;CS*接I/O口地址译码器该方式数据写入只需一次,写入后即开始D/A转换。DAC0832的工作方式:双缓冲方式两个寄存器都处于受控(缓冲)状态能够对一个数据进行D/A转换的同时;输入另一个数据LE2LE1DAC0832输入寄存器DI0~DI7D/A转换器DAC寄存器Iout1双缓冲方式的连接方法与使用ILE固定接+5V;CPU的IOW信号复连到WR1*和WR2*端;用CS*作为输入缓冲器的“片选”信号;XFER*作为DAC寄存器的“片选”信号,它们分别接到两个I/O口地址译码输出。数据写入时要分两次进行:第一次输入待转换的数字量;第二次写操作只是一次“虚拟写操作”,写的内容无关紧要,目的是启动DAC寄存器的锁存功能。双缓冲方式的优点是在D/A转换的同时,可接收下一个待转换的数据。4.DAC0832的模拟输出Iout1、Iout2:电流输出端

满足:Iout1+Iout2=常量Rfb:反馈电阻引出端(电阻在芯片内)VREF:参考电压输入端

+10V~-10VAGND:模拟信号地VCC:电源电压输入端

+5V~+15VDGND:数字信号地单极性电压输出Vout=-Iout1×Rfb=-(D/28)×VREFRfbIout2Iout1Vout+_AGNDADIVREF单极性电压输出举例设VREF=-5VD=FFH=255时,最大输出电压:

Vmax=(255/256)×5V=4.98VD=00H时,最小输出电压:

Vmin=(0/256)×5V=0VD=01H时,一个最低有效位(LSB)电压:

VLSB=(1/256)×5V=0.02VVout=-(D/2n)×VREF8.1.4DAC芯片与主机的连接DAC芯片相当于一个“输出设备”,至少需要一级锁存器作为接口电路考虑到有些DAC芯片的数据位数大于主机数据总线宽度,所以分成两种情况:1.主机位数等于或大于DAC芯片位数2.主机位数小于DAC芯片位数1.主机位数大于或等于DAC芯片的连接moval,bufmovdx,portdoutdx,al译码ABD0~D7CLKDACVout+_ALS273IOWDAC0832单缓冲方式连接WR1CSIOW5V+5VRfbIout2Iout1WR2XFERDGNDAGNDD0~D7DI0~D17VccILEVREFVout+_A译码AB2.主机位数小于DAC芯片的连接数字数据需要多次输出接口电路也需要多个(级)锁存器保存多次输出的数据并需要同时将完整的数字量提供给DAC转换器CPUDAC8位12位两级锁存电路模拟输出12位DAC第2级12位锁存控制第1级低8位锁存控制第1级高4位锁存控制D0~D74位锁存器4位锁存器8位锁存器8位锁存器由同一个信号控制关键的一级锁存无需输出数据简化的两级锁存电路模拟输出12位DAC第2级12位锁存控制第1级低8位锁存控制D0~D74位锁存器8位锁存器8位锁存器由同一个信号控制关键的一级锁存需要输出高4位数据movdx,port1moval,bloutdx,almovdx,port2moval,bhoutdx,alDAC芯片的应用举例-锯齿波发生器

mov

dx,portd

mov

al,0repeat: outdx,al

inc

al

jmp

repeat输出正向锯齿波2次数据输出的时间间隔02LSB1LSB255LSB254LSB锯齿波周期8.2A/D转换器模拟量数字量模拟/数字转换器ADC8.2.1A/D转换的基本原理存在多种A/D转换技术,各有特点,分别应用于不同的场合4种常用的转换技术计数器式逐次逼近式双积分式并行式1.计数器式以最低位为增减量单位的逐步计数法时钟复位数字输出比较器模拟输入计数器D/A转换器转换结束图示启动信号将计数器清0,产生的8位数字量经内部的D/A转换输出0伏电压;该电压被送到比较器与输入的模拟电压进行比较;计数式A/D转换原理图示当比较结果小于输入的模拟电压时,比较器输出高电平,启动计数器开始计数;计数器在CLK的驱动下加1计数,使得D/A转换后的电压不断上升;当D/A转换的电压等于输入的模拟电压时,比较器输出为0,使计数器停止计数。此时,数据线D7~D0上的数字量就是A/D转换的结果。2.逐次逼近式从最高位开始的逐位试探法时钟复位数字输出转换结束比较器模拟输入寄存器D/A转换器图示逐次逼近式A/D转换原理当转换器收到启动信号后,逐次逼近寄存器被清“0”,通过内部D/A转换器使输出电压V0为0,转换开始:图示在第一个CLK周期控制电路使逐次逼近寄存器的D7位为1(1000,0000)。这组数字经内部D/A转换后,输出电压V0与输入模拟电压Vi比较:若Vi>V0,比较器输出为“高”,通过控制电路将D7置“1”

保留若Vi<V0,比较器输出为“低”,通过控制电路将D7位清0在第二CLK周期使D6位为1(1100,0000),经D/A转换后对应输出电压V0,并与Vi比较:若Vi>V0,比较器输出为“高”,通过控制电路将D6位“1”保留;若Vi<V0,比较器输出为“低”,通过控制电路将D6位清0;重复上述过程,到D0位试探完毕,转换结束,逐次寄存器中的数值经缓冲器输出。3.双积分式两个积分阶段实质是电压/时间变换IREFIinVinVREF积分器比较器V/IV/I时钟启动计数计数器数字输出T2T1Vc固定斜率时间可变固定时间斜率可变转换结束4.并行式速度快成本高直接比较法编码电路VinVREF数字输出比较器RRRRRRR/2R/2二、主要技术指标转换精度量化误差非线性误差其它误差总误差=各误差的均方根量化间隔一个最低有效位对应的模拟量△=Vmax/2n例:某8位ADC的满量程电压为5V,则其分辨率为:5V/256=19.6mV绝对量化误差=1/2△转换时间实现一次转换需要的时间。精度越高(字长越长),转换速度越慢。逐次逼近式A/D转换器每进行一次比较,即决定数字码中的一位码的去/留操作,需要8个时钟脉冲,这样8位转换器完成一次转换需要8X8=64个时钟脉冲。例如ADC0809均是8位逐次逼近式A/D转换器,典型的工作时钟频率为640kHz,完成一次转换的时间大约为:54输入动态范围允许转换的电压的范围。如0~5V、0~10V等。8.2.2ADC0809芯片具有A/D转换的基本功能CMOS工艺制作8位逐次逼近式ADC转换时间为100s包含扩展部件多路开关,可完成8路A/D转换三态锁存缓冲器,可以和微处理器的数据线直接相连图示ADC0809的内部结构图ADC0809地址锁存和译码OE通道选择开关ADDAADDBADDC1N0IN1IN2IN3IN4IN5IN6IN78位三态锁存缓冲器DACVcc比较器CLOCKSTARTGNDVREF(+)VREF(-)ALE逐次逼近寄存器SAR定时和控制D0D1D2D3D4D5D6D7EOC1.ADC0809的内部结构和外部引脚CLK:时钟输入信号,典型的时钟频率为640kHzIN7~IN0:8路模拟量输入ADDC,ADDB,ADDA:模拟通道选择信号: ADDC,ADDB,ADDA=000选择IN0 ADDC,ADDB,ADDA=001选择IN1… ADDC,ADDB,ADDA=111选择IN7图示ALE:地址锁存允许信号 有效时锁存ADDC~ADDA的通道选择信号START:A/D转换启动信号高电平时使内部的逐次逼近寄存器清0由高→低时开始转换START常与ALE短接,以便同时锁存通道选择信号,并开始A/D转换START和ALE的信号宽度不小于100μsEOC:转换结束信号EOC由低→高表示转换结束EOC可作为CPU的中断请求信号OE:输出允许信号OE有效时,打开输出三态门,输出转换后的数字量D7~D0:输出数据线。VREF(+),VREF(-):参考电压。VCC:工作电压+5V2.ADC0809的转换时序D0~D7OEEOCSTART/ALEADDA/B/CDATA100s2s+8T(最大)200ns(最小)转换启动信号转换结束信号3.ADC0809的转换公式输入模拟电压输出数字量基准电压正极基准电压负极单极性转换示例基准电压VREF(+)=5V,VREF(-)=0V输入模拟电压Vin=1.5V N=(1.5-0)÷(5-0)×256

=76.8≈77=4DH双极性转换示例基准电压VREF(+)=+5V,VREF(-)=-5V输入模拟电压Vin=-1.5V N=(-1.5+5)÷(5+5)×256

=89.6≈90=5AH8.2.3ADC芯片与主机的连接ADC芯片相当于“输入设备”,需要接口电路提供数据缓冲器主机需要控制转换的启动主机还需要及时获知转换是否结束,并进行数据输入等处理芯片与系统的连接模拟输入端Ini:单路输入多路输入多路输入时ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809输入0输入1输入2输入3输入4CPU指定通道号单路输入时ADDCADDBADDAIN4ADC0809输入+5V66通道地址线ADDA-ADDC的连接多路输入时,地址线不能接死,要通过一个接口芯片与数据总线连接。接口芯片可以选用:简单接口芯片74LS273,74LS373等(占用一个I/O地址)可编程并行接口8255(占用四个I/O地址)ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809输入DB74LS273Q2Q1Q0CP来自I/O译码D0-D7ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809DB8255PB2PB1PB0CS#来自I/O译码D0-D7A1A0A1A0数据输出线的连接与主机的连接可分成两种方式直接相连:用于输出带有三态锁存器的ADC芯片通过三态锁存器相连:适用于不带三态锁存器的ADC芯片,也适用带有三态锁存缓冲器的芯片ADC芯片的数字输出位数大于系统数据总线位数,需把数据分多次读取69ALE和START端的连接独立连接:用两个信号分别进行控制——需占用两个I/O端口或两个I/O线;统一连接:用一个脉冲信号的上升沿进行地址锁存,下降沿实现启动转换——只需占用一个I/O端口或一个I/O线。ADC0809ALESTART独立连接来自I/O译码1来自I/O译码2ADC0809ALESTART统一连接来自I/O译码ADC0809ALESTART独立连接来自I/O译码1来自I/O译码2ADC0809ALESTART统一连接来自I/O译码A/D转换的启动

主机产生启动信号有两种方法编程启动软件上,执行一个输出指令硬件上,利用输出指令产生ADC启动脉冲,或产生一个启动有效电平定时启动启动信号来自定时器输出72判断转换结束的方法软件延时等待(比如延时1ms)此时不用EOC信号,CPU效率最低软件查询EOC状态。把EOC作为中断申请信号,接到8259的IN端。在中断服务程序中读入转换结果,效率较高

转换结束信号的处理

不同的处理方式对应程序设计方法不同①查询方式:把结束信号作为状态信号②中断方式:把结束信号作为中断请求信号③延时方式:不使用转换结束信号④DMA方式:把结束信号作为DMA请求信号例

用ADC0809实现对8路模拟输入信号的循环数据采集,转换结果放在DATA为首的内存单元中。8255初始化

INIT_8255PROCNEARMOVDX,037BHMOVAL,91H

;A,B,C均为方式0,A入,B出,CL入OUTDX,ALRET

INIT_8255ENDPSTART:

MOVAX,SEGDATAMOVDS,AXMOVSI,OFFSETDATA

CALLINIT_8255;初始化8255MOVBL,0

;通道号,初始指向第0路MOVCX,8

;共采集8次,每路采集一次AGAIN:

MOVAL,BLMOVDX,0379H

OUTDX,AL;送通道地址ORAL,10HOUTDX,AL;送ALE信号(上升沿)ANDAL,0EFHOUTDX,AL

;输出START信号(下降沿)

NOP

;空操作等待转换MOVDX,037AHWAIT1:INAL,DX;读EOC状态ANDAL,02H

JZWAIT1;若EOC为低电平则等待MOVDX,0379HMOVAL,BLORAL,20HOUTDX,AL;EOC端为高电平则输出读允许信号OE=1MOVDX,0378HINAL,DX;读入变换结果MOV[SI],AL

;将转换的数字量送存储器

INCSI;修改指针INCBL;修改通道地址值

LOOPAGAIN

;若未采集完则再采集下一路数据MOVDX,0379HMOVAL,0OUTDX,AL

;若8路数据已采集完则回到初始状态

HLT例11.1中断方式举例D0~D7220hIRQ2A0~A9译码VccD0~D7EOCADDAADDBADDCALE模拟输入(0~5V)500KHzCLOCKVREF(+)+5VIN0OESTARTGNDVREF(-)IORIOW主程序 ;数据段

adtempdb0 ;给定一个临时变量

;代码段

…… ;设置中断向量等工作

温馨提示

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

评论

0/150

提交评论