兩個世界之間的橋
到目前為止,你在類比這一階搭起的一切——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)
量化:幅度變離散
取樣把*時間*切成了一個個離散瞬間,可每一張凍住的快照仍然是一道平滑的類比電壓——而我們答應過數位那一側只給乾脆的數字。於是第二步就是 [[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
解析度、位元與 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
那條公式是*理想*。真實轉換器永遠搆不著它,因為你一路爬上類比這把梯子時打過的那些老對頭,在這兒照樣冒頭——電阻和開關上的 熱雜訊、1/f 雜訊、比較器失調,還有時序的晃動。時脈 抖動 對快速輸入尤其討厭:要是你的取樣時刻在哆嗦,你就會在一個高頻波形最陡的那段上、錯那麼一丁點時機去取樣,讀出錯誤的值——而且這種誤差會隨輸入頻率一同變大。所以工程師愛用 ENOB(有效位元數):拿*實測*的 SNR,把公式倒著算一遍,看看你實際拿到了多少個「真」位元。一個標稱 16 位元、卻只做到 90 dB 的元件,其 ENOB 接近 14.6——那些缺掉的位元,都被雜訊吃了。
DAC:把數字變回電壓
DAC 把整個故事倒著跑:遞給它一個數字,它就產出與之匹配的 電壓。從概念上講它是一個加權求和——每個位元掌管輸出的一「份」,而這些份是按 2 的冪來定大小的,好讓它們加起來正好湊到對的那一級。最高有效位元貢獻滿量程的一半,下一個位元四分之一,再下一個八分之一,如此一路下到 LSB。
- 收到數字碼,比如那個 4 位元的字 1011。
- 每個位元把自己那份加權貢獻開或關:bit3 = 1/2 FS,bit2 = 1/4 FS,bit1 = 1/8 FS,bit0 = 1/16 FS。
- 把被開啟的權重加起來:1011 = 1/2 + 0 + 1/8 + 1/16 = 滿量程的 11/16。
- 一個緩衝器把這個加總後的電壓驅動輸出——後面通常再跟一個重建低通濾波器,把那一級級離散輸出階梯組成的階梯,平滑回一道連續的波形。
那些「權重」是由精確匹配的類比元件搭出來的——一個二進制加權的 電容 陣列或電流陣列,又或是那個只需要兩種電阻值的優雅的 R-2R 梯形網路。而到了這兒,前幾階學到的每一條佈局功課都連本帶利兌現了:要是這些權重對不上它們理想的比例,階梯出來就會高低不齊,轉換器就非線性了。這恰恰是為什麼精密轉換器要倚仗 電流鏡 這類把戲來配出匹配的電流,倚仗 共質心佈局 來抵消整片裸晶上的製程梯度。匹配就是這盤棋的全部——一個 12 位元的 DAC,要求它的各個元件匹配到優於四千零九十六分之一。
ADC 架構一覽
不存在唯一最好的 ADC——只有在速度、解析度與功耗這三者之間作出對的取捨,這是轉換器設計的鐵三角。三種架構就覆蓋了這張地圖的大半,而知道每一種各自坐落在哪兒,你需要懂的就懂了大半。
- Flash(閃速)——最快,也最能吃。 砌一整面牆的 2^N−1 個比較器,每個階級配一個,讓輸入同時跟它們全部比一遍。答案在一個時脈週期內就蹦出來——幹吉赫茲速率那種活(無線電、高速鏈路)漂亮極了。但比較器數量*每加一個位元就翻一倍*,所以 flash 既吃功耗又吃面積;只有在低解析度下才實用,大致 6–8 位元。
- SAR——均衡的主力馬。 逐次逼近做的是二分搜尋:用一個內部 DAC 猜最高有效位元,問一個比較器「猜高了還是猜低了?」,把那一位鎖定,再猜下一位——N 個位元就比 N 次,就像反覆把範圍對半砍來猜一個數。一個比較器、一個小 DAC、功耗不大;中等速度,8–18 位元。這是你第一個會伸手去拿的預設選項。
- Sigma-delta(ΣΔ,西格瑪-德爾塔)——最高解析度,窄頻帶。 用*遠*快於 Nyquist 的速度取樣(過取樣),再加一條回授環去給量化雜訊整形,把它頂到你的頻段之外、再由一個數位濾波器一掃而空——拿原始速度去換驚人的解析度。16–24 位元,用於音訊、感測器和儀器儀表,那裡訊號慢,可你想要每一個位元的保真度。
留意它們和你早已認識的那些類比電路之間的那股家族相似。SAR 的心臟是一個比較器(一個被推到要作判決的 差動對)外加一個 DAC。sigma-delta 骨子裡就是一條 回授環——而且就跟 GBW 和 相位裕度 那兩階講過的 op-amp 一樣,這條環必須穩定才能工作。資料轉換器並不是一門另起爐灶的學科;它們就是你那些類比積木,被有目的地拼裝了起來。