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