一、概述
CAN(Controller Area Network)即控制器局域网,是一种串行数据总线,CAN总线是国际上应用最广泛的现场总线之一。作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN总线已被广泛应用于各个自动化控制系统中。在汽车电子、自动控制、电力系统等领域中,CAN总线尤其具有不可比拟的优越性。但是,工业控制现场工况条件十分恶劣,电缆受拉、压、砸、挤等造成故障的情况很多,这对于以总线为核心的CAN总线系统是一种极大的威胁。如何保证现场总线控制系统在恶劣环境下安全、可靠地工作是CAN应用中的一个重要课题。
解决可靠性问题的一个有效的办法就是对总线进行不同程度的冗余,同时使用两(多)条总线电缆。本文简单列举了目前CAN冗余的几种方式,同时提出了网状冗余的全新冗余结构。采用内置多路CAN总线控制器的LPC2294作为主控制器,设计给出了应用于电源模块控制系统中的CAN总线网状冗余节点方案。
二、目前几种总线冗余方法
典型的CAN电路可分为4个环节,即单片机、总线控制器、CAN总线驱动器、总线。以下是目前从以上4个环节考虑的不同程度的冗余方法:
(1)总线驱动器的冗余
使用两条总线电缆,每个节点内部使用两个总线驱动器,但只有一个总线控制器,在总线控制器与两个总线驱动器之间设置判断电路。如果一个总线发生故障,则关闭它与总线控制器之间的信号通道,而正常总线上的报文仍能顺利送往总线控制器。
(2)CAN总线控制器的冗余
该冗余的思路是同时使用两条CAN总线,两个CAN总线驱动器和两个CAN总线控制器,单片机通过不同的端口和中断同时控制两个CAN控制器。
(3)全系统的冗余
该冗余的思路是对整个CAN系统的四个环节进行冗余。即同时使用两套单片机、总线控制器、CAN总线驱动器、总线。
三、新的冗余方式:网状冗余
在可靠性要求非常严格的场合,如电厂集散控制系统,基本采用网状冗余结构。由于CAN节点对系统的构成不敏感,全系统的冗余在发现总线故障以及总线切换及时性方面反而不如部分冗余方法,有鉴于此,本文提出了新的CAN冗余方式:网状冗余。
CAN网状冗余是对整个CAN网络、通讯节点进行冗余,如图1所示。同时使用两条CAN总线,两个CAN总线驱动器和两个CAN总线控制器,单片机通过不同的端口和中断同时控制两个CAN控制器,组成一个网络节点,再对节点进行冗余设计。
由于总线故障可以及时通过正常总线通知用户进行维护,网状冗余在发现总线故障及时性方面要比全系统冗余后备方式好。对于工业控制,尤其是本质安全型系统来说,这一优点是十分重要的。网状冗余兼有部分冗余和全系统冗余的优点,大大提高了系统的可靠性。当然,网状冗余系统软、硬件的复杂性和成本都提高了,但是,相对于在工作中系统可靠性的提高,这些牺牲是值得的。
四、电源模块控制系统中网状冗余节点设计
在电源模块控制系统中,电源模块控制仪的控制信号以毫秒量级速度向各电源柜发送控制指令,并获得各机柜的工作状态。各电源柜在获得指令后,同步执行控制动作,并返回执行状态。随着电源个数的增加,各电源间的实时性、同步性等关键性能下降。
为提高系统在实时性、同步性、精确性、容错性等各方面的性能,必须采用高精度同步通讯控制网络,使电源模块控制仪与电源模块之间的信号传输满足系统的技术性能要求。
本方案的CAN总线网状冗余节点,正是为满足电源模块控制系统对于可靠性、实时性的严格要求而设计的。
4.1节点设计思想
节点基本设计思想为:使用两块控制处理器组件,作为冗余的一对,冗余单元的硬件和软件结构完全相同,在任何一块组件发生硬件故障时,可提供连续的运行。单元的主备工作状态由上电顺序决定, 先上电的一方自动进入主机工作状态,后上电者则进入备机状态。主机在其工作过程中除实现应用功能外,定期向备机发送反映其工作正常的状态数据并接收来自备机的状态数据,当发生接收超时时,主机认为备机已经发生故障, 并通过总线向用户给出通知信号,以便及时对备机进行维护。备机在工作过程中不完成应用功能, 但定期接收来自主机的状态数据,当发生接收超时或接收到主机工作状态不正常时,自动切换成主机工作状态,并通过总线通知用户对原主机单元进行维护。