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

  周西峰,徐松松,郭前崗

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

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

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

0 引言

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

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

1 BACnet和ZigBee簡(jiǎn)介

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

  ZigBee是由ZigBee聯(lián)盟基于802.15.4開(kāi)發(fā)的一種低成本、低功耗、雙向近距離無(wú)線數(shù)據(jù)通信網(wǎng)絡(luò)協(xié)議。ZigBee具有以下特點(diǎn):自組網(wǎng),網(wǎng)絡(luò)容量大;網(wǎng)絡(luò)時(shí)延短;低功耗,通信速率低;傳輸距離可擴(kuò)展;成本低;可靠性好,安全性高。ZigBee的出現(xiàn)填補(bǔ)了近距離無(wú)線數(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ì)的訪問(wèn)控制MAC問(wèn)題。MS/TP[2]網(wǎng)絡(luò)是一個(gè)混合網(wǎng)絡(luò),在這種網(wǎng)絡(luò)中,存在主站點(diǎn)和從站點(diǎn)兩種非對(duì)等的站點(diǎn),并利用“令牌(Token)”機(jī)制進(jìn)行傳輸介質(zhì)的訪問(wèn)控制。令牌只在主站點(diǎn)間傳遞,但主站點(diǎn)只有在得到令牌時(shí)才能發(fā)送幀,否則只能處于接收和監(jiān)聽(tīng)狀態(tài)。從站點(diǎn)永遠(yuǎn)不會(huì)得到令牌,只有接收和監(jiān)聽(tīng)的功能,只有在響應(yīng)主站點(diǎn)時(shí)才具有發(fā)送響應(yīng)幀的能力。

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

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

  將ZigBee無(wú)線網(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)的集成實(shí)現(xiàn)方案等同于在BACnet協(xié)議棧的數(shù)據(jù)鏈路層和物理層又加載了一個(gè)ZigBee網(wǎng)絡(luò),形成一個(gè)擴(kuò)展的BACnet協(xié)議體系結(jié)構(gòu),如圖1所示。

001.jpg

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

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

  3.1 硬件設(shè)計(jì)

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

002.jpg

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

  3.2 軟件設(shè)計(jì)

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

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

003.jpg

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

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

 ?。?)網(wǎng)絡(luò)管理:負(fù)責(zé)整個(gè)網(wǎng)絡(luò)的運(yùn)行,主要由主站點(diǎn)狀態(tài)機(jī)和ZigBee協(xié)調(diào)器完成。初始化過(guò)程中實(shí)現(xiàn)BACnet協(xié)議的初始化和ZigBee協(xié)調(diào)器的初始化,BACnet協(xié)議的初始化完成時(shí)鐘、串口等初始化,保證BACnet協(xié)議的正常運(yùn)行,ZigBee初始化完成ZigBee無(wú)線網(wǎng)絡(luò)的組建,保證無(wú)線網(wǎng)絡(luò)的正常運(yùn)行。主站點(diǎn)狀態(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è)計(jì)

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

004.jpg

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

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

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

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

4 應(yīng)用實(shí)例

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

005.jpg

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

5 總結(jié)

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

  參考文獻(xiàn)

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

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


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