710 likes | 862 Views
第 7 章 数/模与模/数转换. 7.1 数/模( D/A) 转换 7.2 模 / 数( A/D) 转换 7.3 典型 A/D 转换器芯片 7.4 数据采集系统. 数字量 :从键盘读入的字符代码,送往磁盘存储的文 件信息等。 模拟量 :语音信号,送往 VGA 显示器的视频信号,以 及工业生产过程中温度、流量等物理量。它们随 着时间连续变化。
E N D
第7章 数/模与模/数转换 7.1 数/模(D/A)转换 7.2 模/数(A/D)转换 7.3 典型A/D转换器芯片 7.4 数据采集系统
数字量:从键盘读入的字符代码,送往磁盘存储的文 件信息等。 • 模拟量:语音信号,送往VGA显示器的视频信号,以 及工业生产过程中温度、流量等物理量。它们随 着时间连续变化。 • 为了使用计算机对模拟量进行采集、加工和输出,需 要把模拟量转换成便于数字计算机存储和加工的 数字量(A/D转换,ADC),或者把数字量转换 成模拟量(D/A转换,DAC)。 • D/A与A/D转换是计算机用于多媒体、工业控制等领 域的一项重要技术。 数字量(Digit)和模拟量(Analog)
模拟量输入输出通道 图7-1
把外部的物理量(例如:声音、温度、压力、流量 等)转换成电流或电压信号。 1. 传感器(变送器) 2. A/D转换器(Analog Digit Converter, ADC) • 将电压表示的模拟量转换成数字量,送计算机处理, 它是输入通道的核心环节。 • AD转换器输入模拟信号通常有以下几种电压范围: 单极性0~5V、0~10V、0~20V;双极性±2.5V、±5V、±10V等。
传感器输出的信号比较微弱,需要经过放大,获得ADC所要求的输入电平范围。 • 安装在现场的传感器及其传输线路容易受到干扰信号的 影响,需要加接滤波电路,滤去干扰信号。 3. 信号处理 4. 多路开关(Multiplexer) • 需要监测或控制的模拟量往往多于一个。可以使用多路 模拟开关,轮流接通其中的一路,使多个模拟信号共用 一个ADC进行A/D转换。
如果在一次转换期间,输入的模拟量有较大的变化, 那么转换得到的结果会产生误差,甚至发生错误。 • A/D转换期间保持输入信号不变的电路称为采样/保持 电路。 • 转换开始之前,采样/保持电路采集输入信号(采样) • 转换进行过程中,它向A/D转换器保持固定的输出 (保持)。 5. 采样/保持器(Sample Holder) 6. D/A转换器(Digit Analog Converter, DAC): • D/A转换器将成数字量转换成模拟量输出。
7.1 数/模(D/A)转换 7.1.1 数/模转换原理 7.1.2 D/A转换芯片—DAC0832
1. 权电阻D/A 图7-2
D/A转换器进行一次数字量到模拟量的转换需要的时间, 称为D/A转换时间,一般在500ns(纳秒, 1ns=10-9s)左右。 • 为了保存由计算机送来的数字信号,通常还需要配置一 个“数据寄存器”,向D/A 转换器提供稳定的数字信号。
DI0~DI7:8位数字量输入。 • ILE:数据锁存允许信号,高电平有效; • CS#:输入寄存器选择信号,低电平有效; • WR1#:输入寄存器的“写”选通信号,低电平有效。 • 输入寄存器的锁存信号LE1#=(CS#+WR1#)#·ILE。 LE1#=1,输入锁存器状态随数据输入状态变化;LE1#=0 时,锁存输入数据。 1. DAC0832的引脚信号
DAC0832的引脚信号 • XFER#:数据转移控制信号,低电平有效; • WR2#:DAC寄存器的“写”选通信号。 • DAC寄存器的锁存信号LE2#=WR2#+XREF#。LE2# =1时,DAC寄存器的输出跟随输入变化;LE2# =0时,锁存输入寄存器状态。 • VREF:基准电压输入。(+10V~-10V)
DAC0832的引脚信号 • Rfb:反馈信号输入,芯片内已连接有反馈电阻。 • IOUT1和IOUT2:电流输出引脚。IOUT1与IOUT2的和为常数,IOUT1随DAC寄存器的内容线性变化。 • Vcc是工作电源;DGND是数字地,AGND为模拟 信号地。
DAC0832的引脚信号 • 为了保证转换精度,模拟信号部分应使用高精度基 准电源VREF和独立的地线。 • 为了避免数字信号对模拟信号的干扰,提高输出的 稳定性,减少误差,应把数字地和模拟地分开: • 模拟地:模拟信号及基准电源的参考地; • 数字地:工作电源地,数据、地址、控制等数字 信号逻辑地。 • D/A转换器的输出一般都要接运算放大器,微小信 号经放大后才能驱动执行机构的部件。
DAC0832的连接 图7-5
直通输入:把CS#, WR1# , WR2#, XREF#都接地,由 微机的并口(例如8255)向0832输出。 • 单缓冲:地址选通PORT0连接CS#。I/O写信号IOW#同 时连接到WR1#、WR2#和XREF#。执行一次输出指令可 以将数据写入。 • 双缓冲方式: 在输出一个模拟信号的同时,可送入下一个数据,实现多个DAC同时输出新的模拟量。DAC0832占用两个端口地址,地址线A0=0时选中第一级,A0=1时选中第二级。输出一个数据需要执行两条输出指令: • 第一条指令将数据写入0832的输入寄存器; • 第二条指令将数据从输入寄存器送入DAC寄存器 2. DAC0832的应用
DAC0832的应用 图7-5
双缓冲方式输出程序 MOV AL , NUM ;被转换的数据送AL MOV DX, PORT0 ;输入寄存器偶地址送DX OUT DX, AL ;数据送到输入寄存器 INC DX ;A0=1 OUT DX, AL ;数据送入DAC寄存器
输出锯齿波的程序段 MOV AL, 0 J1: CALL OUTPUT ;输出当前值 INC AL ;产生下一个输出值 JMP J1
S0: MOV AL, 0 ; AL中置初值0,S1: CALL OUTPUT ;输出三角波的上升段INC AL JNZ S1 DEC ALS1: CALL OUTPUT ;输出三角波的下降段DEC AL ;产生下降段下一个值 JNZ S2 ;JMP S1 ;下降段结束, ; 输出下一个三角波 输出三角波的程序段
子程序“OUTPUT” OUTPUT PROC NEAR MOV DX, PORT0 ;DAC0832端口地址 OUT DX, AL INC DX OUT DX, AL ; PUSH AX MOV AX, N ;延时的时间常数WT: DEC AX JNZ WT ;延时 POP AX RETOUTPUT ENDP
7.2 A/D 转换 7.2.1 信号变换中的采样、量化和编码 7.2.2A/D 转换原理 7.2.3A/D转换器的主要技术指标
7.2.1 信号变换中的采样、量化和编码 1. 采样 • 采样:模拟信号的大小随着时间不断地变化,A/D转换实际上是按一定的周期对各瞬时值进行转换。 • 采样保持:对于变化较快的输入模拟信号,A/D转换前可采用采样保持器,使得在转换期间保持固定的模拟信号值。 • 采样定理:采样频率要高于或至少等于输入信号最高频率的2倍。实际应用中,采样频率可以达到信号最高频率的4~8倍。
量化是把采样值取整为最小单位Δ的整数倍。 • 量化的最小单位称为量化单位Δ,它等于输入 信号的最大值/数字量的最大值,对应于数字量1。 • 输入信号的最大值一般等于所使用的“参考电压(VREF )” 2. 量化
3. 编码 • 量化得到的数值通常用二进制表示。 • 对有正负极性(双极性)的模拟量一般采用偏移码表示。 例如,8位二进制偏移码10000000代表数值0, 00000000代表负电压满量程, 11111111代表正电压满量程 (数值为负时符号位为0,为正时符号位为1) 。
7.2.2A/D 转换原理 1. 双积分型A/D转换器 这种方式的转换中有两个积分时间: T0:用模拟输入电压对电容积分(充电)的时间这个时间是固定的; T1:以电容充电后的电压为初值,对参考电源VRef反向积分,也就是积分电容被放电至 零所需的时间(或T2)。
双积分型A/D转换器 图7-8
双积分型A/D转换器 • Vi/VRef = T1/T0。 由于VRef 、T0固定,通过测量放电时间T1,可求出输入模拟电压Vi的大小。 • 双积分型A/D转换测量输入电压Vi在T0时间内的平均值,所以对常态干扰(串模干扰)有很强的抑制作用,尤其对正负波形对称的干扰信号,抑制效果更好。 • 双积分型的A/D转换器电路简单,抗干扰能力强,精度高,但是转换速度比较慢,通常为ms级,一般用于低频信号的测量。
2. 逐次逼近式A/D转换器 图7-9
逐次逼近式A/D转换器的特点 (1) 转换速度较快,转换时间在1~100μs以内, 分辨率可达18位,适用于高精度、高频信号 的A/D转换; (2) 转换时间固定,不随输入信号的大小而变化; (3) 抗干扰能力较双积分型弱。采样时,干扰信号会 造成较大的误差,需要采取适当的滤波措施。
3. 跟踪计数式模数转换器 图7-10
4. ∑-△型模数转换器 (设输入模拟量Vin=1/4VREF) 图7-11
∑-△型模数转换器 • ∑-△型模数转换器以串行数据流方式输出结果; • 转换精度为1LSB; • 转换完成后,比较器输出0/1相间的数字流; • 输入模拟量Vin发生变化,输出数字流随之变化。 • 模拟量输入端接有多路开关时,通道切换后要等 待足够长的时间,才能读取转换结果。 • ∑-△型模数转换器抗干扰能力强,转换精度高,常用于高分辨率(常见为16、18、24位)的中、低频信号测量。 • AD7714是一个∑-△型模数转换器芯片,转换精度24位。
7.2.3A/D转换器的主要技术指标 1. 分辨率 分辨率反映A/D转换器对输入微小变化的响应能力,用数字量最低位(LSB)所对应的模拟输入电平值(Δ)表示。 分辨率直接与转换器的位数有关,也可以用数字量的位数来表示分辨率。 注意:分辨率与精度是两个不同的概念。 分辨率高的转换器,精度不一定高。
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%。
3. 转换时间 完成一次A/D转换所需要的时间。 (发出转换命令信号到转换结束的时间) 转换时间的倒数称为转换速率。 例:AD574的转换时间25μs,转换速率为40KHz(=1/25 μs ) 4. 量程 量程:被转换的模拟输入电压范围, 分单极性、双极性两种类型。 单极性常见量程为 0~5V,0~10V,0~20V; 双极性量程常为-5V~+5V,-10V~+10V。
5. 逻辑电平与输出方式 多数A/D转换器输出的数字信号与TTL电平兼容,以并行方式输出。 ∑-△A/D转换芯片以串行方式输出数据,这对单片机类CPU连接是很方便的。 6. 工作温度范围 温度会对比较器、运算放大器、电阻网络等部件的工作产生影响。 A/D转换器的工作温度范围一般为0~70℃。 军用品为-55℃~+125℃。
7.3 典型A/D转换器芯片 7.3.1 ADC0809 • 逐次逼近型8位A/D转换芯片; • 片内有8路模拟开关,可以同时连接8路模拟量; • 单极性,量程为0~5V; • 典型的转换速度 100μs; • 片内有三态输出缓冲器,可直接与CPU总线连接; • 有较高的性能价格比,适用于对精度和采样速度要求 不高的场合或一般的工业控制领域。
1. 模拟输入部分 模拟输入部分由8选1多路开关,地址锁存与译码逻辑组成。 从IN0~IN7引脚输入8路单端模拟信号; 由三位地址输入ADDA,ADDB,ADDC译码选择8路中的一路,ALE为高电平时,三个地址信号被锁存。 2.A/D变换器部分 由逐次逼近寄存器SAR(8位)、比较器、电阻网络等控制逻辑组成。
3. 基准电压输入VREF(+)和VREF(-) 它们决定了输入模拟电压的最大值和最小值 对转换精度要求不高时,可以把VREF(+)接到Vcc(+5V)电源上,VREF(-)接GND(地) 为了避免数字脉冲信号对基准电源的干扰,可以设置独立的VREF(+)和VREF(-),加在两个引脚的电压必须满足以下条件: VREF(+)+VREF(-) =Vcc,偏差值≤±0.1V Vcc≥VREF(+)≥VREF(-) ≥0
4. ADC0809的时序 图7-13
ADC0809的工作过程 (1)ALE信号锁存地址信号ADDA~ADDC。对应的模拟信号进入0809 (2) START脉冲启动A/D转换 (3) 转换完成后,转换结束信号EOC变为高电平: • 可以作为状态信号由CPU查询; • 可以作为中断请求信号通知CPU。 (4) CPU在查询式I/O程序或中断服务程序中: • 执行输入指令(读ADC0809数据端口); • 该指令经地址译码电路产生OE信号, • 0809内三态缓冲器被打开, • 转换结果通过数据总线进入CPU。
5. ADC0809芯片应用举例 ADC0809与系统有三种常见的连接方法: (1) 占用三个I/O端口: 端口1用来向0809输出模拟通道号并锁存; 端口2用于启动转换; 端口3读取转换后的数据结果。 (2) 占用二个I/O端口: 端口1输出模拟通道号并锁存,同时启动转换; 端口2读取转换后的数据结果。 (3) 通过并行接口芯片(例如8255A)连接。
ADC0809芯片应用举例 图7-14
ADC0809转换程序 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转换程序(续) 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端口读入转换结果 ………