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