了解ADC差分非線性(DNL)誤差
了解可能影響系統(tǒng)響應(yīng)的缺陷,即ADC的非線性,即微分非線性(DNL)和積分非線性(INL)規(guī)范。
本文引用地址:http://www.ex-cimer.com/article/202409/462774.htm真實世界的模數(shù)轉(zhuǎn)換器(ADC)的傳遞函數(shù)可能由于諸如偏移和增益誤差的影響而偏離理想響應(yīng)。另一個可能影響系統(tǒng)響應(yīng)的缺陷是ADC的非線性。不同的規(guī)格通常用于表征ADC的線性。對于測量和控制應(yīng)用,微分非線性(DNL)和積分非線性(INL)規(guī)范是有用的性能指標。然而,當處理通信系統(tǒng)時,雜散自由動態(tài)范圍(SFDR)規(guī)范通常是評估ADC線性性能的更好方法。
1 微分非線性(DNL)
深入來看,讓我們來看圖1中的藍色曲線,它顯示了3位單極ADC的理想傳遞函數(shù)。
顯示3位單極ADC理想傳遞函數(shù)的示例。
圖1 顯示3位單極ADC理想傳遞函數(shù)的示例
理想的響應(yīng)表現(xiàn)出均勻的梯段輸入輸出特性,這意味著每個轉(zhuǎn)變都發(fā)生在前一個轉(zhuǎn)變的1LSB(最低有效位)。實際上,臺階寬度可能與理想值(1LSB)不同。上面的紫色曲線顯示了假設(shè)的ADC的響應(yīng),其中步驟不均勻。在這個例子中,代碼010的寬度是1.25LSB,而下一個代碼呈現(xiàn)更小的0.54LSB的寬度。DNL規(guī)范描述了ADC步距如何偏離理想值。
對于ADC,第k個代碼的DNL由以下方程式定義:
其中W(k)和Wideal分別表示第k個碼的寬度和理想步長。舉個例子,對于上圖中的代碼1(或001),我們有:
這意味著代碼1的寬度比理想值大0.125 LSB。代碼3(或011)具有0.54 LSB的寬度,產(chǎn)生-0.46 LSB的負DNL。注意,非理想代碼轉(zhuǎn)換可能導致“代碼缺失”
例如,上述ADC不產(chǎn)生任何輸入值的代碼5(101)。對于缺少的代碼,我們可以假設(shè)步長為零,導致DNL為-1。最后,在我們的例子中,代碼6(110)具有理想的寬度,即DNL(6)=0。當計算DNL值時,我們假設(shè)ADC的偏移和增益誤差已經(jīng)被校準掉。這意味著第一個和最后一個轉(zhuǎn)變發(fā)生在理想值處,并且因此對于第一個和最后一個步驟不定義DNL誤差。
2 使用ADS8860表示ADC數(shù)字降噪信息
我們可以將上述信息表示為針對代碼值的DNL圖。對于以上實例,我們得出以下圖。
圖2 DNL與代碼值的關(guān)系圖
DNL通常也表示為所有代碼中的最小值和最大值。我們假設(shè)的ADC的DNL介于-1 LSB和+1.1 LSB之間。圖3顯示了ADS8860的典型DNL圖,ADS8860是來自TI的一個16位逐次逼近寄存器(SAR)ADC。
圖3 圖片由TI提供
ADS8860的最大公稱通徑為±1.0 LSB,無漏碼。指定最大DNL錯誤+/-1 LSB的ADC通常顯式說明設(shè)備是否缺少代碼。通常保證“無漏碼”。一些ADC數(shù)據(jù)表,如ADS8860,也提供了DNL與溫度的關(guān)系圖。
3 使用ADC DNL進行控制和測量應(yīng)用
為了更好地理解DNL規(guī)范在控制和測量系統(tǒng)中的影響,讓我們考慮圖4中所示的示例。
圖4 顯示腔室溫度調(diào)整的反饋系統(tǒng)示例
在本例中,反饋系統(tǒng)試圖調(diào)整腔室的溫度。溫度數(shù)據(jù)由ADC進行數(shù)字化并傳輸至處理器(MCU)。MCU將溫度與所需值進行比較,并且最有可能使用諸如PID(比例積分微分)控制器的控制方案來產(chǎn)生用于數(shù)模轉(zhuǎn)換器(DAC)的適當輸入。最后,DAC通過緩沖級驅(qū)動加熱器。
假設(shè)試驗室溫度始終在30°C至37°C的范圍內(nèi),我們需要以1°C的分辨率測量溫度。因此,假設(shè)ADC量化誤差是我們系統(tǒng)中唯一的誤差來源,我們可以使用三位ADC,因為它產(chǎn)生應(yīng)用程序所需的8個不同的輸出代碼。將溫度傳感器的輸出電壓調(diào)整到ADC的輸入范圍后,30°C至37°C的溫度范圍將對應(yīng)于0至7 LSB范圍,如圖5所示。
圖5 顯示數(shù)字輸出與模擬輸入和溫度的關(guān)系的曲線圖
對于理想的ADC,階躍是均勻的,并且每個階躍都發(fā)生在上一階躍的1LSB處(第一階躍除外)。因此,系統(tǒng)可確保檢測溫度變化1°C。例如,當溫度從略微高于31.5℃(圖中A點)到略微高于32.5℃(B點)時,輸出代碼從010更改為011。然而,假設(shè)實際ADC不產(chǎn)生統(tǒng)一的步進,并且呈現(xiàn)一些DNL誤差。例如,假設(shè)ADC具有如圖1所示的非線性特性。這將如何影響系統(tǒng)的性能?在這種情況下,系統(tǒng)響應(yīng)可通過下圖描述。
圖6 系統(tǒng)響應(yīng)示例
假設(shè)溫度最初為31.625℃(A點),然后逐漸上升。在溫度達到約32.875℃的B點之前,系統(tǒng)無法檢測溫度變化。因此,測量分辨率約為1.25℃,而不是1℃。代碼4對應(yīng)的步驟更寬,導致本地分辨率為2.1°C。
4 了解轉(zhuǎn)換器分辨率與精確度和DNL誤差
區(qū)分以上討論的分辨率問題和轉(zhuǎn)換器的精確度是很重要的。為了更好地理解這一點,請考慮以下用于腔室實例的轉(zhuǎn)換器。
圖7
代碼3(011)的寬度為2 LSB,因此我們知道此時系統(tǒng)的局部分辨率為2°C。然而,這是否意味著測量精度為2℃?上圖顯示了理想轉(zhuǎn)換器的理想樓梯響應(yīng)(藍色曲線)和線性模型(綠色線)。我們可以將實際響應(yīng)與線性模型進行比較,以確定測量誤差(或系統(tǒng)的精確度)。
非理想曲線與線性模型的最大偏差出現(xiàn)在A點和B點,等于1LSB。我們測量時引入的誤差為±1℃;然而,本地分辨率為2℃。這是因為DNL誤差可為正或負。實際響應(yīng)與理想曲線的凈偏差取決于正和負DNL項在代碼中的分布方式。在上面的例子中,代碼1和2的兩個負DNL錯誤之后是代碼3的正DNL。這有助于實際響應(yīng)再次接近理想曲線。然而,在以下示例中,負項累積并導致與理想響應(yīng)的更大偏差。
圖8 示例響應(yīng)越來越接近理想曲線
在這個實例中,前5個步驟具有-0.25 LSB的DNL,并且只有代碼6具有正的DNL。因此,誤差累積并導致a點的最大誤差為1.75 LSB(來自線性模型)。雖然分辨率接近前面的示例(2.25°C),但測量誤差為1.75°C(而不是前面的示例中的1°C)。
以上討論表明,DNL誤差不能完全描述ADC的線性性能。積分非線性(INL)是表征代碼轉(zhuǎn)換與其理想值的偏差的規(guī)范。INL定義為DNL誤差的累積總和。在數(shù)學語言中,第m個代碼的INL由下式給出:
INL就像DNL一樣,是一個向量;但是,僅指定最大INL值也是常見的。例如,ADS8860的典型INL和最大INL分別為±1.0 LSB和±2.0 LSB。
5 最后一個想法:ADC噪音影響
值得一提的是,實際ADC的代碼轉(zhuǎn)換受到系統(tǒng)中存在的噪聲的影響。圖9顯示了代碼轉(zhuǎn)換噪聲對ADC特性曲線的影響。
碼轉(zhuǎn)換噪聲對ADC特性曲線的影響,其中(A)為理想ADC,(B)為實際ADC。
圖9 碼轉(zhuǎn)換噪聲對ADC特性曲線的影響,其中(A)為理想ADC,(B)為實際ADC。圖像由ADI提供
正如你所看到的,從一個數(shù)字代碼到下一個數(shù)字代碼的轉(zhuǎn)變并不是在模擬輸入的一個精確值下發(fā)生的——這是一個不確定的小區(qū)域。換言之,如果我們多次測量從一個代碼到下一個代碼的轉(zhuǎn)換點,我們將不能獲得模擬輸入的單個閾值。在今天的中等分辨率到高分辨率ADC中,代碼轉(zhuǎn)換噪聲可以很容易地與LSB大小相比較。DNL等靜態(tài)規(guī)范未考慮噪音影響。
因此,當我們理解DNL概念在測量應(yīng)用中的重要性時,我們應(yīng)該注意到實際ADC的代碼轉(zhuǎn)換噪聲會使DNL規(guī)范在實踐中稍微不那么有用。為了解決噪聲問題,我們可以使用信號平均技術(shù)。實際上,用于獲得ADC的DC性能的測試方法固有地使用信號平均,使得測量不易受噪聲影響的影響。
6 DNL和INL對ADC動態(tài)性能的影響
當我們使用控制和測量應(yīng)用來引入DNL和INL規(guī)范時,這些非線性度量也會影響ADC的動態(tài)性能,即信噪比(SNR)和ADC的失真。在下一篇文章中,我們將提供一些關(guān)于DNL誤差的補充內(nèi)容,并討論DNL和INL誤差對ADC動態(tài)響應(yīng)的影響。
(注:本文登于《EEPW》2024年10期)
評論