模數(shù)轉(zhuǎn)換器是一種用于將模擬信號(如光敏電阻或熱敏電阻的輸出)轉(zhuǎn)換為可由數(shù)字計算機或微控制器處理的二進制信號的設(shè)備。
將模擬信號轉(zhuǎn)換為二進制數(shù)字信號有多種方法,但在本教程中我們將討論逐次逼近法,因為這可能是最常用的方法。
采樣
每個交流波形都有特定的頻率、波長和振幅。為了將這種波轉(zhuǎn)換成數(shù)字信號,我們以周期性間隔(稱為采樣率)測量交流波形的振幅。更高的采樣率將產(chǎn)生更精確的交流波形表示:

模數(shù)轉(zhuǎn)換器的工作原理
下圖 1 所示是 ATMEGA328 中使用的 ADC 的框圖。

圖1:逐次逼近型模數(shù)轉(zhuǎn)換器
時鐘 CLK 提供采樣率,SAR 是逐次逼近寄存器,EOC 是輸出到處理器的信號,用于指示當前采樣已完成,Vref 是 5V 電源或外部電壓基準。DAC 是數(shù)模轉(zhuǎn)換器,Vin 是模擬輸入引腳,S/H 是采樣保持器,COMP 是比較器。
轉(zhuǎn)換過程由輸入 ADC 的 Vin 端模擬信號啟動。接收到該信號后,ADC 的控制單元將向逐次逼近寄存器發(fā)出命令,該寄存器開始通過逐次逼近法生成數(shù)字信號。生成的數(shù)字數(shù)據(jù)由 DAC 轉(zhuǎn)換為模擬信號,然后與當前模擬信號和參考電壓進行比較。此時可用的數(shù)字數(shù)據(jù)通過輸出寄存器輸出。
ADC 的核心是采樣保持 (S/H),如下圖 2 所示:

圖 2:采樣和保持
對于每個采樣時鐘周期,S1 閉合,S2 斷開,使電容器快速充電至波形的當前值。然后,S2 閉合,S1 斷開,比較器讀取電壓。
數(shù)模轉(zhuǎn)換的工作原理
我們?nèi)绾螌?ADC 輸出的數(shù)字位與模擬電壓電平關(guān)聯(lián)起來?假設(shè)一個 10 位 ADC 的采樣值為 0001100100。我們首先需要將這個二進制數(shù)轉(zhuǎn)換為整數(shù)。
如何將二進制數(shù)轉(zhuǎn)換為整數(shù)。首先,將二進制數(shù)按下表排列,可能的組合數(shù)從右到左依次遞增:

現(xiàn)在,將位值乘以可能的組合數(shù):
0512 + 0256 + 0128 + 164 + 132 + 016 + 08 + 14 + 02 + 01 = 100
那么,我們讀到的電壓是多少?
在 Arduino ADC 中,ADC 輸出范圍限制在 0 到 1023 之間。假設(shè)我們使用本地 5V 作為參考,則:(1023 / 5V)* Vin = 返回的整數(shù)值。
因此,如果 ADC 輸出整數(shù)值 100(如上所示),則電壓為:電壓 = (5V * 100) / 1023 = 0.488V
就是這樣!模數(shù)轉(zhuǎn)換器(A/D 轉(zhuǎn)換器)雖然相當復(fù)雜,但了解它們確實很有益處。
-
adc
+關(guān)注
關(guān)注
100文章
7950瀏覽量
556997 -
計算機
+關(guān)注
關(guān)注
19文章
7841瀏覽量
93491 -
模數(shù)轉(zhuǎn)換器
+關(guān)注
關(guān)注
26文章
4105瀏覽量
130278
發(fā)布評論請先 登錄
模數(shù)轉(zhuǎn)換器(ADC)到底在干嘛?
評論