刘 真
(北京全路通信信号研究 设计院集团有限公司,北京 100070)
一种三取二安全计算机系统的设计与实现
刘 真
(北京全路通信信号研究 设计院集团有限公司,北京 100070)
介绍一种用于铁路车载控制设备的三取二安全计算机系统。该计算机系统由3套相同的子系统构成,采用冗余容错技术并利用VxWorks实时操作系统和软件进行开发。三系冗余容错系统的特点是对单系故障具有屏蔽作用,体现在控制过程中就是控制的连续性和故障后的无缝切换,这是选择三系的主要动机。
三取二;安全性;冗余系统;容错
铁路车载控制设备是列车控制系统的重要组成部分,是保证列车安全运行,提高运输效率的关键。如果一旦发生故障,就有可能使机车失控,引发冒进信号、脱轨等事故,导致重大的损失。因此从安全的角度出发,车载控制设备必须采用高安全性和高可靠性的计算机系统作为运算控制平台。
目前,国内外铁路和城市轨道交通领域的控制系统一般采用结构为二乘二取二或三取二的安全计算机系统[1]。该计算机系统负责机车控制逻辑的运算、机车状态的采样和控制输出,是整个车载控制设备的核心。因此我们设计了一种基于冗余容错技术的三取二安全计算机系统,实现了单系故障后设备的无缝切换,保证了控制的连续性,提高了系统的可靠性和安全性。本文主要就该系统的结构、功能以及安全防护机制进行介绍。
冗余容错技术分为静态冗余技术和动态冗余技术。
静态冗余技术又叫故障屏蔽技术,就是利用冗余资源的堆积,把故障的效应掩盖过去,使系统在故障发生后仍能持续正常工作的一种技术。它具有对故障的容忍能力,因此它是实现容错的第一途径。
动态冗余技术又叫故障切换技术,当检测发现系统内部发生故障了,通过系统内部的一次重组来切除和替换故障部件。它是实现容错的另一种途径[2]。
三取二安全计算机系统由功能完全相同且独立的3套子系统构成,相互构成冗余关系,每个子系统分别对系统输入进行计算,在“三取二”的工作状态下,按照“少数服从多数”的纠错原理,计算结果通过表决模块进行比较,若有两个子系统的结果一致则将它作为系统正确的输出,这样就可以屏蔽任意一个通道的故障[3],这是系统的静态冗余设计。
系统实时检测3个子系统的状态,若某个子系统发生了故障,系统立即将该子系统的功能无缝切换到另两套子系统上,当只有两个子系统正常时,系统进入“二取二”工作状态,这是系统的动态冗余设计。
三取二安全计算机系统只有处于“三取二”或“二取二”运行状态时,系统才能运行应用程序。在系统架构的设计中,我们采用了三取二计算机系统的思路,综合运用上述两种冗余技术,实现屏蔽3个计算机通道中任意一个通道的故障,并对故障部件及时进行切换,保证设备运行的安全性和可靠性。
2.1 硬件组成
本系统由3套独立的子系统和表决电路构成。每套子系统包括:(1)主板:采用宽温、低功耗的处理器,带一个可编程的看门狗和6个带光电隔离的串口;(2)串口通信板:带有16路采用光电隔离的串口,负责与其它外围设备的串口通信;(3)开关量输入输出板:提供带光电隔离的48路开关量输入输出,负责对机车电气节点状态的采集以及对机车的控制输出;(4)模拟脉冲量输入输出板:提供8路不共地的模拟量隔离输入、4路模拟量输出以及8路数字脉冲隔离输入,主要用于采集和控制机车级位,采集机车速度信息。上述板卡均具备自检能力,各块板卡之间由三重独立的CAN总线连接。
除了3套子系统,系统还包括主用仲裁模块以及由开关量输出表决板和模拟量输出表决板组成的表决模块,各板卡模块之间的连接关系如图1所示。
图1 各板卡连接关系图
2.2 表决模块
外部机车信号由插头进入后分3路并行输入3套计算机子系统,经过计算机采样运算处理,得出结果后通过各自的通道将开关量和模拟量输出到相应的表决板。
开关量输出表决板通过继电器电路对3组通道的24路开关量输出进行表决。其原理如图2所示,A、B、C分别是3组通道对同一路的输出,由4个继电器组成四角大数表决电路完成一路对外输出的三取二表决功能。
图2 开关量输出表决原理框图
图2中,最终开关量输出结果 = (A | B) &(C | D);其中,D=A &B,由四角大数表决电路给出。
模拟量输出表决板是将3组通道的模拟量输出采用数值区间范围取中的方式进行两两比较,并决定最后的输出;如果3组模拟量之间差别都很大,则按照上一周期的比较结果进行输出。
2.3 主用仲裁模块
根据本系统与外部设备之间串行总线的连接情况,3个子系统的串口通道不能同时均向外部设备发送数据,故系统必须决定由某一组通道向外发送。那么负责向外发送串行数据的子系统作为主用子系统,对应的串口通信板作为主用通信板,其余的子系统作为备用子系统。主用的子系统除了承担发送串行数据的任务外还具有以下功能:(1)协调子系统间周期性的时钟同步;(2)响应其它子系统发来的数据请求。
子系统成为主用的前提是自身各个模块运行状态正常,每个周期系统会监视各个子系统的状态,若发现主用的子系统存在问题,则立即将其主用功能切换到另一正常的子系统上,该机制称为系统的主用切换机制。
负责切换主用状态的是主用仲裁模块。该模块的功能包括:(1)监视各个子系统的状态;(2)切断非主用通信板串口发送通道,打开主用通信板串口发送通道;(3)切断非正常子系统的输出,包括串口、开关量和模拟量输出。3个子系统与主用仲裁模块通过独立的总线连接,每个周期子系统将自身状态发送给主用仲裁模块,主用仲裁模块再将仲裁结果发送回子系统,使后者获知自己是否为主用。
列车控制系统对控制的实时性和可靠性要求比较高,因此采用VxWorks系统作为主板的操作系统。VxWorks实时操作系统具有高效的任务管理、灵活的任务间通信和优先级调度以及较高的安全性等特点,在铁路自控领域有很多成功案例[4]。
3.1 系统初始化
设备上电之后,3块主板的应用程序同时开始运行并进行自检,完成自检后与主用仲裁模块建立通信,由仲裁模块随机从自检成功的子系统中挑选一个作为主用子系统,并将结果发送回3个子系统,至此系统完成初始化。若规定时间内自检成功的子系统少于两个,则系统初始化失败,关闭所有的输出通道。
3.2 系统同步
在三取二冗余结构中,3个主板上应用程序运行节拍的同步是一个关键问题,是系统进行比较和表决工作的基础,因此系统采用周期同步的方式来实现系统的同步。
应用程序按照数据操作流程将一个运行周期分为输入、比较、运算和输出4个任务,每个任务都有其严格的生存时间段,如果某一个任务由于异常原因超出了它的时间段范围,它都会被程序强制结束。系统在一个运行周期内完成两次周期同步操作,即程序分别在比较和输出两个任务阶段向另两块主板发送包括运行节拍、输入数据等信息的同步数据包,以完成节拍同步、数据比较等功能。同步数据包的信息主要包括:(1)用于同步运行节拍的时间信息;(2)数据请求信息;(3)用于进行输入比较的数据;(4)用于记录数据包时间顺序的时间戳。
收到时间信息的备用子系统会根据主用子系统的节拍调整自己的运行节拍,即备用子系统与主用子系统在运行节拍上保持一致,从而消除3套应用程序在运行中产生的时间误差,以保证3套子系统的同步。图3为程序运行原理框图。
图3 程序运行原理框图
3.3 数据比较
当应用程序运行到输入阶段,3套程序间会进行一次相互通信,通信的主要目的是将本周期内采集到的数据(包括表示机车状态的各种开关量、模拟量和脉冲量)发送给其它两套子系统。之后程序将比较自身采集的数据与其它两套采集的数据,按照三取二的原则进行比较和修正,这样可以屏蔽由任意一个子系统硬件故障而产生的错误输入。
3.4 CPU板重启后的恢复
主板带有看门狗功能,一旦应用程序死机就会重新启动。在重启之后初始化完成之前,程序需要获取当前系统的运行信息,以完成对运行时序与数据的同步。具体步骤是如果当重新启动的主板在完成初始化操作之前就收到另外两套主板发送的带有初始化完成标志的同步信息,那么它就会在同步数据包中加入数据请求标志进行回发。之后主用的程序收到数据请求后会将自己的相关信息全部发送给请求者,请求数据的一方再收到后会撤销数据请求标志。重启后的程序更新完所有的信息之后,初始化完成,与另外两系保持同步运行。
3.5 设备自检、故障切换
当发生以下情况时,主用仲裁模块会进行主用的切换:
(1)经过输入比较之后,主用的子系统发现自身的某一路输入与其它两套子系统的输入长期不一致,说明该路输入硬件有故障,基于安全考虑,程序会通知仲裁模块放弃主用控制。(2)主用的主板发现与之连接的其他模块(串口通信板、开关量输入输出板等)出现了问题,比如板卡相互间的通信不通、板卡自检发现了故障等等,那么程序会通知仲裁模块,进行主用的切换。(3)当主用的子系统与外围设备间的某一串口通信发生超时现象,说明该路串口的收发存在问题,故切换主用控制,换另一套子系统的串口通信板尝试恢复通信。(4)当主用仲裁模块与主用的子系统主板通信断失时,会触发主用的切换。
基于冗余容错技术的三取二安全计算机系统硬件上采用冗余结构、故障隔离技术、故障切换技术,保证了整个输出的可靠性;软件上采用了同步机制、数据比较和故障恢复技术,保证了输入采集的正确性。该计算机系统满足了车载控制设备安全性的要求,已运用在机车同步操纵系统上道试验中,保障了试验的顺利进行。
[1]燕 飞,唐 涛.轨道交通信号系统安全技术的发展和研究现状[J].中国安全科学学报,2005,15(6):94-99.
[2]任 鹏.二乘三取二冗余结构设计[D].成都:西南交通大学,2009.
[3]陈文赛.一种高可靠、高安全性系统—三取二计算机系统[J].现代雷达,2004,26(6):19-21.
[4]孙寿龙,卢利勇.三取二铁路信号安全平台嵌入式操作系统选型研究[J].铁路通信信号工程技术,2013,10(1):12-15.
责任编辑 付 思
Two-out-of-three Safety-critical Computer System
LIU Zhen
( Beijing National Railway Research &Design Institute of Signal &Communication Ltd.,Beijing 100070,China)
This article introduced a two-out-of-three Safety-critical Computer System which was used in on-board equipment of railway transport.The System consisted of three same subsystems,was developed with fault-tolerant technology and the VxWorks real-time operating system.The characteristic of three series redundant fault-tolerant system is the shielding effect to the single line fault,reflects the continuity in the control process and seamless handover after breakdown.
two-out-of-three;security;redundant system;tolerance of failure
U284.482∶TP39
A
1005-8451(2016)11-0049-04
2016-03-29
刘 真,工程师。