1. ASIL 分解基础概念

各位同学,咱们今天聊 ASIL 分解。说实话,这玩意儿刚接触时我也觉得绕,但搞明白之后,你会发现它其实是功能安全里最实用的工具之一。

先问大家一个问题:你设计的系统如果要求 ASIL D,是不是所有模块都得按 ASIL D 来开发?

答案显然是否定的。否则成本谁也扛不住。我当年第一个功能安全项目,客户上来就说「整个系统 ASIL D」,吓得我差点转行。后来才知道,ASIL 分解就是用来解决这个问题的。

1.1 ASIL 等级定义

ISO 26262 把汽车安全完整性等级分成四级:A、B、C、D。D 最高,A 最低。

怎么定的?看三个参数:

  • 严重度(Severity)—— 出事了人伤得多重
  • 暴露概率(Exposure)—— 危险场景出现的频率
  • 可控性(Controllability)—— 驾驶员能不能躲开

三个参数一组合,ASIL 就出来了。具体对应关系我列个表:

ASIL 等级 典型场景 开发要求严格度
ASIL A 轻微不适,无重伤风险 最低
ASIL B 可恢复性伤害 中等
ASIL C 严重但可能存活 较高
ASIL D 致命性伤害,几乎必死 最高

核心记住一条:ASIL 不是拍脑袋定的,是 Hazard Analysis 和 Risk Assessment(HARA)分析出来的结果。我见过有人直接抄竞品的 ASIL 等级,结果审核时被问得哑口无言——千万别这么干。

1.2 ASIL 分解的目的与原则

说白了,ASIL 分解就是把一个高等级的安全目标,拆成几个低等级的需求,分配给不同的模块去实现。

为什么要拆?两个原因:

  1. 降成本——ASIL D 的开发成本是 ASIL B 的 3-5 倍,能拆就拆
  2. 复用现有模块——有些模块已经是 ASIL B 认证过的,直接拿来用

但拆归拆,原则不能丢:

  • 独立性原则——分解后的模块之间不能有共因失效
  • 充分性原则——分解后的 ASIL 之和必须覆盖原始 ASIL
  • 可追溯性原则——从安全目标到分解后的需求,链路必须清晰

注意:独立性是 ASIL 分解的命门。我曾经在一个项目中,两个分解后的模块用了同一个电源芯片,结果审核老师直接判定分解无效——共因失效没排除。那叫一个惨,整个安全案例重写。

1.3 分解的数学逻辑

这部分其实不复杂。ISO 26262 给出了一个核心公式:

ASIL D = ASIL C(D) + ASIL B(D)
ASIL C = ASIL B(C) + ASIL A(C)
ASIL B = ASIL A(B) + ASIL A(B)

括号里的字母表示该模块最终要达到的 ASIL 等级。举个例子:

一个 ASIL D 的安全目标,可以拆成:

  • 模块 A:承担 ASIL C 的分解需求,但自身开发按 ASIL D 要求做
  • 模块 B:承担 ASIL B 的分解需求,自身开发按 ASIL D 要求做

等等,这里容易混淆。我再说清楚点:

分解的是「安全需求」的 ASIL,不是「开发流程」的 ASIL。

两个模块都得按 ASIL D 的流程开发,但各自只承担一部分安全责任。你想想看,如果模块 A 按 ASIL C 开发,模块 B 按 ASIL B 开发,那合起来怎么可能达到 ASIL D?

我的习惯:做分解时,先画一张「安全需求分配表」,把每个安全目标拆成子需求,标清楚每个子需求的 ASIL 来源和最终归属。这样审核时一目了然,自己也不容易搞混。

1.4 分解的图形化表达

光说理论太干,我画张图帮大家理解:

ASIL 分解逻辑示意图 安全目标 ASIL D 分解为两个独立的安全需求 模块 A:ASIL C(D) 模块 B:ASIL B(D) 关键理解 • 两个模块都按 ASIL D 流程开发(括号外等级) • 各自承担不同的安全责任(括号内等级) • 模块之间必须独立,不能有共因失效

1.5 实际项目中的避坑指南

讲几个我踩过的坑,你们以后遇到了能绕开:

  • 别把分解当万能药——不是所有场景都能分解。比如两个模块共用同一个传感器,你怎么分解?传感器一坏,两个模块都完蛋。独立性不成立。
  • 分解后的 ASIL 不能低于 A——ISO 26262 规定,分解后的最低等级是 ASIL A。你不能说「ASIL D 拆成 ASIL D + QM」,QM 意味着没有安全要求,这不行。
  • 注意「级联分解」——ASIL D 可以拆成 C + B,C 还可以继续拆成 B + A。但每拆一次,你都得重新论证独立性。拆得越细,论证工作量越大。

我曾经犯过的错:在一个 EPS(电动助力转向)项目中,我把 ASIL D 的安全目标拆成了三个模块,每个模块 ASIL B。结果审核时发现,三个模块共用同一个 MCU 的 ADC 采样通道——共因失效。最后被迫改架构,多花了两个月。所以记住:分解前先做共因分析(CCA)。

1.6 小结

这一章咱们把 ASIL 分解的底子打好了。核心就三件事:

  • ASIL 等级怎么来的(HARA 分析)
  • 分解的目的是降成本和复用
  • 分解的数学逻辑是 ASIL D = ASIL C + ASIL B