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 分解就是把一个高等级的安全目标,拆成几个低等级的需求,分配给不同的模块去实现。
为什么要拆?两个原因:
- 降成本——ASIL D 的开发成本是 ASIL B 的 3-5 倍,能拆就拆
- 复用现有模块——有些模块已经是 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 分解的图形化表达
光说理论太干,我画张图帮大家理解:
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