本文最后更新于 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 环境中人为注入内存错误、传感器断路等故障,验证算法的安全机制能否正确捕获这些异常。