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总线以其分时多主、非破坏性总线仲裁和自动检错重发的技术特点有效地提高了通信的可靠性,从而使现场调试更加方便、缩短了开发周期。