ADC誤差
動(dòng)態(tài)測(cè)試關(guān)注的是器件的傳輸和性能特征,即采樣和重現(xiàn)時(shí)序變化信號(hào)的能力,相比之下,線性測(cè)試關(guān)注的則是器件內(nèi)部電路的誤差。對(duì)ADC誤差,這些參數(shù)說(shuō)明了靜止的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的情況,主要關(guān)注具體電平與相應(yīng)數(shù)字代碼之間的關(guān)系。
測(cè)試ADC靜態(tài)性能時(shí),要考慮兩個(gè)重要因素:第一,對(duì)于給定的模擬電壓,一個(gè)具體數(shù)字代碼并不能告訴多少有關(guān)器件的信息,它僅僅說(shuō)明這個(gè)器件功能正常,要知道器件功能到底如何還必須考慮模擬電壓的范圍(它會(huì)產(chǎn)生一個(gè)輸出代碼)以及代碼間的轉(zhuǎn)換點(diǎn);第二,動(dòng)態(tài)測(cè)試一般關(guān)注器件在特定輸入信號(hào)情況下的輸出特性,然而靜態(tài)測(cè)試是一個(gè)交互性過(guò)程,要在不同輸入信號(hào)下測(cè)試實(shí)際輸出。
總的來(lái)說(shuō),ADC的誤差可以分為與直流(DC)和交流(AC)有關(guān)的誤差。DC誤差又細(xì)分為四類:量化誤差、微分非線性誤差、積分非線性誤差、偏移與增益誤差。AC
量化誤差是基本誤差,用圖3所示的簡(jiǎn)單3bit ADC來(lái)說(shuō)明。輸入電壓被數(shù)字化,以8個(gè)離散電平來(lái)劃分,分別由代碼000b到111b去代表它們,每一代碼跨越Vref/8的電壓范圍。代碼大小一般被定義為一個(gè)最低有效位(Least Significant Bit,LSB)。若假定Vref=8V時(shí),每個(gè)代碼之間的電壓變換就代表1V。換言之,產(chǎn)生指定代碼的實(shí)際電壓與代表該碼的電壓兩者之間存在誤差。一般來(lái)說(shuō),0.5LSB偏移加入到輸入端便導(dǎo)致在理想過(guò)渡點(diǎn)上有正負(fù)0.5LSB
器件理想輸出與實(shí)際輸出之差定義為偏移誤差,所有數(shù)字代碼都存在這種誤差。在實(shí)際中,偏移誤差會(huì)使傳遞函數(shù)或模擬輸入電壓與對(duì)應(yīng)數(shù)值輸出代碼間存在一個(gè)固定的偏移。通常計(jì)算偏移誤差方法是測(cè)量第一個(gè)數(shù)字代碼轉(zhuǎn)換或“轉(zhuǎn)換的電壓,并將它與理論零點(diǎn)電壓相比較。增益誤差是預(yù)估傳遞函數(shù)和實(shí)際斜率的差別,增益誤差通常在模數(shù)轉(zhuǎn)換器最末或最后一個(gè)傳輸代碼轉(zhuǎn)換點(diǎn)計(jì)算。
為了找到零點(diǎn)與最后一個(gè)轉(zhuǎn)換代碼點(diǎn)以計(jì)算偏移和增益誤差,可以采用多種測(cè)量方式,最常用的兩種是代碼平均法和電壓抖動(dòng)法。代碼平均測(cè)量就是不斷增大器件的輸入電壓,然后檢測(cè)轉(zhuǎn)換輸出結(jié)果。每次增大輸入電壓都會(huì)得到一些轉(zhuǎn)換代碼,用這些代碼的和算出一個(gè)平均值,測(cè)量產(chǎn)生這些平均轉(zhuǎn)換代碼的輸入電壓,計(jì)算出器件偏移和增益。電壓抖動(dòng)法和代碼平均法類似,不同的是它采用了一個(gè)動(dòng)態(tài)反饋回路控制器件輸入電壓,根據(jù)轉(zhuǎn)換代碼和預(yù)期代碼的差對(duì)輸入電壓進(jìn)行增減調(diào)整,直到兩代碼之間的差值為零,當(dāng)預(yù)期轉(zhuǎn)換代碼接近輸入電壓或在轉(zhuǎn)換點(diǎn)附近變化時(shí),測(cè)量所施
◆微分非線性(Differential nonlinearity,DNL)
理論上說(shuō),模數(shù)器件相鄰兩個(gè)數(shù)據(jù)之間,模擬量的差值都是一樣的。就好比疏密均勻的尺子。但實(shí)際上,相鄰兩刻度之間的間距不可能都是相等的。所以,ADC相鄰兩刻度之間最大的差異就叫微分非線性DNL,也稱為差分非線性。同樣舉例來(lái)說(shuō)明,如果對(duì)于12bit的ADC,其INL=8LSB,DNL=3LSB,在基準(zhǔn)電壓為4.095V時(shí),測(cè)得A電壓對(duì)應(yīng)讀數(shù)為1000b,測(cè)得B電壓對(duì)應(yīng)讀數(shù)為1200b。那么就可以判斷出,B點(diǎn)電壓值比A點(diǎn)高出197mV到203mV,而不是準(zhǔn)確的200mV
圖4中,001b到010b碼制過(guò)渡過(guò)程的DNL為0LSB,因?yàn)閯偤脼?LSB。但是000b到001b過(guò)渡就有個(gè)0.2LSB的DNL,因?yàn)榇藭r(shí)有1.2LSB的代碼寬度。應(yīng)當(dāng)注意:如果在ADC或者DAC的datasheet中沒(méi)有清楚說(shuō)明DNL參數(shù)的話,可視該轉(zhuǎn)換器沒(méi)有漏碼,即暗示它有優(yōu)于正負(fù)1LSB的DNL
◆積分非線性(Integral nonlinearity,INL)
積分非線性表示了ADC器件在所有的數(shù)值點(diǎn)上對(duì)應(yīng)的模擬值和真實(shí)值之間誤差最大的那一點(diǎn)的誤差值,也就是輸出數(shù)值偏離線性最大的距離。單位是LSB。例如,一個(gè)12bit的ADC,INL值為1LSB,那么,對(duì)應(yīng)基準(zhǔn)4.095V,測(cè)某電壓得到的轉(zhuǎn)換結(jié)果是1000b,那么,真實(shí)電壓值可能分布在0.999V到1.001V之間。
總之,非線性微分和積分是指代碼轉(zhuǎn)換與理想狀態(tài)之間的差異。非線性微分(DNL)主要是代碼步距與理論步距之差,而非線性積分 (INL)則關(guān)注所有代碼非線性誤差的累計(jì)效應(yīng)。對(duì)一個(gè)ADC來(lái)說(shuō),一段范圍的輸入電壓產(chǎn)生一個(gè)給定輸出代碼,非線性微分誤差為正時(shí)輸入電壓范圍比理想的大,非線性微分誤差為負(fù)時(shí)輸入電壓范圍比理想的要小。從整個(gè)輸出代碼來(lái)看,每個(gè)輸入電壓代碼步距差異累積起來(lái)以后和理想值相比會(huì)產(chǎn)生一個(gè)總差異,這個(gè)差異就是非線性積分誤差。
與增益和偏移一樣,計(jì)算非線性微分與積分誤差也有很多種方法,代碼平均和電壓抖動(dòng)兩種方法都可以使用,但是由于存在重復(fù)搜索,當(dāng)器件位數(shù)較多時(shí)這兩種方法執(zhí)行起來(lái)很費(fèi)時(shí)。一個(gè)更加有效計(jì)算INL和DNL的方法是直方圖法,采用線性或正弦直方圖。圖7說(shuō)明了線性斜升技術(shù)的應(yīng)用,首先使輸入電壓線性增加,同時(shí)對(duì)輸出以固定間隔連續(xù)采樣,電壓逐步增加時(shí)連續(xù)幾次采樣都會(huì)得到同樣輸出代碼,這些采樣次數(shù)稱。
從統(tǒng)計(jì)上講,每個(gè)代碼的點(diǎn)擊數(shù)量直接與該代碼的相應(yīng)輸入電壓范圍成正比,點(diǎn)擊數(shù)越多表明該代碼的輸入電壓范圍越大,非線性微分誤差也就越大;同樣,代碼點(diǎn)擊數(shù)越少表明該代碼輸入電壓范圍越小,非線性微分誤差也就越小。用數(shù)學(xué)方法計(jì)算,如果某個(gè)代碼點(diǎn)擊數(shù)為98,則該器件的非線性微分誤差就是(9-8)/8或0.125。非線性積分是所有代碼非線性微分的累計(jì)值,對(duì)于斜升直方圖,它就是每個(gè)非線性微分誤差的和。從數(shù)學(xué)觀點(diǎn)來(lái)看,非線性積分誤差等于在代碼X-1的非線性微分誤差加上代碼X和代碼X-1的非線性微分誤差平均值。