劉 明,董朋濤,王敬華,楊三平
(華中師范大學(xué)計(jì)算機(jī)學(xué)院,湖北武漢 430079)
無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSN)技術(shù)的飛速發(fā)展及其在各領(lǐng)域的成功應(yīng)用,為人們學(xué)習(xí)WSN 技術(shù)提供新的動(dòng)力。WSN 技術(shù)的優(yōu)勢(shì)主要體現(xiàn)在:網(wǎng)絡(luò)節(jié)點(diǎn)占用空間小,網(wǎng)絡(luò)部署不會(huì)對(duì)周圍環(huán)境造成太大影響;網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量大,具有多點(diǎn)覆蓋、準(zhǔn)確性高的特點(diǎn);節(jié)點(diǎn)本身具有一定的存儲(chǔ)和通信能力,節(jié)點(diǎn)間可進(jìn)行協(xié)同監(jiān)測(cè)[1]。
WSN 用于城市環(huán)境監(jiān)測(cè)[2],可以實(shí)現(xiàn)危險(xiǎn)區(qū)域無人連續(xù)監(jiān)測(cè)、每個(gè)監(jiān)測(cè)點(diǎn)多個(gè)節(jié)點(diǎn)監(jiān)測(cè)等目標(biāo)。WSN 應(yīng)用于室內(nèi)照明智能控制系統(tǒng)[3],有效彌補(bǔ)了傳統(tǒng)照明管理落后、浪費(fèi)能源、舒適性差及布線復(fù)雜等缺陷。WSN 應(yīng)用于智能樓宇環(huán)境監(jiān)測(cè)[4],可實(shí)現(xiàn)通信可靠、節(jié)點(diǎn)功耗低及能長時(shí)間工作的監(jiān)測(cè)系統(tǒng)。傳感器網(wǎng)絡(luò)的應(yīng)用越來越廣泛,一套實(shí)用的WSN 實(shí)驗(yàn)系統(tǒng)可以幫助學(xué)生快速掌握傳感器網(wǎng)絡(luò)技術(shù)。
組建傳感器網(wǎng)絡(luò)的技術(shù)很多,利用移動(dòng)電話網(wǎng)(GSM,GPRS)組建則成本較高且數(shù)據(jù)采集精度較差、能耗較大、更換頻繁,且不適合長期監(jiān)測(cè)[5]。利用WIFI組建則功耗大,一般需用外接電源,組網(wǎng)不方便,適用范圍?。?]。利用藍(lán)牙技術(shù)組建則顯得太復(fù)雜,而且有功耗大、距離近、組網(wǎng)規(guī)模小等缺點(diǎn)[7]。
ZigBee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低速率、低成本的雙向無線通信技術(shù)。主要用于距離短、功耗低且傳輸速率不高的網(wǎng)絡(luò)節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)傳輸。WSN 實(shí)驗(yàn)系統(tǒng)要求通信距離短、布設(shè)方便、成本低、工作時(shí)間長、自動(dòng)組網(wǎng)和自動(dòng)采集環(huán)境數(shù)據(jù)。因此ZigBee技術(shù)適用于WSN 實(shí)驗(yàn)系統(tǒng)。實(shí)驗(yàn)應(yīng)用表明,本文設(shè)計(jì)的WSN 實(shí)驗(yàn)系統(tǒng)可以滿足傳感器網(wǎng)絡(luò)課程實(shí)驗(yàn)教學(xué)的需要。
WSN 實(shí)驗(yàn)系統(tǒng)主要組成見圖1。上位機(jī)控制中心收集、存儲(chǔ)和處理經(jīng)ZigBee網(wǎng)絡(luò)傳輸?shù)膫鞲衅鞲兄沫h(huán)境數(shù)據(jù)及其他節(jié)點(diǎn)信息,響應(yīng)ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)請(qǐng)求和發(fā)送控制網(wǎng)絡(luò)節(jié)點(diǎn)的命令;遠(yuǎn)程客戶端和PDA 終端可以通過互聯(lián)網(wǎng)訪問控制中心;ZigBee匯聚節(jié)點(diǎn)用于組網(wǎng)和管理網(wǎng)絡(luò)、響應(yīng)與轉(zhuǎn)發(fā)控制中心命令和收集信息;若干ZigBee傳感節(jié)點(diǎn)加入網(wǎng)絡(luò)后,傳輸傳感器感知的環(huán)境數(shù)據(jù)及其他節(jié)點(diǎn)信息,將采集到的信息以多跳路由的方式發(fā)送到控制中心、響應(yīng)ZigBee匯聚節(jié)點(diǎn)轉(zhuǎn)發(fā)來的控制中心的命令和根據(jù)需要轉(zhuǎn)發(fā)信息。
圖1 WSN 實(shí)驗(yàn)系統(tǒng)體系架構(gòu)
傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)主要通過ZigBee無線通信網(wǎng)絡(luò)來實(shí)現(xiàn)信息的傳遞。
1.2.1 傳感節(jié)點(diǎn)
傳感節(jié)點(diǎn)的協(xié)議棧運(yùn)行在TI芯片CC2530,這是一款真正針對(duì)IEEE802.15.4、ZigBee和智能能源應(yīng)用的片上系統(tǒng)解決方案[8]。CC2530 還集成了完全集成的高性能射頻收發(fā)器,帶有8051MCU、8 KB RAM、256KB 閃存以及強(qiáng)勁的外設(shè)支持功能。傳感節(jié)點(diǎn)的傳感器模塊包括各種感知環(huán)境數(shù)據(jù)的傳感器[9]。能量供應(yīng)模塊有電池供電和外接5V 電源供電2 種方式。圖2 為傳感節(jié)點(diǎn)的結(jié)構(gòu)框圖和實(shí)物圖。
圖2 傳感節(jié)點(diǎn)框圖和實(shí)物圖
本系統(tǒng)使用TI的Z-Stack2007 協(xié)議棧[10-11],TI公司推出的Z-Stack是半開源的C 語言協(xié)議棧,具有很好的可移植性和很好的程序可讀性。Z-Stack協(xié)議棧已經(jīng)實(shí)現(xiàn)了組網(wǎng)、路由等功能。根據(jù)系統(tǒng)的設(shè)計(jì)目標(biāo),需要添加應(yīng)用代碼。監(jiān)控節(jié)點(diǎn)程序一般主要實(shí)現(xiàn)環(huán)境數(shù)據(jù)的采集和發(fā)送,及與匯聚節(jié)點(diǎn)交互等功能;根據(jù)安放的位置,監(jiān)控節(jié)點(diǎn)還可以成為一個(gè)路由節(jié)點(diǎn),實(shí)現(xiàn)消息的中繼轉(zhuǎn)發(fā)。學(xué)生在做實(shí)驗(yàn)時(shí),可以在系統(tǒng)提供的程序代碼基礎(chǔ)上,編寫自己的程序以實(shí)現(xiàn)相應(yīng)功能,比如編寫代碼以實(shí)現(xiàn)傳感節(jié)點(diǎn)周期性地向匯聚節(jié)點(diǎn)傳送感知的環(huán)境溫濕度信息。圖3為傳感節(jié)點(diǎn)周期性感知環(huán)境溫濕度,當(dāng)溫度超出閾值時(shí)向匯聚節(jié)點(diǎn)發(fā)送報(bào)警信息的程序代碼的工作流程圖。
圖3 傳感節(jié)點(diǎn)工作流程圖
當(dāng)傳感節(jié)點(diǎn)上電后,首先經(jīng)歷一系列初始化工作,調(diào)用ZDO 層的初始化設(shè)備函數(shù):
ZDOInitDevice(zgStartDelay);
然后觸發(fā)網(wǎng)絡(luò)初始化函數(shù):
ZDApp_NetworkInit(extendedDelay);
設(shè)置網(wǎng)絡(luò)初始化事件:osal_set_event();
調(diào)用NWK 層發(fā)現(xiàn)網(wǎng)絡(luò)請(qǐng)求函數(shù):
NLME_NetworkDiscoveryRequest(zgDefaultChannelList,zgDefaultStartingScanDuration);
最終ZDO 層任務(wù)事件處理函數(shù)將執(zhí)行處理加入網(wǎng)絡(luò)函數(shù):ZDApp_ProcessNetworkJoin()。
加入網(wǎng)絡(luò)后,傳感器周期地采樣和分析環(huán)境溫度信息,若超出閾值,調(diào)用osal_set_event()函數(shù)觸發(fā)GENERICAPP_SEND_M(jìn)SG_EVT 事件發(fā)生,系統(tǒng)響應(yīng)中斷,讀取數(shù)據(jù)并通過多跳路由向匯聚節(jié)點(diǎn)發(fā)送報(bào)告。匯聚節(jié)點(diǎn)收到報(bào)告后必須返回一個(gè)ACK(響應(yīng))包來響應(yīng)報(bào)告信息,并通過串口向控制中心報(bào)告。發(fā)送信息的傳感節(jié)點(diǎn)必須通過收到ACK 包來驗(yàn)證事件信息已經(jīng)發(fā)送到匯聚節(jié)點(diǎn)。
1.2.2 ZigBee匯聚節(jié)點(diǎn)
ZigBee網(wǎng)絡(luò)中匯聚節(jié)點(diǎn)要完成網(wǎng)絡(luò)的維護(hù)、數(shù)據(jù)的上傳、命令的下達(dá)、網(wǎng)絡(luò)監(jiān)測(cè)和管理等功能,所以需要長時(shí)間地不間斷運(yùn)行,同時(shí)由于外圍設(shè)備較多,匯聚節(jié)點(diǎn)的功耗較大,因而匯聚節(jié)點(diǎn)最好能夠工作在有外接電源的條件下,這樣才能保證系統(tǒng)長時(shí)間連續(xù)工作。圖4為匯聚節(jié)點(diǎn)結(jié)構(gòu)框圖和實(shí)物圖。
圖4 匯聚節(jié)點(diǎn)框圖和實(shí)物圖
匯聚節(jié)點(diǎn)通過串口和控制中心進(jìn)行通信。匯聚節(jié)點(diǎn)與控制中心通信要建立通信機(jī)制,匯聚節(jié)點(diǎn)是網(wǎng)絡(luò)控制的主要對(duì)象,匯聚節(jié)點(diǎn)的程序一方面負(fù)責(zé)網(wǎng)絡(luò)的配置和管理,包括定義通信信道、網(wǎng)絡(luò)標(biāo)識(shí)符(PAN ID),配置網(wǎng)絡(luò)的Profile,響應(yīng)節(jié)點(diǎn)加入網(wǎng)絡(luò)的請(qǐng)求,為其他節(jié)點(diǎn)分配網(wǎng)絡(luò)地址、維護(hù)路由表等;另一方面還接收各傳感節(jié)點(diǎn)發(fā)來的數(shù)據(jù),并將其進(jìn)行匯合整理后傳給控制中心。
學(xué)生可以用匯聚節(jié)點(diǎn)做一些有關(guān)CC2530芯片的單片機(jī)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果可以通過串口傳送給PC 機(jī)。學(xué)生做WSN 實(shí)驗(yàn)時(shí),匯聚節(jié)點(diǎn)要和傳感節(jié)點(diǎn)配合使用,分別編寫匯聚節(jié)點(diǎn)和傳感節(jié)點(diǎn)的應(yīng)用代碼,為了能使它們協(xié)同工作,需要在應(yīng)用層建立它們的通信機(jī)制,比如定義統(tǒng)一的命令和數(shù)據(jù)格式,以便網(wǎng)絡(luò)節(jié)點(diǎn)接收到數(shù)據(jù)包時(shí)可以正確識(shí)別。做監(jiān)測(cè)環(huán)境溫度實(shí)驗(yàn)時(shí),傳感節(jié)點(diǎn)周期性感知環(huán)境溫度,當(dāng)溫度超過閾值時(shí),傳感節(jié)點(diǎn)向匯聚節(jié)點(diǎn)發(fā)送報(bào)警信息;匯聚節(jié)點(diǎn)響應(yīng)傳感節(jié)點(diǎn),并把報(bào)警信息傳送給控制中心。圖5為匯聚節(jié)點(diǎn)程序的工作流程圖。
當(dāng)匯聚節(jié)點(diǎn)上電后,ZDO 層首先經(jīng)歷一系列的初始化工作,然后調(diào)用ZDO 層的初始化設(shè)備函數(shù):
ZDOInitDevice(0);
最終觸發(fā)網(wǎng)絡(luò)初始化函數(shù):
ZDApp_NetworkInit(extendedDelay);
設(shè)置網(wǎng)絡(luò)初始化事件:osal_set_event();
ZDO 層的任務(wù)事件處理函數(shù)對(duì)網(wǎng)絡(luò)初始化事件進(jìn)行處理,即啟動(dòng)該設(shè)備:
ZDO_StartDevice();
調(diào)用NWK 層網(wǎng)絡(luò)形成請(qǐng)求函數(shù):
NLME_NetworkFormationRequest()。
匯聚節(jié)點(diǎn)初始化網(wǎng)絡(luò)之后,處理其他節(jié)點(diǎn)加入網(wǎng)絡(luò)事件,接收控制中心經(jīng)過串口發(fā)送過來的命令,接收傳感節(jié)點(diǎn)發(fā)送來的報(bào)警信息,向傳感節(jié)點(diǎn)反饋相應(yīng)信息(ACK),向傳感節(jié)點(diǎn)轉(zhuǎn)發(fā)控制中心的控制命令。
控制中心軟件主要用于顯示實(shí)驗(yàn)結(jié)果,主要包括數(shù)據(jù)接收、解析、顯示與管理,向?qū)W生發(fā)出報(bào)警信息,向網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送控制命令等幾個(gè)功能模塊。匯聚節(jié)點(diǎn)收集各個(gè)傳感節(jié)點(diǎn)的信息,數(shù)據(jù)融合整理后通過串口發(fā)送給控制中心PC機(jī)[12]。圖6為控制中心軟件功能模塊組成。
圖6 控制中心軟件功能模塊
可以利用傳感節(jié)點(diǎn)和匯聚節(jié)點(diǎn)構(gòu)成一個(gè)無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)。圖7所示的實(shí)驗(yàn)系統(tǒng)用于實(shí)時(shí)監(jiān)測(cè)室內(nèi)環(huán)境溫度和濕度。
圖7 溫度和濕度實(shí)時(shí)監(jiān)測(cè)實(shí)驗(yàn)
圖8直觀顯示4個(gè)節(jié)點(diǎn)組成傳感器網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),以及監(jiān)測(cè)節(jié)點(diǎn)采集和傳送來的溫度和濕度等實(shí)驗(yàn)信息。
圖8 傳感器網(wǎng)絡(luò)拓?fù)浼皵?shù)據(jù)監(jiān)測(cè)界面
圖9記錄一個(gè)6 m×6 m 的實(shí)驗(yàn)室環(huán)境內(nèi)24h溫、濕度的變化。學(xué)生可以從PC 機(jī)顯示的實(shí)驗(yàn)曲線上,認(rèn)識(shí)傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)實(shí)時(shí)測(cè)得的室內(nèi)溫濕度變化情況。
圖9 24h內(nèi)溫濕度變化曲線
WSN 在工業(yè)生產(chǎn)和日常生活中有著廣泛的應(yīng)用前景,ZigBee技術(shù)正是因網(wǎng)絡(luò)通信應(yīng)用的需要而產(chǎn)生。目前針對(duì)ZigBee技術(shù)的應(yīng)用和研究蓬勃發(fā)展,未來有廣闊的發(fā)展前景。本文設(shè)計(jì)的WSN 實(shí)驗(yàn)系統(tǒng)可以幫助學(xué)生深入學(xué)習(xí)傳感器網(wǎng)絡(luò)技術(shù),學(xué)生可以直觀地搭建網(wǎng)絡(luò)和觀測(cè)實(shí)驗(yàn)數(shù)據(jù)。實(shí)踐表明,本系統(tǒng)具有可靠性高、實(shí)用性強(qiáng)等特點(diǎn),為傳感器網(wǎng)絡(luò)實(shí)驗(yàn)提供了一種有效的解決方案。
(
)
[1]Akyildiz I F,Su W,Sankarasubramaniamy,et al.A survey on wireless sensor networks:a survey[J].Computer Networks,2002,40(4):393-422.
[2]饒?jiān)迫A,代莉,趙存成,等.基于無線傳感器網(wǎng)絡(luò)的環(huán)境監(jiān)測(cè)系統(tǒng)[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2006,52(3):345-348.
[3]周曉偉,蔡建平,鄭增威,等.新型室內(nèi)照明智能控制系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2009,26(8):2977-2981.
[4]趙文靜,秦會(huì)斌,吳建峰,等.基于ZigBee技術(shù)的智能樓宇環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].機(jī)電工程,2010,27(8):114-117.
[5]Tubaishat M,Madria S.Sensor Networks:an Overview[J].IEEE Potentials,2003,22(2):20-23.
[6]曾磊,張海峰,侯維巖.基于WIFI的無線測(cè)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電測(cè)與儀表,2011,48(7):81-83.
[7]伍春,陳雪冬,江虹,等.基于藍(lán)牙的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(4):74-76.
[8]Chipcon.The Data Sheet of CC2530[EB/OL].[2012-05-17].http://www.ti.com/product/CC2530.
[9]郭淵博,楊奎武,趙儉,等.ZigBee技術(shù)與應(yīng)用:CC2430設(shè)計(jì)、開發(fā)與實(shí)踐[M].北京:國防工業(yè)出版社,2010.
[10]李文仲,段朝玉.ZigBee2007/PRO 協(xié)議棧實(shí)驗(yàn)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2009.
[11]李軍,黃嵐,王忠義.基于Z-Stack協(xié)議棧的WSN 能量管理策略[J].計(jì)算機(jī)工程,2011,37(7):121-124.
[12]王慧斌,肖賢建,嚴(yán)錫君.無線傳感器監(jiān)測(cè)網(wǎng)絡(luò)信息處理技術(shù)[M].北京:國防工業(yè)出版社,2010.