《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于μC/OS-Ⅱ的無線傳感器網(wǎng)絡(luò)系統(tǒng)的設(shè)計
基于μC/OS-Ⅱ的無線傳感器網(wǎng)絡(luò)系統(tǒng)的設(shè)計
來源:微型機(jī)與應(yīng)用2012年第21期
戎 舟1,吳 夢2,,吳 為3
(1.南京郵電大學(xué) 自動化學(xué)院,,江蘇 南京 210003; 2.上海綠地能源(集團(tuán))有限公司,,上海
摘要: 以適用于環(huán)境監(jiān)測的無線傳感器網(wǎng)絡(luò)系統(tǒng)為對象,,設(shè)計并開發(fā)了相應(yīng)的節(jié)點(diǎn)硬件。將μC/OS-Ⅱ?qū)崟r操作系統(tǒng)移植于匯聚節(jié)點(diǎn)的處理器上,,并結(jié)合無線傳感器網(wǎng)絡(luò)匯聚節(jié)點(diǎn)的特性,,設(shè)計了合理的多任務(wù)調(diào)度機(jī)制。傳感節(jié)點(diǎn)設(shè)計了實(shí)時采集和按需采集兩種工作方式,。開發(fā)了串口通信程序,,實(shí)現(xiàn)了傳感器節(jié)點(diǎn)數(shù)據(jù)的實(shí)時監(jiān)控。測試結(jié)果表明,,該系統(tǒng)運(yùn)行良好,。
Abstract:
Key words :

摘  要: 以適用于環(huán)境監(jiān)測的無線傳感器網(wǎng)絡(luò)系統(tǒng)為對象,設(shè)計并開發(fā)了相應(yīng)的節(jié)點(diǎn)硬件,。將μC/OS-Ⅱ?qū)崟r操作系統(tǒng)移植于匯聚節(jié)點(diǎn)的處理器上,,并結(jié)合無線傳感器網(wǎng)絡(luò)匯聚節(jié)點(diǎn)的特性,設(shè)計了合理的多任務(wù)調(diào)度機(jī)制,。傳感節(jié)點(diǎn)設(shè)計了實(shí)時采集和按需采集兩種工作方式,。開發(fā)了串口通信程序,實(shí)現(xiàn)了傳感器節(jié)點(diǎn)數(shù)據(jù)的實(shí)時監(jiān)控,。測試結(jié)果表明,,該系統(tǒng)運(yùn)行良好。
關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò),;μC/OS-Ⅱ操作系統(tǒng),;無線通信;串口通信

 無線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Network)是近年來信息科學(xué)領(lǐng)域一個熱門的研究方向,,它集成了無線通信技術(shù),、嵌入式技術(shù)、傳感器技術(shù)和分布式信息處理,能相互配合對環(huán)境或各種對象進(jìn)行實(shí)時的監(jiān)測和感知,,其被廣泛應(yīng)用于軍事[1],、環(huán)境監(jiān)測[2]、動植物監(jiān)視[3],、智能家具[4]和健康結(jié)構(gòu)監(jiān)測[5]等多個領(lǐng)域,。
 無線傳感器網(wǎng)絡(luò)具有很強(qiáng)的應(yīng)用相關(guān)性,不同的應(yīng)用和需求對網(wǎng)絡(luò)結(jié)構(gòu)和軟硬件的要求都不一樣,。很多商用的WSN系統(tǒng)存在源代碼不公開,、整個系統(tǒng)或單個節(jié)點(diǎn)價格過高以及對于某一具體應(yīng)用適應(yīng)差等問題。本文圍繞無線傳感器網(wǎng)絡(luò)應(yīng)用的關(guān)鍵技術(shù),,開發(fā)了一個適用于室內(nèi)環(huán)境監(jiān)控的實(shí)時數(shù)據(jù)收集的無線傳感器網(wǎng)絡(luò)系統(tǒng),。
1 系統(tǒng)設(shè)計
 在分析了幾種常見的無線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)后,本文選取了分簇結(jié)構(gòu)作為系統(tǒng)的拓?fù)浣Y(jié)構(gòu),。與一般分簇結(jié)構(gòu)不同,,采用中繼節(jié)點(diǎn)作為簇頭,一方面增加了網(wǎng)絡(luò)的傳輸距離,,另一方面由于簇頭能量消耗較快,,只要更換極少部分簇頭的能量就可以延長網(wǎng)絡(luò)的壽命。簇頭也可以擔(dān)任節(jié)點(diǎn)的任務(wù)進(jìn)行數(shù)據(jù)采集,。圖1為無線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖。

1.1 硬件設(shè)計
 在選擇節(jié)點(diǎn)的處理器方面,,主要考慮的因素包括價格,、功耗、開發(fā)工具成本,、片內(nèi)集成的RAM,、Flash及EEPROM大小等。目前已經(jīng)商用的WSN節(jié)點(diǎn),,如Mica,、Mica2 Dot、T-Nodes,、Fleck等,,都采用ATmega128作為CPU,一些自行開發(fā)的節(jié)點(diǎn),,參考文獻(xiàn)[6],、[7]也采用ATmega128。
 無線通信芯片選擇nRF24L0,,其采用2.4~2.5 GHz世界通用ISM頻段,,最高數(shù)據(jù)傳輸速率可達(dá)2 Mb/s,125頻道滿足多點(diǎn)通信和跳頻通信需要,發(fā)射和接收模式消耗的電流都比較低,,而且高速鏈路層完全集成在芯片上,,非常便于軟硬件的開發(fā)。
 Sink節(jié)點(diǎn)的硬件結(jié)構(gòu)如圖2虛線框部分所示,。其中,,串口通信模塊負(fù)責(zé)Sink節(jié)點(diǎn)與計算機(jī)的連接,將收集的數(shù)據(jù)傳送到計算機(jī)上進(jìn)行顯示,。

 采集節(jié)點(diǎn)的硬件結(jié)構(gòu)與圖2相似,。采用溫度傳感器AD590和Honeywell的氣體質(zhì)量流量傳感器AWM3200CR分別對溫度和空氣壓差參數(shù)進(jìn)行轉(zhuǎn)換,然后采用ATmega128內(nèi)的ADC將模擬信號轉(zhuǎn)成數(shù)字信號,。串口模塊用于PC向節(jié)點(diǎn)下載程序,。
1.2 Sink節(jié)點(diǎn)軟件設(shè)計
 (1)通信模塊軟件
 nRF24L01的數(shù)據(jù)包處理方式主要分直接收發(fā)模式,、ShockBurst模式和增強(qiáng)型ShockBurst模式3種,。在本文中,nRF24L01無線通信模塊都是采用增強(qiáng)型ShockBurst模式,。根據(jù)nRF24L01在增強(qiáng)型ShockBurst模式下接收的步驟,,設(shè)計了匯聚節(jié)點(diǎn)接收程序的設(shè)計。
為了提供從傳感器節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的中繼轉(zhuǎn)發(fā),,還設(shè)計了中繼節(jié)點(diǎn),,利用nRF24L01工作方式和信道切換來完成收發(fā)方式的轉(zhuǎn)變。
?。?)μC/OS-Ⅱ的移植與在匯聚節(jié)點(diǎn)上的應(yīng)用
 μC/OS-Ⅱ是由LABROSSE J J編寫的一種源碼公開的嵌入式實(shí)時操作系統(tǒng),。程序大部分用C語言編寫,帶有少量的匯編,,適合小型控制系統(tǒng),,具有執(zhí)行效率高、占用空間小,、實(shí)時性能優(yōu)良及可擴(kuò)展性強(qiáng)等特點(diǎn),。本設(shè)計成功地將μC/OS-Ⅱ操作系統(tǒng)移植到ATmega128處理器上。
 移植完成后,,實(shí)現(xiàn)μC/OS-Ⅱ操作系統(tǒng)在匯聚節(jié)點(diǎn)中的應(yīng)用,。首先在main函數(shù)中初始化無線芯片、串口,、ATmega128的SPI等,,然后函數(shù)創(chuàng)建不同優(yōu)先級的任務(wù),最后啟動μC/OS-Ⅱ操作系統(tǒng),。由于匯聚節(jié)點(diǎn)要接收來自不同采集節(jié)點(diǎn)的數(shù)據(jù),,本文設(shè)計了多任務(wù)調(diào)度機(jī)制,,分別利用不同的信道接收來自傳感器節(jié)點(diǎn)的數(shù)據(jù)。利用定時器和信號量機(jī)制分配時間,,在一段時間內(nèi)接收第一個傳感器節(jié)點(diǎn)的數(shù)據(jù),,然后這個任務(wù)放棄CPU使用權(quán),第二個任務(wù)切入,,接收來自第二個傳感器節(jié)點(diǎn)的數(shù)據(jù),,依次循環(huán)。中斷轉(zhuǎn)發(fā)程序設(shè)計流程如圖3所示,。

1.3 采集節(jié)點(diǎn)軟件設(shè)計
 本系統(tǒng)主要設(shè)計了基于實(shí)時數(shù)據(jù)采集方式和基于按需數(shù)據(jù)采集方式兩種基于不同數(shù)據(jù)采集的方式,。在這兩種方式中,收發(fā)的轉(zhuǎn)變由對nRF24L01工作方式的設(shè)置和信道切換來完成,。
?。?)實(shí)時數(shù)據(jù)收集方式
 這種方式實(shí)際上是單向上行的數(shù)據(jù)傳輸結(jié)構(gòu)。具體流程如下:
?、賁ink節(jié)點(diǎn)和簇頭節(jié)點(diǎn)初始化處于等待接收狀態(tài),;
 ②簇內(nèi)節(jié)點(diǎn)將數(shù)據(jù)以一定格式傳送給簇頭,;
?、鄞仡^將接收的數(shù)據(jù)合成,切換信道收發(fā)模式后,,發(fā)送給Sink,;
 ④Sink節(jié)點(diǎn)接收,,通過串口傳輸給PC處理后顯示,;
 ⑤簇頭再一次切換收發(fā)模式等待新的數(shù)據(jù),。
 這里,簇頭的設(shè)計涉及到無線數(shù)據(jù)的點(diǎn)對點(diǎn)收發(fā),、一對多收發(fā)以及收發(fā)模式切換的程序設(shè)計,。
 (2)按需數(shù)據(jù)收集方式
 這種方式是一種雙向的數(shù)據(jù)傳輸,,在PC采集節(jié)點(diǎn)1的信號時,,其他節(jié)點(diǎn)為睡眠狀態(tài),從而節(jié)約能量,。具體流程如下:
?、貾C向Sink節(jié)點(diǎn)發(fā)送讀取命令;
?、赟ink節(jié)點(diǎn)接收命令后向簇頭節(jié)點(diǎn)發(fā)送讀取命令,,信道切換給簇頭1,;
 ③簇頭接收到命令后將信道切換至節(jié)點(diǎn)1,,節(jié)點(diǎn)1處于發(fā)送模式,;
 ④節(jié)點(diǎn)1進(jìn)行連續(xù)采集,,采樣的數(shù)據(jù)發(fā)送給簇頭1,;
 ⑤簇頭1收數(shù)據(jù)后轉(zhuǎn)發(fā)給Sink節(jié)點(diǎn),;
?、轘ink節(jié)點(diǎn)通過串口把數(shù)據(jù)傳送給PC機(jī)。
2 基于LabVIEW的實(shí)時監(jiān)控程序設(shè)計
 在系統(tǒng)中,,Sink節(jié)點(diǎn)采用串口與PC相連,,采集的數(shù)據(jù)由PC實(shí)時顯示,由于LabVIEW在串口通信和監(jiān)測數(shù)據(jù)的顯示等方面設(shè)計方便靈活,,顯示直觀形象,,因此,采用LabVIEW實(shí)現(xiàn)了串口通信和采集數(shù)據(jù)的顯示,。圖4所顯示的是從兩個節(jié)點(diǎn)采集得到的溫度值,。經(jīng)過多次測試,該系統(tǒng)能穩(wěn)定運(yùn)行,,正常從各節(jié)點(diǎn)接收數(shù)據(jù),。

 

 

 本文實(shí)現(xiàn)了一個無線傳感器網(wǎng)絡(luò)的軟硬件系統(tǒng)。首先進(jìn)行系統(tǒng)需求分析并且建立模型,;然后完成了節(jié)點(diǎn)的軟硬件設(shè)計,,并在匯聚節(jié)點(diǎn)的核心處理器上移植了μC/OS-Ⅱ操作系統(tǒng),實(shí)現(xiàn)了無線通信程序在多任務(wù)實(shí)時操作系統(tǒng)上的應(yīng)用,;最后用LabVIEW實(shí)現(xiàn)了串口通信和監(jiān)測數(shù)據(jù)的顯示?,F(xiàn)場調(diào)試試驗(yàn)取得了較為理想的效果。
 在今后的工作中,,應(yīng)進(jìn)一步考慮如何降低功耗,、實(shí)現(xiàn)更為靈活的路由機(jī)制、μC/OS-Ⅱ任務(wù)切換時間的分配,、執(zhí)行效率等問題,,使系統(tǒng)性能進(jìn)一步優(yōu)化。
參考文獻(xiàn)
[1] 馬祖長,,孫怡寧,,梅濤.無線傳感器網(wǎng)絡(luò)綜述[J].通信學(xué)報,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] 紀(jì)晴,段培永,,李連防,,等.基于ZigBee無線傳感器網(wǎng)絡(luò)的智能家居系統(tǒng)[J].計算機(jī)工程與設(shè)計,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] 趙海,,趙杰,,劉錚,等.一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計與實(shí)現(xiàn)[J].東北大學(xué)學(xué)報(自然科學(xué)版),,2009,,130(6):809-812.
[7] 田洪強(qiáng),秦雅娟,,鄭濤,,等.無線傳感器網(wǎng)絡(luò)智能紅外控制節(jié)點(diǎn)的實(shí)現(xiàn)[J].計算機(jī)應(yīng)用,2010,,30(9):2549-2552.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。