什么是冗余?讲解双重模块化冗余(DMR)或三次模块化冗余(TMR)

电子说

1.3w人已加入

描述

用于提高可靠性的关键电路的双工,三重甚至四重冗余技术已经存在了很长时间。自然,如此设计的第一个系统是用于军事航空航天应用的,因为冗余很昂贵。它使飞机可以通过计算机安全地飞行,这是一种称为“ 电传飞行”的技术,从而使飞机的性能超出了人类飞行员的能力范围。 1960年代的Apollo Saturn V火箭制导计算机具有三重冗余,这可能是其在极端发射条件下令人难以置信的可靠性的原因。为了防止不安全操作而使用相同或重复的相同电路模块称为双重模块化冗余(DMR)或三次模块化冗余(TMR)。

传感器冗余

我们可以请参见图1中的传感器DMR和TMR操作的基础知识。大多数现代芯片传感器都具有串行数字输出(例如UART,SPI或I²C总线),因此用于比较每个数据的表决逻辑设备可能是小型,低功耗的微控制器。模块化冗余是一种传感器融合技术,旨在提高系统的可靠性。以DMR形式,它可以检测到严重故障并允许系统受控关闭。换句话说,它可以提高“故障保护” 方案的可能性。 TMR引入了单个“容错” 的概念,直到第二个传感器出现故障时才中断服务。在每种情况下,都不会以任何方式合并或处理来自每个传感器的数据,只是将它们进行身份比较,从而允许实际组件之间的输出发生细微的变化。

华强PCB

传感器重复(a)或重复三次(b),而投票筹码则不是,现在变成'单点故障危险(SPF)。可以通过添加冗余的表决逻辑来解决此问题,但是在进行所有麻烦之前,有必要比较制造商提供的传感器和表决芯片的故障率。例如,Microchip为大多数微控制器提供了平均故障时间(MTTF)统计信息。传感器在正常操作中通常会承受很高的压力,因此MTTF的值极有可能比投票芯片小得多。在计算系统故障率时,投票逻辑的贡献可能经常被低估。

处理器冗余的发展

在嵌入式控制系统中,传感器输入数据将通过某种方式进行处理。在微控制器上运行的算法的流程图,微控制器产生用于驱动致动器和显示器的输出数据。该微控制器(MCU)具有严重的SPF危害,并且在用于安全关键型应用中时,将需要合并冗余电路。

具有冗余功能的线控飞行系统自Saturn V出现以来就已经存在。从1988年的空客A320开始,是1960年代的火箭,以及最近在民用飞机上使用的火箭。冗余系统代表了非常重大的额外投资,不仅在物理硬件上,而且更重要的是,工程师在设计电路时必须投入大量时间,以使其有效运行。实现成功完成任务的目标。该目标适用于有人值守和无人值守任务,但包括在涉及人员的情况下对安全性的假设。数十年来,成功完成任务的要求没有改变,冗余的概念也没有。发生的变化是最可能的故障条件(硬性或瞬态)以及每种情况的可能故障率。现代芯片比以前更不容易发生硬故障,但其密度更高的技术更容易因杂散(宇宙)粒子而引起临时故障。

TMR和容错

经典TMR涉及运行相同代码的相同处理器一式三份,将它们的输出数据通过比较器逻辑传递,以确认这三个处理器均产生相同的结果。也就是说,可以正常运行而不会出错(图2)。如果一个处理器“犯了一个错误”,则可以忽略它的输出,因为其他两个处理器将达成一致,并且它们的输出将通过“多数表决”正确地通过。之所以称为 fault masking (故障屏蔽),是因为在其余处理器不同意之前,可以不间断地继续安全运行。据说该系统是 Fault Tolerant (容错),因为单个瞬态或硬故障不会中断输出数据流。非常适合实时控制应用。但是,这样的系统不一定能保护您免受相同处理器的设计缺陷或每个处理器上运行的相同程序代码中的错误的影响。

华强PCB

每个处理器可以从单个非冗余传感器接收相同的输入数据,如图所示,尽管更好的主意是也使用冗余传感器,如图1所示。这种形式的TMR的缺点是比较器逻辑和确保“正确”数据应用于最终输出所需的电路的复杂性。检查电路可能也必须一式三份,这并不容易。这是有关该主题的最新论文。

DMR和故障恢复

大多数实际的安全系统设计人员都会通过牺牲 Fault Recoverable来解决容错TMR的复杂性。 DMR配置。用于控制空中客车A320客机上的飞行表面(电梯,方向舵等)的各种计算机均由两个相互交叉检查的独立处理器组成。任何故障都会导致关机,并将功能转移到另一台计算机。这些计算机中有五台巧妙地互连在一起,驱动冗余执行器。一种故障对飞机性能没有影响。如果发生更多故障,性能将下降,直至一无所获,保留了对电梯的控制,再加上冗余的舵系统,飞机就可以安全转向和降落。有关A320冗余飞行控制系统的更多详细信息,请阅读此技术说明。

不相似

A320上解决了具有相同软件且产生相同错误答案的相同计算机的问题。介绍不相似的概念。五台计算机中的三台均基于一对Intel 80186 16位微处理器。另外两个包含Motorola 68010 16/32bit单元。单独的承包商设计,构建和编程每种类型:唯一的共性是冗余的外部总线接口及其协议。安全并不便宜。

安全微控制器和“锁步”

硅技术的进步导致具有多个“核心”的处理器芯片极大地提高了性能或吞吐量。多核设备不包含冗余,仅包含真正并行运行多个不同程序的能力。如今,无人驾驶机器的概念似乎已成为现实,例如无人驾驶汽车甚至整个制造工厂。自然,安全已成为一个非常大的问题。幸运的是,已经创建了管理自主产品的设计和安全认证的标准:用于一般工业控制的IEC 61508和用于汽车应用的ISO 26262。芯片制造商已经对新型设备做出了回应:安全微控制器。这些新设备大多数都基于DMR原理,但有一些额外的变化。两个处理器内核运行相同的程序,但是一个或多个时钟周期彼此不同步(图3)。为了错误检测的目的,重新调整了输出。

华强PCB

两个处理器之间的固定延迟确保了不会同时检测到同时影响两个内核的某些瞬态情况。据说这些内核在“ Lockstep ”中运行。包括更多的冗余以处理翻转的存储位(纠错码或ECC逻辑)和通信通道上的翻转位(循环冗余码或CRC检查)。然后是内置自测(BIST)逻辑,只要检测到核心数据不匹配,就会激活该逻辑。如果没有发现硬故障,则可以通过完全重置来实现瞬态故障恢复。不仅如此:该芯片的布局可最大程度地减少两个内核共有的错误。图3显示了德州仪器为其Hercules TMS570系列产品采取的一些措施。这些措施包括将两个内核相互之间以90°的最小间距布置为100μm。

其他锁步安全微控制器的示例包括Infineon的AURIX,STMicro的SPC5和NXP的S32S24。

人工智能和冗余系统

处理器冗余可能在克服安全关键系统中采用AI的主要障碍方面很有用。问题在于,除非非常仔细地选择“教学”图像,否则用于对象识别的深度学习会受到无意间的偏见。您可以想象这会导致无人驾驶汽车的视觉系统犯下灾难性错误。一种可能的解决方案是使用三重系统,其中,汽车上运行的每个“推理引擎”都使用从不同图像集创建的不同数据集来工作。很有可能至少有两个处理器可以同时正确处理它!

满圈

这些锁步设备可以检测到瞬时核心故障,进行测试并完全重置后,将处理器恢复到完全运行状态。如果您需要像Saturn V火箭计算机这样的完全容错功能,那么多亏了欧洲航天局,您就可以拥有它。他们创立了LEON系列容错内核,这些内核可以处理大多数单事件翻转(由于宇宙粒子的撞击而不会中断服务)。

冗余(应)保存生活

最近发生的埃塞俄比亚航空公司EA302航班坠机事件涉及最新版本的波音737客机,突显了设计上的微小变化会导致灾难。所有现代客机均具有广泛的冗余安全系统,通常以座舱中“重复的”飞行员为基础。复制的飞行传感器为复制的飞行控制计算机提供数据,并显示在驾驶舱的每一侧。计算机之间会进行交叉核对,以确认有效的传感器数据,并作为最后的备份,飞行员可以俯身比较彼此的读数。新型737 Max的问题在于,增加了一个称为MCAS的附加系统,以在起飞过程中施加全部发动机功率时,对可能的失速情况提供附加警告。鼻子趋于“后仰”,就像摩托车表演“助步车”一样。 737 Max需要此预警系统,因为其更大的发动机安装在更高的位置并向前行驶会对原始设计的空气动力学产生负面影响。

新的预警系统仅监视两个攻击角之一( AOA)传感器–鉴于其古老的机械“风向标”格式,这种错误是不可靠的。在航班302上,被监视的AOA突然以新MCAS系统只能解释为猛烈的鼻子俯仰的角度卡住。如果连接了另一个冗余AOA,将发出AOA异议警告,然后飞行员可以禁用MCAS。确实,一个经过适当设计的冗余系统也可以使用皮托管传感器和加速度计中的信息作为健全性检查。由于没有冗余,故障传感器使MCAS认为即将发生失速,并将飞行员的控制柱向右推。另一个致命的设计缺陷是假定任何失速情况都是由于飞行员错误造成的:MCAS迫使操纵杆向前,而飞行员没有力量将其拉回。制造商可能已提出AOA异议警告-作为“可选附加项”。在这种情况下,更多的机器冗余可能节省了一天的时间。让人类飞行员有效地“冗余”会导致灾难。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分