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

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

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

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

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

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

 

 

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

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