智能傳感器訊號處理的需求分析
傳感器是用于偵測、監控和響應溫度、壓力、濕度和運動等物理參量的設備。它們是許多實際工作系統不可或缺的零組件,在工業、消費、汽車、醫療和軍事方面應用非常廣泛。在過去,從傳感器獲得的數據被直接發送至中央控制單元,然后中央控制單元可能會使用外掛的硬件組件或數字邏輯對傳感器數據執行后制或顯示。
隨著8位微控制器(MCU)等嵌入式處理器解決方案的出現,將固定的中央硬件替換為可透過程序執行應用所需特定任務的微控制器所帶來的優勢愈加明顯。但是,8位微控制器只能提供給計算密集度不大的系統做一些基本處理任務。
為此,智能傳感器訊號處理的需求逐漸浮現,而其具備的條件包括以下幾項:
傳感器訊號融合
傳感器應用復雜度的急速提升,使得將更強大的智能嵌入至傳感器接口變得勢在必行。很多應用均采用多個傳感器來獲取各種測量數據,并且運用十分先進的方法對數據進行處理。
在某些情況下,必須同時處理來自多種傳感器的訊號,因而須利用同一個微控制器,這種情況可以稱為「傳感器訊號融合」。每種類型的傳感器都有各自的訊號特性,并且須要透過不同的后制從中提取有用的信息,這會增加中央處理器(CPU)的運算量和周邊數據處理量。
容錯技術需求大增
對于處理器而言,監控傳感器訊號和偵測可能引起系統完全故障的錯誤也非常有用。檢測出錯誤情況后,可完全關閉系統或切換到多余備分傳感器。如果在錯誤檢測流程中再加入一個步驟,就可以在故障實際發生前對其進行預測,這將大大簡化現場硬件維護和保養。
此類容錯算法和技術可能會相當復雜,需要更高的運算能力、更大的內存以及容易與更豐富的周邊功能,因此有必要升級到16位微控制器。
分布式處理
在許多應用中,傳感器實際分散在較廣的區域內,如分散在大型建筑或工廠內,或分散在汽車的不同零件內。對于這樣的分布式系統來說,集中式處理/控制方法往往被證實無效,或者在最佳情況下仍然效能不彰。
要減輕中央控制單元在處理和數據儲存方面的壓力,最好將處理能力分散到多個靠近的傳感器,或者甚至與傳感器整合的微控制器上。但是這種分布式傳感器處理方法需要各種強大的訊號轉換和通訊周邊。
剖析智能傳感器處理訊號鏈

傳感器訊號處理包括各式各樣的嵌入式應用,但可以概括地定義代表傳感器處理系統特點的通用訊號鏈。傳感器應用的主要組件是感測組件(也稱為轉換器)、訊號調整電路(多數是模擬電路組件),以及嵌入式微處理器(在某些情況下是簡單硬件電路的數字邏輯電路或ASIC)(圖1)。
感測組件種類多樣
感測組件(實際上就是「傳感器」)是用于將關注的物理參量轉換成某種電子訊號的裝置。智能傳感器處理應用經常使用多個感測組件,它們屬于同一類型,如空調系統中的多個熱敏電阻,或者屬于不同類型,例如一臺工業機械設備中的熱電偶和一氧化碳探測器。每種類型的傳感器都有自己的一套訊號調整和數據后制要求,可以根據所測量的物理參量對感測組件進行廣義分類,例如溫度傳感器、壓力傳感器、流量傳感器、氣體/化學傳感器、聲音/超音波傳感器、位置/運動傳感器、加速計、圖像傳感器、光傳感器。
也可以根據傳感器輸出的電子訊號的類型對傳感器進行分類。概括而言,共有四種常見的傳感器類型:
電壓傳感器
產生隨感興趣的物理量而變化的輸出電壓。
電流傳感器
產生變化的電流。
頻率傳感器
產生電壓波形,該波形的頻率取決于待測量。
數位傳感器
只根據輸入參數產生數字電壓數據。在某些情況下,所產生的數字數據只是二進制0/1訊號。此類傳感器的輸出在本質上不同于大多數其它傳感器,后者產生的訊號在模擬范疇變化。
訊號調整電路設計視傳感器類型而定。
簡單地說,訊號調整電路將感測組件的輸出訊號規畫到其余電子電路或應用軟件可以處理的范圍內。傳感器應用所需的具體訊號調整電路,取決于所采用的傳感器的類型。例如,某個傳感器根據所測量的物理參數大小產生輸出電壓,其需要的訊號調整能力,可能不同于產生可變電阻的傳感器。從本質上說,傳感器應用均有以下共同的訊號調整要求。
首先,傳感器產生的訊號必須盡量避免混入噪聲。而且,訊號的頻譜(亦即訊號頻寬)必須根據某些約束條件限制在特定的范圍內,因而常常有必要使用一種稱為迭頻消除濾波器的設備。其次,不管是電壓、電流還是頻率,傳感器所產生訊號的振幅通常較小。為了準確處理訊號,讓系統盡量不受噪聲的影響,須要將訊號放大。
除了濾波和放大外,還須使用模擬數字轉換器(ADC)將訊號轉換成數字形式,這增加了訊號調整要求。除了要放大訊號外,可能還須要對訊號進行轉換,使其能適應不同的ADC參考電壓。但是,很多ADC,尤其是微控制器或數字訊號控制器(DSC)中包含的ADC,僅對單極性輸入有效。換句話說,輸入電壓不能相對地在正負電位之間變換。在這種情況下,就必須使用電壓位準移位器。
在本例中,使用一個三運放差動放大器將熱電偶產生的差動輸出電壓放大,然后送入內建模擬數字轉換器C的輸入端。與此相似,ADC的另一個輸入,可用于補償熱電偶引線結點和印刷電路板(PCB)布線交匯處產生的電壓的影響,而且更多用于補償后者。
嵌入式處理器提取有用信息
即使在經過相當多的訊號調整后,若可從隨時間變化的電子訊號中提取出相關信息,傳感器產生的訊號才有用。此一提取過程透過嵌入式微處理器來完成,傳統上使用微控制器或數字訊號處理器(DSP)。因此,顯而易見,處理器的功能及其上運行的應用軟件的功能,才是系統中最關鍵的因素,這就是為智能傳感器處理系統提供所有「智能」的處理器次系統。
處理傳感器輸出的第一步,是將模擬訊號(通常被調整成提供變化的模擬電壓)轉換成數字形式。由此可以推斷,ADC在決定整個傳感器處理系統的精確度方面發揮至關重要的作用。此外,ADC必須提供足夠高的分辨率和具有較好的精確度特性,如積分非線性(Integral Non-Linearity, INL)和微分非線性(Differential Non-Linearity, DNL)。
通常,可能須要對從傳感器獲取的數據執行大量的后制操作。此類操作的例子包括:
數據的有限脈沖響應(FIR)和無限脈沖回應(IIR)濾波
主要用于消除噪聲,可能需要不同類型的濾波器。例如,若目標僅是限制訊號的頻寬與去除高頻噪聲,則使用低通濾波器或帶通濾波器比較合適。另一方面,如果系統易受電源引入的噪聲的影響,則使用高通濾波器或帶拒濾波器(具體取決于所需訊號的頻譜)更合適。
進行快速傅利葉轉換(FFT)計算來分析數據,以便將頻域數據用于進一步的處理階段,此一操作對于信息包含在輸出訊號的頻率中的傳感器尤為重要,例如基于都卜勒效應的超音波傳感器或聲音傳感器。
傳感器數據的靜態或周期性校準
校準是透過提供一組已知的傳感器輸入并測量相應的輸出,來設置傳感器輸出與所需物理參量之間映射的過程。
{$page$}
傳感器輸出與所測量的物理參量間通常不是線性關系
在此類情況下(例如熱電偶),必須將采樣后的傳感器數據「線性化」以補償輸入輸出間的此種非線性關系。該過程通常會涉及高密集度的計算,如應用高次多項式。
根據輸入數據的大小對其進行換算和常態化
此類計算要求傳感器接口使用的處理器必須具有相當高速的數學運算能力,普通的16位微控制器架構無法滿足這樣的要求。
此外,在很多應用中,并不只是簡單地對傳感器訊號進行分析和解讀,還必須執行控制操作對傳感器訊號進行響應。這些操作可能包括以下幾項任務:調整傳感器訊號分析軟件所使用的校準參數,以便正確分析傳感器輸出;向其它處理次系統傳送數據,例如汽車輪胎上的胎壓監控器向儀表板定期發送壓力資料并發送警報;在因特網上更新數據,例如定期讀取電表讀數或定期收集工業數據采集系統的數據;控制電機、電源、繼電器、開關和其它設備;采用容錯措施,例如修正與故障傳感器對應的數據或切換到其它感測組件。
傳統上,使用DSP執行此類數學計算密集的任務。不過,DSP本身(沒有關聯微控制器)并不是非常適用于傳感器接口,理由主要有四個:第一,DSP設備沒有靈活的中斷結構;其次,DSP設備在控制位如單獨的I/O接腳方面的效率不高;再者,DSP設備在很大程度上依賴于外接內存和周邊;第四,DSP設備的接腳數一般都比較多,但是傳感器處理所需的接腳數應該要非常少,這一點非常重要,因為很多應用一般都有空間限制,并且對成本敏感。
另一種適用于高效能智能傳感器系統的有效單芯片架構平臺是16位DSC,如微芯(Microchip)的dsPIC33F系列。DSC是一種創新的混合處理器架構,集16位微控制器的控制功能與豐富的DSP功能于一身。DSC架構非常適用于提供周期性中斷,以及捕捉來自多個傳感器和控制輸入端的數據。若有需要,DSC架構可與分布式系統中的其它控制器模塊共享數據。
另一方面,DSC的中央處理器支持一系列強大的DSP指令和靈活的尋址模式,因而能夠快速準確地進行算術和邏輯運算。接下來,說明讓DSC架構適用于智能傳感器訊號處理的典型特性。
DSC必備主要特點
典型的DSC架構具有使其適用于大量傳感器應用的多種中央處理器和周邊特性。以下將探討這些特性中最有用的幾個,在選擇DSC架構時,這幾個特性是考慮的重點。
增強的中央處理器功能
16位DSC最強大的特性是可提供豐富的DSP功能。真正的DSC包含兩個40位累加器,可用于儲存兩個獨立的16位×16位乘法運算的結果。
大多數DSP算法如FIR和IIR濾波,都會涉及計算乘積之和。利用特殊指令如乘法與累加計算(Multiply-and-Accumulate, MAC),可以在一個運算速度內將兩個16位數字元相乘,將結果加到累加器,然后從隨機存取內存(RAM)預先取得一對數據值。利用兩個累加器,也可以將數據寫回一個累加器,同時在另一個累加器上執行計算。
累加器寬度為40位(而非32位)時,可以將數據暫時「溢出」(這在累加器中累加大量值時經常發生)。此外,DSC的中央處理器也可以選用一種稱為「飽和」的機制,將值保持在允許的范圍內,并在將值寫回RAM時對值進行取整或換算。DSC的另一項特性(也是微控制器一般缺少的)是其解讀分數形式的數據的能力,DSC并不總是假定數據為整數,因而有助于分數運算。
除上述特性外,還增加各種數據尋址模式,用以高效移動數據,支持環形緩沖區和位反轉尋址,以及零耗循環(Zero Overhead Loop)。很顯然地,DSC提供了非常強大的使用者友善型中央處理器架構來處理或分析傳感器數據。
靈活的中斷結構
DSC設備的中斷結構擁有極高的靈活性。一般來說,支持大量可單獨允許并設置優先級的中斷源和向量,這對涉及多個傳感器的應用非常有利。其中斷延遲應該具有高確定性,以簡化系統開發人員的工作。顯著提高智能傳感器訊號處理應用效率的另一個特性是,直接內存存取(Direct Memory Access, DMA),其在周邊和內存之間(如在ADC和數據緩沖區間)自動傳輸大批量的數據。
運行時自我燒錄(RTSP)
大多數傳感器應用都須要儲存常數,其用于根據環境條件、變換器輸出與預測量之間的偏差量,來校準從傳感器獲取的資料。后制算法也會使用常數,如濾波系數或快速傅立葉轉換旋轉因子。但是,在RAM中儲存此類常數會浪費數據儲存空間。
DSC設備通常包含閃存(Flash Memory)程序內存和基于閃存的數據電子式可清除程序化只讀存儲器(EEPROM),可用于高效可靠地儲存和存取此類常數。在閃存DSC設備中,使用者的程序甚至可以實時修改這些常數,具體取決于環境、資料或工作條件的變化。
實體電路串行燒錄
借助閃存DSC,使用者能夠使用稱為實體電路串行燒錄(In-Circuit Serial Programming, ICSP)的方法在現場輕松升級應用韌體。實體電路串行燒錄,不僅可以修正傳感器校準或軟件漏洞,以最少的成本和最短的延遲提供更強的功能,而且能夠使同一控制器用在不同類型的傳感器接口中及不同的條件下。
高解析ADC和DAC
傳感器一般用于測量溫度、壓力和光等物理特性。因此,須要使用速度和分辨率足夠高的內建ADC,才能測量輸入量的微小且快速的變化。對于大多數系統而言,輸入分辨率低于12位的ADC可能不夠用,非線性誤差大于一個最低有效位的ADC也不行。
此外,為測量不同類型參數而采用多種傳感器的任何應用,都要求ADC支持多種采樣、轉換和觸發選項。DSC通常包含多個模擬輸入頻道(因而能夠與多個變換器相連接)、靈活的采樣/轉換選項(如自動在多個輸入之間切換以實現連續采樣),以及測量差動輸入的功能等。為了減少讀取轉換后的采樣所產生的開銷,DSC提供了數據格式可配置(例如整數/分數或有符號/無符號)的大內存映像ADC緩沖區。
內建數字模擬轉換器(DAC)模塊將數字數據(通常來自對傳感器數據的實時分析)轉換成可用于驅動外接設備(如制動器)的模擬訊號。尤其是在DAC支持如16位高分辨率的情況下,DAC輸出可以被送入揚聲器,用于播放語音形式的系統使用說明或系統狀態。
高速輸入捕捉和輸出比較
在某些傳感器應用中,控制器可能會僅為了響應特定事件而讀取來自傳感器變換器的輸入。為了盡可能地降低功耗,控制器可能須要在檢測到某種脈沖或訊號前保持休眠狀態。DSC具有低功耗工作模式,在該模式下只有內部低功耗振蕩器處于活動狀態。此后,可透過「輸入捕捉」接腳上的控制脈沖或事件喚醒DSC,此時會觸發資料收集或計算。「輸入捕捉」頻道還可用于獲取特定事件的時間戳記。
DSC設備上除了有「輸入捕捉」頻道外,還有多個「輸出比較」頻道。「輸出比較」模塊基本上用于從通用內建定時器觸發輸出接腳狀態轉換來產生所需波形,其通常具有脈沖寬度調變(Pulse Width Modulation, PWM)功能。
「輸出比較」訊號在傳感器應用中有很多用途。例如,PWM訊號可用于基本的電機控制。語音錄音通常以壓縮形式儲存在內建閃存中并實時進行解壓縮,其可以轉換成PWM波形的工作周期,然后透過外接低通濾波器電路,從揚聲器播放出來。
I/O位準變化通知功能
在許多情況下,傳感器應用中的控制器可能需要根據某些通用I/O接腳的狀態變化來切換工作模式或產生警報。DSC可以透過產生中斷快速響應此狀態變化。
通訊周邊不可或缺
由于基于傳感器的系統的空間分布越來越廣,數量越來越多,控制器須要透過某種通訊總線或網絡進行數據通訊。
在一些應用中,為了記錄或以圖表顯示從傳感器獲取的資料,控制器可能必須透過標準協議如RS-232和RS485發送數據到個人計算機(PC)或邏輯分析器。控制器偶爾也可能選擇使用外接調制解調器透過電話線發送數據。
為此,DSC芯片提供16位可尋址通用異步收發器(UART)接口。在某些情況下,甚至可能在處理器內的軟件中實現調制解調器通訊協議--分時多任務(Time-Division-Multiplexed, TDM)串行通訊接口或轉碼器接口有利于與調制解調器前端芯片組的通訊。
{$page$}
另一方面,某些周邊使用I2C協議進行通訊。例如,憑借I2C,DSC可以使用外接串行EEPROM來儲存和存取HTML網頁,以直觀監測和控制傳感器次系統的運行。在基于因特網的系統中,應用軟件中可能須要包含低成本的TCP/IP軟件協議,并且可以使用透過16位串行周邊接口(SPI)與DSC進行通訊的以太網絡收發器芯片實現透過以太網絡連接的通訊。
DSC的內建SPI頻道還有其它常見用途。例如,可能須要使用外接數字電位計或可程序化增益放大器,來動態調節一個或多個傳感器的增益。位置互相靠近的不同傳感器次系統間,可能經常需要同時開展通訊。為了應對這種情況,DSC設備通常包含一個或多個16位SPI。
討論通訊接口和周邊時,若不提及功能穩健且靈活的控制局域網絡(Controller Area Network, CAN)協議,那么該討論肯定不完整。CAN協議是汽車應用(工業和醫療應用中也越來越多)中網絡次系統的事實標準,也是其它應用領域中的一種新興技術。
請注意,這些應用領域中廣泛采用智能傳感器訊號處理次系統。包含多個內建CAN通訊接口的DSC設備,尤其是帶有支持數據過濾和緩沖的精密硬件的DSC設備,非常適用于網絡傳感器處理。
感測實例應用說明
接著說明幾個基于傳感器的系統的范例,在這些范例中,DSC提供理想的架構解決方案。這里并未逐一羅列所有的情況,僅為說明DSC在傳感器應用中應用廣泛而已。
溫度量測運算 DSC效益顯著
在傳感器測量的各種物理量中,溫度測量可能最為常見。在工業設備、化工廠、暖氣、通風與空調(Ventilation and Air Conditioning, HVAC)系統、計算機安裝和電池管理系統等眾多系統中,溫度測量是極其重要的一個方面。若要根據所測量的電阻準確計算溫度如使用電阻式溫度檢測器或熱敏電阻,須要進行對數計算和除法,在此過程中,DSC的DSP功能將非常有效。在某些配置中,須要差動ADC輸入。
將熱電偶用作溫度傳感器時,所產生的電壓很小,因而容易受到寄生結效應的干擾。在使用P-N結(硅)傳感器的情況下,所產生的電壓將隨設備的不同而有所變化,難以進行準確的測量。不管是哪一種情況,在內建數據EEPROM或閃存程序內存上儲存和存取校準常數的功能,都有助于補償這種不需要的效應。
類似地,須要對熱電偶和紅外線(IR)溫度檢測器所產生的非線性輸出進行數學運算,使其線性化。例如,K型熱電偶使用下列線性化多項式:
溫度=a1×V+a2×V2+a3×V3+…
其中,a1=25132.785,a2=-60883.423…,V =傳感器輸出電壓。
在dsPIC33F DSC上使用兩個累加器和DSP指令執行此線性化任務時,計算過程(上述多項式僅計算到第二階)需要七個運算速度--四個數據傳送周期、二個乘法周期以及一個乘減運算周期。透過該公式可以很明顯看出,在通用微處理器或微控制器架構上執行此運算會耗費更多時間,這也間接說明了使用DSC的優勢。
而且,熱電偶的輸出電壓(即使在放大之后)特別容易受60Hz(或50Hz,具體取決于區域)的電源線路噪聲影響。考慮到熱電偶輸出的變化率較慢,此噪聲容易與熱電偶輸出位于同一頻帶,并且須要使用中心頻率為60Hz的帶拒濾波器小心地進行濾波。
FIRD和IIR濾波算法均可以在DSC上高效執行,但是IIR濾波器需要的系數一般要少得多,因而需要較少的乘法和加法運算。不過,IIR濾波器具有回饋項,因而會造成一些穩定性方面的難題。幸運的是,數據自動飽和是DSC架構中相當常見的硬件特性,可以盡可能地降低由于溢出造成的數據損壞。圖5的頻率響應圖展示了用于抑制60Hz電源線路訊號的十六階IIR帶拒濾波器(取樣速率為1kHz)的頻率選擇特性。
對于DSP設計經驗不甚豐富的系統開發人員而言,設計數字濾波器尤其是IIR濾波器的過程中所涉及之理論和步驟可能相當復雜,對數學功底的要求極高。幸運的是,很多DSC制造商和協力工具廠商都已提供低成本的工具,開發人員只須要在這些工具中指定通帶和拒帶的轉移頻率及所需的衰減度即可。這些工具可以計算濾波器系數并產生應用軟件可以直接使用的源文件和數據文件。圖3展示了四種最常見的數字濾波問題。
除了線性濾波和數字濾波外,應用軟件還必須在從熱電偶采樣的電壓中加上從外接溫度傳感器IC如TC1047A采樣的電壓,以執行冷結點補償。此外,很可能須要定期計算ADC轉換結果的平均值,具體視所采用的ADC取樣速率而定。平均值計算可以透過DSC架構中通常提供的基于累加器的加法和多位移動運算高效完成。
滿足指紋辨識復雜計算
說明過最常見的智慧傳感器應用后,現在開始討論一種本質上更復雜且計算要求更高的傳感器應用--指紋辨識。
指紋辨識在安全區域(如房間或車輛)的進出控制、存取設備(如手機)、個人計算機或網絡登入,以及僅作為可靠的個人身分識別形式等方面的應用日趨增多。目前,市面上有很多類型的指紋傳感器,如電容式傳感器、光學傳感器、熱傳感器和電場傳感器。例如,電容式傳感器依賴于人手指上的紋路起伏產生的電容變化。
負責從指紋傳感器捕捉指紋數據的控制器須具有以下的某些特性:足夠快的ADC,用于接收傳感器采樣的值;高速串行通訊接口(如SPI),用于與系統中的其它模塊進行通訊;閃存,用于儲存指紋「模板」數據庫,然后在驗證或辨別指紋時高效存取這些范本。
最重要的是,須要擁有強大的DSP功能來執行指紋配對操作。最后必須指出的是,控制器應該不僅能夠處理16位數據,還要能夠高效處理8位數據(如DSC可以處理8位和16位的數據),因為大多數傳感器都使用8位的值來代表指紋。
16位DSC漸受矚目
隨著對傳感器接口的功能性、聯機性以及數學和訊號處理方面的要求變得越來越高,16位DSC逐漸成為許多基于傳感器的系統和智能傳感器的理想內建系統架構。實時操作系統(RTOS)、TCP/IP和預封裝DSP算法等軟件工具,進一步增強此類架構在各種傳感器應用中的可用性。