王娟 包志華 楊永杰
摘 要: 以STM32單片機為背景,結合智慧酒店客房控制系統的現狀,提出一套基于CAN總線的客房控制系統的研究方案。該系統通過CAN總線將每個監控節點連接起來,實時與上位機進行數據交互;監控節點采用內置CAN控制器的STM32F103C8T6作為主控制器,在此基礎上自定義了CAN總線應用層協議,形成一個完整的主從通信方案。運行結果表明,此系統穩定性高,成本低,具有廣闊的應用前景。
關鍵詞: CAN總線; 智慧控制系統; 酒店客房; STM32F103C8T6; 監控節點; 通信方案
中圖分類號: TN915.04?34; TP274 文獻標識碼: A 文章編號: 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
目前,現有與酒店客房控制相關的產品普遍采用RS 485總線通信,其特點決定了它的實時性與可靠性不高,且隨著參與通信的設備類型與數量的迅速增多,RS 485總線通信的不足之處日益顯現[1]。本文采用CAN總線來完成控制模塊與設備間的信息通信,利用CAN總線的高速率、高可靠性、低出錯率以及總線沖突預防機制,來提高通信過程的穩定與高效,實現多節點同時監控[2]。
由于CAN總線在物理層和數據鏈路層上自帶內部協議,沒有規定應用層,本身并不完整。在基于CAN BUS的分布式客房控制系統中,有些附加功能需要一個高層協議來實現,因此有必要建立一個高層協議,能夠在 CAN 網絡中實現統一的通信模式,執行網絡管理功能,以及提供設備功能描述方式。目前真正占領市場的兩個應用層協議是:DeviceNet協議和CANOpen協議[3]。DeviceNet協議適應于工業自動化控制;CANOpen協議適應于產品部件內部的嵌入式網絡,在汽車、電梯、醫療儀器以及船舶運輸等領域均有廣泛的應用,但是這些協議針對的主要是工控領域,在物聯網和樓宇控制領域并沒有這樣的協議存在,本文的協議由此應運而生。
基于CAN總線的客房控制系統主要由上位機軟件和各網絡控制節點組成[4]。上位機運行的客房控制系統軟件負責對每個監測節點進行監測,發送系統信息(主要指配置信息、固件信息和設置心跳)和控制信息,同時接收各個節點執行設備的狀態信息和監測數據,更新數據。監測節點主要由繼電器控制模塊、調光模塊、紅外遙控模塊、電力測量模塊等執行設備組成。系統總體結構如圖1所示。
本文監測節點的設計采用ST公司的STM32F103RBT6為主控制器。該芯片使用Cortex?M3內核,工作頻率為72 MHz,內置高速存儲器,豐富的I/O端口。STM32系列所有型號的器件都包括2個12 bit的ADC、3個通用16 bit定時器和一個PWM定時器,可以滿足本系統所需的調光、紅外遙控和電力計量等要求[5]。其內部自帶CAN控制器,支持CAN2.0A和2.0B,能夠高效地處理收到的大量報文,無須外圍電路實現CAN通信的要求,大大降低了開發的成本和復雜度[6]。監測節點原理圖如圖2所示。
為了實現多點實時監測的目的,給每個監測節點分配一個唯一的地址(即下文所提到的物理地址),測試時可根據配置信息來進行現場撥碼,這樣的設計可增強硬件的靈活性[7]。
3.1 報文格式定義
CAN總線以報文為單位進行信息傳送,報文中含有標識符,CAN2.0B規定了兩種幀格式,即標準幀和擴展幀。標準幀有11位標志符,擴展幀使用29位的標識符[8],本文的自定義協議規定的通信幀是帶有29位標志符的擴展幀。每組通信幀一共93 bit,分為幀標識符和幀數據部分,其報文格式如表1所示。
29位幀標識符分為優先級、源地址、目的地址、ACK應答、重復位和保留位六部分。其中目的地址有物理地址和組地址兩種形式,ID18為0時表示后面跟的是物理地址,為1時表示后面跟的是組地址,物理地址對應每個房間,此時為模塊配置幀;組地址對應每個執行設備,此時為對象交互幀。在自定義協議中,對象是最小的執行單元,一個設備就是同類對象的集合。不同設備的對象通過組地址進行數據的交互,通過配置組地址和對象的對應關系,就可以實現設備間的控制。組地址與對象的關系通過關聯表來查詢,在配置過程中由網關下發,對應關系如圖3所示。而當目的地址全為0時,為廣播幀。
數據幀部分分為通信參數、命令和數據內容三部分,通信參數的bit7~bit4用來說明數據類型,bit3,bit2標志分幀信息,其余位保留;命令字節由通信命令確定,每條通信命令對應不同的命令集;當數據為對象交互幀時,數據內容部分以數據點單元格式傳輸,當數據為模塊配置幀時,數據通常超過7 B,采用數據分幀形式傳輸。
3.2 數據交換方式
自定義CAN通信幀傳輸協議定義了協議規范中的通信模式,以及網絡中各個節點按照數據傳輸協議實現相互之間的數據交換[9]。通過通信幀傳輸協議能夠保證網絡中通信數據傳輸的確定性和可靠性。在CAN網絡系統中,最常用的是生產者消費者通信模式。通信網絡中,某個模塊負責產生數據,這些數據由另一個模塊來負責處理,產生數據的模塊,稱為生產者;而處理數據的模塊,稱為消費者[10]。而本文所有的設備都可以主動向其他設備發起通信,所以采用無主機結構,并且為了通信系統的穩定性,采用應答機構。
3.3 報文處理過程
當收到報文時,根據標志位先判斷地址類型,如果是物理地址,則將配置信息寫入FLASH;如果是組地址,則將控制功能完全分散到各個執行設備,通過關聯表查詢到組地址所對應的對象,執行相應的命令。接收到報文后處理過程如圖4所示。
本文將自定義CAN總線技術應用于智慧酒店客房控制系統,改變了傳統RS 485通信方式的不足,采用物理地址和組地址相結合的方式,大大增加了執行設備的類型與數量。 生產實踐表明,采用 CAN現場總線通信的監控系統可靠性高、抗干擾性強、開發簡單高效、成本低、檢查能力強,具有廣泛的應用前景。
參考文獻
[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] 葉建云.智慧酒店客房精細化節能設計[J].智能建筑,2013(4):69?73.
YE Jianyun. Intelligent fine energy?saving design for hotel guest rooms [J]. Intelligent building, 2013(4): 69?73.
[3] 饒運濤,鄒繼軍,王進宏,等.現場總線CAN原理與應用技術[M].2版.北京:北京航空航天大學出版社,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總線的企業能源監測系統研究[J].儀器儀表學報,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數據手冊 [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總線網絡報文標識符編碼研究[J].導彈與航天運載技術,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.