《電子技術(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)變。
?。?)μ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)完成。
 (1)實(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ì)。
?。?)按需數(shù)據(jù)收集方式
 這種方式是一種雙向的數(shù)據(jù)傳輸,在PC采集節(jié)點(diǎn)1的信號(hào)時(shí),其他節(jié)點(diǎn)為睡眠狀態(tài),從而節(jié)約能量。具體流程如下:
?、貾C向Sink節(jié)點(diǎn)發(fā)送讀取命令;
 ②Sink節(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)通過(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ì)方便靈活,顯示直觀形象,因此,采用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)載。