以太网、CAN总线技术作为一种较为成熟的技术,取得了越来越广泛的应用。在某型舰炮控制系统研制中,为了贯彻三化要求,对控制系统按照功能进行模块化划分。在此思想的指导下,设计了以CAN-以太网网桥模块、伺服控制模块、监控模块、人机接口模块等核心功能模块为主的控制系统,控制系统内部采用CAN总线进行通讯,系统对外接口采用以太网进行数据通讯。该控制系统网络功能框图见图1。
图1 控制系统网络功能框图
由图1可知CAN-以太网网桥的功能为该舰炮控制系统的中枢,武器系统的指令通过该模块接收然后发送到控制系统内部的各个功能模块,再由各个模块控制被控对象完成相应的动作,控制系统内部的状态信息通过该模块上传到以太网总线。该控制系统在执行一次作战任务时,如果该网桥出现故障或外部线缆出现故障造成不能通讯,则将导致整个系统瘫痪,无法完成作战任务。
在实际的网络系统中,有许多原因可能导致传输通道中断,比如网络堵塞、网线断开、网络接口连接器松动、网络接口硬件电路故障等,造成网络实时性和可靠性降低甚至网络不能工作。然而,系统对网络的要求越来越高,除了满足正常的数据通讯,还要求网络有较高的容错率,而双网冗余就是提高网络可靠性的有效手段之一。
本网桥连接对象为以太网、CAN总线,所以,下面分别对两者的故障检测及冗余切换机制进行分析。
1 以太网冗余切换机制
冗余切换工作的第一步是故障检测及判断,第二步是完成网络切换。
故障检测的判具主要是对网卡的链路状态检测,即与网卡相连的网络链路是否发生了故障。根据以太网控制器内部的状态寄存器中LINKFAIL位的状态,来进行判断。当DSP接收到以太网控制器的中断信号后,通过读取状态寄存器的值来进行判断是何种类型中断。如果是接收或发送中断,则执行相应的处理程序,如果是网络链路故障,则进行网络切换工作。
故障检测的实现手段有两种方式:查询法、中断法,由于查询法为纯软件手段,且需要关中断、开中断,网络有可能造成数据丢失,以及故障恢复时间长,所以本文采用中断法进行故障检测。中断法检测无丢包现象,且故障能迅速恢复。
网络冗余分冷切换机制、热切换机制,本文采用热切换机制。它对容易出错的硬件设备进行冗余备份,当其中一个设备由于某种原因不能正常工作时,另一个设备马上就可以代替这个设备完成相同的功能。
网络节点设备采用冗余双网卡热切换技术,就是设备具有两个网络适配器并行工作,作为系统与外界进行数据传输的通道,当其中主通道被切断或出现故障时,系统可以检测到错误,并迅速切换到另一个网络适配器上,并将从通道置为主通道。两个网络适配器使用同一个IP地址,对于外部设备同本设备已经建立起来的TCP/IP连接,切换网络适配器能够迅速恢复连接。
2 CAN总线故障检测及切换机制
假定总线上有两个功能相同的CAN节点:CANA、CANB,两者互为备份。两者上电初始化完成以后,CANA、CANB分别向总线上发送一个询问帧,若应答超时,则认为其本身是主机,若在规定的时间内收到对应询问帧的应答帧,可判断出对方是主机,该CAN节点自动设置为从机。
若CANA、CANB同时上电,可能会同时发送询问帧。根据CAN总线仲裁协议,其中1个节点先获得CAN总线的使用权,使它的询问帧发送成功。没有获得CAN总线使用权的节点在收到对方的询问帧后不马上重发询问帧,而是采取退避方法,延时一段时间,使对方产生应答超时。
故障检测机制为:在工作过程中,若从机在规定的时间间隔内没有收到主机的信息或者收到主机报告自己出错的信息,就作为主机故障的判具。
其切换机制基本与开机上电类似,从机检测到主机故障后,把自身置为主机。
双网冗余在不同的系统中有不同的实现方式,本文采用热切换机制,对模块实行双冗余备份。方案一是采用双网桥配合一个切换模块实现冗余,方案二采用一个处理器控制两个以太网控制器、两个CAN控制器实现。也可在此基础上稍加改变可采用一个处理器(本文采用DSP)控制、一个以太网控制器、一个CAN控制器、两个以太网物理层、两个CAN总线收发器来实现。
1 双网桥方案
图2 双网+切换模块方案框图
双网桥方案是指在系统中用两个CAN-以太网网桥,网桥之间通过切换模块连接,两个以太网接口共用一个IP地址,工作时,只有一个网桥工作,另一个网桥作为备份。当网桥A不能正常通讯时,由切换模块切换到网桥B进行通讯,网桥A停止工作。
系统上电后,首先根据CAN总线的仲裁协议完成主网桥的设置,使主网桥处于正常工作状态,从网桥处于备用状态。当主网桥DSP芯片检测到网络故障或CAN总线故障时,发出切换指令,使从机投人正常运行状态,接管对网络和CAN总线的控制。采用这种冗余技术以后,系统的可靠性大大提高,但也存在一些不足之处:
⑴需要设计专门的切换模块,切换模块可能会引入新的故障点,该模块出现任何故障均可导致整个切换工作失败;
⑵在主网桥发生故障时,不便于实现无扰切换,在切换过程当中,可能会丢失数据;
⑶如果主网桥中的以太网控制器或CAN控制器任一个出现故障,即要将从网桥投入工作,主网桥停止同作。
2 单板双冗余网桥方案
图3 单处理器+CPLD+双网双CAN方案框图
该方案将双冗余网桥集成到一块电路板上,由一个处理器、CPLD、双以太网控制器、双CAN控制器实现双网桥冗余功能。
单处理器控制以太网控制器A、以太网控制器B、CAN控制器A、CAN控制器B,DSP的数据总线和地址总线直接与以太网控制器、CAN控制器相连,控制总线通过CPLD与各自控制器的控制总线相连,以太网控制器的切换和CAN控制器的切换工作由CPLD实现。
两个以太网接口共用一个IP地址,工作时,只有以太网控制器A工作,以太网控制器B作为备份。当以太网控制器A不能正常通讯时,由DSP内部程序发出指令,经CPLD控制切换到以太网控制器B进行通讯,以太网控制器A停止工作。DSP上电后自动将CAN控制器A设置为主控制器,CANB设置为从控制器,如果检测到CANA故障,则程序自动将CANB设置为主控制器。
如果出现故障时, DSP内部程序在发送报文里加入相应的故障指示,同时以指示灯闪烁的形式进行故障提示。
该方案与双网桥方案相比较,有以下优点:
CAN-以太网网桥作为系统中的核心部件,对可靠性有很高的要求。如果该网桥出现故障,整个系统将处于瘫痪状态,这对于系统来说是灾难性的。
在充分借鉴吸收成熟先进的计算机技术基础上,着重提高系统的可靠性,进行模块化设计。本文提出了两种网桥冗余方案,其中双网桥方案已经在某型舰炮控制系统原理样机上经过试验,试验结果表明,双网桥冗余功能工作正常,可实现双网冗余功能,大大提高了系统的可靠性。
该研究成果对提高网络、总线容错,满足特殊环境下高可靠性要求是非常有意义的,因此具有广泛的应用前景和较大的推广价值。
(编自《电气技术》,作者为谢战洪。)