《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于STM32的BACnet/ZigBee互聯(lián)網(wǎng)絡(luò)的設(shè)計與實現(xiàn)
基于STM32的BACnet/ZigBee互聯(lián)網(wǎng)絡(luò)的設(shè)計與實現(xiàn)
2015年微型機(jī)與應(yīng)用第11期
周西峰,徐松松,郭前崗
(南京郵電大學(xué) 自動化學(xué)院,,江蘇 南京 210046)
摘要: 分析了ZigBee技術(shù)在BACnet系統(tǒng)擴(kuò)展應(yīng)用中的基本原理,深入研究了BACnet網(wǎng)絡(luò)與ZigBee網(wǎng)絡(luò)互聯(lián)的具體實現(xiàn)方式以及BACnet的數(shù)據(jù)鏈路層MS/TP協(xié)議的工作機(jī)制,,最終實現(xiàn)了基于嵌入式STM32的BACnet/ZigBee互聯(lián)網(wǎng)絡(luò)。實驗表明,,該方案能夠?qū)ΜF(xiàn)場溫度數(shù)據(jù)進(jìn)行采集與傳輸,。
Abstract:
Key words :

  周西峰,徐松松,,郭前崗

 ?。暇┼]電大學(xué) 自動化學(xué)院,江蘇 南京 210046)

  摘  要: 分析了ZigBee技術(shù)在BACnet系統(tǒng)擴(kuò)展應(yīng)用中的基本原理,,深入研究了BACnet網(wǎng)絡(luò)與ZigBee網(wǎng)絡(luò)互聯(lián)的具體實現(xiàn)方式以及BACnet的數(shù)據(jù)鏈路層MS/TP協(xié)議的工作機(jī)制,,最終實現(xiàn)了基于嵌入式STM32的BACnet/ZigBee互聯(lián)網(wǎng)絡(luò)。實驗表明,,該方案能夠?qū)ΜF(xiàn)場溫度數(shù)據(jù)進(jìn)行采集與傳輸,。

  關(guān)鍵詞: BACnet;ZigBee,;MS/TP,;互聯(lián)網(wǎng)絡(luò)

0 引言

  BACnet是一個關(guān)于樓宇自控設(shè)備數(shù)據(jù)通信的唯一統(tǒng)一標(biāo)準(zhǔn),可以實現(xiàn)不同廠家設(shè)備的互操作,。ZigBee技術(shù)標(biāo)準(zhǔn)的發(fā)布,,極大地推動了無線傳感器網(wǎng)絡(luò)的發(fā)展,其低功耗,、低時延,、低數(shù)據(jù)速率和低成本等特點,可以很好地應(yīng)用于無線傳感網(wǎng)絡(luò)中,。在樓宇控制中存在系統(tǒng)擴(kuò)展的情況,如果采用傳統(tǒng)的有線通信,,由于受環(huán)境的影響,,往往很難甚至無法進(jìn)行。針對BACnet無線通信方面的不足以及ZigBee無線通信的優(yōu)勢,將BACnet網(wǎng)絡(luò)和ZigBee網(wǎng)絡(luò)互聯(lián),,在現(xiàn)有BACnet網(wǎng)絡(luò)的基礎(chǔ)上,,通過ZigBee無線網(wǎng)絡(luò),實現(xiàn)BACnet網(wǎng)絡(luò)的延伸和擴(kuò)展是值得進(jìn)一步研究的問題,。

  本文給出了BACnet/ZigBee互聯(lián)網(wǎng)絡(luò)的硬件和軟件設(shè)計,,并對現(xiàn)場溫度進(jìn)行數(shù)據(jù)采集和傳輸,達(dá)到了預(yù)期結(jié)果,,驗證了該方案的可行性,。

1 BACnet和ZigBee簡介

  BACnet標(biāo)準(zhǔn)是用于樓宇控制網(wǎng)絡(luò)的數(shù)據(jù)通信協(xié)議[1],其作用是將各廠商的樓宇自控設(shè)備集成為一個高效,、統(tǒng)一和具有競爭力的自控網(wǎng)絡(luò)系統(tǒng),。作為一種開放性計算機(jī)局域網(wǎng)絡(luò)協(xié)議,它采用的仍然是OSI模型的“分層”通信體系結(jié)構(gòu)的概念,,是簡化后的一個包含四個層次的分層體系結(jié)構(gòu),,這四個層次相對于OSI模型中的物理層、數(shù)據(jù)鏈路層,、網(wǎng)絡(luò)層和應(yīng)用層,。目前,BACnet是歐盟組織(CEM)的預(yù)備標(biāo)準(zhǔn),,也是國際標(biāo)準(zhǔn)組織(ISO)的證實標(biāo)準(zhǔn),,并在我國得到了大量的工程應(yīng)用和認(rèn)可。

  ZigBee是由ZigBee聯(lián)盟基于802.15.4開發(fā)的一種低成本,、低功耗,、雙向近距離無線數(shù)據(jù)通信網(wǎng)絡(luò)協(xié)議。ZigBee具有以下特點:自組網(wǎng),,網(wǎng)絡(luò)容量大,;網(wǎng)絡(luò)時延短;低功耗,,通信速率低,;傳輸距離可擴(kuò)展;成本低,;可靠性好,,安全性高。ZigBee的出現(xiàn)填補了近距離無線數(shù)據(jù)通信的低成本解決方案空白,,將具有廣闊的應(yīng)用前景,。

2 MS/TP協(xié)議

  MS/TP協(xié)議作為BACnet標(biāo)準(zhǔn)的數(shù)據(jù)鏈路層,解決了EIA-485作為BACnet標(biāo)準(zhǔn)物理層傳輸介質(zhì)的訪問控制MAC問題,。MS/TP[2]網(wǎng)絡(luò)是一個混合網(wǎng)絡(luò),,在這種網(wǎng)絡(luò)中,,存在主站點和從站點兩種非對等的站點,并利用“令牌(Token)”機(jī)制進(jìn)行傳輸介質(zhì)的訪問控制,。令牌只在主站點間傳遞,,但主站點只有在得到令牌時才能發(fā)送幀,否則只能處于接收和監(jiān)聽狀態(tài),。從站點永遠(yuǎn)不會得到令牌,,只有接收和監(jiān)聽的功能,只有在響應(yīng)主站點時才具有發(fā)送響應(yīng)幀的能力,。

  MS/TP協(xié)議規(guī)程可以用三個狀態(tài)機(jī)來描述:接收狀態(tài)機(jī),、主站點發(fā)送狀態(tài)機(jī)和從站點發(fā)送狀態(tài)機(jī)。接收狀態(tài)機(jī)接收物理層的完整數(shù)據(jù)幀,,進(jìn)行幀和數(shù)據(jù)CRC校驗,;發(fā)送狀態(tài)機(jī)根據(jù)MS/TP協(xié)議把數(shù)據(jù)幀發(fā)送給物理層。主站點狀態(tài)機(jī)除了提供網(wǎng)絡(luò)級連接外,,主要負(fù)責(zé)令牌維護(hù)和管理,。

3 BACnet與ZigBee網(wǎng)絡(luò)互聯(lián)

  將ZigBee無線網(wǎng)絡(luò)技術(shù)用于BACnet集成系統(tǒng)中,可以基于OSI應(yīng)用層協(xié)議棧,,將現(xiàn)有的BACnet設(shè)備集成到ZigBee系統(tǒng)結(jié)構(gòu)中,,也可以在現(xiàn)有的BACnet系統(tǒng)架構(gòu)中加入ZigBee應(yīng)用系統(tǒng)集成體系[3-4]。本文采用后者,,即在現(xiàn)有BACnet系統(tǒng)架構(gòu)中加入ZigBee應(yīng)用系統(tǒng)集成體系,。

  在BACnet系統(tǒng)架構(gòu)中擴(kuò)展ZigBee 802.15.4標(biāo)準(zhǔn)的集成實現(xiàn)方案等同于在BACnet協(xié)議棧的數(shù)據(jù)鏈路層和物理層又加載了一個ZigBee網(wǎng)絡(luò),形成一個擴(kuò)展的BACnet協(xié)議體系結(jié)構(gòu),,如圖1所示,。

001.jpg

  對BACnet網(wǎng)絡(luò)通信系統(tǒng)的底層通信系統(tǒng)進(jìn)行擴(kuò)展,必須考慮與BACnet網(wǎng)絡(luò)層接口的兼容,,即在BACnet網(wǎng)絡(luò)層和ZigBee協(xié)議之間定義一個BZLL[5](微協(xié)議層),。該協(xié)議層相當(dāng)于Windows網(wǎng)絡(luò)編程中的API,在此也相當(dāng)于BACnet的鏈路層,。當(dāng)BACnet/ZigBee節(jié)點收到一個組播報文時,,該節(jié)點通過查找組表得到對應(yīng)的BACnet端口,再將報文通過該端口傳輸?shù)紹ZLL處理,。當(dāng)該節(jié)點發(fā)送一個廣播報文時,,BZLL將報文通過BACnet協(xié)議隧道簇傳輸?shù)絑igBee協(xié)議棧,然后綁定表中查找到對應(yīng)的組ID,,通過無線信道發(fā)送到該ZigBee組上,。

  本文研究中,MS/TP作為BACnet數(shù)據(jù)鏈路層,,物理層采用EIA-485,。

  3.1 硬件設(shè)計

  系統(tǒng)整體結(jié)構(gòu)由四部分組成:微控制器,、電源,、EIA-485和ZigBee模塊,。硬件框圖如圖2所示。

002.jpg

  其中,,微控制器采用STM32F107實現(xiàn)系統(tǒng)控制和數(shù)據(jù)處理,;EIA-485驅(qū)動采用MAX485芯片完成現(xiàn)場總線上數(shù)據(jù)收發(fā)的任務(wù);RS232驅(qū)動采用MAX232芯片,,方便與PC機(jī)交換數(shù)據(jù),;ZigBee模塊采用WeBee ZigBee模塊,實現(xiàn)數(shù)據(jù)的無線通信,。

  3.2 軟件設(shè)計

  3.2.1 系統(tǒng)軟件設(shè)計

  本文設(shè)計的BACnet/ZigBee互聯(lián)網(wǎng)絡(luò)中,,BACnet采用MS/TP作為其數(shù)據(jù)鏈路層,采用EIA-485作為其物理層,。故在整體系統(tǒng)的設(shè)計中,,ZigBee充當(dāng)BACnet協(xié)議的數(shù)據(jù)鏈路層和物理層,系統(tǒng)時刻監(jiān)測是否有數(shù)據(jù)中斷的發(fā)生,,當(dāng)有中斷發(fā)生時,,進(jìn)行相應(yīng)的數(shù)據(jù)發(fā)送和接收動作。系統(tǒng)軟件流程圖如圖3所示,。

003.jpg

 ?。?)發(fā)送數(shù)據(jù):負(fù)責(zé)數(shù)據(jù)的無線發(fā)送,主要由MS/TP協(xié)議的幀發(fā)送狀態(tài)機(jī)和ZigBee協(xié)調(diào)器的數(shù)據(jù)發(fā)送完成,。幀發(fā)送狀態(tài)機(jī)檢測發(fā)送器隊列中是否有待發(fā)送的數(shù)據(jù),,當(dāng)確定有數(shù)據(jù)發(fā)送并校驗成功時,進(jìn)入幀發(fā)送過程,,一次發(fā)送的數(shù)據(jù)幀不能超過Nmax_info_frame,,剩余的數(shù)據(jù)幀在下一次持有令牌時再發(fā)送;ZigBee發(fā)送中斷,,在中斷函數(shù)實現(xiàn)數(shù)據(jù)的無線發(fā)送,。

  (2)接收數(shù)據(jù):負(fù)責(zé)無線數(shù)據(jù)的接收,,主要由MS/TP協(xié)議的幀接收狀態(tài)機(jī)和ZigBee協(xié)調(diào)器的數(shù)據(jù)接收完成,。當(dāng)有數(shù)據(jù)發(fā)送到協(xié)調(diào)器時,觸發(fā)UART中斷存儲數(shù)據(jù),,接收幀狀態(tài)機(jī)檢測到有數(shù)據(jù)接收,,進(jìn)行CRC校驗,當(dāng)數(shù)據(jù)正確無誤時將數(shù)據(jù)存入接收隊列,。

 ?。?)網(wǎng)絡(luò)管理:負(fù)責(zé)整個網(wǎng)絡(luò)的運行,,主要由主站點狀態(tài)機(jī)和ZigBee協(xié)調(diào)器完成。初始化過程中實現(xiàn)BACnet協(xié)議的初始化和ZigBee協(xié)調(diào)器的初始化,,BACnet協(xié)議的初始化完成時鐘,、串口等初始化,保證BACnet協(xié)議的正常運行,,ZigBee初始化完成ZigBee無線網(wǎng)絡(luò)的組建,,保證無線網(wǎng)絡(luò)的正常運行。主站點狀態(tài)機(jī)根據(jù)接收到的數(shù)據(jù)幀和MS/TP協(xié)議規(guī)范進(jìn)行相應(yīng)的狀態(tài)轉(zhuǎn)換,,并負(fù)責(zé)令牌的維護(hù)和管理,。

  3.2.2 MS/TP軟件設(shè)計

  MS/TP軟件包括三個模塊:接收幀狀態(tài)機(jī)、發(fā)送幀過程和主節(jié)點狀態(tài)機(jī),。程序流程圖如圖4所示,。

004.jpg

  接收幀狀態(tài)機(jī)接收物理層的數(shù)據(jù)幀,并進(jìn)行CRC校驗,,將成功接收的數(shù)據(jù)幀存儲在接收器隊列中,;主站點狀態(tài)機(jī)不僅提供網(wǎng)絡(luò)級的連接,還負(fù)責(zé)網(wǎng)絡(luò)中令牌的維護(hù)和管理,;發(fā)送幀過程主要負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)換及發(fā)送至物理層,。由于MS/TP協(xié)議要求很高的實時性,因此需要一個精確的時鐘,,本文中選擇5 ms精度的計數(shù)器滿足其對時鐘的要求,。協(xié)議中的時間參數(shù)均是5 ms的整數(shù)倍。

  接收幀狀態(tài)機(jī)的運行獨立于主節(jié)點狀態(tài)機(jī),,通過標(biāo)志位來進(jìn)行通信,,從物理層正確接收數(shù)據(jù)幀。當(dāng)串口有數(shù)據(jù)時,,發(fā)送串口中斷,,在中斷處理函數(shù)中使能接收幀狀態(tài)機(jī)。接收并進(jìn)行CRC校驗,,如果接收正確,,則設(shè)置收到正確幀為TRUE,否則,,設(shè)置收到正確幀為FALSE,,然后進(jìn)行相應(yīng)的錯誤處理過程。

  接收幀狀態(tài)機(jī)將網(wǎng)絡(luò)層傳下來的數(shù)據(jù)變成幀結(jié)構(gòu)數(shù)據(jù),,并以字節(jié)為單位填充串口寄存器,,直到完成整個發(fā)送過程。

  主站點狀態(tài)機(jī)不僅提供網(wǎng)絡(luò)級的連接,,還負(fù)責(zé)網(wǎng)絡(luò)中令牌的維護(hù)和管理,,故其運行與令牌有關(guān),,根據(jù)令牌的持有情況以及接收幀狀態(tài)機(jī)的數(shù)據(jù)參數(shù)進(jìn)行相應(yīng)的狀態(tài)的轉(zhuǎn)換。

4 應(yīng)用實例

  本文通過對現(xiàn)場溫度數(shù)據(jù)的采集和傳輸實驗驗證基于嵌入式STM32的BACnet/ZigBee的可行性,。實驗硬件設(shè)計如上圖2所示,,協(xié)調(diào)器通過USART1與微控制器STM32F107連接,微控制器STM32F107通過串口與PC連接,。當(dāng)ZigBee節(jié)點采集溫度數(shù)據(jù)發(fā)送給協(xié)調(diào)器時,,協(xié)調(diào)器接收數(shù)據(jù)并觸發(fā)USART1中斷,中斷函數(shù)將接收到的數(shù)據(jù)緩存到接收緩沖區(qū),。主函數(shù)無限循環(huán)執(zhí)行函數(shù)bacnet_task(),當(dāng)接收緩沖區(qū)有數(shù)據(jù)時,,通過圖3,、圖4的流程,將數(shù)據(jù)發(fā)送到PC,。實驗中采用兩個ZigBee節(jié)點采集溫度數(shù)據(jù),,系統(tǒng)采集的數(shù)據(jù)結(jié)果如下圖5所示。

005.jpg

  由圖5中的串口信息可知,,本文所設(shè)計的系統(tǒng)能夠準(zhǔn)確接收無線數(shù)據(jù),。

5 總結(jié)

  BACnet是樓宇自控領(lǐng)域的國際標(biāo)準(zhǔn),ZigBee是短距離無線通信的首選,,將ZigBee無線技術(shù)應(yīng)用于BACnet網(wǎng)絡(luò)中,,實現(xiàn)了BACnet網(wǎng)絡(luò)的無線通信,具有重大意義,。

  參考文獻(xiàn)

  [1] 魏峰,,付東翔,王亞剛.BACnet/ZigBee協(xié)議轉(zhuǎn)換器的研究與實現(xiàn)[J].自動化儀表,,2012,,33(9):35-38.

  [2] 劉泉,任平.基于MS/TP協(xié)議的無線Ad Hoc網(wǎng)絡(luò)[J].計算機(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].河南師范大學(xué)學(xué)報(自然科學(xué)版),,2012,,40(2):104-107.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。