1 引言
無線傳感器網絡( Wireless Sensor Network,WSN)就是由部署在監控區域內的大量的廉價微型傳感器節點組成,通過無線通信方式形成的一個多跳的自組織的網絡系統,其目的是協作地感知、采集和處理網絡覆蓋區域中感知對象的信息,并發給觀察者。可以這樣說,無線傳感器網絡使人們可以直接感知客觀世界,從而極大地擴展了現有網絡的功能和人類認識世界的能力。
隨著ZigBee無線模塊傳感器網絡的迅猛發展,由其所延伸出來的各種應用范圍都需要去與IP 網絡進行互聯,實現實際物理空間的數據可以與網絡上的數據進行交換處理。但是,無線傳感器網絡所用到的協議標準又與我們現今網絡所用的協議不兼容,這樣就給我們帶來了難題,怎么把現今Internet 的協議標準與無線傳感器網絡的協議標準相互連通,從而使得物理世界與虛擬世界得到很好的互聯。
因此本文主要研究基于ZigBee無線模塊傳感器網絡與以太網互聯,提出兩個網絡互聯的理論算法結構和實現方案,最終實現兩個網絡的數據傳輸,并實現以太網對無線傳感器網絡的控制。
2 ZigBee與網絡互聯技術
2.1 ZigBee技術
ZigBee作為一種無線網絡的標準,主要目標就是在遠程控制傳感器應用上,這一點很適合予操控復雜的廣播環境和一些被隔離起來的區域。ZigBee聯盟就在IEEE802.15.4標準的基礎上提出了適應于無線傳感器網絡的通信協議ZigBee協議。
IEEE802.15.4標準主要針對無線個人區域網絡( low - rate wireless personal area network, LR -WPAN),力求使用低耗能信號、低速率傳輸、旨在為小范圍內不同設備之間的低速率互連提供一個統一標準。IEEE802.15.4標準定義了系統物理層(PHY)和數據鏈路層的MAC 子層。PHY 層由射頻收發器以及底層的控制模塊構成,MAC 子層為高層訪問物理信道提供點到點通信的服務接口,而Zig-Bee 聯盟規定了系統傳輸層(TL)、網絡層(NWK)、應用層( APL) 等層的標準。
圖1 IEEE802. 15. 4 基礎上的ZigBee 協議
圖1 表示出了在IEEE802.15.4基礎上發展起來的ZigBee協議。IEEE802.15.4定義了兩個頻段的物理層:868/915MHz 和2.4GHz。868/915MHz 頻段包括歐洲使用的868MHz 頻段以及美國和澳大利亞使用的915MHz 頻段,2.4GHz 頻段世界通用。對于現在所使用的許多ZigBee無線數傳硬件設備都使用的是2.4GHZ的頻率段。ZigBee數傳模塊支持網絡型拓撲結構、星型拓撲結構、群組樹形拓撲結構以及混合型的拓撲結構。并且對于星型和網絡型結構結合的最基礎的一種結構就是群組樹型結構。
圖2 ZigBee 網絡的配置
圖2 展示了網絡型以及星型拓撲機構的配置。應用程序設計上的手持設備的最大室內距離是30m,最大室外距離是100m,運行在2.4GHZ 的頻率下,能達到250Kbps 的數據傳輸速率,考慮到ZigBee無線模塊的實用性,本文主要研究基于ZigBee 無線模塊的傳感器網絡。
2.2 無線傳感器網絡與IP 技術
IP(Internet Protocol,網絡之間互聯協議) 技術主要是為了計算機網絡相互連接進行通信而設置的協議,它在ZigBee無線數傳傳感網絡接入互聯網的系統中具有重要作用。在因特網中,IP 是能夠使連接到網上的所有計算機網絡實現相互通信的一套規則,它規定了計算機在因特網上進行通信時應當遵守的協議。IP 具有唯一性,有了IP 網絡協議,就可以有序管理計算機網絡系統,實現網絡用戶之間的正常通信。
互聯網通信的主要最基本的協議TCP/ IP 協議,由網絡層的IP 協議來規定連入到互聯網中的每一臺電腦的地址,傳輸層的TCP 協議負責數據的傳輸。可以看出,現在所使用的最基本的互聯網協議TCP/ IP 協議就是以地址為中心的協議,而在無線傳感網絡中,都是通過各個傳感器所收集到的數據通過傳送給中心的協調器進行數據的傳輸,這就實現了以數據為中心的數據傳輸方式。TCP/ IP 協議就不再適用于在無線傳感網絡中進行應用,這樣我們提出了基于ZigBee協議的無線傳感器網絡,而要實現無線傳感網絡與互聯網的互聯通信、數據傳輸等就要求能把ZigBee協議能夠很好地與TCP/ IP 協議進行轉換。在本文中,主要提出了ZigBee協議與IP協議的轉換,把ZigBee協議的數據包轉換為IP 的數據包,這樣就可以通過TCP 或是UDP 傳輸協議發送進入互聯網,從而實現無線傳感網絡與互聯網的相互通信。
3 兩種協議棧互聯的算法研究及實現方法
網絡互聯方案中,根據實現方式不同分為異構結構和同構結構,異構結構是將傳感器節點TCP/ IP化,同構結構是利用網關作為接口將傳感器網絡與TCP/ IP 網絡互聯。對于無線傳感網絡與互聯網的互通,可以從以上兩種實現方式上進行探索,本文將主要就同構結構進行研究并提出其理論算法及其實現方案。
3.1 利用網關--虛擬查表方式
在本研究中把網絡互聯的方案重點放在同構結構來實現,這樣則不需要去改變ZigBee地址,而是采用虛擬地址這一個概念來實現的。這種方式對于無線傳感網絡以及互聯網的終端我們不做任何的處理,所有的虛擬地址以及匹配的問題都放在轉換器也就是網關中來實現,如圖3 所示為轉換器中的簡要示意圖,主要體現在不改變原始兩種網絡結構的基礎上利用轉換器來實現兩種協議棧的轉換進而實現兩種網絡的互聯。
圖3 轉換器中示意圖
如圖3 中所示,可以看出本研究的主要重點放在了虛擬地址的研究上,對于所熟知的以太網絡中,主要是以地址為中心的也就是常用的IP 地址,而在WSN 中主要是以數據為中心的,并且兩種網絡的數據流動方式也是不相同的,這樣為了WSN 可以融合到以太網中就需要找到一種方法來把兩種協議棧互通起來,本文就立足于這樣一個出發點提出了虛擬地址的算法來實現互聯。
本文闡述的核心問題,是提出了一種基于虛擬IP 以及虛擬ID 的互聯通信控制方法。對于WSN網絡而言,人為地配備一個虛擬的ID 地址,以太網中配備一個虛擬的IP 號,這樣每一個虛擬的ID 地址就會對應一個虛擬的IP 號來進行兩個網絡的互聯。在網關中建立一個映射表,把每次的連接后的虛擬IP 以及虛擬ID 存儲在這個表中,如果下次連接需要就可以直接調用表中的地址進行連接。如圖4 所示就展現了這個映射表的主要實現形式。
圖4 虛擬ID 及虛擬IP 映射表
3.2 實現方案的軟硬件結構
以上研究主要闡述了這種網關實現的算法結構,下文將在這種算法結構的基礎上,提出了系統實現的可行性方案,主要包括實現的硬件及軟件結構。
在硬件實現方面,考慮到控制器的資源等采用ARM 處理器LINUX 操作系統來進行網關的實現, 并在Linux 系統上實現上位機的交互界面進行控制。WSN 的協調器中采用MCU 對采集的數據進行處理,終端節點通過跳變方式在WSN 內部把數據傳給網絡協調器,由協調器中MCU 對數據進行處理打包最后通過串口發送到網關中,在網關中進行解封裝以及重新分裝為TCP/ IP 包并發送到以太網中,這樣就在這兩者之間建立了一條透明的傳輸路線并可以進行數據的傳輸及控制。在上述硬件結構的實現方式上,體現了這種通路的可實現性,現就網關的軟件結構設計方面來說明此網關設計的可實現性。首先,在網關中我們把系統分為幾個層次來實現,最下方的物理層進行接收來自WSN 或是以太網的數據包,這樣需要我們有一個較為穩定的運行平臺來進行,因此在本研究方案中采用Linux 運行平臺來實現,物理層之上就是協議層,這個協議層包括了ZigBee協議棧以及TCP/ IP 協議棧,在數據進行上行以及下行數據傳輸的時候對數據包進行封裝從而作為適應另一方傳輸的包發送出去。協議層之上我們設計了一個應用層,在應用層上有一個網關的應用程序,實現對數據包的協議轉換以及數據的上行下行傳輸。
圖5 網關結構圖
如圖5 所示主要體現了網關中各層表示結構實現。網關在每接收到一個ZigBee數據包后,在其發送之前將其轉換為TCP/ IP 數據包,反之,在此系統中依然成立。
3.3 協議轉換實現
首先,這里要對ZigBee無線模塊的底層驅動進行配置,ZigBee無線模塊與網關的通信主要是串口通信,現今串口通信的技術已經很成熟在此將不再多說,這里主要是針對于各種的開發板不同進行串口的一些配置就可以了。其次,進行本研究最主要的工作,也就是協議轉換的軟件實現。在現今的以太網傳輸中的技術都已經比較成熟,知道源目的MAC 地址就可以實現主機之間的相互通信,當不知道目的主機的MAC 地址時,此時將采用ARP 來進行主機IP 地址與MAC 地址之間的轉換,在TCP/ IP 中此種地址的轉換已經相當的成熟。這樣,本研究根據這樣的方式提出并實現ZigBee的ARP,把之前規定好對應ZigBee無線數傳網絡的虛擬IP 地址通過ARP 找到對應的MAC 地址,這個MAC 地址恰好就可以為ZigBee數傳模塊的16 位地址,這樣在虛擬IP 與MAC 地址之間就建立起來了一個映射表,當然這也與上述所提出的理論算法相一致,這樣所用到的IP 地址就可以映射到ZigBee的節點地址,實現源主機的相互通信。
圖6 協議轉換示意圖
如圖6 所示展示了這一映射的思路,在圖中可以看到在MAC 層上去分別實現TCP/ IP 和ZigBee的ARP 功能,PHY 為物理層。
TCP/ IP 端的ARP 機制已經比較成熟,因此這里主要說一下ZigBee端實現ARP。當網關收到發送到WSN 的數據包時,提取出目的節點的IP 地址,此時就需要啟動ZigBee端的ARP,網關發送一份ARP 請求報文,該報文中包括了目的以及源IP 地址,目的硬件地址填寫的為廣播地址,這樣ZigBee的所有節點就可以收到該報文。目的節點的ARP收到此廣播報文后,識別出這是發送方在詢問它的MAC 地址,于是發送一個ARP 應答報文,請求方收到ARP 的應答報文后,就可以使用目的主機物理地址進行數據包的發送了。上述ZigBee的ARP 工作原理如圖7 所示。
圖7 ZigBee 的ARP 機制實現原理
其次,在互相通信的基礎上來分析一下數據的轉換及傳輸。本文所采用的方法是把傳感器節點當作以太網中的主機來進行處理,為其分配IPV4 的IP 地址“192.168.1.1 ~ 192.168.1.254”,以太網中的主機配置IP 地址“192. 168. 2. 2 ~ 192.168.2.254”這樣當以太網中的主機發送數據時發現目的主機的IP 地址不在本網絡中那么就把此數據包發送到IP地址為“192.168.2.1”的網關中進行處理,傳送到網關中對其數據包進行解封得到目的IP 這樣可以對應查找到是否為配置到WSN 中的IP 地址段中,在對應的地址段中,此時根據ZigBee的ARP 找到目的IP 地址對應的目的MAC 地址,這樣就可以在網關中對數據進行ZigBee的封裝后然后通過串口發送到無線傳感器網絡中去。當然,每一次發送數據時都會把IP 地址與其對應的MAC 地址寫進映射表中,如果此次傳輸的路徑已經在映射表中有了對應的IP 與MAC 地址了,這樣就可以直接找到對應的ZigBee數傳模塊節點的包頭信息進行封裝后發送出去。反之,有ZigBee發送到以太網中的形式就相對簡單一點,直接數據包從協調器中傳送到網關中進行解析目的IP 地址即可,其他步驟就與以太網到WSN 的過程反過來即可。對應查找到是否為配置到WSN 中的IP 地址段中,在對應的地址段中,此時根據ZigBee的ARP 找到目的IP 地址對應的目的MAC 地址,這樣就可以在網關中對數據進行ZigBee的封裝后然后通過串口發送到無線傳感器網絡中去。當然,每一次發送數據時都會把IP 地址與其對應的MAC 地址寫進映射表中,如果此次傳輸的路徑已經在映射表中有了對應的IP 與MAC 地址了,這樣就可以直接找到對應的ZigBee無線模塊節點的包頭信息進行封裝后發送出去。反之,有ZigBee發送到以太網中的形式就相對簡單一點,直接數據包從協調器中傳送到網關中進行解析目的IP 地址即可,其他步驟就與以太網到WSN 的過程反過來即可。如圖8 所示為此數據包轉換的流程圖,根據流程圖來看則轉換的思路則會更為清晰。
圖8 數據包轉換流程圖
4 結束語
本文提出了一種基于ZigBee無線模塊的無線傳感器網絡與IP 互聯網絡通信聯接的數據通信及控制方案。根據網絡互聯的不同需求方式,使用同構結構實現了兩種網絡系統的互聯,通過構建轉換器型的網關,可以在兩種不同的協議之間進行數據通信,實現了以太網絡與無線傳感器網絡系統的通信控制和信息交換功能。本研究所提出的互聯系統方案,可以用于兩種不同協議棧之間的互聯接入方面的應用系統研究,也為不同協議棧之間的轉換互聯提供了一種研究探索的方向。