季明逸
(英格索蘭亞太工程技術(shù)中心)
基于ZigBee樓宇自動化規(guī)范的BACnet/ZigBee無線擴展模塊的實現(xiàn)
季明逸
(英格索蘭亞太工程技術(shù)中心)
闡述了ZigBee協(xié)議應(yīng)用于BACnet網(wǎng)絡(luò)擴展的原理?;赯igBee CBA規(guī)范,設(shè)計了一種BACnet/ZigBee無線擴展模塊,通過EmberZNet協(xié)議棧實現(xiàn)了CBA規(guī)范定義的BACnet隧道設(shè)備功能。實驗表明,該模塊具有無線傳輸BACnet NPDU的能力,可用于替代傳統(tǒng)的BACnet有線通訊,滿足樓宇自控系統(tǒng)無線化改造的需求。
BACnet/ZigBee;ZigBee CBA規(guī)范;EmberZNet
樓宇自控系統(tǒng)需要有相應(yīng)的設(shè)備進行實時監(jiān)控。為了實現(xiàn)高效管理,對于樓宇信息的收集、存儲以及分析是其中的重要環(huán)節(jié)。因此,數(shù)字化通訊網(wǎng)絡(luò)成為了該領(lǐng)域的核心技術(shù)。另一方面,隨著無線通訊的發(fā)展,其易于部署維護、靈活性高[1]的特點使其得到越來越廣泛的關(guān)注。引入無線網(wǎng)絡(luò)技術(shù),也成為智能樓宇的重要發(fā)展方向。
樓宇自動化控制網(wǎng)絡(luò)BACnet(Building Automation Control Network)作為樓宇自控的代表性通訊協(xié)議,是該領(lǐng)域的國際標準[2]。該協(xié)議由美國采暖、制冷和空調(diào)工程師協(xié)會(ASHRAE)制定,具有開放性的特點,支持多種通訊媒介的集成,可實現(xiàn)來自不同廠商設(shè)備的互聯(lián)。在實際應(yīng)用中,基于有線通訊介質(zhì)的BACnet網(wǎng)絡(luò)因需要考慮布線的問題,其系統(tǒng)擴展往往存在一定的局限性。因此,將無線網(wǎng)絡(luò)引入BACnet便具有了實際意義。
ZigBee作為一種基于IEEE 802.15.4的無線網(wǎng)絡(luò)協(xié)議,具有低功耗、低速率和自組織的特點。該協(xié)議由ZigBee聯(lián)盟制定,支持多條路由,能夠通過多節(jié)點轉(zhuǎn)發(fā)報文,突破單個節(jié)點信號范圍的制約。具有自組織網(wǎng)絡(luò)的能力,可根據(jù)網(wǎng)絡(luò)環(huán)境的動態(tài)調(diào)整數(shù)據(jù)傳輸路徑,從而有效解決多路徑傳輸干擾等問題[3]。以上特性使得ZigBee網(wǎng)絡(luò)非常適合應(yīng)用于樓宇自控系統(tǒng)。BACnet也因此在協(xié)議中增加了對于ZigBee的兼容能力,將其作為一種可選的傳輸媒介,以此實現(xiàn)無線化。
實現(xiàn)BACnet基于ZigBee的無線連接,需解決的主要問題在于如何使用ZigBee網(wǎng)絡(luò)對BACnet網(wǎng)絡(luò)協(xié)議數(shù)據(jù)報文(NPDU)進行發(fā)送和接收。為此,BACnet與ZigBee在各自協(xié)議的內(nèi)部都增加了相應(yīng)的規(guī)定。
圖1 BACnet/ZigBee體系結(jié)構(gòu)
BACnet的開放性主要來自對OSI分層模型的應(yīng)用[4]。該模型使得BACnet的NPDU能夠基于不同類型的數(shù)據(jù)鏈路層及物理層進行收發(fā),如圖1所示。因此,也可參照該模型將BACnet網(wǎng)絡(luò)層運行于ZigBee之上,擴展出無線通訊的能力。由于ZigBee網(wǎng)絡(luò)提供了標準化的應(yīng)用接口,而BACnet網(wǎng)絡(luò)層并不具備支持這些接口的能力,為解決該兼容問題,BACnet在協(xié)議中定義了一個BZLL(BACnet/ZigBee數(shù)據(jù)鏈路層)以實現(xiàn)與ZigBee的適配。
BACnet在其標準中,對BZLL進行了定義[5]。該層提供了BACnet網(wǎng)絡(luò)層與ZigBee網(wǎng)絡(luò)之間的數(shù)據(jù)鏈路,主要負責(zé)參照ZigBee標準對BACnet NPDU進行發(fā)送。由于BACnet網(wǎng)絡(luò)層要求其數(shù)據(jù)鏈路層的MAC地址長度不能超過6個字節(jié),而ZigBee網(wǎng)絡(luò)使用的是8字節(jié)的地址,因此BZLL使用了虛擬MAC地址(VMAC)對其ZigBee地址進行映射,同時提供了VMAC表的管理,保存了無線網(wǎng)絡(luò)中所有BACnet節(jié)點的設(shè)備序列號與ZigBee地址間的關(guān)系。
ZigBee協(xié)議通過商業(yè)樓宇自動化規(guī)范(CBA Profile)中定義的BACnet隧道設(shè)備(BACnet Tunneled Device),以及相關(guān)ZigBee簇(Cluster)的應(yīng)用,來實現(xiàn)對BACnet NPDU的收發(fā)。
3.2.1 ZigBee簇以及簇群庫
簇是ZigBee定義的一組相關(guān)屬性與指令的集合,提供了設(shè)備之間的通訊接口。在此基礎(chǔ)上,ZigBee聯(lián)盟根據(jù)各種應(yīng)用場合規(guī)定了不同類型的簇,并建立了簇的集合 - ZigBee簇群庫(ZCL)。在研發(fā)ZigBee應(yīng)用時,ZCL被作為功能單元使用,以此增強通用性,避免重復(fù)開發(fā)。
ZCL采用了客戶端/服務(wù)器模型[6]。通過設(shè)備之間同類型簇的客戶端與服務(wù)器的綁定建立聯(lián)系。其中,服務(wù)器端保存了該簇相關(guān)的屬性。當接收到來自客戶端的命令時,服務(wù)器對屬性進行相應(yīng)的操作,并將應(yīng)答消息發(fā)送給客戶端。
3.2.2 CBA規(guī)范中的BACnet隧道設(shè)備
在ZCL的基礎(chǔ)上,ZigBee聯(lián)盟制定了CBA規(guī)范,規(guī)定了樓宇自控領(lǐng)域中各種常見的設(shè)備描述和操作,以及可能涉及到的設(shè)備類型和簇的集合,以此來保證不同廠商控制設(shè)備間的互操作性。
該規(guī)范對BACnet隧道設(shè)備進行了描述[7],規(guī)定其應(yīng)當包含BACnet末端(Endpoint,相當于端口),該末端包括了通用隧道簇(Generic Tunneled Cluster)以及BACnet協(xié)議隧道簇(BACnet Protocol Tunnel Cluster),以實現(xiàn)BACnet通訊的功能。其中,GT簇主要提供BACnet設(shè)備序列號(BACnet Device Instance)的相應(yīng)操作。BP簇則主要負責(zé)BACnet NPDU的收發(fā)。由于BACnet隧道設(shè)備需要同時具有接受和發(fā)送NPDU的能力,因此需要包含以上兩類簇的客戶端和服務(wù)器端,如圖2所示。
3.3 BZLL與ZigBee的數(shù)據(jù)交互
圖2 BACnet隧道設(shè)備之間的綁定
圖3 BZLL工作原理圖
圖4 應(yīng)用無線擴展模塊替代BACnet控制器之間的有線通訊
BACnet在其協(xié)議標準也舉例說明了BZLL與ZigBee之間的通訊過程,如圖3所示。在該例程中,末端6被作為BACnet末端,符合CBA規(guī)范中BACnet隧道設(shè)備的描述。BZLL在發(fā)送網(wǎng)絡(luò)層的NPDU時,根據(jù)VMAC表將VMAC地址轉(zhuǎn)換成ZigBee地址并傳輸至ZigBee網(wǎng)絡(luò)。相反地,當BZLL收到來自ZigBee的BACnet消息時,將消息中的ZigBee地址轉(zhuǎn)換為VMAC地址并提供給BACnet網(wǎng)絡(luò)層。另外,末端6所在的ZigBee網(wǎng)絡(luò)中的所有BACnet節(jié)點都被歸入ZigBee組ABCD。當BZLL層需要發(fā)送BACnet廣播時,將通過BP簇把NPDU發(fā)送至對應(yīng)的ABCD組中。同理,該組中其它BACnet節(jié)點發(fā)送的廣播,也會通過組表定位至末端6。
基于上述理論,可設(shè)計一種BACnet/ZigBee無線模塊,作為對BACnet控制器的擴展。以圖4中兩個BACnet控制器之間的通訊為例,通過使用該無線擴展模塊,可以替代原有的有線連接,實現(xiàn)BACnet的無線通訊。
BACnet/ZigBee模塊的硬件主要包括一個主處理器以及ZigBee射頻模塊。主處理器使用基于ARM9內(nèi)核的某型芯片,用于實現(xiàn)BZLL層的功能。ZigBee模塊使用核心為ARM Cortex-M3的某型片上系統(tǒng),支持相應(yīng)的ZigBee協(xié)議棧,負責(zé)處理BACnet NPDU的無線收發(fā)。主處理器與射頻模塊之間通過SPI總線進行通訊。無線模塊使用RS485作為與BACnet控制器之間的接口。
ZigBee協(xié)議棧是對于協(xié)議的具體實現(xiàn),作為ZigBee開發(fā)的軟件部分,為編程人員提供相應(yīng)的函數(shù)庫。目前,多家廠商研發(fā)了各自的協(xié)議棧,如TI公司的Z-Stack,NXP公司的BeeStack以及Silicon Lab公司的EmberZNet。本文以EmberZNet協(xié)議棧為例,使用相應(yīng)的軟件開發(fā)工具包對無線模塊中的ZigBee芯片進行配置。EmberZNet議棧中包含了由ZigBee聯(lián)盟定義的簇群庫,在其API中封裝了簇群庫的細節(jié),只對外提供簡單明了的函數(shù)命令。其軟件開發(fā)工具提供了可視化的配置界面,并且可在完成配置后自動生成對應(yīng)的項目工程及代碼,從而簡化開發(fā)流程。
如圖5所示,在使用Ember Desktop配置BACnet/ZigBee無線模塊時,需要在其ZCL Clusters選項卡中,創(chuàng)建ZigBee末端,并選擇ZCL設(shè)備類型為CBA規(guī)范定義的BACnet隧道設(shè)備。該選項可使自動生成的代碼中包含以下回調(diào)函數(shù),為BACnet NPDU的傳輸提供接口,如表1。
表2 BACnet NPDU數(shù)據(jù)
4.3 實驗測試
實驗以兩個BACnet控制器間的通訊為例,使用BACnet/ZigBee擴展模塊實現(xiàn)其無線通訊。在無線網(wǎng)絡(luò)工作時,應(yīng)用EmberZNet開發(fā)工具對ZigBee數(shù)據(jù)包進行抓取,并與BACnet控制器實際傳輸?shù)腘PDU進行比較,從而驗證擴展模塊的功能。以控制器發(fā)送BACnet Confirmed Request報文請求讀取其它設(shè)備上Analog Input 2的PRESENTVALUE以及PROP_STATUS_FLAGS屬性為例,其NPDU數(shù)據(jù)從高位至低位如表2所示。
抓取ZigBee數(shù)據(jù)包的截屏如圖6所示。將圖中右下方Hex Dump窗口中的數(shù)據(jù)與表2對比,可以驗證該BACnet NPDU已通過ZigBee網(wǎng)絡(luò)實現(xiàn)了無線傳輸。
BACnet與ZigBee協(xié)議通過互聯(lián)機制有機融合,是實現(xiàn)BACnet樓宇自控網(wǎng)絡(luò)無線化的有效途徑。本文基于ZigBee協(xié)議的CBA規(guī)范,詳細描述了BACnet/ZigBee無線擴展模塊的具體實現(xiàn)方案。通過使用符合ZigBee標準的協(xié)議棧,增強了該模塊的通用性,具有較高的參考價值。
圖6 ZigBee傳輸BACnet NPDU數(shù)據(jù)包抓取
[1] 許毅平, 周曼麗. 無線網(wǎng)絡(luò)技術(shù)在智能樓宇中的應(yīng)用研究 [J]. 計算機工程與設(shè)計, 2006(11): 4264-4267.
[2] PARK S C, LEE W S, KIM S H, et al.Implementation of a BACnet-ZigBee Gateway [C]. IEEE conference on Industrial Informatics, 2010: 40-45
[3] 劉軍, 王桂棠, 姚歡, 寧靜. ZigBee技術(shù)中的mesh網(wǎng)絡(luò)研究與實現(xiàn) [J]. 自動化與信息工程, 2008(1): 20-22.
[4] 聶佳, 張燦輝. ZigBee與BACnet互聯(lián)機制的研究 [J]. 低壓電器, 2008(22): 1-3.
[5] ANSI/ASHRAE Addendum q to ANSI/ASHRARE Standard 135-2008 [S].
[6] ZigBee Specification, ZigBee Cluster Library Specification. ZigBee document 075123r02ZB [G/OL]. http://www.zigbee.org.
[7] ZigBee Specification, Commercial Building Automation Profile Specification.ZigBee document 053516r10 [G/OL].http://www.zigbee.org.
Implementation of BACnet/ZigBee Wireless Module Based on ZigBee CBA Prof i le
JI Ming-yi
(Ingersoll Rand Engineering & Technology Center–Asia Pacific)
In this paper, the mechanism of expanding BACnet network by implementing ZigBee protocol is expounded. Based on ZigBee CBA profile, a type of BACnet/ZigBee expansion module was designed, which using EmberZNet protocol stack to implement the function of BACnet tunneled device defined in CBA profile. Experiments show module’s capability of transmitting BACnet NPDU wireless network,which can be the substitution for traditional BACnet wired communication, to satisfy the demand of expansion with wireless communication in BAS.
BACnet/ZigBee;ZigBee CBA profile;EmberZNet