本文介紹在1948年首次發表的8位元「香農解碼器」(Shannon Decoder) DAC電路,可望實現比PWM更快的替代方案…
讀者朋友們應該都認識大名鼎鼎的美國數學家香農(Claude Elwood Shannon),他被譽為「資訊理論之父」,是許多新發現和發明的創始人。其中有一個優雅且具開創性的DAC設計實例,早在1948年即首次發表,稱為「香農解碼器」(Shannon Decoder;SD),如圖1所示(插圖修改自ADI的Data Conversion Handbook)。
圖1:香農解碼器DAC。
在運作時,輸入的序列(LSB在前)位元串控制開關S,以便一個1位元對電容器C添加一個單位的電荷,而0則保持不變。每個位元(在此簡單例子中總共有四個)以時間間隔T相繼到達。因此,在4T結束時,在C上所累積的最終電壓V就表示位元串的數位內容。這種使V與位元串所表示之二進位數字N成比例的技巧非常簡單(感謝香農的天才),即RC=T/Ln(2)。這導致在每個時間間隔T期間,C上恰好有一半的累積電壓放電,從而提供了正確的數位類比轉換所需的二進位位元權重。然後,S&H (採樣與保持)將在4T處擷取C上的最終結果。這樣就完成了。只用了一個開關、單級RC和S&H,僅用了4位元時間就完成了4位元DAC轉換。
圖2展示8位元SD可能看起來像是使用自1948年以來的元件。請注意,它非常類似基本的PWM DAC,僅包括典型的通用輸出位元D和單級RC ——(R+Ron)C=T/Ln(2)。Ron項用於對輸出埠的導通電阻(通常為20Ω至200Ω)提供校正。稍後我們會看到為什麼Ron很重要。假設有一個典型的8位元序列串=10101011=171,T=10µs,C=0.0015µF,Ron=120Ω,R=9.53kΩ,Vref=5V邏輯電源,則類比輸出=171/256*5V=3.34V。
圖2:現代香農解碼器建置。
在類比輸出累加後簡單地使D處於三態,即可輕鬆地實現所需的S&H功能,從而使電容器C保持在最終電壓並因此成為其自身的S&H。
我之前說SD是比PWM更快的替代品。是嗎?8位元PWM的基本週期為256個時脈週期,為了將紋波抑制到LSB等級,RC濾波器的時間常數需要約等於64個PWM週期,而且還需要Ln(256)=5.5個時間常數,才能將其穩定到1LSB。這因而增加了256645.5=90,112個時脈週期的總PWM DAC轉換時間,用以轉換、濾波和穩定到最終的8位元值。
同時,8位元SD將在僅8個T週期內完成所有這些任務,因此顯然產生了90,112/8=11,264:1的SD與PWM速度比,而且所使用的元件數與基本PWM相同!
但這真的是一個公平的比較嗎?不完全是。
首先,關於速度,PWM時脈週期通常會以專用的晶片計數器/計時器硬體產生,而SD的位元移動和最終使輸出埠位元處於三態狀態則可能需要一些軟體互動。這種差異很可能使SD位元速率比PWM時脈慢——也許更慢10倍。因此,對於SD與PWM速度比的更實際估計可能更接近1100:1,而不是11000:1。
其次,關於元件數量,會有這樣的考慮:PWM會連續自動刷新其輸出,而圖2中所示的基本SD則不會。在圖2,每隔幾毫秒就需要運行一個轉換週期,以刷新C的電荷、抵消壓降並保持穩定的輸出。當然,在這些轉換過程中,類比輸出將會非常不穩定,從而產生負載所看到的暫態輸出突波。
有些負載能容忍這種週期性干擾,但很多負載則不能。這種故障是可以避免的,但要做到這一點,就必須增加元件數量。圖3提出了一種可能的解決方案。
圖3:用於防止SD輸出下降的補強PWM。
用設置於與SD相同輸出電壓的「維持器」PWM來補強SD的速度,可以對SD最初(快速)設置的相同電容器電荷進行保持。
該解決方案仍然不夠完美,因為SD和PWM時間常數之間的較大比率意味著R1和R2之間的比率同樣大,這會對R2施加大電阻以獲得足夠的紋波抑制,因而使類比輸出的穩態驅動能力非常有限。當然,每當SD轉換序列設置新的輸出電壓時,仍然會出現輸出突波。
圖4為這些問題提出了一種完整解決方法,即建置兩個S&H轉換/保持電容器,使其透過U1c切換,以便其中之一提供S&H功能(C0/1,透過X/Y Select=0/1選擇)和恒定輸出電壓,而另一個透過U1a和U1b執行下一次DAC轉換。於是它們的角色交換等等。
圖4:切換SD。
圖4拓撲結構的另一個功能是它能夠接受獨立於邏輯電源和接地的參考電壓輸入(+Vref、-Vref)。這比依賴邏輯電源的(通常有限的)穩定性和雙極性(-Vref到+Vref)輸出範圍(如果-Vref為負)可以實現更好的DAC精度。而且,它仍然只需要使用四個元件。
SD具有固有的可編程解析度。無需任何電路修改即可容納任何長度的位元串(6、10、12等)。此外,由於SD轉換時間與位元串長度(n)成線性比例,而PWM轉換時間與2n呈指數比例關係,因此SD的速度優勢只會隨著位元串長度的增加而變得更好。
SD精度取決於RC時間常數和位元間隔T/Ln(2)之間的準確匹配。這兩個數字之間的差異將導致位元權重與正確的2.0不同,從而影響單調性和微分線性。因此,建議使用精密金屬膜電阻器和零溫度係數C0G或NPO電容器,並如前所述對SD訊號路徑中開關元件的阻抗(Ron)進行R校正。
圖5顯示從0% (RC=1.44269T)到10% (RC=1.58696T)的RC時間常數誤差對轉換結果的影響。
圖5:0%至10% RC誤差的影響。
(參考原文:The Shannon decoder: A (much) faster alternative to the PWM DAC,by Stephen Woodward)
從無線連接、更快的處理和運算、網路安全機制、更複雜的虛擬實境(VR)到人工智慧(AI)等技術,都將在未來的每一個嵌入式系統中發揮更關鍵功能。「嵌入式系統設計研討會」將全面涵蓋在電子產業最受熱議的「智慧」、「互連」、「安全」與「運算」等系統之相關硬體和軟體設計。
會中將邀請來自嵌入式設計相關領域的研究人員、代表廠商以及專家,透過專題演講、產品展示與互動交流,從元件、模組到系統,從概念設計到開發工具,深入介紹嵌入式系統設計領域的最新趨勢、創新和關注重點,並深入分享關於嵌入式系統設計的經驗、成果以及遇到的實際挑戰及其解決方案。
加入LINE@,最新消息一手掌握!