加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

如何設計一個高精度模數(shù)轉換ADC?

2021/12/13
1204
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

有一段時間沒說過模擬芯片了,今天我們就聊一聊模擬芯片,特別是模數(shù)轉換芯片ADC。

1. 什么是ADC

從本質上來看,模擬芯片和數(shù)字芯片最主要的區(qū)別,就是處理信號的不同。顧名思義,模擬芯片處理的是模擬信號,而數(shù)字芯片處理的是數(shù)字信號。模擬信號是隨著時間連續(xù)變化的,比如溫度、濕度、聲音、速度等等。它們最大的特點是,在一定的時間范圍內(nèi)有無數(shù)個不同的取值。

相比之下,數(shù)字信號就是一堆不連續(xù)的數(shù)值,比如計算機里用的二進制0101。由于晶體管有開和關兩種狀態(tài),所以可以很自然的表示0和1 兩種數(shù)值。晶體管沒辦法做到類似于10%開、或者31.5%關這樣的狀態(tài),所以它是一個數(shù)字信號。

為了連接模擬和數(shù)字這兩個相互獨立的領域,就需要使用兩種芯片作為橋梁,一個是模數(shù)轉換芯片ADC、另外一個是數(shù)模轉換芯片DAC。

顧名思義,模數(shù)轉換芯片ADC就是用來把模擬信號轉換成數(shù)字信號,而模數(shù)轉換DAC就是正好反過來,把數(shù)字信號轉換成模擬信號。不過在實際應用里,ADC的占比更高。有數(shù)據(jù)顯示,在模擬數(shù)字相互轉換的應用里,有80%是ADC。特別是在數(shù)字化社會,幾乎所有東西都被數(shù)字化了,方便后續(xù)的處理、傳輸和存儲。

很多朋友可能覺得,不就是模擬信號轉成數(shù)字信號嘛,聽起來好像沒什么難度。實際上,ADC芯片是模擬芯片中難度最高的,甚至可能沒有之一。在半導體集成電路領域的頂級會議ISSCC、也就是國際固態(tài)電路會議上,就有相當一部分文章是介紹ADC設計。

2.  如何設計和優(yōu)化ADC

那么,究竟模數(shù)轉換ADC是怎么實現(xiàn)的呢?簡單來說需要采樣(Sampling)、量化(Quantization)、編碼(Encoding)這么幾個過程。也就是說,我們首先需要對這個信號進行采樣,每隔一段時間記錄一下信號當時的電壓值。采集到的數(shù)值會經(jīng)過量化,轉換成相應的數(shù)字信號值,最后再通過某種編碼表示出來,比如補碼格雷碼等等。

ADC有很多個參數(shù)指標,其中有兩個常見的參數(shù),一個是ADC的采樣速率(sampling rate)或者叫數(shù)據(jù)速率(data rate),另一個是分辨率(resolution)。采樣速率很好理解,就是單位時間內(nèi)能做多少次采樣,采樣點數(shù)越多,就越能還原初始信號的樣子。

分辨率被定義為輸入信號值的最小變化,這個最小數(shù)值變化會改變ADC數(shù)字輸出值的一個碼值。在ADC有同樣輸入范圍的情況下,分辨率越高,一個碼值所代表的最小變化就越小。如果我們的ADC有3位,那么就可以把整個電壓范圍分成2^3=8份。如果電壓變化范圍是0-10V,那么每份就代表1.25V。也就是說,如果電壓的變化小于這個值,那么ADC就沒辦法捕捉到這個細小的變化。需要注意的重要一點是,ADC的分辨率(resolution)和ADC的精度(accuracy)是兩個完全不同的概念。

ADC的具體實現(xiàn)形式有很多種,常見的包括逐次逼近型ADC(SAR),還有一種叫Delta-Sigma ADC。比如常見的逐次逼近型ADC在電路里主要集成了一個電壓比較器、一個寄存器、還有一個DAC,以及一些控制電路。它的本質就是用二分查找來確定模擬電壓對應的數(shù)字信號。也就是一開始先拿輸入電壓參考電壓的一半比較,如果輸入電壓更大,那就再和參考電壓的四分之三再比較。相反,如果輸入電壓更小,那就在和參考電壓的四分之一做比較。以此類推,直到比較完成。

3.  ADC驅動設計

然而,即使是最基礎的ADC,它在實際的工程應用中也并不簡單,因此配套的資源支持也就顯得尤為重要。比如,ADC往往不能獨立工作,它們需要配合其他的外部電路才能發(fā)揮作用,這里面最重要的外部電路之一就是驅動電路。

前面說過,ADC需要對輸入信號進行采樣、量化和編碼,并且輸出N位的數(shù)字信號,這些操作通常都在數(shù)字時鐘的一個周期里完成。這就意味著,在采樣的過程里,輸入信號應該保持不變。這有點類似于數(shù)字信號里時鐘的保持時間。

在ADC內(nèi)部,它的輸入端其實包含開關電容陣列,通常等效成一個開關和一個采樣電容。當開關閉合的時候,電容充電;等充好電之后,開關斷開,,比較器和DAC相互配合在這個時候完成ADC的采樣量化的操作。

這樣問題就來了,首先,如果對ADC的性能要求比較高,比如需要它的采樣頻率很高,那么把ADC內(nèi)部這個電容進行充電的時間就會很短。打個比方,如果采樣頻率是每秒100萬次采樣,那么充電時間、即捕獲時間(TACQ)可能只有300納秒。如果輸入端不加任何電路作為驅動,那么基本就無法滿足這么高采樣頻率的需求。所以針對這個問題,我們通常會在ADC前端加上一個運算放大器作為驅動,這樣就可以在較短的采樣時間之內(nèi)提供足夠的電荷給采樣電容。

這樣還沒完,雖然我們可以直接把運放和ADC直接連接起來,但我們在實際應用里很少這么設計。因為在采樣頻率很大的時候,直接連運放的話就需要很高帶寬的運放。另外從仿真里也可以看到,在開關切換的時候,一開始的轉換可能會產(chǎn)生較大的瞬時電流,而且驅動電路需要能夠在較短的ADC捕獲時間(TACQ)之內(nèi)對ADC內(nèi)部的采樣電容完成充電。

為了滿足這些條件,并且避免出現(xiàn)很大的瞬時電流,我們可以在ADC之前加入一個RC電路。大學電路里我們學過,RC電路是用來做濾波的,但這里它的主要作用就是利用這個額外的電容,實現(xiàn)更加快速的充電。運放可以把這個電容充滿,然后等ADC內(nèi)部開關閉合的時候,通過這個電容給ADC內(nèi)部的電容充電。當然除了這個電容之外,一部分的電荷也來自前端的運放。這個RC電路也叫做charge bucket filter電路,它可以有效的降低對前端運放帶寬的需求,所以我們選擇較低帶寬、更低成本的普通運放就可以滿足設計需要。同時它也消除掉了一開始的瞬時電流,也極大的提升了電路的穩(wěn)定性。

問題又來了,如何確定這些放大器和RC電路的具體大小和指標呢?這里有兩種方法,一個就是通過理論公式進行推導,這個在網(wǎng)上有非常詳細的推導過程,根據(jù)ADC的指標,比如分辨率、采樣速率、參考電壓等等,就可以一步一步推導出所需RC電路和運放的參數(shù)數(shù)據(jù)??戳诉@些東西,我真的又不由得想起當年學模電的時候被它支配的恐懼……

當然還有另外一種方法,那就是通過現(xiàn)成的設計工具和仿真工具來進行仿真計算。比如德州儀器TI就提供了一系列相關的工具來簡化上面所有的計算過程。一開始可以根據(jù)ADC的性能指標選擇對應的器件,然后使用ADC SAR Drive工具,來直接計算電阻電容的值,并且得到相應的性能指標。

為了進一步簡化設計流程,TI不僅提供設計工具,還有一整套完整的生態(tài)把這些工具整合起來。

拿SAR驅動設計舉例,TI就提供了很多經(jīng)典的ADC電路設計方案, 比如這個“高電壓電池監(jiān)控器電路”就一步一步的教我們從設計說明目標,到如何選擇合適的器件、如何建模仿真,并得到理想的性能指標。并且在設計的過程中,可以隨時回顧 “TI 高精度實驗室”視頻系列作為參考。

具體到這個電路,我們可以隨時查看”高精度實驗室”里介紹的選擇電荷桶電路(charge bucket filter)的方法,并為這個例子里的放大器、增益設置和數(shù)據(jù)轉換器提供良好的趨穩(wěn)和交流性能。我們還可以直接下載這個電路的設計文件,按照需求來對設計進行改修改。

4. PADC設計中的噪聲

之前的文章里介紹過,模擬芯片的一個最大的問題就是容易受到干擾。事實上,模擬信號能夠受到干擾的地方太多了,從之前說過的電磁輻射EMI、到電路板的設計缺陷、電源電壓的變化,再到周圍環(huán)境的各種變化,其實都有可能會對模擬芯片和模擬電路造成干擾,從而造成誤差。

對于ADC來說,除了這些外在的因素和干擾之外,它自己本身也會引入誤差,這個通常叫做量化誤差。也就是說,當我們在把一個連續(xù)變化的模擬量,量化成離散變化的數(shù)字量的時候,必然會引入這種誤差。不管我們劃分的粒度有多細,分的份有多小,這種量化誤差都會存在。

先說理論,對于一個N位的ADC,每一位代表的電壓范圍可以通過這個公式得到

其中FSR是ADC支持的電壓范圍。那么在這個ADC里可以區(qū)分的最小的電壓變化,就是LSB的一半。舉個例子,一個3位的ADC,輸入電壓從0到8V之間變化。那么它的LSB就是8/2^3 = 1V,能分辨的最小電壓變化是1/2V。也就是說,當輸入電壓是0-0. 5V之間的時候,輸出其實都是0,從0.5-1.5之間的時候,輸出都是1,以此類推。所以輸出其實是一個階梯曲線。

再結合前面說的環(huán)境噪聲、也稱作熱噪聲(thermal),那么一個ADC的總噪聲就是熱噪聲和量化噪聲的平方和再開方。

是不是看到這里就有點上頭了,這個其實只是剛開始。對于一個給定的ADC來說,我們要去量化和測量它的這兩個噪聲,這樣才能更好的、有針對性的設計包含ADC的整個系統(tǒng)。

拿Delta-Sigma ADC舉例,它的這兩種噪聲取決于ADC的分辨率、參考電壓、以及輸出速率。對于一個包含ADC的系統(tǒng)來說,這種噪聲分析更加的復雜。在一個典型的模數(shù)轉換系統(tǒng)里,通常包含各種模擬噪聲濾波器、運放、ADC、以及對數(shù)字信號進行處理的數(shù)字濾波器、FPGAMCU等模擬數(shù)字芯片,這也構成了一個信號鏈。要分析這個信號鏈的噪聲,我們不僅要對ADC本身做噪聲分析,還要考查整個信號鏈里每個元件的噪聲,以及所有這些元件之間的相互影響。

這個東西聽起來好像很復雜,但我們可以使用信號鏈的有效噪聲帶寬(Effective Noise Bandwidth)來量化這個分析過程。當然我們也需要一系列的工具、軟件和參考資料,來幫助我們做定量分析。

事實上,前面的很多內(nèi)容都來自TI的電子書《高精度ADC噪聲分析基礎》。這本書結合了大量TI工程師的設計實踐經(jīng)驗,詳細介紹了ADC的噪聲來源、如何量化分析、如何有效的設計電路來優(yōu)化ADC的噪聲表現(xiàn)。這本書寫的非常通俗易懂,同時也兼顧了技術深度,強烈推薦給大家。

在前面說過的TI”高精度實驗室”教程里,除了這里介紹的驅動電路設計和噪聲分析之外,還有最基本的ADC基礎、SAR與Delta-sigma ADC的原理與比較、誤差分析、低功耗設計、高速設計等等,非常全面。每個視頻后還有配套習題,方便我們鞏固學習成果。我覺得無論你是模電新手還是老炮,都能找到適合你的內(nèi)容。

“高精度實驗室”、ADC電路設計指導手冊都是TI ADC工具箱的一部分,這里面還有《模擬工程師口袋參考書》,可以用來快速查找和計算各種信號鏈的調參方法,包括運放帶寬、穩(wěn)定性等等。這些設計資源可以和ADC 模擬工程師計算器,TI TINA 以及Pspice for TI 配合使用,形成了一站式的設計體驗。我把這些內(nèi)容的鏈接都放在了下面的參考資料里,想學習這方面知識的朋友,一定記得從這里開始。

參考文獻:

1. TI 精密ADC學習中心

https://www.ti.com.cn/zh-cn/data-converters/adc-circuit/precision-adcs/learning-center.html

2. TI高精度實驗室線上培訓視頻

https://training.ti.com/ti-precision-labs-adcs

3. 模擬工程師口袋參考指南

https://www.ti.com/seclit/eb/slyw038c/slyw038c.pdf

4. ADC 噪聲分析基礎 電子書

https://www.ti.com/lit/eb/slyy192/slyy192.pdf

5. 電路設計指導手冊

https://www.ti.com.cn/zh-cn/design-resources/design-tools-simulation/analog-circuits/overview.html

6. 模擬工程師計算器

https://www.ti.com.cn/tool/cn/ANALOG-ENGINEER-CALC

7. TI TINA

https://www.ti.com.cn/tool/cn/TINA-TI

8. Pspice for TI

https://www.ti.com.cn/tool/cn/PSPICE-FOR-TI

9. 參考設計

https://www.ti.com.cn/zh-cn/data-converters/adc-circuit/precision-adcs/reference-designs.html#search?famid=2019

相關推薦

電子產(chǎn)業(yè)圖譜

微信公眾號“老石談芯”主理人,博士畢業(yè)于倫敦帝國理工大學電子工程系,現(xiàn)任某知名半導體公司高級FPGA研發(fā)工程師,從事基于FPGA的數(shù)據(jù)中心網(wǎng)絡加速、網(wǎng)絡功能虛擬化、高速有線網(wǎng)絡通信等領域的研發(fā)和創(chuàng)新工作。曾經(jīng)針對FPGA、高性能與可重構計算等技術在學術界頂級會議和期刊上發(fā)表過多篇研究論文。