理解了一個(gè)模擬信號(hào)路徑后,數(shù)字系統(tǒng)開發(fā)者就可以從各種應(yīng)用中,更精確地捕捉傳感器數(shù)據(jù)。
要點(diǎn)
即使同一家制造商的類似傳感器也可能有不同的輸出,而這些差異會(huì)給系統(tǒng)設(shè)計(jì)者帶來麻煩。
噪聲來自于多種原因,包括電路板布局、射頻、熱元件,甚至傳感器自身。
要使用傳感器濾波后的信號(hào),必須用ADC,將模擬信號(hào)量化為數(shù)字信號(hào)。
可以選擇采用外接ADC,也可以采用內(nèi)置ADC的微控制器。外接ADC有較高的精度,在速度與分辨率方面有更好的性能。
傳感器越來越多地應(yīng)用于嵌入式系統(tǒng)中。雖然長(zhǎng)期以來工業(yè)產(chǎn)品一直將其用于制造控制系統(tǒng),但消費(fèi)設(shè)備現(xiàn)在也開始采用傳感器。制造商們正在消費(fèi)產(chǎn)品中集成傳感器,以創(chuàng)造出更好的用戶體驗(yàn),如在手機(jī)中增加加速度計(jì),以及在微波爐中加入蒸汽傳感器等。以前僅在數(shù)字域中工作的系統(tǒng)設(shè)計(jì)者現(xiàn)在發(fā)現(xiàn),自己必須要與模擬傳感器打交道了。
圖1,一只傳感器的模擬信號(hào)路徑可以分為幾級(jí):放大、濾波和數(shù)字化。
傳感器的模擬信號(hào)必須經(jīng)過數(shù)字化才能供系統(tǒng)使用,并且信號(hào)要經(jīng)過放大、濾波和數(shù)字化(圖1)。每一級(jí)通常都涉及一只圍繞著一些無源元件的器件,以正確地實(shí)現(xiàn)一個(gè)應(yīng)用。一旦對(duì)信號(hào)做了數(shù)字化,就可以將其送給微處理器上的控制系統(tǒng),或整理數(shù)據(jù)后通過一個(gè)通信協(xié)議送至一只主處理器。協(xié)議可以根據(jù)需要使用傳感器數(shù)據(jù)。
每個(gè)傳感器有不同的輸出信號(hào)和范圍。輸出的信號(hào)可以是電壓、電流、電阻、電容或頻率,但幾乎不存在什么標(biāo)準(zhǔn),只有專用的工業(yè)系統(tǒng)在使用它們。即使同一制造商的類似傳感器也可以有不同的輸出,而這些差異會(huì)給系統(tǒng)設(shè)計(jì)者帶來一些麻煩。設(shè)計(jì)者選擇傳感器時(shí)必須滿足系統(tǒng)的需求。然而,如果在設(shè)計(jì)期間這種需求出現(xiàn)變化,則傳感器也要做出修改。另外,一款輸出略有不同的新傳感器必須對(duì)放大級(jí)和濾波級(jí)作出改動(dòng)。
大多數(shù)傳感器都輸出一個(gè)低電平的電流或電壓信號(hào),因此一個(gè)簡(jiǎn)單的電阻網(wǎng)絡(luò)就能將任何電流信號(hào)變?yōu)橐粋€(gè)電壓。本文簡(jiǎn)單描述了一些概念和元件選擇過程。
幅度
一只傳感器的輸出可以低至數(shù)毫伏,也可以高達(dá)數(shù)伏特。為做到正確的數(shù)字化,對(duì)ADC來說信號(hào)必須足夠大,才能有效地讀出。大多數(shù)情況下,傳感器信號(hào)都需要放大。例如,一個(gè)典型的K型熱電偶輸出為41μV/°C,如果你的設(shè)計(jì)需要1°C的粒度,就需要做相當(dāng)?shù)姆糯蟆R虼?,必須考慮到ADC的分辨率,以確保能將信號(hào)放大到能滿足所需粒度。
對(duì)放大器的選擇主要取決于需要的類型,例如是儀表放大器、差分放大器、運(yùn)算放大器,還是PGA(可編程增益放大器)。另外還必須確定放大器需要的增益大小。放大器周圍的電阻網(wǎng)絡(luò)(帶反饋)決定了放大器的增益。理想情況下,標(biāo)準(zhǔn)放大器的最大增益是無限的。給器件的數(shù)字信號(hào)通常就設(shè)定了PGA的增益。這個(gè)信號(hào)改變了內(nèi)部電阻網(wǎng)絡(luò)。一只PGA的最大可能增益為傳統(tǒng)放大器的千分之一至二分之一,但大多數(shù)情況下這個(gè)區(qū)間是可以接受的。
對(duì)于放大器還必須考慮另外一個(gè)重要規(guī)格:偏移電壓。偏移電壓是一個(gè)信號(hào)通過放大器時(shí)改變的電壓量。例如,如果將一個(gè)500 mV信號(hào)送給一個(gè)單位增益(即增益為1)的放大器,偏移電壓為10 mV,則得到的輸出就是510 mV。如果傳感器的輸出范圍為0至900 mV,而系統(tǒng)不需要非常精密的傳感器讀數(shù),那么這個(gè)偏移就可以忽略不計(jì)。如果傳感器的范圍為450 mV至550 mV,這個(gè)偏移可能就不可接受了。偏移電壓越小,放大器就越貴。所有放大器都有偏移,但你需要知道系統(tǒng)是否能容忍它??梢杂孟嚓P(guān)雙采樣方法來降低或消除偏移電壓。
濾波
所有系統(tǒng)都會(huì)在傳感器信號(hào)上疊加一些噪聲。噪聲來源有各個(gè)方面,包括電路板布局、射頻、熱元件,甚至傳感器自身。信號(hào)噪聲會(huì)使ADC的讀數(shù)不精確和不穩(wěn)定,噪聲電平在放大器中會(huì)得到增強(qiáng),因?yàn)榉糯笃髂芊糯笮盘?hào)中的誤差。信號(hào)噪聲可以分為低頻、高頻或某個(gè)已知頻率。通常最需要解決的是高頻噪聲問題?! ?br />
圖2,傳感器的信號(hào)路徑中包括放大器、濾波器和ADC。濾波器的設(shè)計(jì)用于去除信號(hào)中的噪聲,限制帶寬。
用無源模擬濾波器、濾波器IC和數(shù)字濾波器都可以濾除噪聲(圖2)。最常見的方法是無源濾波,這要用電阻、電容和電感建立一個(gè)無源網(wǎng)絡(luò)。不過,你必須設(shè)計(jì)無源的濾波器,并且無法簡(jiǎn)單地改變它們。濾波器設(shè)計(jì)的復(fù)雜度可能與你所需濾波器等級(jí)一樣大;一個(gè)一階Chebyshev濾波器的設(shè)計(jì)工作量要比一個(gè)八階Bessel濾波器小得多。因此你應(yīng)確定需要的濾波器階數(shù),然后再選擇自己采用的濾波方法。
某些IC允許你用數(shù)字編程方法,確定需要的濾波器類型。這些IC用內(nèi)部的模擬電路建立濾波器,并可能有與之相關(guān)的偏移電壓。它們也可以讓你將濾波步驟移到ADC量化的后面。數(shù)字濾波器設(shè)計(jì)可以很復(fù)雜,但有很多能幫助做出高階濾波器的簡(jiǎn)便設(shè)計(jì)。數(shù)字濾波是去除噪聲的一個(gè)理想方式,但是,它通常需要很多CPU周期,增加了功耗。系統(tǒng)通常會(huì)引起高頻噪聲,因此需要采用低通濾波器。這種濾波器可衰減高于所設(shè)定截止頻率的信號(hào)部分。有些傳感器信號(hào)要求采用相互串聯(lián)的多種類型濾波器。大多數(shù)傳感器數(shù)據(jù)表中都指定了一個(gè)基本的接口電路,但并未提及所需要的濾波形式。系統(tǒng)設(shè)計(jì)者必須在徹底了解需要的濾波形式以后,再建立系統(tǒng)。
數(shù)字轉(zhuǎn)換
為了使用傳感器濾波后的信號(hào),必須用一只ADC對(duì)模擬信號(hào)作量化,使之進(jìn)入數(shù)字域。ADC的選擇主要是考慮系統(tǒng)對(duì)采樣速度和分辨率的要求。所需采樣速度與傳感器的帶寬以及系統(tǒng)需要刷新的速度有關(guān)。分辨率的決定因素是需要ADC響應(yīng)傳感器信息的間隔時(shí)間。系統(tǒng)的使用模型決定了這個(gè)速度以及分辨率要求。例如,一個(gè)普通陀螺儀會(huì)以0.67mV/(°)測(cè)量360°的旋轉(zhuǎn),獲得241mV的輸出量程。為保持垂直,一個(gè)直升機(jī)愛好者需要以1°的粒度獲得陀螺儀信息,但吞吐量只有10k采樣/秒。這個(gè)需求就要用一個(gè)10bit ADC,提供0.35°/bit。不過要注意,信號(hào)上仍然有噪聲,±1 bit是可接受的。反之,一款防抖數(shù)碼相機(jī)可能需要0.02°的粒度,但吞吐量為5k采樣/秒,從而在相機(jī)振動(dòng)時(shí)調(diào)整圖像傳感器。這種要求可能需要采用16位ADC,提供0.005°/位。
圖3,將INL誤差 (a)、DNL誤差 (b)、增益誤差 (c)、偏移誤差 (d) 以及總誤差相結(jié)合,就能了解一個(gè)理想ADC (f) 與實(shí)用ADC。
制造商以INL(整體非線性)、DNL(差分非線性)、偏移誤差、增益誤差和SNR(信噪比)等指標(biāo)來量度ADC的精度。當(dāng)把這些術(shù)語聯(lián)合起來時(shí),就提供了對(duì)ADC總誤差的一個(gè)了解(圖3)。對(duì)于多數(shù)應(yīng)用,沒有必要細(xì)究這些ADC的規(guī)格,但工程師應(yīng)充分理解這些值對(duì)所用ADC的意義。你可以選擇使用外接ADC,或一款內(nèi)置ADC的微處理器。外接ADC有較高的精度,在速度和分辨率方面都有較高的性能。不過,大多數(shù)傳感器的應(yīng)用要求都能很好地適合于微控制器內(nèi)置的ADC。
另外一種選擇是采用可配置ADC,它是微控制器中包含的可編程邏輯塊。集成的數(shù)字與模擬可編程塊可以為每種傳感器應(yīng)用動(dòng)態(tài)地定義可配置外設(shè)。這些塊包括計(jì)數(shù)器、PWM(脈沖寬度調(diào)制器)、UART、SPI(串行外設(shè)接口)、放大器、濾波器、ADC和DAC。開發(fā)者還可以在一只器件內(nèi)實(shí)現(xiàn)放大與濾波級(jí),從而集成整個(gè)模擬信號(hào)鏈(圖4)。采用可配置ADC可以得到比無源元件方法更干凈的設(shè)計(jì)。另外,可以動(dòng)態(tài)地重新配置這些塊,這些就可以選擇將這些系統(tǒng)資源重新利用于其它功能。
圖4,開發(fā)者可以在一只器件內(nèi)實(shí)現(xiàn)放大級(jí)與濾波級(jí),集成整個(gè)模擬信號(hào)鏈。
傳感器在繼續(xù)向很多市場(chǎng)滲透,為人們帶來更多的控制與更大的靈活性。傳感器通過對(duì)環(huán)境的管理例如溫度監(jiān)控提高了可靠性,通過反饋機(jī)制改進(jìn)了性能,并實(shí)現(xiàn)了新型用戶接口。對(duì)于很多這些設(shè)計(jì)來說,微控制器中集成的ADC提供了足夠的粒度和精度。不熟悉模擬設(shè)計(jì)的開發(fā)人員可能會(huì)在傳感器與微處理器之間的模擬信號(hào)鏈上遇到麻煩。
多級(jí)模擬信號(hào)路徑的實(shí)現(xiàn)似乎很復(fù)雜,尤其是對(duì)那些主要在數(shù)字域做設(shè)計(jì)的工程師們。不過,將模擬信號(hào)域分隔為多個(gè)放大、濾波和ADC級(jí)后,數(shù)字系統(tǒng)開發(fā)者就可以更容易和更精確地捕捉一系列工業(yè)與消費(fèi)應(yīng)用中的傳感器數(shù)據(jù)。另外,不斷涌現(xiàn)的IC、可配置ADC和濾波器設(shè)計(jì)工具等都可以大大簡(jiǎn)化傳感器的設(shè)計(jì)。