JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

資料轉換器:ADC 與 DAC

真實世界是一道平滑、帶雜訊、從不真正靜止的類比訊號;而電腦只會說乾脆俐落的數字。資料轉換器就是這條邊界上的翻譯官——ADC 把電壓變成位元,DAC 再把位元變回電壓。本指南從直覺出發一磚一瓦地搭起這座橋:時間是怎麼被切成一個個取樣點的(以及取樣太慢為何會騙你),幅度是怎麼被四捨五入到一級級階梯上的(以及那點捨入誤差為何不過是一份你能預先估算的雜訊),多少位元能換來多少保真度,再帶你快速逛一遍實務中會遇到的三種 ADC 架構——flash、SAR 與 sigma-delta。

兩個世界之間的橋

到目前為止,你在類比這一階搭起的一切——op-amp差動對帶隙基準——都活在一個 電壓 是平滑、連續量的世界裡。它可以停在 0.5 V,或 0.5001 V,或介於其間的無窮多個值中的任何一個,它會隨溫度漂移,會因 雜訊 而顫抖。而 RTL 那一階的數位世界恰恰相反:它只認得乾脆、可數的數字——一條匯流排就是 `1010_1101`,沒有比這更含糊的東西。麥克風、溫度感測器、無線電天線產出的都是平滑那種;處理器卻只能嚼得動乾脆那種。總得有個東西在兩者之間翻譯,這個翻譯官就是資料轉換器。

翻譯是雙向跑的。ADC(類比數位轉換器)讀取一個連續電壓,報出最接近的數字——它是晶片的*感官*,是它感知外部世界的方式。DAC(數位類比轉換器)則反過來——拿一個數字,產出與之匹配的電壓——它是晶片的*嗓音*,是它反過來作用於世界、去驅動揚聲器、天線或馬達的方式。幾乎每一顆有意思的晶片兩者都有:它用 ADC 來感知,在數位域裡運算,再透過 DAC 把話說回去。

取樣:時間變離散

一道真實訊號在*每一個*瞬間都有定義——1.0000 秒有一個電壓,1.0001 秒也有,介於其間的每一絲瞬間都有。電腦存不下無窮多個瞬間,所以 ADC 做的第一件事就是 [[sampling|取樣]]:在規律的 時脈 節拍上瞥一眼輸入,把那一個值凍住,節拍之間的一切則一概不理。想像暗房裡的一盞頻閃燈——你看不到連續的運動,每閃一下你看到的是一張快照。閃光的頻率就是取樣率 `fs`,兩次閃光之間的間隔就是取樣週期 `Ts = 1/fs`。

下面這一點誰都會吃一驚:如果你閃得太慢,那些快照不只是丟了細節——它們會主動*撒謊*。一個快速轉動的輪子用低幀率拍下來,看上去會倒著轉或乾脆停住;這是同一種效應,叫混疊(aliasing)。一個對你的取樣率而言太高的訊號頻率,會喬裝成一個根本不曾存在的*更低*頻率,而一旦那個假的低音混進了你的取樣裡,再聰明的手段也除不掉它。讓你保持誠實的規矩叫 Nyquist(奈奎斯特):你的取樣速度必須快於訊號中最高頻率的兩倍。

fs > 2 * f_max     ; Nyquist criterion — else high tones alias
; CD audio: hearing tops out ~20 kHz  ->  fs = 44.1 kHz (> 2*20 kHz)
取樣要高於你在乎的最快那個音的兩倍。CD 音訊選 44.1 kHz,就是為了讓整個 20 kHz 的可聽頻段都落在 fs/2 這條「奈奎斯特頻率」之下——還多留一點餘量給抗混疊濾波器去滾降。

量化:幅度變離散

取樣把*時間*切成了一個個離散瞬間,可每一張凍住的快照仍然是一道平滑的類比電壓——而我們答應過數位那一側只給乾脆的數字。於是第二步就是 [[quantization|量化]]:把每個取樣電壓四捨五入到一把固定的、只允許若干級取值的「梯子」上最接近的那一級。想像你用一把只刻到整公分的尺子量身高——你明明是 173 點幾,卻只能寫下 `173`。你丟掉的那點零頭,就是用有限刻度的尺子要付的代價。

有 `N` 個位元,這把梯子就有 `2^N` 級,均勻地鋪滿整個滿量程輸入範圍。相鄰兩級之間的間距就是一個 LSB(最低有效位元),也就是轉換器能分辨的最小差異:`LSB = FS / 2^N`。每一個真實輸入都落在兩級*之間*的某處,所以轉換器要做捨入——而無論往哪個方向,捨入誤差最多就是半個 LSB。這個誤差躲不掉;它是把一個連續值硬塞到離散梯子上所要付的根本代價。

V_LSB = FS / 2^N          ; one step of the ladder
; e.g. FS = 1.0 V, N = 12  ->  V_LSB = 1.0 / 4096 ≈ 244 uV
error_max = ± V_LSB / 2    ; worst-case rounding, ≈ ±122 uV
位元越多 = 階級越細 = 捨入誤差越小。一個 12 位元的轉換器在 1 V 範圍內,能細分到每級大約 244 微伏。

解析度、位元與 SNR

把量化捨入當作雜訊來看,一條乾淨的關係就掉了出來。訊號能在整個滿量程範圍裡擺動,而雜訊卻被釘在大約半個 LSB 上——所以你每加一個位元,雜訊階梯就減半,訊雜比就翻倍,也就是多一個位元 ≈ 6 dB 的 SNR。把這件事針對一個滿量程正弦波寫明白,你就得到了資料轉換器設計裡被引用得最多的那一條公式。

SNR ≈ 6.02 * N + 1.76   (dB)   ; ideal full-scale sine, N-bit quantizer
; N = 8   ->  ~50 dB
; N = 12  ->  ~74 dB
; N = 16  ->  ~98 dB
「每位元 6.02」法則:每多一個位元換來大約 6 dB。那 +1.76 dB 來自一個正弦波相對於均勻捨入雜訊的統計特性;這是理想的天花板,實際元件總會差那麼一點點。

那條公式是*理想*。真實轉換器永遠搆不著它,因為你一路爬上類比這把梯子時打過的那些老對頭,在這兒照樣冒頭——電阻和開關上的 熱雜訊1/f 雜訊、比較器失調,還有時序的晃動。時脈 抖動 對快速輸入尤其討厭:要是你的取樣時刻在哆嗦,你就會在一個高頻波形最陡的那段上、錯那麼一丁點時機去取樣,讀出錯誤的值——而且這種誤差會隨輸入頻率一同變大。所以工程師愛用 ENOB(有效位元數):拿*實測*的 SNR,把公式倒著算一遍,看看你實際拿到了多少個「真」位元。一個標稱 16 位元、卻只做到 90 dB 的元件,其 ENOB 接近 14.6——那些缺掉的位元,都被雜訊吃了。

DAC:把數字變回電壓

DAC 把整個故事倒著跑:遞給它一個數字,它就產出與之匹配的 電壓。從概念上講它是一個加權求和——每個位元掌管輸出的一「份」,而這些份是按 2 的冪來定大小的,好讓它們加起來正好湊到對的那一級。最高有效位元貢獻滿量程的一半,下一個位元四分之一,再下一個八分之一,如此一路下到 LSB。

  1. 收到數字碼,比如那個 4 位元的字 1011。
  2. 每個位元把自己那份加權貢獻開或關:bit3 = 1/2 FS,bit2 = 1/4 FS,bit1 = 1/8 FS,bit0 = 1/16 FS。
  3. 把被開啟的權重加起來:1011 = 1/2 + 0 + 1/8 + 1/16 = 滿量程的 11/16。
  4. 一個緩衝器把這個加總後的電壓驅動輸出——後面通常再跟一個重建低通濾波器,把那一級級離散輸出階梯組成的階梯,平滑回一道連續的波形。

那些「權重」是由精確匹配的類比元件搭出來的——一個二進制加權電容 陣列或電流陣列,又或是那個只需要兩種電阻值的優雅的 R-2R 梯形網路。而到了這兒,前幾階學到的每一條佈局功課都連本帶利兌現了:要是這些權重對不上它們理想的比例,階梯出來就會高低不齊,轉換器就非線性了。這恰恰是為什麼精密轉換器要倚仗 電流鏡 這類把戲來配出匹配的電流,倚仗 共質心佈局 來抵消整片裸晶上的製程梯度。匹配就是這盤棋的全部——一個 12 位元的 DAC,要求它的各個元件匹配到優於四千零九十六分之一。

ADC 架構一覽

不存在唯一最好的 ADC——只有在速度、解析度與功耗這三者之間作出對的取捨,這是轉換器設計的鐵三角。三種架構就覆蓋了這張地圖的大半,而知道每一種各自坐落在哪兒,你需要懂的就懂了大半。

  1. Flash(閃速)——最快,也最能吃。 砌一整面牆的 2^N−1 個比較器,每個階級配一個,讓輸入同時跟它們全部比一遍。答案在一個時脈週期內就蹦出來——幹吉赫茲速率那種活(無線電、高速鏈路)漂亮極了。但比較器數量*每加一個位元就翻一倍*,所以 flash 既吃功耗又吃面積;只有在低解析度下才實用,大致 6–8 位元。
  2. SAR——均衡的主力馬。 逐次逼近做的是二分搜尋:用一個內部 DAC 猜最高有效位元,問一個比較器「猜高了還是猜低了?」,把那一位鎖定,再猜下一位——N 個位元就比 N 次,就像反覆把範圍對半砍來猜一個數。一個比較器、一個小 DAC、功耗不大;中等速度,8–18 位元。這是你第一個會伸手去拿的預設選項。
  3. Sigma-delta(ΣΔ,西格瑪-德爾塔)——最高解析度,窄頻帶。 用*遠*快於 Nyquist 的速度取樣(過取樣),再加一條回授環去給量化雜訊整形,把它頂到你的頻段之外、再由一個數位濾波器一掃而空——拿原始速度去換驚人的解析度。16–24 位元,用於音訊、感測器和儀器儀表,那裡訊號慢,可你想要每一個位元的保真度。

留意它們和你早已認識的那些類比電路之間的那股家族相似。SAR 的心臟是一個比較器(一個被推到要作判決的 差動對)外加一個 DAC。sigma-delta 骨子裡就是一條 回授環——而且就跟 GBW相位裕度 那兩階講過的 op-amp 一樣,這條環必須穩定才能工作。資料轉換器並不是一門另起爐灶的學科;它們就是你那些類比積木,被有目的地拼裝了起來。