基于CAN总线的客房通信控制器的设计
扫描二维码
随时随地手机看文章
1 引言
随着计算机技术、通信技术、信息技术和控制技术的飞速发展,人们对智能建筑的功能、环境和管理水平提出了更高的要求。宾馆、酒店的客房控制和管理作为智能建筑楼宇自控系统中的一个重要组成部分,其发展方向是更加安全、舒适、高效、便利和节能。宾馆、酒店的客房控制和管理具有分散控制和集中管理的特点,整个系统涉及对象繁多,且分布在不同位置,控制要求也各不相同。如果采用传统的一对一接线,则建筑物内的布线复杂、维修困难,系统成本高、可靠性低、可扩展性差。因此,现代智能建筑楼宇自控系统广泛采用了现场总线技术。
本文结合宾馆、酒店的客房控制和管理实例,介绍了基于CAN总线的客房通信控制器的设计。
2系统结构
客房控制和管理系统的总体结构如图1所示。整个系统包括三层:现场控制层、监控层和管理层。现场控制层主要是宾馆内的各客房控制器或其它控制设备;以一个客房节点为例,每个客房控制器可对客房内部的空调、灯、背景音乐、门铃、报警等各种设备进行控制,还可接收客户的需求信息,并将信息上传给监控层的通信控制器。监控层通信控制器的主要任务是过滤信息量,并将信息上传给管理层,同时接收管理层的控制指令,对记录数据和各节点进行操作。各楼层的中继器则可增加节点的最大数目,扩大通信距离。管理层主要由中央服务器、总台PC、工程部PC、服务中心PC等组成,主要用于信息的综合管理与控制,具有汇总各个节点上传信息、综合决策、数据查询及处理、故障诊断、通信管理等功能。
图1 系统总体结构框图
由于现场控制层具有节点多、分布广的特点,其通信系统应具有良好的可靠性、适应性、可扩展性和简单的连接方式,并能满足长距离传输和现场调试方便的需要。因此,现场控制层采用了使用简单灵活、可靠性高、实时性强且成本低的CAN总线。管理层的中央服务器PC、总台PC、服务中心PC等相互之间通过以太网进行通信。而监控层的CAN通信控制器则提供管理层中央服务器PC与现场控制层CAN总线的接口,即把中央服务器PC的数据和命令传送给指定的CAN网络节点,同时将各网络节点的数据传输给中央服务器PC以做进一步处理。
3 硬件电路结构
CAN总线通信控制器的硬件电路结构如图2所示。主要包括主控制器、时钟保持电路、非易失性EEPROM存储器、CAN总线接口电路和RS232接口电路。主控制器采用性价比高、结构简单、便于编程的AT89C51单片机,主要用于对CAN控制器SJA1000 及RS232串口的初始化,并通过对CAN控制器SJA1000 及RS232串口的控制操作实现现场CAN总线与管理层中央服务器PC的数据交换等通信任务。
CAN总线接口电路主要由CAN通信控制器SJA1000、高速光耦6N137和CAN总线驱动器82C250组成。SJA1000作为CAN总线协议转换的控制器,它内建BASIC CAN协议,并提供对CAN2.0B协议的支持。通过对片内寄存器的读、写操作,主控制器单片机能够设置CAN总线通信模式,实现数据的发送与接收。
SJA1000在逻辑上实现了传输数据的编码和解码,若要与物理线路连接,还必须借助总线驱动器82C250,以增强CAN总线的差动发送和接收驱动能力。为了增强CAN 总线节点的抗干扰能力,防止线路间串扰,SJA1000 的TX0 和RXO 并不是直接与82C250 的TXD 和RXD 相连,而是通过高速光耦6N137 后再与82C250 相连;另外,CAN总线驱动器采用带隔离的DC/DC模块单独供电,实现了通信控制器与CAN总线的隔离,提高系统的可靠性。
82C250的CANH和CANL引脚各自通过一热敏电阻与CAN总线相连,当过流时电阻发热阻值变大,保护82C250免受过流的冲击。CANH和CANL与地之间并联两个小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。
RS232接口电路主要用于主控制器单片机与管理层中央服务器PC的双向数据传送。由于采用了标准的RS232串行通信,结构简单、成本低。
控制器的其它外围电路还有电源模块、非易失性EEPROM存储器、时钟保持电路、LED指示灯和看门狗等。非易失性EEPROM存储器采用具有2KB容量的AT24C02,用于保存系统配置参数及各节点的最新信息,便于管理层的查询。时钟保持电路选用涓流充电时钟芯片DS1302,其内部含有实时时钟和日历,通过简单的串行接口与单片机进行通信,用于给各节点控制器校时。同时,控制器还配置了4个LED指示灯,分别用于系统上电、CAN通信、RS232通信和系统通信故障的指示,以方便系统的调试和对控制器运行状况的监测。
4 系统软件
CAN通信控制器的主要任务是过滤信息量,将现场层信息上传给管理层,同时接收管理层的控制指令,对记录数据或各CAN节点进行操作。CAN通信控制器同时还具有数据记录和零点校时功能。因而控制器软件设计主要包括四大部分:CAN通信、RS232通信、EEPROM数据的读写和系统时钟DS1302的读写。其程序主流程图如图3所示。
图3 控制器软件流程图
CAN通信软件包括CAN初始化、报文的接收和报文发送三部分。当控制器上电后,首先对CAN控制器SJA1000进行初始化设置,主要包括工作方式的设置、接受滤波方式的设置、接受屏蔽寄存器和接受代码寄存器的设置、波特率参数设置和中断允许寄存器的设置,SJA1000的初始化只能在复位模式下进行。完成SJA1000的初始化设置后即返回工作状态,开始循环监听CAN总线上的信息。报文的接收采取中断方式,以便系统的即时响应。在报文接收的过程中同时要对总线关闭、错误报警、接受溢出等情况进行处理。报文的发送相对比较简单,只需将待发送的数据组成一组报文送入SJA1000的发送缓存器中,启动发送即可。RS232通信软件包括RS232初始化和与管理层中央服务器PC机的通信;控制器采用查询方式接收中央服务器PC的数据。
EEPROM24C02存储器数据和时钟芯片DS1302的读写均简单地采用同步串行的方式进行通信。当控制器收到节点的信息后,即将此信息上传给管理层,同时将此信息写入AT24C02存储器,作为历史信息保存,便于管理层的查询。控制器的零点校时功能是通过读取DS1302的时钟,当时钟为零点整时,即统一对各现场CAN节点进行校时,避免了各CAN节点时钟误差的积累。
5 结束语
基于CAN总线的客房通信控制器已在宾馆的客房控制和管理系统中得到了成功的应用。实践证明,由于采用了CAN总线技术,不仅系统结构简单、适应性和可扩展性强,而且CAN总线以其分时多主、非破坏性总线仲裁和自动检错重发的技术特点有效地提高了通信的可靠性,从而使现场调试更加方便、缩短了开发周期。