周娜,何錚
(1.??诮?jīng)濟(jì)學(xué)院,???571127;2.海南政法學(xué)院)
?
分布式CAN、ZigBee混合物聯(lián)網(wǎng)*
周娜1,何錚2
(1.??诮?jīng)濟(jì)學(xué)院,海口 571127;2.海南政法學(xué)院)
在組建大型物聯(lián)網(wǎng)系統(tǒng)中,采用分布式CAN-ZigBee混合物聯(lián)網(wǎng)架構(gòu)是融合了全ZigBee系統(tǒng)、多疊CAN系統(tǒng)、分布式物聯(lián)網(wǎng)系統(tǒng)優(yōu)點(diǎn)的一種優(yōu)化設(shè)計(jì)。它在測(cè)控小數(shù)據(jù)實(shí)時(shí)傳輸中,以高速、安全、硬件濾波點(diǎn)到點(diǎn)的CAN傳輸取代以太網(wǎng)傳輸,同時(shí)保留了分布式系統(tǒng)的優(yōu)點(diǎn)。在大系統(tǒng)中,各種感知網(wǎng)的節(jié)點(diǎn)統(tǒng)一賦以全系統(tǒng)唯一地址,從而可采用簡(jiǎn)單、快捷的路由實(shí)現(xiàn)節(jié)點(diǎn)任意布設(shè)、移動(dòng)和跨子網(wǎng)的測(cè)控。
物聯(lián)網(wǎng);分布式;CAN總線;ZigBee
在當(dāng)今辦公樓、別墅等智能化的系統(tǒng)集成中,隨著各種設(shè)備(如燈光、家電、音響、安防、環(huán)境、門禁、養(yǎng)生等)的接入,智能測(cè)控感知網(wǎng)的規(guī)模越來(lái)越大,一個(gè)系統(tǒng)需接入的感知節(jié)點(diǎn)數(shù)目從幾十上升到幾百,甚至過(guò)千,而且傳統(tǒng)設(shè)備多是有線RS-485等接口類型的,而新開發(fā)的設(shè)備多是ZigBee等無(wú)線接入接口類型的。
能接入成百上千個(gè)節(jié)點(diǎn)的大系統(tǒng),當(dāng)前主要只有3種方法:全ZigBee系統(tǒng)(見圖1)、多疊CAN系統(tǒng)(見圖2)和分布式互聯(lián)網(wǎng)系統(tǒng)(見圖3)。
圖1 全ZigBee系統(tǒng)
圖2 多疊CAN系統(tǒng)圖
圖3 分布式互聯(lián)網(wǎng)系統(tǒng)
全ZigBee系統(tǒng)具有可跳轉(zhuǎn)、自組網(wǎng)、可接入節(jié)點(diǎn)數(shù)多(16位短地址,可接入65 535個(gè)節(jié)點(diǎn))、節(jié)點(diǎn)功耗低等優(yōu)點(diǎn),而最大的優(yōu)點(diǎn)在于無(wú)需布線、可隨意增補(bǔ)節(jié)點(diǎn),且節(jié)點(diǎn)可變換位置,因而在當(dāng)今得到了廣泛的應(yīng)用。
但ZigBee無(wú)線接入網(wǎng)若采用網(wǎng)狀拓?fù)浣Y(jié)構(gòu),安全通達(dá)性好,但路由復(fù)雜、時(shí)延大,而且不確定,實(shí)時(shí)性不好;若采用樹型結(jié)構(gòu),固定節(jié)點(diǎn)地址,路由算法簡(jiǎn)單,但在大范圍內(nèi)節(jié)點(diǎn)多時(shí),樹型結(jié)構(gòu)的輩份太多、跳轉(zhuǎn)多、時(shí)延大,而且可靠性差,當(dāng)樹型路由器中一跳失效,其子系的工作基本全部失控。
多疊CAN系統(tǒng)具有安全性高、傳輸速度快、實(shí)時(shí)性好的優(yōu)點(diǎn),但只能有線傳輸,需布線,因而系統(tǒng)架設(shè)后,變更增補(bǔ)節(jié)點(diǎn)困難,不能移動(dòng)放置,總體成本較高。
圖5 CAN-ZigBee混合物聯(lián)網(wǎng)地址分配
分布式互聯(lián)網(wǎng)系統(tǒng)接入性特別好,通過(guò)網(wǎng)關(guān)能接入各種有線及無(wú)線感知網(wǎng)組成的龐大系統(tǒng),并且它是分布式結(jié)構(gòu),當(dāng)主干出現(xiàn)問(wèn)題,每個(gè)感知網(wǎng)都能自己獨(dú)立工作。但因?yàn)榛ヂ?lián)網(wǎng)是基于IP及MAC的通信,對(duì)嵌入式系統(tǒng)而言,對(duì)下面感知網(wǎng)的增加節(jié)點(diǎn)、變換位置、移動(dòng)部署不利。同時(shí)互聯(lián)網(wǎng)通信時(shí)延大,偶爾會(huì)出現(xiàn)丟包,實(shí)時(shí)性不好。當(dāng)智能系統(tǒng)需要在各感知網(wǎng)間、節(jié)點(diǎn)間相互實(shí)時(shí)測(cè)控時(shí),它的效果不是太好。
針對(duì)這個(gè)問(wèn)題,設(shè)計(jì)了一種分布式CAN/485-ZigBee混合物聯(lián)網(wǎng),其拓?fù)浣Y(jié)構(gòu)如圖4所示。它利用速度快、可靠性高、可硬件濾波、直接點(diǎn)到點(diǎn)傳輸?shù)腃AN通信取代ZigBee網(wǎng)絡(luò)中的傳輸主干,進(jìn)而取代分布式互聯(lián)網(wǎng)系統(tǒng)中的以太骨干網(wǎng),組成統(tǒng)一編址的分布式CAN-ZigBee混合物聯(lián)網(wǎng)。
圖4 分布式CAN-ZigBee混合物聯(lián)網(wǎng)
這種分布式CAN-ZigBee混合物聯(lián)網(wǎng)的優(yōu)點(diǎn)在于:
① 在同一物聯(lián)網(wǎng)系統(tǒng)中CAN、ZigBee、RS-485等多種通信方式混用,方便了各種設(shè)備的直接接入;
② 系統(tǒng)中有線通信與無(wú)線通信混用,結(jié)構(gòu)方式有多種變化,有利于前期接入和后期自由調(diào)整節(jié)點(diǎn);
③ 整個(gè)系統(tǒng)的每一個(gè)節(jié)點(diǎn),不論何種通信媒介都統(tǒng)一混合編址,便于組建大系統(tǒng),在系統(tǒng)內(nèi)實(shí)現(xiàn)快速跨媒介控制和交換數(shù)據(jù);
④ 所有節(jié)點(diǎn)統(tǒng)一混合編址,都采用固定地址、固定地址路由算法,便于系統(tǒng)設(shè)計(jì)、生產(chǎn)、安裝、維護(hù)和改變;
⑤ 遠(yuǎn)程主干傳輸由CAN代替ZigBee,利用CAN特有點(diǎn)到點(diǎn)的直傳技術(shù),大大克服了遠(yuǎn)距離ZigBee網(wǎng)絡(luò)數(shù)據(jù)傳輸多點(diǎn)接力路由速度慢而且可靠性差的弊端;
⑥ 采用分布式結(jié)構(gòu),將龐大的一個(gè)協(xié)調(diào)器,眾多輩系的ZigBee網(wǎng)絡(luò)改成眾多四輩小家庭的分布式的ZigBee網(wǎng),最多四級(jí)跳傳,大大提高了系統(tǒng)的可靠性。
CAN-ZigBee混合物聯(lián)網(wǎng)中,不管何種傳輸媒介類型的節(jié)點(diǎn),都有一個(gè)全系統(tǒng)唯一的16位地址,使其成為本節(jié)點(diǎn)在整個(gè)大統(tǒng)一系統(tǒng)中的標(biāo)識(shí)。其16位地址分配見圖5。
在16位地址中,高8位為一級(jí)CAN主干網(wǎng)絡(luò)地址,由于受CAN系統(tǒng)的制約,一級(jí)網(wǎng)絡(luò)最多只能有32個(gè)(一個(gè)CAN接口,00~1F)或64個(gè)(兩個(gè)CAN接口,00~1F、20~3F)。
在低8位中,高3位為二級(jí)子網(wǎng)地址,為了和CAN兼容及子網(wǎng)容量不要太大,所以每個(gè)子網(wǎng)分配約32個(gè)節(jié)點(diǎn),這樣正好形成8個(gè)子網(wǎng),子網(wǎng)號(hào)為0~7,0為CAN(或RS-485)子網(wǎng);1~7號(hào)為ZigBee子網(wǎng)(協(xié)調(diào)器、中繼器地址分別為20、40、60、80、A0、C0、E0)。
最低5位為子網(wǎng)中測(cè)控節(jié)點(diǎn)在子網(wǎng)內(nèi)的地址。每個(gè)子網(wǎng)測(cè)控節(jié)點(diǎn)為31個(gè)(地址為01~1F),若有協(xié)調(diào)器,則節(jié)點(diǎn)共32個(gè)(加入XX20協(xié)調(diào)器),若有中繼器,則節(jié)點(diǎn)共33個(gè)(加2個(gè)中繼器XX40、XX80、XXA0、XXC0、XXE0)。
整個(gè)系統(tǒng)地址容量為8 192,但測(cè)控節(jié)點(diǎn)最少可接入31×8×31=7 684個(gè),已完全滿足要求。若還要組建更大的系統(tǒng),可以從主網(wǎng)關(guān)(地址0000)接出2路CAN總線,這樣,整個(gè)系統(tǒng)地址容量為8 192×2),測(cè)控節(jié)點(diǎn)最少可接入31×8×31×2=15 368個(gè)。
1.1 主網(wǎng)關(guān)(根節(jié)點(diǎn),地址為0x0000)
0000節(jié)點(diǎn)為系統(tǒng)根節(jié)點(diǎn)(主網(wǎng)關(guān)),它的CANA接口是CAN主干通信網(wǎng)的主節(jié)點(diǎn),可接31個(gè)CAN-ZigBee中繼器(地址為0x0100、0x0200、…、0x1F00),它的CANB/485接口可接入CAN/485測(cè)控節(jié)點(diǎn)(地址為0001~001F)。
它的ZigBee接口為ZigBee系統(tǒng)的協(xié)調(diào)器(地址為0x0020),下面可接有深度為4,每個(gè)父親最多有32個(gè)孩子,孩子中有2個(gè)是路由器的樹型ZigBee系統(tǒng)。
1.2 CAN-ZigBee路由器(地址為0x0100、0x0200、…、0x1F00)
CAN-ZigBee路由器在一級(jí)主干網(wǎng)上的地址為0x0100、0x0200、…、0x1F00。它的下行有2個(gè)接口,一個(gè)是下行CAN/485接口,每個(gè)CAN/485接口可自行接入31個(gè)CAN/485測(cè)控節(jié)點(diǎn):0101~011F、0201~022F、…、1F01~1F1F,最多可有31×31=961個(gè)CAN/485節(jié)點(diǎn);另一個(gè)是ZigBee接口,為下行ZigBee系統(tǒng)的協(xié)調(diào)器,它下面可接有深度為4,每個(gè)父親最多有32個(gè)孩子,孩子中有2個(gè)是路由器的樹型ZigBee系統(tǒng)。這31個(gè)協(xié)調(diào)器地址為0x0120、0x0220、0x0320、…、0x1F20。
1.3 ZigBee系統(tǒng)(具有32個(gè)相同樹型結(jié)構(gòu))
(1) 協(xié)調(diào)器 32個(gè)(0x0020、0x0120、0x0220、0x0320、…、0x1F20)
16位地址中高字節(jié)為一級(jí)網(wǎng)絡(luò)號(hào):00、01、02、…、1F;低字節(jié)為協(xié)調(diào)器根地址20。
(2) 路由器(32×6個(gè))
每一個(gè)協(xié)調(diào)器都組成一個(gè)深度為4,每個(gè)父親最多有32個(gè)孩子,孩子中有2個(gè)是路由器的樹型ZigBee系統(tǒng)。這32×6個(gè)路由器地址為:0x0040、0x0060、0x0080、0x00A0、0x00C0、0x00E0;0x0140、0x0160、0x0180、0x01A0、0x01C0、0x01E0;……;0x1F40、0x1F60、0x1F80、0x1FA0、0x1FC0、0x1FE0。
(3) ZigBee測(cè)控節(jié)點(diǎn)(32×31×6個(gè))
每個(gè)路由器下可接31個(gè)測(cè)控節(jié)點(diǎn),它們的地址為: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節(jié)點(diǎn)
0000節(jié)點(diǎn)方框圖如圖6所示。
圖6 0000節(jié)點(diǎn)方框圖
① 目的地址為0000H的信息均為上行發(fā)往以太網(wǎng)(云)的信息,該節(jié)點(diǎn)CPU配備有地址—信息代碼轉(zhuǎn)換表,以幫助上傳/下達(dá)控制/狀態(tài)信息。
② 該節(jié)點(diǎn)同時(shí)為CAN網(wǎng)及ZigBee網(wǎng)關(guān)節(jié)點(diǎn)(CAN接口地址為0000H, ZigBee接口為協(xié)調(diào)器,地址為0020H),發(fā)往0001~001F節(jié)點(diǎn)的信息均轉(zhuǎn)從CANB/485口發(fā)出,發(fā)往01XX~0FXX的信息均轉(zhuǎn)CANA口發(fā)出,發(fā)往002X~00FF的信息均轉(zhuǎn)ZigBee口發(fā)出。
③ 該節(jié)點(diǎn)也可組成最小系統(tǒng),接入31個(gè)CAN/485節(jié)點(diǎn)(0001~001F),31個(gè)ZigBee節(jié)點(diǎn)(0021~003F)。
2.2 CAN-ZigBee中繼器
圖7 中繼器框圖
這是位于主干網(wǎng)絡(luò)(CAN總線)上的CAN-ZigBee中繼器,其高字節(jié)為CAN一級(jí)子網(wǎng)號(hào),低字節(jié)均為00,組成本中繼器地址(0000、0100、0200、1F00)。中繼器框圖如圖7所示。
① 第1字節(jié)為本一級(jí)子網(wǎng)號(hào)的信息,均通過(guò)CANA濾波自動(dòng)接收,再按地址路由算法,將第2字節(jié)除以32,整數(shù)為第二級(jí)子網(wǎng)號(hào)。二級(jí)子網(wǎng)號(hào)為0的節(jié)點(diǎn)數(shù)據(jù)通過(guò)CANB發(fā)送到各CAN測(cè)控節(jié)點(diǎn); 二級(jí)子網(wǎng)號(hào)為0的節(jié)點(diǎn)數(shù)據(jù)通過(guò)CANB發(fā)送到各CAN測(cè)控節(jié)點(diǎn);二級(jí)子網(wǎng)號(hào)非0的節(jié)點(diǎn)數(shù)據(jù)發(fā)送到ZigBee協(xié)調(diào)器。
② ZigBee協(xié)調(diào)器接收的幀地址二級(jí)子網(wǎng)號(hào)非0的節(jié)點(diǎn)數(shù)據(jù)均直接發(fā)送,其中二級(jí)子網(wǎng)號(hào)為1的節(jié)點(diǎn)數(shù)據(jù)均直接發(fā)送給各測(cè)控節(jié)點(diǎn);二級(jí)子網(wǎng)號(hào)為2~7的節(jié)點(diǎn)數(shù)據(jù)均發(fā)送到ZigBee中繼器。
③ CPU接收到CANB發(fā)來(lái)的數(shù)據(jù),發(fā)往非本一級(jí)子網(wǎng)地址的數(shù)據(jù)全部通過(guò)CANA中繼器向外轉(zhuǎn)發(fā),通過(guò)CAN濾波機(jī)制發(fā)往目的一級(jí)子網(wǎng);發(fā)往本一級(jí)子網(wǎng)地址的數(shù)據(jù)全部通過(guò)ZigBee協(xié)調(diào)器轉(zhuǎn)發(fā)。
④ CPU接收到ZigBee發(fā)來(lái)的數(shù)據(jù),發(fā)往非本一級(jí)子網(wǎng)地址的數(shù)據(jù)全部通過(guò)CANA中繼器向外轉(zhuǎn)發(fā),通過(guò)CAN濾波機(jī)制發(fā)往目的一級(jí)子網(wǎng);發(fā)往本一級(jí)子網(wǎng)地址的數(shù)據(jù)全部通過(guò)CANB中繼器發(fā)往各CAN測(cè)控節(jié)點(diǎn)。
2.3 ZigBee中繼器
每個(gè)ZigBee協(xié)調(diào)器組成4級(jí)深度,每級(jí)有31~33個(gè)節(jié)點(diǎn)(其中可有2個(gè)中繼器)的樹型ZigBee網(wǎng)。每個(gè)中繼器均按固定地址路由算法計(jì)算路由。ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖如圖8所示。
圖8 ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
① 目的地址為0000或第1字節(jié)(一級(jí)網(wǎng)絡(luò)號(hào))非本網(wǎng)絡(luò)的,均向父輩中繼器或協(xié)調(diào)器發(fā)送。
② 目的地址第1字節(jié)(一級(jí)網(wǎng)絡(luò)號(hào))為本網(wǎng)絡(luò)的,將目的地址第2字節(jié)除以32,整數(shù)為第二級(jí)子網(wǎng)號(hào),尾數(shù)為測(cè)控節(jié)點(diǎn)號(hào)。
(a) 若是發(fā)往本二級(jí)子網(wǎng)及本子網(wǎng)的子中繼器的測(cè)控信息,直接發(fā)往子節(jié)點(diǎn)及子中繼器;
(b) 若是發(fā)往非本二級(jí)子網(wǎng)的及非本子網(wǎng)的子輩中繼器的,向上級(jí)父輩中繼器轉(zhuǎn)發(fā)。
在CAN-ZigBee混合物聯(lián)網(wǎng)中,最主要的設(shè)備是主網(wǎng)關(guān)及CAN-ZigBee中繼器,設(shè)計(jì)選用了恩智浦的LPC1768。LPC1786采用Cortex-M3內(nèi)核,它集成有1個(gè)以太網(wǎng)MAC、2路CAN收發(fā)器及多個(gè)UART接口、SPI接口。
如圖9所示,全部選用,則成為CAN/485-ZigBee主網(wǎng)關(guān);若不要DP83848(以太PHY),則組成CAN/485-ZigBee中繼器。
圖9 網(wǎng)關(guān)框圖
[1] Guangzhou ZLGMCU Development.LPC1700 用戶手冊(cè),2010.
[2] TI.CC253x System-on-Chip Solution for 2.4 GHz IEEE 802.15.4 and ZigBee Applications User's Guide.
[3] 周武斌.ZigBee無(wú)線組網(wǎng)技術(shù)的研究[D].長(zhǎng)沙:中南大學(xué),2009.
[4] 何錚,周娜.基于Cortex-M3/M0的智能家居中的感知與控制子網(wǎng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,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年度海南省高等學(xué)??茖W(xué)研究項(xiàng)目:物聯(lián)網(wǎng)養(yǎng)生系統(tǒng)開發(fā)及產(chǎn)業(yè)化的研究(項(xiàng)目編號(hào):Hnky2016-55)。
TP273
A
?士然
2016-06-08)