2.10 FMEDA——器件级的失效分析
场景
下午三点。你的办公桌上摊着一份47行的Excel表格,每一个格子都填满了数字、百分比和缩写。空调的出风口正好对着你的脖子,但你没心思去调。你在盯着第23行的那颗CAN收发器,它的“残余故障“那一列,数字是红色的。
你的硬件工程师同事下午跟你说:“这收发器我们从三家供应商选,A家的MTBF最长。“他很得意,因为A家的数据手册上,MTBF赫然写着1,200,000小时:听着很安心,对吧?
但你心里清楚,MTBF是可靠性概念,而你要算的是安全。
你把A家数据手册翻到可靠性章节,找到FIT值:822 FIT。意思是在10⁹小时内,这颗器件平均会失效822次。然后你打电话给供应商,问了一个他们技术支持沉默了三秒的问题:
“这颗CAN收发器如果失效,它以什么方式失效?短路的概率是多少?开路的概率是多少?参数漂移的概率是多少?”
沉默之后,对方说:“这个……我们需要和研发确认。”
你知道,这就是FMEDA的起点:也是大部分工程师从“功能安全入门“变成“功能安全入门到放弃“的分水岭。
FMEDA是什么
FMEDA,全称Failure Mode, Effects and Diagnostic Analysis,失效模式、影响与诊断覆盖率分析。ISO 26262 Part 5第7.4.3节对它提出了明确要求:对所有ASIL等级的安全相关硬件要素,必须进行归纳分析(inductive analysis,也即FMEA),对ASIL C和D等级,强烈推荐辅以演绎分析(deductive analysis,也即FTA:故障树分析)。
先讲“归纳“和“演绎“的区别,因为这两个词会反复出现,而很多工程师用了三年也说不清区别。
归纳分析(FMEA):从底层器件失效出发,自下而上,问“如果这个电阻开路,系统会发生什么?“
演绎分析(FTA):从顶层危害出发,自上而下,问“导致非预期转向力矩的底层原因有哪些?“
免疫系统同时使用了这两种策略。先天免疫是归纳式的:巨噬细胞遇到什么病原体就吞什么,不管它是哪来的。适应性免疫是演绎式的:先识别出“这玩意不该出现在血液里“,然后追溯抗体,反向推导它是什么抗原。这两种策略互为补充,缺一不可。
FMEDA站在归纳分析这一边,但它的特殊之处在于。它不止于定性分析,它是一门定量手艺。
回到你的CAN收发器
我们以CAN收发器为例,一步一步走完FMEDA的工作流程。
Step 1:获取失效率和失效模式分布
CAN收发器是一个混合信号器件。你从供应商处(或行业标准,如IEC TR 62380、SN 29500)获取它的失效率λ。假设λ = 822 FIT。
接下来,你需要知道这颗器件的失效模式分布(Failure Mode Distribution, DFM)。ISO 26262-5 Annex D给出了常见器件类型的失效模式参考分布。对于“通信接口类“器件,典型的分布可能是:
| 失效模式 | 分布比例 (DFM) |
|---|---|
| 输出固定为高(短路到VCC) | 25% |
| 输出固定为低(短路到GND) | 20% |
| 开路(高阻态) | 25% |
| 参数漂移(时序偏差、斜率异常) | 15% |
| 对地泄漏 | 8% |
| 上电复位失效 | 5% |
| 其他 | 2% |
注意:这里的百分比不是拍脑袋拍出来的。 它们来自三个来源:(1)器件制造商基于加速寿命试验和失效分析的内部数据;(2)行业标准数据库(如SN 29500、IEC TR 62380)中的失效模式分布建议;(3)对相同器件族的历史现场失效数据进行统计回归。如果你不得不使用默认值(工程判断),需要在安全档案中给出充分理由,这就是ISO 26262-10中“已验证的使用论证“的范畴。
Step 2:对每种失效模式评估对安全目标的影响
现在你逐行思考:如果在CAN总线上,收发器的输出固定为高(短路到VCC),对你的安全目标有什么影响?
假设你的安全目标是“防止非预期转向“。CAN收发器短路到高电平意味着它永远在发送显性位,整条总线被锁死。其他节点无法通信。EPS(电动助力转向)控制器收不到车速信号和方向盘转角校验信号。
这属于什么?ISO 26262-1定义了一个关键概念:单点故障(Single Point Fault, SPF):一个故障直接导致安全目标被违反,并且这个故障没有被任何安全机制覆盖。
如果CAN短路到高导致总线锁死,而你的EPS控制器没有检测到“CAN通信丢失“并进入安全状态,那这就是一个单点故障。
但假设你设计了一个安全机制:当EPS控制器在100ms内未收到任何有效CAN报文时,自动将助力降为零(limp-home模式仅依赖本地角度传感器进行基本转向)。那么“CAN短路到高“这个失效模式不再直接违反安全目标。它被安全机制覆盖了。
Step 3:评估诊断覆盖率
诊断覆盖率(Diagnostic Coverage, DC)量化了安全机制对故障的检测能力。ISO 26262-5 Annex D提供了一个诊断覆盖率确定参考表,你对照着评估:
- 如果CAN发送超时通过看门狗超时检测:DC可能被评估为“中“(90%)。
- 如果CAN接收端实现了帧计数器、CRC校验错和超时三重检测:DC可能被评估为“高“(99%)。
- 如果完全没有检测:DC = 0%。
你为“CAN通信丢失“安全机制分配了DC = 99%。这意味着:
- 99%的“CAN短路到高“故障能被及时检测出来,系统进入安全状态。
- 剩余的1%被称为残余故障(Residual Fault):故障发生了,但安全机制没能检测到它。
这一步之后,原来的单点故障被拆分成了“被覆盖的部分“和“残余故障“两部分。只有“未覆盖“的部分进入SPFM(单点故障度量)的分子。
Step 4:区分残余故障和潜伏故障
这是最容易被混淆的一对概念,也是功能安全面试的高频考点。
残余故障(Residual Fault):故障发生在被安全机制监控的功能上,但安全机制未能检测到的那一小部分。上面的CAN案例,1%就是残余故障。
潜伏故障(Latent Fault):故障不是发生在功能上,而是发生在安全机制本身。
比如,你用来检测CAN通信丢失的那个看门狗定时器,它自身也会失效。如果看门狗静默失效了,而CAN通信正常,你不会发现任何异常:看门狗的故障“潜伏“在那里,直到有一天CAN真的出问题,看门狗却无法触发安全状态。
ISO 26262-5第7.4.3.2节和第7.4.3.4节明确要求:对每一个安全相关的硬件要素,不仅要评估对安全目标的残余故障,还要识别和评估安全机制的潜伏故障。你必须评估这两个诊断覆盖率:对残余故障的和对潜伏故障的。
Step 5:多点故障探测时间间隔与故障容错时间间隔
多了两个令人头疼的缩写:MPFDI(Multiple-Point Fault Detection Interval)与FTTI(Fault Tolerant Time Interval)。
FTTI是时间预算的上限:从故障发生到可能产生危害的最短时间。如果你的EPS系统在CAN通信丢失后500ms就可能造成车辆偏离车道,那FTTI就是500ms。你的安全机制必须在这个窗口内检测到故障并进入安全状态。
MPFDI是安全机制的自检间隔。看门狗不会每一纳秒检查一次。它有一个巡检周期。这个周期必须显著小于FTTI,否则等你发现的时候,危害已经发生了。
对应到免疫系统:伤口感染细菌后,如果你在一小时内消毒,可以阻止全身感染。这就是FTTI。免疫系统每几分钟就在血液中巡逻一圈。这就是MPFDI。
FMEDA如何喂给SPFM、LFM和PMHF
做完FMEDA后,你把所有故障按照ISO 26262-5第8章的故障分类汇总:
- λ_SPF = 所有单点故障的失效率之和(没有被任何安全机制覆盖的故障)
- λ_RF = 所有残余故障的失效率之和(被覆盖了但没完全覆盖住的)
- λ_MPF,L = 所有潜伏故障的失效率之和(安全机制自身的故障,潜伏在那里的)
- λ_MPF,DP = 被检测到的或可感知的多点故障(detected/perceived)
然后进入到你真正要交的作业:三个硬件架构度量:
SPFM(单点故障度量) = 1 - (λ_SPF + λ_RF) / λ_total
SPFM衡量的是:在所有失效中,有多大比例的单点/残余故障被安全机制覆盖。ASIL B要求≥90%,ASIL C要求≥97%,ASIL D要求≥99%。
LFM(潜伏故障度量) = 1 - λ_MPF,L / (λ_total - λ_SPF - λ_RF)
LFM衡量的是:去除单点和残余故障后的剩余失效中,潜伏故障的比例有多低。ASIL B要求≥60%,ASIL C要求≥80%,ASIL D要求≥90%。
PMHF(随机硬件失效概率度量) = λ_SPF + λ_RF + λ_MPF,L
PMHF将上述三类不能被容忍的故障的失效率直接相加,得到一个整体的每小时失效概率。ASIL D的上限是10^(-8)/h,也就是10 FIT。
SPFM、LFM、PMHF这三个数字,不是Safety Manager在Excel里敲一个公式就算出来的。它们是从47行、每一行的每一种失效模式、每一个安全机制覆盖评估中,经过系统汇总得到的。
本篇小结
- FMEDA从器件级拆解每一种失效模式:开路、短路、漂移、stuck-at,每一种都有各自的故障类型和安全影响
- 区分安全故障(不会导致安全目标违背)和危险故障(可能违背安全目标)
- 诊断覆盖率衡量你为每种危险故障设计的安全机制的有效性
- SPFM、LFM、PMHF三个硬件度量指标全部来源于FMEDA的基础数据:47行每一行的失效模式分布和诊断覆盖评估
- FMEDA的准确性不取决于Excel公式,取决于每种失效模式的占比数据来源是否可靠> 【下集预告】:
FMEDA把每个元器件的失效模式都查清楚了,但一个更深层的问题浮出水面:你的ASIL D转向任务和QM级信息娱乐任务共享同一颗MCU。如果蓝牙模块的一个野指针恰好写进了扭矩计算变量的地址……你的FMEDA表里可没有这一行。下一节讲FFI——你的MCU上的血脑屏障,如何在硬件层面阻止一个QM任务污染ASIL D的数据。