参与D-FMEA 失效模式与影响分析,识别算法的潜在失效风险,按 ASIL D 等级要求设计算法的安全机制

32 次阅读

本文最后更新于 2026年6月18日。

在安全气囊系统中,ASIL D 是汽车功能安全(ISO 26262)的最高等级,意味着该系统一旦失效,极可能导致严重的人身伤害甚至死亡。

针对算法开发,参与 DFMEA(设计失效模式与影响分析) 并设计相应的 安全机制(Safety Mechanism) 是核心任务。以下是基于 ASIL D 等级的详细拆解:


1. 参与 DFMEA:识别算法失效风险

在算法开发初期,DFMEA 的目标是穷举“算法可能哪里出错”。对于气囊算法,核心失效模式主要分为两类:

A. 非预期起爆 (Inadvertent Deployment) —— 误爆

  • 失效原因: 传感器噪声干扰、算法逻辑缺陷(如误将路面冲击识别为碰撞)、RAM/ROM 位翻转。

  • 后果: 导致驾驶员惊吓失控或气囊直接击伤乘员。

  • 风险等级: ASIL D。

B. 该起爆时未起爆 (Non-deployment) —— 漏爆/晚爆

  • 失效原因: 计算资源耗尽导致任务超时、逻辑死循环、碰撞特征提取错误、阈值设定过高。

  • 后果: 碰撞时乘员得不到保护。

  • 风险等级: ASIL D。


2. ASIL D 等级下的安全机制设计

为了应对上述风险,算法必须设计“冗余”和“监控”机制。

核心机制一:双路径独立决策 (Independence of Paths)

这是防止误爆的最关键机制。算法内部通常分为 Main Path(主路径)Safing Path(安全路径)

  • 主路径 (Main Path): 负责复杂的特征提取、分类和点火时间计算。它追求“准”。

  • 安全路径 (Safing Path): 采用简单的逻辑(如原始加速度超过固定阈值)。它追求“稳”。

  • 与逻辑 (AND Gate): 只有当两条路径在同一个时间窗口内同时输出“起爆”信号,硬件驱动电路(Squib Driver)才会通电。

核心机制二:程序流监控 (Control Flow Monitoring)

为了防止代码跑飞或陷入死循环(导致漏爆):

  • 看门狗 (Window Watchdog): 算法必须在规定的时间窗口内“喂狗”。如果计算超时,系统会强制复位。

  • 逻辑检查点: 在算法的关键步骤(如信号滤波后、阈值比较前)设置检查点,确保代码按预定顺序执行。

核心机制三:数据完整性保护 (Data Integrity)

针对硬件随机失效(如内存高能粒子翻转):

  • 变量冗余存储: 关键标志位(如 Ignition_Flag)在内存中同时存储原码和反码,使用前进行校验。

  • CRC 校验: 对存储在 Flash 中的算法标定参数进行实时循环校验,防止参数偏移。


3. 典型的 ASIL D 算法安全架构示例

安全需求 安全机制 (Safety Mechanism) 实现手段
防止算法逻辑单点失效 异构冗余 (Heterogeneous Redundancy) 主路径用积分算法,安全路径用简单的加速度门限。
防止传感器信号异常 信号一致性检查 对比加速度计(G-Sensor)和压力传感器(P-Sensor)的信号趋势。
防止 CPU 计算错误 锁步核 (Lock-step Core) 硬件层面两个核同步运行并实时比对结果。
防止非法标定数据 范围检查 (Range Check) 在算法入口处对输入信号和标定值进行有效范围限定。

4. 开发流程中的 ASIL D 合规要点

  • 代码覆盖率: 必须达到 100% MC/DC 覆盖率。这意味着你不仅要跑通所有逻辑分支,还要证明每个判断条件都能独立影响输出。

  • 静态分析: 强制遵循 MISRA C 编程规范,消除所有不安全的代码实践。

  • 故障注入测试 (Fault Injection): 在 HIL 环境中人为注入内存错误、传感器断路等故障,验证算法的安全机制能否正确捕获这些异常。