談談ADC的相關效能引數

2021-09-28 20:20:40 字數 2958 閱讀 2816

說到adc的引數,可能我們一開始學習的時候比較會關注到他的轉換位數,轉換速度啊這些。但是我想說的是,對於乙個adc來說,我們在今後的設計中可能更應該去關注這兩個引數:inl/dnl。

dnl,即微分非線性,他表徵的是我們adc的實際刻度與理想刻度之間的差值。舉個例子,比如說我們手中普通的尺子,正常情況下一小格應該是標準的1mm。但是由於生產精度,材質,受力引發的形變啦等影響,尺子上上標註的1小格可能並不是標準的1mm了,可能是0.98mm,也可能是1.02mm。這樣我們在量取乙個物件的長度時就會出現誤差。那我們的dnl是怎麼表徵這一引數的呢?還是以尺子舉例,比如說我們尺子上的某個1mm刻度線這時候的1mm已經變成了0.98mm,那麼我們就可以說這個1mm刻度線的dnl就是(0.98-1)/1=0.02 lsb,這裡的lsb就是指我們的乙個最小刻度對應的長度是多少,對於一般的尺子就是1mm。同樣的,轉回到我們adc上面,你也可以認為我們adc就是一把尺子,我們adc的最小刻度(及解析度)由轉換位數n和參考電壓vref決定,最小刻度為 vref/2n,也即我們的乙個lsb就代表著vref/2n的電壓。那麼在實際轉換中,我們也存在和尺子測量長度一樣的問題,這時候,我們就用dnl來表達這個誤差。比如說,某款adc的轉換位數是10bit,dnl是1lsb,參考電壓是1.024v(方便計算哈~),那麼我們用adc測量某電路a點電壓是1v,b點電壓是1.001v,理想狀態下,我們可以說a點電壓比b點電壓小0.001v。但是,實際上由於dnl誤差的存在,我們只能說a點電壓比b點電壓小0-0.002v之間。

inl,即積分非線性,他表徵的是我們adc的轉換值與真實值之間的差距。比如說某款adc的轉換位數是10bit,inl是1lsb,參考電壓是1.024v,如果我們轉換得到a點的電壓值為1v,那麼實際上a點的電壓範圍應該在0.999v-1.001v之間。從整個adc輸出**來看,我們的inl其實就是dnl的累加和。所以我們可以發現有些adc即使dnl很小,但是加入你的dnl都往正或者負方向飄,那麼這個adc的inl一定也會很大。通常我們說的無失碼adc就是指我們的adc的dnl小於1lsb(這是非常好的adc了),就是說我們的adc可以轉換出整個域內的**。假如說現在有個12bit adc的dnl是大於1lsb的,那麼我們甚至說這個adc的有效位數是沒有12位的,實際上要判定乙個adc的有效位數要通過下面的動態引數指標來確定。

在我們今後挑選adc的時候,需要去關注一下這兩個引數,計算分析一下,看看我們的adc是否能滿足我們的設計要求。部分朋友可能會對這兩個引數的測量比較感興趣,我們在以後的文章中會提到該如何去測量這一引數。

snr,即訊雜比,有的廠商datasheet會用動態範圍來描述(我認為動態範圍和訊雜比英是同乙個概念,不知是否準確~)。表示訊號功率與雜訊功率的比值,系統內部雜訊會使偏離或snr大於理論值範圍,可能造成誤差的原因包括:器件量化誤差、器件內部雜訊和驅動/取樣源產生的非線性雜訊(應用雜訊)。量化雜訊關係到轉換器的解析度,轉換器內的雜訊主要是和輸入比較器的完善程度有關(部分描述摘抄自網路)。該引數就是描述期間對於雜訊的抑制能力,一般市場上普通的音訊裝置一般要求snr大於60db,微軟對於音效卡的snr規定則大於80db,較高的snr以為著該adc有乙個較好的有效轉換位數,有如下公式:

snr=6.02n+1.76db

enob,即有效位數,上述公式中的n代表的是理想的轉換位數,那麼加入我們通過一些手段測量到了adc的snr,那麼我們就可以確定該adc的有效位數是多少。enob真實的反映了我們adc的有效位數是多少,讓我們可以真正了解這個adc的真實性能。有效位數enob是在adc器件訊雜比基礎上計算出來的,它將傳輸訊號質量轉換為等效位元解析度。實際上系統雜訊使輸出訊號失真,失真大小就反映在訊雜比上。adc的位元解析度可以用來計算給定器件的理論訊雜比,反過來也成立,所以器件的訊雜比測量值也可用來計算有效器件位元解析度。所有雜訊源和器件的不精確性合在一起,可以轉化為量化誤差與有效器件解析度(部分描述摘抄自網路)。

thd,即總諧波失真,總諧波失真是輸入訊號與系統所有諧波的總功率比,它可提供系統對稱和非對稱非線性產生的總失真大小,用以表達其對訊號的諧波含量的作用或者影響。還有乙個引數叫thd+n,相當於還加上了雜訊的影響,常見於一些音訊adc中。總諧波失真是指用訊號源輸入時,輸出訊號(諧波及其倍頻成分)比輸入訊號多出的額外諧波成分,通常用百分數來表示。一般來說,1mhz頻率處的總諧波失真最小,因此不少產品均以該頻率的失真作為它的指標。所以測試總諧波失真時,是發出1mhz的聲音來檢測,並希望這個值越小越好。

上面說到的snr/enob/thd屬於adc的動態效能引數,而inl/dnl屬於adc的靜態效能引數,不同的應用場景下對於adc效能引數的影響也是不一樣的,我們在設計時需要重點考慮。

我這裡單獨把這個adc的輸入阻抗引數拉出來說一下,是因為我發現身邊有些朋友在設計這種adc電路時沒有考慮過這個引數,所以這裡單獨說一下。一般在我們使用adc時,尤其是mcu內部自帶的adc,都會說明一下對外面訊號源阻抗的要求。以我們公司的一款mcu產品的內部adc為例,我們會註明我們的adc對外面的輸入阻抗要求是10k。這項引數意味著我們的被測訊號源的內阻不能大於10k,否則我們的輸出精度將無法被保證。原因是晶元內部的adc電路前面有乙個取樣保持電路,假如外面內阻太大會直接影響到這個電路的充放電,從而影響到我們最終的轉換精度,所以這裡特別說明一下,我們今後在設計時要關注一下我們使用的adc對訊號源的輸入阻抗是否有要求。

實際應用中,尤其是對於乙個mcu開發者來說,我們在使用mcu內部的adc後,很多人都會去配一下各種時間,但是當有人問起來我們的adc轉換速度是多少時,往往一臉懵逼,因為很多人並不知道該如何計算adc的轉換時間。以sar adc為例,一般mcu內部自帶的adc可有有幾個配置可以影響到adc的轉換速度:轉換位數n,adc時鐘f,取樣保持時間t。那麼我們的adc轉換一次的時間就是n*1/f+t,這就是我們adc轉換一次的時間,多以我們會發現有的mcu可以選擇10bit或者12bit輸出模式,有的人會想這是不是多此一舉,實際上從上面的公式可以看出,我們的轉換位數會影響到我們adc的轉換速度的。另外說一句,對於同乙個adc,假如我們的轉換速度設定很快也會降低我們的adc精度,因此你會發現所有adc 的datasheet中的轉換精度描述一欄的測試條件欄中會加上對轉換速度的限制條件。所以,我們在使用adc時,若沒有速度的要求,建議將adc的轉換速度適當降低,以換取較為準確的精度。

Socket I O 模型的效能引數

伺服器 p4 17g xeon,記憶體768mb i o 模型 嘗試數 成功連線數 使用記憶體 k 未分頁記憶體池 cpu 線程式 吞吐率 byte s 阻塞 7000 1008 25632 36121 10 60 2016 2198148 非阻塞 7000 4011 4208 135123 95 ...

常用磁碟的效能引數

傳統磁碟本質上一種機械裝置,如fc,sas,sata磁碟,轉速通常為5400 7200 10k 15k rpm不等。影響磁碟的關鍵因素是磁碟服務時間,即磁碟完成乙個i o請求所花費的時間,它由尋道時間 旋轉延遲和資料傳輸時間三部分構成。1,尋道時間 tseek是指將讀寫磁頭移動至正確的磁軌上所需要的...

MYSQL的各種效能引數

敲擊show status 或show status like aborted connects 嘗試已經失敗的mysql伺服器的連線的次數。connections 試圖連線mysql伺服器的次數。created tmp tables 當執行語句時,已經被創造了的隱含臨時表的數量。delayed i...