智能信感器信號處理的慨念
傳感器是用于檢測、監視和響應(如有需要)溫度、壓力、濕度和運動等物理參數的器件。它們是許多實際系統不可或缺的組件,在工業、消費電子、汽車、醫療和軍事方面應用非常廣泛。過去,從傳感器獲取的數據被直接發送到中央單元,然后中央單元可能會使用分立式硬件或數字邏輯對傳感器數據執行后處理或顯示。隨著8位單片機(MCU)等嵌入式處理器解決方案的出現,將程序固定的中央硬件替換為可通過編程來執行應用所需特定任務的MCU所帶來的優勢愈加明顯。但是,8位MCU只能執行計算密集度不大的系統基本處理任務。
傳感器信號融合
傳感器應用復雜度的飛速提升使得將更強大的智能嵌入到傳感器接口勢在必行。很多應用均采用多個傳感器來獲取各種測量數據,并且采用十分先進的方法對數據進行處理。在某些情況下,必須同時處理來自多種傳感器的信號(因而需要利用同一個MCU),這種情形可以稱為“傳感器信號融合”。每種類型的傳感器都有自己的信號特性,并且需要通過不同的后處理來從中提取有用的信息,這就會增大CPU計算量和外設數據處理量。
容錯
對于處理器而言,監視傳感器信號和檢測可能會引起系統完全失效的錯誤也非常有用:檢測出錯誤情況之后可完全關閉系統或切換到冗余備份傳感器。如果在錯誤檢測流程中再加入一個步驟,就可以在故障實際發生之前對其進行預測,這將大大簡化現場硬件維護和保養。此類“容錯”算法和技術可能會相當復雜,需要更高的計算能力、更大的存儲容量和更豐富的外設功能,因此有必要升級到16位MCU。
分布式處理
在許多應用中,傳感器物理地分散在較廣的區域內,如分散在大型建筑或工廠內,或分散在汽車的不同零部件內。對于這樣的分布式系統來說、集中式處理/控制方法往往被證實無效、或者在最佳情況下仍然低效。要減輕中央控制單元在處理和數據存儲方面的壓力,最好將處理能力分散到多個靠近傳感器或者甚至與傳感器集成的MCU上。但是這種“分布式傳感器處理”方法需要各種強大的信號轉換和通信外設。
智能傳感器處理信號鏈
傳感器信號處理包括各種各樣的嵌入式應用,但是我們可以概括地定義代表傳感器處理系統特點的通用信號鏈。傳感器應用的主要組件是傳感元件(也稱為變換器)、信號調理電路(多數是模擬電路元件),以及嵌入式微處理器(或者,在某些情況下是簡單硬連線的數字邏輯電路或專用IC,即ASIC)。
傳感元件
傳感元件(實際上就是“傳感器”的意思)是用于將感興趣的物理參數轉換成某種電信號的器件。智能傳感器處理應用經常使用多個傳感元件,它們或者屬于同一類型(例如空調系統中的多個熱敏電阻)。或者屬于不同類型(例如一臺工業機械設備中的熱電偶和一氧化碳探測器)。每種類型的傳感器都有自己的一套信號調理和數據后處理要求。
可以根據所測量的物理參數對傳感元件進行廣義分類。例如:溫度傳感器,壓力傳感器,流量傳感器,氣體/化學傳感器,聲音/超聲波傳感器,位置/運動傳感器,加速計,圖像傳感器,光傳感器等。
也可以根據傳感器輸出的電信號的類型對傳感器進行分類。概括而言,共有4種常見的傳感器類型:電壓傳感器、電流傳感器、頻率傳感器、數字傳感器。
傳感器的信號調理電路
簡單地說,信號調理電路將傳感元件的輸出信號映射到其余電子電路或應用軟件可以處理的范圍內。傳感器應用所需的具體信號調理電路取決于所采用的傳感器的類型。例如,某個傳感器根據所測量的物理參數的大小產生輸出電壓,其需要的信號調理能力可能不同于產生可變電阻的傳感器。從本質上說,傳感器應用均有以下共同的信號調理要求。
首先、傳感器產生的信號必須盡量避免混入噪聲。而且、信號的頻譜(也就是信號帶寬)必須根據某些約束條件限制在特定的范圍內。因而常常有必要使用一種稱為防混疊濾波器的器件。其次,傳感器產生的信號(不管是電壓、電流還是頻率)的振幅通常較小。為了準確處理信號,使系統盡量不受噪聲的影響,需要將信號放大。
除了濾波和放大之外,還需要使用模數轉換器(ADC)將信號轉換成數字形式,這增加了信號調理要求。除了耍放大信號,可能還需要對信號進行轉換,使其能適應不同的ADC參考電壓。但是,很多ADC,尤其是MCU或數字信號控制器(Dsc)中包含的ADC,僅對單極性輸入有效。也就是說,輸入電壓不能相對于地在正負電平之間變換。在這種情況下,就需要使用電平位移器。
圖2舉例示出了某個具體的傳感器處理應用所需的信號調理電路。在本例中,使用一個三運放差分放大器將熱電偶產生的差分輸出電壓放大,然后送入片上ADC的輸入端。與此相似,ADC的另一個輸入可用于補償熱電偶引線結點和PCB(印制板)布線交匯處產生的電壓的影響(更多地用于補償后者)。
傳感器的處理器
即使在經過相當多的信號調理之后,若可從隨時間變化的電信號中提取出相關信息,傳感器產生的信號才有用。這一提取過程通過嵌入式微處理器來完成,傳統上使用MCU或DSP。因此,顯而易見,處理器的功能以及其上運行的應用軟件的功能才是系統中最關鍵的因素——這就是為智能傳感器處理系統提供所有“智能”的處理器子系統。
處理傳感器的輸出的第一步是將模擬信號(通常被調理成提供變化的模擬電壓)轉換成數字形式。由此可以推斷,ADc在決定整個傳感器處理系統的精確度方面起著至關重要的作用。ADc必須提供足夠高的分辨率和具有較好的精度特性,如積分非線性(Integral Non-Linearity,INL)和微分非線性(DifferentiM Non-Linearity,DNL)。
通常,可能需要對從傳感器獲取的數據執行大量的后處理操作。此類操作的例子如下。
·數據的有限沖激響應(Finite Impulse Response,FIR)和無限沖激響應(Infinite Impulse Response,IIR)濾波,主要用于消除噪聲。可能需要不同類型的濾波器。例如,如果目標僅僅是限制信號的帶寬和去除高頻噪聲,則使用低通濾波器或帶通濾波器比較合適。男一方面,如果系統易受電源引入的噪聲的影響,則使用高通濾波器或陷波濾波器(具體取決于所需信號的頻譜)更合適。
·進行快速傅里葉變換(FFT)計算以分析數據,以便將頻域數據用于進一步的處理階段。這一操作對于信息包含在輸出信號的頻率中的傳感器尤為重要,例如基于多普勒效應的超聲波傳感器或聲音傳感器。
·傳感器數據的靜態或周期性校準。校準是通過提供一組已知的傳感器輸入并測量相應的輸出來設置傳感器輸出與所需物理參數之間的映射的過程。
·傳感器輸出與所測量的物理參數之間通常不是線性關系。在此類情況下(例如熱電偶),必須將采樣后的傳感器數據“線性化”以補償輸入/輸出之間的這種非線性關系。該過程通常會涉及高密集度的計算,如應用高次多項式。
·根據輸入數據的大小對其進行換算和歸一化。此類計算要求傳感器接口使用的處理器具有相當高速的數學運算能力。普通的16位MCU架構無法滿足要求。
此外,在很多應用中,并不只是簡單地對傳感器信號進行分析和解讀,還需要執行控制操作對傳感器信號進行響應。這些操作可能包括以下任務:
·調整傳感器信號分析軟件所使用的校準參數,以便可以正確分析傳感器輸出:
·向其他處理子系統傳送數據,例如,汽車輪胎上的胎壓監視器向儀表盤定期發送壓力數據并發送警報:
·在互聯網上更新數據,例如定期讀取電表讀數或定期收集工業數據采集系統的數據:
·控制電機、電源、繼電器、開關和其他器件:
·容錯措施,如修正與故障傳感器對應的數據或切換到其他傳感元件。
傳統上使用數字信號處理器(DsP)執行此類數學計算密集的任務。不過,DSP本身(沒有關聯MCU)并不是非常適用于傳感器接口。理由主要有四個:
·DsP器件沒有靈活的中斷結構:
·DSP器件在控制位(例如單獨的I/O引腳)方面的效率不高:
·DSP器件在很大程度上依賴于片外存儲器和外設:
·DSP器件的引腳數一般都比較多,但是傳感器處理所需的引腳數應該要非常少,這一點非常重要,因為很多應用一般都有空間限制,并且對成本敏感。
另一種適用于高性能智能傳感器系統的有效單片架構平臺是16位數字信號控制器(DSC),如MicrochipTechnology(美國微芯科技公司)的dsPIC33F系列。Dsc是一種創新的混合處理器架構,它集16位MCU的控制功能與豐富的DSP功能于一身。DSC架構非常適用于提供周期性中斷,以及捕捉來自多個傳感器和控制輸入端的數據。如果需要,DSC架構可以與分布式系統中的其他控制器模塊共享數據。另一方面,DSC的CPU支持一系列強大的DSP指令和靈活的尋址模式,因而能句多快速準確地進行算術和邏輯運算。現在,讓我們來深入了解使DSC架構適用于智能傳感器信號處理的典型特性。