周娜,何錚
(1.海口經濟學院,海口 571127;2.海南政法學院)
?
分布式CAN、ZigBee混合物聯網*
周娜1,何錚2
(1.海口經濟學院,海口 571127;2.海南政法學院)
在組建大型物聯網系統中,采用分布式CAN-ZigBee混合物聯網架構是融合了全ZigBee系統、多疊CAN系統、分布式物聯網系統優點的一種優化設計。它在測控小數據實時傳輸中,以高速、安全、硬件濾波點到點的CAN傳輸取代以太網傳輸,同時保留了分布式系統的優點。在大系統中,各種感知網的節點統一賦以全系統唯一地址,從而可采用簡單、快捷的路由實現節點任意布設、移動和跨子網的測控。
物聯網;分布式;CAN總線;ZigBee
在當今辦公樓、別墅等智能化的系統集成中,隨著各種設備(如燈光、家電、音響、安防、環境、門禁、養生等)的接入,智能測控感知網的規模越來越大,一個系統需接入的感知節點數目從幾十上升到幾百,甚至過千,而且傳統設備多是有線RS-485等接口類型的,而新開發的設備多是ZigBee等無線接入接口類型的。
能接入成百上千個節點的大系統,當前主要只有3種方法:全ZigBee系統(見圖1)、多疊CAN系統(見圖2)和分布式互聯網系統(見圖3)。

圖1 全ZigBee系統

圖2 多疊CAN系統圖

圖3 分布式互聯網系統
全ZigBee系統具有可跳轉、自組網、可接入節點數多(16位短地址,可接入65 535個節點)、節點功耗低等優點,而最大的優點在于無需布線、可隨意增補節點,且節點可變換位置,因而在當今得到了廣泛的應用。
但ZigBee無線接入網若采用網狀拓撲結構,安全通達性好,但路由復雜、時延大,而且不確定,實時性不好;若采用樹型結構,固定節點地址,路由算法簡單,但在大范圍內節點多時,樹型結構的輩份太多、跳轉多、時延大,而且可靠性差,當樹型路由器中一跳失效,其子系的工作基本全部失控。
多疊CAN系統具有安全性高、傳輸速度快、實時性好的優點,但只能有線傳輸,需布線,因而系統架設后,變更增補節點困難,不能移動放置,總體成本較高。

圖5 CAN-ZigBee混合物聯網地址分配
分布式互聯網系統接入性特別好,通過網關能接入各種有線及無線感知網組成的龐大系統,并且它是分布式結構,當主干出現問題,每個感知網都能自己獨立工作。但因為互聯網是基于IP及MAC的通信,對嵌入式系統而言,對下面感知網的增加節點、變換位置、移動部署不利。同時互聯網通信時延大,偶爾會出現丟包,實時性不好。當智能系統需要在各感知網間、節點間相互實時測控時,它的效果不是太好。
針對這個問題,設計了一種分布式CAN/485-ZigBee混合物聯網,其拓撲結構如圖4所示。它利用速度快、可靠性高、可硬件濾波、直接點到點傳輸的CAN通信取代ZigBee網絡中的傳輸主干,進而取代分布式互聯網系統中的以太骨干網,組成統一編址的分布式CAN-ZigBee混合物聯網。

圖4 分布式CAN-ZigBee混合物聯網
這種分布式CAN-ZigBee混合物聯網的優點在于:
① 在同一物聯網系統中CAN、ZigBee、RS-485等多種通信方式混用,方便了各種設備的直接接入;
② 系統中有線通信與無線通信混用,結構方式有多種變化,有利于前期接入和后期自由調整節點;
③ 整個系統的每一個節點,不論何種通信媒介都統一混合編址,便于組建大系統,在系統內實現快速跨媒介控制和交換數據;
④ 所有節點統一混合編址,都采用固定地址、固定地址路由算法,便于系統設計、生產、安裝、維護和改變;
⑤ 遠程主干傳輸由CAN代替ZigBee,利用CAN特有點到點的直傳技術,大大克服了遠距離ZigBee網絡數據傳輸多點接力路由速度慢而且可靠性差的弊端;
⑥ 采用分布式結構,將龐大的一個協調器,眾多輩系的ZigBee網絡改成眾多四輩小家庭的分布式的ZigBee網,最多四級跳傳,大大提高了系統的可靠性。
CAN-ZigBee混合物聯網中,不管何種傳輸媒介類型的節點,都有一個全系統唯一的16位地址,使其成為本節點在整個大統一系統中的標識。其16位地址分配見圖5。
在16位地址中,高8位為一級CAN主干網絡地址,由于受CAN系統的制約,一級網絡最多只能有32個(一個CAN接口,00~1F)或64個(兩個CAN接口,00~1F、20~3F)。
在低8位中,高3位為二級子網地址,為了和CAN兼容及子網容量不要太大,所以每個子網分配約32個節點,這樣正好形成8個子網,子網號為0~7,0為CAN(或RS-485)子網;1~7號為ZigBee子網(協調器、中繼器地址分別為20、40、60、80、A0、C0、E0)。
最低5位為子網中測控節點在子網內的地址。每個子網測控節點為31個(地址為01~1F),若有協調器,則節點共32個(加入XX20協調器),若有中繼器,則節點共33個(加2個中繼器XX40、XX80、XXA0、XXC0、XXE0)。
整個系統地址容量為8 192,但測控節點最少可接入31×8×31=7 684個,已完全滿足要求。若還要組建更大的系統,可以從主網關(地址0000)接出2路CAN總線,這樣,整個系統地址容量為8 192×2),測控節點最少可接入31×8×31×2=15 368個。
1.1 主網關(根節點,地址為0x0000)
0000節點為系統根節點(主網關),它的CANA接口是CAN主干通信網的主節點,可接31個CAN-ZigBee中繼器(地址為0x0100、0x0200、…、0x1F00),它的CANB/485接口可接入CAN/485測控節點(地址為0001~001F)。
它的ZigBee接口為ZigBee系統的協調器(地址為0x0020),下面可接有深度為4,每個父親最多有32個孩子,孩子中有2個是路由器的樹型ZigBee系統。
1.2 CAN-ZigBee路由器(地址為0x0100、0x0200、…、0x1F00)
CAN-ZigBee路由器在一級主干網上的地址為0x0100、0x0200、…、0x1F00。它的下行有2個接口,一個是下行CAN/485接口,每個CAN/485接口可自行接入31個CAN/485測控節點:0101~011F、0201~022F、…、1F01~1F1F,最多可有31×31=961個CAN/485節點;另一個是ZigBee接口,為下行ZigBee系統的協調器,它下面可接有深度為4,每個父親最多有32個孩子,孩子中有2個是路由器的樹型ZigBee系統。這31個協調器地址為0x0120、0x0220、0x0320、…、0x1F20。
1.3 ZigBee系統(具有32個相同樹型結構)
(1) 協調器 32個(0x0020、0x0120、0x0220、0x0320、…、0x1F20)
16位地址中高字節為一級網絡號:00、01、02、…、1F;低字節為協調器根地址20。
(2) 路由器(32×6個)
每一個協調器都組成一個深度為4,每個父親最多有32個孩子,孩子中有2個是路由器的樹型ZigBee系統。這32×6個路由器地址為:0x0040、0x0060、0x0080、0x00A0、0x00C0、0x00E0;0x0140、0x0160、0x0180、0x01A0、0x01C0、0x01E0;……;0x1F40、0x1F60、0x1F80、0x1FA0、0x1FC0、0x1FE0。
(3) ZigBee測控節點(32×31×6個)
每個路由器下可接31個測控節點,它們的地址為:0x0041~005F、0x0061~007F、0x0081~009F、0x00A1~00BF、0x00C1~00DF、0x00E1~00FF;0x0141~015F、0x0161~017F、0x0181~019F、0x01A1~01BF、0x01C1~01DF、0x01E1~01FF;……;0x1F41~1F5F、0x1F61~1F7F、0x1F81~1F9F、0x1FA1~1FBF、0x1FC1~1FDF、0x1FE1~1FFF。
2.1 0000節點
0000節點方框圖如圖6所示。

圖6 0000節點方框圖
① 目的地址為0000H的信息均為上行發往以太網(云)的信息,該節點CPU配備有地址—信息代碼轉換表,以幫助上傳/下達控制/狀態信息。
② 該節點同時為CAN網及ZigBee網關節點(CAN接口地址為0000H, ZigBee接口為協調器,地址為0020H),發往0001~001F節點的信息均轉從CANB/485口發出,發往01XX~0FXX的信息均轉CANA口發出,發往002X~00FF的信息均轉ZigBee口發出。
③ 該節點也可組成最小系統,接入31個CAN/485節點(0001~001F),31個ZigBee節點(0021~003F)。
2.2 CAN-ZigBee中繼器

圖7 中繼器框圖
這是位于主干網絡(CAN總線)上的CAN-ZigBee中繼器,其高字節為CAN一級子網號,低字節均為00,組成本中繼器地址(0000、0100、0200、1F00)。中繼器框圖如圖7所示。
① 第1字節為本一級子網號的信息,均通過CANA濾波自動接收,再按地址路由算法,將第2字節除以32,整數為第二級子網號。二級子網號為0的節點數據通過CANB發送到各CAN測控節點; 二級子網號為0的節點數據通過CANB發送到各CAN測控節點;二級子網號非0的節點數據發送到ZigBee協調器。
② ZigBee協調器接收的幀地址二級子網號非0的節點數據均直接發送,其中二級子網號為1的節點數據均直接發送給各測控節點;二級子網號為2~7的節點數據均發送到ZigBee中繼器。
③ CPU接收到CANB發來的數據,發往非本一級子網地址的數據全部通過CANA中繼器向外轉發,通過CAN濾波機制發往目的一級子網;發往本一級子網地址的數據全部通過ZigBee協調器轉發。
④ CPU接收到ZigBee發來的數據,發往非本一級子網地址的數據全部通過CANA中繼器向外轉發,通過CAN濾波機制發往目的一級子網;發往本一級子網地址的數據全部通過CANB中繼器發往各CAN測控節點。
2.3 ZigBee中繼器
每個ZigBee協調器組成4級深度,每級有31~33個節點(其中可有2個中繼器)的樹型ZigBee網。每個中繼器均按固定地址路由算法計算路由。ZigBee網絡拓撲結構圖如圖8所示。

圖8 ZigBee網絡拓撲結構圖
① 目的地址為0000或第1字節(一級網絡號)非本網絡的,均向父輩中繼器或協調器發送。
② 目的地址第1字節(一級網絡號)為本網絡的,將目的地址第2字節除以32,整數為第二級子網號,尾數為測控節點號。
(a) 若是發往本二級子網及本子網的子中繼器的測控信息,直接發往子節點及子中繼器;
(b) 若是發往非本二級子網的及非本子網的子輩中繼器的,向上級父輩中繼器轉發。
在CAN-ZigBee混合物聯網中,最主要的設備是主網關及CAN-ZigBee中繼器,設計選用了恩智浦的LPC1768。LPC1786采用Cortex-M3內核,它集成有1個以太網MAC、2路CAN收發器及多個UART接口、SPI接口。
如圖9所示,全部選用,則成為CAN/485-ZigBee主網關;若不要DP83848(以太PHY),則組成CAN/485-ZigBee中繼器。

圖9 網關框圖
[1] Guangzhou ZLGMCU Development.LPC1700 用戶手冊,2010.
[2] TI.CC253x System-on-Chip Solution for 2.4 GHz IEEE 802.15.4 and ZigBee Applications User's Guide.
[3] 周武斌.ZigBee無線組網技術的研究[D].長沙:中南大學,2009.
[4] 何錚,周娜.基于Cortex-M3/M0的智能家居中的感知與控制子網設計[J].單片機與嵌入式系統應用,2014(12).
Large-scale Internet of Things Based on Distributed CAN and ZigBee
Zhou Na1,He Zheng2
(1.Haikou College of Economics,Haikou 571127,China;2.Hainan Institute of Political Science and Law)
In the construction of large-scale Internet of things,the use of distributed CAN-ZigBee network architecture is a kind of optimization design which combinates the whole ZigBee system,multi-stack CAN system,distributed networking system.It in the small control data real-time transmission,transmitted with high speed,safety,hardware filtering nap can replace the ethernet transmission,while retaining the advantages of distributed system.In the system,the various sensor network nodes are unified to the only system wide address,which can adopts a simple and high-efficient routing to achieve any node layout,mobile and inter subnet control.
internet of things;distributed;CAN bus;ZigBee
2016年度海南省高等學校科學研究項目:物聯網養生系統開發及產業化的研究(項目編號:Hnky2016-55)。
TP273
A
?士然
2016-06-08)