AD转换技术(中断方式)
- 格式:doc
- 大小:40.00 KB
- 文档页数:4
11.2.4 典型的集成ADC 芯片为了满足多种需要,目前国内外各半导体器件生产厂家设计并生产出了多种多样的ADC 芯片。
仅美国AD 公司的ADC 产品就有几十个系列、近百种型号之多。
从性能上讲,它们有的精度高、速度快,有的则价格低廉。
从功能上讲,有的不仅具有A/D 转换的基本功能,还包括内部放大器和三态输出锁存器;有的甚至还包括多路开关、采样保持器等,已发展为一个单片的小型数据采集系统。
尽管ADC 芯片的品种、型号很多,其内部功能强弱、转换速度快慢、转换精度高低有很大差别,但从用户最关心的外特性看,无论哪种芯片,都必不可少地要包括以下四种基本信号引脚端:模拟信号输入端(单极性或双极性);数字量输出端(并行或串行);转换启动信号输入端;转换结束信号输出端。
除此之外,各种不同型号的芯片可能还会有一些其他各不相同的控制信号端。
选用ADC 芯片时,除了必须考虑各种技术要求外,通常还需了解芯片以下两方面的特性。
(1)数字输出的方式是否有可控三态输出。
有可控三态输出的ADC 芯片允许输出线与微机系统的数据总线直接相连,并在转换结束后利用读数信号RD 选通三态门,将转换结果送上总线。
没有可控三态输出(包括内部根本没有输出三态门和虽有三态门、但外部不可控两种情况)的ADC 芯片则不允许数据输出线与系统的数据总线直接相连,而必须通过I/O 接口与MPU 交换信息。
(2)启动转换的控制方式是脉冲控制式还是电平控制式。
对脉冲启动转换的ADC 芯片,只要在其启动转换引脚上施加一个宽度符合芯片要求的脉冲信号,就能启动转换并自动完成。
一般能和MPU 配套使用的芯片,MPU 的I/O 写脉冲都能满足ADC 芯片对启动脉冲的要求。
对电平启动转换的ADC 芯片,在转换过程中启动信号必须保持规定的电平不变,否则,如中途撤消规定的电平,就会停止转换而可能得到错误的结果。
为此,必须用D 触发器或可编程并行I/O 接口芯片的某一位来锁存这个电平,或用单稳等电路来对启动信号进行定时变换。
前言在数据采集系统中,模数转换器是其中至关重要的环节,模数转换器的精度以及系统的成本直接影响到系统的实用性,因此,如何提高模数转换器的精度和降低系统的成本是衡量系统是否具有实际应用价值的标准。
一般来说,想提高模数转换器的精度,势必会引起成本的增加,这就要求我们按照具体的精度要求合理的设计模数转换器,来达到具体的要求和降低系统的成本。
在精度要求不是很高的场合,我们经常利用嵌入微控制器片内的A/D转换器来实现模数转换,以此来降低系统的成本,但由此又产生了另外的问题,嵌入式模数转换器是否具有所要求的精度,若超出测量范围如何与测量电路进行接口,以及如何减小微控制器的电磁干扰提高嵌入式模数转换器的精度问题。
这都要求我们采取不同的措施来提高嵌入式模数转换器的精度。
1 精度与分辨率ADC的精度和分辨率是两个不同的概念。
精度是指转换器实际值与理论值之间的偏差;分辨率是指转换器所能分辨的模拟信号的最小变化值。
ADC分辨率的高低取决于位数的多少。
一般来讲,分辨率越高,精度也越高,但是影响转换器精度的因素很多,分辨率高的ADC,并不一定具有较高的精度。
精度是偏移误差、增益误差、积分线性误差、微分线性误差、温度漂移等综合因素引起的总误差。
因量化误差是模拟输入量在量化取整过程中引起的,因此,分辨率直接影响量化误差的大小,量化误差是一种原理性误差,只与分辨率有关,与信号的幅度,采样速率无关,它只能减小而无法完全消除,只能使其控制在一定的范围之内,一般在±1/2LSB范围内。
1.1 偏移误差偏移误差是指实际模数转换曲线中数字0的代码中点与理想转换曲线中数字0的代码中点的最大差值电压。
这一差值电压称作偏移电压,一般以满量程电压值的百分数表示。
在一定温度下,多数转换器可以通过对外部电路的调整,使偏移误差减小到接近于零,但当温度变化时,偏移电压又将出现,这主要是由于输入失调电压及温漂造成的。
一般来说,温度变化较大时,要补偿这一误差是很困难的。
第5章 DSP的A/D转换器 本章主要内容:Ø F281x的A/D转换器的特点(Features of F281x ADC)Ø 自动排序器原理(Autoconversion Sequencer Principle)Ø 不间断的自动排序模式(Uninterrupt Autosequenced Mode)Ø ADC时钟定标(ADC Clock Prescaler )Ø ADC寄存器(ADC Registers)Ø ADC的C语言编程实例(ADC C Programing Examples)5.1 F281x的A/D转换器的特点 TMS320F281x DSP内部有一个12位模/数转换器(Analog to Digital Converter, ADC),可有16通道模拟输入信号, 转换时间可以在80ns以内。
16个结果寄存器ADCRESULT0~ ADCRESULT15存储转换结果。
ADC模块可以设置为两个独立的8通道转换器,将一系列转换自动排序,每个模块可以从8个输入通道中任意选择输入。
ADC模块也可以工作在级联模式(Cascaded Sequencer Mode),自动排序器(Sequencer)就变成一个单16通道的排序器。
该A/D转换器的功能包括:•12位ADC模块,内含采样/保持(Sample/Hold, S/H)电路。
•同时采样或顺序采样模式。
•模拟电压输入范围0~3V。
•25 MHz的ADC时钟频率,转换时间短。
•16通道,多路选通输入。
•可在一次采样中同时实现16路自动转换的自动排序。
每个转换可以从1~16输入通道中任意选择。
•排序器可以作为两个独立的8通道排序器或一个16通道排序器即级联模式。
•16个结果寄存器存储转换结果,每个寄存器可独立寻址。
输入模拟电压和采样结果的关系为:数字结果=4095×(输入模拟电压-ADCLO)/3。
AD 转换器功能模块图:V INV REF OE逐次逼近式ADC 的转换原理(以8位的寄存器为例)A/D 转换器片内有D/A 转换和电压比较器首先向片内D/A 转换器输入1000 0000,若电压比较器:V IN > V N (V N 为片内D/A 转换的输出,V IN 为A/D 转换器的输入电压),N 位寄存器的首位置1 (若V IN < V N ,则寄存器首位写0);再向D/A 转换输入1100 0000(首位写0时,输入0111 1111),若V IN > V N 则寄存器第二位置1(若V IN < V N ,则写0);再向D/A 转换输入1110 0000(或0011 1111),若V IN > V N 则寄存器第三位置1(若小于,则写0);依次下去直到寄存器第8位赋值结束,控制逻辑监测到比较放大器进行8次后,EOC 输入信号,让A/D 转换器将结果通过锁存缓存器输出至D0~D9。
AD0804工作原理引脚功能及典型接法如下图:转换状态引脚电平如下:转换状态:首先确保片选信号CS处于低电平(只有CS低电平转换器才会工作),在AD0804转换期间,INTR处于高电平,当WR赋予一个低脉冲信号(该低脉冲时间要≧100ns,对51系列单片机而言,每条命令执行时间即≧100ns)时,转换器开始转换,经过一段时间(该时间长短与转换器有关)的工作后,转换结束。
(注意:不工作时,WR引脚是处于高电平的,只有给予其一个低脉冲后,才开始转换)读取状态引脚电平如下:数据读取状态:同样确保片选信号CS处于低电平,转换器转换结束后,INTR将由转换器自动清零(若不用中断处理AD 转换器,IN 脚可以不接),用单片机给TR 引RD 予低电平(注意:赋RD 控制转换器内部的锁存器,若不给脚RD 电平,将无法输出转换结果)后,我们可以将转换结果从AD 转换器的11-18引脚脚读走。
(低WR 低赋予脉冲信号时,要等待一段时间才能开始读取,待读取结束后,RD 1) 脚要置。
课程名称:
微机原理与接口技术
实验名称:
8位A/D转换实验(中断方式)
一. 实验目的
掌握模/数信号转换的基本原理,掌握ADC0809芯片中断采样编程方
法。
二. 实验内容
从ADC0809通道0输入+5V可变电压,使用中断方式采集数据,
并将转换数据在7段数码管上16进制数显示。
IN0 WR 电位器
ADDA GND
ADDB LED-CS数码管
ADDC
ADC0809 210H 地址译码
CS 200H
AD-IRQ MIR5总线信号
三.实验结果分析
拧电位器后发现数码显示管数字改变,并且两盏灯明亮程度不同。
附上源代码:
.MODEL SMALL
.386
DATA SEGMENT
NUM DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H,
7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
BUF DB 100 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
IN AL, 21H
AND AL, 11011111B ;开放IRQ5
OUT 21H, AL
CLI
CLD
MOV AX,0
MOV ES,AX
MOV DI,4*35H
MOV AX,OFFSET AD
STOSW
MOV AX,SEG AD
STOSW
MOV AX,DATA ;恢复数据段
MOV DS,AX
MOV DX,200H ;启动转换
MOV AL,00H
OUT DX,AL
BEGIN: STI
HLT ;等待中断
JNZ BEGIN
IN AL,21H ; 关闭MIR5
AND AL,20H
OUT 21H,AL
MOV AH, 4CH
INT 21H
DIS PROC NEAR ;显示程序
MOV CX, 0FFH
NEXT: MOV AL, [DI]
MOV AH, AL
PUSH CX
MOV CL, 4
SHR AL, CL
POP CX
MOV BX, 0
MOV BL, AL
MOV AL, NUM[BX]
MOV DX, 210H
OUT DX, AL
MOV DX, 211H
MOV AL, 00100000B
OUT DX, AL
CALL DELAY
AND AH, 00001111B
MOV BX, 0
MOV BL, AH
MOV AL, NUM[BX]
MOV DX, 210H
OUT DX, AL
MOV DX, 211H
MOV AL, 00010000B
OUT DX, AL
CALL DELAY
LOOP NEXT
RET
DIS ENDP
AD PROC NEAR ;中断程序
PUSH AX ;保存寄存器
PUSH DX
PUSH DI
CLI
MOV DX, 201H ;读取转换结果
IN AL, DX
NOP
MOV DI, POINT
MOV [DI], AL ;保存转换结果
CALL DIS ;调用显示程序
INC DI
MOV POINT, DI
MOV AL, 20H ;中断结束命令
OUT 20H, AL
MOV DX, 200H ;开启转换
MOV AL, 00H
OUT DX, AL
POP DI ;恢复寄存器内容
POP DX
POP AX
STI
IRET ;中断返回
AD ENDP
CODE ENDS
END START