王娟 包志華 楊永杰
摘 要: 以STM32單片機(jī)為背景,結(jié)合智慧酒店客房控制系統(tǒng)的現(xiàn)狀,提出一套基于CAN總線(xiàn)的客房控制系統(tǒng)的研究方案。該系統(tǒng)通過(guò)CAN總線(xiàn)將每個(gè)監(jiān)控節(jié)點(diǎn)連接起來(lái),實(shí)時(shí)與上位機(jī)進(jìn)行數(shù)據(jù)交互;監(jiān)控節(jié)點(diǎn)采用內(nèi)置CAN控制器的STM32F103C8T6作為主控制器,在此基礎(chǔ)上自定義了CAN總線(xiàn)應(yīng)用層協(xié)議,形成一個(gè)完整的主從通信方案。運(yùn)行結(jié)果表明,此系統(tǒng)穩(wěn)定性高,成本低,具有廣闊的應(yīng)用前景。
關(guān)鍵詞: CAN總線(xiàn); 智慧控制系統(tǒng); 酒店客房; STM32F103C8T6; 監(jiān)控節(jié)點(diǎn); 通信方案
中圖分類(lèi)號(hào): TN915.04?34; TP274 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2018)20?0104?03
Abstract: A research scheme of the guest room control system based on the CAN bus is proposed by taking the STM32 microcontroller as the background and combining the current status of the intelligent hotel guest room control system. In the system, every monitoring node is connected by using the CAN bus, so as to conduct data interaction with the upper computer in real time. In the monitoring node, the STM32F103C8T6 with the CAN controller embedded is taken as the main controller, and on this basis, the application layer protocol of the CAN bus is defined, so as to form a complete master?slave communication scheme. The operating results show that the system has a high stability, low cost, and broad application prospect.
Keywords: CAN bus; intelligent control system; hotel guest room; STM32F103C8T6; monitoring node; communication scheme
目前,現(xiàn)有與酒店客房控制相關(guān)的產(chǎn)品普遍采用RS 485總線(xiàn)通信,其特點(diǎn)決定了它的實(shí)時(shí)性與可靠性不高,且隨著參與通信的設(shè)備類(lèi)型與數(shù)量的迅速增多,RS 485總線(xiàn)通信的不足之處日益顯現(xiàn)[1]。本文采用CAN總線(xiàn)來(lái)完成控制模塊與設(shè)備間的信息通信,利用CAN總線(xiàn)的高速率、高可靠性、低出錯(cuò)率以及總線(xiàn)沖突預(yù)防機(jī)制,來(lái)提高通信過(guò)程的穩(wěn)定與高效,實(shí)現(xiàn)多節(jié)點(diǎn)同時(shí)監(jiān)控[2]。
由于CAN總線(xiàn)在物理層和數(shù)據(jù)鏈路層上自帶內(nèi)部協(xié)議,沒(méi)有規(guī)定應(yīng)用層,本身并不完整。在基于CAN BUS的分布式客房控制系統(tǒng)中,有些附加功能需要一個(gè)高層協(xié)議來(lái)實(shí)現(xiàn),因此有必要建立一個(gè)高層協(xié)議,能夠在 CAN 網(wǎng)絡(luò)中實(shí)現(xiàn)統(tǒng)一的通信模式,執(zhí)行網(wǎng)絡(luò)管理功能,以及提供設(shè)備功能描述方式。目前真正占領(lǐng)市場(chǎng)的兩個(gè)應(yīng)用層協(xié)議是:DeviceNet協(xié)議和CANOpen協(xié)議[3]。DeviceNet協(xié)議適應(yīng)于工業(yè)自動(dòng)化控制;CANOpen協(xié)議適應(yīng)于產(chǎn)品部件內(nèi)部的嵌入式網(wǎng)絡(luò),在汽車(chē)、電梯、醫(yī)療儀器以及船舶運(yùn)輸?shù)阮I(lǐng)域均有廣泛的應(yīng)用,但是這些協(xié)議針對(duì)的主要是工控領(lǐng)域,在物聯(lián)網(wǎng)和樓宇控制領(lǐng)域并沒(méi)有這樣的協(xié)議存在,本文的協(xié)議由此應(yīng)運(yùn)而生。
基于CAN總線(xiàn)的客房控制系統(tǒng)主要由上位機(jī)軟件和各網(wǎng)絡(luò)控制節(jié)點(diǎn)組成[4]。上位機(jī)運(yùn)行的客房控制系統(tǒng)軟件負(fù)責(zé)對(duì)每個(gè)監(jiān)測(cè)節(jié)點(diǎn)進(jìn)行監(jiān)測(cè),發(fā)送系統(tǒng)信息(主要指配置信息、固件信息和設(shè)置心跳)和控制信息,同時(shí)接收各個(gè)節(jié)點(diǎn)執(zhí)行設(shè)備的狀態(tài)信息和監(jiān)測(cè)數(shù)據(jù),更新數(shù)據(jù)。監(jiān)測(cè)節(jié)點(diǎn)主要由繼電器控制模塊、調(diào)光模塊、紅外遙控模塊、電力測(cè)量模塊等執(zhí)行設(shè)備組成。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
本文監(jiān)測(cè)節(jié)點(diǎn)的設(shè)計(jì)采用ST公司的STM32F103RBT6為主控制器。該芯片使用Cortex?M3內(nèi)核,工作頻率為72 MHz,內(nèi)置高速存儲(chǔ)器,豐富的I/O端口。STM32系列所有型號(hào)的器件都包括2個(gè)12 bit的ADC、3個(gè)通用16 bit定時(shí)器和一個(gè)PWM定時(shí)器,可以滿(mǎn)足本系統(tǒng)所需的調(diào)光、紅外遙控和電力計(jì)量等要求[5]。其內(nèi)部自帶CAN控制器,支持CAN2.0A和2.0B,能夠高效地處理收到的大量報(bào)文,無(wú)須外圍電路實(shí)現(xiàn)CAN通信的要求,大大降低了開(kāi)發(fā)的成本和復(fù)雜度[6]。監(jiān)測(cè)節(jié)點(diǎn)原理圖如圖2所示。
為了實(shí)現(xiàn)多點(diǎn)實(shí)時(shí)監(jiān)測(cè)的目的,給每個(gè)監(jiān)測(cè)節(jié)點(diǎn)分配一個(gè)唯一的地址(即下文所提到的物理地址),測(cè)試時(shí)可根據(jù)配置信息來(lái)進(jìn)行現(xiàn)場(chǎng)撥碼,這樣的設(shè)計(jì)可增強(qiáng)硬件的靈活性[7]。
3.1 報(bào)文格式定義
CAN總線(xiàn)以報(bào)文為單位進(jìn)行信息傳送,報(bào)文中含有標(biāo)識(shí)符,CAN2.0B規(guī)定了兩種幀格式,即標(biāo)準(zhǔn)幀和擴(kuò)展幀。標(biāo)準(zhǔn)幀有11位標(biāo)志符,擴(kuò)展幀使用29位的標(biāo)識(shí)符[8],本文的自定義協(xié)議規(guī)定的通信幀是帶有29位標(biāo)志符的擴(kuò)展幀。每組通信幀一共93 bit,分為幀標(biāo)識(shí)符和幀數(shù)據(jù)部分,其報(bào)文格式如表1所示。
29位幀標(biāo)識(shí)符分為優(yōu)先級(jí)、源地址、目的地址、ACK應(yīng)答、重復(fù)位和保留位六部分。其中目的地址有物理地址和組地址兩種形式,ID18為0時(shí)表示后面跟的是物理地址,為1時(shí)表示后面跟的是組地址,物理地址對(duì)應(yīng)每個(gè)房間,此時(shí)為模塊配置幀;組地址對(duì)應(yīng)每個(gè)執(zhí)行設(shè)備,此時(shí)為對(duì)象交互幀。在自定義協(xié)議中,對(duì)象是最小的執(zhí)行單元,一個(gè)設(shè)備就是同類(lèi)對(duì)象的集合。不同設(shè)備的對(duì)象通過(guò)組地址進(jìn)行數(shù)據(jù)的交互,通過(guò)配置組地址和對(duì)象的對(duì)應(yīng)關(guān)系,就可以實(shí)現(xiàn)設(shè)備間的控制。組地址與對(duì)象的關(guān)系通過(guò)關(guān)聯(lián)表來(lái)查詢(xún),在配置過(guò)程中由網(wǎng)關(guān)下發(fā),對(duì)應(yīng)關(guān)系如圖3所示。而當(dāng)目的地址全為0時(shí),為廣播幀。
數(shù)據(jù)幀部分分為通信參數(shù)、命令和數(shù)據(jù)內(nèi)容三部分,通信參數(shù)的bit7~bit4用來(lái)說(shuō)明數(shù)據(jù)類(lèi)型,bit3,bit2標(biāo)志分幀信息,其余位保留;命令字節(jié)由通信命令確定,每條通信命令對(duì)應(yīng)不同的命令集;當(dāng)數(shù)據(jù)為對(duì)象交互幀時(shí),數(shù)據(jù)內(nèi)容部分以數(shù)據(jù)點(diǎn)單元格式傳輸,當(dāng)數(shù)據(jù)為模塊配置幀時(shí),數(shù)據(jù)通常超過(guò)7 B,采用數(shù)據(jù)分幀形式傳輸。
3.2 數(shù)據(jù)交換方式
自定義CAN通信幀傳輸協(xié)議定義了協(xié)議規(guī)范中的通信模式,以及網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)按照數(shù)據(jù)傳輸協(xié)議實(shí)現(xiàn)相互之間的數(shù)據(jù)交換[9]。通過(guò)通信幀傳輸協(xié)議能夠保證網(wǎng)絡(luò)中通信數(shù)據(jù)傳輸?shù)拇_定性和可靠性。在CAN網(wǎng)絡(luò)系統(tǒng)中,最常用的是生產(chǎn)者消費(fèi)者通信模式。通信網(wǎng)絡(luò)中,某個(gè)模塊負(fù)責(zé)產(chǎn)生數(shù)據(jù),這些數(shù)據(jù)由另一個(gè)模塊來(lái)負(fù)責(zé)處理,產(chǎn)生數(shù)據(jù)的模塊,稱(chēng)為生產(chǎn)者;而處理數(shù)據(jù)的模塊,稱(chēng)為消費(fèi)者[10]。而本文所有的設(shè)備都可以主動(dòng)向其他設(shè)備發(fā)起通信,所以采用無(wú)主機(jī)結(jié)構(gòu),并且為了通信系統(tǒng)的穩(wěn)定性,采用應(yīng)答機(jī)構(gòu)。
3.3 報(bào)文處理過(guò)程
當(dāng)收到報(bào)文時(shí),根據(jù)標(biāo)志位先判斷地址類(lèi)型,如果是物理地址,則將配置信息寫(xiě)入FLASH;如果是組地址,則將控制功能完全分散到各個(gè)執(zhí)行設(shè)備,通過(guò)關(guān)聯(lián)表查詢(xún)到組地址所對(duì)應(yīng)的對(duì)象,執(zhí)行相應(yīng)的命令。接收到報(bào)文后處理過(guò)程如圖4所示。
本文將自定義CAN總線(xiàn)技術(shù)應(yīng)用于智慧酒店客房控制系統(tǒng),改變了傳統(tǒng)RS 485通信方式的不足,采用物理地址和組地址相結(jié)合的方式,大大增加了執(zhí)行設(shè)備的類(lèi)型與數(shù)量。 生產(chǎn)實(shí)踐表明,采用 CAN現(xiàn)場(chǎng)總線(xiàn)通信的監(jiān)控系統(tǒng)可靠性高、抗干擾性強(qiáng)、開(kāi)發(fā)簡(jiǎn)單高效、成本低、檢查能力強(qiáng),具有廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1] BEHERA S, PATTNAIK B S, REZA M, et al. Predicting consumer loads for improved power scheduling in smart homes [M]. Computational intelligence in data mining, 2016: 463?473.
[2] 葉建云.智慧酒店客房精細(xì)化節(jié)能設(shè)計(jì)[J].智能建筑,2013(4):69?73.
YE Jianyun. Intelligent fine energy?saving design for hotel guest rooms [J]. Intelligent building, 2013(4): 69?73.
[3] 饒運(yùn)濤,鄒繼軍,王進(jìn)宏,等.現(xiàn)場(chǎng)總線(xiàn)CAN原理與應(yīng)用技術(shù)[M].2版.北京:北京航空航天大學(xué)出版社,2007.
RAO Yuntao, ZOU Jijun, WANG Jinhong, et al. The principle and application technology of field bus CAN [M]. 2nd ed. Beijing: Beihang University Press, 2007.
[4] 劉勇,佟為明,畢勝,等.基于CAN總線(xiàn)的企業(yè)能源監(jiān)測(cè)系統(tǒng)研究[J].儀器儀表學(xué)報(bào),2006(z3):2437?2438.
LIU Yong, TONG Weiming, BI Sheng, et al. Research on the plant energy monitoring system based on CAN bus [J]. Chinese journal of scientific instrument, 2006(S3): 2437?2438.
[5] WANG F, LOU W Z, GUO M R, et al. Intelligent logistics monitoring microsystem based on STM32 [J]. Key engineering materials, 2015, 645: 896?899.
[6] STMicroelectronics. STM32F103x8, STM32F103xB數(shù)據(jù)手冊(cè) [EB/OL]. [2012?09?01]. http://www.docin.com/p?235265340.html.
STMicroelectronics. Datasheet of STM32F103x8 and STM32
F103xB [EB/OL]. [2012?09?01]. http://www.docin.com/p?235265340.html.
[7] IKEDA M, KULLA E, HIYAMA M, et al. Investigation of TCP and UDP multiple?flow traffic in wireless mobile ad?hoc networks [J]. Journal of high speed networks, 2013, 19(2): 129?145.
[8] 孫招鳳.CAN總線(xiàn)網(wǎng)絡(luò)報(bào)文標(biāo)識(shí)符編碼研究[J].導(dǎo)彈與航天運(yùn)載技術(shù),2009(2):31?36.
SUN Zhaofeng. Study on CAN?bus message identifier coding [J]. Missiles and space vehicles, 2009(2): 31?36.
[9] ZHOU W W, HUANG J Y, GAO M Y, et al. Design and realization of CAN?based main control system of multi?station meter testing equipment [J]. Applied mechanics & materials, 2015, 719: 411?416.
[10] SHEHATA M, EBERLEIN A, FAPOJUWO A O. Managing policy interactions in KNX?based smart homes [C]// Proceedings of 31st Annual International Computer Software and Applications Conference. Beijing: IEEE, 2007: 367?378.