楊衛(wèi)軍,許 哲,樊 莉
(第二炮兵工程大學(xué) 理學(xué)院,西安 710025)
當(dāng)前無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)被大量鋪設(shè),可以實(shí)時(shí)監(jiān)測(cè)、感知和采集環(huán)境數(shù)據(jù)。傳感器節(jié)點(diǎn)通過(guò)自組織的無(wú)線(xiàn)通信方式,相互傳遞信息,協(xié)同完成特定功能[1-2]。由于節(jié)點(diǎn)能量有限,網(wǎng)絡(luò)各節(jié)點(diǎn)要求低能耗[3-4],而持續(xù)無(wú)線(xiàn)發(fā)射、無(wú)線(xiàn)通信和系統(tǒng)運(yùn)行將會(huì)有比較大的能耗。因此,必須設(shè)計(jì)合理的分簇拓?fù)浣Y(jié)構(gòu),減少整個(gè)網(wǎng)絡(luò)數(shù)據(jù)通信量,降低能量消耗。設(shè)計(jì)的分簇網(wǎng)絡(luò)結(jié)構(gòu)是否合理,除了進(jìn)行工具軟件仿真驗(yàn)證之外,也必須建立實(shí)際的實(shí)驗(yàn)系統(tǒng),通過(guò)網(wǎng)絡(luò)的實(shí)際運(yùn)行考察結(jié)構(gòu)和算法的優(yōu)缺點(diǎn)。本文介紹了針對(duì)設(shè)計(jì)分簇網(wǎng)絡(luò)結(jié)構(gòu)和算法建立的實(shí)驗(yàn)系統(tǒng)的通信協(xié)議和節(jié)點(diǎn)硬件、主機(jī)軟件實(shí)現(xiàn)方式。
在無(wú)線(xiàn)網(wǎng)絡(luò)系統(tǒng)中一般采用分簇網(wǎng)絡(luò)結(jié)構(gòu),在該結(jié)構(gòu)中每個(gè)簇由一個(gè)簇頭節(jié)點(diǎn)和多個(gè)簇葉節(jié)點(diǎn)組成,簇頭節(jié)點(diǎn)負(fù)責(zé)簇間數(shù)據(jù)的轉(zhuǎn)發(fā)、協(xié)調(diào)和管理,使簇內(nèi)各節(jié)點(diǎn)合理工作。依據(jù)所采用的分簇算法,簇頭可以預(yù)先指定,也可以由網(wǎng)絡(luò)按照分簇算法自動(dòng)選舉產(chǎn)生。實(shí)驗(yàn)系統(tǒng)中簇頭節(jié)點(diǎn)將數(shù)據(jù)傳輸?shù)街鳈C(jī)節(jié)點(diǎn),主機(jī)節(jié)點(diǎn)進(jìn)行實(shí)時(shí)計(jì)算網(wǎng)絡(luò)能量消耗、繪制數(shù)據(jù)傳輸路由和簇頭節(jié)點(diǎn)分布,如圖1所示。為分析分簇網(wǎng)絡(luò)的性能和算法的合理性,實(shí)驗(yàn)系統(tǒng)重點(diǎn)對(duì)四點(diǎn)進(jìn)行分析。
圖1 分簇網(wǎng)絡(luò)結(jié)構(gòu)
傳感器節(jié)點(diǎn)采集數(shù)據(jù)之后以多跳中繼方式將數(shù)據(jù)傳送到簇頭節(jié)點(diǎn),簇頭節(jié)點(diǎn)將收集到的數(shù)據(jù)傳送至主機(jī)節(jié)點(diǎn)進(jìn)行處理。因此,建立合理的簇分布,均衡簇的大小,使簇頭節(jié)點(diǎn)能合理完成通信任務(wù),不至于負(fù)擔(dān)過(guò)重。
由于節(jié)點(diǎn)的分布范圍較廣,簇頭節(jié)點(diǎn)作為路由和轉(zhuǎn)發(fā)節(jié)點(diǎn),其通信必須能夠覆蓋整個(gè)網(wǎng)絡(luò)。
網(wǎng)絡(luò)動(dòng)態(tài)性強(qiáng),因?yàn)閭鞲衅鞴?jié)點(diǎn)出現(xiàn)故障或失效、無(wú)線(xiàn)通信鏈路帶寬變化或者節(jié)點(diǎn)移動(dòng)性、新節(jié)點(diǎn)加入,都會(huì)導(dǎo)致網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)發(fā)生變化。
網(wǎng)絡(luò)中的簇頭節(jié)點(diǎn)由于承擔(dān)較多的通信任務(wù),所以能量消耗較大。因此,必須實(shí)時(shí)衡量網(wǎng)絡(luò)的能量消耗,根據(jù)節(jié)點(diǎn)的現(xiàn)有電池能量合理切換節(jié)點(diǎn),均衡整個(gè)網(wǎng)絡(luò)的能量消耗。
實(shí)驗(yàn)系統(tǒng)由三個(gè)簇頭節(jié)點(diǎn)和三個(gè)簇葉節(jié)點(diǎn)組成。
通信報(bào)文對(duì)通信過(guò)程和節(jié)點(diǎn)通信處理時(shí)間進(jìn)行記錄,并按分簇方式將數(shù)據(jù)傳輸?shù)街鳈C(jī)節(jié)點(diǎn),數(shù)據(jù)報(bào)文包括數(shù)據(jù)傳輸路徑、節(jié)點(diǎn)能量消耗、簇頭和簇葉信息,應(yīng)用層數(shù)據(jù)傳輸協(xié)議的數(shù)據(jù)報(bào)文格式見(jiàn)表1。所有報(bào)文均采用累加-取反-校驗(yàn)和方式,即從報(bào)文頭到有效數(shù)據(jù)域的末字節(jié)按字節(jié)算術(shù)累加,拋棄高位,只保留最后單字節(jié),將單字節(jié)取反作為校驗(yàn)和。
表1 數(shù)據(jù)報(bào)文基本格式
網(wǎng)絡(luò)節(jié)點(diǎn)由主控制器、無(wú)線(xiàn)通信模塊、A/D轉(zhuǎn)換器、傳感器構(gòu)成。節(jié)點(diǎn)硬件結(jié)構(gòu)如圖2所示。
主控制器采用TI德州儀器生產(chǎn)的16位RISC超低功耗混合型微控制器MSP430單片機(jī)芯片,主程序運(yùn)行在嵌入式操作系統(tǒng)上,完成傳感數(shù)據(jù)獲取、設(shè)備狀態(tài)控制、任務(wù)調(diào)度、能量計(jì)算、通信協(xié)議。
圖2 節(jié)點(diǎn)硬件結(jié)構(gòu)
無(wú)線(xiàn)通信模塊采用CC2420芯片,CC2420是支持IEEE802.15.4標(biāo)準(zhǔn)的2.4 GHz有源RF芯片,支持?jǐn)?shù)據(jù)傳輸速率250 Kbit/s,有效傳輸距離(視距直通)不小于50 m,功耗低,并可根據(jù)需要進(jìn)行功率調(diào)整。
電源管理芯片采用TPS60210,是由德州儀器生產(chǎn)3.3 V具有低功耗管理能力的線(xiàn)性穩(wěn)壓芯片,集成電池電量監(jiān)測(cè)功能。工作電壓:輸入1.8~3.6 V;工作溫度范圍-40℃~+85℃。能夠有效地管理相關(guān)功能元器件,并延長(zhǎng)節(jié)點(diǎn)的使用時(shí)間。
而傳感器根據(jù)需要可選用溫度、濕度、壓力、熱量等的傳感器。
節(jié)點(diǎn)采用動(dòng)態(tài)功耗管理(Dynamic Power Management,DPM),根據(jù)工作負(fù)載的變化情況將系統(tǒng)中不再使用的組件轉(zhuǎn)入低功耗模式或者關(guān)閉[5]。記錄各節(jié)點(diǎn)各模塊的不同狀態(tài)持續(xù)時(shí)間,特別是CPU和無(wú)線(xiàn)芯片的工作狀態(tài),組成能量消耗數(shù)據(jù),以發(fā)送給主機(jī)節(jié)點(diǎn)。
主機(jī)與無(wú)線(xiàn)模塊通過(guò)串口連接,主機(jī)軟件采用Visaul C++開(kāi)發(fā),通過(guò)串口實(shí)時(shí)接收數(shù)據(jù),依據(jù)數(shù)據(jù)繪制節(jié)點(diǎn)路徑和節(jié)點(diǎn)能量消耗。在軟件系統(tǒng)中應(yīng)用了多線(xiàn)程技術(shù),主要由主線(xiàn)程、無(wú)線(xiàn)數(shù)據(jù)接收線(xiàn)程、顯示線(xiàn)程組成。在系統(tǒng)啟動(dòng)時(shí)創(chuàng)建主線(xiàn)程,主線(xiàn)程響應(yīng)用戶(hù)的菜單欄、工具欄功能選擇。無(wú)線(xiàn)數(shù)據(jù)接收線(xiàn)程完成無(wú)線(xiàn)節(jié)點(diǎn)通過(guò)串口發(fā)送來(lái)的數(shù)據(jù),在運(yùn)行中監(jiān)測(cè)到串口有數(shù)據(jù)、流控制事件或其他串口事件后,接收數(shù)據(jù)到字節(jié)數(shù)組中,并檢查是否為一個(gè)完整的數(shù)據(jù)包。如為完整的數(shù)據(jù)包,就以消息方式通知主線(xiàn)程。主線(xiàn)程對(duì)數(shù)據(jù)包進(jìn)行CRC檢查,檢測(cè)接收的當(dāng)前幀號(hào),判斷是否丟失數(shù)據(jù),并形成返回給無(wú)線(xiàn)節(jié)點(diǎn)的應(yīng)答幀。如正確,經(jīng)格式轉(zhuǎn)換放入浮點(diǎn)數(shù)組中,通知顯示線(xiàn)程實(shí)時(shí)繪圖,完成一個(gè)數(shù)據(jù)接收過(guò)程。節(jié)點(diǎn)能量消耗根據(jù)發(fā)送的報(bào)文長(zhǎng)度確定,節(jié)點(diǎn)除發(fā)射時(shí)間外處于休眠狀態(tài),減少能量消耗。主機(jī)節(jié)點(diǎn)數(shù)據(jù)接收流程如圖3所示。
圖3 主機(jī)節(jié)點(diǎn)數(shù)據(jù)接收流程
在該實(shí)驗(yàn)系統(tǒng)上可進(jìn)行分簇算法驗(yàn)證、通信報(bào)文設(shè)計(jì)、路由算法驗(yàn)證、網(wǎng)絡(luò)時(shí)間同步等實(shí)驗(yàn)項(xiàng)目。實(shí)踐證明效果良好。
[1] Heinzelman W.Application-specific Protocol Architectures for Wireless Networks[D].USA:Massachusetts Inst.,2000.
[2]孫利民,李建中,陳渝.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[3]張智廣,郭忠文.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中基于分簇的自適應(yīng)介質(zhì)訪(fǎng)問(wèn)控制協(xié)議[J].計(jì)算機(jī)應(yīng)用,2006(11):2528-2530.
[4]姜華,袁曉兵.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)分簇網(wǎng)絡(luò)中MAC協(xié)議的研究[J].計(jì)算機(jī)應(yīng)用研究,2007(3):265-266.
[5]王曉東.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)節(jié)能算法研究[D].杭州:浙江大學(xué),2007.