ADC(Analogue to Digital Converter)
模數(shù)轉(zhuǎn)換器(analog to Digital Converter,簡(jiǎn)稱ADC)是一種數(shù)據(jù)轉(zhuǎn)換器,它通過(guò)將模擬信號(hào)編碼為二進(jìn)制代碼,使數(shù)字電路能夠與現(xiàn)實(shí)世界進(jìn)行接口。
模數(shù)轉(zhuǎn)換器(adc)允許微處理器控制電路,Arduinos,樹(shù)莓派和其他此類數(shù)字邏輯電路與現(xiàn)實(shí)世界通信。在現(xiàn)實(shí)世界中,模擬信號(hào)具有不斷變化的值,這些值來(lái)自各種來(lái)源和傳感器,可以測(cè)量聲音,光,溫度或運(yùn)動(dòng),許多數(shù)字系統(tǒng)通過(guò)測(cè)量來(lái)自這些傳感器的模擬信號(hào)與環(huán)境相互作用。
雖然模擬信號(hào)可以連續(xù)并提供無(wú)限多個(gè)不同的電壓值,但另一方面,數(shù)字電路可以處理只有兩個(gè)離散狀態(tài)的二進(jìn)制信號(hào),即邏輯“1”(HIGH)或邏輯“0”(LOW)。因此,需要一種能夠在連續(xù)變化的模擬信號(hào)和離散數(shù)字信號(hào)這兩個(gè)不同域之間進(jìn)行轉(zhuǎn)換的電子電路,這就是模數(shù)轉(zhuǎn)換器(A/D)的作用。
基本上,模數(shù)轉(zhuǎn)換器在某一時(shí)刻獲取模擬電壓的快照,并產(chǎn)生表示該模擬電壓的數(shù)字輸出代碼。用于表示該模擬電壓值的二進(jìn)制數(shù)字或位的數(shù)量取決于A/D轉(zhuǎn)換器的分辨率。
例如,4位ADC的分辨率為1 / 15(2^4 - 1),而8位ADC的分辨率為1 / 255(2^8 - 1)。因此,模擬數(shù)字轉(zhuǎn)換器接收未知的連續(xù)模擬信號(hào)并將其轉(zhuǎn)換為2^n位的“n”位二進(jìn)制數(shù)。
但首先讓我們提醒自己模擬(或模擬)信號(hào)和數(shù)字信號(hào)之間的區(qū)別,如下所示:
模擬和數(shù)字信號(hào)
在這里我們可以看到,當(dāng)電位器的雨刷端在0伏和VMAX之間旋轉(zhuǎn)時(shí),它產(chǎn)生一個(gè)連續(xù)的輸出信號(hào)(或電壓),相對(duì)于雨刷位置有無(wú)限個(gè)輸出值。當(dāng)電位器雨刷器從一個(gè)位置調(diào)整到下一個(gè)位置時(shí),兩個(gè)電壓水平之間沒(méi)有突然或階躍變化,從而產(chǎn)生連續(xù)可變的輸出電壓。模擬信號(hào)的例子包括溫度、壓力、液位和光強(qiáng)度。
對(duì)于數(shù)字電路,電位器刮水器已被單個(gè)旋轉(zhuǎn)開(kāi)關(guān)所取代,該開(kāi)關(guān)依次連接到串聯(lián)電阻鏈的每個(gè)結(jié),形成一個(gè)基本的電位分壓器網(wǎng)絡(luò)。當(dāng)開(kāi)關(guān)從一個(gè)位置(或節(jié)點(diǎn))旋轉(zhuǎn)到下一個(gè)輸出電壓時(shí),VOUT以離散和獨(dú)特的電壓階躍快速變化,每個(gè)開(kāi)關(guān)動(dòng)作或步驟表示1.0伏的倍數(shù),如圖所示。
例如,輸出電壓將是2伏,3伏,5伏等,而不是2.5V, 3.1V或4.6V。通過(guò)使用多位置開(kāi)關(guān)和增加電位分壓器網(wǎng)絡(luò)內(nèi)的電阻元件的數(shù)量,從而增加離散開(kāi)關(guān)步驟的數(shù)量,可以很容易地產(chǎn)生更精細(xì)的輸出電壓水平。
然后我們可以看到,模擬信號(hào)和數(shù)字信號(hào)之間的主要區(qū)別是,“模擬”量是隨時(shí)間連續(xù)變化的,而“數(shù)字”量是離散的(一步一步)值。“低”到“高”或“高”到“低”。那么,我們?nèi)绾螌⒁粋€(gè)具有無(wú)限數(shù)值的連續(xù)變化的信號(hào)轉(zhuǎn)換為具有不同數(shù)值或階躍的信號(hào),以供數(shù)字電路使用呢?
模數(shù)轉(zhuǎn)換器
采用模擬電壓信號(hào)并將其轉(zhuǎn)換為等效數(shù)字信號(hào)的過(guò)程可以通過(guò)許多不同的方式完成,雖然有許多模數(shù)轉(zhuǎn)換器芯片,如各種制造商提供的ADC08xx系列,但可以使用分立元件構(gòu)建簡(jiǎn)單的ADC。
一種簡(jiǎn)單易行的方法是使用并行編碼,也稱為閃變、同步或多個(gè)比較器轉(zhuǎn)換器,其中比較器用于檢測(cè)不同的電壓水平,并將其開(kāi)關(guān)狀態(tài)輸出到編碼器。
并行的“Flash”A/D轉(zhuǎn)換器使用一系列互連但間隔相等的比較器和電壓參考,這些比較器和電壓參考由一系列精密電阻網(wǎng)絡(luò)產(chǎn)生,用于生成特定n位分辨率的等效輸出代碼。
并聯(lián)或閃存轉(zhuǎn)換器的優(yōu)點(diǎn)是它們構(gòu)造簡(jiǎn)單,并且不需要任何定時(shí)時(shí)鐘,因?yàn)樵趯⒛M電壓施加到比較器輸入的瞬間,它與參考電壓進(jìn)行比較??紤]下面的比較器電路。
比較器電路
一種模擬比較器,如LM339N,它有兩個(gè)模擬輸入,一個(gè)正一個(gè)負(fù),可以用來(lái)比較兩個(gè)不同電壓水平的幅度。
電壓輸入(VIN)信號(hào)應(yīng)用于比較器的一個(gè)輸入,而參考電壓(VREF)應(yīng)用于另一個(gè)輸入。對(duì)比較器輸入端的兩個(gè)電壓電平進(jìn)行比較,以確定比較器的數(shù)字邏輯輸出狀態(tài),即“1”或“0”。
參考電壓,VREF與輸入電壓比較,VIN應(yīng)用于另一個(gè)輸入。對(duì)于LM339比較器,如果輸入電壓小于參考電壓,(VIN < VREF)輸出為“OFF”,如果大于參考電壓,(VIN > VREF)輸出為“ON”。因此,比較器比較兩個(gè)電壓水平并確定兩者中哪一個(gè)更高。
在上面的簡(jiǎn)單示例中,VREF是由R1和R2設(shè)置的分壓器網(wǎng)絡(luò)獲得的。如果兩個(gè)電阻相等,即R1 = R2,那么很明顯,參考電壓電平將等于電源電壓的一半,即V/2。因此,對(duì)于具有開(kāi)路集電極輸出的比較器,如果VIN小于V/2,則輸出為高電平,如果VIN大于V/2,則輸出為低電平,作為1位ADC。
但是,通過(guò)向分壓器網(wǎng)絡(luò)添加更多的電阻,我們可以有效地將電源電壓“除以”由電阻的電阻決定的量。然而,我們?cè)诜謮浩骶W(wǎng)絡(luò)中使用的電阻器越多,需要的比較器就越多。
一般來(lái)說(shuō),轉(zhuǎn)換“n”位二進(jìn)制輸出需要2^n - 1個(gè)比較器,其中“n”通常在8到16的范圍內(nèi)。在我們上面的例子中,單比特ADC使用21 - 1(等于“1”)比較器來(lái)確定VIN是否大于或小于V/2參考電壓。
如果我們現(xiàn)在創(chuàng)建一個(gè)2位ADC,那么我們將需要22 - 1,這是“3”比較器,因?yàn)槲覀冃枰膫€(gè)不同的電壓電平,對(duì)應(yīng)于4到2位編碼器電路所需的4個(gè)數(shù)字值,如圖所示。
2位模擬數(shù)字轉(zhuǎn)換電路
這將為模擬輸入的所有四個(gè)可能值提供一個(gè)2位輸出代碼:
式中:“X”為“不關(guān)心”,即邏輯“0”或邏輯“1”條件。那么這個(gè)模數(shù)轉(zhuǎn)換器是如何工作的呢?為了使A/D轉(zhuǎn)換器有用,它必須產(chǎn)生模擬輸入信號(hào)的有意義的數(shù)字表示。在這個(gè)簡(jiǎn)單的2位ADC示例中,為了簡(jiǎn)單起見(jiàn),我們假設(shè)輸入電壓VIN在0到4伏之間,因此將VREF和電阻分壓器網(wǎng)絡(luò)設(shè)置為在每個(gè)電阻上降低1伏。
當(dāng)VIN介于0和1伏之間時(shí),(<1V)三個(gè)比較器的輸入將小于參考電壓,因此它們的輸出將為L(zhǎng)OW,編碼器將在引腳Q0和Q1上輸出二進(jìn)制零(00)條件。當(dāng)VIN增加并超過(guò)1伏但小于2伏時(shí),(1V
注意,像TTL 74LS148這樣的優(yōu)先級(jí)編碼器為每個(gè)單獨(dú)的輸入分配一個(gè)優(yōu)先級(jí)級(jí)別。優(yōu)先級(jí)編碼器輸出對(duì)應(yīng)于具有最高優(yōu)先級(jí)的當(dāng)前活動(dòng)輸入。因此,當(dāng)具有較高優(yōu)先級(jí)的輸入(D1與D0相比)存在時(shí),所有其他具有較低優(yōu)先級(jí)的輸入將被忽略。因此,如果同時(shí)在邏輯級(jí)別“1”上有兩個(gè)或兩個(gè)以上的輸入,則D0和D1上的實(shí)際輸出代碼將只對(duì)應(yīng)指定優(yōu)先級(jí)最高的輸入。
所以現(xiàn)在當(dāng)VIN增加到2伏以上時(shí),下一個(gè)參考電壓水平,比較器U2檢測(cè)到變化并產(chǎn)生高輸出。但由于輸入D2比輸入D0或D1具有更高的優(yōu)先級(jí),因此優(yōu)先編碼器輸出二進(jìn)制“2”(10)碼,以此類推,當(dāng)VIN超過(guò)3伏時(shí),產(chǎn)生二進(jìn)制“3”(11)碼輸出。顯然,當(dāng)VIN在每個(gè)參考電壓水平之間降低或變化時(shí),每個(gè)比較器將輸出一個(gè)HIGH或LOW條件到編碼器,編碼器反過(guò)來(lái)產(chǎn)生一個(gè)相對(duì)于VIN在00到11之間的2位二進(jìn)制代碼。
這一切都很好,但是優(yōu)先編碼器不能作為4到2位設(shè)備使用,如果我們使用商用的編碼器,如TTL 74LS148或其CMOS 4532等效的8位設(shè)備,則不會(huì)使用六個(gè)二進(jìn)制位。但是一個(gè)簡(jiǎn)單的編碼器電路可以用數(shù)字前或門(mén)和信號(hào)二極管矩陣制成,如圖所示。
使用二極管的2位ADC
這里比較器的輸出在被饋送到二極管之前使用異或門(mén)進(jìn)行編碼。兩個(gè)外部下拉電阻用于輸出和地(0V),以確保低狀態(tài),并在二極管反向偏置時(shí)阻止輸出浮動(dòng)。
因此,與前面的電路一樣,取決于VIN的值確定哪個(gè)比較器產(chǎn)生輸出信號(hào)HIGH(或LOW)到產(chǎn)生高輸出的異或門(mén),如果一個(gè)輸入或另一個(gè)輸入是HIGH,但不是兩個(gè),(布爾表達(dá)式是Q = A.B + A.B)。這些前或門(mén)也可以使用組合邏輯與或與非門(mén)來(lái)構(gòu)建。
這兩種4對(duì)2轉(zhuǎn)換器設(shè)計(jì)的問(wèn)題是,這個(gè)簡(jiǎn)單的2位A/D轉(zhuǎn)換器的分辨率是1伏,因?yàn)檎缥覀兯吹降?,VIN處的模擬輸入電壓必須改變1伏特才能使編碼器改變其輸出代碼。提高輸出分辨率的一種方法是使用更多的比較器將其增加到3位a /D轉(zhuǎn)換器。
3位模數(shù)轉(zhuǎn)換器
上面的并行ADC將0到3伏范圍內(nèi)的模擬輸入電壓轉(zhuǎn)換為2位二進(jìn)制代碼。由于3位數(shù)字邏輯系統(tǒng)可以產(chǎn)生2^3 = 8個(gè)不同的數(shù)字輸出,因此模擬輸入電壓可以與8個(gè)參考電壓電平進(jìn)行比較,每個(gè)電壓電平等于參考電壓的八分之一(V/8)。因此,我們現(xiàn)在可以測(cè)量0.5(4/8)伏的分辨率,并且需要23 - 1比較器來(lái)輸出在000(0)和111(7)之間的3位二進(jìn)制代碼,如圖所示。
3位模擬數(shù)字轉(zhuǎn)換電路
這將為模擬輸入的所有八個(gè)可能值提供一個(gè)3位輸出代碼:
這里“X”是一個(gè)“不關(guān)心”,這是一個(gè)邏輯“0”或邏輯“1”的輸入條件。然后我們可以看到,通過(guò)增加ADC的分辨率,不僅增加了輸出二進(jìn)制位的數(shù)量,而且增加了比較器的數(shù)量和所需的電壓水平。
因此,4位分辨率需要15個(gè)(2^4 - 1)比較器,8位分辨率需要255個(gè)(2^8 - 1)比較器,而10位模數(shù)轉(zhuǎn)換器需要1023個(gè)比較器,等等。因此,對(duì)于這種類型的模數(shù)轉(zhuǎn)換器電路,輸出位數(shù)要求越高,電路就越復(fù)雜。
然而,這種類型的并行或閃存A/D轉(zhuǎn)換器的優(yōu)點(diǎn)是它的實(shí)時(shí)轉(zhuǎn)換率相對(duì)較快,如果只需要幾個(gè)二進(jìn)制位就可以在數(shù)字顯示器上產(chǎn)生讀出來(lái)顯示模擬輸入信號(hào)的電壓值,則可以很容易地作為項(xiàng)目的一部分構(gòu)建。
除了從傳感器或換能器獲取模擬輸入信號(hào)并使用模數(shù)轉(zhuǎn)換器將其轉(zhuǎn)換為數(shù)字二進(jìn)制代碼作為輸入接口電路的一部分外,我們還可以使用數(shù)模轉(zhuǎn)換器將二進(jìn)制代碼轉(zhuǎn)換為等效的模擬量,用于輸出接口以控制電機(jī)或執(zhí)行器,或通常用于音頻應(yīng)用。
評(píng)論
查看更多