劉 明,董朋濤,王敬華,楊三平
(華中師范大學計算機學院,湖北武漢 430079)
無線傳感器網絡(wireless sensor networks,WSN)技術的飛速發展及其在各領域的成功應用,為人們學習WSN 技術提供新的動力。WSN 技術的優勢主要體現在:網絡節點占用空間小,網絡部署不會對周圍環境造成太大影響;網絡節點數量大,具有多點覆蓋、準確性高的特點;節點本身具有一定的存儲和通信能力,節點間可進行協同監測[1]。
WSN 用于城市環境監測[2],可以實現危險區域無人連續監測、每個監測點多個節點監測等目標。WSN 應用于室內照明智能控制系統[3],有效彌補了傳統照明管理落后、浪費能源、舒適性差及布線復雜等缺陷。WSN 應用于智能樓宇環境監測[4],可實現通信可靠、節點功耗低及能長時間工作的監測系統。傳感器網絡的應用越來越廣泛,一套實用的WSN 實驗系統可以幫助學生快速掌握傳感器網絡技術。
組建傳感器網絡的技術很多,利用移動電話網(GSM,GPRS)組建則成本較高且數據采集精度較差、能耗較大、更換頻繁,且不適合長期監測[5]。利用WIFI組建則功耗大,一般需用外接電源,組網不方便,適用范圍小[6]。利用藍牙技術組建則顯得太復雜,而且有功耗大、距離近、組網規模小等缺點[7]。
ZigBee技術是一種近距離、低復雜度、低功耗、低速率、低成本的雙向無線通信技術。主要用于距離短、功耗低且傳輸速率不高的網絡節點之間進行數據傳輸。WSN 實驗系統要求通信距離短、布設方便、成本低、工作時間長、自動組網和自動采集環境數據。因此ZigBee技術適用于WSN 實驗系統。實驗應用表明,本文設計的WSN 實驗系統可以滿足傳感器網絡課程實驗教學的需要。
WSN 實驗系統主要組成見圖1。上位機控制中心收集、存儲和處理經ZigBee網絡傳輸的傳感器感知的環境數據及其他節點信息,響應ZigBee網絡節點請求和發送控制網絡節點的命令;遠程客戶端和PDA 終端可以通過互聯網訪問控制中心;ZigBee匯聚節點用于組網和管理網絡、響應與轉發控制中心命令和收集信息;若干ZigBee傳感節點加入網絡后,傳輸傳感器感知的環境數據及其他節點信息,將采集到的信息以多跳路由的方式發送到控制中心、響應ZigBee匯聚節點轉發來的控制中心的命令和根據需要轉發信息。

圖1 WSN 實驗系統體系架構
傳感器網絡實驗系統主要通過ZigBee無線通信網絡來實現信息的傳遞。
1.2.1 傳感節點
傳感節點的協議棧運行在TI芯片CC2530,這是一款真正針對IEEE802.15.4、ZigBee和智能能源應用的片上系統解決方案[8]。CC2530 還集成了完全集成的高性能射頻收發器,帶有8051MCU、8 KB RAM、256KB 閃存以及強勁的外設支持功能。傳感節點的傳感器模塊包括各種感知環境數據的傳感器[9]。能量供應模塊有電池供電和外接5V 電源供電2 種方式。圖2 為傳感節點的結構框圖和實物圖。

圖2 傳感節點框圖和實物圖
本系統使用TI的Z-Stack2007 協議棧[10-11],TI公司推出的Z-Stack是半開源的C 語言協議棧,具有很好的可移植性和很好的程序可讀性。Z-Stack協議棧已經實現了組網、路由等功能。根據系統的設計目標,需要添加應用代碼。監控節點程序一般主要實現環境數據的采集和發送,及與匯聚節點交互等功能;根據安放的位置,監控節點還可以成為一個路由節點,實現消息的中繼轉發。學生在做實驗時,可以在系統提供的程序代碼基礎上,編寫自己的程序以實現相應功能,比如編寫代碼以實現傳感節點周期性地向匯聚節點傳送感知的環境溫濕度信息。圖3為傳感節點周期性感知環境溫濕度,當溫度超出閾值時向匯聚節點發送報警信息的程序代碼的工作流程圖。

圖3 傳感節點工作流程圖
當傳感節點上電后,首先經歷一系列初始化工作,調用ZDO 層的初始化設備函數:
ZDOInitDevice(zgStartDelay);
然后觸發網絡初始化函數:
ZDApp_NetworkInit(extendedDelay);
設置網絡初始化事件:osal_set_event();
調用NWK 層發現網絡請求函數:
NLME_NetworkDiscoveryRequest(zgDefaultChannelList,zgDefaultStartingScanDuration);
最終ZDO 層任務事件處理函數將執行處理加入網絡函數:ZDApp_ProcessNetworkJoin()。
加入網絡后,傳感器周期地采樣和分析環境溫度信息,若超出閾值,調用osal_set_event()函數觸發GENERICAPP_SEND_MSG_EVT 事件發生,系統響應中斷,讀取數據并通過多跳路由向匯聚節點發送報告。匯聚節點收到報告后必須返回一個ACK(響應)包來響應報告信息,并通過串口向控制中心報告。發送信息的傳感節點必須通過收到ACK 包來驗證事件信息已經發送到匯聚節點。
1.2.2 ZigBee匯聚節點
ZigBee網絡中匯聚節點要完成網絡的維護、數據的上傳、命令的下達、網絡監測和管理等功能,所以需要長時間地不間斷運行,同時由于外圍設備較多,匯聚節點的功耗較大,因而匯聚節點最好能夠工作在有外接電源的條件下,這樣才能保證系統長時間連續工作。圖4為匯聚節點結構框圖和實物圖。

圖4 匯聚節點框圖和實物圖
匯聚節點通過串口和控制中心進行通信。匯聚節點與控制中心通信要建立通信機制,匯聚節點是網絡控制的主要對象,匯聚節點的程序一方面負責網絡的配置和管理,包括定義通信信道、網絡標識符(PAN ID),配置網絡的Profile,響應節點加入網絡的請求,為其他節點分配網絡地址、維護路由表等;另一方面還接收各傳感節點發來的數據,并將其進行匯合整理后傳給控制中心。
學生可以用匯聚節點做一些有關CC2530芯片的單片機實驗,實驗結果可以通過串口傳送給PC 機。學生做WSN 實驗時,匯聚節點要和傳感節點配合使用,分別編寫匯聚節點和傳感節點的應用代碼,為了能使它們協同工作,需要在應用層建立它們的通信機制,比如定義統一的命令和數據格式,以便網絡節點接收到數據包時可以正確識別。做監測環境溫度實驗時,傳感節點周期性感知環境溫度,當溫度超過閾值時,傳感節點向匯聚節點發送報警信息;匯聚節點響應傳感節點,并把報警信息傳送給控制中心。圖5為匯聚節點程序的工作流程圖。
當匯聚節點上電后,ZDO 層首先經歷一系列的初始化工作,然后調用ZDO 層的初始化設備函數:
ZDOInitDevice(0);
最終觸發網絡初始化函數:
ZDApp_NetworkInit(extendedDelay);
設置網絡初始化事件:osal_set_event();
ZDO 層的任務事件處理函數對網絡初始化事件進行處理,即啟動該設備:
ZDO_StartDevice();
調用NWK 層網絡形成請求函數:
NLME_NetworkFormationRequest()。
匯聚節點初始化網絡之后,處理其他節點加入網絡事件,接收控制中心經過串口發送過來的命令,接收傳感節點發送來的報警信息,向傳感節點反饋相應信息(ACK),向傳感節點轉發控制中心的控制命令。
控制中心軟件主要用于顯示實驗結果,主要包括數據接收、解析、顯示與管理,向學生發出報警信息,向網絡節點發送控制命令等幾個功能模塊。匯聚節點收集各個傳感節點的信息,數據融合整理后通過串口發送給控制中心PC機[12]。圖6為控制中心軟件功能模塊組成。

圖6 控制中心軟件功能模塊
可以利用傳感節點和匯聚節點構成一個無線傳感器網絡實驗系統。圖7所示的實驗系統用于實時監測室內環境溫度和濕度。

圖7 溫度和濕度實時監測實驗
圖8直觀顯示4個節點組成傳感器網絡的拓撲結構,以及監測節點采集和傳送來的溫度和濕度等實驗信息。

圖8 傳感器網絡拓撲及數據監測界面
圖9記錄一個6 m×6 m 的實驗室環境內24h溫、濕度的變化。學生可以從PC 機顯示的實驗曲線上,認識傳感器網絡實驗系統實時測得的室內溫濕度變化情況。

圖9 24h內溫濕度變化曲線
WSN 在工業生產和日常生活中有著廣泛的應用前景,ZigBee技術正是因網絡通信應用的需要而產生。目前針對ZigBee技術的應用和研究蓬勃發展,未來有廣闊的發展前景。本文設計的WSN 實驗系統可以幫助學生深入學習傳感器網絡技術,學生可以直觀地搭建網絡和觀測實驗數據。實踐表明,本系統具有可靠性高、實用性強等特點,為傳感器網絡實驗提供了一種有效的解決方案。
(
)
[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]饒云華,代莉,趙存成,等.基于無線傳感器網絡的環境監測系統[J].武漢大學學報:理學版,2006,52(3):345-348.
[3]周曉偉,蔡建平,鄭增威,等.新型室內照明智能控制系統的研究與實現[J].計算機應用研究,2009,26(8):2977-2981.
[4]趙文靜,秦會斌,吳建峰,等.基于ZigBee技術的智能樓宇環境監測系統設計[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的無線測控系統設計與實現[J].電測與儀表,2011,48(7):81-83.
[7]伍春,陳雪冬,江虹,等.基于藍牙的無線傳感器網絡節點設計與實現[J].計算機應用與軟件,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技術與應用:CC2430設計、開發與實踐[M].北京:國防工業出版社,2010.
[10]李文仲,段朝玉.ZigBee2007/PRO 協議棧實驗與實踐[M].北京:北京航空航天大學出版社,2009.
[11]李軍,黃嵐,王忠義.基于Z-Stack協議棧的WSN 能量管理策略[J].計算機工程,2011,37(7):121-124.
[12]王慧斌,肖賢建,嚴錫君.無線傳感器監測網絡信息處理技術[M].北京:國防工業出版社,2010.