CN108572893B - 用于安全系统的端到端fpga诊断的方法和系统 - Google Patents

用于安全系统的端到端fpga诊断的方法和系统 Download PDF

Info

Publication number
CN108572893B
CN108572893B CN201810194774.0A CN201810194774A CN108572893B CN 108572893 B CN108572893 B CN 108572893B CN 201810194774 A CN201810194774 A CN 201810194774A CN 108572893 B CN108572893 B CN 108572893B
Authority
CN
China
Prior art keywords
health
module
signal
rack
data packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810194774.0A
Other languages
English (en)
Other versions
CN108572893A (zh
Inventor
加里·珀金斯
马尔科姆·J·鲁什
马丁·彼得·约翰·科尔内斯
安德鲁·波尔特
拉杰什·曼加勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Smart Embedded Computing Inc
Original Assignee
Artesyn Embedded Computing Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Artesyn Embedded Computing Inc filed Critical Artesyn Embedded Computing Inc
Publication of CN108572893A publication Critical patent/CN108572893A/zh
Application granted granted Critical
Publication of CN108572893B publication Critical patent/CN108572893B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2247Verification or detection of system hardware configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及用于安全系统的端到端FPGA诊断。一种系统,包括:第一故障安全机架(FSC),该第一FSC从多个模块接收模块健康信号并且生成第一机架健康信号。该机架健康信号包括第一部分和第二部分。多个模块接收机架健康信号。该FSC通过将模块健康信号与预定健康值进行比较而确定模块健康信号中的一个或多个是否指示关联的模块是不健康的。该FSC基于比较而选择性地去断言第一机架健康信号。第二FSC类似地操作。安全继电器箱根据第一机架健康信号和第二机架健康信号确定系统的健康状况。

Description

用于安全系统的端到端FPGA诊断的方法和系统
技术领域
本公开涉及容错故障安全(fault-tolerant failsafe)计算机系统。
背景技术
该部分提供与并非必须是现有技术的本公开有关的背景信息。
本文提供的背景描述通常是为了展现本公开上下文的目的。就该在背景部分中所述的程度、以及在递交时可以并未另外承认作为现有技术的说明书的特征而言,本发明所指名的发明人的工作并未明确地或隐含地承认作为与本公开相对的现有技术。
诸如铁路系统的安全应用可以包括被配置为维持安全应用的安全操作的容错故障安全计算机系统。容错故障安全计算机系统可以包括被配置为控制与安全应用相关联的安全关键硬件和软件的控制操作的多个硬件和软件部件。安全关键硬件和软件被配置为控制安全应用的安全相关功能。
例如,行驶在铁路系统上的火车包括制动系统。制动系统被配置为实施至少一个安全相关功能,诸如制动功能。制动系统至少包括制动器和配置用于促动制动器的软件。软件接收指令以促动制动器。例如,火车的操作员可以操作制动系统用户界面以便于指令软件以促动制动器。周期性地,可以由铁路系统的故障部件生成用于促动制动器的错误指令。因此,期望一种被配置为对由外部安全系统接收的指令进行验证的容错故障安全计算机系统。
发明内容
该部分提供了本公开的一般概述,并且并非是其全部范围或其全部特征的全面公开。
第一故障安全机架(FSC)接收从多个关联的模块接收多个模块健康信号,并且连续地生成第一机架健康信号,该第一机架健康信号包括指示机架的健康状况的第一部分和指示测试请求的第二部分,其中系统中的多个模块中的每个模块接收该机架健康信号。第一FSC还基于各模块健康信号中的每一个模块健康信号与预定健康值之间的第一比较而确定各模块健康信号中的一个或多个模块健康信号是否指示关联的模块是不健康的。第一FSC基于第一比较而选择性地去断言(de-assert)第一机架健康信号。第二FSC从多个关联的模块接收多个模块健康信号并且连续地生成第二机架健康信号,第二机架健康信号包含指示机架的健康状况的第一部分和指示测试请求的第二部分,其中系统中的多个模块中的每个模块接收机架健康信号。第二FSC还基于在模块健康信号与预定健康值之间的第二比较而确定各模块健康信号中的一个或多个模块健康信号是否指示关联的模块是不健康的。FSC还基于第二比较而选择性地去断言第一机架健康信号。安全继电器箱模块基于第一机架健康信号和第二机架健康信号而确定是否指示第一FSC以预定模式操作。
方法包括通过生成机架健康信号的故障安全机架(FSC)从多个关联的模块接收多个模块健康信号。该方法包括基于各模块健康信号中的每一个模块健康信号与预定健康值之间的第一比较而确定各模块健康信号中的一个或多个模块健康信号是否指示关联的模块是不健康的。基于第一比较而去断言机架健康信号。该方法通过安全继电器箱基于机架健康信号和另一机架健康信号而确定是否指示FSC以预定模式操作。
其他可应用领域将从本文提供的描述而变得显而易见。在该发明内容中的描述和特定示例仅意在示意说明的目的并且不意在限制本公开的范围。
附图说明
本文描述的附图仅是为了所选择的实施例而非所有可能实施方式的示意说明的目的,并且不意在限制本公开的范围。
图1是根据本公开原理的容错故障安全计算机系统的功能框图;
图2是根据本公开原理的故障安全机架的功能框图;以及
图3是图示根据本公开原理的容错故障安全计算机操作方法的流程图。
贯穿附图的几个视图,对应的附图标记指示对应的部件。
具体实施方式
现在将参照附图更全面描述示例实施例。
现在参照图1,通常在100处示出示例性的容错故障安全计算机系统的功能框图。系统被配置为与各种安全应用(SA)和/或安全关键系统(SCS)交互。SA可以包括彼此交互并通信的多个SCS以便于执行SA。通过非限制性示例的方式,SA的一个示例包括铁路系统。铁路系统包括多个SCS。
多个SCS包括但不限于与在铁路系统上运营的火车相关联的系统。与火车相关联的系统可以包括制动系统、加速系统、警报系统、和/或与火车相关联的任何其他合适的系统。系统100控制各个SA和/或SCS的各个部件,诸如铁路系统。各个部件包括 SA和SCS的影响SA和SCS的安全的部分。这些部件可以称作安全相关部件并且可以包括安全关键硬件和软件。通过非限制性示例的方式,安全相关部件包括制动系统的部件,诸如制动器以及被配置为控制制动器的软件。
安全关键硬件和软件从SA和/或SC接收数据元素。例如,火车的操作员可以期望应用火车的制动器。操作员与操作员界面交互,诸如通过促动制动杆。响应于促动制动杆,生成信号并将信号传送至控制了制动系统的操作的安全关键硬件和软件。
系统100与安全关键硬件和软件协作以确保铁路系统的诸如制动器的部件安全地操作。例如,安全关键硬件和软件基于制动杆信号而传送数据包。系统100验证数据包。安全关键硬件和软件基于该验证而操作制动系统。用于本文所述实施例的其他可能应用包括但不限于航空系统的部件、医疗系统的部件、石油和天然气控制系统的部件、智能电网系统的部件以及各种制造系统的部件。
在一些实施方式中,系统100从SA和/或SCS(诸如铁路系统)接收多个输入数据包。系统100被配置为基于多个输入数据包而生成多个输出数据包,并将多个输出数据包传送至SA和/或SCS的各个安全相关部件。例如,如以下详细描述的,系统 100确定多个输入数据包中的第一数据包是否是有效数据包。当系统100确定第一数据包是有效数据包时,系统100基于第一数据包生成第一输出数据包,并将第一输出数据包传送至铁路系统的至少一个安全相关部件。
第一输入包包括至少一个安全相关部件的多个数据元素控制操作。数据元素可以包括传感器数据和/或输入/输出(I/O)点状态。至少一个安全相关部件可以是如上所述的火车制动器。多个数据元素也可以控制SA和/或SCS的非安全相关部件的操作。输入数据包根据传输协议传送。例如,铁路系统的部件可以根据预定的包装标准包装或打包输入数据包。铁路系统的部件随后根据传输协议传输和/或传送多个输入数据包。
系统100被配置为接收根据传输协议传送的数据包。进一步,系统100被配置为根据预定的包装标准解释或解包所包装或所打包的数据包。以此方式,系统100从第一数据包提取数据元素并随后基于数据元素生成输出数据包。输出数据包包括基于数据元素的指令集。输出数据包也可包括控制I/O的操作指令、读取输入以便于收集信息的请求、健康消息通信、用于进程间通信的请求、或任何其他合适的指令或元素。指令集包括指示安全关键硬件和软件的至少一个以执行过程的至少一个指令。
例如,指令集可以指示安全关键软件以执行制动过程。制动过程包括硬件制动指令。硬件制动指令被传送至安全关键硬件。安全关键硬件执行制动指令。例如,安全关键硬件应用制动器。
系统100确定是否将包括数据元素的输出数据包传送至安全关键硬件和软件。例如,系统100确保多个输入数据包中的每一个输入数据包满足预定的安全标准。预定的安全标准包括确定铁路系统是否以安全方式在操作。系统100对多个输入数据包中的每一个输入数据包由铁路系统有效地或有意地传输进行验证。
铁路系统可以传送由于铁路系统内的硬件或软件故障引起的错误的输入数据包。系统100被配置为确保不将错误传送的数据包传送至安全关键硬件和软件,并且因此,不根据错误数据包操作安全关键硬件和软件。换言之,系统100确保铁路系统和/或任何其他SA和SCS以安全方式操作。
在一个示例中,安全关键硬件和软件接收多个输入数据包中的第一数据包。响应于来自铁路系统操作员的命令而生成并传送第一数据包。由于铁路系统中的故障,安全关键硬件和软件接收多个输入数据包中的第二数据包。铁路系统中的故障仅通过非限制性示例的方式可以包括硬件故障,硬件故障诸如由于长期暴露至热和湿气导致的退化电连接。
安全关键硬件和软件将包括第一数据包和第二数据包的多个输入数据包传送至系统100。系统100被配置为确定多个输入数据包中的每一个输入数据包是否是有效数据包,或者作为铁路系统中的故障的结果由安全关键硬件和软件接收。
当系统100确定响应于来自操作员的命令而接收了多个输入数据包中的一个输入数据包(也即是有效数据包)时,系统100生成对应于所接收到的输入数据包的输出数据包。例如,如上所述,系统100基于第一数据包生成第一输出数据包。
第一输出数据包包括对应于与第一数据包相关联的数据元素的指令集。系统100将第一输出数据包传送至安全关键硬件和软件。安全关键硬件和软件随后执行包括在第一输出数据包中的指令集。以此方式,系统100确保安全关键硬件和软件仅执行有效的指令和/或数据元素。
相反,当系统100确定响应于铁路系统内的故障而接收了多个输入数据包中的一个输入数据包时,系统100不生成或传送传输数据包至安全关键硬件和软件。例如,系统100确定由于铁路系统中的故障而接收了第二数据包。系统100不生成与第二数据包相对应的输出数据包并且不将其传送至安全关键硬件和软件。因此,安全关键硬件和软件不执行与第二数据包中所包括的数据元素对应的指令。
进一步,响应于确定作为故障结果接收了数据包,系统100生成故障指示。故障指示可以包括如以下详细描述的故障信号。以此方式,由系统100将通过安全关键硬件和软件所执行的数据元素首先验证为有效。验证确保了铁路系统例如以安全方式操作。
在一些实施方式中,验证所接收的数据包包括执行表决过程的系统100。例如,系统100接收多个输入数据包中的第一数据包和多个输入数据包中的第二数据包。在各种实施例中,第一数据包和第二数据包意在是副本,并且表决基于副本。系统100 然后对第一数据包和第二数据包进行表决。表决可以包括将第一数据包与第二数据包进行比较,并确定第一数据包和第二数据包是否相同。
在一些实施方式中,响应于表决失败,系统100生成安全指示。安全指示对系统100或安全关键硬件和软件内已经出现故障进行指示。进一步,系统100指示至少一个部件在预定的安全状态操作,以便于维护SA和/或SCS的整体安全。安全状态可以包括根据被配置为维持铁路系统的安全操作环境的安全状态数据元素集合进行操作的至少一个部件。
安全状态数据元素包括指示SA和/或SCS(诸如铁路系统)而以确保铁路系统整体安全的方式来操作。例如,铁路系统可能会使在铁路系统上运行的火车响应于安全状态数据元素而停止。操作在安全状态也可以包括禁用所有安全相关通信接口。例如,操作在安全状态的故障安全计算机无法与安全关键硬件和软件通信。以此方式,操作在安全状态的故障安全计算机无法错误地指示安全关键硬件和软件。
系统100包括主动故障安全机架(FSC)104和备用FSC 108。为了提高系统100 的可应用性和可靠性,主动FSC 104和备用FSC 108是冗余FSC。例如,主动FSC 104 被配置为以与备用FSC 108相同的方式执行备用FSC 108的任何和所有操作。以此方式,当主动FSC 104和备用FSC 108中的一个遇到硬件或软件故障时,主动FSC 104 和备用FSC 108中的另一个可以取代故障FSC而操作。
主动FSC 104实施二取二(2oo2)表决架构,其检测表决不匹配(voting mismatch)并当出现表决不匹配时执行故障安全操作。2oo2表决架构包括双冗余处理和表决子系统。冗余处理和表决子系统对进入或离开主动FSC 104的数据包表决。例如,主动FSC 104接收多个输入数据包。在一个示例中,主动FSC 104接收多个输入数据包中的第一数据包的两个副本。
主动FSC 104通过如上所述将第一数据包的副本与第二数据包的副本进行比较而确定第一数据包的有效性。换言之,主动FSC 104对第一数据包和第二数据包以及第一相应数据包和第二相应数据包的副本进行表决。主动FSC 104基于确定第一数据包是否有效(也即表决成功)而连续地生成第一健康状态信号和第二健康状态信号。在一些实施方式中,连续地生成信号可以包括将信号设置为第一预定值。连续生成的信号随后维持在第一预定值直至将信号去断言为第二预定值。
主动FSC 104将第一数据包的两个副本进行比较。当两个副本相同时,主动FSC104确定第一数据包有效。当主动FSC 104确定第一数据包有效时,主动FSC 104连续地生成第一健康状态信号和第二健康状态信号。可以将第一健康状态信号和第二健康状态信号断言为第一数值。例如,第一数值等于1。在另一示例中,第一数值可以是指示FSC 104健康的字符串。
相反,当主动FSC 104确定第一数据包的两个副本不相同时,主动FSC 104去断言第一健康状态信号和第二健康状态信号。去断言第一健康状态信号和第二健康状态信号可以包括将第一信号和第二信号设置为第二值。例如,第二数值可以等于0。在另一示例中,第二数值可以是指示FC 104不健康的字符串。如以下将更详细描述的,主动FSC 104包括第一处理器和第二处理器。当第一处理器确定第一数据包的两个副本都有效时,第一处理器连续地生成第一健康状态信号。类似地,当第二处理器确定第一数据包的两个副本都有效时,第二处理器连续地生成第二健康状态信号。
如上所述,系统100是包括主动FSC 104和备用FSC 108的冗余系统。换言之,主动FSC 104和备用FSC 108以相同的方式运行。以这种方式,备用FSC 108被配置为确定第一数据包的两个副本是否相同。例如,备用FSC 108接收第一数据包的两个副本。备用FSC 108对第一数据包的两个副本进行比较,并基于该比较而生成第三健康状态信号和第四健康状态信号。第三健康状态信号和第四健康状态信号包括与第一健康状态信号和第二健康状态信号相似的特征。如下面将详细描述的,系统100监视第一健康状态信号、第二健康状态信号、第三健康状态信号和第四健康状态信号,并基于健康状态信号确定主动FSC 104和备用FSC108中的每一个是否健康。
在一些实施方式中,健康状态信号指示系统100、主动FSC 104和/或备用FSC 108是否处于测试模式中。周期性地,可以测试系统100的部件以确保系统100的部件按它们预期的方式运行。执行部件测试的一种方法是使得系统100的各个部件离线(即,使部件或整个系统100断电)。然而,有利的是,在系统100上电时能够测试系统100 的部件。
在一个示例中,可指示主动FSC 104执行多个系统测试中的一个测试,从而确保主动FSC 104正确操作。通过非限制性示例,可以指示主动FSC 104在系统100中模拟故障。因此,当主动FSC 104正确操作时,主动FSC 104响应于系统100中的模拟故障而去断言第一健康状态信号和第二健康状态信号。
如下面将详细描述的,系统100的各个部件被配置为监视健康状态信号,并根据是否断言或去断言健康状态信号而操作。例如,如上所述,主动FSC 104可以响应于确定数据包被有效地生成而断言第一健康状态信号和第二健康状态信号。系统100被配置为响应于所断言的第一健康状态信号和第二健康状态信号而指示SA和/或SCS的部件来执行与数据包相关联的任务。
类似地,响应于第一健康信号和第二健康信号中的一个被断言,系统100可以指示备用FSC 108作为主动FSC进行操作。换言之,在各种实施例中,当主动FSC 104 仅去断言第一健康状态信号和第二健康状态信号中的一个或者两个时,系统100确定主动FSC 104是不健康的,并指示备用FSC 108接管主动FSC的操作。
在示例实施方式中,主动FSC 104可以响应于模拟的故障而去断言第一健康信号和第二健康信号中的一个或两个。为了防止系统100响应于在部件测试(即,模拟的故障或可能导致错误的健康状态信号的其他测试)期间断言和/或去断言第一健康信号和第二健康信号而操作,健康状态信号可以指示是否正在执行测试。例如,在各种实施例中,健康状态信号(即,第一健康状态信号至第四健康状态信号)可被设置为指示测试要由系统100的至少一个部件执行的值。
在其他示例中,健康状态信号可被设置为包括字符串的值,该字符串包括指示主动FSC 104(和/或备用FSC 108)的当前健康状态的第一部分以及指示是否正在执行测试的第二部分。例如,如上所述,第一健康状态信号和第二健康状态信号可以被设置为第一值(即,指示主动FSC 104是健康的)或第二值(即,指示主动FSC 104是不健康的)。第一值可以是17位字符字符串。第一值的第一部分可以被设置为表示主动FSC 104的当前健康状态的预定字符串。例如,只有当主动FSC 104是健康的时,字符串的前15位可以被设置为1(即第一值)。可替代地,当主动FSC 104是不健康的时,字符串的前15位可以被设置为0(即,第二值)。应该理解的是,字符串可以是与主动FSC 104的健康或不健康状态相对应的适合字符的任意预定组合。
此外,17位字符串中的最后两位可指示是否在系统100的一个或多个部件上启动测试。在一个示例中,主动FSC 104接收来自系统100的指令,以将故障作为部件测试的一部分进行模拟。主动FSC 104将字符串的最后两位设置为指示测试启动的1。相反,当主动FSC104未执行测试时,主动FSC 104将字符串的最后两位设置为0。以这种方式,第一健康状态信号和第二健康状态信号指示主动FSC 104的当前健康状态,以及主动FSC 104是否应该启动部件测试。应该理解的是,虽然上面仅描述了主动FSC 104,但本文中公开的原理适用于备用FSC 108和系统100中的任何其他合适部件。
主动FSC 104将第一健康状态信号和第二健康状态信号传送至系统100。系统100监控第一健康状态信号和第二健康状态信号以确定主动FSC 104是否健康。例如,当第一健康状态信号和第二健康状态信号被设置为第一值时,系统100确定主动FSC 104 是健康的。相反,当第一健康状态信号和第二健康状态信号被去断言(即,被设置为第二值)时,系统100确定主动FSC 104不健康。应该理解的是,尽管关于被去断言的第一状态信号和第二状态信号而仅讨论了表决不匹配,但系统100内的任何硬件或软件故障都可以引起去断言第一状态信号和第二状态信号中的一个。
当主动FSC 104确定第一数据包的两个副本不相同时,主动FSC 104确定已经出现了表决不匹配。主动FSC 104如上所述可以生成故障指示。故障指示可以基于表决不匹配的故障信号。表决不匹配可以作为系统100、SA和/或SCS中故障的结果而出现。例如,表决不匹配可以是由于系统100或铁路系统内硬件或软件故障。为了可应用的原因,如果主动FSC104遇到硬件或软件故障,系统100迫使主动FSC 104至预定安全状态。例如,系统100去激活主动FSC 104。备用FSC 108随后作为主动FSC 来操作。
主动FSC 104和备用FSC 108中的每一个可以包括多个通信链路。通信链路包括但不限于上行链路、下行链路以及用户接口。上行链路是至较高层级设备的双向通信信道。较高层级设备可以是整个系统架构中包括的系统硬件。例如,较高层级设备可以是如上所述制动系统的部件。
下行链路是至较低层级硬件的双向通信信道。例如,较低层级硬件可以包括与较高层级设备通信的开关和继电器。下行链路可以遵循任何合适的硬件标准而实施。例如,下行链路可以实施为RS-232、RS-422、RS-485、CAN、MVB、以太网、以太网 HSR环、或其他合适的技术。用户接口是被设计为允许系统100的用户访问系统100 的部件和子系统的接口。仅例如,用户接口可以实施为多个发光二极管(LED)。
通信链路与SA和/或SCS(诸如铁路系统)的硬件和软件部件通信。进一步,系统100接收输入并且将输出传送至现场工程师。例如,现场工程师可以通过与系统100 的用户接口通信而选择性地配置系统100。
主动FSC 104和备用FSC 108中的每一个包括处理子系统。主动FSC 104处理子系统包括主中央处理单元(CPU)116a和检验器CPU 120a。类似的,备用FSC 108 处理子系统包括主CPU 116b和检验器120b。主CPU 116a和主CPU 116b中的每一个被配置为是相同的。类似的,检验器CPU 120a和检验器CPU 120b中的每一个被配置为是相同的。以此方式,主CPU116a、主CPU 116b、检验器CPU 120a和检验器CPU 120b用于提高系统100的可应用性和可靠性。
为了监视并控制系统100的整体健康和安全性,主CPU 116a和检验器CPU 120a 也被配置为是相同的。例如,主CPU 116a和检验器CPU 120a执行相同的软件并实施相同的处理功能。主CPU 116a和检验器CPU 120a被配置为执行相同的功能,以便于维持安全关键硬件和软件的全硬件故障和错误检测覆盖并允许以正确的顺序对输入数据包进行表决。
在一些实施方式中,多个输入数据包包括对于执行由铁路系统的安全关键硬件或软件中的至少一个传送的和/或生成的任务的请求。对于执行任务的请求基于由安全关键硬件和软件从SA和/或SCS的操作员接收到的命令。例如,铁路系统的操作员可以命令运行在铁路系统上的火车增大速度。操作员可以促动火车内的物理操作杆。物理操作杆被配置为生成指示增大火车的速度的命令的信号。信号被传送至安全关键硬件和软件。
在执行任务或多个任务之前,安全关键硬件和软件以输入数据包的形式将任务传送至系统100。系统100确定是否有效地生成了任务。系统100通过相对于多个输入数据包对如上所述任务进行表决而确定任务的有效性。当系统100确定任务有效时,系统100基于任务生成输出数据包,任务在各种实施例中也被表决。系统100将输出数据包传送至安全关键硬件和软件。安全关键硬件和软件响应于接收到输出数据包而执行任务。
在一个实施方式中,系统100将接收到的、与所请求的任务相关联的数据包传送至主CPU 116a。这可以称作主数据包。系统100将接收到的数据包的副本传送至检验器CPU120a。这可以称作检验器数据包。主CPU 116a和检验器CPU 120a两者被配置为在安全关键硬件和软件执行与数据包相关联的所请求的任务之前,对主数据包和检验器数据包的有效性进行表决。
主CPU 116a和检验器CPU 120a中的每一个被配置为将数据包的副本传送至主CPU 116a和检验器CPU 120a中的另一个。换言之,主CPU 116a从系统100接收主数据包并从检验器CPU 120a接收检验器数据包的副本。类似的,检验器CPU 120a从系统100接收检验器数据包并从主CPU 116a接收主数据包的副本。在主CPU 116a指示安全关键硬件和软件执行与主数据包相关联的所请求的任务之前,主CPU 116a和检验器CPU 120a通过将主数据包与检验器数据包进行比较而对主数据包和检验器数据包进行表决。
例如,主CPU 116a将主数据包与检验器数据包的副本进行比较。主CPU 116a确定主数据包与检验器数据包的副本是否是相同的。类似的,检验器CPU 120a将检验器数据包与主数据包的副本进行比较。检验器CPU 120a确定检验器数据包与主数据包的副本是否是相同的。
当主CPU 116a确定主数据包和检验器数据包的副本相同时,主CPU 116a将输出数据包传送至关键安全硬件和软件。相反,当主CPU 116a确定主数据包和检验器数据包的副本不相同时,主CPU 116a如上所述生成故障指示。主CPU 116a也可以去断言指示主动FCS104不健康的第一健康信号和第二健康信号。应该理解的是,虽然仅描述了主CPU 116a,但本公开的原理也同样适用于检验器CPU 120a。
与输出数据包相关联的任务指示安全关键硬件和软件以执行所请求的任务。输出包可以包括控制I/O的操作数据元素、读取输入从而收集信息的请求、健康消息、进程间通信的请求,或与安全关键硬件和软件相关联的其他适当请求。操作数据元素可以包括指示安全关键硬件和软件中的一个来执行预定过程的指令集。例如,操作数据元素可以指示安全关键软件执行加速过程。加速过程包括控制至少一个安全关键硬件部件。例如,至少一个硬件部件包括列车的节流机构(throttle mechanism)。
如上所述,故障指示可以包括故障信号。故障信号指示故障已经发生在系统100、安全关键硬件和软件、或者SA和/或SCS内。通过对主数据包和检验器数据包进行表决,主CPU 116a验证所请求的任务是来自有效源(也即诸如铁路系统的SA或SCS 的部件)的有效请求,而不是错误请求。
仅例如,表决不匹配可能是由主CPU 116a接收到的错误请求的结果。主CPU 116a由于硬件故障、软件错误或者整个系统故障而可能接收错误请求以执行任务。通过非限制性示例的方式,主CPU 116a可以响应于与制动器相关联的电气部件的短路而接收到应用制动器的请求。应该理解的是,虽然仅描述了主CPU 116a和检验器CPU 120a,但是上述原理也适用于主CPU 116b和检验器CPU 120b。
主动FSC 104和备用FSC 108中的每一个包括多个输入/输出单元(IOU)模块。主动FSC 104包括IOU模块128a-128f。IOU模块128a-128f将在下文中称作IOU模块128。类似的,备用FSC 108包括IOU模块132a-132f,其与IOU模块128a-128f相同。IOU模块132a-132f将在下文中称作IOU模块132。
主动FSC 104和备用FSC 108还每个分别包括开关模块124a和开关模块124b。开关模块124a和开关模块124b被配置为同样地操作。开关模块124a和开关模块124b 从I/O子系统接收多个输入数据包并将数据包路由至主CPU 116a和主CPU 116b以及检验器CPU 120a和检验器120b。
开关模块124a也将从主CPU 116a接收到的数据包路由至SA和/或SCS(诸如铁路系统)中的一个或多个部件。例如,如上所述,主CPU 116a生成输出数据包。主 CPU 116a将输出数据包传送至开关模块124a。开关模块124a随后将输出数据包路由至系统100、SA或SCS内的一个或多个部件。因此,开关模块124a将输出数据包路由至铁路系统的部件,诸如安全关键硬件和软件。应该知晓的是,尽管仅描述了开关模块124a,但如上所述原理也适用于开关模块124b。
IOU模块128在主动FSC 104内实施I/O子系统。I/O系统被配置为在较低层级网络设备与主CPU 116a和检验器CPU 120a之间提供网关。IOU模块128将主CPU 116a 和检验器CPU 120a与由外部硬件和软件所需要的低层级协议隔离。以此方式,IOU 模块128在内部以太网上添加安全层以支持在主CPU 116a、检验器CPU 120a与安全关键硬件和软件之间的安全通信。IOU模块128和开关模块124a可以共同地称作前刀片(front blade)124a-128f。类似的,IOU模块132和开关模块124b可以共同地称作前刀片124b-132f。
主动FSC 104和备用FSC 108也包括多个后端转换模块(RTM)。主动FSC 104 包括RTM 136a-136i。备用FSC 108包括RTM 140a-140i。应该知晓的是,因为备用 FSC 108是主动FSC 104的冗余配置,因此RTM 136a-136i与RTM 140a-140i相同。在一些实施方式中,RTM136a-136i中的每一个可以是可热调换的现场可替换单元 (FRU)。
例如,RTM 136a-136i中的每一个可以由现场工程师移除和替换而无需首先对整个系统100断电。RTM 136a-136i允许主动FSC 104与安全关键硬件和软件部件通信。例如,RTM 136a将主CPU 116a电地并逻辑地耦接至铁路系统的部件。类似的,RTM 136b将备用FSC108电地并逻辑地耦接至安全关键硬件和软件部件。
前刀片124a-128f和主CPU 116a和检验器CPU 120a每个包括第一存储器位置和第二存储器位置。第一存储器位置和第二存储器位置存储从主动FSC 104的相应硬件部件接收的值。例如,主CPU 116a不断地生成指示主CPU116a的模块健康的模块健康信号(如上所述)。当模块健康信号指示主CPU 116a是健康的时,主CPU 116a在第一存储器位置中存储1。
前刀片124a-128f中的每一个和主CPU 116a以及CPU 120a生成模块健康信号。前刀片124a-128f中的每一个在第一存储器位置中存储指示模块健康信号的值。仅例如,当模块健康信号指示开关模块124a是健康的时,开关模块124a在与开关模块124a 相关联的第一存储器位置中存储1。
相反,当模块健康信号指示开关模块124a是不健康的时,开关模块124a在第一存储器位置中存储0。应该理解的是,虽然仅描述了开关模块124a,但是本文讨论的原理适用于系统100内的所有模块。进一步应该理解的是,虽然仅描述基于模块健康信号存储1和0,但是可使用任何合适的指示符来指示系统100内的各模块的每一个的健康状况。系统100内的各模块的每一个随后将存储在关联的第一存储器位置的值传送至主CPU 116a。
主CPU 116a基于与由前刀片124a-128f中的每一个生成的模块健康信号和由主CPU 116a生成的模块健康信号对应的多个值而确定主动FSC 104是否健康。仅例如,当所接收的对应于模块健康信号的各个值中的每一个值指示系统100内的各模块中的每一个模块是健康的时,主CPU 116a确定主动FSC 104是健康的。相反,当所接收的对应于模块健康信号的各个值中的至少一个值指示系统100内的各模块中的至少一个模块是不健康的时,主CPU 116a确定主动FSC 104是不健康的。
在一些实施方式中,RTM 136a和RTM 136b将机架健康值传送至安全继电器箱模块144。安全继电器箱模块144基于多个机架健康值而选择性地确定系统100内的FSC 中的哪一个将是主动FSC以及哪一个将是备用FSC。例如,安全继电器箱模块144从 RTM 136a、RTM136b、RTM 140a和RTM 140b接收多个机架健康值。RTM 136a基于由主CPU 116a和前刀片124a-128f生成的模块健康信号的累积结果而生成第一机架健康值。
RTM 136a将机架健康值传送至安全继电器箱模块144。类似地,RTM 136b基于由检验器CPU 120a和前刀片124a-128f生成的模块健康信号的累积结果而生成第二机架健康值。RTM 140a基于由主CPU 116b和前刀片124b-132f生成的模块健康信号的累积结果而生成第三机架健康值。类似地,RTM 140b基于检验器CPU 120b和前刀片 124b-132f生成的模块健康信号的累积结果而生成第四机架健康值。
安全继电器箱模块144确定主动FSC 104和备用FSC 108中的哪一个在系统100 中作为主动FSC操作。例如,安全继电器箱模块144基于第一机架健康值至第四机架健康值而确定主动FSC 104将作为系统100内的主动FSC操作。当第一机架健康信号和第二机架健康信号指示主动FSC 104是健康的时,安全继电器箱模块144确定主动 FSC 104将是系统100内的主动FSC。
安全继电器箱模块144基于主动FSC确定而生成主动FSC信号和备用FSC信号。例如,安全继电器箱模块144生成第一主动FSC信号和第二主动FSC信号。第一主动 FSC信号和第二主动FSC信号是冗余信号,它们两者都指示哪个FSC被选择作为主动FSC操作。安全继电器箱模块144还生成第一备用FSC信号和第二备用FSC信号。
第一备用FSC信号和第二备用FSC信号是冗余信号,它们两者都指示哪个FSC 被选择作为备用FSC操作。安全继电器箱模块144将第一主动FSC信号和第一备用 FSC信号传送至主动FSC 104。类似地,安全继电器箱模块将第二主动FSC信号和第二备用FSC信号传送至备用FSC 108。
安全继电器箱模块144还基于第一机架健康信号至第四机架健康信号而确定在主动FSC 104和备用FSC 108中的一个中是否发生了故障。例如,当安全继电器箱模块 144从RTM 136a和RTM 136b中的一个接收到无效的机架健康信号时,安全继电器箱模块144确定故障在主动FSC 104中已经发生。例如,无效的机架健康信号可能是0 的机架健康值。安全继电器箱模块144基于无效的机架健康信号生成备用信号。安全继电器箱模块144将备用信号传送至主动FSC 104。主动FSC104基于备用信号而确定是否进入故障安全状态。例如,当主动FSC 104接收到备用信号时,主动FSC 104确定进入故障安全状态。
安全继电器箱模块144基于机架健康值生成主动信号。安全继电器箱模块144将主动信号传送至备用FSC 108。主动信号向备用FSC 108表示,主动FSC104正在故障安全状态或备用状态中操作。当备用FSC 108接收到主动信号时,备用FSC 108开始作为主动FSC操作。以此方式,安全继电器箱模块144强制故障的主动FSC进入故障安全状态,并警告备用FSC来承担主动FSC的角色。
安全继电器箱模块144被配置为根据通信协议从主动FSC 104和备用FSC 108接收和解释信号和消息。以此方式,安全继电器箱模块144与主动FSC 104和备用FSC 108通信而不管主动FSC 104和备用FSC 108的物理特性,只要主动FSC 104和备用 FSC108遵循通信协议。应该理解的是,安全继电器箱模块144与系统100内的任何部件通信。
现在参考图2,根据本公开原理的示例性故障安全机架(FSC)的框图在200处示出。FSC 200包括主CPU 204和检验器CPU 208。主CPU 204和检验器CPU 208执行相同的软件并实施相同的处理功能。主CPU 204和检验器CPU 208被配置为执行相同的功能,从而维持安全关键硬件和软件的全部硬件故障和错误检测覆盖率。
例如,主CPU 204从SA和/或SCS(诸如上述铁路系统)的安全关键硬件或软件中的至少一个接收执行任务的请求。铁路系统包括多个安全相关部件,安全相关部件包括安全关键硬件和软件。安全关键硬件和软件与铁路系统的部件交互,从而控制铁路系统的各个方面。例如,安全关键硬件和软件控制在铁路系统内运行的列车的操作。
执行任务的请求可以包括但不限于确定硬件部件的状态、参与铁路系统的制动、或向铁路系统操作员指示在铁路系统内运行的列车的位置。执行任务的请求以数据包的形式接收。例如,执行任务的请求可以是多个输入数据包中的一个
同时,检验器CPU 208接收相同请求的副本。主CPU 204和检验器CPU 208中的每一个被配置为将所请求的任务的副本传送至主CPU 204和检验器208中的另一个。在主CPU204执行所请求的任务之前,主CPU 204和检验器CPU 208比较由主 CPU 204和检验器CPU208中的每一个所接收的请求的任务。
当所请求的任务相同时,主CPU 204和检验器CPU 208将所请求的任务传送至安全关键硬件和软件以用于处理。例如,主CPU 204和检验器CPU 208生成与所请求的任务相关联的输出数据包。输出数据包包括操作数据元素。操作数据元素可以包括指示安全关键硬件和软件中的一个来执行预定过程的指令集。例如,操作数据元素可以指示安全关键软件来执行制动器接合过程。制动器接合过程包括控制至少一个安全关键硬件部件。该至少一个硬件部件可以包括铁路系统的制动机构。
相反,当所请求的任务不相同时,主CPU 204和检验器CPU 208不会将所请求的任务传送至安全关键硬件和软件。以此方式,主CPU 204验证所请求的任务是来自有效源(即外部硬件部件或软件应用程序)的有效请求,而不是执行由于外部硬件故障、软件错误或整个系统故障而生成的任务的错误请求。
主CPU 204和检验器CPU 208每个基于确定所请求的任务是否相同,而连续地生成模块健康信号。当主CPU 204和检验器CPU 208确定所请求的任务相同时,主CPU 204和检验器CPU 208连续地生成模块健康信号。当主CPU 204和检验器CPU 208确定所请求的任务不相同时,主CPU 204和检验器CPU 208去断言模块健康信号。在一些示例中,主CPU 204确定任务是相同的并且连续地生成第一模块健康信号,而检验器CPU 208确定任务是不相同的并且去断言第二模块健康信号。如下面将详细描述的,仅第一模块健康信号和第二模块健康信号中的一个被去断言来表示部件故障。
主CPU 204和检验器CPU 208基于由与FSC 200相关联的多个模块中的每一个模块生成的多个模块健康信号而生成机架健康信号。FSC 200包括与关于主动FSC 104 描述的那些特征类似的特征。例如,FSC 200包括如上所述的前刀片124a-128f。FSC 200 内的各模块中的每一个模块连续地生成模块健康信号(如上所述)。当多个模块健康信号指示FSC200是健康的时,主CPU 204生成第一机架健康信号。换言之,当多个模块健康信号指示FSC200是健康的时,第一机架健康信号被连续地断言(即,设置为 1)。
应该理解的是,关于主CPU 204所述的原理也适用于检验器CPU 208。检验器CPU208基于与FSC 200相关联的多个模块中的每一个模块生成的多个模块健康信号而生成第二机架健康信号。当多个模块健康信号指示FSC 200是健康的时,检验器CPU 208 连续地生成第二机架健康信号。主CPU 204将第一机架健康信号传送至安全继电器箱 212。类似地,检验器CPU 208将第二机架健康信号传送至安全继电器箱212。
在一个实施方式中,第一机架健康信号和第二机架健康信号指示系统100内的部件是否应该执行测试,如上所述。例如,由主CPU 204和检验器CPU 208生成的模块健康信号中的每一个包括指示相应CPU的当前模块健康状况的第一部分和指示系统 100内的部件是否应该执行测试的第二部分。如上所述,这可以包括将各模块健康信号中的每一个设置为17位字符串。17位字符串的第一部分可以包括17位中的一个或多个,而17位字符串的第二部分包含17位的剩余位。
仅通过非限制性示例的方式,第一部分可以包括15位,而第二部分可以包括两位。第一部分可以被设置为指示与模块健康信号相关联的相应模块是否健康的预定值。例如,17位字符串可以是二进制字符串。当与模块健康信号相关联的模块是健康的时,第一部分可以被设置为1和0的预定序列。相反,当与模块健康信号相关联的模块是不健康的时,第一部分可以被设置为1和0的不同预定序列。应该理解的是,17位字符串可以是任何合适的基础系统,包括二进制、十六进制、或任何适当的数字和/或字符基础。
继续上述示例,第二部分可以包括17位字符串的剩余两位。当与模块健康信号相关联的模块执行测试时,第二部分可被设置为指示模块要执行测试的预定值。当17 位字符串是二进制数字时,该值可以是1和0的预定序列。如上所述,字符串可以是任意数字基或字符集。相反,当与模块健康信号相关联的模块没有接收到执行测试的指令时,第二部分被设置为指示模块不执行测试的值。以这种方式,系统100的其他部件将基于模块是否正在执行测试而忽略模块健康信号或对模块健康信号作出反应。
作为示例,主CPU 204接收模拟FSC 200中的故障的指示。主CPU 204模拟故障并生成第一模块健康信号。第一模块健康信号的第一部分指示主CPU 204是不健康的,并且第一模块健康信号的第二部分指示主CPU 204要执行测试。此外,系统100内的任何模块可以生成指示对应模块的健康状态的模块健康信号。
安全继电器箱模块212基于多个机架健康信号选择性地确定FSC 200是否将作为主动FSC操作。例如,当启动FSC 200时,安全继电器箱模块212开始从主CPU 204 接收机架健康信号。安全继电器箱模块212还开始从检验器CPU 208接收机架健康信号。如上所述,机架健康信号基于各个模块健康信号中的每一个信号。例如,如果所有各个模块健康信号指示每个对应模块是健康的,则主CPU 204生成指示与主CPU 204相关联的模块是健康的第一机架健康信号。相反,如果模块健康信号中的一个或多个指示对应模块中的一个或多个是不健康的时,则主CPU 204将去断言指示FSC 200是不健康的第一机架健康信号。
如上所述,各模块健康信号中的每一个可以包括指示对应模块是否要执行测试的部分。因此,当主CPU 204接收模块健康信号时,主CPU 204被配置为确定对应模块是否要基于模块健康信号来执行测试。例如,主CPU 204确定模块健康信号的第二部分是否指示对应模块要执行测试。当主CPU 204确定对应模块要执行测试时,主CPU 204忽略模块健康信号,并基于剩余的所接收的模块健康信号而生成第一机架健康信号。换言之,从被测试的模块发送的模块健康信号能够影响主CPU 204是否断言或去断言第一机架健康信号。安全继电器箱模块212基于机架健康信号确定FSC 200是否将被选择为主动FSC。
在一些实施方式中,安全继电器箱模块212还从另一个FSC接收多个机架健康信号。安全继电器箱模块212基于多个机架健康信号而确定是否将FSC 200或另一FSC 选择为主动FSC。例如,安全继电器箱模块212首先确定FSC 200或另一FSC中的一个是否是健康的。当从FSC 200接收的机架健康信号指示FSC 200是健康的时,安全继电器箱模块212确定FSC200是健康的。例如,当安全继电器箱212从FSC 200接收机架健康信号时,安全继电器箱212确定FSC 200是健康的。
类似地,当从另一FSC接收到的多个机架健康信号指示另一FSC是健康的时,安全继电器箱模块212确定另一FSC是健康的。当安全继电器箱模块212确定FSC 200 和另一FSC都是健康的时,安全继电器箱模块212基于FSC 200和另一FSC中的哪一个首先传送多个机架健康信号中的一个而选择主动FSC。例如,当FSC 200在另一 FSC将信号传送至安全继电器箱模块212之前将信号传送至安全继电器箱模块212时,安全继电器箱模块212选择FSC200作为主动FSC。
安全继电器箱模块212监视主动FSC的健康状况。例如,安全继电器箱模块212 从FSC 200接收第一机架健康信号和第二机架健康信号。安全继电器箱模块212基于第一机架健康信号和第二机架健康信号而确定故障是否在FSC 200中发生。当第一机架健康信号和第二机架健康信号中的至少一个指示所请求的任务的表决不匹配时,安全继电器箱212确定故障在FSC 200中发生。换言之,安全继电器箱模块212确定当安全继电器箱模块212未接收到第一机架健康信号和第二机架健康信号中的一个(例如,如上所述去断言了第一机架健康信号和第二机架健康信号中的一个)时已经发生故障。
如上所述,各模块健康信号中的每一个可以包括指示模块是否要执行测试的部分,并且因此,由模块健康信号指示的相对健康状况可以影响机架健康的确定。类似地,机架健康信号中的每一个可以包括指示主CPU 204和/或检验器CPU 208正在执行测试的部分。例如,主CPU 204可接收模拟故障的指示,该故障将生成指示主CPU 204 是不健康的机架健康信号。安全继电器箱模块212被配置为确定机架健康信号是否指示主CPU 204(或检验器CPU 208)正在执行测试。如上所述,这可以包括确定机架健康信号的第一部分是否指示健康状态以及第二部分是否指示测试要被执行。
当安全继电器箱模块212基于机架健康信号的第二部分的值确定主CPU 204要执行测试时,安全继电器箱模块212可以影响与机架健康信号相关联的健康状态。以这种方式,在各种实施例中,安全继电器箱模块212将确定主CPU 204是否影响FSC 200 的健康确定。
当安全继电器箱模块212确定故障已经在FSC 200中发生时,安全继电器箱模块212生成故障安全信号。例如,第一机架健康信号和第二机架健康信号中的一个的第一部分指示不健康状态,并且第一机架健康信号和第二机架健康信号中的对应一个的第二部分指示没有正在执行测试。安全继电器箱模块212将故障安全信号传送至FSC 200。FSC 200基于故障安全信号确定是否进入安全状态。例如,当FSC 200接收到故障安全信号时,FSC 200进入安全状态。相反,FSC 200将继续以主动FSC模式操作除非FSC 200接收到故障安全信号。
可替代地,当FSC 200未接收到主动信号时,FSC 200可以进入备用状态。当安全继电器箱模块212确定FSC 200要作为主动FSC操作时,安全继电器箱模块212传送主动信号。安全继电器箱模块212连续地将主动信号传送至FSC 200。当安全继电器箱模块212确定FSC200故障时,安全继电器箱模块212不将主动信号传送至FSC 200。FSC 200然后在备用状态下操作。
在一些实施方式中,多个机架健康信号被实施为动态脉冲信号,以消除未检测到的潜在故障模式。安全继电器箱模块212被配置为确定脉冲信号是停在0处还是停在 1处。例如,安全继电器箱212从主CPU 204接收第一脉冲信号。安全继电器箱模块 212被配置为等待预定时间段。
例如,预定时间段可以是与用于重置动态脉冲的足够长时间对应的时间段。当在预定时间段之后第一脉冲信号没有重置时,安全继电器箱模块212确定第一脉冲信号停住。当安全继电器箱模块212确定第一脉冲信号停住时,安全继电器箱模块212确定故障在主CPU 204中发生。安全继电器箱模块212基于确定在主CPU 204中的故障而生成故障安全信号。
现在参考图3,在304处示出了用于实施容错故障安全计算机系统的方法300,该容错故障安全计算机系统包括端到端FSC诊断。在308处,方法300接收多个模块健康信号。例如,如上所述,主CPU 204从系统100中的各模块中的每一个模块接收多个模块健康信号。在312处,方法300将各模块健康信号中的每一个模块健康信号的至少一部分与指示对应模块是否健康的预定值进行比较。
在316处,方法300基于在312处的比较,确定各模块健康信号中的一个或多个模块健康信号是否指示与系统100相关联的一个或多个模块是不健康的。如果是,则该方法在318处继续。如果否,则方法300在320处继续。在320处,方法300断言机架健康信号。在各种实施例中,机架健康信号可以指示一个或多个对应模块要执行测试。例如,主CPU 204使用模块健康信号来确定将要测试的模块是否影响机架健康确定。
在324处,方法300使用机架健康信号的第二部分来请求多个模块中的一个模块运行测试。例如,主CPU 204将各模块健康信号中的每一个模块健康信号的第一部分与预定健康值进行比较,所述预定健康值指示对应模块是健康的。在328处,方法300 确定来自324的一个模块是否去断言了模块健康信号。在各种实施例中,去断言可省略(brief)。
如果未检测到模块的健康信号被去断言,则该方法进行到318,其中机架健康信号被去断言以指示机架内不健康的模块。在318,方法300去断言指示系统100中的至少一个模块不健康的机架健康信号。如果328检测到去断言了框324的一个模块的健康信号,则方法300在336处继续。在336处,方法300确定是否机架健康信号已经被去断言。在各种实施例中,去断言可省略。如果没有检测到去断言,则方法300 进行到324。如果去断言没有被检测,则方法300进行到318。
鉴于上述情况,通过发送和接收特定长度的动态脉冲信号来指示健康和安全状态。不从高或低变化的信号将被视为故障。这些信号由系统内的各种表决和控制FPGA生成。如果确定健康信号应该被生成的一个位或多个位应该不变化,那么不正确的健康信号可以由该设备生成。随着时间的推移,如果一个以上的设备达到这种条件,则就会出现安全问题。通过扩展健康和安全信号,使得在模式内指示测试信号,则所有接收模式的电路板都知道测试正在发生。存在冗余信道,因此如果出现实际错误,则可以由另一信道检测到。这允许测试将输入移到FPGA,以确保不正确的健康信号指示实际发生,以及确保在该信道中的所有FPGA也能看到此测试指示。这确保了他们也正确地处理FPGA内部的项目。
前面的描述本质上仅是示意性并且绝非意在限制本公开、其应用或用途。本公开的广泛教导可以以各种形式实施。因此,尽管本公开包括特定的示例,但本公开的真实范围不应如此受限,因为一旦研究了附图、说明书和以下权利要求,其他修改将变得显而易见。应该理解的是,方法内的一个或多个步骤可以以不同的顺序(或同时地) 执行而不改变本公开的原理。进一步,尽管各实施例中的每一个实施例如上描述为具有某些特征,但关于本公开的任何实施例所述的那些特征的任意一个或多个可以实施在任何其他实施例中和/或与任何其他实施例的特征组合,即使该组合并未明确描述。换言之,所述实施例并非是互斥的,并且一个或多个实施例的彼此排列保持在本公开的范围内。
使用各种术语描述元件之间(例如在模块、电路元件、半导体层等之间)的空间和功能关系,包括“连接”、“接合”、“耦接”、“邻接”、“相邻”、“在顶上”、“在……之上”、“在……之下”和“布置”。除非明确地描述为“直接”,当在以上本公开中描述第一元件与第二元件之间的彼此关系时,该关系可以是直接关系,其中第一元件与第二元件之间不存在其他插入的元件,但是也可以是间接关系,其中第一元件与第二元件之间(空间或功能的)存在一个或多个插入元件。如本文所使用,短语A、B和 C中的至少一个应该被理解为意味着使用非排他性逻辑“或”的逻辑(A或B或C),并且不应被理解为意味着“A中的至少一个,B中的至少一个,以及C中的至少一个”。
在附图中,如由箭头所示的箭头方向通常展示了对于图示有意义的信息(诸如数据或指令)的流动。例如,当元件A和元件B交换各种信息但是从元件A发送至元件B的信息与图示相关时,箭头可以从元件A指向元件B。该单向箭头并未暗示没有其他信息从元件B发送至元件A。进一步,针对从元件A发送至元件B的信息,元件 B可以向元件A发送针对信息的请求或接收信息的确认。
在该申请中,包括以下定义,术语“模块”或术语“控制器”可以替换为术语“电路”。术语“模块”可以指、是其一部分或包括:专用集成电路(ASIC);数字、模拟或混合模拟/数字分立电路;数字、模拟或混合模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器电路(共享的、专用的或群组的);存储了由处理器电路执行的代码的存储器电路(共享的、专用的或群组的);提供所述功能的其他合适硬件部件;或者以上的一些或全部的组合,诸如在片上系统中。
模块可以包括一个或多个接口电路。在一些示例中,接口电路可以包括连接至局域网(LAN)、互联网、广域网(WAN)、或其组合的有线或无线接口。本公开的任何给定模块的功能可以分布在经由接口电路连接的多个模块之中。例如,多个模块可以允许负载平衡。在另一示例中,服务器(也已知为远程或云)模块可以实现代表了客户端模块的一些功能。
如上所使用的术语代码可以包括软件、固件、和/或微代码,并且可以指程序、例程、函数、类、数据结构和/或对象。术语共享处理器电路包括执行来自多个模块的一些或全部代码的单个处理器电路。术语群组处理器电路包括与额外的处理器电路组合而执行来自一个或多个模块的一些或全部代码的处理器电路。对多处理器电路的引用包括在分立芯片(die)上的多个处理器电路、在单个芯片上的多个处理器电路、单个处理器电路的多个核、单个处理器电路的多个线程,或者以上的组合。术语共享存储器电路包括存储了来自一个或多个模块的一些或全部代码的单个存储器电路。术语群组存储器电路包括与其他的存储器组合而存储了来自一个或多个模块的一些或全部代码的存储器电路。
术语存储器电路是术语计算机可读介质的子集。如本文所使用,术语计算机可读介质不包括通过介质(诸如在载波上)传播的瞬态电的或电磁的信号;术语计算机可读介质因此可以视作是有形的且非瞬态的。非瞬态、有形计算机可读介质的非限制性示例是非易失性存储器电路(诸如快闪存储器电路、可擦除可编程只读存储器电路、或掩模只读存储器电路)、易失性存储器电路(诸如静态随机存取存储器电路或动态随机存取存储器电路)、磁性存储介质(诸如模拟或数字磁带或硬盘驱动器)、以及光学存储介质(诸如CD、DVD或蓝光盘)。
在本申请中描述的设备和方法可以部分地或全部由专用计算机实施,该专用计算机通过配置通用计算机以执行具体化在计算机程序中的一个或多个特定功能来创建。以上所述的功能框和流程图要素用作软件规范,其可以由熟练的技术人员或程序员的常规操作而转换为计算机程序。
计算机程序包括存储在至少一个非瞬态、有形计算机可读介质上的处理器可执行指令。计算机程序也可以包括或者依赖于存储数据。计算机程序可以包括与专用计算机的硬件交互的基本输入/输出系统(BIOS)、与专用计算机的特定装置交互的装置驱动器、一个或多个操作系统、用户应用、背景服务、背景应用等。
计算机程序可以包括:(i)待语法分析的描述性文本,诸如HTML(超文本标记语言)或XML(可扩展标记语言),(ii)汇编代码,(iii)由编译器从源代码生成的目标代码,(iv)用于由解释器执行的源代码,(v)用于由即时编译器等编译并执行的源代码。仅作为示例,源代码可以使用来自如下语言的语法编写,包括:C、C++、 Objective-C、Swift、Haskell、Go、SQL、R、Lisp、
Figure BDA0001592755840000201
Fortran、Perl、Pascal、Curl、 OCaml、
Figure BDA0001592755840000202
HTML5(超文本标记语言第五版)、Ada、ASP(动态服务器页面)、PHP(PHP:超文本预处理器)、Scala、Eiffel、Smalltalk、Erlang、Ruby、
Figure BDA0001592755840000203
Visual
Figure BDA0001592755840000204
Lua、MATLAB、SIMULINK以及
Figure BDA0001592755840000205
在35U.S.C.§112(f)的含义内,权利要求中记载的元素没有一个意在设计为装置加功能元素,除非元素明确地使用短语“用于……的装置”或者在方法权利要求的情形中使用短语“用于……的操作”或“用于……的步骤”来记载。

Claims (27)

1.一种容错故障安全计算机系统,包括:
第一故障安全机架,所述第一故障安全机架用于:
从多个关联的模块接收多个模块健康信号,并且连续地生成机架健康信号,所述机架健康信号包括指示所述机架的健康状况的第一部分和指示测试请求的第二部分,所述系统中的多个模块的每个模块接收所述机架健康信号;
基于所述模块健康信号中的每一个模块健康信号与预定健康值之间的第一比较,来确定所述模块健康信号中的一个或多个模块健康信号是否指示关联的模块是不健康的;以及
基于所述第一比较而选择性地去断言第一机架健康信号;
第二故障安全机架,所述第二故障安全机架用于:
从多个关联的模块接收多个模块健康信号,并且连续地生成第二机架健康信号,所述第二机架健康信号包含指示所述机架的健康状况的第一部分和指示测试请求的第二部分,所述系统中的多个模块的每个模块接收所述机架健康信号;
基于所述模块健康信号与所述预定健康值之间的第二比较,来确定所述模块健康信号中的一个或多个模块健康信号是否指示关联的模块是不健康的;
基于所述第二比较而选择性地去断言第一机架健康信号;以及
安全继电器箱模块,所述安全继电器箱模块基于所述机架健康信号和所述第二机架健康信号而确定是否指示所述第一故障安全机架以预定模式操作。
2.根据权利要求1所述的系统,其中所述多个模块中的一个模块基于所述机架健康信号的所述第二部分与根据所述多个模块中的一个模块确定的预定测试请求值的第三比较而开始测试。
3.根据权利要求2所述的系统,其中与所述多个模块中被指示运行测试的一个选定的模块相关联的所述模块健康信号将去断言该模块的模块健康状况作为该测试的结果。
4.根据权利要求3所述的系统,其中所述机架健康信号根据该测试的结果而被去断言。
5.根据权利要求4所述的系统,其中如果所述模块健康信号未被去断言并且所述机架健康信号未被去断言,则故障安全机架将去断言所述机架健康信号。
6.根据权利要求1所述的系统,其中所述第一故障安全机架包括接收数据包的第一副本的主CPU和接收所述数据包的第二副本的检验器CPU。
7.根据权利要求6所述的系统,其中所述主CPU将所述数据包的所述第一副本传送至所述检验器CPU,并且其中所述检验器CPU将所述数据包的所述第二副本传送至所述主CPU。
8.根据权利要求7所述的系统,其中主CPU基于所述数据包的所述第一副本与所述数据包的所述第二副本之间的第一比较而选择性地去断言第一模块健康信号,并且其中所述检验器CPU基于所述数据包的所述第二副本与所述数据包的所述第一副本之间的第二比较而选择性地去断言第二模块健康信号。
9.根据权利要求8所述的系统,其中所述主CPU在所述主CPU确定所述数据包的所述第一副本与所述数据包的所述第二副本不相同时,去断言所述第一模块健康信号。
10.根据权利要求8所述的系统,其中所述检验器CPU在所述检验器CPU确定所述数据包的所述第二副本与所述数据包的所述第一副本不相同时,去断言所述第二模块健康信号。
11.根据权利要求3所述的系统,其中所述机架健康信号包括指示所述故障安全机架的当前健康状况的第一部分和指示是否执行预定模块的测试的第二部分。
12.根据权利要求1所述的系统,其中所述故障安全机架在第一模块健康信号不等于所述预定健康值时去断言所述机架健康信号。
13.根据权利要求1所述的系统,其中所述故障安全机架在第二模块健康信号不等于所述预定健康值时,去断言所述机架健康信号。
14.一种容错故障安全计算机操作方法,包括:
通过生成机架健康信号的故障安全机架从多个关联的模块接收多个模块健康信号,其中,所述机架健康信号包括指示所述机架的健康状况的第一部分和指示测试请求的第二部分,并且其中,所述故障安全机架将测试请求插入到所述机架健康信号上;
基于所述模块健康信号中的每一个模块健康信号与预定健康值之间的第一比较,来确定所述模块健康信号中的一个或多个模块健康信号是否指示关联的模块是不健康的;
基于所述第一比较而去断言所述机架健康信号;以及
通过安全继电器箱基于所述机架健康信号和另一机架健康信号而确定是否指示所述故障安全机架以预定模式操作。
15.根据权利要求14所述的方法,进一步包括:在与所述故障安全机架相关联的主CPU处接收数据包的第一副本,并且在与所述故障安全机架相关联的检验器CPU处接收所述数据包的第二副本。
16.根据权利要求15所述的方法,进一步包括:将所述数据包的所述第一副本传送至所述检验器CPU,并且将所述数据包的所述第二副本传送至所述主CPU。
17.根据权利要求16所述的方法,进一步包括:基于所述数据包的所述第一副本与所述数据包的所述第二副本之间的第一比较而选择性地去断言第一模块健康信号,并且基于所述数据包的所述第二副本与所述数据包的所述第一副本之间的第二比较而选择性地去断言第二模块健康信号。
18.根据权利要求17所述的方法,进一步包括:在所述数据包的所述第一副本与所述数据包的所述第二副本不相同时,去断言所述第一模块健康信号。
19.根据权利要求17所述的方法,进一步包括:在所述数据包的所述第二副本与所述数据包的所述第一副本不相同时,去断言所述第二模块健康信号。
20.根据权利要求16所述的方法,进一步包括:通过第一模块健康信号指示所述主CPU的当前健康状况,并且通过第二模块健康信号指示所述检验器CPU的当前健康状况。
21.根据权利要求20所述的方法,进一步包括:在所述第一模块健康信号不等于所述预定健康值时去断言所述机架健康信号。
22.根据权利要求21所述的方法,进一步包括:在所述第二模块健康信号不等于所述预定健康值时去断言所述机架健康信号。
23.根据权利要求22所述的方法,其中所述故障安全机架内的所述多个模块中的每一个模块将所述机架健康信号的所述第二部分与根据所述多个模块中的相应一个模块确定的测试请求模式进行比较。
24.根据权利要求21所述的方法,其中所述模块运行导致基于所述第一比较而去断言所述模块的模块健康信号的测试。
25.根据权利要求22所述的方法,其中如果未发生模块健康状况的去断言,则所述故障安全机架去断言所述故障安全机架的机架健康信号。
26.根据权利要求23所述的方法,其中如果未发生模块健康状况的去断言,则所述故障安全机架去断言所述故障安全机架的机架健康信号。
27.根据权利要求22所述的方法,其中所述去断言被省略。
CN201810194774.0A 2017-03-10 2018-03-09 用于安全系统的端到端fpga诊断的方法和系统 Active CN108572893B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/456,034 US10338995B2 (en) 2017-03-10 2017-03-10 End to end FPGA diagnostics for a safety system
US15/456,034 2017-03-10

Publications (2)

Publication Number Publication Date
CN108572893A CN108572893A (zh) 2018-09-25
CN108572893B true CN108572893B (zh) 2021-08-10

Family

ID=63445394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810194774.0A Active CN108572893B (zh) 2017-03-10 2018-03-09 用于安全系统的端到端fpga诊断的方法和系统

Country Status (2)

Country Link
US (1) US10338995B2 (zh)
CN (1) CN108572893B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110143220B (zh) * 2019-05-27 2024-01-16 固安信通信号技术股份有限公司 一种安全型轨道信号发送器
US11378934B2 (en) 2019-09-09 2022-07-05 Baker Hughes Oilfield Operations Llc Shadow function for protection monitoring systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103946821A (zh) * 2011-09-21 2014-07-23 凯文·马克·克卢哈特 数据存储器架构扩展系统及方法
CN104699550A (zh) * 2014-12-05 2015-06-10 中国航空工业集团公司第六三一研究所 一种基于lockstep架构的错误恢复方法
CN104977907A (zh) * 2014-04-14 2015-10-14 雅特生嵌入式计算有限公司 直接连接算法
US9348657B2 (en) * 2014-01-08 2016-05-24 Artesyn Embedded Computing, Inc. Method and system of synchronizing processors to the same computational point
CN105912448A (zh) * 2015-02-24 2016-08-31 广达电脑股份有限公司 服务器系统及其用以增强存储器容错能力的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574322B2 (en) * 2005-05-10 2009-08-11 Microsoft Corporation Automated client device management
US9173100B2 (en) * 2011-11-16 2015-10-27 Autoconnect Holdings Llc On board vehicle network security
US9317359B2 (en) * 2013-12-16 2016-04-19 Artesyn Embedded Computing, Inc. Reliable, low latency hardware and software inter-process communication channel for safety critical system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103946821A (zh) * 2011-09-21 2014-07-23 凯文·马克·克卢哈特 数据存储器架构扩展系统及方法
US9348657B2 (en) * 2014-01-08 2016-05-24 Artesyn Embedded Computing, Inc. Method and system of synchronizing processors to the same computational point
CN104977907A (zh) * 2014-04-14 2015-10-14 雅特生嵌入式计算有限公司 直接连接算法
CN104699550A (zh) * 2014-12-05 2015-06-10 中国航空工业集团公司第六三一研究所 一种基于lockstep架构的错误恢复方法
CN105912448A (zh) * 2015-02-24 2016-08-31 广达电脑股份有限公司 服务器系统及其用以增强存储器容错能力的方法

Also Published As

Publication number Publication date
US20180260272A1 (en) 2018-09-13
US10338995B2 (en) 2019-07-02
CN108572893A (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
US10120772B2 (en) Operation of I/O in a safe system
CN108572638B (zh) 用于安全系统的fpga不匹配数据包的停止
US9367375B2 (en) Direct connect algorithm
CN109213118B (zh) 具有用于飞机的三重冗余的控制系统及用于管理它的方法
US9317359B2 (en) Reliable, low latency hardware and software inter-process communication channel for safety critical system
KR102284080B1 (ko) 2채널 아키텍처
JP2009523658A (ja) 分散型飛行制御システムのバックアップ制御のための装置及び方法
US10042812B2 (en) Method and system of synchronizing processors to the same computational point
US9497099B2 (en) Voting architecture for safety and mission critical systems
CN108572893B (zh) 用于安全系统的端到端fpga诊断的方法和系统
KR101560497B1 (ko) 락스텝으로 이중화된 프로세서 코어들의 리셋 제어 방법 및 이를 이용하는 락스텝 시스템
US9665447B2 (en) Fault-tolerant failsafe computer system using COTS components
CN109491842B (zh) 用于故障安全计算系统的模块扩展的信号配对
BR112016024009B1 (pt) Sistema de controle para um sistema de aplicação crítico de segurança de ferrovia, sistema de aplicação crítico de segurança de ferrovia, sistema de ferrovia e método para controlar um sistema de controle de aplicação crítico de segurança de ferrovia
US9311212B2 (en) Task based voting for fault-tolerant fail safe computer systems
Ghosh et al. A distributed safety-critical system for real-time train control
US10621031B2 (en) Daisy-chain of safety systems
KR20130120197A (ko) 비행제어컴퓨터의 채널 아이디 점검 방법 및 그 방법을 실행하기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
Faria Copernic Safety
Kopetz Fault Tolerance
JPH02223302A (ja) 制御装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant