13 AD/DA转换

学习笔记
作者: MingXiao

13.1 数据采集和过程控制

AD/DA: Analog Digital Converter

模拟量输入通路

  • 传感器:换能
  • 放大器:高输入阻抗
  • 滤波器
  • 多路模拟开关:切换输入信号通路
  • 采样保持器:信号比较平缓的可以直接加到ADC;变化快的需要使用保持器

13.2 采样、量化和编码

采样:不赘述

量化:采集下来的电压瞬时值用数字表示,只能达到一定的精度,用分辨率表示

量化单位q就是电压的分辨率,而分辨率n用编码的比特数n表示

即一个电压5V使用8bit编码,那么\(q = 5/2^8 = 19\)mV,分辨率为8

由于q在数值上等于仅LSB的值,即000...001 = q,故q也称1LSB

编码:用二进制代码的形式表示数字量,有很多方式,常用自然二进制码

自然二进制码:输入量是满量程(FSR,full-scale range)的百分数,用二进制表示这个小数

故从MSB开始,分别是\(2^{-1}, 2^{-2},...,2^{-n}\),无法表示小数点

13.3 D/A转换器

将输入的数字量转换为与其成比例的模拟信号的器件,大多数变成模拟电流,当然用运放就能转换成电压

权电阻网络D/A转换器

使用加权的电阻并联,每一个开关表示这个位置编码的0/1(当然实际上是半导体元件,不需要真的开关)

最终用输出电流\(I_o\)作为模拟电流,接上运放后\(V_o = -\frac{R_f}{R}V_{in}\),其中\(V_{R}\)是最大值,\(R_f\)等于所有权电阻并联的阻值

这个网络输出的模拟信号会存在很多台阶,当D/A的位数变多,台阶的高度差变小,输出与真实信号更接近

主要性能指标

  • 分辨率:输入数据发生1LSB变化时输出模拟量的变化,显然\(\Delta = \frac{FSR}{2^{n}}\),所以用n表示分辨率也行
  • 精度:\(Accuracy = \frac{Error}{FSR}\),一般不能大于0.5LSB
  • 建立时间:从数字量输入到建立稳定输入的时间差

例:假定一个0.5V-2.5V的三角波被FSR=5V的8bitDA输出,写一个输出代码

解:首先需要看输出范围,0.5/0.019=26=1Ah,2.5 /0.019=128=80h,那么代码如下

Begin:	mov al, 1Ah		;下限值

Up:		out 80h, al		;假设输出口为80h
		inc al
		cmp al, 80h		;al<80h?
		jnz Up			;没到上限就接着上
		dec al			;超了就-1,开始下降

Down:	out 80h, al
		dec al
		cmp al, 1Ah
		jnz Down
		Jmp Begin

13.4 A/D转换器

原理有很多,这里只需要考虑逐次逼近式A/D转换器,因为它速度快,分辨率高,成本低

逐次逼近的原理就是从MSB到LSB的二分法,低于输入就要,超了就不要

逐次逼近A/D转换器

  • 由逐次逼近寄存器SAR,D/A转换器,比较器,缓冲器等组成
  • SAR含有位移寄存器,数据寄存器和去/留码的逻辑电路

需要在CLK下使用

其中\(V_i\)是模拟信号输入,D/A每次将编码后的数字信号转换为模拟电压,在放大器上比较

放大器输出1,那么这个码就留下,即这位的数字码编码为1

每一位码的去留,需要8个时钟周期

ADC的指标同DAC,不赘述



Comments