3. ASIL分解的典型模式

好,咱们直接进入正题。ASIL分解这事儿,说白了就是把一个高安全等级的需求,拆成几个低等级的需求,分别交给不同的东西去实现。你想想看,一个ASIL D的系统,如果非要让一个零件扛下所有,那设计成本得多高?

我个人习惯,拿到一个安全目标后,第一件事就是看能不能做分解。能分解,后面就好办多了。下面这三种模式,是ISO 26262里明明白白写着的,也是我这些年用得最多的。

3.1 ASIL D → ASIL C(D) + ASIL B(D)

这是最经典的分解模式。一个ASIL D的要求,拆成一个ASIL C和一个ASIL B。注意看括号里的(D),它表示这两个子元素合在一起,仍然要满足ASIL D的完整性要求。

我在做EPS(电动助力转向)项目时,就遇到过这个场景。转向管柱扭矩传感器的安全目标是ASIL D。我跟架构师商量了一下,决定这么拆:

  • 主传感器路径:ASIL C(D) —— 负责主扭矩计算和故障检测
  • 冗余监控路径:ASIL B(D) —— 负责交叉校验和看门狗

两条路径独立开发,但最终在系统层面,它们合起来必须达到ASIL D的残余风险水平。嗯,这里要注意,不是简单地把C和B加起来就等于D,而是通过架构上的独立性,让两个通道的随机硬件失效率满足D的要求。

关键点:分解后的两个元素,必须相互独立。如果它们共享了同一个时钟源、同一个电源轨,或者软件上有共用变量,那独立性就打了折扣。我曾经吃过这个亏,后面会细说。

3.2 ASIL C → ASIL B(C) + ASIL A(C)

ASIL C的分解,在实际项目中也很常见。比如一个制动系统的轮速传感器,原始安全等级是ASIL C。我建议这么拆:

  • 主处理单元:ASIL B(C) —— 执行核心算法和故障响应
  • 诊断监控单元:ASIL A(C) —— 执行周期性自检和合理性检查

为什么这么分?因为ASIL A的开发成本低啊。你想想看,ASIL A对流程的要求宽松很多,工具链也便宜。把监控部分放在ASIL A上,能省不少钱。

我的经验:分解时,尽量把“简单、重复、可固化”的功能分给低等级的那一侧。比如CRC校验、超时检测、电压监控这些,ASIL A完全够用。别把复杂的控制逻辑塞进去,否则后面验证起来你会哭的。

3.3 ASIL B → ASIL A(B) + ASIL A(B)

ASIL B分解成两个ASIL A,这个模式最轻量。两个通道都是ASIL A,但合起来要满足ASIL B的完整性。

我记得有个车身控制模块的项目,车窗防夹功能的安全目标是ASIL B。我们当时用了两个独立的霍尔传感器,每个传感器通道按ASIL A(B)开发。两个通道的信号做“与”逻辑判断,只要一个通道报故障,系统就停止关窗。

原始等级 分解模式 典型应用场景 我见过的坑
ASIL D C(D) + B(D) EPS扭矩传感器、线控制动 两个通道共用PCB layout,导致共因失效
ASIL C B(C) + A(C) 轮速传感器、加速度计 ASIL A通道的覆盖率不够,合起来不达标
ASIL B A(B) + A(B) 车窗防夹、门锁控制 两个通道的故障模式重叠,冗余失效

避坑指南:我曾经在一个项目里,把ASIL B分解成两个ASIL A,结果两个通道用的都是同一个供应商的同一个型号的芯片。后来FMEA一分析,发现芯片内部有个共同的失效模式——电源纹波过大时,两个通道会同时输出错误信号。这就是典型的共因失效,分解白做了。所以,分解不只是分等级,还要分物理、分电气、分时序。

3.4 分解的核心逻辑:独立性

上面三种模式,看着是数字游戏,其实核心就四个字:相互独立。没有独立性,分解就是一张废纸。

我一般用下面这张图来跟团队讲清楚分解的逻辑:

ASIL分解核心逻辑 原始 ASIL 等级 分解原则:功能冗余 + 相互独立 子元素 1 子元素 2 ASIL C(D) / B(C) / A(B) ASIL B(D) / A(C) / A(B) 组合满足原始等级 关键约束 1. 无共因失效 2. 无级联失效

你看这张图,从上到下,原始等级分解成两个子元素,每个子元素有自己的安全等级,最后组合起来要能覆盖原始等级的要求。中间那个“分解原则”框,是我特别强调的——功能冗余和相互独立,缺一不可。

3.5 分解后的验证要点

分解完了,不是万事大吉。你得验证两个东西:

  1. 独立性验证:两个通道之间有没有共享的硬件、软件、数据?有没有共因失效的可能性?
  2. 覆盖率验证:两个通道合起来,能不能覆盖原始ASIL等级要求的故障覆盖率?

我建议在安全案例里,专门开一节“分解合理性论证”,把上面两个验证的结果写清楚。否则审核员一问,你支支吾吾说不清楚,那就麻烦了。

总结一下:ASIL分解不是偷懒,是工程智慧。用好了,成本降一半,设计还更清晰。用不好,就是给自己挖坑。记住三个模式,记住独立性,记住验证。这三板斧砍下去,大部分分解场景都能搞定。