用于容错故障安全计算机系统的基于任务的表决的制作方法_4

文档序号:8395510阅读:来源:国知局
的有效性。
[0088]在另一示例中,由于外部组件中的硬件(如轨道系统中的安全临界硬件)失灵,第一分组可能与第二分组不同。当表决子系统确定第一分组与第二分组不同时,安全应用迫使活跃FSC104进入故障安全状态。此外或可替代地,可以悄悄地丢弃不匹配的分组。例如,主CPUl 16a和检查器CPU120a都不基于第一分组和第二分组生成外出分组。以此方式,系统100可以避免由其它可恢复的差错引起的过多故障转移/故障安全转换。在另一实现中,可以将输入表决配置为导致故障转移/故障安全转换。
[0089]现在参考图2,200处示出根据本公开原理的示例性故障安全底架(FSC)的框图。FSC200包括主CPU204和检查器CPU208.主CPU204和检查器CPU208运行相同的软件并且实现相同的处理功能。将主CPU204和检查器CPU208配置为执行相同的功能,以便保持安全临界硬件和软件的全硬件错误和差错检测覆盖。
[0090]例如,主CPU204从外部安全系统的安全临界硬件或软件至少之一中接收执行任务的请求。外部安全系统可以是需要根据预确定的安全标准操作的系统,如轨道系统。轨道系统包括安全临界硬件和软件。安全临界硬件和软件与轨道系统的组件交互,以便控制轨道系统的方面。例如,安全临界硬件和软件控制在轨道系统内操作的列车。
[0091]执行任务的请求可以包括但不限于:确定硬件组件的状态、接合轨道系统的制动器或者向轨道系统的操作者指示在轨道系统内操作的列车的位置。执行任务的请求是以分组的形式接收的。例如,执行任务的请求可以是多个进入数据分组之一。
[0092]同时,检查器CPU208接收同一请求的复本。将主CPU204和检查器CPU208中每个CPU都配置为将所请求的任务的复本传递至主CPU204和检查器CPU208中的另一 CPU。在主CPU204执行所请求的任务以前,主CPU204和检查器CPU208对由主CPU204和检查器CPU208中每个CPU接收的所请求的任务进行比较。
[0093]当所请求的任务相同时,主CPU204和检查器CPU208将所请求的任务传递至安全临界硬件和软件。例如,主CPU204和检查器CPU208生成与所请求的任务关联的外出分组。外出分组包括操作数据元素。操作数据元素可以包括指示安全临界硬件和软件之一运行预确定的过程的一组指令。例如,操作数据元素可以指示安全临界软件运行制动器接合过程。制动器接合过程包括控制至少一个安全临界硬件组件。该至少一个硬件组件可以包括轨道系统的制动器机构。
[0094]相反,当所请求的任务不同时,主CPU204和检查器CPU208不将所请求的任务传递至安全临界硬件和软件。以此方式,主CPU204验证所请求的任务是来自有效源(B卩外部硬件组件或软件应用)的有效请求。仅例如,主CPU204接收由外部硬件故障、软件差错或整体系统失灵引起的执行任务的差错请求。
[0095]主CPU204和检查器CPU208包括屏蔽寄存器。屏蔽寄存器是主CPU204和检查器CPU208内的可编程的位。在屏蔽寄存器内存储的值是所请求的任务是否是安全相关任务的指示。例如,当系统100确定所请求的任务是安全相关任务时,将屏蔽寄存器设置为I。进一步,当系统100最初起动时,健康和安全应用设置屏蔽寄存器。
[0096]主CPU204和检查器CPU208每个均基于所请求的任务是否相同的确定,连续地生成模块健康信号。当主CPU204和检查器CPU208确定所请求的任务相同时,主CPU204和检查器CPU208连续地生成模块健康信号脉冲。当主CPU204和检查器CPU208确定所请求的任务不同时,主CPU204和检查器CPU208使模块健康信号脉冲失效。
[0097]主CPU204和检查器CPU208基于由与FSC200关联的多个模块中每个模块生成的多个模块健康信号脉冲,生成底架健康信号脉冲。FSC200包括与关于活跃FSC104描述的那些特征类似的特征。例如,FSC200包括如上面描述的前刀片124a-128f。FSC200内的每个模块连续地生成模块健康信号(如上面所述的)。当多个模块健康信号表示FSC200是健康的时,主CPU204生成第一底架健康信号脉冲。换言之,当屏蔽寄存器表示所请求的任务是安全相关的并且多个模块健康信号表示FSC200是健康的时,第一底架健康信号脉冲被连续地生效(即设置为I)。
[0098]要理解,当屏蔽寄存器表示所请求的任务不是安全相关的时(即屏蔽寄存器被设置为0),可以使第一模块健康信号脉冲失效。然而,将不运行安全相关的过程(即,迫使活跃FSC204进入安全状态。以此方式,当在安全相关任务期间发生错误时,仅实现故障转移/故障安全过程。底架健康信号脉冲表不FSC200的总体健康状况。
[0099]要理解,关于主CPU204描述的原理适用于检查器CPU208。检查器CPU208基于由与FSC200关联的多个模块中每个模块生成的多个模块健康信号脉冲,生成第二底架健康信号脉冲。当多个模块健康信号表示FSC200是健康的时,检查器CPU208连续地生成第二底架健康信号脉冲。主CPU204将第一底架健康信号脉冲传递至安全继电器箱212。类似地,检查器CPU208将第二底架健康信号脉冲传递至安全继电器箱212。
[0100]安全继电器箱模块212基于多个底架健康信号,选择性地确定FSC200是否将作为活跃FSC操作。例如,当初始化FSC200时,安全继电器箱模块212开始从主CPU204接收底架健康信号脉冲。安全继电器箱212还开始从检查器CPU208接收底架健康信号脉冲。安全继电器箱模块212基于底架健康信号,确定FSC200将被选择作为活跃FSC。
[0101]在一些实现中,安全继电器箱模块212还从另一 FSC接收多个底架健康信号脉冲。安全继电器箱模块212基于多个底架健康信号脉冲,确定FSC200或另一 FSC将被选择作为活跃FSC。例如,安全继电器箱模块212首先确定FSC200或另一 FSC之一是否是健康的。当从FSC200接收的底架健康信号脉冲表示FSC200是健康的时,安全继电器箱模块212确定FSC200是健康的。例如,当安全继电器箱模块212从FSC200接收底架健康信号时,安全继电器箱模块212确定FSC200是健康的。
[0102]类似地,当从另一 FSC接收的多个底架健康信号脉冲表示另一 FSC是健康的时,安全继电器箱模块212确定另一 FSC是健康的。当安全继电器箱模块212确定FSC200和另一FSC都是健康的时,安全继电器箱模块212基于FSC200和另一 FSC中哪个FSC首先传递多个底架健康信号脉冲之一,选择活跃FSC。例如,当FSC200在另一 FSC向安全继电器箱模块212传递信号以前向安全继电器箱模块212传递信号时,安全继电器箱212选择FSC200作为活跃FSC。
[0103]安全继电器箱模块212监视活跃FSC的健康状况。例如,安全继电器箱模块212从FSC200接收第一底架健康信号脉冲和第二底架健康信号脉冲。安全继电器箱模块212基于第一底架健康信号脉冲和第二底架健康信号脉冲,确定在FSC200中是否已发生错误。当第一底架健康信号脉冲和第二底架健康信号脉冲表示所请求的任务的不匹配时,安全继电器箱模块212确定在FSC200中已经发生错误。换言之,当安全继电器箱模块212未收到第一底架健康信号脉冲和第二底架健康信号脉冲之一时,安全继电器箱模块212确定已经发生错误。
[0104]当安全继电器箱模块212确定在FSC200中已经发生错误时,安全继电器箱模块212生成故障安全信号。安全继电器箱模块212将故障安全信号传递至活跃FSC200。FSC200基于该故障安全信号确定是否进入安全状态。例如,当FSC20接收故障安全信号时,FSC200进入安全状态。相反,FSC200将继续在活跃FSC模式下操作,除非FSC200接收故障安全信号。
[0105]可替代地,当FSC200未收到活跃信号时,FSC200可以进入待命状态。当安全继电器箱模块212确定FSC200要作为活跃FSC操作时,安全继电器箱模块212传递活跃信号。安全继电器箱模块212将活跃信号连续地传递至FSC200。当安全继电器箱模块212确定FSC200有错误时,安全继电器箱模块212不将活跃信号传递至FSC200。然后,FSC200操作在待命状态。
[0106]在一些实现中,将多个底架健康信号脉冲实现为动态脉冲信号,以消除未检测到的潜在的故障模式。将安全继电器箱模块212配置为确定脉冲信号被卡在O还是被卡在I。例如,安全继电器箱212从主CPU204接收第一脉冲信号。将安全继电器箱模块212配置为等待一段预确定的时间。
[0107]例如,该段预确定的时间可以是与对于使动态脉冲复位而言足够长的时间对应的时间段。当在预确定的时间段以后尚未复位第一脉冲信号时,安全继电器箱模块212确定第一脉冲信号被卡住。然后,当安全继电器箱模块212确定第一脉冲信号被卡住时,安全继电器箱模块212确定主CPU204中的错误。安全继电器箱模块212基于确定主CPU204中的错误,生成故障安全信号。
[0108]在一些实施例中,系统100实现如图3所不的基于任务的表决系统300。基于任务的表决系统300包括主CPU204和检查器CPU208。主CPU204和检查器CPU208中每个CPU均包括被配置为运行表决逻辑的现场可编程门阵列(FPGA)。例如,主CPU204包括主FPGA304,检查器CPU208包括检查器FPGA308。主FPGA304和检查器FPGA308中每个FPGA均被配置为实现基于任务的表决逻辑。进一步地,主FPGA304和检查器FPGA308中每个FPGA与基准时钟同步。
[0109]基准时钟是系统100内的20兆赫兹(MHz)时钟。基准时钟是公共基准时钟,系统100内的每个模块与该公共基准时钟同步。系统100内的每个模块均包括与基准时钟同步的锁相环。例如,系统100内的1U模块可以包括以第一间隔计数的1U时钟。1U模块包括第一锁相环,该第一锁相环确定第一间隔和基准时钟间隔之间的基准点。当1U模块与系统100内的另一模块通信时,1U模块基于第一间隔和基准时钟间隔之间的基准点,确定当前基准时钟时间。以此方式,系统100内的每个模块可以参考对每个模块来说共用的基准时钟上的时间,以便在系统100内进行通信。
[0110]将主CPU204和检查器CPU208中每个CPU配置为运行系统100外部的软件应用。例如,主CPU204运行由上面描述的轨道应用请求的任务。将主CPU204配置为运行轨道应用的第一复本(第一复本)。将检查器CPU208配置为运行轨道应用的第二复本(第二复本)。将第一复本和第二复本中每个复本配置为同时运行任务。例如,当系统100重起动时,主CPU204和检查器CPU208中每个CPU分别发起第一复本和第二复本。使第一复本和第二复本与基准时钟同步,以便同时运行任务。
[0111]将主FPGA304和检查器FPGA308中每个FPGA配置为运行多个表决模式之一。在一个实现中,将主FPGA304和检查器FPGA308配置为运行基于任务的表决模式。例如,主FPGA304包括主软件(SW)写缓冲器312和主硬件(HW)比较缓冲器316。检查器FPGA308包括检查器SW写缓冲器320和检查器HW比较缓冲器324。
[0112]在基准时钟的第一周期期间,轨道应用的第一复本将要由主CPU204执行的多个第一任务写至主SW写缓冲器312。同时,在基准时钟的该第一周期期间,第二复本将要由主CPU204执行的多个第二任务写至检查器SW写缓冲器320。如上面描述的,主CPU204运行与轨道应用关联的任务。检查器CPU208与主CPU20
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1