故障模型与失效模式:随机硬件故障、系统性故障、永久故障、瞬态故障的定义,以及单点故障、多点故障、潜伏故障的区分

在功能安全(Functional Safety,FuSa)工程实践中,对故障的精准分类与建模是整个安全生命周期(Safety Lifecycle)的基石。无论是ISO 26262(道路车辆功能安全)还是IEC 61508(电气/电子/可编程电子安全相关系统的功能安全),都要求工程师在概念阶段和系统设计阶段就明确“系统可能以何种方式失效”,并据此推导出安全目标(Safety Goal)与安全要求。如果对故障模型的理解出现偏差,后续的硬件指标计算(如SPFM、LFM、PMHF)、安全机制设计以及诊断覆盖率评估都将失去依据。本章将系统梳理随机硬件故障与系统性故障的本质差异,剖析永久故障与瞬态故障的物理特性,并深入辨析单点故障、多点故障与潜伏故障在安全分析中的不同处置逻辑。

故障模型与失效模式分类总览 故障来源 Fault Source 随机硬件故障 Random Hardware Fault 系统性故障 Systematic Fault 永久故障 Permanent 瞬态故障 Transient 单点故障 Single-Point Fault 直接违反安全目标 多点故障 Multi-Point Fault 需组合才违反安全目标 潜伏故障 Latent Fault 未被安全机制检测到 系统性故障特征 • 设计/制造/操作缺陷 • 确定性、可复现 • 通过过程改进消除 • 不适用随机失效率计算 • 需安全文化+流程管控 例:软件逻辑错误、时序冲突 诊断覆盖率(DC)与安全机制(SM)的设计目标:降低单点故障度量(SPFM)与潜伏故障度量(LFM) ISO 26262 Part 5 硬件架构指标

核心原理:故障、失效与差错的三层关系

在深入讨论具体故障类型之前,必须先厘清三个容易混淆的基础概念:故障(Fault)、差错(Error)与失效(Failure)。故障是物理层面或设计层面的缺陷,例如电阻开路、寄存器位翻转、软件代码中的逻辑错误;差错是故障被激活后在系统状态中呈现的异常,例如一个数据包校验失败、一个控制信号电平错误;失效则是差错传播到系统边界后,导致系统或功能无法按预期提供服务的结果,例如安全气囊在碰撞时未弹出。功能安全关注的核心是“故障→差错→失效”的因果链,而安全机制(Safety Mechanism)的设计目标就是在故障尚未导致失效之前将其检测、遏制或纠正。

从故障的来源与可预测性维度,ISO 26262将故障划分为两大类:随机硬件故障(Random Hardware Fault)与系统性故障(Systematic Fault)。随机硬件故障的发生在时间上具有概率性,其发生概率与硬件寿命、工作应力(温度、电压、辐射)相关,无法通过设计完全消除,只能通过诊断覆盖率(Diagnostic Coverage, DC)和硬件架构指标来量化控制。系统性故障则是由于设计缺陷、制造偏差、软件错误或操作不当等确定性原因引起的,只要条件满足就必然发生,其消除手段是过程改进、验证测试和审查,而非增加诊断覆盖率。

随机硬件故障:永久故障与瞬态故障

随机硬件故障按照其持续时间和可恢复性,进一步细分为永久故障(Permanent Fault)与瞬态故障(Transient Fault)。永久故障是指一旦发生便持续存在,直到通过维修或更换器件才能消除的故障。典型的永久故障包括:芯片引脚断路、焊点开裂、电解电容干涸、Flash存储单元击穿等。永久故障的物理机制通常是不可逆的材料退化或过应力损伤,其失效率随时间呈浴盆曲线(Bathtub Curve)特征,在寿命末期显著上升。在FMEDA(Failure Modes, Effects and Diagnostic Analysis)分析中,永久故障是计算SPFM和LFM的主要对象,因为安全机制必须在故障发生后的一个安全相关时间间隔(Fault Tolerant Time Interval, FTTI)内做出响应。

瞬态故障(又称软错误,Soft Error)是指由外部环境扰动(如α粒子、宇宙射线中子、电磁干扰)或内部噪声引起的暂时性异常,故障本身不造成硬件永久损伤,系统复位或重新写入后即可恢复正常。瞬态故障在深亚微米工艺下尤为突出,SRAM、触发器和组合逻辑中的单粒子翻转(Single Event Upset, SEU)是典型代表。瞬态故障的挑战在于其“来无影去无踪”的特性——故障发生时系统行为异常,但故障消失后现场无法复现,给故障定位和诊断带来极大困难。针对瞬态故障,常用的安全机制包括:ECC(Error Correction Code)内存校验、奇偶校验、双模块冗余(Dual-Modular Redundancy, DMR)、三模块冗余(TMR)以及软件层面的看门狗定时器(Watchdog Timer)和定期自检(Periodic Self-Test)。

对比维度 永久故障 瞬态故障
物理本质 不可逆损伤(断路、短路、击穿) 可逆扰动(粒子翻转、电磁干扰)
持续时间 持续存在直至维修 短暂存在,可自动恢复
失效率模型 浴盆曲线,寿命末期上升 与工艺节点、辐射环境强相关
典型安全机制 诊断覆盖+冗余替换 ECC、TMR、看门狗、重试机制
FMEDA处理方式 计入SPFM/LFM计算 需单独评估软错误率(SER)

系统性故障:设计缺陷的确定性失效

系统性故障与随机硬件故障的本质区别在于其确定性。系统性故障源于产品开发过程中的任何环节——需求定义错误、架构设计缺陷、软件编码错误、硬件原理图错误、PCB布局不当、制造工艺偏差、操作手册误导等。这类故障的特征是:在特定输入条件或环境条件下,故障必然发生,且每次发生的表现完全一致。例如,某MCU的ADC模块在采样率超过1MSPS时,由于内部电荷分配网络设计缺陷,转换结果始终存在2LSB的固定偏差——这就是一个典型的系统性故障。

系统性故障的应对策略与随机硬件故障截然不同。随机硬件故障通过“检测+冗余”来容忍,而系统性故障必须通过预防来消除。ISO 26262 Part 8(支持过程)和Part 6(软件层面)中规定了大量的流程要求:需求追踪性管理、设计评审、静态代码分析、单元测试、集成测试、硬件在环(HIL)测试、生产过程中的工艺验证(Process Validation)等。值得注意的是,系统性故障虽然不参与随机硬件失效率的量化计算,但在安全分析中必须被识别和记录。例如,在FMEA(Failure Mode and Effects Analysis)中,每个失效模式都需要标注其故障类型是“随机硬件”还是“系统性”,因为两者的后续措施完全不同——前者需要增加诊断覆盖率,后者需要修改设计或流程。

常见误区:许多工程师将“软件故障”等同于“系统性故障”,这并不完全准确。软件本身不存在随机硬件故障,但软件运行所依赖的硬件(如RAM、寄存器)可能发生随机硬件故障(包括永久和瞬态),而软件逻辑错误则属于系统性故障。在安全分析中,必须区分“硬件随机故障导致的软件异常行为”与“软件自身的设计缺陷”,两者的安全机制设计路径不同。

单点故障、多点故障与潜伏故障

在硬件架构层面,ISO 26262根据故障对安全目标的影响方式,将故障划分为单点故障(Single-Point Fault)、多点故障(Multi-Point Fault)和潜伏故障(Latent Fault)。这一分类直接决定了硬件架构指标的计算方法。

单点故障是指在没有其他独立故障存在的情况下,直接导致安全目标违反的故障。单点故障是安全设计中最危险的故障类型,因为没有任何安全机制能够在其发生时进行干预。例如,安全气囊的点火回路中,如果驱动MOSFET的栅极驱动芯片发生输出恒高故障,且该故障没有独立的诊断电路监控,那么一旦碰撞信号到来,气囊可能误触发或无法触发——这就是单点故障。在ISO 26262中,单点故障度量(SPFM)的目标就是衡量安全机制覆盖单点故障的能力,SPFM = 1 - (未被安全机制覆盖的单点故障失效率之和 / 所有单点故障失效率之和)。

多点故障是指需要多个独立故障同时或依次发生,才能导致安全目标违反的故障组合。多点故障中的每个单独故障本身不会立即造成危害,但它们的组合效应是危险的。例如,一个传感器信号调理电路中的运算放大器发生增益漂移(故障A),同时ADC的参考电压源发生缓慢漂移(故障B),两个故障单独存在时系统仍能工作,但叠加后导致测量值偏差超过安全阈值。多点故障的应对策略是:通过安全机制检测其中的一个或多个故障点,使得在第二个故障发生之前,系统能够进入安全状态。

潜伏故障是指已经发生但未被安全机制检测到,也未导致安全目标违反的故障。潜伏故障的特殊性在于其“隐蔽性”——故障已经存在,但系统表面运行正常,直到某个特定条件触发或另一个故障叠加时才暴露。例如,一个用于监控主电源电压的ADC通道,其输入滤波电阻发生开路,但该通道的监控功能仍在周期性执行,只是读数始终为0V(因为电阻开路导致输入被下拉到地)。如果系统没有对“ADC读数为0”这一异常状态进行合理性检查,那么这个电阻开路故障就是潜伏故障。潜伏故障度量(LFM)的计算公式为:LFM = 1 - (潜伏故障失效率之和 / (单点故障失效率 + 潜伏故障失效率))。

故障类型 定义 安全机制要求 量化指标
单点故障(SPF) 单独发生即违反安全目标 必须被安全机制覆盖或本身失效率极低 SPFM
残余故障(RF) 安全机制未覆盖的单点故障部分 需评估残余风险 SPFM(包含RF)
多点故障(MPF) 多个故障组合才违反安全目标 至少检测其中一个故障点 LFM(针对潜伏部分)
潜伏故障(LF) 已发生但未被检测到的故障 需通过诊断测试或定期检查发现 LFM

案例拆解:BMS电池管理系统中的故障分类实战

为了将上述概念融会贯通,我们以一个电动汽车BMS(Battery Management System)中的电压采样单元为例,进行完整的故障分类与安全机制设计演练。

背景与约束:某BMS的电压采样单元采用“电池单体电压→差分放大器→多路复用器(MUX)→12位ADC→MCU”的链路。安全目标为“电池单体电压采样误差不超过±50mV”,否则可能导致过充或过放,引发热失控。系统要求达到ASIL C等级,FTTI为100ms。

初始现象与目标:在FMEDA分析中,工程师需要识别该链路中的所有故障模式,并判断其类型。初始目标是计算SPFM和LFM,并确定需要设计哪些安全机制。

关键输入数据:假设差分放大器的输入偏置电阻R1(连接电池正极)的失效率为10 FIT(1 FIT = 1次失效/10^9小时),MUX的通道选择逻辑失效率为5 FIT,ADC的参考电压引脚内部ESD保护二极管漏电失效率为3 FIT,MCU内部RAM的软错误率为100 FIT/Mbit。

分析判断过程:

  1. R1开路故障:R1开路后,差分放大器的正输入端悬空,输出漂移到电源轨,导致采样值严重错误。该故障单独发生即违反安全目标(±50mV),且如果没有任何诊断机制,属于单点故障。需要设计诊断机制,例如周期性注入已知测试电压(BIST)或监控放大器输出是否在合理范围内。
  2. MUX通道选择寄存器发生SEU(瞬态故障):如果MUX的通道选择寄存器因中子辐射发生翻转,可能选中错误的通道,导致采样到相邻电池的电压。该故障是瞬态故障,且单独发生即违反安全目标,属于单点故障。安全机制可采用“通道选择后回读校验”或“连续两次采样一致性检查”。
  3. ADC参考电压缓慢漂移(永久故障):ADC的参考电压源(如带隙基准)因老化发生漂移,导致所有通道的采样值整体偏移。该故障单独发生时,如果偏移量未超过50mV,则不立即违反安全目标,但会降低系统裕量。该故障属于多点故障中的“潜在故障点”,需要与另一个故障(如电池电压真实变化)组合才可能违反安全目标。安全机制可采用“参考电压自校准”或“双参考源交叉校验”。
  4. MCU内部RAM的软错误:存储采样结果的RAM区域发生SEU,导致数据被篡改。该故障是瞬态故障,且单独发生即违反安全目标,属于单点故障。安全机制可采用ECC或CRC校验。

实际操作步骤与结果:基于上述分析,设计以下安全机制组合:① 差分放大器输出端增加窗口比较器(Window Comparator),检测输出是否超出正常电压范围(覆盖R1开路故障);② MUX通道选择采用“写后读回”校验(覆盖SEU);③ ADC参考电压采用双基准源,每次上电时进行交叉校准(覆盖参考漂移);④ 采样数据存储区采用ECC保护(覆盖RAM软错误)。经过FMEDA计算,SPFM从初始的78%提升至96.5%,LFM从82%提升至94.2%,满足ASIL C的硬件架构指标要求(SPFM≥97%,LFM≥90%)。

风险与代价:增加窗口比较器和双基准源导致BOM成本上升约0.8美元/通道,PCB面积增加约15mm²。此外,ECC保护需要额外的存储空间和计算周期,MCU负载率从45%提升至58%。在项目评审中,团队权衡了安全收益与成本,最终决定保留全部安全机制,但将窗口比较器的阈值从±60mV放宽至±80mV,以降低误报率。

复盘经验:本案例的关键教训是:故障分类不是静态的——同一个物理故障点,在不同的安全机制配置下,其分类会发生变化。例如,R1开路故障在未设计窗口比较器时是单点故障,但设计窗口比较器后,该故障被安全机制覆盖,转化为“被安全机制检测到的单点故障”,不再计入SPFM的分子。因此,FMEDA是一个迭代过程,安全机制的设计与故障分类相互影响。

总结复盘:故障模型与失效模式的正确理解是功能安全设计的“第一性原理”。随机硬件故障(永久/瞬态)是量化分析的对象,系统性故障是过程管控的对象;单点故障、多点故障与潜伏故障的分类决定了安全机制的设计优先级和硬件指标的计算方法。在实际项目中,建议工程师在概念阶段就建立故障分类清单,并在每次设计变更后重新审视故障类型,避免“分类漂移”导致安全分析失效。
经验提醒:在撰写FMEDA报告时,务必为每个故障模式明确标注“故障类型”(随机硬件/系统性)和“故障属性”(单点/多点/潜伏)。这不仅是审核要求,更是后续安全机制有效性评估的基础。对于瞬态故障,建议单独建立软错误率(SER)分析表,因为其物理机制和缓解措施与永久故障完全不同。