模拟量的输入输出
Goal:
- 了解 模拟量输入输出通道及其各主要部件的功能
- 理解 D/A converter的基本工作原理及DAC0832芯片的应用
- 了解 A/D converter的基本工作原理
- 掌握 ADC0809芯片与系统的连接方法及数据采集程序的设计
8.1 模拟量的输入输出通道
模拟量的输入通道
传感器(Sensor) - 将现场的某些非电物理量转换为电信号量
变送器 - 将传感器的输出信号转换成统一单位/范围的电信号
信号处理环节
多路模拟开关 - 就是个 multiplexer
采样保持电路(sample holder) - input模拟信号连续变化, A/D转换需要时间, 要保证在转换过程中输入信号保持在其采样时的值不变.
A/D 转换器
模拟量的输出通道
同样在D/A转换的过程中要求整个转换过程中带转换的数字量不变, 要用锁存器锁存DB来的数字信号.
8.2 D/A 转换器
DAC的抽象结构:
首先 callback 一下运放的一些性质:
对于运放来说, 输入电压 V o V_o Vo 与输入电压 V i V_i Vi 之间的关系:
V o = − R f R i V i V_o = - \frac{R_f}{R_i}V_i Vo=−RiRfVi
若输入端有n个支路, 构成多路输入,如图所示, 其输出电压变成:
V o = − R f ∑ j = 1 n 1 R j V i V_o = - R_f \sum_{j=1}^{n} \frac{1}{R_j} V_i Vo=−Rfj=1∑nRj1Vi
工业中直接制造高阻值的精密电阻比较困难, 一般用 R-2RT型电阻网络 来代替 权电阻网络, 如图所示:
输入电压 V o V_o Vo 为:
V o = − D 2 j × R f R × V r e f V_o = \frac{-D}{2^j} \times \frac{R_f}{R} \times V_{ref} Vo=2j−D×RRf×Vref
DAC的主要技术指标
分辨率 Resolution : 一个 n 位的DAC, 分辨率为:
1 / ( 2 n − 1 ) 1/(2^n-1) 1/(2n−1)转换精度 Conversion accuracy : maximum deviation of the actual output value and the theoretical value.
转换时间 Conversion time :
DAC 工作方式
单缓冲工作方式 : 单缓冲工作方式是使输入寄存器或DAC寄存器中的任意一个工作在直通状态, 而另一个工作在受控锁存状态.
双缓冲工作方式 : 数据接收和启动转换可以异步进行, 可以在D/A转换的同时接收下一个数据, 提高了模/数转换的速度.
8.3 A/D 转换器
ADC 其实与DAC相关性很大, 一个ADC芯片的核心往往就是一个DAC, 一个ADC的工作方式有点类似逆向DAC的一个作用来从模拟量转换成数字量.
working principal
逐位反馈型 ADC 的工作原理类似于用天平称重. 在转换开始前, 复位SAR, 然后设其最高位为1(e.g. [10000000B]) 就像天平称重时先放上最重的砝码一样
然后经D/A转换输出
相应的模拟量 V c V_c Vc , 与模拟输入电压 V i V_i Vi 相比较, 若 V i > V C V_i > V_C Vi>VC -> 保留该位1. 继续进行下一位的比较, 直到SAR的所有位都被确认.
e.g. 以一个12位 ADC 为例:
这样, 4.5V模拟量就转换成了数字量 111001100101B
ADC 的主要技术指标
精度 Accuracy
- 量化误差
如图所示一个3位的A/D转换器的转换特性:
当模拟量的值在0~0.5V范围内 -> 数字量输出为
000B
; 而在0.5~1.5V范围内 -> 数字量输出为001B
这样在给定数字量情况下, 实际模拟量与理论模拟量之差最大为
±0.5V
这种误差是由转换特性造成的, 是一种原理性误差, 也是无法消除的误差. 从图中可以发现,数字量的每个变化间隔为1V,就是说模拟量在1V内的变化,不会使数字量发生变化.
这个间隔称为量化间隔(也称为当量),用 Δ \Delta Δ 表示, 在数学上的定义为
Δ = 输入满度电压值 A / D 转换器的最大数字量输出 = V m a x 2 n − 1 \begin{aligned} \Delta & = \frac{输入满度电压值}{A/D转换器的最大数字量输出} \\ & = \frac{V_{max}}{2^n - 1} \end{aligned} Δ=A/D转换器的最大数字量输出输入满度电压值=2n−1Vmax
量化误差就等于一般的量化间隔 Δ \Delta Δ.
量化误差 = . 5 × 量化间隔 量化误差 = .5 \times量化间隔 量化误差=.5×量化间隔
E.g. 对于一个 12位 ADC, 它的量化间隔 Δ \Delta Δ 为:
Δ = 5 V 4095 = 1.22 m V \Delta = \frac{5V}{4095} = 1.22 mV Δ=40955V=1.22mV
一个 ADC 的量化间隔 由该 ADC 的位数决定.
转换时间 Conversion time : 指完成一次转换所需要的时间.
输入动态范围 Input dynamic range : 量程, 就是能转换的模拟电压的范围.
典型 A/D 转换器芯片 ADC0809
1 - ADC0809 的引线及内部结构
- D 0 ˜ D 7 D_0 \~~ D_7 D0 ˜D7 : output data wire(tri-state)
- I N 0 ˜ I N 7 IN_0 \~~ IN_7 IN0 ˜IN7 : 8 channel analog input.
- A D D A , A D D B , A D D C ADDA, ADDB, ADDC ADDA,ADDB,ADDC : 通道地址选择, 用于选择8路中的一路输入.
- S T A R T START START : start convension, falling-edge trigger
- E O C EOC EOC : Convension end flag signal, can be used for query or interrupt.
- A L E ALE ALE : channel addr latch, used to latch ADDX 端的地址输入, 上升沿有效
- O E OE OE : output enable,
- C L K CLK CLK : (10KHz ~ 1.2MHz)
ADC0809内部结构框图:
2 - ADC与系统的连接