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

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

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

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

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