本發(fā)明涉及通信領域,尤其涉及一種ZigBee節(jié)點的遠距離通信方法和系統(tǒng)、網關設備和ZigBee節(jié)點。
背景技術:
物聯(lián)網協(xié)議(ZigBee)是基于電氣和電子工程師協(xié)會(IEEE)802.15.4標準的低功耗局域網協(xié)議,其特點是近距離、低復雜度、自組織、低功耗、低數(shù)據速率,適用于自動控制和遠程控制領域,是目前物聯(lián)網應用中的一種主流協(xié)議。近年來物聯(lián)網技術快速崛起,已經滲透到了工業(yè)生產和日常生活中的各個領域,隨著物聯(lián)網應用的深入,通過互聯(lián)網協(xié)議(IP)網絡實現(xiàn)跨局域網、長距離的數(shù)據傳輸?shù)男枨笤絹碓綇娏遥鳽igBee協(xié)議受到了的本身近距離傳輸特點的限制。
目前解決ZigBee協(xié)議遠距離通信的方法包括:
一、通過采用國際互聯(lián)網工程任務組(IETF)的IPv6低速無線個域網(6LoWPAN)標準作為新一代智能電網(Smart Energy(SEP 2.0))的標準,致力于形成全球統(tǒng)一的易于與互聯(lián)網集成的網絡,實現(xiàn)端到端的網絡通信。但該標準要求ZigBee傳輸節(jié)點具備對ZigBee和6LoWPAN協(xié)議雙棧的支持,對于早期部署的節(jié)點而言改造量很大。
二、通過引入支持ZigBee/IP協(xié)議翻譯的網關實現(xiàn)ZigBee數(shù)據包在IP網絡上的傳輸,該方案的實現(xiàn)核心問題在于協(xié)議翻譯與應用層的實現(xiàn)關系緊密,實現(xiàn)復雜,對網關的功能和性能都有較高要求。
技術實現(xiàn)要素:
本發(fā)明的目的是提出一種實現(xiàn)ZigBee遠距離通信的方法,通過將ZigBee數(shù)據包封裝在IP數(shù)據包中,實現(xiàn)跨地域的ZigBee網絡節(jié)點或者不 同無線個域網(WPAN)網絡之間的互通。
本發(fā)明實施例提供的一種ZigBee節(jié)點的遠距離通信方法,包括:
源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包時,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包,ZigBee數(shù)據包中包括源ZigBee節(jié)點的節(jié)點標識ID;
通過預先在位于源ZigBee節(jié)點所在WPAN中的封裝模塊與位于目標ZigBee節(jié)點所在WPAN中的解封裝模塊之間建立的IP網絡隧道,將IP數(shù)據包發(fā)送給解封裝模塊;
利用解封裝模塊對IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包;并將ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點。
基于上述ZigBee節(jié)點的遠距離通信的另一實施例中,將ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點包括:
目標ZigBee網關從預先設置的綁定表中獲取源ZigBee節(jié)點的節(jié)點ID綁定的目標ZigBee節(jié)點的節(jié)點ID;綁定表包括ZigBee節(jié)點之間的綁定關系表項;
目標ZigBee網關從預先設置的節(jié)點信息列表中獲取目標ZigBee節(jié)點的節(jié)點ID對應的目標ZigBee節(jié)點的媒體訪問控制(MAC)地址;節(jié)點信息列表包括網關、網關下各節(jié)點的節(jié)點ID和MAC地址信息;
目標ZigBee網關根據目標ZigBee節(jié)點的MAC地址,將解封裝模塊解封裝后的ZigBee數(shù)據包轉發(fā)給目標ZigBee節(jié)點。
基于上述任一ZigBee節(jié)點的遠距離通信的另一實施例中,上述IP網絡包括IPv6網絡。
基于上述ZigBee節(jié)點的遠距離通信的另一實施例中,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包包括:在ZigBee數(shù)據包外層依次添加隧道頭、外層用戶數(shù)據報協(xié)議(UDP)頭、外層IPv6頭和外層以太網頭,得到IP數(shù)據包;其中,隧道頭包括IP網絡的隧道信息,外層UDP頭包括源端口和目標端口,外層IPv6頭包括源IPv6地址和目標IPv6地址,外層以太網頭包括源MAC地址和目標MAC地址;
利用所述解封裝模塊對所述IP數(shù)據包進行解封裝,獲得所述ZigBee 數(shù)據包包括:依次去除IP數(shù)據包的外層以太網頭、外層IPv6頭、外層UDP頭和隧道頭,獲得ZigBee數(shù)據包。
基于上述ZigBee節(jié)點的遠距離通信的另一實施例中,還包括:利用所述解封裝模塊對所述IP數(shù)據包進行解封裝,獲得所述ZigBee數(shù)據包,對ZigBee數(shù)據包進行合法性校驗。
基于上述ZigBee節(jié)點的遠距離通信的另一實施例中,所述封裝模塊和解封裝模塊單獨設置、或耦合設置在源ZigBee網關或目標ZigBee網關中、或者耦合設置在源ZigBee網關或目標ZigBee網關下的其中一個ZigBee節(jié)點中。
基于上述任一ZigBee節(jié)點的遠距離通信的另一實施例中,源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包之前,還包括:在網關中設置節(jié)點信息列表、和/或源ZigBee節(jié)點與目標ZigBee節(jié)點之間進行綁定的操作。
基于上述ZigBee節(jié)點的遠距離通信的另一實施例中,在網關中設置節(jié)點信息列表包括:
ZigBee節(jié)點向所屬的ZigBee網關發(fā)送注冊請求,該注冊請求中包括ZigBee節(jié)點的節(jié)點ID和MAC地址信息;
ZigBee網關在節(jié)點信息列表中記錄該ZigBee網關信息、ZigBee節(jié)點的節(jié)點ID和MAC地址之間的對應關系信息,并向ZigBee節(jié)點返回注冊響應消息。
基于上述ZigBee節(jié)點的遠距離通信的另一實施例中,源ZigBee節(jié)點與目標ZigBee節(jié)點之間進行綁定包括:
源ZigBee網關根據預先配置的綁定信息,針對具有綁定關系的源ZigBee節(jié)點和目標ZigBee節(jié)點,向源ZigBee節(jié)點發(fā)送第一ZigBee綁定請求,以及將第二ZigBee綁定請求封裝為綁定請求IP數(shù)據包,并根據節(jié)點信息列表,通過IP網絡隧道將綁定請求IP數(shù)據包發(fā)送給目標ZigBee網關;
在接收到第一ZigBee綁定請求后,源ZigBee網關接收源ZigBee節(jié)點在通過第一ZigBee綁定請求后反饋的第一綁定響應消息;
目標ZigBee網關對綁定請求IP數(shù)據包進行解封裝,獲得第二ZigBee綁定請求,并根據節(jié)點信息列表將第二ZigBee綁定請求發(fā)送給目標ZigBee節(jié)點;
目標ZigBee網關接收目標ZigBee節(jié)點在通過綁定請求后反饋的第二綁定響應消息,并將第二綁定響應消息封裝為第二綁定響應消息IP數(shù)據包,根據節(jié)點信息列表,通過IP網絡隧道將第二綁定響應消息IP數(shù)據包發(fā)送給源ZigBee網關;
源ZigBee網關對第二綁定響應消息IP數(shù)據包進行解封裝,獲得第二綁定響應消息;
源ZigBee網關在接收到第一綁定響應消息和第二綁定響應消息時,在綁定表中建立源ZigBee節(jié)點與目標ZigBee節(jié)點之間的綁定關系表項。
基于上述ZigBee節(jié)點的遠距離通信的另一實施例中,源ZigBee節(jié)點與目標ZigBee節(jié)點之間進行綁定包括:
所述源ZigBee網關根據預先配置的綁定信息,針對具有綁定關系的所述源ZigBee節(jié)點和所述目標ZigBee節(jié)點,向所述源ZigBee節(jié)點發(fā)送第一ZigBee綁定請求,以及將發(fā)送給目標ZigBee節(jié)點的第二ZigBee綁定請求封裝為綁定請求IP數(shù)據包,并根據節(jié)點信息列表,通過所述IP網絡隧道將所述第二綁定請求IP數(shù)據包發(fā)送給所述目標ZigBee網關;
所述源ZigBee網關接收所述源ZigBee節(jié)點在通過所述第一ZigBee綁定請求后反饋的第一綁定響應消息;
所述目標ZigBee網關對所述第二綁定請求IP數(shù)據包進行解封裝,獲得所述第二ZigBee綁定請求,并根據節(jié)點信息列表將所述第二ZigBee綁定請求發(fā)送給所述目標ZigBee節(jié)點;
所述目標ZigBee網關接收所述目標ZigBee節(jié)點在通過綁定請求后反饋的第二綁定響應消息,并將所述第二綁定響應消息封裝為第二綁定響應消息IP數(shù)據包,根據所述節(jié)點信息列表,通過所述IP網絡隧道將所述第二綁定響應消息IP數(shù)據包發(fā)送給所述源ZigBee網關;
所述源ZigBee網關對所述第二綁定響應消息IP數(shù)據包進行解封裝,獲得所述第二綁定響應消息;
所述源ZigBee網關在接收到所述第一綁定響應消息和所述第二綁定響應消息時,在綁定表中建立所述源ZigBee節(jié)點與所述目標ZigBee節(jié)點之間的綁定關系表項。
基于上述任一ZigBee節(jié)點的遠距離通信的另一實施例中,所述源ZigBee節(jié)點與目標ZigBee節(jié)點之間進行綁定包括:
所述源ZigBee網關接收所述源ZigBee節(jié)點發(fā)送的第三ZigBee綁定請求,并將所述第三ZigBee綁定請求封裝為第三綁定請求IP數(shù)據包,通過所述IP網絡隧道將所述第三綁定請求IP數(shù)據包發(fā)送給所述目標ZigBee網關;
所述目標ZigBee網關對所述第三綁定請求IP數(shù)據包后進行解封裝,獲得所述第三ZigBee綁定請求,并根據節(jié)點信息列表將所述第三ZigBee綁定請求發(fā)送給所述目標ZigBee節(jié)點;
所述目標ZigBee網關接收所述目標ZigBee節(jié)點在通過綁定請求后反饋的第三綁定響應消息,并將所述第三綁定響應消息封裝為第三綁定響應消息IP數(shù)據包,根據所述節(jié)點信息列表,通過所述IP網絡隧道將所述第三綁定響應消息IP數(shù)據包發(fā)送給所述源ZigBee網關;
所述源ZigBee網關對所述第三綁定響應消息IP數(shù)據包進行解封裝,獲得所述第三綁定響應消息;
所述源ZigBee網關在接收到第三綁定響應消息時,在綁定表中建立所述源ZigBee節(jié)點與所述目標ZigBee節(jié)點之間的綁定關系表項。
基于上述任一ZigBee節(jié)點的遠距離通信的另一實施例中,還包括:
源ZigBee網關與目標ZigBee網關中的任意一個ZigBee網關,按照預設周期或實時向另一個ZigBee網關同步自身存儲的節(jié)點信息列表與綁定表;或者
源ZigBee網關與目標ZigBee網關中的任意一個ZigBee網關,在自身存儲的節(jié)點信息列表、綁定表變化時,向另一個ZigBee網關同步變化后的節(jié)點信息列表、綁定表。
基于上述任一ZigBee節(jié)點的遠距離通信的另一實施例中,還包括:目標ZigBee節(jié)點接收到ZigBee數(shù)據包后,根據其中攜帶的應用信息執(zhí) 行相應操作。
本發(fā)明實施例還提供一種網關設備,作為ZigBee網關,位于第一WPAN中,包括:ZigBee協(xié)議棧模塊,其特征在于,還包括:
接收模塊,用于接收源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包;或者,接收通過IP網絡隧道發(fā)送的IP數(shù)據包;
封裝/解封裝模塊,用于將所述接收模塊接收到的ZigBee數(shù)據包封裝為IP數(shù)據包;或者,將所述接收模塊接收到的IP數(shù)據包解封裝為ZigBee數(shù)據包;
發(fā)送模塊,用于將所述封裝/解封裝模塊封裝得到的IP數(shù)據包通過預先在位于所述封裝/解封裝模塊和目標ZigBee節(jié)點所在第二WPAN中的另一封裝/解封裝模塊之間建立的IP網絡隧道發(fā)送給接收方;所述源ZigBee節(jié)點與所述目標ZigBee節(jié)點位于不同的WPAN中,所述接收方位于所述第二WPAN中;所述接收方包括ZigBee網關或ZigBee節(jié)點。
基于上述網關設備的另一實施例中,還包括:
獲取模塊,用于從預先設置的綁定表中獲取所述源ZigBee節(jié)點的節(jié)點ID綁定的目標ZigBee節(jié)點的節(jié)點ID,所述綁定表包括ZigBee節(jié)點之間的綁定關系表項;以及從預先設置的節(jié)點信息列表中獲取所述目標ZigBee節(jié)點的節(jié)點ID對應的目標ZigBee節(jié)點的MAC地址,所述節(jié)點信息列表包括ZigBee網關、ZigBee網關下各節(jié)點的節(jié)點ID和MAC地址信息;
存儲模塊,用于存儲所述綁定表和所述節(jié)點信息列表;
所述發(fā)送模塊,還用于根據所述獲取模塊獲取的所述目標ZigBee節(jié)點的MAC地址,將所述ZigBee數(shù)據包發(fā)送給所述目標ZigBee節(jié)點。
基于上述網關設備的另一實施例中,IP網絡包括IPv6網絡。
基于上述網關設備的另一實施例中,所述封裝/解封裝模塊將ZigBee數(shù)據包封裝為IP數(shù)據包時,具體在所述ZigBee數(shù)據包外層依次添加隧道頭、外層UDP頭、外層IPv6頭和外層以太網頭,得到所述IP數(shù)據包,所述隧道頭包括所述IP網絡的隧道信息,所述外層UDP頭包括源端口和目標端口,所述外層IPv6頭包括源IPv6地址和目標IPv6地址,所述 外層以太網頭包括源MAC地址和目標MAC地址;或者,將IP數(shù)據包解封裝為所述ZigBee數(shù)據包時,具體將所述IP數(shù)據包去除外層以太網頭、外層IPv6頭、外層UDP頭和隧道頭,獲得所述ZigBee數(shù)據包。
基于上述網關設備的另一實施例中,封裝/解封裝模塊還用于對ZigBee數(shù)據包進行合法性校驗。
基于上述任一網關設備的另一實施例中,
接收模塊還用于接收ZigBee節(jié)點發(fā)送的注冊請求,該注冊請求中包括ZigBee節(jié)點的節(jié)點ID和MAC地址信息;
該網關設備還包括:
記錄模塊,用于在接收模塊接收到所述注冊請求后,在節(jié)點信息列表中記錄所述ZigBee網關信息、所述ZigBee節(jié)點的節(jié)點ID和MAC地址之間的對應關系信息;并指示所述發(fā)送模塊向所述ZigBee節(jié)點返回注冊響應消息。
所述發(fā)送模塊,還用于根據所述記錄模塊的指示,向所述ZigBee節(jié)點返回注冊響應消息。
基于上述網關設備的另一實施例中,所述發(fā)送模塊,還用于根據預先配置的綁定信息,針對具有綁定關系的所述源ZigBee節(jié)點和所述目標ZigBee節(jié)點,向所述源ZigBee節(jié)點發(fā)送第一ZigBee綁定請求,以及根據節(jié)點信息列表,將所述封裝/解封裝模塊封裝得到的第二綁定請求IP數(shù)據包,通過所述IP網絡隧道發(fā)送給所述目標ZigBee網關;或者,根據所述封裝/解封裝模塊的指示,根據節(jié)點信息列表將第二ZigBee綁定請求發(fā)送給所述目標ZigBee節(jié)點,以及根據所述封裝/解封裝模塊的指示,根據所述節(jié)點信息列表,通過所述IP網絡隧道將所述第二綁定響應消息IP數(shù)據包發(fā)送給所述源ZigBee網關;
所述封裝/解封裝模塊,還用于將發(fā)送給目標ZigBee節(jié)點的第二ZigBee綁定請求封裝為綁定請求IP數(shù)據包;或者,對所述接收模塊接收的所述第二綁定請求IP數(shù)據包進行解封裝,獲得所述第二ZigBee綁定請求,并指示所述發(fā)送模塊將所述第二ZigBee綁定請求發(fā)送給所述目標ZigBee節(jié)點;或者,將所述接收模塊接收的所述第二綁定響應消息封裝 為第二綁定響應消息IP數(shù)據包,并指示所述發(fā)送模塊將將所述第二綁定響應消息IP數(shù)據包發(fā)送給所述源ZigBee網關;或者,對所述接收模塊接收的所述第二綁定響應消息IP數(shù)據包進行解封裝,獲得所述第二綁定響應消息;
所述接收模塊,還用于接收通過IP網絡隧道發(fā)送的第二綁定請求IP數(shù)據包,以及接收目標ZigBee節(jié)點在通過綁定請求后反饋的第二綁定響應消息;或者,接收源ZigBee節(jié)點在通過綁定請求后反饋的第一綁定響應消息;
所述記錄模塊,還用于在接收模塊接收到所述第一綁定響應消息和所述第二綁定響應消息時,在綁定表中建立所述源ZigBee節(jié)點與所述目標ZigBee節(jié)點之間的綁定關系表項。
基于上述網關設備的另一實施例中,所述接收模塊,還用于接收源ZigBee節(jié)點發(fā)送的第三ZigBee綁定請求;或者,接收通過IP網絡隧道發(fā)送的第三綁定請求IP數(shù)據包,以及接收所述目標ZigBee節(jié)點在通過綁定請求后反饋的第三綁定響應消息;
所述發(fā)送模塊,還用于根據節(jié)點信息列表,將封裝/解封裝模塊封裝得到的所述第三綁定請求IP數(shù)據包通過所述IP網絡隧道發(fā)送給所述目標ZigBee網關,以及根據所述封裝/解封裝模塊的指示,根據所述節(jié)點信息列表,通過所述IP網絡隧道將所述第三綁定響應消息IP數(shù)據包發(fā)送給所述源ZigBee網關;或者,根據所述封裝/解封裝模塊的指示,根據節(jié)點信息列表將封裝/解封裝模塊解封裝得到的第三ZigBee綁定請求發(fā)送給所述目標ZigBee節(jié)點;
所述封裝/解封裝模塊,還用于將接收模塊接收到的所述第三ZigBee綁定請求封裝為第三綁定請求IP數(shù)據包,以及對接收模塊接收的所述第三綁定響應消息IP數(shù)據包進行解封裝,獲得所述第三綁定響應消息;或者,對所述第三綁定請求IP數(shù)據包進行解封裝,獲得所述第三ZigBee綁定請求,并指示所述發(fā)送模塊將所述第三ZigBee綁定請求發(fā)送給所述目標ZigBee節(jié)點,以及將接收模塊接收的所述第三綁定響應消息封裝為第三綁定響應消息IP數(shù)據包,并指示所述發(fā)送模塊將將所述第三綁定響 應消息IP數(shù)據包發(fā)送給源ZigBee網關;
所述記錄模塊,還用于在接收模塊接收到所述第三綁定響應消息時,在綁定表中建立所述源ZigBee節(jié)點與所述目標ZigBee節(jié)點之間的綁定關系表項。
基于上述任一網關設備的另一實施例中,還包括同步模塊,用于按照預設周期或實時向另一個ZigBee網關同步自身存儲的節(jié)點信息列表與綁定表;或者在自身存儲的節(jié)點信息列表、綁定表變化時,向另一個ZigBee網關同步變化后的節(jié)點信息列表、綁定表。
本發(fā)明實施例還提供一種ZigBee節(jié)點,包括ZigBee協(xié)議棧模塊,其特征在于,還包括:
封裝/解封裝模塊,用于將所述ZigBee協(xié)議棧模塊生成的ZigBee數(shù)據包封裝為IP數(shù)據包;或者,將接收模塊接收到的IP數(shù)據包解封裝為ZigBee數(shù)據包;
發(fā)送模塊,用于將所述封裝/解封裝模塊封裝得到的IP數(shù)據包通過預先在所述ZigBee節(jié)點與接收方之間建立的IP網絡隧道發(fā)送給所述接收方;其中,所述接收方位于目標ZigBee節(jié)點所在的WPAN中,所述接收方包括ZigBee網關或ZigBee節(jié)點;所述目標ZigBee節(jié)點與所述ZigBee節(jié)點位于不同的WPAN中;
接收模塊,用于接收通過所述IP網絡隧道發(fā)送的所述IP數(shù)據包。
基于上述ZigBee節(jié)點的另一實施例中,所述IP網絡包括IPv6網絡。
基于上述ZigBee節(jié)點的另一實施例中,所述封裝/解封裝模塊將ZigBee數(shù)據包封裝為IP數(shù)據包時,具體在所述ZigBee數(shù)據包外層依次添加隧道頭、外層UDP頭、外層IPv6頭和外層以太網頭,得到所述IP數(shù)據包;其中,所述隧道頭包括所述IP網絡的隧道信息,所述外層UDP頭包括源端口和目標端口,所述外層IPv6頭包括源IPv6地址和目標IPv6地址,所述外層以太網頭包括源MAC地址和目標MAC地址;或者,
所述封裝/解封裝模塊IP數(shù)據包解封裝為ZigBee數(shù)據包時,具體將所述IP數(shù)據包去除外層以太網頭、外層IPv6頭、外層UDP頭和隧道頭,獲得所述ZigBee數(shù)據包。
基于上述ZigBee節(jié)點的另一實施例中,所述封裝/解封裝模塊,還用于對所述ZigBee數(shù)據包進行合法性校驗。
基于上述任一ZigBee節(jié)點的另一實施例中,所述發(fā)送模塊,還用于向所屬的ZigBee網關發(fā)送注冊請求,所述注冊請求中包括ZigBee節(jié)點的節(jié)點ID和MAC地址信息;
所述接收模塊,還用于接收所述ZigBee網關返回的注冊響應消息。
基于上述任一ZigBee節(jié)點的另一實施例中,所述接收模塊,還用于接收所述ZigBee網關發(fā)送的ZigBee綁定請求;
所述發(fā)送模塊,還用于在通過所述ZigBee綁定請求后向所述ZigBee網關反饋綁定響應消息。
基于上述任一ZigBee節(jié)點的另一實施例中,還包括執(zhí)行模塊,用于根據所述封裝/解封裝模塊解封裝后的ZigBee數(shù)據包中攜帶的應用信息執(zhí)行相應操作。
本發(fā)明實施例還提供一種ZigBee節(jié)點的遠距離通信的系統(tǒng),其特征在于,包括:
源ZigBee節(jié)點,位于第一WPAN中,用于在與第二WPAN中的目標ZigBee節(jié)點通信時,向目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包;
封裝模塊,位于所述第一WPAN中,用于將所述源ZigBee節(jié)點發(fā)送的所述ZigBee數(shù)據包封裝為IP數(shù)據包,所述ZigBee數(shù)據包中包括源ZigBee節(jié)點的節(jié)點ID;
第一發(fā)送模塊,位于所述第一WPAN中,用于通過預先在封裝模塊與解封裝模塊之間建立的IP網絡隧道,將所述封裝模塊封裝后的所述IP數(shù)據包發(fā)送給解封裝模塊;
解封裝模塊,位于所述第二WPAN中,用于對所述第一發(fā)送模塊發(fā)送的所述IP數(shù)據包進行解封裝,獲得所述ZigBee數(shù)據包;
第二發(fā)送模塊,位于所述第二WPAN中,用于將所述解封裝模塊解封裝后的所述ZigBee數(shù)據包發(fā)送給所述目標ZigBee節(jié)點;
目標ZigBee節(jié)點,用于接收所述第二發(fā)送模塊發(fā)送的所述ZigBee數(shù)據包。
基于上述ZigBee節(jié)點的遠距離通信的系統(tǒng)的另一實施例中,所述封裝模塊與所述第一發(fā)送模塊耦合設置在源ZigBee網關或所述源ZigBee節(jié)點中;和/或
所述解封裝模塊與所述第二發(fā)送模塊耦合設置在目標ZigBee網關或目標ZigBee節(jié)點中。
基于上述ZigBee節(jié)點的遠距離通信的系統(tǒng)的另一實施例中,所述解封裝模塊與所述第二發(fā)送模塊還耦合設置在源ZigBee網關或所述源ZigBee節(jié)點中;和/或
所述封裝模塊與所述第一發(fā)送模塊還耦合設置在所述目標ZigBee網關或目標ZigBee節(jié)點中。
基于上述ZigBee節(jié)點的遠距離通信的系統(tǒng)的另一實施例中,所述系統(tǒng)還包括目標ZigBee網關,用于從預先設置的綁定表中獲取所述源ZigBee節(jié)點的節(jié)點ID綁定的目標ZigBee節(jié)點的節(jié)點ID,所述綁定表包括ZigBee節(jié)點之間的綁定關系表項;以及從預先設置的節(jié)點信息列表中獲取所述目標ZigBee節(jié)點的節(jié)點ID對應的目標ZigBee節(jié)點的MAC地址,所述節(jié)點信息列表包括網關、網關下各節(jié)點的節(jié)點ID和MAC地址信息;并根據所述目標ZigBee節(jié)點的MAC地址,將所述解封裝模塊解封裝后的所述ZigBee數(shù)據包轉發(fā)給所述目標ZigBee節(jié)點。
基于上述ZigBee節(jié)點的遠距離通信的系統(tǒng)的另一實施例中,所述源ZigBee網關和所述目標ZigBee網關具體為權利要求13-21任意一項所述的網關設備;或者,所述源ZigBee節(jié)點與所述目標ZigBee節(jié)點具體為權利要求22-28任意一項所述的ZigBee節(jié)點。
本發(fā)明實施例提出的上述ZigBee節(jié)點的遠距離通信的方法和系統(tǒng)、網關設備和ZigBee節(jié)點,源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包時,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包,通過預先在位于源ZigBee節(jié)點所在WPAN中的封裝模塊與位于目標ZigBee節(jié)點所在WPAN中的解封裝模塊之間建立的IP網絡隧道,將IP數(shù)據包發(fā)送給解封裝模塊;利用解封裝模塊對IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包;并將該ZigBee數(shù)據包發(fā)送 給目標ZigBee節(jié)點,實現(xiàn)了ZigBee節(jié)點的遠距離通信,本發(fā)明通過增強網關功能實現(xiàn),與應用層功能復雜度無關,實現(xiàn)簡單,且兼容早期部署的ZigBee設備而無需大規(guī)模改造,實現(xiàn)成本低。
附圖說明
構成說明書的一部分的附圖描述了本發(fā)明的實施例,并且連同描述一起用于解釋本發(fā)明的原理。
參照附圖,根據下面的詳細描述,可以更加清楚地理解本發(fā)明,其中:
圖1為本發(fā)明ZigBee節(jié)點的遠距離通信方法一個實施例的流程示意圖。
圖2為本發(fā)明ZigBee節(jié)點的遠距離通信方法另一個實施例的流程示意圖。
圖3是ZigBee協(xié)議棧的結構示意圖。
圖4是封裝模塊封裝后的IP數(shù)據包的結構示意圖。
圖5為本發(fā)明ZigBee節(jié)點的遠距離通信方法又一個實施例的流程示意圖。
圖6為本發(fā)明ZigBee節(jié)點的遠距離通信方法再一個實施例的流程示意圖。
圖7為本發(fā)明ZigBee節(jié)點的遠距離通信方法一個應用實施例的流程示意圖。
圖8為本發(fā)明網關設備一個實施例的結構示意圖。
圖9為本發(fā)明網關設備另一個實施例的結構示意圖。
圖10為本發(fā)明網關設備又一個實施例的結構示意圖。
圖11為本發(fā)明網關設備再一個實施例的結構示意圖。
圖12為本發(fā)明ZigBee節(jié)點一個實施例的結構示意圖。
圖13為本發(fā)明ZigBee節(jié)點另一個實施例的結構示意圖。
圖14為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)一個實施例的結構示意圖。
圖15為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)另一個實施例的結構示意圖。
圖16為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)又一個實施例的結構示意圖。
圖17為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)再一個實施例的結構示意圖。
圖18為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)再又一個實施例的結構示意圖。
圖19為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)一個應用實施例的結構示意圖。
具體實施方式
現(xiàn)在將參照附圖來詳細描述本發(fā)明的各種示例性實施例。應注意到:除非另外具體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數(shù)字表達式和數(shù)值不限制本發(fā)明的范圍。
同時,應當明白,為了便于描述,附圖中所示出的各個部分的尺寸并不是按照實際的比例關系繪制的。
以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應用或使用的任何限制。
對于相關領域普通技術人員已知的技術、方法和設備可能不作詳細討論,但在適當情況下,所述技術、方法和設備應當被視為說明書的一部分。
在這里示出和討論的所有示例中,任何具體值應被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實施例的其它示例可以具有不同的值。
應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步討論。
圖1為本發(fā)明ZigBee節(jié)點的遠距離通信方法一個實施例的流程示意 圖,如圖1所示,該實施例的ZigBee節(jié)點的遠距離通信方法包括:
101,源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包時,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包。
其中,ZigBee數(shù)據包中包括源ZigBee節(jié)點的節(jié)點標識ID;封裝模塊可以是數(shù)據包隧道(Packet Tunnel)封裝模塊,Packet Tunnel封裝是通過在ZigBee數(shù)據包外層依次添加隧道頭、外層UDP頭、外層IPv6頭和外層以太網頭,得到IP數(shù)據包。
由于現(xiàn)有通用路由封裝(GRE)作為第三層隧道需要有路由器支持,Packet Tunnel封裝相比GRE,Packet Tunnel封裝部署更為靈活,對于物聯(lián)網的互通有重要意義。
102,通過預先在位于源ZigBee節(jié)點所在WPAN中的封裝模塊與位于目標ZigBee節(jié)點所在WPAN中的解封裝模塊之間建立的IP網絡隧道,將IP數(shù)據包發(fā)送給解封裝模塊。
具體地,上述IP網絡可以是IPv6網絡。
103,利用解封裝模塊對IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包。
在一個具體示例,解封裝模塊可以是Packet Tunnel解封裝模塊,Packet Tunnel解封裝是通過依次去除IP數(shù)據包的外層以太網頭、外層IPv6頭、外層UDP頭和隧道頭,獲得ZigBee數(shù)據包。
104,將ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點。
本發(fā)明實施例提出的上述ZigBee節(jié)點的遠距離通信的方法,源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包時,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包,通過預先在位于源ZigBee節(jié)點所在WPAN中的封裝模塊與位于目標ZigBee節(jié)點所在WPAN中的解封裝模塊之間建立的IP網絡隧道,將IP數(shù)據包發(fā)送給解封裝模塊;利用解封裝模塊對IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包;并將該ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點,實現(xiàn)了ZigBee節(jié)點的遠距離通信,本發(fā)明實施例通過增強網關功能實現(xiàn),與應用層功能復雜度無關,實現(xiàn)簡單,且兼容早期部署的ZigBee設備而無 需大規(guī)模改造,實現(xiàn)成本低。
圖2為本發(fā)明ZigBee節(jié)點的遠距離通信方法另一個實施例的流程示意圖,如圖2所示,該實施例的ZigBee節(jié)點的遠距離通信方法包括:
201,源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包時,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包。
在一個應用實施例中,圖3是ZigBee協(xié)議棧的結構示意圖,如圖3所示,ZigBee協(xié)議棧包括應用支持子層(APS),網絡層(NWK),MAC層,物理層(PHY)。封裝模塊是在ZigBee數(shù)據包外層依次添加隧道頭、外層用戶數(shù)據報協(xié)議UDP頭、外層IPv6頭和外層以太網頭,得到IP數(shù)據包。圖4是封裝模塊封裝后的IP數(shù)據包的結構示意圖,整個IP數(shù)據包可以看作是一個IPv6數(shù)據報文,如圖4所示,該結構從下到上依次是幀校驗序列(FCS)、ZigBee數(shù)據包、隧道頭(Tunnel Header)、外層UDP頭(Outer UDP Header)、外層IPv6頭(Outer IPv6Header)和外層以太網頭(Outer Ethernet Header)。
其中,F(xiàn)CS指的是以太網數(shù)據報文的校驗序列,用于校驗以太網數(shù)據報文。
隧道頭包括IP網絡的隧道信息,由于同一個節(jié)點可能創(chuàng)建不同的隧道,隧道信息中包含隧道標示,用于唯一標示一個隧道。
外層UDP頭包括源端口、目標端口、UDP數(shù)據長度和UDP校驗和,源端口和目標端口可以事先協(xié)商。在物聯(lián)網場景下,為了節(jié)省封裝的性能開銷,UDP的校驗和可以不用計算,直接以ZigBee報文的合法性為準。
外層IPv6頭主要包括源IPv6地址和目標IPv6地址,還可以包括IPv6的協(xié)議版本號信息、載荷長度;其中,載荷長度是指外層IPv6頭后所有的其他數(shù)據的長度。
外層以太網頭包括源MAC地址和目標MAC地址。
在一個具體示例中,假設有兩個網關1和網關2,網關1的IPv6地址是3000::1,網關2的IPv6地址是3000::2,封裝后的ZigBee數(shù)據包 從外層看起來就是一個網關1發(fā)向網關2的UDP數(shù)據包,因而ZigBee數(shù)據包外層添加的信息比如外層以太網頭,就是網關1和網關2的MAC地址。
202,通過預先在位于源ZigBee節(jié)點所在WPAN中的封裝模塊與位于目標ZigBee節(jié)點所在WPAN中的解封裝模塊之間建立的IP網絡隧道,將IP數(shù)據包發(fā)送給解封裝模塊。
203,利用解封裝模塊對IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包。
具體地,解封裝模塊依次去除IP數(shù)據包的外層以太網頭、外層IPv6頭、外層UDP頭和隧道頭,獲得ZigBee數(shù)據包。
204,目標ZigBee網關從預先設置的綁定表中獲取源ZigBee節(jié)點的節(jié)點ID綁定的目標ZigBee節(jié)點的節(jié)點ID。
其中,綁定表包括ZigBee節(jié)點之間的綁定關系表項。
205,目標ZigBee網關從預先設置的節(jié)點信息列表中獲取目標ZigBee節(jié)點的節(jié)點ID對應的目標ZigBee節(jié)點的MAC地址。
其中,節(jié)點信息列表包括ZigBee網關、ZigBee網關下各節(jié)點的節(jié)點ID和MAC地址信息。
206,目標ZigBee網關根據目標ZigBee節(jié)點的MAC地址,將ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點。
在本發(fā)明上述各實施例中,上述IP網絡可以是IPv6網絡。
基于本發(fā)明上述ZigBee節(jié)點的遠距離通信方法的另一實施例中,將IP數(shù)據包解封裝為ZigBee數(shù)據包還包括:對ZigBee數(shù)據包進行合法性校驗。
具體地,對ZigBee數(shù)據包進行合法性校驗可以通過圖3中ZigBee協(xié)議格式中的校驗位(MFR)攜帶的校驗值進行合法性檢驗。
在本發(fā)明上述各實施例中,封裝模塊和解封裝模塊可以單獨設置,也可以耦合設置在源ZigBee網關或目標ZigBee網關中、或者耦合設置在源ZigBee網關下或目標ZigBee網關下的其中一個ZigBee節(jié)點中。
具體地,當上述封裝模塊和解封裝模塊設置在ZigBee節(jié)點中時,該ZigBee節(jié)點本身的功能就會有別于其他節(jié)點,它會擁有自己的IPv6地址, 可作為通信隧道的一個端點;同時,該ZigBee節(jié)點可以跨IP網絡與目標ZigBee節(jié)點同處于一個WPAN中,共同由一個ZigBee網關管理。
基于本發(fā)明上述任一ZigBee節(jié)點的遠距離通信方法的另一實施例中,源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包之前,還包括:在網關中設置節(jié)點信息列表、和/或源ZigBee節(jié)點與目標ZigBee節(jié)點之間進行綁定的操作。
具體地,在網關中設置節(jié)點信息列表包括以下步驟:
A、ZigBee節(jié)點向所屬的ZigBee網關發(fā)送注冊請求,該注冊請求中包括ZigBee節(jié)點的節(jié)點ID和MAC地址信息。
B、ZigBee網關在節(jié)點信息列表中記錄該ZigBee網關信息、ZigBee節(jié)點的節(jié)點ID和MAC地址之間的對應關系信息,并向ZigBee節(jié)點返回注冊響應消息。
圖5為本發(fā)明ZigBee節(jié)點的遠距離通信方法又一個實施例的流程示意圖,該實施例是源ZigBee網關向源ZigBee節(jié)點和目標ZigBee節(jié)點發(fā)起綁定的過程,如圖5所示,該實施例的ZigBee節(jié)點的遠距離通信方法包括:
301,源ZigBee網關根據預先配置的綁定信息,針對具有綁定關系的源ZigBee節(jié)點和目標ZigBee節(jié)點,向源ZigBee節(jié)點發(fā)送第一ZigBee綁定請求,將第二ZigBee綁定請求封裝為第二綁定請求IP數(shù)據包,并根據節(jié)點信息列表,通過IP網絡隧道將第二綁定請求IP數(shù)據包發(fā)送給目標ZigBee網關。
302,在接收到第一ZigBee綁定請求后,源ZigBee網關接收源ZigBee節(jié)點在通過第一ZigBee綁定請求后反饋的第一綁定響應消息。
303,目標ZigBee網關對第二綁定請求IP數(shù)據包進行解封裝,獲得第二ZigBee綁定請求,并根據節(jié)點信息列表將第二ZigBee綁定請求發(fā)送給目標ZigBee節(jié)點。
304,目標ZigBee網關接收目標ZigBee節(jié)點在通過綁定請求后反饋的第二綁定響應消息,并將第二綁定響應消息封裝為第二綁定響應消息IP數(shù)據包,根據節(jié)點信息列表,通過IP網絡隧道將第二綁定響應消息 IP數(shù)據包發(fā)送給源ZigBee網關。
305,源ZigBee網關對第二綁定響應消息IP數(shù)據包進行解封裝,獲得第二綁定響應消息。
306,源ZigBee網關在接收到第一綁定響應消息和第二綁定響應消息時,在綁定表中建立源ZigBee節(jié)點與目標ZigBee節(jié)點之間的綁定關系表項。
在該實施例中,步驟302和步驟303、304、305無時間先后執(zhí)行順序。
圖6為本發(fā)明ZigBee節(jié)點的遠距離通信方法再一個實施例的流程示意圖,該實施例是源ZigBee節(jié)點向目標ZigBee節(jié)點發(fā)起綁定的過程,如圖6所示,該實施例的ZigBee節(jié)點的遠距離通信方法包括:
401,源ZigBee網關接收源ZigBee節(jié)點發(fā)送的第三ZigBee綁定請求,并將第三ZigBee綁定請求封裝為第三綁定請求IP數(shù)據包,通過IP網絡隧道將第三綁定請求IP數(shù)據包發(fā)送給目標ZigBee網關。
402,目標ZigBee網關對第三綁定請求IP數(shù)據包后進行解封裝,獲得第三ZigBee綁定請求,并根據節(jié)點信息列表將第三ZigBee綁定請求發(fā)送給目標ZigBee節(jié)點。
403,目標ZigBee網關接收目標ZigBee節(jié)點在通過綁定請求后反饋的第三綁定響應消息,并將第三綁定響應消息封裝為第三綁定響應消息IP數(shù)據包,根據節(jié)點信息列表,通過IP網絡隧道將第三綁定響應消息IP數(shù)據包發(fā)送給源ZigBee網關。
404,源ZigBee網關對第三綁定響應消息IP數(shù)據包進行解封裝,獲得第三綁定響應消息。
405,源ZigBee網關在接收到第三綁定響應消息時,在綁定表中建立源ZigBee節(jié)點與目標ZigBee節(jié)點之間的綁定關系表項。
在上述圖5和圖6實施例中,源ZigBee節(jié)點與目標ZigBee節(jié)點綁定是ZigBee通信的一個重要組成部分;綁定指的是兩個ZigBee節(jié)點在應用層上建立一條邏輯鏈路。源ZigBee節(jié)點與目標ZigBee節(jié)點綁定關系建立后,源ZigBee節(jié)點的應用服務即可向目標節(jié)點發(fā)送數(shù)據,源 ZigBee節(jié)點與目標ZigBee節(jié)點的綁定可以是一對一綁定,也可以是一對多綁定。另外,源ZigBee網關和目標ZigBee網關同時具有封裝和解封裝功能。
基于本發(fā)明上述任一ZigBee節(jié)點的遠距離通信方法的另一實施例中,源ZigBee網關在綁定表中建立源ZigBee節(jié)點與目標ZigBee節(jié)點之間的綁定關系表項后還包括:源ZigBee網關與目標ZigBee網關之間的信息同步過程。
具體地,源ZigBee網關與目標ZigBee網關中的任意一個ZigBee網關,按照預設周期或實時向另一個ZigBee網關同步自身存儲的節(jié)點信息列表與綁定表?;蛘?,源ZigBee網關與目標ZigBee網關中的任意一個ZigBee網關,在自身存儲的節(jié)點信息列表、綁定表變化時,向另一個ZigBee網關同步變化后的節(jié)點信息列表、綁定表。
另外,在本發(fā)明ZigBee節(jié)點的遠距離通信方法的另一個實施例中,
源ZigBee網關與目標ZigBee網關的通信可以通過手工配置或者自動配置進行實現(xiàn)。手工配置是人工輸入命令,包括節(jié)點信息、綁定表和隧道信息。自動配置需要一個第三方控制單元完成,例如,SDN控制器,該SDN控制器會維護一個隧道信息表,為不同隧道分配ID和基本通信的信息。
基于本發(fā)明上述任一ZigBee節(jié)點的遠距離通信方法的另一實施例中,目標ZigBee節(jié)點接收到ZigBee數(shù)據包后,根據其中攜帶的應用信息執(zhí)行相應操作。
例如:在一個燈光網絡中,有多個開關和燈光設備,每一個開關可以控制一個或以上的燈光設備,源ZigBee節(jié)點可以設置在開關上,目標ZigBee節(jié)點可以設置在燈光設備上;當需要通過開關控制燈光設備時,開關可以通過源ZigBee節(jié)點向目標ZigBee節(jié)點發(fā)送開關信息ZigBee數(shù)據包,目標ZigBee節(jié)點在收到該開關信息ZigBee數(shù)據包后控制打開燈光設備。
圖7為本發(fā)明ZigBee節(jié)點的遠距離通信方法一個應用實施例的流程示意圖。如圖7所示,在該實施例中,節(jié)點A、B、C均為普通ZigBee節(jié)點,其中節(jié)點A與網關1處于WPAN1中,節(jié)點B、C與網關2處于 WPAN2中。該實施例的ZigBee節(jié)點的遠距離通信方法包括準備過程、綁定過程和通信過程三個階段,其中:
準備過程包括:
501,ZigBee節(jié)點向所屬的ZigBee網關發(fā)送注冊請求。
501_1,節(jié)點A申請加入WPAN1。
501_2,節(jié)點B申請加入WPAN2。
501_3,節(jié)點C申請加入WPAN2。
其中,步驟501_1、501_2和501_3的執(zhí)行無時間先后順序。
502,ZigBee網關向ZigBee節(jié)點返回注冊響應消息。
502_1,網關1通過節(jié)點A的申請。
502_2,網關2通過節(jié)點B的申請。
502_3,網關3通過節(jié)點C的申請。
其中,步驟502_1、502_2和502_3的執(zhí)行無時間先后順序。
503,網關1與網關2建立IP網絡隧道,并同步節(jié)點信息。
綁定過程包括:
504,網關1分別向節(jié)點A、B和C發(fā)起綁定請求。
504_1,網關1向節(jié)點A發(fā)送第一綁定請求。
504_2,網關1將第二綁定請求封裝為第二綁定請求IP數(shù)據包,并根據節(jié)點信息列表,通過IP網絡隧道將第二綁定請求IP數(shù)據包發(fā)送給網關2。
504_3,網關1第二綁定請求IP數(shù)據包進行解封裝,獲得第二綁定請求,并根據節(jié)點信息列表將第二綁定請求分
別發(fā)送給節(jié)點B。
504_4,網關1第二綁定請求IP數(shù)據包進行解封裝,獲得第二綁定請求,并根據節(jié)點信息列表將第二綁定請求分
別發(fā)送給節(jié)點C。
其中,步驟504_1和504_2的執(zhí)行無時間先后順序,步驟504_3和504_4的執(zhí)行無時間先后順序。
505,節(jié)點A、B和C分別向網關1發(fā)送綁定響應消息
505_1,節(jié)點A在接收到第一綁定請求后,向網關1發(fā)送第一綁定響應消息,通過網關1的綁定請求。
505_2,節(jié)點B在接收到第二綁定請求后,向網關2發(fā)送第二綁定響應消息,通過網關1的綁定請求。
505_3,節(jié)點C在接收到第二綁定請求后,向網關2發(fā)送第二綁定響應消息,通過網關1的綁定請求。
其中,步驟503_1、505_2和505_3的執(zhí)行無時間先后順序。
506,網關2將第二綁定響應消息封裝為第二綁定響應消息
IP數(shù)據包,根據節(jié)點信息列表,通過IP網絡隧道將第二綁定響應消息IP數(shù)據包發(fā)送給網關1
507,網關1向網關2同步綁定信息。
通信過程包括:
508,節(jié)點A向網關1發(fā)送ZigBee數(shù)據包。
509,網關1將該ZigBee數(shù)據包封裝為IP數(shù)據包,并通過預先在位于網關1與網關2之間建立的IP網絡隧道,將IP數(shù)據包發(fā)送給網關2
510,網關2將IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包,并將該ZigBee數(shù)據包轉發(fā)給節(jié)點B和節(jié)點C。
510_1,網關2將ZigBee數(shù)據包轉發(fā)給節(jié)點B。
510_2,網關2將ZigBee數(shù)據包轉發(fā)給節(jié)點C。
其中,步驟510_1、510_2的執(zhí)行無時間先后順序。
在步驟510中,網關2將IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包后,從預先設置的綁定表中獲取節(jié)點A的節(jié)點ID綁定的節(jié)點B、C的節(jié)點ID,并通過預先設置的節(jié)點信息列表中獲取節(jié)點B、C的節(jié)點ID對應的節(jié)點B、C的MAC地址;網關2根據節(jié)點B、C的MAC地址,將ZigBee數(shù)據包發(fā)送給節(jié)點B、C。
圖8為本發(fā)明網關設備一個實施例的結構示意圖。該實施例的網關設備作為ZigBee網關,位于第一WPAN中。如圖8所示,該實施例的網關設備包括:ZigBee協(xié)議棧模塊,接收模塊,封裝/解封裝模塊和發(fā)送模塊。其中:
接收模塊,用于接收源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包;或者,接收通過IP網絡隧道發(fā)送的IP數(shù)據包。
封裝/解封裝模塊,用于將接收模塊接收到的ZigBee數(shù)據包封裝為IP數(shù)據包;或者,將接收模塊接收到的IP數(shù)據包解封裝為ZigBee數(shù)據包。
具體地,封裝/解封裝模塊將ZigBee數(shù)據包封裝為IP數(shù)據包時,在ZigBee數(shù)據包外層依次添加隧道頭、外層UDP頭、外層IPv6頭和外層以太網頭,得到IP數(shù)據包;或者,將IP數(shù)據包解封裝為所述ZigBee數(shù)據包時,將IP數(shù)據包去除外層以太網頭、外層IPv6頭、外層UDP頭和隧道頭,得到ZigBee數(shù)據包。其中,隧道頭包括IP網絡的隧道信息,外層UDP頭包括源端口和目標端口,外層IPv6頭包括IPv6協(xié)議版本號信息、源IPv6地址和目標IPv6地址,外層以太網頭包括源MAC地址和目標MAC地址。
發(fā)送模塊,用于將封裝/解封裝模塊封裝得到的IP數(shù)據包通過預先在位于上述封裝/解封裝模塊和目標ZigBee節(jié)點所在第二WPAN中的另一封裝/解封裝模塊之間建立的IP網絡隧道發(fā)送到接收方。其中的接收方位于目標ZigBee節(jié)點所在的第二WPAN中,具體可以是ZigBee網關或ZigBee節(jié)點,也可以是第二WPAN中的其它設備。
本發(fā)明實施例提出的上述網關設備,在源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包時,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包,通過預先建立的IP網絡隧道,將IP數(shù)據包發(fā)送給接收方所在WPAN中的解封裝模塊;利用該解封裝模塊對IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包;并將該ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點,實現(xiàn)了ZigBee節(jié)點的遠距離通信,本發(fā)明實施例通過增強網關功能實現(xiàn),與應用層功能復雜度無關,實現(xiàn)簡單,且兼容早期部署的ZigBee設備而無需大規(guī)模改造,實現(xiàn)成本低。
圖9為本發(fā)明網關設備另一個實施例的結構示意圖,與圖8實施例相比,該實施例的網關設備還包括獲取模塊和存儲模塊,其中:
獲取模塊,用于從預先設置的綁定表中獲取源ZigBee節(jié)點的節(jié)點ID 綁定的目標ZigBee節(jié)點的節(jié)點ID;以及從預先設置的節(jié)點信息列表中獲取目標ZigBee節(jié)點的節(jié)點ID對應的目標ZigBee節(jié)點的媒體訪問控制MAC地址。
其中,綁定表包括ZigBee節(jié)點之間的綁定關系表項;節(jié)點信息列表包括ZigBee網關、ZigBee網關下各節(jié)點的節(jié)點ID和MAC地址信息。
存儲模塊,用于存儲綁定表和節(jié)點信息列表。
發(fā)送模塊,還用于根據獲取模塊獲取的目標ZigBee節(jié)點的MAC地址,將ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點。
在本發(fā)明上述網關設備的各實施例的一個具體示例中,上述IP網絡可以是IPv6網絡。
在本發(fā)明上述網關設備的各實施例中,封裝/解封裝模塊還用于對ZigBee數(shù)據包進行合法性校驗。
圖10為本發(fā)明網關設備又一個實施例的結構示意圖。與圖9實施例相比,該實施例的網關設備還包括記錄模塊。其中:
接收模塊,還用于接收ZigBee節(jié)點發(fā)送的注冊請求,該注冊請求中包括ZigBee節(jié)點的節(jié)點ID和MAC地址信息。
記錄模塊,用于在接收模塊接收到注冊請求后,在節(jié)點信息列表中記錄ZigBee網關信息、ZigBee節(jié)點的節(jié)點ID和MAC地址之間的對應關系信息;并指示發(fā)送模塊向ZigBee節(jié)點返回注冊響應消息,以及將所述節(jié)點信息列表存儲在所述存儲模塊中。
發(fā)送模塊,還用于根據記錄模塊的指示,向ZigBee節(jié)點返回注冊響應消息。
基于本發(fā)明上述網關設備的另一實施例中,發(fā)送模塊,還用于根據預先配置的綁定信息,針對具有綁定關系的源ZigBee節(jié)點和目標ZigBee節(jié)點,向源ZigBee節(jié)點發(fā)送第一ZigBee綁定請求,以及根據節(jié)點信息列表,將封裝/解封裝模塊封裝得到的綁定請求IP數(shù)據包,通過IP網絡隧道發(fā)送給目標ZigBee網關;或者,根據封裝/解封裝模塊的指示,根據節(jié)點信息列表將第二ZigBee綁定請求發(fā)送給目標ZigBee節(jié)點,以及根據封裝/解封裝模塊的指示,根據節(jié)點信息列表,通過IP網絡隧道將 第二綁定響應消息IP數(shù)據包發(fā)送給源ZigBee網關。
封裝/解封裝模塊,還用于將發(fā)送給目標ZigBee節(jié)點的第二ZigBee綁定請求封裝為第二綁定請求IP數(shù)據包;或者,對接收模塊接收的第二綁定請求IP數(shù)據包進行解封裝,獲得第二ZigBee綁定請求,并指示發(fā)送模塊將第二ZigBee綁定請求發(fā)送給目標ZigBee節(jié)點;或者,將接收模塊接收的第二綁定響應消息封裝為第二綁定響應消息IP數(shù)據包,并指示發(fā)送模塊將將第二綁定響應消息IP數(shù)據包發(fā)送給源ZigBee網關;或者,對接收模塊接收的第二綁定響應消息IP數(shù)據包進行解封裝,獲得第二綁定響應消息。
接收模塊,還用于接收過IP網絡隧道發(fā)送的第二綁定請求IP數(shù)據包,以及接收目標ZigBee節(jié)點在通過綁定請求后反饋的第二綁定響應消息;或者,接收源ZigBee節(jié)點在通過綁定請求后反饋的第一綁定響應消息。
記錄模塊,還用于在接收模塊接收到第一綁定響應消息和第二綁定響應消息時,在綁定表中建立源ZigBee節(jié)點與目標ZigBee節(jié)點之間的綁定關系表項。
另外,再參見圖10,在本發(fā)明網關設備的又一個實施例中,接收模塊,還用于接收源ZigBee節(jié)點發(fā)送的第三ZigBee綁定請求;或者,接收通過IP網絡隧道發(fā)送的第三綁定請求IP數(shù)據包,以及接收目標ZigBee節(jié)點在通過綁定請求后反饋的第三綁定響應消息。
發(fā)送模塊,還用于根據節(jié)點信息列表,將封裝/解封裝模塊封裝后的第三綁定請求IP數(shù)據包通過IP網絡隧道發(fā)送給目標ZigBee網關,以及根據所述封裝/解封裝模塊的指示,根據所述節(jié)點信息列表,通過所述IP網絡隧道將所述第三綁定響應消息IP數(shù)據包發(fā)送給所述源ZigBee網關;或者,根據封裝/解封裝模塊的指示,根據節(jié)點信息列表將封裝/解封裝模塊解封裝得到的第三ZigBee綁定請求發(fā)送給目標ZigBee節(jié)點。
封裝/解封裝模塊,還用于將接收模塊接收到的第三ZigBee綁定請求封裝為第三綁定請求IP數(shù)據包,以及對接收模塊接收的所述第三綁定響應消息IP數(shù)據包進行解封裝,獲得所述第三綁定響應消息;或者,對第 三綁定請求IP數(shù)據包進行解封裝,獲得第三ZigBee綁定請求,并指示發(fā)送模塊將第三ZigBee綁定請求發(fā)送給目標ZigBee節(jié)點;或者將接收模塊接收的第三綁定響應消息封裝為第三綁定響應消息IP數(shù)據包,并指示發(fā)送模塊將將第三綁定響應消息IP數(shù)據包發(fā)送給源ZigBee網關。
記錄模塊,還用于在接收模塊接收到第三綁定響應消息時,在綁定表中建立源ZigBee節(jié)點與目標ZigBee節(jié)點之間的綁定關系表項。
圖11為本發(fā)明網關設備再一個實施例的結構示意圖,與圖10實施例相比,該實施例的網關設備還包括:同步模塊,用于按照預設周期或實時向另一個ZigBee網關同步自身存儲的節(jié)點信息列表與綁定表;或者在自身存儲的節(jié)點信息列表、綁定表變化時,向另一個ZigBee網關同步變化后的節(jié)點信息列表、綁定表。
圖12為本發(fā)明ZigBee節(jié)點一個實施例的結構示意圖,如圖12所示,該實施例的ZigBee節(jié)點包括:ZigBee協(xié)議棧模塊,封裝/解封裝模塊,發(fā)送模塊和接收模塊,其中:
封裝/解封裝模塊,用于將ZigBee協(xié)議棧模塊生成的ZigBee數(shù)據包封裝為IP數(shù)據包;或者,將接收模塊接收到的IP數(shù)據包解封裝為ZigBee數(shù)據包。
具體地,封裝/解封裝模塊在ZigBee數(shù)據包外層依次添加隧道頭、外層UDP頭、外層IPv6頭和外層以太網頭,得到IP數(shù)據包;或者,將IP數(shù)據包去除外層以太網頭、外層IPv6頭、外層UDP頭和隧道頭,得到ZigBee數(shù)據包。其中,隧道頭包括IP網絡的隧道信息,外層UDP頭包括源端口、目標端口、UDP數(shù)據長度和UDP校驗和,外層IPv6頭包括IPv6協(xié)議版本號信息、源IPv6地址、目標IPv6地址和載荷長度,外層以太網頭包括源MAC地址和目標MAC地址。
發(fā)送模塊,用于將封裝/解封裝模塊封裝得到的IP數(shù)據包通過預先在ZigBee節(jié)點與接收方之間建立的IP網絡隧道發(fā)送給接收方;其中,接收方位于目標ZigBee節(jié)點所在的WPAN中,接收方包括ZigBee網關或ZigBee節(jié)點,目標ZigBee節(jié)點與該ZigBee節(jié)點位于不同的WPAN中。
具體地,IP網絡可以是IPv6網絡。
接收模塊,用于接收通過IP網絡隧道發(fā)送的IP數(shù)據包。
本發(fā)明實施例提出的上述ZigBee節(jié)點,在源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包時,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包,通過預先在位于源ZigBee節(jié)點所在WPAN中的封裝模塊與位于目標ZigBee節(jié)點所在WPAN中的解封裝模塊之間建立的IP網絡隧道,將IP數(shù)據包發(fā)送給解封裝模塊;利用解封裝模塊對IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包;并將該ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點,實現(xiàn)了ZigBee節(jié)點的遠距離通信,本發(fā)明實施例通過增強網關功能實現(xiàn),與應用層功能復雜度無關,實現(xiàn)簡單,且兼容早期部署的ZigBee設備而無需大規(guī)模改造,實現(xiàn)成本低。
基于本發(fā)明上述ZigBee節(jié)點的另一實施例中,封裝/解封裝模塊還用于對ZigBee數(shù)據包進行合法性校驗。
基于本發(fā)明上述任一ZigBee節(jié)點的另一實施例中,發(fā)送模塊還用于向所屬的ZigBee網關發(fā)送注冊請求,該注冊請求中包括ZigBee節(jié)點的節(jié)點ID和MAC地址信息。
接收模塊還用于接收ZigBee網關返回的注冊響應消息。
基于本發(fā)明上述任一ZigBee節(jié)點的另一實施例中,接收模塊,還用于接收ZigBee網關發(fā)送的ZigBee綁定請求;相應地,發(fā)送模塊,還用于在通過ZigBee綁定請求后向ZigBee網關反饋綁定響應消息。
圖13為本發(fā)明ZigBee節(jié)點另一個實施例的結構示意圖,如圖13所示,該實施例的ZigBee節(jié)點還包括執(zhí)行模塊,用于根據封裝/解封裝模塊解封裝后的ZigBee數(shù)據包中攜帶的應用信息執(zhí)行相應操作。
圖14為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)一個實施例的結構示意圖。如圖14所示,該實施例的ZigBee節(jié)點包括:源ZigBee節(jié)點,封裝模塊,第一發(fā)送模塊,解封裝模塊,第二發(fā)送模塊和目標ZigBee節(jié)點,其中:
源ZigBee節(jié)點,位于第一WPAN中,用于在與第二WPAN中的目 標ZigBee節(jié)點通信時,向目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包。
封裝模塊,位于上述第一WPAN中,用于將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包,ZigBee數(shù)據包中包括源ZigBee節(jié)點的節(jié)點ID。
第一發(fā)送模塊,位于上述第一WPAN中,用于通過預先在封裝模塊與解封裝模塊之間建立的IP網絡隧道,將封裝模塊封裝后的IP數(shù)據包發(fā)送給解封裝模塊。
解封裝模塊,位于上述第二WPAN中,用于對第一發(fā)送模塊發(fā)送的IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包。
第二發(fā)送模塊,位于上述第二WPAN中,用于將解封裝模塊解封裝后的ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點。
目標ZigBee節(jié)點,用于接收第二發(fā)送模塊發(fā)送的ZigBee數(shù)據包。
本發(fā)明實施例提出的上述ZigBee節(jié)點的遠距離通信的系統(tǒng),源ZigBee節(jié)點向不同WPAN中的目標ZigBee節(jié)點發(fā)送ZigBee數(shù)據包時,利用封裝模塊將源ZigBee節(jié)點發(fā)送的ZigBee數(shù)據包封裝為IP數(shù)據包,通過預先在位于源ZigBee節(jié)點所在WPAN中的封裝模塊與位于目標ZigBee節(jié)點所在WPAN中的解封裝模塊之間建立的IP網絡隧道,將IP數(shù)據包發(fā)送給解封裝模塊;利用解封裝模塊對IP數(shù)據包進行解封裝,獲得ZigBee數(shù)據包;并將該ZigBee數(shù)據包發(fā)送給目標ZigBee節(jié)點,實現(xiàn)了ZigBee節(jié)點的遠距離通信,本發(fā)明實施例通過增強網關功能實現(xiàn),與應用層功能復雜度無關,實現(xiàn)簡單,且兼容早期部署的ZigBee模塊而無需大規(guī)模改造,實現(xiàn)成本低。
在圖14所示實施例的一個具體示例中,封裝模塊與第一發(fā)送模塊具體可以耦合設置在源ZigBee網關或所述源ZigBee節(jié)點中;和/或,解封裝模塊與第二發(fā)送模塊具體可以耦合設置在目標ZigBee網關或目標ZigBee節(jié)點中。另外,可選地,解封裝模塊與第二發(fā)送模塊還可以耦合設置在源ZigBee網關或所述源ZigBee節(jié)點中;和/或,封裝模塊與第一發(fā)送模塊還可以耦合設置在所述目標ZigBee網關或目標ZigBee節(jié)點中。
圖15為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)另一個實施例的結 構示意圖,如圖15所示,該實施例中封裝模塊、第一發(fā)送模塊、解封裝模塊和第二發(fā)送模塊耦合設置在源ZigBee網關和目標ZigBee網關中。
進一步地,ZigBee節(jié)點的遠距離通信的系統(tǒng)還可以包括目標ZigBee網關,用于從預先設置的綁定表中獲取源ZigBee節(jié)點的節(jié)點ID綁定的目標ZigBee節(jié)點的節(jié)點ID;以及從預先設置的節(jié)點信息列表中獲取目標ZigBee節(jié)點的節(jié)點ID對應的目標ZigBee節(jié)點的MAC地址,并根據目標ZigBee節(jié)點的MAC地址,將解封裝模塊解封裝后的ZigBee數(shù)據包轉發(fā)給目標ZigBee節(jié)點。
其中,綁定表包括ZigBee節(jié)點之間的綁定關系表項;節(jié)點信息列表包括網關、網關下各節(jié)點的節(jié)點ID和MAC地址信息。
圖16為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)又一個實施例的結構示意圖,如圖16所示,該實施例中封裝模塊、第一發(fā)送模塊、解封裝模塊和第二發(fā)送模塊耦合設置在源ZigBee節(jié)點和目標ZigBee網關中。
在該實施例中,源ZigBee節(jié)點本身的功能就會有別于其他節(jié)點,它擁有自己的IPv6地址,可作為通信隧道的一個端點;同時,該源ZigBee節(jié)點可以跨IP網絡與目標ZigBee節(jié)點同處于一個WPAN中,共同由目標ZigBee網關管理。
在源ZigBee節(jié)點與目標ZigBee節(jié)點通信時,源ZigBee節(jié)點可與目標ZigBee網關之間建立IP網絡隧道,將ZigBee數(shù)據包封裝為IP數(shù)據包發(fā)送給目標ZigBee網關,目標ZigBee網關對該IP數(shù)據包解封裝得到源ZigBee節(jié)點的ZigBee數(shù)據包,根據綁定表和節(jié)點信息列表,將該ZigBee數(shù)據包發(fā)送到目標ZigBee節(jié)點。
圖17為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)再一個實施例的結構示意圖,如圖17所示,該實施例中封裝模塊、第一發(fā)送模塊、解封裝模塊和第二發(fā)送模塊耦合設置在源ZigBee網關和目標ZigBee節(jié)點中。
在該實施例中,目標ZigBee節(jié)點可以跨IP網絡與源ZigBee節(jié)點同處于一個WPAN中,共同由源ZigBee網關管理。
在源ZigBee節(jié)點與目標ZigBee節(jié)點通信時,源ZigBee網關可與目標ZigBee節(jié)點之間建立IP網絡隧道,源ZigBee網關將來自源ZigBee 節(jié)點的ZigBee數(shù)據包封裝為IP數(shù)據包發(fā)送給目標ZigBee節(jié)點,目標ZigBee節(jié)點對該IP數(shù)據包解封裝得到源ZigBee節(jié)點的ZigBee數(shù)據包。
圖18為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)再又一個實施例的結構示意圖,如圖18所示,該實施例中封裝模塊、第一發(fā)送模塊、解封裝模塊和第二發(fā)送模塊耦合設置在源ZigBee節(jié)點和目標ZigBee節(jié)點中。
在該實施例中,在源ZigBee節(jié)點與目標ZigBee節(jié)點通信時,源ZigBee節(jié)點與目標ZigBee節(jié)點之間可建立IP網絡隧道,實現(xiàn)點對點的通信,源ZigBee節(jié)點將ZigBee數(shù)據包封裝為IP數(shù)據包發(fā)送給目標ZigBee節(jié)點,目標ZigBee節(jié)點對該IP數(shù)據包解封裝得到源ZigBee節(jié)點的ZigBee數(shù)據包。
基于本發(fā)明上述任一ZigBee節(jié)點的遠距離通信系統(tǒng)的另一實施例中,源ZigBee網關和目標ZigBee網關可以是圖8至圖11實施例所述的任一網關設備。
基于本發(fā)明上述任一ZigBee節(jié)點的遠距離通信系統(tǒng)的另一實施例中,源ZigBee節(jié)點與目標ZigBee節(jié)點可以是圖8至圖11實施例所述的任一ZigBee節(jié)點。
圖19為本發(fā)明ZigBee節(jié)點的遠距離通信的系統(tǒng)一個應用實施例的結構示意圖,如圖19所示,該實施例的ZigBee節(jié)點的遠距離通信的系統(tǒng)中,Packet Tunnel封裝模塊和Packet Tunnel解封裝模塊設置在源ZigBee網關和目標ZigBee網關中,源ZigBee網關和目標ZigBee網關之間建立有IPv6隧道。
當源ZigBee網關將其所轄范圍內源ZigBee節(jié)點需要與目標ZigBee網關將其所轄范圍內目標ZigBee節(jié)點通信時,源ZigBee網關將其所轄范圍內源ZigBee節(jié)點的ZigBee數(shù)據包通過Packet Tunnel封裝模塊封裝為IPv6數(shù)據包后通過IPv6隧道發(fā)送到目標ZigBee網關,目標ZigBee網關將該IPv6數(shù)據包通過Packet Tunnel解封裝模解封裝后獲得ZigBee數(shù)據包,并將該ZigBee數(shù)據包根據預先建立的綁定表發(fā)送到目標ZigBee節(jié)點。
本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分 步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
可能以許多方式來實現(xiàn)本發(fā)明的方法、系統(tǒng)。例如,可通過軟件、硬件、固件或者軟件、硬件、固件的任何組合來實現(xiàn)本發(fā)明的方法和系統(tǒng)。用于所述方法的步驟的上述順序僅是為了進行說明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說明。此外,在一些實施例中,還可將本發(fā)明實施為記錄在記錄介質中的程序,這些程序包括用于實現(xiàn)根據本發(fā)明的方法的機器可讀指令。因而,本發(fā)明還覆蓋存儲用于執(zhí)行根據本發(fā)明的方法的程序的記錄介質。
本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對于本領域的普通技術人員而言是顯然的。選擇和描述實施例是為了更好說明本發(fā)明的原理和實際應用,并且使本領域的普通技術人員能夠理解本發(fā)明從而設計適于特定用途的帶有各種修改的各種實施例。