当笔者与使用模数(A/D)转换器的系统设计人员聊天时,他们最常问的就是:“您的16位A/D转换器准确度也是16位吗?”
要回答这个问题,关键在于从根本上理解分辨率和准确度这两个概念之间的区别。尽管这两个术语是截然不同的,但它们却经常被混淆或互换使用。
A/D转换器的分辨率被定义为输入信号值的最小变化,可通过一次计数改变数字输出值。就理想的A/D转换器而言,传递函数呈阶梯状,且每个步阶宽度等于分辨率。但使用较高分辨率(16位或16位以上)的系统时,传递函数的响应和理想的响应之间将存在较大的偏差。这是因为由A/D转换器及驱动器电路产生的噪声可降低该转换器的分辨率。
此外,如果一种直流(DC)电压被施加到理想A/D转换器的输入端并进行了多次转换,那么数字输出应始终是同一个代码。但在现实中,输出代码却成了多个代码,在多个位置上分布(见下图的红点群集),具体取决于系统总噪声,其它因素还包括电压参考和驱动器电路。系统里噪声越多,数据点的群集范围会越大,反之亦然。图1展示了一个半量程DC输入的例子。在A/D转换器的产品说明书中,A/D转换器传递函数图上的这种输出点群集通常被表示为DC直方图。
图1的例证带来了一个有趣的问题。如果同一种模拟输入能产生多种数字输出,那么A/D转换器分辨率的定义是否依然适用?答案是肯定的 —— 但前提是我们要考虑到A/D转换器的量化噪声。然而,当我们对信号链中的所有噪声和失真进行探究考量时,却发现A/D转换器的无噪声有效分辨率是由输出代码散布(Npp)状况来决定的。
无噪声分辨率 = log2(2n/Npp)
其中n是理想的分辨率
在典型的A/D转换器产品说明书中,有效位数(ENOB)由交流(AC)参数和信噪失真比(SINAD)间接确定,可用下边的方程式计算出ENOB:
ENOB =(SINAD-1.76)/6.02
接下来请仔细观察:输出代码群集(图1里的绿色群集)是否不仅未以理想的输出代码为中心、反而位于A/D转换器传递曲线上的其它位置,远离红点?这个距离是数据采集系统准确度的指标。A/D转换器以及前端驱动电路、参考和参考缓冲器都是整个系统准确度的影响因素。
这里应当注意的是:A/D转换器的准确度和分辨率是两个不同的参数,它们可能彼此不相等。从系统设计的角度来看,准确度可决定系统的整体误差预算,而系统软件算法完整性、控制和监测能力则取决于分辨率。
已确定了A/D转换器分辨率和准确度之间的区别,我们现在可深入探讨一下能对该转换器的总准确度产生影响的因素,通常被称为未调整总误差(TUE)。
您可曾想过在A/D转换器的未调整总误差(TUE)技术规格中“总”代表什么吗?是仅仅把来自产品说明书的所有DC误差技术规格,如偏移电压、增益误差和积分非线性 (INL) 误差加起来那么简单还是有更深层的含义呢?事实上,TUE是系统总误差相对于该转换器工作输入范围的比率。
更具体地说,TUE是以最低有效位(LSB)为单位表示的DC误差技术规格,代表A/D转换器实际传递函数和理想传递函数之间存在的最大偏差。该技术规格假设未进行系统级校准。
从概念上讲,TUE反映的是A/D转换器运行状况中下列各类非理想因素的联合效应:
偏移误差(VOS)。该误差是A/D转换器实际传递曲线和理想传递曲线之间的恒定差异(见图2)。它是测定的数字输出,通过把A/D转换器输入端短接到接地(GND)获得。
增益误差。A/D转换器输出的实际斜率和理想斜率之间的差异。它通常被表示为满量程代码处A/D转换器范围或最大误差的比率。如图2所示,随着模拟输入接近满量程值,增益误差的绝对值会增大。
积分非线性(INL)误差。A/D转换器实际传递曲线和理想直线运行方式之间存在的最大非线性偏差。A/D转换器的INL响应图没有固定的形状,具体取决于内部电路架构以及由前端信号调节电路造成的失真。
大多数A/D转换器产品说明书为所有上述DC误差明确规定了典型值和最大值,但未给TUE指定这方面的数值。计算TUE的最大值可不像求所有单个DC误差最大值的总和那么简单。原因是:所有这些误差是不相关的,而且最糟糕的情况是,在A/D转换器的传递函数上,偏移、增益和线性误差可能并非都出现于相同的输入电压下。所以,将误差简单相加也许会使系统准确度看起来过差。如果应用的动态范围被限制在接近传递函数中间的位置,情况更是如此。
在典型的数据采集系统中,与A/D转换器配套的有一个输入驱动器,还有一个电压参考,两者均可使总的偏移和增益误差增加。因此,在大多数无校准功能的系统里计算TUE最大值时,偏移和增益误差会比INL误差大。要计算特定模拟输入电压下的最大TUE,推荐的方法是取那一点上所有单个误差最大值的和方根。重要的是把所有这些误差转换成相同的单位(通常是LSB)。
TUE = v[|VOS|2 + gain2 + INL2]
借助该方程式通常可生成一个“蝴蝶结”形状的误差图。对于具有较高偏移误差的系统,“蝴蝶结”的结较厚。但对于具有较高增益误差的系统,“蝴蝶结”的结则变得较薄,弓形变得较厚。
总之,没有能为A/D转换器计算TUE最大值的确定公式,因为该误差取决于A/D转换器工作时的输入范围。如果系统不需要采用A/D转换器的整个输入范围,那么工程师可通过使该器件远离其传递函数的端点运行来最大限度地减小TUE。