Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2.8 LFM与潜在故障——你的看门狗还活着吗?

下午三点,你的SPFM终于算到了99.2%,刚好跨过ASIL D的门槛。你端起咖啡杯准备庆祝,就在这时候,一个念头像电流一样击中了你:

“等等。那个外部看门狗芯片,它在我的FMEDA表里被标记为什么呢?”

你快速翻到那一行。看门狗芯片的总失效率λ_WDG = 15 FIT。如果它失效了(比如内部振荡器停振),而主MCU恰恰在那段时间运行正常:会发生什么?什么都没发生。 系统照常工作,没有告警,没有异常,一切平静得像深渊。这个失效不会被检测到,因为看门狗本来就是“潜伏的守护者“。它自己不出问题的时候你根本感觉不到它的存在。

然后,一周后的某个下午,主MCU因为电压瞬降导致程序跑飞。它应该被看门狗复位。但看门狗已经死了。两个独立故障:看门狗失效 + MCU跑飞:完美叠加,安全目标瞬时被击穿。

这个看门狗故障,就是潜伏故障(Latent Fault)。你的SPFM完全不会管它。因为SPFM只看“单步致命“的SPF和RF。而潜伏故障是“需要搭档才能致命“的多点故障中的一种。ISO 26262-5:2018为此单独设立了一个度量:LFM(Latent Fault Metric,潜在故障度量)

你默默把咖啡杯放下,重新打开FMEDA表格。活儿还远远没有干完。

一、潜伏故障:功能安全领域的“无症状携带者“

1.1 精确定义

ISO 26262-5:2018第7.4.3条对潜伏故障(Latent Fault)的分类定义如下:

Latent fault(潜伏故障):一种多点故障,其存在在规定的时间段内既没有被安全机制检测到,也没有被驾驶员感知到。

几个关键词需要拆解:

  • “多点故障”(Multiple-Point Fault):它本身单独存在时,不会导致安全目标违背。必须是与其他独立故障组合后才构成威胁。这一属性将它与SPF和RF从定义上区分开。
  • “规定的时间段”:多点故障检测间隔(MPFDI, Multiple-Point Fault Detection Interval)。ISO 26262-5要求在设计阶段确定MPFDI,并在LFM计算中体现(Clause 7.4.3.2)。典型的MPFDI是上电自检周期(每次上电)、驾驶循环启动时、或固定时间间隔(如每1小时自检一次)。
  • “既没有被安全机制检测到,也没有被驾驶员感知到”:如果安全机制在MPFDI内发现了这个故障,它就变成了“可检测的多点故障“(MPF_D);如果驾驶员自己能发现(比如功能明显异常),它就是“可感知的多点故障“(MPF_P)。只有完全瞒过系统和人的,才叫潜伏故障(MPF_L)。

1.2 潜伏故障的典型场景

你在实际设计中会遇到以下典型的潜伏故障场景:

硬件元素潜伏故障模式为什么它“潜伏“需要组合的故障
外部看门狗内部振荡器停振主MCU正常运行时根本不需要看门狗“出手“主MCU程序跑飞
冗余电源监控监控比较器失效主电源正常时,冗余通道不需要“发言“主电源掉电
ECC内存控制器单比特纠错的ECC逻辑故障内存没有bit-flip,ECC逻辑不需要纠错内存发生不可纠正的多比特错误
安全关断路径MOSFET关断路径的驱动晶体管开路正常工况不需要关断,MOSFET不动作出现需要紧急关断的故障
ADC参考电压监控监控比较器阈值漂移参考电压在正常范围内时,监控不会触发参考电压异常漂移,ADC测量失准

所有这些场景的共同特征:一个“平时一直在线但从不主动发言“的保护者,自身的失效无人知晓。 这完美对应了医学上的“无症状携带者(Asymptomatic Carrier)“:携带病原体,没有症状,正常生活,却随时可能传染给他人(组合另一个故障)引发重症。

二、LFM公式详解:精确到每一个FIT的潜伏风险

2.1 公式定义

ISO 26262-5:2018 Equation C.8(规范性附录):

$$LFM = 1 - \frac{\sum_{SR,HW}(\lambda_{MPF,L})}{\sum_{SR,HW}(\lambda - \lambda_{SPF} - \lambda_{RF})} = \frac{\sum_{SR,HW}(\lambda_{MPF,DP} + \lambda_S)}{\sum_{SR,HW}(\lambda - \lambda_{SPF} - \lambda_{RF})}$$

这个公式的构造逻辑非常精巧,我们逐项拆解:

分母:Σ_{SR,HW}(λ − λ_SPF − λ_RF)

  • 下标 SR,HW 表示只对安全相关硬件元素求和(Safety-Related Hardware)。
  • Σ_{SR,HW}(λ − λ_SPF − λ_RF) 等价于 Σ_{SR,HW}(λ_MPF + λ_S)。
  • 这是因为对每个安全相关硬件元素,λ = λ_SPF + λ_RF + λ_MPF + λ_S。
  • 所以分母恰恰等于 全部多点故障与安全故障的失效率之和
  • 换个角度理解:分母只包含那些“不是单步致命的“故障。SPF和RF已经从分母中排除了,因为LFM不关心它们:SPF和RF由SPFM负责。
  • 换个角度理解:分母只包含那些“不是单步致命的“故障。SPF和RF已经从分母中排除了,因为LFM不关心它们:SPF和RF由SPFM负责。

分子中的减数:Σ(λ_MPF,L,即所有潜伏多点故障的失效率之和)

  • 这是真正会“潜伏下来等待同伙“的那部分。
  • 注意:可检测多点故障(MPF_D)和可感知多点故障(MPF_P)不进入分子,因为它们已经被发现或觉察,不再是“潜伏“的了。

等价公式:Σ(λ_MPF,D + λ_MPF,P + λ_S) / Σ(λ_MPF + λ_S)

  • 分子是所有“不会潜伏“的良性成分:被检测到的多点故障、被驾驶员感知的多点故障、以及安全故障。
  • 这个视角更直观:在“所有非单点致命故障“中,有多大比例是不可潜伏的?

2.2 LFM与SPFM的对比:为什么LFM的阈值更低?

你可能会困惑:SPFM要求ASIL D达到99%,而LFM对同样的ASIL D只要求90%。差了9个百分点。为什么对“潜伏的看门狗“比对“直接的单点故障“更宽容?

答案有两个层面:

第一,后果不同。 SPF和RF本身就是“一步致命“的:发生即等于安全目标违背,后果是灾难性的。而MPF_L需要“等待另一个独立故障“才能造成违背。这种“条件触发“的性质降低了它在概率论上的瞬时危险性。统计上,两个独立事件的联合概率远低于单个事件。

第二,检测窗口不同。 SPF/RF发生到致灾之间可能只有毫秒级,来不及反应。而MPF_L有机会被MPFDI(多点故障检测间隔)捕捉:比如每次上电自检就能“唤醒“一批潜伏故障。这给了设计师一个额外的“安全网“。

所以LFM的目标阈值比SPFM低一档。这合乎工程直觉。但别掉以轻心:

ASIL等级LFM最低要求SPFM最低要求(对比)差距
ASIL B≥ 60%≥ 90%30个百分点
ASIL C≥ 80%≥ 97%17个百分点
ASIL D≥ 90%≥ 99%9个百分点

注意一个规律:ASIL等级越高,SPFM-LFM之间的差距越小。ASIL B差30个百分点,到了ASIL D只差9个百分点。这暗示:高ASIL系统中,潜伏故障的威胁被提升到了几乎和单点故障同等的关注程度。 因为系统的复杂度和潜在故障耦合路径随ASIL急剧增长。

三、LFM工作实例:算清楚你的看门狗风险

回到你的转向ECU。FMEDA表格中与安全目标相关的硬件故障分布如下(延续2.7节的例子):

故障类型符号数值(FIT)
单点故障λ_SPF2.3
残余故障λ_RF1.7
可检测多点故障λ_MPF,D18.0
可感知多点故障λ_MPF,P2.0
潜伏多点故障λ_MPF,L15.0
安全故障λ_S61.0
总失效率λ_total100.0

LFM计算:

第一步:计算分母

分母 = Σ(λ − λ_SPF − λ_RF) = Σ(λ_MPF + λ_S) = 18.0 + 2.0 + 15.0 + 61.0 = 96.0 FIT

第二步:分子中的减数

Σ(λ_MPF,L) = 15.0 FIT(三个看门狗相关硬件元素潜伏故障之和,包括外部看门狗芯片、窗口比较器、复位路径的MOSFET驱动电路)

第三步:代入公式

$$LFM = 1 - \frac{15.0}{96.0} = 1 - 0.15625 = 0.84375 \approx 84.4%$$

84.4%。对照ASIL D要求的≥90%,差了5.6个百分点。LFM未通过。

这意味着你在“非单点致命“的96 FIT失效空间里,有15 FIT的潜伏故障没有被任何手段检测到(包括上电自检、周期性诊断、驾驶员感知)。这15 FIT的潜伏故障就像15个正在睡觉的“内鬼“,随时可能被另一个独立故障激活。

3.1 如何提升LFM:三招对症下药

面对84.4%的LFM,你翻开那15 FIT的潜伏故障明细,开始逐个“清理“:

招数一:增加周期性自检(将MPF_L转化为MPF_D)

你的看门狗芯片现在只是在上电时做一次简单的“踢狗-回读“测试。如果看门狗在上电后运行时失效,它就变成了潜伏。改为**每个驾驶循环(或每1小时)**进行一次完整的看门狗功能自检:故意让看门狗超时,验证它能否正确产生复位。这需要额外的软件逻辑(故障注入触发),但能将看门狗的潜伏故障检测覆盖率从“无检测“提升到“中等覆盖“。

假设看门狗原始λ_MPF,L = 8.0 FIT,增加周期性自检后K_DC,MPF,L提升到90%:

  • 剩余潜伏部分 = 8.0 × (1 − 90%) = 0.8 FIT
  • 节省 = 8.0 − 0.8 = 7.2 FIT

招数二:增加硬件冗余监控(冗余路径比较)

对于电源监控比较器的潜伏失效,增加第二个独立电压参考源和比较器,并对两个比较器的输出做一致性检查(XOR逻辑)。如果两个电压监控结果不一致,触发告警。这可以将这个元器件的K_DC,MPF,L提升到“高“覆盖(99%),剩余潜伏部分不到0.1 FIT。

招数三:利用驾驶员感知通道(MPF_L转化为MPF_P)

对于某些故障场景,虽然安全机制本身没有捕获,但驾驶员在正常操作中能间接发现异常。例如,转向助力电机的电流传感器如果发生漂移故障但没有触发阈值检测,驾驶员可能在转向手感异常时通过仪表盘告警来间接“感知“。将这类场景合理标记为MPF_P而不是MPF_L,LFM就会上升。

假设你将其中2.5 FIT的潜伏故障重新评估为“可感知“,那么:

新的Σ(λ_MPF,L) = 15.0 − 7.2 − 0.9 − 2.5 = 4.4 FIT

$$LFM_{new} = 1 - \frac{4.4}{96.0} = 1 - 0.0458 = 0.9542 \approx 95.4%$$

95.4%,完全满足ASIL D的≥90%要求。你有充足的裕量通过审核。

四、多点故障检测间隔(MPFDI):LFM的时间维度

LFM的计算有一个隐含的时间假设:MPFDI必须足够短,短到在你认为“可接受“的时间内暴露潜伏故障。 ISO 26262-5:2018 Clause 6.4.8要求在设计阶段定义MPFDI,并在安全案例中说明其合理性。

MPFDI的选择直接影响LFM:不需要改变任何硬件,只需要缩短自检周期,就能提升LFM。但缩短MPFDI也有代价:

  • 上电自检时间增加:每次上电都跑一遍完整的自检序列,会延长系统初始化时间;
  • 运行中自检对安全功能的干扰:在执行自检期间,安全机制暂时退出。如果把看门狗“假踢“来测试它,那这一刻真正的故障反而不会被响应;
  • 软件复杂度增加:自检逻辑本身可能引入新的系统故障。

典型的MPFDI选择策略:

  • 低风险系统(ASIL B):每次上电自检 + 每隔几次驾驶循环运行中自检一次,MPFDI可能长达数十小时;
  • 中高风险系统(ASIL C/D):每次上电自检 + 每次驾驶循环开始时自检 + 运行中每1-2小时自检,MPFDI通常控制在数小时以内。

五、潜伏故障的诊断覆盖率

类比SPFM中我们讨论过的残余故障诊断覆盖率K_DC,RF,LFM对应的是对潜伏多点故障的诊断覆盖率K_DC,MPF,L

$$\lambda_{MPF,L} \leq \lambda \times \left(1 - \frac{K_{DC,MPF,L}}{100%}\right)$$

这里的覆盖率等级参照ISO 26262-5 Annex D,同样分为低(60%)、中(90%)、高(99%)三档。但要注意,SPFM和LFM的覆盖率是独立评估的

一个安全机制可能对残余故障有“高“覆盖率(比如Lockstep CPU核对主MCU的瞬态故障检测达到99%),但对它自己的潜伏故障却只有“低“覆盖率(Lockstep比较器本身的失效在主MCU正常时难以暴露)。这两个K_DC值都必须在FMEDA表格中单独记录。

六、免疫系统映射:潜伏故障是“无症状携带者“

潜伏故障在医学免疫学中的精确对应是无症状携带者(Asymptomatic Carrier)。这个比喻有深刻的对应关系:

功能安全概念免疫学对应说明
潜伏故障(MPF_L)无症状携带者个体携带病原体但无临床症状,正常社交生活,可传染他人
安全机制周期性自检定期体检/筛查在无症状阶段发现携带者,实施隔离/治疗
MPFDI(检测间隔)体检间隔检测越频繁,携带者被遗漏的时间窗口越短
可检测多点故障(MPF_D)已被筛查发现并隔离的携带者携带者已经从“无症状潜伏“转变为“已被监控“
可感知多点故障(MPF_P)已有轻微症状引起警觉低烧、乏力等非特异性症状促使个体就诊
组合后导致安全目标违背携带者+免疫受抑者接触 → 重症爆发潜伏结核携带者遇到HIV/AIDS患者
LFM人群无症状携带者检出率在全体携带人群中,有多大比例已经被筛查发现
LFM ≥ 90%90%的无症状携带者已被建档追踪剩下10%未检出者构成残余社区传播风险

这个映射揭示了LFM的深层逻辑:你不可能把所有“潜伏“都检出来(就像公共卫生领域不可能100%筛查无症状携带者),但你必须检出足够多,多到即使最坏情况下残留的潜伏故障与一个独立故障组合触发,其总概率仍低于可接受的风险阈值

而那个“可接受的风险阈值“的定量度量,就是我们下一节要讨论的PMHF:每小时平均失效概率。

本篇小结

  1. 潜伏故障(Latent Fault)是多点故障的一种:单独不致命,需与另一个独立故障组合
  2. LFM = 1 − Σ(λ_MPF,L) / Σ(λ − λ_SPF − λ_RF)
  3. ASIL B/C/D的LFM目标:≥60% / ≥80% / ≥90%
  4. 三大提升手段:增加周期性自检、增加硬件冗余监控、善用驾驶员感知
  5. MPFDI是LFM的时间维度

【下集预告】: SPFM说99%被覆盖了,LFM说95%被检出了,似乎万事大吉。但下一节问一个更根本的问题:所有这些百分比加起来后,你的车每小时发生一次致命失效的概率是多少?ASIL D要求这个数字小于10⁻⁸/h——相当于每11400年出一次错。问题是:你“测“不出这个数字,你只能“算“出来。这一节告诉你算的规则和底气在哪里。