《電子技術應用》
您所在的位置:首頁 > 模拟设计 > 设计应用 > 小型无线传感器网络的实现与P2P互联
小型无线传感器网络的实现与P2P互联
王晶晶,贾怀义 北京交通大学
摘要: 传感器网络之间的互联与通信将成为未来无线传感器网络的应用模式之一,通过P2P技术互联多个传感器网络,可为用户提供大规模、大范围、多样化的信息服务。在设计和实现基于SimplciTI协议的小型无线传感器网络的基础上,提出在无线传感器网络上的P2F覆盖,利用JXTA协议搭建P2P平台,实现了多个传感器网络以P2P的方式互联,并给出了硬件和软件的实现方案。
Abstract:
Key words :

    通常,無線傳感器網(wǎng)絡(WSN)只是覆蓋人們感興趣的較小區(qū)域,這樣就形成了多個分散的小型網(wǎng)絡。通過借助現(xiàn)有的網(wǎng)絡來實現(xiàn)多個小型無線傳感器網(wǎng)絡的互聯(lián),進行數(shù)據(jù)的傳播、發(fā)布,能夠擴大網(wǎng)絡的覆蓋范圍,更加有利于傳感器網(wǎng)絡數(shù)據(jù)的獲取。與其他方式相比,利用P2P的方式實現(xiàn)多個傳感器網(wǎng)絡的互聯(lián)具有非中心化、健壯性和可擴展性等特點。

1 系統(tǒng)結構
    從整體來看,本文所提出系統(tǒng)主要包括2層結構,如圖1所示。第一層是傳感器網(wǎng)絡層,根據(jù)需求負責在傳感器網(wǎng)絡內部收集監(jiān)測數(shù)據(jù);第二層是P2P虛擬網(wǎng)絡層,用來連接多個傳感器網(wǎng)絡,每個傳感器網(wǎng)絡作為P2P網(wǎng)絡的一個對等體節(jié)點,多個對等體節(jié)點形成P2P網(wǎng)絡。

1.JPG



2 基于SimpliciTI協(xié)議的小型無線傳感器網(wǎng)絡的設計與實現(xiàn)
2.1 SimpliciTI網(wǎng)絡協(xié)議
    SimpliciTI網(wǎng)絡協(xié)議是TI公司推出的針對簡單小型射頻網(wǎng)絡的專有低功耗RF協(xié)議。利用SimpliciTI網(wǎng)絡協(xié)議可實現(xiàn)MCU資源占用的最小化,從而降低系統(tǒng)成本。SimpliciTI軟件架構分為3層:應用層、網(wǎng)絡層和硬件邏輯層。其中,SimpliciTI網(wǎng)絡的加密在網(wǎng)絡層處理。
2.2 系統(tǒng)描述
    本文設計與實現(xiàn)的基于SimpliciTI網(wǎng)絡協(xié)議的小型無線傳感器網(wǎng)絡,在各種室內環(huán)境中對光強、溫度進行采集。整個系統(tǒng)由數(shù)據(jù)中心節(jié)點(AP)、范圍擴展節(jié)點(ER)和終端節(jié)點(ED)組成,形成串狀拓撲結構。其中數(shù)據(jù)中心與協(xié)調器相連,協(xié)調器通過RS 232與電腦相連,如圖2所示。
    終端節(jié)點由無線控制收發(fā)模塊、傳感器模塊和電源模塊組成,負責通過傳感器采集環(huán)境信息,并將采集到的信息實時地發(fā)往或通過范圍擴展節(jié)點轉發(fā)到數(shù)據(jù)中心節(jié)點。范圍擴展節(jié)點也稱為路由節(jié)點,由無線控制收發(fā)模塊和電源模塊組成。數(shù)據(jù)中心由無線控制收發(fā)模塊組成,是整個傳感器網(wǎng)絡的中心,與計算機相連,可以通過計算機軟件查看終端節(jié)點發(fā)來的實時采集的環(huán)境信息,同時也可以對系統(tǒng)進行設置和控制。另外,數(shù)據(jù)中心采用無線方式與其他范圍擴展節(jié)點和終端節(jié)點進行通信。
2.3 硬件的選型與設計
    硬件選型主要包括無線控制收發(fā)模塊、傳感器模塊和電源模塊3部分。無線控制收發(fā)模塊采用TI公司生產的低成本、低功耗的CC1110片上系統(tǒng),包含一個標準的增強型8051MCU,帶有32 KB FLASH和4 KBRAM,工作在433 MHz,868 MHz,915 MHz ISM波段,其射頻收發(fā)器支持不同的調制格式,數(shù)據(jù)傳輸率可達500 Kb/s。傳感器模塊中的溫度傳感器選取Microchip公司的TC77,它是一款13位串行接口輸出的集成數(shù)字溫度傳感器,溫度分辨率為0.062 5℃;光敏傳感器采用10 kΩ的光敏電阻,將其串聯(lián)一個10 kΩ的電阻后,接到CC1110的ADC輸入引腳即可。此外,數(shù)據(jù)中心通過RS 232由電腦供電,終端節(jié)點和路由節(jié)點通過供電底板供電,供電電壓為3 V,其獨立的電池盒設計,可便于移動。
2.4 系統(tǒng)軟件設計
    下面介紹無線傳感器網(wǎng)絡中各個節(jié)點的軟件設計??紤]到程序的開發(fā)周期和可讀性,使用C語言進行程序開發(fā)。
2.4.1 數(shù)據(jù)中心節(jié)點模塊
    數(shù)據(jù)中心經(jīng)過BSP、協(xié)議棧、串口等初始化后,打開串口中斷,實現(xiàn)計算機與數(shù)據(jù)中心的通信,然后建立串狀網(wǎng)絡,等待終端節(jié)點和范圍擴展節(jié)點的加入。數(shù)據(jù)中心不斷監(jiān)測有多少節(jié)點設備加入,并判斷是否達到網(wǎng)絡容納設備的最大數(shù)量。如果還有空閑的接口(PORT),則為新加入的設備分配PORT,并發(fā)送應答信息通知新加入設備通信的PORT編號。對于已經(jīng)加入網(wǎng)絡的設備,數(shù)據(jù)中心監(jiān)測是否收到這些設備發(fā)來的數(shù)據(jù)信息,如果收到符合格式的數(shù)據(jù),則通過串口上傳給計算機顯示。之后,數(shù)據(jù)中心檢測信道噪聲,如果噪聲可能會對通信造成干擾,則數(shù)據(jù)中心發(fā)生頻率跳變,跳到信道列表的下一個信道。
2.4.2 范圍擴展節(jié)點模塊
    范圍擴展節(jié)點經(jīng)過硬件初始化和協(xié)議棧初始化之后,向數(shù)據(jù)中心節(jié)點發(fā)送加入網(wǎng)絡請求。成功加入網(wǎng)絡后,向數(shù)據(jù)中心節(jié)點周期發(fā)送ping消息,如果收到應答,則處于等待數(shù)據(jù)轉發(fā)狀態(tài),向數(shù)據(jù)中心轉發(fā)終端節(jié)點發(fā)來的數(shù)據(jù)信息,如果沒有收到應答,則查詢網(wǎng)絡當前的工作信道,并跳轉至該信道,再轉發(fā)數(shù)據(jù)信息。
2.4.3 終端節(jié)點模塊
    終端節(jié)點在初始化底層模塊、定時器和各傳感器模塊后,開始向中心節(jié)點發(fā)送加入網(wǎng)絡消息,并等待加入。加入網(wǎng)絡后,每隔一個固定的時間間隔通過傳感器模塊采集環(huán)境信息,查找中心節(jié)點工作的信道并跳變到該信道,將采集的環(huán)境信息發(fā)送到數(shù)據(jù)中心。

3 小型無線傳感器網(wǎng)絡的P2P互聯(lián)
3.1 JXTA協(xié)議
    JXTA是SUN公司推出的一組開放的通用P2P協(xié)議,為開發(fā)新的P2P應用程序提供基本的模塊和服務,它對P2P節(jié)點的共同行為做了標準化,包括節(jié)點互相發(fā)現(xiàn)、自組織點組、發(fā)現(xiàn)和通告網(wǎng)絡服務、相互通信以及監(jiān)視其他節(jié)點等?;贘XTA的軟件架構可以分為3層:核心層、服務層、應用層。其中核心層封裝了P2P網(wǎng)絡的一些最基本的要素;服務層包含一些網(wǎng)絡服務;應用層包括一些應用的實現(xiàn),如P2P即時消息、文件和資源共享等。
3.2 系統(tǒng)構成
    在構建的P2P網(wǎng)絡中,有2種節(jié)點:WSN網(wǎng)關和WSN控制單元。通常有一個WSN網(wǎng)關和多個WSN控制單元。WSN控制單元負責收集傳感器網(wǎng)絡中監(jiān)測到數(shù)據(jù),并將其傳播、發(fā)布;WSN網(wǎng)關既是一個P2P節(jié)點,負責收集各個WSN控制單元傳播、發(fā)布的傳感器網(wǎng)絡的監(jiān)測數(shù)據(jù),又是一個網(wǎng)關設備,可以把傳感器網(wǎng)絡接入Internet等其他網(wǎng)絡。
    該系統(tǒng)的單元實體包含WSN網(wǎng)關、WSN控制單元、協(xié)調器和WSN節(jié)點這4層設備。整個系統(tǒng)的數(shù)據(jù)流程圖如圖3所示。在傳感器網(wǎng)絡中,WSN節(jié)點啟動數(shù)據(jù)采集過程,進行采樣、A/D轉換等,然后將采集到的數(shù)據(jù)發(fā)送到協(xié)調器,協(xié)調器使用RS 232將在無線傳感器內部收集到的數(shù)據(jù)傳送到WSN控制單元,WSN控制單元通過P2P平臺將傳感器網(wǎng)絡的監(jiān)測數(shù)據(jù)進行發(fā)布、傳播,發(fā)送到WSN網(wǎng)關,WSN控制單元和WSN網(wǎng)關之間通過JXTA中定義的管道進行通信。

2.JPG


3.3 軟件設計
    進行JXTA開發(fā)需要搭建JXTA開發(fā)環(huán)境,該系統(tǒng)的開發(fā)選擇的是JXTA的J2SE平臺綁定,并在集成開發(fā)環(huán)境NetBeans中采用最新版本V2.5進行Java程序的開發(fā)。此外,由于JDK的類庫并不提供串口通信的API,要進行串口通信,需要額外安裝與配置相應的JAR包和動態(tài)庫。
3.3.1 WSN網(wǎng)關設計
    作為一個JXTA的應用程序,WSN網(wǎng)關首先需要通過加入默認的網(wǎng)絡點組來實現(xiàn)JXTA平臺的初始化。然后需要創(chuàng)建一個新的點組WsnNet來提供傳感器參數(shù)監(jiān)測服務,WSN網(wǎng)關創(chuàng)建該點組成功后,需要加入該點組,然后通過監(jiān)聽者類等待WSN控制單元的消息,如圖4(a)所示。
    WSN網(wǎng)關通過管道實現(xiàn)與WSN控制單元之間的消息發(fā)送與接收,且采用基于事件的異步機制。該機制遵循Java標準事件設計模式,必須創(chuàng)建用于注冊以接收適當事件的監(jiān)聽者。處理管道事件的監(jiān)聽者接口是PipeMsgListener接口,在WSN網(wǎng)關的應用程序中實現(xiàn)了該接口,即管道服務在創(chuàng)建輸入管道的時候增加this指針,以在已經(jīng)創(chuàng)建的輸入管道上監(jiān)聽事件。當對應的事件發(fā)生時,該監(jiān)聽者類將被通知,并調用監(jiān)聽者類的pipeMsgEvent()方法,通過getMessage()方法從pipeMsgEvent()中獲取該消息,最后根據(jù)設定好的格式處理接收到的消息。

3.JPG


3.3.2 WSN控制單元設計
    WSN控制單元負責WSN網(wǎng)關和協(xié)調器之間的通信,它通過管道與WSN網(wǎng)關通信,通過RS 232接口與協(xié)調器通信。作為JXTA的一個節(jié)點,WSN控制單元啟動后,首先加入默認的點組初始化JXTA平臺,然后加入WSN網(wǎng)關創(chuàng)建的點組WsnNet以提供信息監(jiān)測服務。WSN控制單元實現(xiàn)了兩個事件,一個是PipeMsgListener,用于監(jiān)聽管道消息;另一個是SerialPortEventListener,用于監(jiān)聽串口的消息,如圖4(b)所示。

4 結語
    今后無線傳感器網(wǎng)絡之間的交互和通信技術將是一項關鍵的技術,WSN和P2P結合的系統(tǒng)可用來開發(fā)強大的應用程序。本文首先完成了基于SimplictiTI網(wǎng)絡協(xié)議的低功耗小型無線傳感器網(wǎng)絡的設計與實現(xiàn),然后基于JXTA協(xié)議實現(xiàn)了多個傳感器網(wǎng)絡以P2P方式互聯(lián),從而實現(xiàn)數(shù)據(jù)的傳播、發(fā)布,擴大傳感器網(wǎng)絡的覆蓋范圍,更加有利于傳感器網(wǎng)絡數(shù)據(jù)的獲取。

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

相關內容