如何认识ADC参数中“精确度”与“分辨率”的不同

http://www.analog.eet-china.com/ART_8800617219_2600001_TA_dfc397c4.HTM

 

ADC制造商在数据手册中定义ADC性能的方式令人困惑,并且可能会在应用开发中导致错误的推断。最大的困惑也许就是“分辨率”和“精确度”了——即Resolution和Accuracy,这是两个不同的参数,却经常被混用,但事实上,分辨率并不能代表精确度,反之亦然。本文提出并解释了ADC“分辨率”和“精确度”,它们与动态范围、噪声层的关系,以及在诸如计量等应用中的含义。

 

 

动态范围被定义为系统可测量到的最小和最大信号的比例。

 

最大信号可为峰间值,零到峰(Zero-to-Peak)值或均方根(RMS)满量程。其中任何一个都会给出不同值。例如,对于一个1V正弦波来说:

 

峰间(满量程)值=2V

零到峰值=1V

RMS满量程=0.707×峰值振幅=0.707×1V=0.707V

 

最小信号通常为RMS噪声,这是在未应用信号时测量的信号的均方根值。测量得到的RMS噪声级别将取决于测量时使用的带宽。每当带宽翻倍,记录的噪声将增长1.41或3dB。

 

因此,一定要注意动态范围数字始终与某个带宽相关,而后者通常未被指定,这使记录的值变得没有意义。

器件的信噪比(SNR)和动态范围多数时候被定义为同一个值,即:

 

动态范围 = SNR = RMS满量程/RMS噪声

 

并且经常使用dB作为单位,即

 

动态范围(dB) = SNR(dB) = 20*Log10 (RMS满量程/RMS噪声)

与使用RMS满量程相反,一些制造商为了使图表看上去更漂亮,引用零到峰或峰间值,这使得最终的动态范围或SNR增加了3dB或9dB,因此我们需要仔细研究规范以避免误解。

 

在讨论ADC性能时,分辨率和精确度是经常被混用的两个术语。一定要注意,分辨率并不能代表精确度,反之亦然。

 

ADC分辨率由数字化输入信号时所使用的比特数决定。对于16位器件,总电压范围被表示为216 (65536)个独立的数字值或输出代码。因此,系统可以测量的绝对最小电平表示为1比特,或ADC电压范围的1/65536。

 

A/D转换器的精确度是指对于给定模拟输入,实际数字输出与理论预期数字输出之间的接近度。换而言之,转换器的精确度决定了数字输出代码中有多少个比特表示有关输入信号的有用信息。

 

如前所述,对于16位ADC分辨率,由于出现内部或外部误差源,实际的精确度可能远小于分辨率。因此,举例而言,一个给定的16位ADC可能只能提供12位的精确度。对于这种情况,4LSb(最低有效位)表示ADC中生成的随机噪声。

 

ADC动态范围和ADC精确度通常指相同的内容。

 

图 1 展示了基本的ADC测量电路。

 

 


图1:基本的ADC测量电路。

 

 

理想ADC生成一个数字输出代码,是关于模拟信号电压和电压参考输入的方程,其中

 

输出代码 = 满量程电压 × [VIN+ - VIN-] / [VREF+ - VREF-]

= 满量程电压 × [VIN /VREF]

每个数字输出代码表示参考电压的一个小数值。

 

必须注意,ADC动态范围应当匹配将要转换的信号的最大振幅,这样才能使ADC转换精度最大化。

 

现在假设将要转换的信号在0V到2.5V间变化,而VREF等于3.3V,如图2所示。

 

 


图2:输入信号振幅和ADC动态范围。

 

16位ADC将包括216 = 65536个步骤或转换,且最低有效位(LSB)=VREF/65536=3.3V/65536=50.35uV。对于理想的ADC,所有代码都具有1LSB的相同宽度。

 

如果ADC的最大信号值为2.5V,那么意味着总共有49652次转换(2.5V/1LSB)。对于这种情况,将有15884次转换未被使用(65536-49652=15884)。这反应了转换后的信号精确度损失或ENOB损失(损失0.4位)。

 

如果ADC参考(VREF)和ADC最大信号电平之间的差异增加,那么ENOB损失或精确度损失将加剧。例如,如果ADC最大信号电平为1.2V且VREF=3.3V,那么ENOB损失将为1.5位。因此ADC动态范围一定要匹配最大信号振幅,以获得最高精确度。

应用示例

 

我们通过一些例子来说明这些参数在某些典型应用中的具体含义。

 

a) 数码相机

 

简单来说,数码相机的动态范围就是图像传感器的一个像素生成的可检测到的最亮和最暗值的范围,使用比特作为单位。ADC的最小比特率(分辨率)由图像传感器的动态范围(精确度)决定。举例而言,如果传感器的动态范围为1000:1(也可以称为60dB),那么ADC应当至少为10位(2^10=1,024分立电平) 才能避免信息损失。然而,在实际中,应当将ADC往高指定为12位,以允许ADC具有一定的容错裕量。

 

只因为相机具有12位或16位的ADC就宣称它具有12位动态范围会令人误解,因为噪声以及用于产生这个动态范围的像素井的容量没有被考虑在内。

 

因此,综上所述,只有传感器本身具有足够的动态范围时上述描述才成立。色调范围和动态范围永远也不会超过传感器的动态范围。因此必须要清楚相机的实际动态范围。本节内容解释了具有12位动态范围的相机并不表示相机有一个12位的ADC。

 

b)电阻温度计

 

电阻温度计(RTD)利用了某些材料在不同温度下电阻会发生可预测的变化这一原理。电阻温度计通常使用铂制成,并且具有以下特征:

 

0oC时的传感器电阻=100ohm

电阻变化/ oC=0.385ohm(欧洲基本区间)

激活传感器的感应电流=1mA

温度范围 = 0至500oC

 

注意,电阻温度计需要通过大约1mA的弱电流来确定电阻。1°C的温度变化会引起0.385 ohm的电阻变化,因此即使一个小的电阻测量错误也会引起很大的温度测量误差。

 

电阻温度计需要检测到0.1oC的温度变化,这将成为系统在0至500 oC之间的LSB。电阻在这个范围的对应变化幅度将为192.5ohm。对于这个变化幅度,该范围下的电压将为192.5mV。

 

现在,动态范围 = 满量程电压/LSB大小

= 192.5mV/38.5uV

= 5000

要满足这一要求,13位ADC应当已经够用。

 

注意,由于整个RTD传感器的电压范围为100mV到292.5mV且LSB大小足够低到可由任何SAR ADC分辨,您将需要一个增益放大器来在ADC可以实际支持的范围内增大这个范围。假设我们使用一个固定增益为17的增益放大器。通过使用这个增益放大器,电压将从1.7V增加到4.92V。正如前面所解释的一样[如图 2所示],在这个输出电压范围内您的ADC将不能够得到充分利用,因此将限制动态范围。

 

由于我们在这个应用中最关心的是LSB大小(RTD传感器应当能够使用0.1oC的温度变化进行响应),并且假设典型ADC具有5V的满量程电压,因此您将需要一个转换器,其中

ENOB(有效位数) = 1.44ln(满量程/LSB)

=1.44ln(5V/38.5uV)

≈17位(近似值)

 

一个Σ-Δ ADC应当能够提供这种性能。

 

注意,13位应用并不总是需要13位转换器。

 

c) 电气计量

 

如今,电表变得越来越复杂,并且要求在不同动态范围下获得高精确度,因为任何测量误差都会使电力公司蒙受巨大的损失。

 

对于动态范围为2000:1的Class1电表,必须测量的最小信号大约为0.5mV,假设ADC满量程电压为1V。

 

这种仪表的最大误差规格通常为针对指定动态范围测量的参数的0.1%。

目标错误=0.5mV×0.1%

=500nV。

 

因此,要测量的最小信号为500nV。

 

系统需要从1V中解析出500nV,这将要求ADC具有1V/500nV≈2×106次输出转换。这需要使用具有21位ENOB的ADC。

 

需要注意的一点是通用21位ADC并不能满足这些需求,除非它具备一个良好的噪声层并能够分辨最低500nV的电压。

 

这个具体示例仅仅介绍了电表中的电压测量需求。电表中的电流测量具有比电压测量更严格的需求,但是本例并没有介绍详细内容。

 

 

模数转换器(ADC)宣称具有“n”位分辨率,这常常被误解为精确度。分辨率和精确度完全是两个概念,两者不能混用。应该由具体的应用来确定是否允许丢失代码以及所需ADC精确度。本文通过解释一些应用示例展示了精确度和分辨率的差别。此外,ADC精确度不能仅仅取决于ADC性能和特性,它与围绕ADC的整个应用设计有关。系统实际上指定了所需的真正动态范围。

 

作者:Mohit Arora

飞思卡尔半导体系统工程师

结束语

ADC动态范围,精确度和分辨率

你可能感兴趣的:(Linux系列杂谈)