嵌入式硬件之ADC/DAC


嵌入式硬件之ADC/DAC

寫在前面

這幾天在做一個寒假練項目,其中涉及到了音頻的處理,ADC、DAC再次進入到了我的視野,並引起了我新的思考。

1、初次相識

記得去年七月份,本科畢業剛離校,就到研究生學校這邊打雜,導師讓我參與了一個小項目,那個控制器電路中有一個讓我印象很深的的電路——ADC采樣電路

這個電路目的很簡單,就是讀出P35的AD采樣值,借此來估算VDD的大小,進行監測。

它的模擬信號就是電阻兩端的電壓,數字信號是通過P35讀取到的數值,再根據相應的計算公式,就可以得出VDD的大小。

這里是對模擬信號——電壓的數模轉換。

其實對於AD轉換來講,大家從小都在接觸,比如家家戶戶都有的水銀溫度計

利用水銀的熱漲冷縮原理,把人的體溫以具體的數值顯示出來。

再比如手機,大家用其播放音樂時,就是把比特流轉化成電壓信號,再通過揚聲器播放出來。

再比如打電話時,不管是你這邊聽到聲音,又或者你的聲音被另一方聽到,其中都離不開ADC、DAC。

2、為什么要有ADC/DAC?

萬事萬物的產生都是自有其道理,都有一種內在驅動力在驅動,那么是什么促成了ADC/DAC的出現呢?

大家都知道在我們的日常生活中有一種信號叫——模擬信號。比如上面提到的:溫度、電壓、電流、聲音等。

模擬信號雖然很容易被人類接收,但有很多的缺點,比如很容易被各種“噪聲”影響,又比如很難去存儲和傳輸

而數字信號正好與其相反,不僅能大程度上隔絕外部的干擾,又便於存儲。

所以把模擬信號轉化為數字信號是為了更好的去處理和存儲

3、ADC模數轉換器

ADC——Analog to Digital Converter

只要是轉換,就會有損耗,在ADC轉換期間,有些模擬信號不可避免的會丟失。

舉例來說0~5V的電壓信號,你可以取這個范圍的任意一個數值,你可以取到無數個數據,也就是說從理論上來講,模擬信號的分辨率是無限大的。所以信號的丟失不可避免。

3.1模數轉換流程

首先對模擬信號以特定的速率采樣;采樣之后,對其進行量化;量化后,對其進行二進制編碼。

所以你會看到,在芯片技術手冊上常有的一句話:我們的處理器ADC是幾位幾位的。

這里的分辨率用位數來表示,位數越多分辨率越高,以2的n次方倍。

舉例來講,0~1V的電壓范圍,如果是3位的ADC,那么1除以2的3次方等於0.125V,這就是這個ADC所能達到的精度。

上面那個0.125就表示ADC所能感受到的模擬信號輸入的最小變化。

電壓值每變化0.125V的數值,如上圖橙色那條線,就會上升一個台階,以此對應一個二進制的數值

以上便是ADC工作的流程:采樣、量化、編碼。

4、DAC數模轉換器

DAC——Digital to Analog Converter

通過數字比特流來產生模擬信號。

因此對模擬信號重構的精確度取決於DAC的分辨率,12位的要好於3位的。

分辨率、基准電壓和重構的時間是DAC的重要參數。

5、如何使用ADC/DAC?

如何使用ADC/DAC?其實很簡單。

因為現在大多的處理器都會內置相應的片上ADC/DAC,而且都是通過外部總線與處理器相連的,故外部接口也比較簡單,直接連接即可。如下圖所示。

再配置好相關的寄存器使能,按照芯片技術手冊的要求進行軟件設計。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM