《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn)
無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn)
李 婧,趙保華,張英堂
中國(guó)科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)系,安徽 合肥230027
摘要: 詳細(xì)闡述了基于無(wú)線傳感器硬件搭建無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)并利用TinyOS進(jìn)行傳感器硬件通信驗(yàn)證的實(shí)現(xiàn)方案。
Abstract:
Key words :

摘  要: 詳細(xì)闡述了基于無(wú)線傳感器硬件搭建無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)并利用TinyOS進(jìn)行傳感器硬件通信驗(yàn)證的實(shí)現(xiàn)方案。
關(guān)鍵詞: 無(wú)線傳感器網(wǎng)絡(luò)  實(shí)驗(yàn)平臺(tái)  傳感器節(jié)點(diǎn)

  集成了傳感器、微機(jī)電系統(tǒng)和網(wǎng)絡(luò)三大技術(shù)而形成的無(wú)線傳感器網(wǎng)絡(luò)是一種全新的信息獲取和處理技術(shù),具有十分廣闊的應(yīng)用前景。
  無(wú)線傳感器網(wǎng)絡(luò)是一種特殊的無(wú)線自組網(wǎng),它由成千上萬(wàn)甚至數(shù)以百計(jì)的“沙粒”(motes)構(gòu)成。“沙粒”即無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),大小相當(dāng)于給它提供能量的2節(jié)AA電池。它還包含一個(gè)微型處理器,很少的內(nèi)存以及用于感應(yīng)光、溫度、壓力、熱量等的傳感器,此外還有一個(gè)微型無(wú)線電收發(fā)機(jī),用來(lái)接收和發(fā)送無(wú)線電信號(hào)。無(wú)線傳感器網(wǎng)絡(luò)被部署在應(yīng)用現(xiàn)場(chǎng)后能夠?qū)崟r(shí)感知和采集各種監(jiān)測(cè)對(duì)象的信息,并對(duì)其進(jìn)行處理,最后傳送到用戶。它在國(guó)防軍事、反恐抗災(zāi)、環(huán)境監(jiān)測(cè)、交通管理、工程安全、醫(yī)療衛(wèi)生等領(lǐng)域都將得到廣泛的應(yīng)用,必將引發(fā)信息感知和采集的革命[1]。
  典型的無(wú)線傳感器網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。此網(wǎng)絡(luò)由傳感器節(jié)點(diǎn)、基站(Base Station)、Internet或通信衛(wèi)星、任務(wù)管理節(jié)點(diǎn)(Task Manager Node)等部分構(gòu)成。傳感器節(jié)點(diǎn)通過(guò)飛行器撒播、人工埋置和火箭彈射等方式散布在指定的感知區(qū)域內(nèi),每個(gè)節(jié)點(diǎn)都可以收集數(shù)據(jù),并通過(guò)“多跳”路由方式把數(shù)據(jù)傳送到基站。基站也可用同樣的方式將信息發(fā)送給各節(jié)點(diǎn)。基站直接與Internet或通信衛(wèi)星相連,通過(guò)Internet或通信衛(wèi)星實(shí)現(xiàn)任務(wù)管理節(jié)點(diǎn)(即觀察者)與傳感器之間的通信[2]。

  無(wú)線傳感器網(wǎng)絡(luò)的廣闊應(yīng)用前景引起了學(xué)術(shù)界和工業(yè)界的高度重視。由于各方面條件的限制,目前針對(duì)無(wú)線傳感器網(wǎng)絡(luò)的研究大多基于模擬環(huán)境(如NS-2),然而在實(shí)際網(wǎng)絡(luò)系統(tǒng)的研究中會(huì)遇到在模擬環(huán)境下無(wú)法預(yù)料的問(wèn)題。因此,無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn)在整個(gè)傳感器網(wǎng)絡(luò)研究中占據(jù)非常重要的作用。為此本文主要介紹了如何搭建無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái),包括利用TinyOS在傳感器硬件上進(jìn)行測(cè)試,保證傳感器節(jié)點(diǎn)間無(wú)線通信正常,這些都是實(shí)現(xiàn)傳感器應(yīng)用實(shí)例的前提工作。本文將重點(diǎn)介紹如何利用Crossbow公司的無(wú)線傳感器產(chǎn)品來(lái)實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)和基于此實(shí)驗(yàn)平臺(tái)的節(jié)點(diǎn)驗(yàn)證;Crossbow公司的5040系列硬件產(chǎn)品;TinyOS系統(tǒng)和傳感器硬件驗(yàn)證;將來(lái)的研究方向。
1  硬  件
  Crossbow公司是全球第一家提供Smart Dust無(wú)線傳感器的公司。該公司提供了一系列傳感器和相關(guān)硬件,其中大部分產(chǎn)品是即插即用的。硬件產(chǎn)品上的所有部件都支持TinyOS操作系統(tǒng)(此系統(tǒng)是美國(guó)加州大學(xué)伯克利分校專為嵌入式系統(tǒng)開(kāi)發(fā)的微型操作系統(tǒng))。
  實(shí)驗(yàn)平臺(tái)硬件采用的是MOTE-KIT 5040系列。它包括4個(gè)MICA2 Processor/Radio Boards、4個(gè)MICA2DOT Boards、3個(gè)MTS310 Sensor Boards、2個(gè)MDA500 MICA2DOT 原型和數(shù)據(jù)采集板以及1個(gè)MIB510編程接口板。
  MOTE-KIT5040系列的主要部件是MICA2。它是早期產(chǎn)品MICA的改進(jìn),采用的TinyOS操作系統(tǒng)是一個(gè)小型、開(kāi)源、節(jié)能的軟件操作系統(tǒng),支持大規(guī)模、自配置的無(wú)線傳感器網(wǎng)絡(luò),其源代碼和軟件開(kāi)發(fā)工具可以在網(wǎng)上下載。MICA2采用的硬件平臺(tái)為MPR400CB,MPR400CB采用了Atmel Atmega 128L微控制器,該控制器從其自帶的ROM中運(yùn)行TinyOS操作系統(tǒng)??梢岳镁幊探涌诎鍖?duì)其進(jìn)行開(kāi)發(fā)。MICA2具有許多優(yōu)良的特性:
 ?、偈堑谌⌒椭悄軣o(wú)線傳感器節(jié)點(diǎn)。
 ?、趦?nèi)嵌TinyOS操作系統(tǒng),提供了前所未有的通信和處理能力。
 ?、墼谛菝吣J剑珹A電池可以使用一年。
  ④無(wú)線通信功能強(qiáng)大,并且每個(gè)節(jié)點(diǎn)都具有路由器的功能。
 ?、?33MHz或868/916MHz的多信道收發(fā)天線。
 ?、薰饷簟囟?、RH、氣壓、震動(dòng)、聲學(xué)、電磁以及諸多可選的傳感器。
 ?、咧С譄o(wú)線的遠(yuǎn)程重編程。
 ?、嗑哂写罅靠捎玫膫鞲衅靼搴蛿?shù)據(jù)采集板。
 ?、崤c下一代產(chǎn)品MICA2DOT完全兼容。
  MICA2DOT與MICA2相比的主要優(yōu)點(diǎn)在于其體積約是MICA2的四分之一。其他功能與MICA2極其類似。
MOTE-KIT5040還提供了3塊傳感器板,這些接口板可以通過(guò)一個(gè)51腳的接口連到MICA2上。任何一個(gè)MICA2節(jié)點(diǎn)都可以配置成基站來(lái)進(jìn)行工作。基站可將從無(wú)線傳感器網(wǎng)絡(luò)取得的數(shù)據(jù)匯集到計(jì)算機(jī)上。
2  基于TinyOS實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn)
  TinyOS操作系統(tǒng)是一個(gè)小型、開(kāi)源、節(jié)能的軟件操作系統(tǒng)。該操作系統(tǒng)支持大規(guī)模、自配置的無(wú)線傳感器網(wǎng)絡(luò),安裝比較簡(jiǎn)單,與普通應(yīng)用軟件安裝過(guò)程類似。完整的安裝包包括如下軟件(一般選擇完全安裝): TinyOS、TinyOS Tools、NesC、Cygwin、Support Tools、Java 1.4 JDK & Java COMM 2.0、Graphviz、AVR Tools(avr-binutils、avr-libc、avr-gcc、avarice、avr-insight)。
  調(diào)試嵌入式系統(tǒng)應(yīng)用程序的難點(diǎn)是:難以區(qū)分錯(cuò)誤源在應(yīng)用程序還是在嵌入式系統(tǒng)平臺(tái)。但由于TinyOS安裝包包括了2個(gè)用于對(duì)系統(tǒng)和傳感器硬件進(jìn)行驗(yàn)證的工具,因此可以利用這2個(gè)工具在調(diào)試應(yīng)用程序前確認(rèn)傳感器節(jié)點(diǎn)本身是否有問(wèn)題。
  首先,對(duì)傳感器硬件驗(yàn)證前要先對(duì)安裝的PC工具進(jìn)行確認(rèn),包括 avr gcc compiler、perl、flex、cygwin(如果使用Windows操作系統(tǒng))、JDK 1.4.x等。利用TinyOS自帶的 toscheck工具可以檢驗(yàn)PC工具是否安裝完全,其操作步驟是:雙擊圖標(biāo)運(yùn)行cygwin應(yīng)用程序,進(jìn)入/tools/scripts目錄,鍵入toscheck。運(yùn)行后,最后1行輸出應(yīng)為“toscheck completed  without error”。若發(fā)現(xiàn)顯示錯(cuò)誤,則必須先解決該錯(cuò)誤再繼續(xù)下面的步驟。
  接下來(lái)可以使用下面2種方法[3]進(jìn)行傳感器節(jié)點(diǎn)的硬件驗(yàn)證:
  (1)TinyOS自帶的MicaHWVerify程序。
  (2)Crossbow提供的圖形用戶界面程序Mote-Test。
2.1 使用MicaHWVerify進(jìn)行硬件驗(yàn)證
  MicaHWVerify程序?qū)iT用來(lái)驗(yàn)證MICA/MICA2/MICA2DOT節(jié)點(diǎn)硬件。若所使用的硬件平臺(tái)不同則不適宜使用該程序。以下步驟都以驗(yàn)證MICA2節(jié)點(diǎn)為例(對(duì)MICA2-DOT節(jié)點(diǎn)只需修改相應(yīng)參數(shù)即可)。對(duì)傳感器節(jié)點(diǎn)硬件編程時(shí)須注意:若使用配套的電源給編程接口板供電,將傳感器節(jié)點(diǎn)插到接口板前要保證節(jié)點(diǎn)上的電池已取出;若利用傳感器節(jié)點(diǎn)上的電池給編程接口板供電,則不需再接電源但必須保證電池電量≥3.0V,且節(jié)點(diǎn)上開(kāi)關(guān)狀態(tài)為On。驗(yàn)證步驟如下。
  (1)運(yùn)行cygwin后,進(jìn)入/apps/MicaHWVerify目錄。鍵入make mica2編譯MicaHWVerify程序。若使用MICA2/MICA2DOT平臺(tái),完整的命令應(yīng)該是PFLAGS=-DCC1K_MANUAL_FREQ=<freq> make <mica2|mica2dot>。其中,<freq>可以根據(jù)需要在315MHz、433MHz和915MHz中任選1個(gè),具體設(shè)置方式見(jiàn)參考文獻(xiàn)[5]。本文則選用915MHz的頻率;若使用MICA平臺(tái),則鍵入make mica。
  (2)將MICA2節(jié)點(diǎn)插到編程接口板上(MIB510),用電池或電源供電(通電后編程接口板上的綠燈亮)。
  (3)將編程接口板通過(guò)串口連到計(jì)算機(jī)。如果使用編程接口板MIB500,則將編程接口板通過(guò)并口連到計(jì)算機(jī)(以下未特別聲明的編程接口板都是指MIB510)。
  (4)將程序裝載到MICA2節(jié)點(diǎn)上。鍵入MIB510=COM# make reinstall mica2。其中:COM#表示MIB510連接在計(jì)算機(jī)端口COM#上(#=1、2、3……本文取為COM1);rein-stall是直接將已編譯過(guò)的程序裝載到指定節(jié)點(diǎn)上而不再重新編譯程序,因此速度較快;若使用命令install代替reinstall,則先對(duì)目標(biāo)平臺(tái)編譯再將程序裝載到節(jié)點(diǎn)。如果使用MIB500,則鍵入make reinstall mica2即可。回車后,MIB510編程接口板的典型輸出如下:
  $ mib510 make reinstall mica2
  installing mica2 binary
  uisp -dprog=mib510 -dserial=COM1 -dpart=ATmega128 --wr_fuse_e=ff --erase --upload if=build/mica2/main.srec
  Firmware Version:2.1
  Atmel AVR ATmega128 is found.
  Uploading:flash
  Fuse Extended Byte set to 0xff
  這時(shí)可以知道編程接口板和計(jì)算機(jī)串口工作正常。接下來(lái)繼續(xù)驗(yàn)證傳感器節(jié)點(diǎn)硬件。
  (5)鍵入make -f jmakefile,再鍵入MOTECOM=serial@
  COM1:57 600 java hardware_check,計(jì)算機(jī)上的輸出應(yīng)該大致為:
  hardware_check started
  hardware verification successful
  Node Serial ID:1 60 48 fb 6 0 0 1d
  其中,Node Serial ID是MicaHWVerify程序分配給MICA2節(jié)點(diǎn)的序列號(hào),該程序檢查結(jié)點(diǎn)序列號(hào)、閃存連通性、UART功能和外部時(shí)鐘。當(dāng)這些狀態(tài)都正常時(shí),屏幕上就會(huì)打印出硬件檢測(cè)成功的消息。由于MICA2DOT沒(méi)有序列號(hào),當(dāng)編譯MicaHWVerify時(shí)會(huì)提示警告信息“Serial ID not supported on mica2dot platform”,最終的運(yùn)行結(jié)果serial ID輸出全為0xFF。
  最后,驗(yàn)證傳感器節(jié)點(diǎn)間的無(wú)線通信。應(yīng)注意通信時(shí)傳感器節(jié)點(diǎn)間要使用統(tǒng)一的頻率,即 PFLAGS=-DCC1K_MANUAL_FREQ=915 988 000。為操作方便,可以在apps/目錄下建立一個(gè)Makelocal文件來(lái)設(shè)定參數(shù)默認(rèn)值,其內(nèi)容如下:
  PFLAGS=-DCC1K_DEFAULT_FREQ=CC1K_915_998_MHZ
  MIB510=COM1
  這樣,以后就不必每次輸入MIB510=……、PFLAGS=……等表設(shè)置參數(shù)了。
        通信實(shí)驗(yàn)需要2個(gè)傳感器節(jié)點(diǎn),因此先對(duì)另一個(gè)傳感器節(jié)點(diǎn)進(jìn)行硬件檢測(cè),再按下述步驟操作,使其充當(dāng)?shù)谝粋€(gè)節(jié)點(diǎn)的無(wú)線網(wǎng)關(guān)程序。
  (6)進(jìn)入/apps/TOSBase目錄,鍵入make mica2編譯TOSBase程序。
  (7)將TOSBase程序裝載到插在MIB510編程接口板上的傳感器節(jié)點(diǎn),并將另一個(gè)傳感器節(jié)點(diǎn)(注意:該節(jié)點(diǎn)裝載的是MicaHWVerify程序)放在附近。
  (8)鍵入MOTECOM=serial@COM1:57600 java hardware_check來(lái)運(yùn)行hardware_check java程序,輸出結(jié)果應(yīng)和前面類似:
  hardware_check started
  Hardware verification successful.
  Node Serial ID:1 60 48 fb 6 0 0 1e
  這里返回遠(yuǎn)端節(jié)點(diǎn)的序列號(hào),表示傳感器節(jié)點(diǎn)間無(wú)線通信驗(yàn)證成功。如果遠(yuǎn)端傳感器節(jié)點(diǎn)關(guān)閉或工作不正常,將返回提示信息“Node transmission failure”。
2.2 使用Mote-Test進(jìn)行硬件驗(yàn)證
  驗(yàn)證傳感器硬件還有另外一種更快捷的方法,即使用Mote-Test程序。介紹如下。
  (1)從光盤運(yùn)行/Crossbow Software/Mote-Test文件夾下的setup.exe安裝Mote-Test。
  (2)從光盤/Crossbow Software/Mote Firmware目錄下拷貝MICA2_TEST_315、MICA2_TEST_433、MICA2_TEST_916、MICA2DOT_TEST_315、MICA2DOT_TEST_433、MICA2DOT_TEST_916文件夾到/apps目錄下。
  (3)用電源給MIB510編程接口板供電,并通過(guò)串口與計(jì)算機(jī)相連。首先,在MICA2上裝載測(cè)試固件(Test Firm-ware)。
  (4)運(yùn)行cygwin,進(jìn)入MICA2_TEST_XXX目錄(XXX是頻率,本實(shí)驗(yàn)中使用的是MICA2_TEST_916)。
  (5)鍵入MIB510=COM1 make mica2 reinstall,在待測(cè)試的傳感器節(jié)點(diǎn)上裝載測(cè)試固件,如果裝載成功,按下編程板上的RESET按鈕后會(huì)看到LEDs閃爍,驗(yàn)證了編程接口板和計(jì)算機(jī)串口工作正常。
  (6)設(shè)置Mote-Test檢測(cè)傳感器節(jié)點(diǎn)。運(yùn)行Mote-Test,在窗口中點(diǎn)擊GONFIGURE 按鈕,彈出一個(gè)配置對(duì)話框。在其中選擇正確的端口號(hào)(這里是COM1)。MICA2固件配置的波特率是57 600,默認(rèn)的包大小是36,UART CRC設(shè)置為不可用。一旦配置好,按下SET NOW 按鈕,主屏幕就會(huì)彈出。
  (7)接下來(lái)驗(yàn)證傳感器節(jié)點(diǎn)硬件工作是否正常。Mote-Test允許使用插在MIB500/MIB510上的一個(gè)MICA2或MICA2DOT節(jié)點(diǎn)來(lái)創(chuàng)建一個(gè)基站或PC的串行網(wǎng)關(guān),用來(lái)測(cè)試和演示2個(gè)傳感器節(jié)點(diǎn)間的雙向無(wú)線通信,也可以驗(yàn)證傳感器硬件和計(jì)算機(jī)串口是否工作正常。
  ①使用一個(gè)裝載過(guò)MICA2_TEST_916固件、電池供電的傳感器節(jié)點(diǎn)作為測(cè)試無(wú)線通信功能的遠(yuǎn)程節(jié)點(diǎn)。
 ?、趯⒁粋€(gè)裝載過(guò)MICA2_TEST_916固件的傳感器節(jié)點(diǎn)插到編程接口板上,稱此節(jié)點(diǎn)為基站。基站的頻率要和遠(yuǎn)程節(jié)點(diǎn)相同。
  ③將MIB510編程接口板通過(guò)串口連到計(jì)算機(jī)。
  ④按下SELF TEST按鈕,選擇好測(cè)試對(duì)象后,將遠(yuǎn)程節(jié)點(diǎn)放在距離基站大于0.6米的地方。
  ⑤運(yùn)行MICA2硬件驗(yàn)證測(cè)試,按下START TEST按鈕。
檢測(cè)后,輸出結(jié)果如圖2所示。

  從圖中可以看出,若Memory檢測(cè)成功,MEM OK綠燈亮;Battery檢測(cè)電池電量大小;RSSI測(cè)試有2個(gè)值,可以顯示遠(yuǎn)端節(jié)點(diǎn)與基站的連通性。若RSSI值小于-80.00將顯示FAIL,但這并不意味著節(jié)點(diǎn)無(wú)線通信失敗,可能因?yàn)镸ICA2節(jié)點(diǎn)距離基站太遠(yuǎn),可以通過(guò)縮短MICA2節(jié)點(diǎn)與基站間距離來(lái)改善RSSI值。在本實(shí)驗(yàn)中,RSSI實(shí)際測(cè)得的數(shù)據(jù)分別為-64.50和-61.88,說(shuō)明連通性較好。Serial ID NUMBER顯示本地傳感器節(jié)點(diǎn)的硬件序列號(hào)。當(dāng)各項(xiàng)狀態(tài)都正常時(shí),最上面的PASS綠燈亮。傳感器硬件測(cè)試完成后,就可以根據(jù)需求自己編寫程序,通過(guò)編程接口板加載到傳感器上,實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)的各種功能。
3  結(jié)論及下一步工作
  本文介紹了如何搭建無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)以及在此平臺(tái)上的系統(tǒng)驗(yàn)證。內(nèi)容涉及無(wú)線傳感器網(wǎng)絡(luò)的結(jié)構(gòu)和發(fā)展前景、傳感器節(jié)點(diǎn)的硬件測(cè)試、傳感器節(jié)點(diǎn)間無(wú)線通信等。在此實(shí)驗(yàn)平臺(tái)上,可以編寫應(yīng)用程序(Nesc和Java程序)完成傳感器網(wǎng)絡(luò)的各種功能。
  下一步的工作是在該實(shí)驗(yàn)平臺(tái)上研究具體的無(wú)線傳感器網(wǎng)絡(luò)協(xié)議,需要解決如下問(wèn)題:(1)無(wú)線傳感器網(wǎng)絡(luò)中的定位和同步問(wèn)題。(2)研究網(wǎng)絡(luò)層協(xié)議中的路由算法。(3)研究傳感器網(wǎng)絡(luò)的管理問(wèn)題。
參考文獻(xiàn)
1   李建中,李金寶,石勝飛.傳感器網(wǎng)絡(luò)及其數(shù)據(jù)管理的概念、問(wèn)題與進(jìn)展.軟件學(xué)報(bào),2003;14(10)
2   任豐原,黃海寧,林闖.無(wú)線傳感器網(wǎng)絡(luò).軟件學(xué)報(bào),2003;14 (7)
3   http://www.xbow.com/Support/Support_pdf_files/UISPHELP.pdf.UISP,MoteProgramming,and Mote Fuse Help Guide version 20030315.Crossbow Technology Inc,2003

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