常見類型ADC原理探祕,選型必知

關注、星標嵌入式客棧,乾貨及時送達

[導讀] 上文總結了主要常見的重要ADC的技術指標,本文來梳理兩個方面的內容,常見的ADC類型及原理,以及可能容易掉進去的坑。

談談我爲什麼整理這個文章吧,工程師往往關注點更多在於功能,而忽略了性能。爲什麼會忽略性能呢?因爲可能缺少對於原理的深入探究,那麼使用時可能失之毫釐,謬以千里。性能往往不好,穩定性也可能不佳。帽子扣大點說是缺少匠心,其實這也是大學教育非常不足的地方。而我個人的觀點是,即使是工程師也需要一點科學家的素養,希望小夥伴們都儘可能的將一些技術要點的本原深挖,不要浮於表面。這也是國內科技領域現今急需要去發展提升的地方,如果每個技術領域的我輩中人,都能深耕自己的領域,探求技術的本原,又何懼美帝如此猖狂囂張!

我期望我能業餘做好一個小小的技術分享傳播者,如果你讀到本文,真心覺得有價值,也請傳播給他人。當然我做這個公衆號也期望有一天能稍稍改善我的生活,但是坦蕩地說,所有文章的技術要點都屬於無私分享。如果達成改善家人生活所願,則我心歡喜,不成也無妨。做一個快樂的分享者吧!

羅嗦了一通廢話,但這是公衆號,不管受衆多少,傳播技術的同時,也期望能傳播一些技術觀以共勉!

ADC類型

積分型ADC

優點

  • 積分型ADC分辨率高,位數可做到12位甚至更高

  • 線性度非常好。本質上,輸入端與一個集成的參考電壓相比較來決定輸出端,所以線性度將取決於比較器的精度。

  • 電路實現拓撲簡單,用於實現這些設備的元件相對較少,因此電路相對簡單且生產成本較低。

缺點:

  • 主要缺點是轉換速度慢。N位ADC,輸出可能需要長達2個N的時鐘週期來轉換單個採樣點

  • 轉換原理都是基於對電壓積分並將積分後電壓與另一電壓比較以控制計數,計數輸出即爲ADC輸出。積分對象要麼是基於參考電壓,要麼是基於參考電壓和輸入電壓。

  • 主要用於傳感器應用和諸如電壓表和電流表等設備,在這些設備中,精度比速度更重要。換句話說積分型ADC採樣速度比較低,但精度非常高

  • 積分型ADC有不同的種類,常見的有單、雙斜率積分等。增加一個“斜率”,以犧牲轉換時間爲代價而增加精度。

單斜率積分ADC

比較器將輸入電壓與集成基準電壓的值進行比較(請注意,由於已連接至運算放大器的反相輸入,因此我們將設爲負)。同時計算時鐘週期數。當積分器輸出等於時,比較器輸出邏輯“ 0”,觸發計數器和積分器復位,鎖存器保持數字輸出。

這就是轉換時間,知道爲啥說這種積分型ADC慢了吧。來看下最差的情況吧,假設輸入電壓,假定,假定是20位ADC,那麼!

雙斜率積分ADC

雙斜率ADC與單斜率ADC的不同之處在於,現在將與地進行比較,並集成了兩個電壓。剛開始時,負輸入連接到積分器,使斜升直到計數器溢出。由於在反相輸入會切換到一個負值進行積分,因此積分器輸出將始終爲正且大於零,因此計數器將繼續運行直到溢出爲止,這需要2N個時鐘週期(= T1)。

在T2時刻,將等於之和,且爲0,也即:

因此,即爲ADC轉換的原理,雙斜率比單斜率ADC更慢,由於執行了兩次積分, 與積分器斜率相關的誤差將被抵消,從而從原理上提高了精度。

Sigma-Delta Σ-∆ ADC

從輸入端開始,差動放大器產生的輸出爲Vin與1位DAC輸出之間的差。1位DAC的輸出可以是以下兩個值之一:。在此拓撲結構中,可將積分器視爲取前一個值和當前輸入值的移動平均值。

因此,假設剛開始時比較器正向段固定在高於0V的很小一值,比較器反轉。其值將爲高或1。然後,DAC輸出將爲。在下迭代中,將從的當前值中減去該值。由於先前的值爲0V,因此積分器輸出現在將爲– Vref。此時,比較器輸出將爲0,而DAC輸出將爲

在下一個採樣中,由於前一個值爲,積分器輸出將爲0,並且差動放大器實際上將減去,從而將加到  .比較器輸出將爲1。

此過程繼續迭代進行,因此,對於0V輸入,比較器輸出將爲101010…的穩定流。記住邏輯1表示,邏輯0表示,那麼如對N個樣本進行採樣並取平均值,則很容易看出平均值爲0V。比較器之後的處理塊將簡單地將其輸出爲單個值0000…,假設參考值爲()或2 x

現在,假設爲1V,這是一個5V ADC。爲±2.5V。按照與之前相同的步驟進行迭代操作,輸出將爲:1011101…輸出爲1.07V。

概括起來:

Σ-∆ ADC 對所處理信號進行過採樣(這個概念見模數採樣知多少),並對待處理信號進行低通濾波。通常,在過濾器之後使用Flash ADC轉換的比特數小於所需的比特數。所產生的信號連同由FLASH離散電平產生的誤差,被反饋回並從輸入中做差然後輸入到濾波器。這個負反饋的可對噪聲形成抑制作用,使它不出現在期望的信號頻率。ADC之後的數字濾波器(利用抽取濾波器)可降低採樣率,濾除不想要的噪聲信號並提高輸出分辨率(故稱爲sigma-delta調製,也稱爲delta-sigma調製)。

Flash ADC也稱直接比較型

FLASH ADC的原理可能是最容易理解的。下圖是一個兩位ADC的示意圖,由許多比較器組成,每個比較器都被提供了比上一個基準值高一個位值的基準電壓。因此,對於一個8位ADC,需要256個這樣的比較器。對於10位,則需要1024。

FLASH ADC(直接比較型)速度很快。它直接轉換輸入,而不需要任何採樣或繁重的後期處理。問題是,它需要很多比較器,而且很多比較器佔用了芯片上的大量硅空間。因此,只有在需要其他ADC實現方法無法達到的極高速度時才使用Fash ADC。

二分法在硬件中體現

實際應用中,還有一個變種比較常用,半 FLASH ADC。它使用兩步的過程來減少實際轉換鏈中所需的轉換器數量:

  • 首先,將輸入信號與恰好位於半的電平集進行比較。如果它更低,那麼最高有效的位MSB,被設置爲0,輸入被饋送到一個比較器鏈與參考電壓設置爲,以轉換得到其餘的位。

  • 如果輸入信號高於,則將MSB設置爲1,從輸入信號中減去。比較器鏈再次用於獲取剩餘的位。所以,本質上,半步FLASH ADC,以犧牲一個額外的比較,來節省一半比較器。這種思路還可以繼續推演擴展,比如4分 FLASH ADC等等。

逐次逼近寄存器SAR

逐次逼近寄存器(Successive Approximation Register):逐次逼近ADC使用比較器逐次縮小包含輸入電壓的範圍。在每個連續的步驟中,轉換器將輸入電壓與內部數字與模擬轉換器的輸出進行比較,後者可能表示所選電壓範圍的中點。在這個過程的每一步,近似都被存儲在一個逐次逼近寄存器(SAR)中。例如,假設輸入電壓爲6.3 V,初始範圍爲0到16v。對於第一步,輸入6.3 V與8v (0-16V範圍的中點)進行比較。比較器報告輸入電壓小於8v,因此SAR被更新爲將範圍縮小到0 - 8v。第二步,將輸入電壓與4v (0 - 8v的中點)進行比較,比較器報告輸入電壓高於4v,因此更新SAR以反映輸入電壓在4 - 8v範圍內。第三步,輸入電壓與6v比較(4v與8v的一半);比較器報告輸入電壓大於6伏,搜索範圍變爲6 - 8伏。繼續這些步驟,直到達到預期的解決方案爲止。

其拓撲結構如下,

爲了直觀,看看前文的動圖:

Pipelined ADC

流水線ADC(也稱爲子例程量化器)使用兩個或多個流水線。首先,進行粗略的轉換。第二步,用數模轉換器(DAC)確定輸入信號的差異。然後將這個差異轉換爲更細的值,並在最後一步中合併結果。這可以被認爲是後續逼近ADC的一種改進,其中反饋參考信號由整個範圍的比特(例如,4比特)的中間轉換組成,而不僅僅是下一個最重要的比特。結合逐次逼近法和flash adc的優點,該類型具有速度快、分辨率高、模具尺寸小等優點。

在這個原理圖中,模擬輸入VIN首先被採樣並由採樣保持器(S&H)保持穩定,而第一階段的flash ADC將其量化爲三位。然後將3位輸出饋給3位DAC(精確到12位),然後從輸入中減去模擬輸出。這個“剩餘量”擴大4倍並被送入下一階段(第二階段)。這個增加的剩餘量繼續通過下級流水線,每一階段提供3位,直到它到達4位flash ADC,將解析最後的4LSB位。因爲每個階段的位是在不同的時間點確定的,所以相同樣本對應的所有位在被饋送到數字錯誤校正邏輯之前都與移位寄存器進行了時間對齊。請注意,當一個流水完成對輸入樣本的處理,確定本流水採集位並將殘差傳遞到下一個流水時,它便可以開始處理從每個流水中嵌入的採樣保持器接收到的下一個樣本。這種流水線操作是高吞吐量的原因,這也是流水的概念。

總結一下

熟悉各類ADC的意義,因爲如前文所說,嵌入式設備免不了需要採集物理世界的模擬信號。信號各具特點,有的頻率高,有的噪聲多,有的需要精度高但速度可能不要很快等等。這裏整理幾種常見ADC(當然還有其他種類比如電荷平衡原理ADC、分時ADC、FM ADC、時間拉伸ADC、增量編碼ADC、Wilkinson ADC等等)的原理及特點,瞭解各類ADC的基本特點,有助於進行器件選型、系統設計。

如果覺得本文有價值,不妨右下點下在看,或者分享轉發給需要的小夥伴們。

另外,還計劃寫一篇單片機內置ADC避坑的文章,敬請關注。

END

往期精彩推薦,點擊即可閱讀

▲學Linux驅動:應先了解總線驅動模型

模數採樣知多少

基於Buildroot的Linux構建之根文件系統

手把手教系列之移動平均濾波器C實現

手把手教系列之IIR數字濾波器設計實現

長按關注

加羣交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章