文章来自 叶晓劼 在
1325 查看
故障安全系统在检测到故障后无法恢复安全运行,但它会以可预见的方式关机,不会产生错误的输出。
容错系统具有内置的能力(无需外部帮助),可在出现某一套运行故障时,保持持续正确执行其程序和输入/输出功能。
这个看似简单的定义实际上很难转化为实际的系统。 假设系统中有永久或瞬时故障,则必须满足三个要求,才能实现“持续正确执行”的愿望。 这些要求包括:
错误检测。
系统必须能够检测自身错误。
故障诊断。
在运行应用程序中检测到错误后,系统必须能够将故障与一组元件或模块相隔离,这样可以绕过故障、或在处理器控制下换新或关闭。
故障修复。
一旦查明故障,系统必须采取措施消除或最小化其影响。 对于瞬时故障,可能只需简单“重试”。
理想情况下,上述三个过程要尽快发生,以保持对数据吞吐量的最小干扰。 用额外硬件或/和软件的形式引入了保护冗余,以力图实现发生故障之后几乎即时恢复的设计目标。 实际上,通常无法满足可能会发生的每一种元件故障。 一些故障会导致灾难性的系统损失,能做的一切就是将其发生概率减至可以接受的低水平。 非冗余电路(如时钟发生器)的设计需要特别注意,以降低单个故障关闭其他容错系统的概率。
保险范围是检测到并安全地处理故障的条件概率。 术语“安全”可以指没有不良影响的系统关机(故障安全),也可以指隔离故障元件并继续运行(基于冗余的系统中的容错设计)。 此术语也称作安全失效分数 (SFF),并表示为百分比。 当然,有些情况,甚至受控的功能损失也是不可接受的:如果无人驾驶汽车的自动控制在高速操纵过程中关机, 想想会发生什么情况。在这种情况下,容错设计是唯一的选择。
保险范围的概念允许按照检测和处理所有可能故障模式的能力,来评估特定可靠性方案的有效性。如果要实现预测的可靠性,保险范围必须几乎是全部。容错设计和故障避免并不相互排斥,且在构成特定设计时可以将两种技术组合在一起。引入冗余元件和包括备用组件并不会自动提高系统可靠性。事实上,与单工系统相比,总体低质量的元件复制会使冗余系统更不太可能完成任务。为了实现容错计算的最大益处,有必要使用高品质的组件和降额设计。 这意味着即使存在故障元件,系统的可用性也会增加,任务成功概率也会提高。在设计阶段特别注意可用性问题,使得 2003 年发射的火星探测漫游者超过了预期任务寿命许多年。
单工和单工+诊断
单工或 1oo1(一分之一)系统无法检测故障,且具有很高的故障不安全概率。在单工 + 诊断或 1oo1D 中,整合了检查电路以监控处理器运行,而不会在对速度要求苛刻的实时系统中产生任何“开销”。
“看门狗”定时器,有时配置在处理器芯片上或作为单独监控设备的一部分,广泛用于检测处理器故障。 当程序产生的信号消失时,它通常强制系统复位。 这些非常简单的设备通常也包含电源监控。 为满足新的安全标准 ISO26262 和 IEC61508,需要更加全面的解决方案。 用于基于 MCU的 ARM Cortex M3 的 Yogitech fRCPU 是一个例子,用于其 TriCore? 处理器的英飞凌 CIC61508 Signature Window Watchdog是另一个例子。 这些诊断设备将单工或 1oo1 系统变为 1oo1D 类型,可用于实现 IEC61508 SIL3 认证的系统。 这意味着它的 SFF > 99% 且输入将为故障安全。
Texas Instruments TMS470M“安全”微控制器是其 Hercules? 系列的一部分,配备单个 Cortex-M3 内核,错误纠正和自测逻辑均整合在一个芯片上。但是它未能符合 IEC61508 安全标准,因为 SFF 小于 60%。 这是因为 60% 以上可能由内核造成的瞬时或系统错误,错误检查逻辑无法检测到。提高保险范围的方法是历史悠久的技术,即两个或多个内核上运行相同的程序并比较输出。
多处理器模块冗余
传统上,计算机控制系统中的冗余是指双重(DMR 或 2oo2)、三重(TMR 或 2oo3)或甚至四重处理器单元,每个处理器单元以“锁步”运行相同的程序。 仅当大多数处理器同意,比较或表决逻辑才允许输出通达执行器。 这意味着,DMR 不能容错,因为表决逻辑不能判断哪个输出不正确,因此必须以故障安全方式关闭两个处理器。 但是,SFF > 99% 的 DMR 仍能符合 SIL3 标准。 只要其余两个同意,TMR 允许一个处理器无法继续运行。QMR 系统应能处理两个故障,而不会降低性能。 如果基于 TMR 和 QMR 的系统可实现SFF > 99%,则应符合 SIL4 的标准,因为它们也能容错。
德州仪器基于 Hercules Cortex-R4F 的 TMS570LS 和 RM48x 微控制器包含两个处理器内核,以锁步执行相同程序,但一个仅用作从属检查设备,产生输出以便与主设备比较。只有总输出可用于系统的其余部分,因此无法使用一个设备建造 DMR 1oo2 系统。 相反,我们有 1oo1D 配置,符合 IEC61508 SIL3 的 SFF > 99% 标准。
瞬时故障和硬故障
如果检查系统出现错误,可能只是一次性错误所导致,例如游离的宇宙粒子的冲击翻转了 RAM 单元状态。 通过简单重试引起错误的程序段,可以消除这种瞬时故障的影响。 系统中必须内置执行重试的能力,否则硬件资源会发生不必要的关闭。如果系统在嘈杂的电子环境中工作,花费时间和精力校正这些电路/软件,将会大有裨益。当然,错误检查系统也必须能够快速感测“硬”故障和避免无谓的重试。
静态和动态冗余
具有表决电路的基本模块冗余通常分类为静态,其中均为运行的“热”模块。 发生硬故障时,处理器模块可能被忽略或处于节电模式。
动态冗余涉及热或冷待机备用单元,根据故障检测逻辑和/或软件的要求接通和断开。动态冗余已广泛应用在航天飞机和空中客车飞机 上。 在后一个例子中,通过引入多样性对共模故障采取了进一步的预防措施,借此处理器模块基于不同的微控制器平台,使用由独立团队编写的软件。 这些系统配备双处理器 1oo1D 模块,单芯片,如 Hercules 双核设备,现在可替换它们。 例如,两个芯片可以组合成兼容 SIL4 的容错 1oo2D 系统。在这种情况下,两个处理器均“热”且接收相同的输入,包括共同的重置。 当命令进行切换时,待机单元的输出替换失败模块的输出。 虽然处理器时钟不同步,但切换时只能出现小故障。
结论
直到最近,因为巨大的开发费用,容错概念主要与涉及飞机和宇宙飞船的费用很高的项目联系在一起。 随着无人驾驶汽车在公路上成为现实,汽车系统可能会需要使用这些技术。 汽车和工业应用必须分别遵守国际可靠性标准 ISO26262和 IEC61508,幸运的是,新一代“安全”控制器将使工程师能够产生符合这些标准的设计。
赞 发表评论联系客服