摘 要: 給出了智能化傳感器嵌入式控制器的開發環境、典型嵌入式微控制器硬體結構和軟體結構及設計方法,同時對智能化傳感器的信號處理方法作了簡單介紹,最後提供了一些目前廣泛應用的嵌入式微控制器晶片。
本文引用地址:http://www.eepw.com.cn/article/241580.htm關鍵詞: 嵌入式微單片機 智能傳感器 信號處理
在智能化儀表應用中,片上型微處理控制器已經得到非常廣泛的應用,這種微型控制器主要是向著單片化、微型化、高性價比的方向發展,特別是具有片上程序存儲器、數據存儲器和不同的I/O接口的單片微處理器的出現,改變了傳統的智能化儀表的設計方法。傳感器本身的智能化給現代儀表設計提供了更大的空間,一些微控制器本身帶有A/D和D/A轉換器、通訊接口(SPI,CAN等)和保存校正參數的非易失存儲器的功能,這種微控制器應用於傳感器不僅給傳感器功能提供了很多的附加功能,給用戶提供了方便,而且減小了系統的有效空間,與一般系統設計中採用放大器、電阻及A/D轉換器相比,這種微型控制器在性能/價格比上更具有競爭優勢(其具備的A/D功能和D/A功能,通訊接口和程序存儲器等可以節約更多的硬體成本)。
例如接近覺傳感器在機器人機械手中有十分重要的應用,其線形化是制約其應用的主要的因素,一般紅外接近覺傳感器輸入輸出呈明顯的非線形,且與溫度相關,利用一般的模擬電路設計方法將其轉換為標準輸入信號提供給A/D轉換器儘管在功能上能夠實現,但是很難在性能上保持一致性;更為重要的是,在一些場合這種處理方法會增加硬體的成本,由於其體積較大而無法滿足實際的使用要求,例如航天機器人使用的機械手上所使用的接近覺傳感器對體積、信號的穩定性等都有嚴格的要求。如果使用嵌入式微型控制器可以通過校準獲得的數據表存儲到數據存儲器中,還可以通過數學模型對溫度的影響進行修正,並將測量的結果(距離)直接通過接口傳送給上位機,比較兩種方式,後者從功能上看毫無疑問節省空間、性能優越,而成本則相差無幾,同時有效減少了上位機的處理時間。
下面根據實際使用中涉及到的一些問題做一些論述。
1 嵌入式微處理單片機硬體結構
圖1是一典型的微型控制器的結構框圖,與一般微處理器不同的是其將程序存儲器、數據存儲器以及各種輸入輸出接口集成在單個晶片上,而一般的微型處理器需要外接各種存儲器和擴展I/O接口。其基本的構成如下:
CPU——微型控制器中央處理單元比較簡單,一般採用精簡指令集,不具備浮點運算等高級操作功能,其中通用算術單元ALU可以完成工作寄存器和文件寄存器間的算術和邏輯操作功能,以8位整形數據工作。在一般傳感器的應用中無須複雜的數據處理,這種結構簡單價格低廉的微單片處理器提供了一較好的解決方案。
數據存儲器——由通用寄存器和特殊功能寄存器共同組成,與一般單片機以K為單位的存儲空間相比,微型控制器的存儲單元較小,只有256個字節甚至更少,由於其空間小,地址簡單,故常常用來作為微控制器的文件寄存器。有一些微單片機將這些寄存器作為EEPROM或快閃記憶體,用來存儲校準數據和一般常數。
程序存儲器——用來存儲運行程序。一般微型控制器採用特殊的結構保證程序存儲器和數據存儲器分開,與傳統的馮.諾曼結構程序存儲器和數據存儲器在同一空間相比速度更快,使得處理器在獲取命令的同時可以獲取數據。同時這種結構可以使數據存儲器寬度和程序存儲器寬度不一樣,後者可以採用較寬的結構以獲取更高的編碼效率,其空間一般以K為單位記。
I/O口——用來提供數值輸入輸出通道與外界交換數據,這些口除用於採樣狀態標誌外,還可以通過編程設置為與A/D或D/A交換數據接口,或與其他單片機的通訊接口。
定時器/計數器——其功能主要根據相應的寄存器設置而定,作為計數器,可以對外界的狀態變化或頻率計數;用作定時器時,可以用來實現對外界事件計時或控制微處理器周期運行,如在某一段時間內沒有事件發生時,作為看門狗的定時器可以周期的復位,對於智能型的傳感器這種功能顯然很有用。
A/D轉換器——一般微單片機中都具備內部的4~8路A/D轉換器,因此單片的微型機可以同時接入多個傳感器並實現信號處理。早期微處理器中的這種A/D轉換器是以8位為主,而現在10位或12位精度的微型單片機較為普遍,給用戶提供了較大的選擇餘地。
通訊方式接口——對於不同的應用場合,目前的微單片控制器可以提供不同的通訊協議方式,例如SPI,
,或支持網絡接口的CAN,USB方式。
2 軟體設計
現代微單片控制器中可以集成大量的硬體,給用戶帶來了很大的方便,在智能化傳感器的應用設計時可以將其僅僅作為一個元件使用,輸入模擬信號輸出數值信號。而在傳感器的智能化中,實際上硬體所佔比重微乎其微,軟體才是增加傳感器功能提高其附加值的主要因素。
在傳感器中使用嵌入式微處理單片機來實時處理數據時,其軟體的結構不同於一般PC機中所採用的方式,前者簡單得多。在傳感器中應用單片機的主要功能是讀入輸入信號,經過簡單的數據處理再輸出結果,這些功能的實現主要採用下面三種結構方式。
·順序方式
·中斷方式
·多重選擇方式
順序方式——其工作原理如圖2所示,其工作方式比較簡單,主要適合一些重複性的場合。單片機首先讀入傳感器的輸出,經過數據處理後輸出結果,並更新內部變量,執行完後返回重新開始上面的過程見圖2(a)。很顯然這種方式本身是在一定的循環周期下反覆運行,浪費機器的時間,在輸入沒有發生變化時,這種處理方式降低了傳感器本身的反應速度,可以改成見圖2(b)結構方式,如輸入沒有發生變化,返回而輸出不變;當輸入發生變化時,才進行相應的處理。這樣有效提高了輸出對應於輸入之間反應效率。
中斷方式——這是各種CPU處理事件普遍採用的方式,在應用嵌入式微處理器到傳感器中同樣可以利用中斷模式來實現過程控制和處理。這種處理方式在多傳感器系統中使用較多,在這裡單片機採用上面的方式循環對部分傳感器採樣的數據處理,執行主程序,當某一傳感器的狀態改變(例如超過某一閾值)時即執行相應的任務。例如,在使用溫度實時補償的智能多傳感器系統中,當溫度發生變化時,輸入與輸出的函數關係發生改變需要通過查表方式獲取對應補償係數即可通過中斷方式實現。在有上下位機的多處理器系統中,相互之間的通訊同樣可以通過中斷方式實現數據的及時交換。當中斷發生時,處理器保護好寄存器中數據到堆棧中,優先執行中斷功能,當中斷程序執行完畢時返回斷點恢復現場繼續原來的程序,當然這種中斷方式的實現取決於處理器的硬體結構。
中斷方式一般應用於智能傳感器需要通訊和定時執行特殊功能的場合,使得軟體結構簡單易行。具體程序流程圖見圖3。
多重選擇方式——在智能多傳感器系統中,當輸入發生變化時需要執行相應的功能,輸入狀態越多輸出的選擇越多。例如目前使用的模糊洗衣機廣泛採用單片機對各種輸入條件(衣服的多少、髒的程度等)判斷給出相應的控制策略,實際上這種功能完成可以採用智能傳感器直接實現。
多選擇方式的程序流程圖如圖4所示,輸出的結果由輸入的變化和當前狀態決定。用數學方式可表示為:
State_next=F(State_present,Injput);
Output=G(State_present,Input);
其中函數F(X,Y),G(X,Y)表示狀態變化邏輯和輸出輸入對應關係,在嵌入式微處理單片機系統中一般採用查表方式獲取相應的數據。
從程序流程圖可以看出這種方式符合結構化程序的設計,軟體實現較為容易。
實際上,在一些比較複雜的過程中,上面的三種方式往往結合在一起來應用。在嵌入式智能多傳感器系統中採用這三種方式主要是由嵌入式微處理器本身的特點所決定的。無法實現浮點運算,採用精簡指令集,數據存儲器空間有限等因素對程序的設計要求結構簡單,方便實現。
3 開發開具
目前支持微處理單片機的開發工具較多,一般廠家都提供相應的技術支持。下面簡單介紹Microchip公司提供的Picstart Plus開發工具箱,包括相應的硬體、接口、數據手冊和開發軟體MPLAB IDE,可以實現對PIC系列的微單片機編程、調試、寫入和仿真,其軟體開發環境支持在WINDOWS環境下運行,調試簡單。由於嵌入式微單片機普遍採用精簡指令系統,給編程帶來很大的方便,系統仿真功能可以使開發者單步運行程序,並隨時監測寄存器中的中間結果,觀測程序的執行過程。
此開發系統唯一的缺點在於不能象一般的單片機系統一樣直接實現對系統的仿真,當微處理單片機嵌入到傳感器系統中時其系統的運行過程仿真比較困難。不過這可以通過對仿真系統做一些改進,在PC機和所設計的嵌入系統之間設計一接口,微單片機的安裝位置與仿真機連接在一起以實現對系統的仿真。
4 傳感器的數據處理
一般單片機系統對傳感器的數據處理方法比較簡單,通過A/D轉換器的輸入實現對傳感器的採樣,由於其本身計算數據處理功能的強大,對傳感器信號處理如線性化、濾波和取閾值等功能比較簡單。採用微單片機時,這些功能的實現需要一些特別的處理方法。
4.1 線性化
線性化是傳感器中比較常見的問題,通過對微單片機所採樣數據進行一定的數據處理可以消除其非線性因素,一般可以通過兩種途徑來實現。
查表法——預先通過實驗校準,將傳感器A/D採樣的輸入和實際的值比較,將結果存入存儲器中,對應每一個輸入相應查表得到一個輸出。例如PIC74**包括一8位的A/D轉換器,可以通過256組輸入輸出鍊表直接得到真實的結果,A/D轉換器的輸入相當於鍊表的指針入口地址,此方法是建立在大量的實驗的基礎之上的,比較簡單。例如紅外接近覺傳感器、溫度傳感器可以通過此方法實現線性化。當A/D轉換器精度較高時,如PIC16c773、pic16c774的A/D轉換器具有12位的精度,需要4096個地址空間存儲對應表。
內部插補法——當存儲器空間有限時,可以採用插補法實現傳感器的線性化。將採樣所得到的曲線看成一系列的節點用直線連接在一起,因此只需要將每個節點的首尾數據存儲下來,大大節約了存儲空間,具體實現方法如下:
(1)採樣獲取傳感器的輸入值x;
(2)確定u所在的節點位置n;
(3)讀取相應節點的節點輸入輸出值Xn,Xn+1,Yn,Yn+1
(4)計算輸出結果Y
Y=Yn+(X-Xn)Kn
Kn=(Yn+1-Yn)/(Xn+1-Xn)
其中每個節點的斜率比值可以預先存入單片機中,通過查表獲取以提高計算速度。
4.2 濾波方法選擇
從A/D轉換器獲取的數據毫無疑問存在外界的幹擾,需要通過濾波方法除去。在微單片機中比較容易實現的方法是移動窗口濾波法,具體為設置一定的窗口值例如3到8個數據為一組,對其取平均值。當傳感器獲取的數據變化較快時,例如是採樣頻率的1/3到1/5時,窗口取值小一些較為理想(3到5),當傳感器獲取的數據變化較為緩慢時,窗口值取大一些比較容易獲得較好的濾波效果。
目前應用於嵌入式智能化傳感器中普遍使用的片上微型單片機主要有以下幾種。MORTOROLA公司提供的68HC908GP20,包括33路雙向I/O口,中斷,SCI、SPI串口通訊口,定時看門狗,在線編程等功能;Micrrochip公司提供的PIC系列單片機,除上面提到的一些功能相近外,PIC16c773,PIC116C774還提供12位精度的A/D口,應用非常方便,PIC系列的片上型單片機目前國內使用較廣泛;Cypress Semiconductor公司提供的COP684BC/COP8844BC具有CAN接口功能,其他提供這類單片機的公司有Zilog,Digi-Key,Atmel等。
總之,將片上型微單片機嵌入傳感器中將大大提高傳感器的智能化、實用化方面的功能,給傳感器智能化的設計提供了新的思路,其提供的標準化接口大大方便傳感器的使用。