用于智慧酒店客房控制系统的CAN总线协议研究
2018-10-24王娟包志华杨永杰
王娟 包志华 杨永杰
摘 要: 以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
0 引 言
目前,现有与酒店客房控制相關的产品普遍采用RS 485总线通信,其特点决定了它的实时性与可靠性不高,且随着参与通信的设备类型与数量的迅速增多,RS 485总线通信的不足之处日益显现[1]。本文采用CAN总线来完成控制模块与设备间的信息通信,利用CAN总线的高速率、高可靠性、低出错率以及总线冲突预防机制,来提高通信过程的稳定与高效,实现多节点同时监控[2]。
由于CAN总线在物理层和数据链路层上自带内部协议,没有规定应用层,本身并不完整。在基于CAN BUS的分布式客房控制系统中,有些附加功能需要一个高层协议来实现,因此有必要建立一个高层协议,能够在 CAN 网络中实现统一的通信模式,执行网络管理功能,以及提供设备功能描述方式。目前真正占领市场的两个应用层协议是:DeviceNet协议和CANOpen协议[3]。DeviceNet协议适应于工业自动化控制;CANOpen协议适应于产品部件内部的嵌入式网络,在汽车、电梯、医疗仪器以及船舶运输等领域均有广泛的应用,但是这些协议针对的主要是工控领域,在物联网和楼宇控制领域并没有这样的协议存在,本文的协议由此应运而生。
1 系统总体设计
基于CAN总线的客房控制系统主要由上位机软件和各网络控制节点组成[4]。上位机运行的客房控制系统软件负责对每个监测节点进行监测,发送系统信息(主要指配置信息、固件信息和设置心跳)和控制信息,同时接收各个节点执行设备的状态信息和监测数据,更新数据。监测节点主要由继电器控制模块、调光模块、红外遥控模块、电力测量模块等执行设备组成。系统总体结构如图1所示。
2 监测节点设计
本文监测节点的设计采用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 自定义应用层协议的设计与实现
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所示。
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.