本文你将了解到可以影响系统响应的缺陷,即ADC的非线性,包括微分非线性(DNL)和积分非线性(INL)规范(specifications)。
由于失调和增益误差等影响,实际的模数转换器(ADC)的传递函数可能会偏离理想响应。另一个可能影响系统响应的不完善之处是ADC的非线性。
通常使用不同的规格来表征ADC的线性度。对于测量和控制应用, 微分非线性(DNL)和积分 非线性(INL)Spec是有用的性能指标。然而,在处理通信系统时,无杂散动态范围(SFDR)Spec通常是评估ADC线性度性能的更好方法。
微分非线性 (DNL)
让我们看一下图1中的蓝色曲线,它显示了3位单极ADC的理想传递函数。
图1. 显示3位单极ADC的理想传递函数的示例。
理想的响应表现出均匀的阶梯式输入-输出特性,这意味着每个转换都发生在距离前一个转换的1 LSB(最小有效位)。在实践中,阶梯宽度可能与理想值(1 LSB)不同。
上面的紫色曲线显示了一个假设的ADC的响应,其中的步长是不均匀的。在这个例子中,代码010的宽度是1.25LSB,而下一个代码的宽度较小,为0.54LSB。DNL规范描述了ADC的步长如何偏离理想值。
对于ADC,第k个代码的DNL由以下公式定义:
其中 W(k) 和Wideal分别表示第 k 个代码的宽度和理想步长。例如,对于上图中的编码 1(或 001),我们有:
这意味着编码 1 的宽度比理想值大 0.125 LSB。代码 3(或 011)的宽度为 0.54 LSB,产生 -0.46 LSB 的负 DNL。请注意,不理想的编码转换可能会导致“编码缺失”。
例如,上述ADC不会为任何输入值生成代码5(101)。对于缺失的代码,我们可以假设步长为零,导致 DNL 为 -1。最后,我们示例中的编码 6 (110) 具有理想的宽度,即 DNL(6) = 0。
在计算DNL值时,我们假设ADC的失调和增益误差已经校准出来。这意味着第一次和最后一次转换发生在理想值处,因此,没有为第一步和最后一步定义DNL误差。
使用 ADS8860 表示 ADC DNL 信息
我们可以将上述信息表示为 DNL 相对于编码值的图。对于上面的例子,我们得到以下图。
图2. DNL 相对的编码值。
DNL 通常也表示为所有编码中的最小值和最大值。我们假设的ADC的DNL介于-1 LSB和+1.1 LSB之间。图 3 显示了 TI 的 16 位逐次逼近寄存器 (SAR) ADC)ADS8860 的典型 DNL 图。
图3.ADS8860的典型DNL图。图片由TI提供
ADS8860 的最大 DNL 为 ±1.0 LSB,无失码。指定最大DNL误差为+/-1 LSB的ADC通常会明确说明器件是否有缺失代码。通常保证“无失码”。一些ADC数据手册(如ADS8860)还提供了DNL与温度的关系图。
将 ADC DNL 用于控制和测量应用
为了更好地理解DNL规范在控制和测量系统中的含义,让我们考虑图4中描述的示例。
图4. 显示腔室温度调节的示例反馈系统。
在本例中,反馈系统尝试调节腔室的温度。温度数据由ADC数字化并传送到处理器(MCU)。MCU将温度与所需值进行比较,并且很可能使用PID(比例-积分-微分)控制器等控制方案为数模转换器(DAC)产生适当的输入。最后,DAC通过缓冲级驱动加热器。
假设腔室温度始终在30°C至37°C范围内,我们需要以1°C的分辨率测量温度。因此,假设ADC量化误差是我们系统中唯一的误差源,我们可以使用三位ADC,因为它产生应用所需的8种不同输出编码。将温度传感器的输出电压调整到ADC的输入范围后,30 °C至37 °C的温度范围将对应于0至7 LSB范围,如图5所示。
图5. 显示数字输出与模拟输入和温度的关系图。
对于理想ADC,步进是均匀的,每次跃迁发生在与上一个跃迁相相差1 LSB(第一个跃迁除外)处。因此,系统可以保证检测到1°C的温度变化。例如,当温度从略高于 31.5 °C(图中的 A 点)变为略高于 32.5 °C(B 点)时,输出编码从 010 变为 011。
但是,假设实际ADC不会产生一致的步进,并且会出现一些DNL误差。例如,假设ADC具有图1所示的非线性特性。这将如何影响系统的性能?在这种情况下,可以通过下图描述系统响应。
图6. 示例系统响应。
假设温度最初为 31.625 °C(A 点),然后逐渐升高。直到我们到达大约32.875°C的B点,系统才能检测到温度的变化。因此,测量分辨率约为1.25°C而不是1°C。与编码4对应的步骤甚至更宽,导致局部分辨率为2.1°C。
了解转换器分辨率与精度和 DNL 误差的关系
将上面讨论的分辨率问题与转换器的精度区分开来非常重要。为了更好地理解这一点,请考虑以下转换器作为腔室示例。
图7. 显示腔室转换器响应的示例。
编码3(011)的宽度为2 LSB,因此,我们知道此时系统的局部分辨率为2°C。但是,这是否意味着测量精度为2°C?上图显示了理想转换器的理想阶梯响应(蓝色曲线)以及线性模型(绿线)。我们可以将实际响应与线性模型进行比较,以确定测量误差(或系统的精度)。
非理想曲线与线性模型的最大偏差发生在点 A 和 B 处,等于 1 LSB。测量中引入的误差为 ±1 °C;但是,局部分辨率为2°C。这是因为 DNL 错误可以是正的,也可以是负的。实际响应与理想曲线的净偏差取决于正 DNL 项和负 DNL 项在代码中的分布方式。
在上面的示例中,编码 1 和 2 的两个负 DNL 错误后跟代码 3 处的正 DNL。这有助于实际响应再次接近理想曲线。但是,在以下示例中,负项累积并导致与理想响应的较大偏差。
图8. 示例响应越来越接近理想曲线。
在此示例中,前 5 个步骤的 DNL 为 -0.25 LSB,只有代码 6 具有正 DNL。结果,误差累积并导致A点(来自线性模型)的最大误差为1.75 LSB。虽然分辨率接近上一个示例(2.25 °C),但测量误差为1.75 °C(而不是上一个示例中的1 °C)。
ADC 积分非线性 (INL)
上述讨论表明,DNL误差不能完全描述ADC的线性度性能。积分非线性(INL)是表征编码转换与其理想值的偏差的规范。INL 定义为 DNL 误差的累积总和。在数学语言中,第m个编码的INL由下式给出:
就像DNL一样,INL是一个向量;但是,通常只指定最大 INL 值。例如,ADS8860 的典型和最大 INL 分别为 ±1.0 LSB 和 ±2.0 LSB。
ADC噪声影响
值得一提的是,实际ADC的编码转换受系统中噪声的影响。图9显示了代码转换噪声对ADC特性曲线的影响。
图9. 编码转换噪声对ADC特性曲线的影响,其中(A)是理想ADC,(B)是实际ADC。图片由ADI公司提供
如您所见,从一个数字编码到下一个数字编码的转换不会只发生在模拟输入的一个值上,而是存在一个小的不确定性区域。换句话说,如果我们多次测量从一个编码到下一个编码的转换点,我们将不会得到模拟输入的单个阈值。使用当今的中高分辨率ADC,编码转换噪声可以很容易地与LSB尺寸相媲美。DNL 等静态规范不考虑噪声效应。
因此,虽然我们了解DNL概念在测量应用中的重要性,但我们应该注意,实际ADC的编码转换噪声会使DNL规范在实践中变得不那么有用。为了解决噪声问题,我们可以使用信号平均威廉希尔官方网站
。事实上,用于获得ADC直流性能的测试方法固有地使用信号平均,使得测量不太容易受到噪声影响。
DNL 和 INL 对 ADC 动态性能的影响
虽然我们使用控制和测量应用来介绍DNL和INL规范,但这些非线性指标也会影响ADC的动态性能,即信噪比(SNR)和ADC失真。在下一篇文章中,我们将提供有关DNL误差的一些补充要点,并讨论DNL和INL误差对ADC动态响应的影响。
原作者: allaboutcircuits