CAN控制器采用了PHILIPS公司生产的应用于汽车和一般工业环境的独立CAN总线控制器,它支持基本型CAN模式和增强型CAN模式。它具有完成高性能CAN通信协议所要求的全部必要特性。CAN总线驱动器80C250是CAN控制器和物理总线之间的接口,可以提供对总线的差动发送和接收功能。而且,CAN控制器SJA1000和CAN总线驱动器80C250之间是通过高速光耦TL113相连,这样就很好的实现了总线上各个CAN节点间的电气隔离。不过,光耦部分电路所采用的两个电源必须也完全隔离,否则就失去了采用光耦的意义。
3.2 节点对象字典的建立
网络中的每个设备都需要有一个对象字典。在本系统中,有一个主节点和十三个从节点。在各个节点中都采用预定义连接集中规定的十一位ID。它由四位功能码和七位节点ID组成。考虑到系统今后的可扩展性,设定十三个子节点的节点号为8-20.下面以主节点为例介绍对象字典的创建。
从节点需要能够访问主节点的对象字典,因此,主节点需要一个SDO。主节点需要向十三个从节点发送数据,因此需要十三个Tx—PDO和十三个Rx—PDO。每个PDO又由PDO通讯参数(PDO Parameter)和PDO映射参数(PDO Mapping)两部分组成。如下表所示:
另外,主节点需要对网络中的从节点进行管理,因此需要有管理对象(NMT)。系统还有紧急的信息需要发送,因此需要有一个紧急事件对象(Emergency Object)。
一个节点的对象字典是在电子数据文档(EDS:Electronic data sheet)中描述的。节点本身只需要能够提供对象字典中必需的对象以及其它可选择、构成节点部分可配置功能的对象。
3.3 节点软件实现
节点的软件从内容上可以分为一个组成部分:基本功能部分,包括节点的通讯初始化和硬件设备的初始化,定义和访问对象字典,进行PDO通讯和SDO通讯;错误处理和节点的管理部分,当节点发生错误或者节点状态发生改变时进行相应的操作;扩展功能部分,用于在系统的硬件发生变化时对节点的状态和相关参数进行再设置。
3.4 网络初始化流程
CANopen网络的初始化流程如图3所示:
在智能消防炮网络中,每个节点在上电和内部初始化后自动进入预操作状态(Pre—operational state)。处于该状态中的从节点可以通过SDO被配置参数,但不允许进行PDO通讯。工控机主节点可以通过NMT使各个从节点进入操作状态(Operational state)。在操作状态中,允许PDO通讯。主节点还可以使从节点进入停止状态(Stopped State)。在停止状态中,既不允许PDO通讯也不允许SDO通讯,节点可以专业做自己的事情。可以从停止状态回到预操作状态或者操作状态。
4. 结束语
智能消防水炮系统作为大空间建筑的重要消防设施,近年来越来越受到人们的重视。而CAN总线在各个领域都有很好的应用前景,CANopen是一种公开的协议。将CANopen应用层协议应用于消防水炮系统的设计中,不仅可以提系统通讯的效率和通讯的可靠性,而且能够据推动智能消防水炮系统以CANopen协议为平台标准化。
本文作者创新点:首次将CAN总线和CANopen协议应用于智能消防水炮系统的设计。