mafan88的个人空间 https://blog.eetop.cn/162539 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

DAC的DNL含义

热度 1已有 4448 次阅读| 2011-7-15 15:12 |个人分类:dac/adc

在DAC中,数字编码中的1 LSB变化产生严格的1 LSB模拟输出的变化,与此同时,在ADC中从一个数字转换到下

一个数字转换应该有严格的1 LSB模拟输入的变化。


在模拟信号对应于1 LSB数字变化大于或小于1 LSB的地方,被称为DNL误差。转换器的DNL误差通常被定义为在

任何转换中发现的最大DNL数值。如果DAC的DNL在任何转换中小于-1 LSB,那么,DAC就是非单调一致的;即

它的传输特性包含一个或一个以上的本地化最大或最小DNL数值。DNL大于+1 LSB并不会造成非单调一致性,但

是,它仍然是不受欢迎的。在许多DAC应用(特别是非单调一致性能够改变负反馈到正反馈的闭环系统的地方)中,

DAC是单调一致就非常重要。DAC的非单调一致性常常在数据表上是明确地规定的,尽管DNL保证小于1 LSB(即

|DNL| ≤ 1LSB),该器件必须是单调一致的,即使没有明确的保证。


ADC可以是非单调一致的,但是,在ADC中过大的DNL导致编码丢失的情况却更为常见。在ADC中丢失

的编码(或非单调一致性)跟在DAC中非单调一致性一样令人讨厌。此外,它们导致DNL>1 LSB。

 

好久没来博客了,看到有不少留言,很多是关于ADC的INL和DNL,下面我就详细谈谈这两个概念!大家可以发表留言,我们相互交流!

先谈谈线性测试

动态测试关注的是器件的传输和性能特征,即采样和重现时序变化信号的能力,相比之下,线性测试关注的则是器件内部电路的误差。对ADC来说,这些内部误差包括器件的增益、偏移、积分非线性(INL)和微分非线性(DNL)误差,这些参数说明了静止的模拟信号转换成数字信号的情况,主要关注具体电平与相应数字代码之间的关系。

测试ADC静态性能时,要考虑两个重要因素:第一,对于给定的模拟电压,一个具体数字代码并不能告诉多少有关器件的信息,它仅仅说明这个器件功能正常,要知道器件功能到底如何还必须考虑模拟电压的范围(它会产生一个输出代码)以及代码间的转换点;第二,动态测试一般关注器件在特定输入信号情况下的输出特性,然而静态测试是一个交互性过程,要在不同输入信号下测试实际输出。

总的来说,ADC的误差可以分为与直流(DC)和交流(AC)有关的误差。DC误差又细分为四类:量化误差、微分非线性误差、积分非线性误差、偏移与增益误差。AC误差一般与信噪及总谐波失真问题有关。

量化误差(Quantization Error

量化误差是基本误差,用图3所示的简单3bit ADC来说明。输入电压被数字化,以8个离散电平来划分,分别由代码000b111b去代表它们,每一代码跨越Vref/8的电压范围。代码大小一般被定义为一个最低有效位(Least Significant BitLSB)。若假定Vref8V时,每个代码之间的电压变换就代表1V。换言之,产生指定代码的实际电压与代表该码的电压两者之间存在误差。一般来说,0.5LSB偏移加入到输入端便导致在理想过渡点上有正负0.5LSB的量化误差。

点击看大图

图3 理想ADC转换特性

偏移与增益误差(Offset Gain Error

器件理想输出与实际输出之差定义为偏移误差,所有数字代码都存在这种误差。在实际中,偏移误差会使传递函数或模拟 输入电压与对应数值输出代码间存在一个固定的偏移。通常计算偏移误差方法是测量第一个数字代码转换或“零”转换的电压,并将它与理论零点电压相比较。增益 误差是预估传递函数和实际斜率的差别,增益误差通常在模数转换器最末或最后一个传输代码转换点计算。

为了找到零点与最后一个转换代码点以计算偏移和增益误差,可以采用多种测量方式,最常用的两种是代码 平均法和电压抖动法。代码平均测量就是不断增大器件的输入电压,然后检测转换输出结果。每次增大输入电压都会得到一些转换代码,用这些代码的和算出一个平 均值,测量产生这些平均转换代码的输入电压,计算出器件偏移和增益。电压抖动法和代码平均法类似,不同的是它采用了一个动态反馈回路控制器件输入电压,根 据转换代码和预期代码的差对输入电压进行增减调整,直到两代码之间的差值为零,当预期转换代码接近输入电压或在转换点附近变化时,测量所施加的“抖动”电压平均值,计算偏移和增益。

微分非线性(Differential nonlinearityDNL

理论上说,模数器件相邻两个数据之间,模拟量的差值都是一样的。就好比疏密均匀的尺子。但实际上,相邻两刻度之间的间距不可能都是相等的。所以,ADC相邻两刻度之间最大的差异就叫微分非线性DNL,也称为差分非线性。同样举例来说明,如果对于12bitADC,其INL8LSBDNL3LSB,在基准电压为4.095V时,测得A电压对应读数为1000b,测得B电压对应读数为1200b。那么就可以判断出,B点电压值比A点高出197mV203mV,而不是准确的200mV

点击看大图

4 DNL误差特性

4中,001b010b码制过渡过程的DNL0LSB,因为刚好为1LSB。但是000b001b过渡就有个0.2LSBDNL,因为此时有1.2LSB的代码宽度。应当注意:如果在ADC或者DACdatasheet中没有清楚说明DNL参数的话,可视该转换器没有漏码,即暗示它有优于正负1LSBDNL

积分非线性(Integral nonlinearityINL

积分非线性表示了ADC器件在所有的数值点上对应的模拟值和真实值之间误差最大的那一点的误差值,也就是输出数值偏离线性最大的距离。 单位是LSB。例如,一个12bit的ADC,INL值为1LSB,那么,对应基准4.095V,测某电压得到的转换结果是1000b,那么,真实电压值 可能分布在0.999V到1.001V之间。

INL是DNL误差的数学积分,即一个具有良好INL的ADC保证有良好的DNL

点击看大图

5 INL误差特性

总之,非线性微分和积分是指代码转换与理想状态之间的差异。非线 性微分(DNL)主要是代码步距与理论步距之差,而非线性积分 (INL)则关注所有代码非线性误差的累计效应。对一个ADC来说,一段范围的输入电压产生一个给定输出代码,非线性微分误差为正时输入电压范围比理想的 大,非线性微分误差为负时输入电压范围比理想的要小。从整个输出代码来看,每个输入电压代码步距差异累积起来以后和理想值相比会产生一个总差异,这个差异 就是非线性积分误差。

DAC的DNL含义 - 扬州毛毛虫 -  扬州毛毛虫的博客

6 INLDNL

与增益和偏移一样,计算非线性微分与积分误差也有很多种方法,代码平均和电压抖动两种方法都可以使用,但是由于存在重复搜索,当器件位数较多时这两种方法执行起来很费时。一个更加有效计算INLDNL的方法是直方图法,采用线性或正弦直方图。图7说明了线性斜升技术的应用,首先使输入电压线性增加,同时对输出以固定间隔连续采样,电压逐步增加时连续几次采样都会得到同样输出代码,这些采样次数称为“点击数”。

点击看大图

7 计算直方图

从统计上讲,每个代码的点击数量直接与该代码的相应输入电压范围成正比,点击数越多表明该代码的输入电压范围越大,非线性微分误差也就越大;同样,代码点击数越少表明该代码输入电压范围越小,非线性微分误差也就越小。用数学方法计算,如果某个代码点击数为9,而“理想”情况下是8,则该器件的非线性微分误差就是(9-8)/80.125。非线性积分是所有代码非线性微分的累计值,对于斜升直方图,它就是每个非线性微分误差的和。从数学观点来看,非线性积分误差等于在代码X-1的非线性微分误差加上代码X和代码X-1的非线性微分误差平均值。

以上一些概念是网上摘抄的,不是本人自己言论,只是用于学习用!

点赞

发表评论 评论 (1 个评论)

回复 敬山一休 2022-10-9 15:24
请问一下DAC有效位数如何计算,我们的工程师常常通过测试的INL来判断出DAC的有效位数,但是我不知道这个位数如何计算,所以请教一下

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 6

    粉丝
  • 0

    好友
  • 15

    获赞
  • 6

    评论
  • 105786

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-22 00:46 , Processed in 0.014942 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部