摘 要構(gòu)建無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)的各種協(xié)議和支撐技術(shù),通過(guò)對(duì)數(shù)據(jù)采集網(wǎng)絡(luò)的應(yīng)用場(chǎng)景進(jìn)行分析,將Win CE與ZigBee技術(shù)相結(jié)合,設(shè)計(jì)一種典型的多層次網(wǎng)絡(luò)模型,實(shí)現(xiàn)CC2430片內(nèi)集成定位引擎應(yīng)用,短距離多網(wǎng)絡(luò)節(jié)點(diǎn)間無(wú)線通信,以微處理器與WinCE操作系統(tǒng)為中心建立網(wǎng)關(guān)人機(jī)交互平臺(tái),通過(guò)寬帶及公共電話網(wǎng)接入公共網(wǎng)絡(luò),使用串口實(shí)現(xiàn)無(wú)線通信終端采集部分與網(wǎng)關(guān)平臺(tái)的數(shù)據(jù)傳輸,實(shí)現(xiàn)環(huán)境監(jiān)測(cè)、數(shù)據(jù)發(fā)送及信息綜合的集中管理。
【關(guān)鍵詞】無(wú)線傳感網(wǎng) Win CE ZigBee 人機(jī)交互
1 引言
無(wú)線傳器網(wǎng)應(yīng)用分布式信息處理、傳感器、現(xiàn)代網(wǎng)絡(luò)、嵌入式計(jì)算及無(wú)線通信等技術(shù),通過(guò)各類微型傳感器協(xié)同完成對(duì)監(jiān)測(cè)對(duì)象或各種環(huán)境的數(shù)據(jù)采集、位置感知和實(shí)時(shí)監(jiān)控,這些信息以自組織多跳的無(wú)線網(wǎng)絡(luò)方式傳送到用戶終端,從而實(shí)現(xiàn)人類社會(huì)、計(jì)算世界以及物理世界的三元世界信息融合。
2 無(wú)線傳感網(wǎng)總體設(shè)計(jì)
無(wú)線傳感網(wǎng)以多跳路由的方式過(guò)中間節(jié)點(diǎn)將數(shù)據(jù)傳送至匯聚節(jié)點(diǎn),數(shù)據(jù)通過(guò)網(wǎng)絡(luò)層完成轉(zhuǎn)發(fā)。因此,提出層次型網(wǎng)絡(luò)結(jié)構(gòu),系統(tǒng)包含二部分:
無(wú)線傳感局域網(wǎng)節(jié)點(diǎn);應(yīng)用 ZigBee 技術(shù),每個(gè)嵌入 ZigBee 模塊的傳感器作為一個(gè)ZigBee 節(jié)點(diǎn),由 ZigBee 節(jié)點(diǎn)組成整個(gè)無(wú)線傳感局域網(wǎng)。
嵌入式網(wǎng)關(guān);實(shí)現(xiàn)串口數(shù)據(jù)接收、數(shù)據(jù)報(bào)文解析處理、顯示和上位機(jī)操作界面的多線程程序,及對(duì)信息數(shù)據(jù)處理的功能;同時(shí),還要實(shí)內(nèi)部網(wǎng)絡(luò)現(xiàn)和外部 Internet之間協(xié)議的轉(zhuǎn)換、地址轉(zhuǎn)換和路由等功能,通過(guò)一組人機(jī)交互的界面和相應(yīng)的應(yīng)用程序以達(dá)到方便用戶使用和管理的效果要支持UDP協(xié)議并能提供遠(yuǎn)程控制服務(wù),從而允許客戶遠(yuǎn)程訪問(wèn)它。
3 無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)
傳感網(wǎng)節(jié)點(diǎn)是系統(tǒng)重要組成部分,其作用等效于生物的觸角,由傳感器完成探測(cè)點(diǎn)環(huán)境的數(shù)據(jù)采集。
3.1 無(wú)線傳感網(wǎng)測(cè)距的原理
在無(wú)線傳感局域網(wǎng)中,網(wǎng)絡(luò)節(jié)點(diǎn)監(jiān)測(cè)消息的重要信息為事件發(fā)生的位置信息或獲取信息的節(jié)點(diǎn)位置。在互相可視的兩個(gè)節(jié)點(diǎn)間,利用自由空間傳播模型來(lái)預(yù)測(cè)接收訊號(hào)的強(qiáng)度值,當(dāng)天線發(fā)射機(jī)與接收機(jī)天線之間有一定距離時(shí),由弗里斯方程式?jīng)Q定它所接收的自由空間功率,常采用美國(guó)電氣和電子工程師協(xié)會(huì)提供的簡(jiǎn)化估算公式:
RSSI = A-10nlg(d)
式中,RSSI單位為dbm; A是信號(hào)傳輸單位距離時(shí)的接收信號(hào)強(qiáng)度;傳播因子為n,無(wú)線信號(hào)傳播環(huán)境決定其取值;收發(fā)單元間的距離是d,單位m。
3.2 節(jié)點(diǎn)射頻芯片選型
節(jié)點(diǎn)射頻電路實(shí)現(xiàn)無(wú)線傳感局域網(wǎng)的接受、發(fā)送功能和數(shù)據(jù)處理,節(jié)點(diǎn)電路采用美國(guó)德州儀器公司推出射頻收發(fā)芯片CC2430,應(yīng)用其內(nèi)置的RSSI指示器寄存器,應(yīng)用其公式計(jì)算RF管腳相關(guān)的功率P,即可得出兩節(jié)點(diǎn)間的距離。
3.3 節(jié)點(diǎn)硬件設(shè)計(jì)
采用結(jié)構(gòu)化方法設(shè)計(jì)標(biāo)量數(shù)據(jù)網(wǎng)節(jié)點(diǎn),將其分為微處理器模塊、傳感/控制模塊和射頻通信模塊等子電路模塊,分別設(shè)計(jì)制作印刷電路板,其系統(tǒng)結(jié)構(gòu)分析如下。由512 KB 串行FLASH 存儲(chǔ)器AT45DB041、ISP接口、RS-232 接口、能量供應(yīng)模塊、C8051f320單片機(jī)以及一個(gè)標(biāo)準(zhǔn)傳感/控制接口組成微處理器模塊。應(yīng)用CC2430和印刷電路板引線組成天線射頻通信模塊,它通過(guò)微處理器與串行外設(shè)接口連接完成設(shè)置并實(shí)現(xiàn)數(shù)據(jù)收發(fā)任務(wù)。通用接口連接到微處理器模塊組成傳感/控制模塊,僅根據(jù)控制需求設(shè)計(jì)傳感/控制模塊和各種傳感器研制出具有不同功能的節(jié)點(diǎn)。按需求設(shè)計(jì)出如下傳感器節(jié)點(diǎn)模塊:溫濕度傳感器SHT11節(jié)點(diǎn)模塊、光強(qiáng)傳感器TSL2550D節(jié)點(diǎn)模塊、煙霧探測(cè)傳感器節(jié)點(diǎn)模塊、紅外光敏傳感器報(bào)警節(jié)點(diǎn)為模塊及緊急按鈕報(bào)警節(jié)點(diǎn)模塊等。
3.4 節(jié)點(diǎn)軟件應(yīng)用層分析
節(jié)點(diǎn)軟件應(yīng)用層框架由設(shè)備層、對(duì)象應(yīng)用支持和制造商所定義的應(yīng)用對(duì)象。節(jié)點(diǎn)軟件協(xié)議結(jié)構(gòu)由大量的層狀元件,包含網(wǎng)絡(luò)層、PHY層及IEEE802.15.4 MAC層,每層提供它們相應(yīng)的服務(wù)和能力。節(jié)點(diǎn)軟件應(yīng)用層除了實(shí)現(xiàn)網(wǎng)絡(luò)層提供合適的服務(wù)接口及一些必要的函數(shù)外,還有就是讓應(yīng)用者可在這層定義自己的應(yīng)用對(duì)象。使用者的節(jié)點(diǎn)軟件應(yīng)用程序?qū)嶋H上就是對(duì)ZigBee 協(xié)議棧交替的對(duì)外圍部件和處理器進(jìn)行操作。為了能實(shí)現(xiàn)此目標(biāo),應(yīng)用層在ZigBee 協(xié)議棧的基礎(chǔ)上實(shí)現(xiàn)了業(yè)務(wù)操作系統(tǒng)調(diào)用用戶程序所用的函數(shù)接口。
3.5 節(jié)點(diǎn)軟件設(shè)計(jì)
節(jié)點(diǎn)軟件實(shí)現(xiàn)主要是對(duì)系統(tǒng)的一系列初始化通過(guò)調(diào)用一些基本的接口函數(shù)完成,并實(shí)現(xiàn)相應(yīng)的協(xié)議層服務(wù)。協(xié)議層既要實(shí)現(xiàn)802.15.4 的MAC和PHY層協(xié)議,又要提供ZigBee 網(wǎng)絡(luò)層協(xié)議,并為應(yīng)用層提供服務(wù)。應(yīng)用層則完成函數(shù)接口調(diào)用協(xié)議層所提供的服務(wù),實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)的管理。這里每個(gè)節(jié)點(diǎn)都安裝有TinyOS操作系統(tǒng),為用戶提供一個(gè)良好的接口。將燒寫好固件程序的節(jié)點(diǎn)插上傳感板,并在空間位置布置完成后,打開節(jié)點(diǎn)模塊的電源開關(guān),從而將燒寫好程序的基站節(jié)點(diǎn)接入嵌入式網(wǎng)關(guān)。同時(shí),設(shè)置工作模式,選擇對(duì)應(yīng)的傳感板型號(hào)、數(shù)據(jù)庫(kù)參數(shù)、網(wǎng)關(guān)等。參數(shù)設(shè)置正確之后,應(yīng)用基于最小功耗的原則開發(fā)無(wú)線傳感網(wǎng)的路由選擇算法,因?yàn)槊總€(gè)節(jié)點(diǎn)的組網(wǎng)鏈路都是根據(jù)功耗狀態(tài)不同動(dòng)態(tài)變化的,所以各節(jié)點(diǎn)采集該點(diǎn)空間位置的模擬信息經(jīng)過(guò)處理后發(fā)送到基站供終端平臺(tái)查看。
4 嵌入式網(wǎng)關(guān)
嵌入式網(wǎng)關(guān)是整個(gè)系統(tǒng)的核心部分,在系統(tǒng)中發(fā)揮著至關(guān)重要的作用。硬件采用基于Intel PXA270處理器的EEliod Evluation開發(fā)板,并采用專業(yè)化的處理器復(fù)位芯片和內(nèi)核電源芯片來(lái)保證系統(tǒng)運(yùn)行穩(wěn)定。
4.1 網(wǎng)關(guān)系統(tǒng)平臺(tái)設(shè)計(jì)
Win CE嵌入式軟件基于硬件電路和操作系統(tǒng)進(jìn)行開發(fā),由于嵌入式系統(tǒng)裁剪靈活,對(duì)應(yīng)的硬件也是根據(jù)使用者需求的不同進(jìn)行選擇,在硬件設(shè)計(jì)完成之后確定硬件平臺(tái)對(duì)應(yīng)的板級(jí)支持包,再通過(guò)Platform Builder軟件進(jìn)行操作系統(tǒng)編譯,根據(jù)實(shí)際需求添加系統(tǒng)配置文件及相關(guān)組件,將編譯好的鏡像文件燒寫到PXA270處理器上,從而搭建完成嵌入式系統(tǒng)的硬件、軟件平臺(tái),之后就根據(jù)系統(tǒng)功能的需求為平臺(tái)開發(fā)應(yīng)用程序,系統(tǒng)開發(fā)的最后一步即是將設(shè)計(jì)好的應(yīng)用軟件下載到嵌入式平臺(tái)上,完成軟件的發(fā)布,最終實(shí)現(xiàn)系統(tǒng)的整個(gè)設(shè)計(jì)。
4.2 網(wǎng)關(guān)軟件設(shè)計(jì)及實(shí)現(xiàn)
無(wú)線傳感網(wǎng)網(wǎng)關(guān)監(jiān)控軟件用于監(jiān)控、連接管理、存儲(chǔ)各測(cè)溫節(jié)點(diǎn)及其測(cè)得的選定區(qū)域內(nèi)環(huán)境參數(shù),并把環(huán)境參數(shù)存儲(chǔ)到數(shù)據(jù)庫(kù),用列表的方式及趨勢(shì)曲線顯示出來(lái),方便使用者進(jìn)行管理、查詢、數(shù)據(jù)讀取及軟件控制。
4.2.1 人機(jī)界面設(shè)計(jì)
人機(jī)界面開發(fā)環(huán)境應(yīng)用Visual Studio2010軟件,在軟件開發(fā)環(huán)境中使用單文檔的形式實(shí)現(xiàn)人機(jī)界面應(yīng)用程序開發(fā),創(chuàng)建一個(gè)基于CForm View的單文檔應(yīng)用程序,并添加幾個(gè)窗體和與之對(duì)應(yīng)的新視類,通過(guò)在CMain Frame類中添加控制代碼和菜單控制完成兩個(gè)動(dòng)態(tài)窗體的切換。
4.2.2 主界面設(shè)計(jì)
主界面是開機(jī)后第一個(gè)出現(xiàn)的界面,使用CEMBHID View類來(lái)實(shí)現(xiàn)主界面上的各個(gè)成員函數(shù)和數(shù)據(jù)成員,在動(dòng)態(tài)創(chuàng)建主界面上的各種功能按鈕中使用CEMBHID View::OnCreate( )函數(shù)來(lái)完成。
4.2.3 參數(shù)設(shè)置模塊設(shè)計(jì)
應(yīng)用基于CDialog類的CParameter類來(lái)實(shí)現(xiàn)參數(shù)界面中所用到的數(shù)據(jù)成員和消息響應(yīng)函數(shù),使用者通過(guò)對(duì)參數(shù)設(shè)置項(xiàng)進(jìn)行設(shè)置,等待窗口消息并調(diào)用響應(yīng)的窗口過(guò)程函數(shù)來(lái)完成相應(yīng)的處理。應(yīng)用TAB控件來(lái)實(shí)現(xiàn)分頁(yè)設(shè)計(jì),其中用到從CTabCtorl類繼承來(lái)的CTabSheet類來(lái)包括分頁(yè)操作所用到的成員函數(shù)和數(shù)據(jù)成員,并用于Tab Control的控件類,在類中有一個(gè)成員變量用來(lái)記錄各子對(duì)話框的指針CDialog * m_ pPages[ MAX.PAGE], MAXPAGE是該類所能加載標(biāo)簽的最大值。在 CTab Sheet類的AddPage方法,用于記錄所使用對(duì)話框資源的ID號(hào)和子對(duì)話框的指針。在AddPage加進(jìn)若干子對(duì)話框后, 其生成標(biāo)簽和子對(duì)話框使用CTabSheet的Show方法來(lái)實(shí)現(xiàn)。頁(yè)面就用一個(gè)類來(lái)封裝成員函數(shù)和數(shù)據(jù)成員,應(yīng)用程序退出時(shí)將使用者數(shù)據(jù)存儲(chǔ)天磁盤上,在程序重新啟動(dòng)時(shí)重新讀取使用者數(shù)據(jù),這種保存和恢復(fù)的過(guò)程就是串行化。使用微軟基礎(chǔ)類庫(kù)中特殊CSerialize類支持對(duì)象的串行化,并利用CArchive 類對(duì)象作為執(zhí)行存儲(chǔ)介質(zhì)和串行化對(duì)象兩者的媒介,執(zhí)行串行化的對(duì)象讀寫操作應(yīng)用CArchive 類對(duì)象來(lái)進(jìn)行。參數(shù)設(shè)置界面中使用的全局變量包括CDesignParams類和CGlobalV類,應(yīng)用其中的重載成員函數(shù)CGlobalV: : Serialize、CDesig nParams:: Serialize進(jìn)行實(shí)際的串行化操作。通過(guò)以上串行化技術(shù)就可以實(shí)現(xiàn)參數(shù)設(shè)置中用戶設(shè)置的參數(shù)保存,在程序退出時(shí)存儲(chǔ)這些參數(shù)設(shè)置,程序啟動(dòng)后自動(dòng)讀入。
5 結(jié)論
基于微軟Win CE 和德州儀器ZigBee技術(shù)提供的軟硬件開發(fā)環(huán)境,應(yīng)用無(wú)線單片機(jī)CC2430設(shè)計(jì)出無(wú)線通信模塊的硬件電路,并選用TI德州儀器ZigBee2006協(xié)議棧和TinyOS操作系統(tǒng)作為軟件開發(fā)基礎(chǔ)。設(shè)計(jì)出一套完整和實(shí)用化的無(wú)線監(jiān)控方案,實(shí)現(xiàn)環(huán)境數(shù)據(jù)的遠(yuǎn)程定位、信息監(jiān)測(cè)和實(shí)時(shí)采集。經(jīng)調(diào)試驗(yàn)證,網(wǎng)關(guān)平臺(tái)通過(guò)串口能正確地接收和發(fā)送數(shù)據(jù),能實(shí)現(xiàn)多個(gè)無(wú)線節(jié)點(diǎn)的定位監(jiān)控和數(shù)據(jù)傳輸,并能在網(wǎng)關(guān)平臺(tái)的上位機(jī)正確顯示傳感器節(jié)點(diǎn)數(shù)據(jù)。
參考文獻(xiàn)
[1]黃根勇.基于嵌入式與ZigBee技術(shù)無(wú)線傳感網(wǎng)設(shè)計(jì)[D].內(nèi)蒙古大學(xué),2011,05(15).
[2]瞿雷,劉盛德,胡成斌.ZigBee技術(shù)及應(yīng)用[M].北京:北京航空航天大學(xué)版社,2008.
作者簡(jiǎn)介
黃根勇(1982-),男,在讀博士,講師。主要研究方向?yàn)榍度胧较到y(tǒng)。
作者單位
江西制造職業(yè)技術(shù)學(xué)院 江西省南昌市 330095