摘 要: 以適用于環(huán)境監(jiān)測的無線傳感器網絡系統(tǒng)為對象,,設計并開發(fā)了相應的節(jié)點硬件。將μC/OS-Ⅱ實時操作系統(tǒng)移植于匯聚節(jié)點的處理器上,,并結合無線傳感器網絡匯聚節(jié)點的特性,,設計了合理的多任務調度機制。傳感節(jié)點設計了實時采集和按需采集兩種工作方式,。開發(fā)了串口通信程序,,實現(xiàn)了傳感器節(jié)點數(shù)據(jù)的實時監(jiān)控。測試結果表明,,該系統(tǒng)運行良好,。
關鍵詞: 無線傳感器網絡,;μC/OS-Ⅱ操作系統(tǒng);無線通信,;串口通信
無線傳感器網絡WSN(Wireless Sensor Network)是近年來信息科學領域一個熱門的研究方向,,它集成了無線通信技術、嵌入式技術,、傳感器技術和分布式信息處理,,能相互配合對環(huán)境或各種對象進行實時的監(jiān)測和感知,其被廣泛應用于軍事[1],、環(huán)境監(jiān)測[2],、動植物監(jiān)視[3]、智能家具[4]和健康結構監(jiān)測[5]等多個領域,。
無線傳感器網絡具有很強的應用相關性,不同的應用和需求對網絡結構和軟硬件的要求都不一樣,。很多商用的WSN系統(tǒng)存在源代碼不公開,、整個系統(tǒng)或單個節(jié)點價格過高以及對于某一具體應用適應差等問題。本文圍繞無線傳感器網絡應用的關鍵技術,,開發(fā)了一個適用于室內環(huán)境監(jiān)控的實時數(shù)據(jù)收集的無線傳感器網絡系統(tǒng),。
1 系統(tǒng)設計
在分析了幾種常見的無線傳感器網絡拓撲結構后,本文選取了分簇結構作為系統(tǒng)的拓撲結構,。與一般分簇結構不同,,采用中繼節(jié)點作為簇頭,一方面增加了網絡的傳輸距離,,另一方面由于簇頭能量消耗較快,,只要更換極少部分簇頭的能量就可以延長網絡的壽命。簇頭也可以擔任節(jié)點的任務進行數(shù)據(jù)采集,。圖1為無線傳感器網絡拓撲結構圖,。
1.1 硬件設計
在選擇節(jié)點的處理器方面,主要考慮的因素包括價格,、功耗,、開發(fā)工具成本、片內集成的RAM,、Flash及EEPROM大小等,。目前已經商用的WSN節(jié)點,如Mica,、Mica2 Dot,、T-Nodes、Fleck等,,都采用ATmega128作為CPU,,一些自行開發(fā)的節(jié)點,,參考文獻[6]、[7]也采用ATmega128,。
無線通信芯片選擇nRF24L0,,其采用2.4~2.5 GHz世界通用ISM頻段,最高數(shù)據(jù)傳輸速率可達2 Mb/s,,125頻道滿足多點通信和跳頻通信需要,,發(fā)射和接收模式消耗的電流都比較低,而且高速鏈路層完全集成在芯片上,,非常便于軟硬件的開發(fā),。
Sink節(jié)點的硬件結構如圖2虛線框部分所示。其中,,串口通信模塊負責Sink節(jié)點與計算機的連接,,將收集的數(shù)據(jù)傳送到計算機上進行顯示。
采集節(jié)點的硬件結構與圖2相似,。采用溫度傳感器AD590和Honeywell的氣體質量流量傳感器AWM3200CR分別對溫度和空氣壓差參數(shù)進行轉換,,然后采用ATmega128內的ADC將模擬信號轉成數(shù)字信號。串口模塊用于PC向節(jié)點下載程序,。
1.2 Sink節(jié)點軟件設計
?。?)通信模塊軟件
nRF24L01的數(shù)據(jù)包處理方式主要分直接收發(fā)模式、ShockBurst模式和增強型ShockBurst模式3種,。在本文中,,nRF24L01無線通信模塊都是采用增強型ShockBurst模式。根據(jù)nRF24L01在增強型ShockBurst模式下接收的步驟,,設計了匯聚節(jié)點接收程序的設計,。
為了提供從傳感器節(jié)點到匯聚節(jié)點的中繼轉發(fā),還設計了中繼節(jié)點,,利用nRF24L01工作方式和信道切換來完成收發(fā)方式的轉變,。
(2)μC/OS-Ⅱ的移植與在匯聚節(jié)點上的應用
μC/OS-Ⅱ是由LABROSSE J J編寫的一種源碼公開的嵌入式實時操作系統(tǒng),。程序大部分用C語言編寫,,帶有少量的匯編,適合小型控制系統(tǒng),,具有執(zhí)行效率高,、占用空間小、實時性能優(yōu)良及可擴展性強等特點,。本設計成功地將μC/OS-Ⅱ操作系統(tǒng)移植到ATmega128處理器上,。
移植完成后,實現(xiàn)μC/OS-Ⅱ操作系統(tǒng)在匯聚節(jié)點中的應用,。首先在main函數(shù)中初始化無線芯片,、串口,、ATmega128的SPI等,然后函數(shù)創(chuàng)建不同優(yōu)先級的任務,,最后啟動μC/OS-Ⅱ操作系統(tǒng),。由于匯聚節(jié)點要接收來自不同采集節(jié)點的數(shù)據(jù),本文設計了多任務調度機制,,分別利用不同的信道接收來自傳感器節(jié)點的數(shù)據(jù),。利用定時器和信號量機制分配時間,在一段時間內接收第一個傳感器節(jié)點的數(shù)據(jù),,然后這個任務放棄CPU使用權,,第二個任務切入,接收來自第二個傳感器節(jié)點的數(shù)據(jù),,依次循環(huán),。中斷轉發(fā)程序設計流程如圖3所示。
1.3 采集節(jié)點軟件設計
本系統(tǒng)主要設計了基于實時數(shù)據(jù)采集方式和基于按需數(shù)據(jù)采集方式兩種基于不同數(shù)據(jù)采集的方式,。在這兩種方式中,,收發(fā)的轉變由對nRF24L01工作方式的設置和信道切換來完成。
?。?)實時數(shù)據(jù)收集方式
這種方式實際上是單向上行的數(shù)據(jù)傳輸結構。具體流程如下:
?、賁ink節(jié)點和簇頭節(jié)點初始化處于等待接收狀態(tài),;
②簇內節(jié)點將數(shù)據(jù)以一定格式傳送給簇頭,;
?、鄞仡^將接收的數(shù)據(jù)合成,切換信道收發(fā)模式后,,發(fā)送給Sink,;
④Sink節(jié)點接收,,通過串口傳輸給PC處理后顯示,;
⑤簇頭再一次切換收發(fā)模式等待新的數(shù)據(jù),。
這里,,簇頭的設計涉及到無線數(shù)據(jù)的點對點收發(fā)、一對多收發(fā)以及收發(fā)模式切換的程序設計,。
?。?)按需數(shù)據(jù)收集方式
這種方式是一種雙向的數(shù)據(jù)傳輸,在PC采集節(jié)點1的信號時,,其他節(jié)點為睡眠狀態(tài),,從而節(jié)約能量,。具體流程如下:
①PC向Sink節(jié)點發(fā)送讀取命令,;
?、赟ink節(jié)點接收命令后向簇頭節(jié)點發(fā)送讀取命令,信道切換給簇頭1,;
?、鄞仡^接收到命令后將信道切換至節(jié)點1,節(jié)點1處于發(fā)送模式,;
?、芄?jié)點1進行連續(xù)采集,采樣的數(shù)據(jù)發(fā)送給簇頭1,;
?、荽仡^1收數(shù)據(jù)后轉發(fā)給Sink節(jié)點;
?、轘ink節(jié)點通過串口把數(shù)據(jù)傳送給PC機,。
2 基于LabVIEW的實時監(jiān)控程序設計
在系統(tǒng)中,Sink節(jié)點采用串口與PC相連,,采集的數(shù)據(jù)由PC實時顯示,,由于LabVIEW在串口通信和監(jiān)測數(shù)據(jù)的顯示等方面設計方便靈活,顯示直觀形象,,因此,,采用LabVIEW實現(xiàn)了串口通信和采集數(shù)據(jù)的顯示。圖4所顯示的是從兩個節(jié)點采集得到的溫度值,。經過多次測試,,該系統(tǒng)能穩(wěn)定運行,正常從各節(jié)點接收數(shù)據(jù),。
本文實現(xiàn)了一個無線傳感器網絡的軟硬件系統(tǒng),。首先進行系統(tǒng)需求分析并且建立模型;然后完成了節(jié)點的軟硬件設計,,并在匯聚節(jié)點的核心處理器上移植了μC/OS-Ⅱ操作系統(tǒng),,實現(xiàn)了無線通信程序在多任務實時操作系統(tǒng)上的應用;最后用LabVIEW實現(xiàn)了串口通信和監(jiān)測數(shù)據(jù)的顯示?,F(xiàn)場調試試驗取得了較為理想的效果,。
在今后的工作中,應進一步考慮如何降低功耗,、實現(xiàn)更為靈活的路由機制,、μC/OS-Ⅱ任務切換時間的分配、執(zhí)行效率等問題,,使系統(tǒng)性能進一步優(yōu)化,。
參考文獻
[1] 馬祖長,,孫怡寧,梅濤.無線傳感器網絡綜述[J].通信學報,,2005,,4(25):114-124.
[2] SHETH A, THEKKATH C A,, MEHTA P. Senslide: a distributed landslide prediction system[J]. Operating Systems Review,,2007,41(2):75-87.
[3] JUANG P,, OKI H,, WANG Y, et al. Energy-effieient computing for wildlife tracking: design tradeoffs and early experiences with ZebraNet[C]. Proceedings of the 10th International Conference on Architectual Support for Programming Languages and Operating Systems,, 2002:96-107.
[4] 紀晴,,段培永,李連防,,等.基于ZigBee無線傳感器網絡的智能家居系統(tǒng)[J].計算機工程與設計,,2008,29(12):3064-3067.
[5] JAFARIR R,, ENCARNACAO A,, ZAHOORY A, et al.Wireless sensor networks for health monitoring[C]. The Second Annual International Conference on Mobile and Ubiquitous System: Networking and Services,, MobiQuitous,, 2005:479-481.
[6] 趙海,趙杰,,劉錚,,等.一種無線傳感器網絡節(jié)點的設計與實現(xiàn)[J].東北大學學報(自然科學版),,2009,,130(6):809-812.
[7] 田洪強,秦雅娟,,鄭濤,,等.無線傳感器網絡智能紅外控制節(jié)點的實現(xiàn)[J].計算機應用,2010,,30(9):2549-2552.