新闻中心

EEPW首页 > 测试测量 > 设计应用 > 了解ADC差分非线性(DNL)误差

了解ADC差分非线性(DNL)误差

—— 了解ADC差分非线性(DNL)错误
作者: 时间:2024-09-09 来源:EEPW编译 收藏

了解可能影响系统响应的缺陷,即ADC的非线性,即微分非线性()和积分非线性()规范。

本文引用地址:https://www.eepw.com.cn/article/202409/462774.htm

真实世界的模数转换器(ADC)的传递函数可能由于诸如偏移和增益误差的影响而偏离理想响应。另一个可能影响系统响应的缺陷是ADC的非线性。不同的规格通常用于表征ADC的线性。对于测量和控制应用,微分非线性()和积分非线性()规范是有用的性能指标。然而,当处理通信系统时,杂散自由动态范围(SFDR)规范通常是评估ADC线性性能

的更好方法。

微分非线性(

深入来看,让我们来看图1中的蓝色曲线,它显示了3位单极ADC的理想传递函数。

显示3位单极ADC理想传递函数的示例。

 

1.png

•图1。显示3位单极ADC理想传递函数的示例。

理想的响应表现出均匀的梯段输入输出特性,这意味着每个转变都发生在前一个转变的1LSB(最低有效位)。实际上,台阶宽度可能与理想值(1LSB)不同。上面的紫色曲线显示了假设的ADC的响应,其中步骤不均匀。在这个例子中,代码010的宽度是1.25LSB,而下一个代码呈现更小的0.54LSB的宽度。DNL规范描述了ADC步距如何偏离理想值。

对于ADC,第k个代码的DNL由以下方程式定义:

 2.png

其中W(k)和Wideal分别表示第k个码的宽度和理想步长。举个例子,对于上图中的代码1(或001),我们有:

 3.png

这意味着代码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与代码值的关系图。

 4.png

•图2。DNL与代码值的关系图。

DNL通常也表示为所有代码中的最小值和最大值。我们假设的ADC的DNL介于-1 LSB和+1.1 LSB之间。图3显示了ADS8860的典型DNL图,ADS8860是来自TI的一个16位逐次逼近寄存器(SAR)ADC。

 5.png

•图3。图片由TI提供

ADS8860的最大公称通径为±1.0 LSB,无漏码。指定最大DNL错误+/-1 LSB的ADC通常显式说明设备是否缺少代码。通常保证“无漏码”。一些ADC数据表,如ADS8860,也提供了DNL与温度的关系图。

使用ADC DNL进行控制和测量应用

为了更好地理解DNL规范在控制和测量系统中的影响,让我们考虑图4中所示的示例。

显示腔室温度调整的反馈系统示例。

 6.png

•图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所示。

显示数字输出与模拟输入和温度的关系的曲线图。

 7.png

•图5。显示数字输出与模拟输入和温度的关系的曲线图。

对于理想的ADC,阶跃是均匀的,并且每个阶跃都发生在上一阶跃的1LSB处(第一阶跃除外)。因此,系统可确保检测温度变化1°C。例如,当温度从略微高于31.5癈(图中A点)到略微高于32.5癈(B点)时,输出代码从010更改为011。然而,假设实际ADC不产生统一的步进,并且呈现一些DNL误差。例如,假设ADC具有如图1所示的非线性特性。这将如何影响系统的性能?在这种情况下,系统响应可通过下图描述。

系统响应示例。

 8.png

•图6。系统响应示例。

假设温度最初为31.625癈(A点),然后逐渐上升。在温度达到约32.875癈的B点之前,系统无法检测温度变化。因此,测量分辨率约为1.25癈,而不是1癈。代码4对应的步骤更宽,导致本地分辨率为2.1°C。

了解转换器分辨率与精确度和DNL误差

区分以上讨论的分辨率问题和转换器的精确度是很重要的。为了更好地理解这一点,请考虑以下用于腔室实例的转换器。

 9.png

•图7。

代码3(011)的宽度为2 LSB,因此我们知道此时系统的局部分辨率为2°C。然而,这是否意味着测量精度为2癈?上图显示了理想转换器的理想楼梯响应(蓝色曲线)和线性模型(绿色线)。我们可以将实际响应与线性模型进行比较,以确定测量误差(或系统的精确度)。

非理想曲线与线性模型的最大偏差出现在A点和B点,等于1LSB。我们测量时引入的误差为±1癈;然而,本地分辨率为2癈。这是因为DNL误差可为正或负。实际响应与理想曲线的净偏差取决于正和负DNL项在代码中的分布方式。在上面的例子中,代码1和2的两个负DNL错误之后是代码3的正DNL。这有助于实际响应再次接近理想曲线。然而,在以下示例中,负项累积并导致与理想响应的更大偏差。

示例响应越来越接近理想曲线。

 10.png

•图8。示例响应越来越接近理想曲线。

在这个实例中,前5个步骤具有-0.25 LSB的DNL,并且只有代码6具有正的DNL。因此,误差累积并导致a点的最大误差为1.75 LSB(来自线性模型)。虽然分辨率接近前面的示例(2.25°C),但测量误差为1.75°C(而不是前面的示例中的1°C)。

以上讨论表明,DNL误差不能完全描述ADC的线性性能。积分非线性()是表征代码转换与其理想值的偏差的规范。INL定义为DNL误差的累积总和。在数学语言中,第m个代码的INL由下式给出:

 11.png

INL就像DNL一样,是一个向量;但是,仅指定最大INL值也是常见的。例如,ADS8860的典型INL和最大INL分别为±1.0 LSB和±2.0 LSB。

最后一个想法:ADC噪音影响

值得一提的是,实际ADC的代码转换受到系统中存在的噪声的影响。图9显示了代码转换噪声对ADC特性曲线的影响。

码转换噪声对ADC特性曲线的影响,其中(A)为理想ADC,(B)为实际ADC。

 12.png

•图9。码转换噪声对ADC特性曲线的影响,其中(A)为理想ADC,(B)为实际ADC。图像由ADI提供

正如你所看到的,从一个数字代码到下一个数字代码的转变并不是在模拟输入的一个精确值下发生的——这是一个不确定的小区域。换言之,如果我们多次测量从一个代码到下一个代码的转换点,我们将不能获得模拟输入的单个阈值。在今天的中等分辨率到高分辨率ADC中,代码转换噪声可以很容易地与LSB大小相比较。DNL等静态规范未考虑噪音影响。

因此,当我们理解DNL概念在测量应用中的重要性时,我们应该注意到实际ADC的代码转换噪声会使DNL规范在实践中稍微不那么有用。为了解决噪声问题,我们可以使用信号平均技术。实际上,用于获得ADC的DC性能的测试方法固有地使用信号平均,使得测量不易受噪声影响的影响。

DNL和INL对ADC动态性能的影响

当我们使用控制和测量应用来引入DNL和INL规范时,这些非线性度量也会影响ADC的动态性能,即信噪比(SNR)和ADC的失真。在下一篇文章中,我们将提供一些关于DNL误差的补充内容,并讨论DNL和INL误差对ADC动态响应的影响。




关键词: ADC差分非线性 DNL INL

评论


相关推荐

技术专区

关闭