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