摘 要: 以適用于環境監測的無線傳感器網絡系統為對象,設計并開發了相應的節點硬件。將μC/OS-Ⅱ實時操作系統移植于匯聚節點的處理器上,并結合無線傳感器網絡匯聚節點的特性,設計了合理的多任務調度機制。傳感節點設計了實時采集和按需采集兩種工作方式。開發了串口通信程序,實現了傳感器節點數據的實時監控。測試結果表明,該系統運行良好。
關鍵詞: 無線傳感器網絡;μC/OS-Ⅱ操作系統;無線通信;串口通信
無線傳感器網絡WSN(Wireless Sensor Network)是近年來信息科學領域一個熱門的研究方向,它集成了無線通信技術、嵌入式技術、傳感器技術和分布式信息處理,能相互配合對環境或各種對象進行實時的監測和感知,其被廣泛應用于軍事[1]、環境監測[2]、動植物監視[3]、智能家具[4]和健康結構監測[5]等多個領域。
無線傳感器網絡具有很強的應用相關性,不同的應用和需求對網絡結構和軟硬件的要求都不一樣。很多商用的WSN系統存在源代碼不公開、整個系統或單個節點價格過高以及對于某一具體應用適應差等問題。本文圍繞無線傳感器網絡應用的關鍵技術,開發了一個適用于室內環境監控的實時數據收集的無線傳感器網絡系統。
1 系統設計
在分析了幾種常見的無線傳感器網絡拓撲結構后,本文選取了分簇結構作為系統的拓撲結構。與一般分簇結構不同,采用中繼節點作為簇頭,一方面增加了網絡的傳輸距離,另一方面由于簇頭能量消耗較快,只要更換極少部分簇頭的能量就可以延長網絡的壽命。簇頭也可以擔任節點的任務進行數據采集。圖1為無線傳感器網絡拓撲結構圖。
1.1 硬件設計
在選擇節點的處理器方面,主要考慮的因素包括價格、功耗、開發工具成本、片內集成的RAM、Flash及EEPROM大小等。目前已經商用的WSN節點,如Mica、Mica2 Dot、T-Nodes、Fleck等,都采用ATmega128作為CPU,一些自行開發的節點,參考文獻[6]、[7]也采用ATmega128。
無線通信芯片選擇nRF24L0,其采用2.4~2.5 GHz世界通用ISM頻段,最高數據傳輸速率可達2 Mb/s,125頻道滿足多點通信和跳頻通信需要,發射和接收模式消耗的電流都比較低,而且高速鏈路層完全集成在芯片上,非常便于軟硬件的開發。
Sink節點的硬件結構如圖2虛線框部分所示。其中,串口通信模塊負責Sink節點與計算機的連接,將收集的數據傳送到計算機上進行顯示。
采集節點的硬件結構與圖2相似。采用溫度傳感器AD590和Honeywell的氣體質量流量傳感器AWM3200CR分別對溫度和空氣壓差參數進行轉換,然后采用ATmega128內的ADC將模擬信號轉成數字信號。串口模塊用于PC向節點下載程序。
1.2 Sink節點軟件設計
(1)通信模塊軟件
nRF24L01的數據包處理方式主要分直接收發模式、ShockBurst模式和增強型ShockBurst模式3種。在本文中,nRF24L01無線通信模塊都是采用增強型ShockBurst模式。根據nRF24L01在增強型ShockBurst模式下接收的步驟,設計了匯聚節點接收程序的設計。
為了提供從傳感器節點到匯聚節點的中繼轉發,還設計了中繼節點,利用nRF24L01工作方式和信道切換來完成收發方式的轉變。
?。?)μC/OS-Ⅱ的移植與在匯聚節點上的應用
μC/OS-Ⅱ是由LABROSSE J J編寫的一種源碼公開的嵌入式實時操作系統。程序大部分用C語言編寫,帶有少量的匯編,適合小型控制系統,具有執行效率高、占用空間小、實時性能優良及可擴展性強等特點。本設計成功地將μC/OS-Ⅱ操作系統移植到ATmega128處理器上。
移植完成后,實現μC/OS-Ⅱ操作系統在匯聚節點中的應用。首先在main函數中初始化無線芯片、串口、ATmega128的SPI等,然后函數創建不同優先級的任務,最后啟動μC/OS-Ⅱ操作系統。由于匯聚節點要接收來自不同采集節點的數據,本文設計了多任務調度機制,分別利用不同的信道接收來自傳感器節點的數據。利用定時器和信號量機制分配時間,在一段時間內接收第一個傳感器節點的數據,然后這個任務放棄CPU使用權,第二個任務切入,接收來自第二個傳感器節點的數據,依次循環。中斷轉發程序設計流程如圖3所示。
1.3 采集節點軟件設計
本系統主要設計了基于實時數據采集方式和基于按需數據采集方式兩種基于不同數據采集的方式。在這兩種方式中,收發的轉變由對nRF24L01工作方式的設置和信道切換來完成。
?。?)實時數據收集方式
這種方式實際上是單向上行的數據傳輸結構。具體流程如下:
?、賁ink節點和簇頭節點初始化處于等待接收狀態;
②簇內節點將數據以一定格式傳送給簇頭;
?、鄞仡^將接收的數據合成,切換信道收發模式后,發送給Sink;
?、躍ink節點接收,通過串口傳輸給PC處理后顯示;
⑤簇頭再一次切換收發模式等待新的數據。
這里,簇頭的設計涉及到無線數據的點對點收發、一對多收發以及收發模式切換的程序設計。
?。?)按需數據收集方式
這種方式是一種雙向的數據傳輸,在PC采集節點1的信號時,其他節點為睡眠狀態,從而節約能量。具體流程如下:
?、貾C向Sink節點發送讀取命令;
②Sink節點接收命令后向簇頭節點發送讀取命令,信道切換給簇頭1;
?、鄞仡^接收到命令后將信道切換至節點1,節點1處于發送模式;
④節點1進行連續采集,采樣的數據發送給簇頭1;
?、荽仡^1收數據后轉發給Sink節點;
?、轘ink節點通過串口把數據傳送給PC機。
2 基于LabVIEW的實時監控程序設計
在系統中,Sink節點采用串口與PC相連,采集的數據由PC實時顯示,由于LabVIEW在串口通信和監測數據的顯示等方面設計方便靈活,顯示直觀形象,因此,采用LabVIEW實現了串口通信和采集數據的顯示。圖4所顯示的是從兩個節點采集得到的溫度值。經過多次測試,該系統能穩定運行,正常從各節點接收數據。
本文實現了一個無線傳感器網絡的軟硬件系統。首先進行系統需求分析并且建立模型;然后完成了節點的軟硬件設計,并在匯聚節點的核心處理器上移植了μC/OS-Ⅱ操作系統,實現了無線通信程序在多任務實時操作系統上的應用;最后用LabVIEW實現了串口通信和監測數據的顯示?,F場調試試驗取得了較為理想的效果。
在今后的工作中,應進一步考慮如何降低功耗、實現更為靈活的路由機制、μC/OS-Ⅱ任務切換時間的分配、執行效率等問題,使系統性能進一步優化。
參考文獻
[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無線傳感器網絡的智能家居系統[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] 趙海,趙杰,劉錚,等.一種無線傳感器網絡節點的設計與實現[J].東北大學學報(自然科學版),2009,130(6):809-812.
[7] 田洪強,秦雅娟,鄭濤,等.無線傳感器網絡智能紅外控制節點的實現[J].計算機應用,2010,30(9):2549-2552.