第3节 A/D和D/A转换的基本问题
在过程控制和仪器仪表中,多由嵌入式计算机进行实时控制及实时数据处理,计算机所加工的信息总是数字量,而被检测的对象却往往是一些连续变化的模拟量(如,温度、压力、速度和流量等),因此需要将模拟量转化为数字量,以便在计算机中进行运算处理,此过程称为模数(A/D)转换,A/D转换过程通常分成三个步骤:采样保持、量化与编码。由计算机进行加工处理的数字量往往也需要转换成为模拟量,以便对某些特征量进行实时控制,这一过程称为数模(D/A)转换,它是A/D的逆转换。A/D和D/A转换技术是数字测量和数字控制领域中必不可少的组成部分,一个数字控制系统框图如图10-7所示。数据转换往往不是最终目的,而是达到测量、采集、处理和控制等目的的一种手段。可见,没有A/D、D/A转换技术的发展,就无法更好地发挥嵌入式计算机的功能,也就制约着产品在更高品质上的应用。
1.A/D转换
A/D转换模块(Analog To Digital Convert Module)即模/数转换模块,其功能是将电压信号转换为对应的数字信号。实际应用中,这个电压信号可能由温度、湿度、压力等实际物理量经过传感器和相应的变换电路转化而来。经过A/D转换后,MCU就可以处理这些物理量。进行A/D转换,应该了解以下一些基本问题:第一,采样精度是多少?第二,采样速率问题?第三,滤波问题;第四,物理量回归等。
采样精度就是指数字量变化一个最小量时模拟信号的变化量,即我们通常所说的采样位数。通常在MCU中采样位数为8位,某些增强型的可达到10位,而专用的A/D采样芯片则可达到12位,14位,甚至16位。设采样位数为N,则最小能检测到的模拟量变化值为1/2N。例如以GP32为例,其采样精度最高为8位,参考电压为5V,则检测到的模拟量变化为5/28=0.0195313V。
(2) 采样速率
采样速率是指完成一次A/D采样所要花费的时间。在多数的MCU中要花费15~20个指令周期,因而此速率和所选器件的工作频率有很大关系。
(3) 滤波
为了使采样的数据更准确,必须对采样的数据进行筛选去掉误差较大的毛刺。通常我们采用中值滤波和均值滤波来提高采样精度。中值滤波是取三次采样的中间值,均值滤波是取多次采样的算术平均值。若要得到更高的精度,可以通过建立其他误差模型分析方式来实现。
(4) 物理量回归
在实际应用中,得到稳定的A/D采样值以后,还需要把A/D采样值与实际物理量对应起来,这一步称为物理量回归。A/D转换的目的是把模拟信号转化为数字信号,供计算机处理,但必须知道A/D转换后的数值所代表的实际物理量的值,这样才有实际意义。例如,利用MCU采集室内温度,A/D转换后的数值是126,它代表多少温度呢?如果当前室内温度是25.1℃,则A/D值的126就代表实际温度25.1℃。有多种方法完成这种对应关系,本书不做详细介绍。
2.D/A转换
(1) D/A转换器的转换精度
D/A转换器的转换精度有两种衡量方法:
①分辨率:D/A转换器在理论上可达到的精度。其定义是,电路所能分辨的最小输出电压VLSB(输入的n位数字代码最低有效位LSB为1,其余各位都为0)与最大输出电压Vm(此时输入数字代码所有各位全为1)之比,即
1.A/D转换
A/D转换模块(Analog To Digital Convert Module)即模/数转换模块,其功能是将电压信号转换为对应的数字信号。实际应用中,这个电压信号可能由温度、湿度、压力等实际物理量经过传感器和相应的变换电路转化而来。经过A/D转换后,MCU就可以处理这些物理量。进行A/D转换,应该了解以下一些基本问题:第一,采样精度是多少?第二,采样速率问题?第三,滤波问题;第四,物理量回归等。

采样精度就是指数字量变化一个最小量时模拟信号的变化量,即我们通常所说的采样位数。通常在MCU中采样位数为8位,某些增强型的可达到10位,而专用的A/D采样芯片则可达到12位,14位,甚至16位。设采样位数为N,则最小能检测到的模拟量变化值为1/2N。例如以GP32为例,其采样精度最高为8位,参考电压为5V,则检测到的模拟量变化为5/28=0.0195313V。
(2) 采样速率
采样速率是指完成一次A/D采样所要花费的时间。在多数的MCU中要花费15~20个指令周期,因而此速率和所选器件的工作频率有很大关系。
(3) 滤波
为了使采样的数据更准确,必须对采样的数据进行筛选去掉误差较大的毛刺。通常我们采用中值滤波和均值滤波来提高采样精度。中值滤波是取三次采样的中间值,均值滤波是取多次采样的算术平均值。若要得到更高的精度,可以通过建立其他误差模型分析方式来实现。
(4) 物理量回归
在实际应用中,得到稳定的A/D采样值以后,还需要把A/D采样值与实际物理量对应起来,这一步称为物理量回归。A/D转换的目的是把模拟信号转化为数字信号,供计算机处理,但必须知道A/D转换后的数值所代表的实际物理量的值,这样才有实际意义。例如,利用MCU采集室内温度,A/D转换后的数值是126,它代表多少温度呢?如果当前室内温度是25.1℃,则A/D值的126就代表实际温度25.1℃。有多种方法完成这种对应关系,本书不做详细介绍。
2.D/A转换
(1) D/A转换器的转换精度
D/A转换器的转换精度有两种衡量方法:
①分辨率:D/A转换器在理论上可达到的精度。其定义是,电路所能分辨的最小输出电压VLSB(输入的n位数字代码最低有效位LSB为1,其余各位都为0)与最大输出电压Vm(此时输入数字代码所有各位全为1)之比,即

上式说明,输入数字代码的位数n越多,分辨率越小,分辨能力越高。例如:10位D/A转换器的分辨率为:1/(210-1)=1/1023≈0.000978。
②转换误差:D/A转换器实际上能达到的转换精度。转换误差可用输出电压满度值的百分数表示,也可以用LSB的倍数来表示。例如,转换误差为0.5LSB,是表示输出模拟电压的绝对误差等于输入数字量的LSB=1、其余各位均为0时输出模拟电压的一半。转换误差又分静态误差和动态误差。产生静态误差的原因是基准电源VREF的不稳定、运放的零点漂移、模拟开关导通时的内阻和压降及电阻网络中阻值的偏差等。动态误差则是在转换的动态过程中产生的附加误差。它的产生是由于电路中的分布电容和分布电感使各位的电压信号到达电阻网络输出端的时间不同,并可在输出端产生干扰信号。
(2) D/A转换器的转换速度
D/A转换器的转换速度有两种衡量方法:
①建立时间tset是在输入数字量各位由全0变为全1或由全1变为全0时,输出电压达到某一规定值(例如取1/2LSB或满度值的0.01%)所需要的时间。目前,在某些集成D/A转换器中,tset≤0.1ms;在内部包含有基准电源和求和运算放大器的集成D/A转换器中,最短的建立时间可达到1.5ms。
②转换速率SR是在大信号工作时,即输入数字量的各位由全0变为全1或由全1变为全0时,输出电压uo的变化率。D/A转换器完成一次转换所需的时间应包括建立时间tset和输出电压uo的上升或下降时间,即最大转换时间为:
![]()
上式中Vomax是输出模拟电压的最大值。


