摘 要: 设计、研发了一套基于CAN总线的酒店客房智能化系统,介绍了该系统实现的功能、网络架构、硬件和软件设计方案,并对其硬件成本进行可行性分析,研发的客户终端在实际应用中取得了良好的效果。
关键词: CAN总线;酒店客房;智能化系统
随着社会的进步和人们生活品质的提高,酒店客房以及家居逐步实现智能化控制。房间的灯光控制(诸如台灯、地灯、廊灯、夜灯、顶灯、吧灯)、家电控制(诸如空调、电视、排风扇)及服务控制(诸如呼叫、请勿打扰、清理卫生)等都实现了在客人的床头位置自动控制,也可以通过遥控器控制,并实时把房间里面的状态通过总线上传到酒店的服务台。如果酒店或家庭配有艺术化色调的灯具,就可以达到更人性化的灯光效果,例如:读书时一键选择“阅读灯光背景模式”;用餐时一键选择“餐厅灯光背景模式”;睡觉前半小时一键选择“暖色调灯光背景模式”等。
酒店的服务台也可以在计算机上面的“酒店客房管理系统软件”上实时掌握客房内状态,操作控制客房内的家电、灯光、应答客人服务。如果计算机连接互联网,进而还可以实现远程控制,实现智能家居。
相对于485总线,CAN总线以其具有“成本低廉、数据传输距离远(最远长达10 km)、数据传输速率高(最高达1 Mb/s)、无破坏性的基于优先权的逐位仲裁、借助验收滤波器的多地址帧传递、远程数据请求、可靠的错误检测和出错处理功能、发送的信息遭到破坏后自动重发、暂时错误和永久性故障节点的判别以及故障节点的自动脱离、脱离总线的节点不影响总线的正常工作”等优点,将逐步取代基于485总线构建的酒店客房智能化管理系统。
1 CAN总线酒店客房智能化系统网络结构分析
图1是酒店客房智能化系统网络连接结构示意图,系统主要包括酒店服务台、CAN转以太网、客房终端。
客房终端把房间内的各种灯具、家电、服务需求按键综合到一块控制板(客户终端),各种灯具、家电、服务需求的控制信息通过CAN总线发送至CAN转以太网转换器CANET-200,实现开关、按钮、传感器、照明设备、其他执行器和多控制系统之间的数据交换,以及各操作单元之间的协作,并对各单元不断变化的状态实时控制。
如果酒店一个楼层内房间较多(例如多于80个,小于110个),每一个楼层内的所有房间通过CAN总线连接组网,然后连接一台CAN转以太网转换器。如果一个楼层内房间较少,可以相邻楼层内的房间通过CAN总线组网,再连接到CAN转以太网转换器。但是房间总数不要超过110个,因为一条CAN总线上最多接110个节点。
不同楼层之间通过以太网和酒店服务台的计算机连接组网,服务台处的计算机是可以直接控制客房终端,以及实时读取客房终端状态的前台设备。
CAN总线在较低的通信波特率下,例如5 kb/s,通信距离可以达到10 km。图1中可以用CAN中继器代替CAN转以太网转换器,以实现低成本组网连接。之所以选择使用CAN转以太网转换器,是考虑到通过网络远程控制客房终端,或者将来适用于网络控制家庭用户内的设备,实现远程智能化家居控制。
2 酒店智能化系统通信协议及CAN地址分配
Basiccan和Pelican都是CAN总线通信协议,CAN控制器SJA1000支持两种协议的通信。Basiccan具有11位标识符,占有2 B,支持标准帧格式;Pelican具有29位标识符,占有4 B,支持标准帧和扩展帧。
考虑到Pelican通信协议在组网的灵活方便和可扩充性方面的优势,酒店客房智能化系统客户终端的CAN总线通信协议选用Pelican。但是Pelican通信协议也有其弊端:其标识符相对于标准帧格式下多占用两个字节,在通信时间上相对较长。酒店客房智能化系统客户终端的CAN总线通信波特率为400 b/s。多占用的两个字节,16 bit,通信占用的时间仅有16 bit/(400 b/s*1 024 bit/K)=39 μs。因此,这对通信速率的影响微不足道。
CAN总线酒店智能化系统地址分配表如表1所示。CAN地址分配在寄存器方面涉及到ACR和AMR;在地址识别方面涉及到Pelican模式下29位标识符的分配使用问题。使用ID28~ID21高8位作为楼层ID识别,共可以识别256个楼层;使用ID20~ID0作为楼层内的客房终端ID识别;CAN转以太网转换器CANET-200也可以设置不同的TCP/IP地址,用于一台CAN转以太网转换器连接的多个客户终端群的地址识别。分层式的CAN地址配置,以及CAN转以太网转换器的TCP/IP地址,可以实现故障终端的快速定位,方便售后的维护使用。
3 客户终端硬件电路设计
3.1 客户终端硬件电路
酒店客房智能化系统客户终端采用STC89C58单片机作为节点的微处理器,主要涉及到6大部分硬件电路:多控制按键、多继电器驱动、CAN总线传输、灯具调光、多电源电路、ADC采集设计。客户端的硬件构成示意图如图2所示。
多按键中断设计采用两片74LS48和一片74HC08搭建编码电路,实现16路按键(SW0~SW15)输入,4位BCD编码(74HC08_A0~74HC08_A3)输出和一个中断(74HC08_INT)输出,在中断程序中识别具体按键状态。
多继电器驱动电路设计通过串联3片74HC595实现24路输出,其中的16路输出通过驱动芯片UN2003驱动16个继电器;8路输出用于控制服务状态指示灯。
CAN总线传输电路设计中采用PHILIPS公司的“独立CAN总线通信控制器SJA1000”芯片、CAN总线收发器选用TJA1040芯片;为了增加抗干扰特性,采用6N137高速光耦及DC-DC隔离模块构成光电隔离电路。
客户终端需要3种电源:直流5 V、直流9 V、CAN电路隔离直流5 V。为此,选用市电交流220 V输入,两路交流输出8 V、9 V的电源模块。8 V交流输出经过整流、滤波、稳压后,调理输出5 V直流电源,用于单片机等芯片的供电;经过DC-DC隔离模块B0505_25W后,输出的隔离5 V电源,用于CAN总线部分电路的供电;9 V交流输出经过调理后,用于驱动控制16路继电器。
3.2 客户终端硬件成本分析
项目的开发一般分为需求分析、解决方案、项目的实现、项目的总结和改进。其中在解决方案阶段中的“开发成本分析”是影响企业利润的关键。
16路按键、16路继电器、CAN总线芯片SJA1000数据/地址和控制总线占用13个I/O,另外还有主副开关、ADC0832芯片等占用多个I/O。如果选用引脚I/O丰富的MCU,诸如LPC2100、LPC2292等,则可以使硬件设计变得简单。但是考虑到芯片的价格,以及与之对应的利润、售后换件维修成本因素等,决定选用STC89C58单片机,其价格只有6~8元人民币。
STC89C58单片机只有40个引脚,怎样解决I/O不够用的问题呢?
16路按键设计,采用74LS148和74HC08搭建“16转4”带有中断的按键设计,配合中断只需读出4个I/O的编码,即可识别出按键状态;
16路继电器和LED指示灯设计,采用8位串行输入-移位输出寄存器74HC595和驱动芯片UN2003设计,只需占用3个I/O即可实现要求的控制功能。选用74HC595的弊端是串行驱动继电器速度相对较慢,但是足以满足酒店客房智能化系统的需求。
STC89C58单片机的其他I/O资源供芯片SJA1000、主副开关、ADC0832芯片等使用。
4 CAN总线酒店客房智能化系统软件设计
系统的软件设计包括“上位机管理软件设计”、“CAN总线通信软件设计”、“客户终端数据的采集、控制与信息处理软件设计”。CAN总线通信程序流程图如图3所示。
上位机管理软件设计采用C#编写,主要完成酒店客房内的门锁、灯具、家电、温度传感器、服务需求等信息的管理,以及显示实时的动态数据;向客户终端下发控制状态字;存储历史数据和打印报表。
CAN总线通信软件设计采用C语言编写,主要实现CAN总线通信协议、与上位机的握手协议的制定。在CAN总线通信软件设计中,SJA1000的初始化程序至关重要,其流程图如图4所示。
客户终端数据的采集、控制、信息处理软件用C语言编写,主要实现3种功能:一是采集客房内的门锁、灯具、家电、温度传感器、服务需求的实时状态;二是接收上位机的控制状态字,控制客房内的灯具、家电的开关状态;三是对采集的状态信息进行编码信息处理,以及对接收到的控制状态字进行解码信息处理。
CAN总线作为一种技术先进、可靠性高、功能完善、成本较低的网络通信控制方式,将在智能家居、楼宇自动化领域得到越来越广泛应用。本系统经过研发、试验、调试,已经在酒店客房智能化系统中得到应用,系统工作稳定、高效,满足实用要求。
参考文献
[1] Philips Semiconductors. CAN Specification Version 2.0, Parts A and B. 1992.
[2] Philips Semiconductors. Data Sheet SJA1000, Stand-alone CAN Controller.
[3] Philips Semiconductors. Preliminary Data Sheet TJA1040, High speed CAN transceiver. 2001 Nov 12.
[4] 宏晶科技.STC89C51RC/RD+系列单片机器件手册.2007.
[5] 广州致远电子有限公司,群星系列CAN接口应用.2009.