本周結合文獻進一步學習了pipeline ADC的實現原理及基本結構,主要參考了西電、成電和東南的幾篇pipelined ADC的碩士論文以及S.H.Lewis的”A pipelined 5-Msample/s Analog-to-Digital Convertor”,以下為個人筆記。
Pipeline ADC的結構圖如上圖所示,它是由多級相同單元組成的一種ADC結構,每級都進行一次粗量化,輸出最終轉換出數字量中的幾位,第一級為高位,后級輸出低位,而總的分辨率,也就是位數就等于所有流水級減掉冗余位后的有效位數之和。
此結構的優越性主要有二:
1.與flash或subranging ADC相比,它的面積更小,功耗更低,這是由于此種結構需要的器件數與分辨率是線性關系,需要更高的分辨率只需要再添加更多流水級,而另兩種類型若想要更高分辨率,比較器的數量呈指數上升。
2.流水線結構顧名思義,與流水線CPU相似,每個子級都是并發執行的,當第一級在量化此刻輸入的數據時,第二級正在量化上個周期輸入的數據,以此類推,這樣一來就將ADC轉換速度與分辨率獨立開來,無論有多少個子級多少位的分辨率,數據都是連續輸入連續輸出的,相鄰數據僅相差一個周期。
接下來簡述單個子級的結構及原理。假設單級的分辨率為n,它由S/H電路、n位的子ADC、n位的子DAC、減法器以及乘法器構成,一般也將n位的子DAC、減法器以及乘法器統稱為MDAC(multiplying DAC)。
首先,S/H電路采樣并保持輸入電壓,輸送給子ADC,子ADC進行n位的粗量化,輸出高n位的數字量,之后將量化出的n位數字量再經過一個n位子DAC得到粗量化出的模擬量,將實際輸入的模擬量減去這個粗量化出的模擬量,得到的值為剩余的需要繼續進行量化的模擬量,稱為殘差或余差(residue),之后為了后級能夠繼續使用相同的子級進行量化,需要將這個殘差放大到滿量程上,放大倍數為2n。
這里使用數字量來代替模擬量進行理解會更加容易。需要注意,一般對于pipelined ADC來說,輸出的數字量0代表負的權重,1代表正的權重。舉個簡單的例子,假設整個ADC的分辨率為6位,輸入所對應的數字量D正好為6’b101101,首級為2位,理想情況下,首級將轉換出10這個數碼,轉換之后剩下待轉換的量用數字量表示為6’bzz1101,這里用z表示權重為0,那么為了使用一致的子級結構進行轉換,需要將這個值向左移兩位,對應于算數運算就是乘以4,即乘以22,之后再送入下一級進行量化,得到11,求出殘差乘以4送至下一級,以此類推。
2-bit單級的輸入輸出特性如下圖所示,對應于00、01、10、11四個范圍,當輸入小于0時,說明最高位必須為0,輸入大于0時,最高位必須為1,而當輸入小于-VREF/2時,次高位也必須為0(考慮0100000…這個量,它只能逼近-VREF/2而無法小于),其他區間類似可得。比較器判決電壓為-VREF/2、0、VREF/2。
那么就可以得到每一輸入區間對應該級的子DAC轉換出的量,分別為-3/4 VREF、-VREF/4、VREF/4、3/4 VREF。
簡單分析動態過程,當Vin = -VREF時,對應Vout = 4 * (-VREF – (-3/4 VREF)) =-VREF。隨著Vin增加,轉換出的數碼為00不變,因此Vout隨Vin正比例增加,斜率為級間增益4,當Vin越過第一個判決電壓-VREF/2,轉換出數碼跳變為01,Vout也跳變到-VREF,注意這里也體現出了級間增益將殘差放大到滿量程的效果,Vin繼續增大,Vout依舊是以4為斜率正比例增加,之后的區間類似。
我們注意到,如果子ADC中比較器的判決電壓存在偏移,如(b)圖所示,就會引入誤差,導致誤碼甚至失碼的現象。然而,在MDAC是理想的的情況下,如果這個錯誤的殘差輸出沒有超過下一級的量程,實際上這個模擬量的信息還是完整地被保存下來了,因此,如果提高下一級的量程,就可以對這個溢出的殘差進行轉換了。
這里的解釋不夠準確,感興趣的朋友可以去看我的筆記(二)
實際上,在pipelined ADC中通常采用數字校準技術,通過使用冗余位,來對易錯區間進行單獨劃分。其原理與提高量程有異曲同工之妙。以下對此技術進行簡要解釋。
為簡單起見,考慮一個1位的流水級,采用了0.5位冗余的輸入輸出特性曲線如下圖所示。可以看到,對應于未加入冗余位的結構,它多出了一個轉換區間,包含00、01、10三個區間,其中高位為有效位,而低位是冗余位,高位的權重為VREF/2,低位的權重為VREF/4,有意思的是,該級有效的權重就是VREF/2,多出來的VREF/4權重的位卻被保留下來輸送給下一位了。觀察原來的錯誤源頭,當輸入接近判決電壓0時,若判決電壓存在偏移,輸入會被誤判到另一個數字輸出的區間,產生誤碼,同時輸出余差超出下級量程,那么如果將接近判決電壓的部分區域再分出一個區間,認為此區間容易出錯因此不加以判斷,留到后面再進行判斷,就可以避免出現錯誤的現象了。若想要多劃分出區間,就需要增加該級的位數,這也就是冗余碼的原理。
需要注意的是,冗余碼的權重實際上是下一級有效碼的權重,那么用該級冗余碼與下一級有效數碼相加,得到的進位就是該級的糾正碼,留下的和就是下一級的結果。實際上,所有流水級的結果將冗余碼錯位再相加就得到了正確的轉換結果,將比較器判決電壓偏移導致的錯誤消除了。
審核編輯:黃飛
-
adc
+關注
關注
98文章
6524瀏覽量
545188 -
比較器
+關注
關注
14文章
1656瀏覽量
107327 -
dac
+關注
關注
43文章
2303瀏覽量
191273 -
模擬量
+關注
關注
5文章
492瀏覽量
25588 -
輸入電壓
+關注
關注
1文章
506瀏覽量
16593
發布評論請先 登錄
相關推薦
評論