感測器是用於偵測、監控和響應溫度、壓力、濕度和運動等物理參量的設備。它們是許多實際工作系統不可或缺的零組件,在工業、消費、汽車、醫療和軍事方面應用非常廣泛。在過去,從感測器獲得的資料被直接發送至中央控制單元,然後中央控制單元可能會使用外掛的硬體元件或數位邏輯對感測器資料執行後製或顯示。
隨著8位元微控制器(MCU)等嵌入式處理器解決方案的出現,將固定的中央硬體替換為可透過程式執行應用所需特定任務的微控制器所帶來的優勢愈加明顯。但是,8位元微控制器只能提供給計算密集度不大的系統做一些基本處理任務。
為此,智慧感測器訊號處理的需求逐漸浮現,而其具備的條件包括以下幾項:
‧ |
|
|
感測器應用複雜度的急速提升,使得將更強大的智慧嵌入至感測器介面變得勢在必行。很多應用均採用多個感測器來獲取各種測量資料,並且運用十分先進的方法對資料進行處理。
在某些情況下,必須同時處理來自多種感測器的訊號,因而須利用同一個微控制器,這種情況可以稱為「感測器訊號融合」。每種類型的感測器都有各自的訊號特性,並且須要透過不同的後製從中提取有用的資訊,這會增加中央處理器(CPU)的運算量和周邊資料處理量。 |
‧ |
|
|
對於處理器而言,監控感測器訊號和偵測可能引起系統完全故障的錯誤也非常有用。檢測出錯誤情況後,可完全關閉系統或切換到多餘備分感測器。如果在錯誤檢測流程中再加入一個步驟,就可以在故障實際發生前對其進行預測,這將大大簡化現場硬體維護和保養。
此類容錯演算法和技術可能會相當複雜,需要更高的運算能力、更大的記憶體以及容易與更豐富的周邊功能,因此有必要升級到16位元微控制器。 |
‧ |
|
|
在許多應用中,感測器實際分散在較廣的區域內,如分散在大型建築或工廠內,或分散在汽車的不同零件內。對於這樣的分散式系統來說,集中式處理/控制方法往往被證實無效,或者在最佳情況下仍然效能不彰。
要減輕中央控制單元在處理和資料儲存方面的壓力,最好將處理能力分散到多個靠近的感測器,或者甚至與感測器整合的微控制器上。但是這種分散式感測器處理方法需要各種強大的訊號轉換和通訊周邊。 |
剖析智慧感測器處理訊號鏈
|
圖1 典型感測器處理訊號鏈 |
感測器訊號處理包括各式各樣的嵌入式應用,但可以概括地定義代表感測器處理系統特點的通用訊號鏈。感測器應用的主要元件是感測元件(也稱為轉換器)、訊號調整電路(多數是類比電路元件),以及嵌入式微處理器(在某些情況下是簡單硬體電路的數位邏輯電路或ASIC)(圖1)。
感測元件種類多樣
感測元件(實際上就是「感測器」)是用於將關注的物理參量轉換成某種電子訊號的裝置。智慧感測器處理應用經常使用多個感測元件,它們屬於同一類型,如空調系統中的多個熱敏電阻,或者屬於不同類型,例如一台工業機械設備中的熱電偶和一氧化碳探測器。每種類型的感測器都有自己的一套訊號調整和資料後製要求,可以根據所測量的物理參量對感測元件進行廣義分類,例如溫度感測器、壓力感測器、流量感測器、氣體/化學感測器、聲音/超音波感測器、位置/運動感測器、加速計、圖像感測器、光感測器。
也可以根據感測器輸出的電子訊號的類型對感測器進行分類。概括而言,共有四種常見的感測器類型:
‧ |
|
|
只根據輸入參數產生數位電壓資料。在某些情況下,所產生的數位資料只是二進位0/1訊號。此類感測器的輸出在本質上不同於大多數其他感測器,後者產生的訊號在類比範疇變化。 |
訊號調整電路設計視感測器類型而定
簡單地說,訊號調整電路將感測元件的輸出訊號規畫到其餘電子電路或應用軟體可以處理的範圍內。感測器應用所需的具體訊號調整電路,取決於所採用的感測器的類型。例如,某個感測器根據所測量的物理參數大小產生輸出電壓,其需要的訊號調整能力,可能不同於產生可變電阻的感測器。從本質上說,感測器應用均有以下共同的訊號調整要求。
首先,感測器產生的訊號必須盡量避免混入雜訊。而且,訊號的頻譜(亦即訊號頻寬)必須根據某些約束條件限制在特定的範圍內,因而常常有必要使用一種稱為疊頻消除濾波器的設備。其次,不管是電壓、電流還是頻率,感測器所產生訊號的振幅通常較小。為了準確處理訊號,讓系統盡量不受雜訊的影響,須要將訊號放大。
除了濾波和放大外,還須使用類比數位轉換器(ADC)將訊號轉換成數位形式,這增加了訊號調整要求。除了要放大訊號外,可能還須要對訊號進行轉換,使其能適應不同的ADC參考電壓。但是,很多ADC,尤其是微控制器或數位訊號控制器(DSC)中包含的ADC,僅對單極性輸入有效。換句話說,輸入電壓不能相對地在正負電位之間變換。在這種情況下,就必須使用電壓位準移位器。
圖2顯示出某個具體的感測器處理應用所需的訊號調整電路。在本例中,使用一個三運放差動放大器將熱電偶產生的差動輸出電壓放大,然後送入內建類比數位轉換器C的輸入端。與此相似,ADC的另一個輸入,可用於補償熱電偶引線結點和印刷電路板(PCB)布線交匯處產生的電壓的影響,而且更多用於補償後者。
|
圖2 熱電偶的訊號調整 |
嵌入式處理器提取有用資訊
即使在經過相當多的訊號調整後,若可從隨時間變化的電子訊號中提取出相關資訊,感測器產生的訊號才有用。此一提取過程透過嵌入式微處理器來完成,傳統上使用微控制器或數位訊號處理器(DSP)。因此,顯而易見,處理器的功能及其上運行的應用軟體的功能,才是系統中最關鍵的因素,這就是為智慧感測器處理系統提供所有「智慧」的處理器次系統。
處理感測器輸出的第一步,是將類比訊號(通常被調整成提供變化的類比電壓)轉換成數位形式。由此可以推斷,ADC在決定整個感測器處理系統的精確度方面發揮至關重要的作用。此外,ADC必須提供足夠高的解析度和具有較好的精確度特性,如積分非線性(Integral Non-Linearity, INL)和微分非線性(Differential Non-Linearity, DNL)。
通常,可能須要對從感測器獲取的資料執行大量的後製操作。此類操作的例子包括:
‧ |
|
|
|
圖3 常見的數位濾波器類型 |
主要用於消除雜訊,可能需要不同類型的濾波器。例如,若目標僅是限制訊號的頻寬與去除高頻雜訊,則使用低通濾波器或帶通濾波器比較合適。另一方面,如果系統易受電源引入的雜訊的影響,則使用高通濾波器或帶拒濾波器(具體取決於所需訊號的頻譜)更合適(圖3)。 |
‧ |
|
|
以便將頻域資料用於進一步的處理階段,此一操作對於資訊包含在輸出訊號的頻率中的感測器尤為重要,例如基於都卜勒效應的超音波感測器或聲音感測器。 |
‧ |
|
|
校準是透過提供一組已知的感測器輸入並測量相應的輸出,來設置感測器輸出與所需物理參量之間映射的過程。 |
‧ |
|
|
在此類情況下(例如熱電偶),必須將採樣後的感測器資料「線性化」以補償輸入輸出間的此種非線性關係。該過程通常會涉及高密集度的計算,如應用高次多項式。 |
‧ |
|
|
此類計算要求感測器介面使用的處理器必須具有相當高速的數學運算能力,普通的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)串列通訊介面或轉碼器介面有利於與數據機前端晶片組的通訊。
另一方面,某些周邊使用I2C協定進行通訊。例如,憑藉I2C,DSC可以使用外接串列EEPROM來儲存和存取HTML網頁,以直觀監測和控制感測器次系統的運行。在基於網際網路的系統中,應用軟體中可能須要包含低成本的TCP/IP軟體協定,並且可以使用透過16位元串列周邊介面(SPI)與DSC進行通訊的乙太網路收發器晶片實現透過乙太網路連接的通訊。
DSC的內建SPI頻道還有其他常見用途。例如,可能須要使用外接數位電位計或可程式化增益放大器,來動態調節一個或多個感測器的增益。位置互相靠近的不同感測器次系統間,可能經常需要同時開展通訊。為了應對這種情況,DSC設備通常包含一個或多個16位元SPI。
討論通訊介面和周邊時,若不提及功能穩健且靈活的控制局域網路(Controller Area Network, CAN)協定,那麼該討論肯定不完整。CAN協定是汽車應用(工業和醫療應用中也越來越多)中網路次系統的事實標準,也是其他應用領域中的一種新興技術(圖4)。
|
圖4 DSC的典型中央處理器和周邊特性 |
請注意,這些應用領域中廣泛採用智慧感測器訊號處理次系統。包含多個內建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的帶拒濾波器小心地進行濾波。
FIR和IIR濾波演算法均可以在DSC上高效執行,但是IIR濾波器需要的係數一般要少得多,因而需要較少的乘法和加法運算。不過,IIR濾波器具有回饋項,因而會造成一些穩定性方面的難題。幸運的是,資料自動飽和是DSC架構中相當常見的硬體特性,可以盡可能地降低由於溢出造成的資料損壞。圖5的頻率回應圖展示了用於抑制60Hz電源線路訊號的十六階IIR帶拒濾波器(取樣速率為1kHz)的頻率選擇特性。
|
圖5 IIR帶拒濾波器的頻率響應 |
對於DSP設計經驗不甚豐富的系統開發人員而言,設計數位濾波器尤其是IIR濾波器的過程中所涉及之理論和步驟可能相當複雜,對數學功底的要求極高。幸運的是,很多DSC製造商和協力工具廠商都已提供低成本的工具,開發人員只須要在這些工具中指定通帶和拒帶的轉移頻率及所需的衰減度即可。這些工具可以計算濾波器係數並產生應用軟體可以直接使用的原始檔案和資料檔案。圖3展示了四種最常見的數位濾波問題。
除了線性濾波和數位濾波外,應用軟體還必須在從熱電偶採樣的電壓中加上從外接溫度感測器IC如TC1047A採樣的電壓,以執行冷結點補償。此外,很可能須要定期計算ADC轉換結果的平均值,具體視所採用的ADC取樣速率而定。平均值計算可以透過DSC架構中通常提供的基於累加器的加法和多位元移動運算高效完成。
滿足指紋辨識複雜計算
說明過最常見的智慧感測器應用後,現在開始討論一種本質上更複雜且計算要求更高的感測器應用--指紋辨識。
指紋辨識在安全區域(如房間或車輛)的進出控制、存取設備(如手機)、個人電腦或網路登入,以及僅作為可靠的個人身分識別形式等方面的應用日趨增多。目前,市面上有很多類型的指紋感測器,如電容式感測器、光學感測器、熱感測器和電場感測器。例如,電容式感測器依賴於人手指上的紋路起伏產生的電容變化。
負責從指紋感測器捕捉指紋資料的控制器須具有以下的某些特性:足夠快的ADC,用於接收感測器採樣的值;高速串列通訊介面(如SPI),用於與系統中的其他模組進行通訊;快閃記憶體,用於儲存指紋「範本」資料庫,然後在驗證或辨別指紋時高效存取這些範本(圖6)。
|
圖6 指紋辨識系統範例 |
最重要的是,須要擁有強大的DSP功能來執行指紋配對操作。最後必須指出的是,控制器應該不僅能夠處理16位元資料,還要能夠高效處理8位元資料(如DSC可以處理8位元和16位元的資料),因為大多數感測器都使用8位元的值來代表指紋。
16位元DSC漸受矚目
隨著對感測器介面的功能性、連線性以及數學和訊號處理方面的要求變得越來越高,16位元DSC逐漸成為許多基於感測器的系統和智慧感測器的理想內建系統架構。即時操作系統(RTOS)、TCP/IP和預封裝DSP演算法等軟體工具,進一步增強此類架構在各種感測器應用中的可用性。
(本文作者任職於微芯)