周西峰,徐松松,郭前崗
(南京郵電大學 自動化學院,江蘇 南京 210046)
摘 要: 分析了ZigBee技術在BACnet系統擴展應用中的基本原理,深入研究了BACnet網絡與ZigBee網絡互聯的具體實現方式以及BACnet的數據鏈路層MS/TP協議的工作機制,最終實現了基于嵌入式STM32的BACnet/ZigBee互聯網絡。實驗表明,該方案能夠對現場溫度數據進行采集與傳輸。
關鍵詞: BACnet;ZigBee;MS/TP;互聯網絡
0 引言
BACnet是一個關于樓宇自控設備數據通信的唯一統一標準,可以實現不同廠家設備的互操作。ZigBee技術標準的發布,極大地推動了無線傳感器網絡的發展,其低功耗、低時延、低數據速率和低成本等特點,可以很好地應用于無線傳感網絡中。在樓宇控制中存在系統擴展的情況,如果采用傳統的有線通信,由于受環境的影響,往往很難甚至無法進行。針對BACnet無線通信方面的不足以及ZigBee無線通信的優勢,將BACnet網絡和ZigBee網絡互聯,在現有BACnet網絡的基礎上,通過ZigBee無線網絡,實現BACnet網絡的延伸和擴展是值得進一步研究的問題。
本文給出了BACnet/ZigBee互聯網絡的硬件和軟件設計,并對現場溫度進行數據采集和傳輸,達到了預期結果,驗證了該方案的可行性。
1 BACnet和ZigBee簡介
BACnet標準是用于樓宇控制網絡的數據通信協議[1],其作用是將各廠商的樓宇自控設備集成為一個高效、統一和具有競爭力的自控網絡系統。作為一種開放性計算機局域網絡協議,它采用的仍然是OSI模型的“分層”通信體系結構的概念,是簡化后的一個包含四個層次的分層體系結構,這四個層次相對于OSI模型中的物理層、數據鏈路層、網絡層和應用層。目前,BACnet是歐盟組織(CEM)的預備標準,也是國際標準組織(ISO)的證實標準,并在我國得到了大量的工程應用和認可。
ZigBee是由ZigBee聯盟基于802.15.4開發的一種低成本、低功耗、雙向近距離無線數據通信網絡協議。ZigBee具有以下特點:自組網,網絡容量大;網絡時延短;低功耗,通信速率低;傳輸距離可擴展;成本低;可靠性好,安全性高。ZigBee的出現填補了近距離無線數據通信的低成本解決方案空白,將具有廣闊的應用前景。
2 MS/TP協議
MS/TP協議作為BACnet標準的數據鏈路層,解決了EIA-485作為BACnet標準物理層傳輸介質的訪問控制MAC問題。MS/TP[2]網絡是一個混合網絡,在這種網絡中,存在主站點和從站點兩種非對等的站點,并利用“令牌(Token)”機制進行傳輸介質的訪問控制。令牌只在主站點間傳遞,但主站點只有在得到令牌時才能發送幀,否則只能處于接收和監聽狀態。從站點永遠不會得到令牌,只有接收和監聽的功能,只有在響應主站點時才具有發送響應幀的能力。
MS/TP協議規程可以用三個狀態機來描述:接收狀態機、主站點發送狀態機和從站點發送狀態機。接收狀態機接收物理層的完整數據幀,進行幀和數據CRC校驗;發送狀態機根據MS/TP協議把數據幀發送給物理層。主站點狀態機除了提供網絡級連接外,主要負責令牌維護和管理。
3 BACnet與ZigBee網絡互聯
將ZigBee無線網絡技術用于BACnet集成系統中,可以基于OSI應用層協議棧,將現有的BACnet設備集成到ZigBee系統結構中,也可以在現有的BACnet系統架構中加入ZigBee應用系統集成體系[3-4]。本文采用后者,即在現有BACnet系統架構中加入ZigBee應用系統集成體系。
在BACnet系統架構中擴展ZigBee 802.15.4標準的集成實現方案等同于在BACnet協議棧的數據鏈路層和物理層又加載了一個ZigBee網絡,形成一個擴展的BACnet協議體系結構,如圖1所示。
對BACnet網絡通信系統的底層通信系統進行擴展,必須考慮與BACnet網絡層接口的兼容,即在BACnet網絡層和ZigBee協議之間定義一個BZLL[5](微協議層)。該協議層相當于Windows網絡編程中的API,在此也相當于BACnet的鏈路層。當BACnet/ZigBee節點收到一個組播報文時,該節點通過查找組表得到對應的BACnet端口,再將報文通過該端口傳輸到BZLL處理。當該節點發送一個廣播報文時,BZLL將報文通過BACnet協議隧道簇傳輸到ZigBee協議棧,然后綁定表中查找到對應的組ID,通過無線信道發送到該ZigBee組上。
本文研究中,MS/TP作為BACnet數據鏈路層,物理層采用EIA-485。
3.1 硬件設計
系統整體結構由四部分組成:微控制器、電源、EIA-485和ZigBee模塊。硬件框圖如圖2所示。
其中,微控制器采用STM32F107實現系統控制和數據處理;EIA-485驅動采用MAX485芯片完成現場總線上數據收發的任務;RS232驅動采用MAX232芯片,方便與PC機交換數據;ZigBee模塊采用WeBee ZigBee模塊,實現數據的無線通信。
3.2 軟件設計
3.2.1 系統軟件設計
本文設計的BACnet/ZigBee互聯網絡中,BACnet采用MS/TP作為其數據鏈路層,采用EIA-485作為其物理層。故在整體系統的設計中,ZigBee充當BACnet協議的數據鏈路層和物理層,系統時刻監測是否有數據中斷的發生,當有中斷發生時,進行相應的數據發送和接收動作。系統軟件流程圖如圖3所示。
(1)發送數據:負責數據的無線發送,主要由MS/TP協議的幀發送狀態機和ZigBee協調器的數據發送完成。幀發送狀態機檢測發送器隊列中是否有待發送的數據,當確定有數據發送并校驗成功時,進入幀發送過程,一次發送的數據幀不能超過Nmax_info_frame,剩余的數據幀在下一次持有令牌時再發送;ZigBee發送中斷,在中斷函數實現數據的無線發送。
(2)接收數據:負責無線數據的接收,主要由MS/TP協議的幀接收狀態機和ZigBee協調器的數據接收完成。當有數據發送到協調器時,觸發UART中斷存儲數據,接收幀狀態機檢測到有數據接收,進行CRC校驗,當數據正確無誤時將數據存入接收隊列。
(3)網絡管理:負責整個網絡的運行,主要由主站點狀態機和ZigBee協調器完成。初始化過程中實現BACnet協議的初始化和ZigBee協調器的初始化,BACnet協議的初始化完成時鐘、串口等初始化,保證BACnet協議的正常運行,ZigBee初始化完成ZigBee無線網絡的組建,保證無線網絡的正常運行。主站點狀態機根據接收到的數據幀和MS/TP協議規范進行相應的狀態轉換,并負責令牌的維護和管理。
3.2.2 MS/TP軟件設計
MS/TP軟件包括三個模塊:接收幀狀態機、發送幀過程和主節點狀態機。程序流程圖如圖4所示。
接收幀狀態機接收物理層的數據幀,并進行CRC校驗,將成功接收的數據幀存儲在接收器隊列中;主站點狀態機不僅提供網絡級的連接,還負責網絡中令牌的維護和管理;發送幀過程主要負責數據的轉換及發送至物理層。由于MS/TP協議要求很高的實時性,因此需要一個精確的時鐘,本文中選擇5 ms精度的計數器滿足其對時鐘的要求。協議中的時間參數均是5 ms的整數倍。
接收幀狀態機的運行獨立于主節點狀態機,通過標志位來進行通信,從物理層正確接收數據幀。當串口有數據時,發送串口中斷,在中斷處理函數中使能接收幀狀態機。接收并進行CRC校驗,如果接收正確,則設置收到正確幀為TRUE,否則,設置收到正確幀為FALSE,然后進行相應的錯誤處理過程。
接收幀狀態機將網絡層傳下來的數據變成幀結構數據,并以字節為單位填充串口寄存器,直到完成整個發送過程。
主站點狀態機不僅提供網絡級的連接,還負責網絡中令牌的維護和管理,故其運行與令牌有關,根據令牌的持有情況以及接收幀狀態機的數據參數進行相應的狀態的轉換。
4 應用實例
本文通過對現場溫度數據的采集和傳輸實驗驗證基于嵌入式STM32的BACnet/ZigBee的可行性。實驗硬件設計如上圖2所示,協調器通過USART1與微控制器STM32F107連接,微控制器STM32F107通過串口與PC連接。當ZigBee節點采集溫度數據發送給協調器時,協調器接收數據并觸發USART1中斷,中斷函數將接收到的數據緩存到接收緩沖區。主函數無限循環執行函數bacnet_task(),當接收緩沖區有數據時,通過圖3、圖4的流程,將數據發送到PC。實驗中采用兩個ZigBee節點采集溫度數據,系統采集的數據結果如下圖5所示。
由圖5中的串口信息可知,本文所設計的系統能夠準確接收無線數據。
5 總結
BACnet是樓宇自控領域的國際標準,ZigBee是短距離無線通信的首選,將ZigBee無線技術應用于BACnet網絡中,實現了BACnet網絡的無線通信,具有重大意義。
參考文獻
[1] 魏峰,付東翔,王亞剛.BACnet/ZigBee協議轉換器的研究與實現[J].自動化儀表,2012,33(9):35-38.
[2] 劉泉,任平.基于MS/TP協議的無線Ad Hoc網絡[J].計算機工程,2009,35(10):89-91.
[3] PARK T J, CHON Y J, PARK D K, et al. BACnet over ZigBee, a new approach to wireless datalink channel for BACnet[C]. Institute of Electrical and Electronics Engineers Conference on Industrial Informatics, 2007:23-27.
[4] PARK S C, LEE W S, KIM S H, et al. Implementation of a BACnet-ZigBee gateway[C]. Institute of Electrical and Electronics Engineers Conference on Industrial Informatics,2010:40-45.
[5] 李春旺,吳義民,田沛哲.基于BACnet/ZigBee的無線智能溫度傳感器[J].河南師范大學學報(自然科學版),2012,40(2):104-107.