一、ASIL等级详解:从A到D的安全分级

大家好,我是这次课程的主讲工程师。今天我们来聊聊ASIL等级——这个ISO26262里最核心的概念之一。

说实话,我刚接触功能安全那会儿,也被ASIL A/B/C/D搞得有点晕。后来做了几个项目才明白,这玩意儿说白了就是给系统的风险程度打分。你想想看,一个车窗升降电机和一个刹车系统的安全要求能一样吗?肯定不一样。

1.1 ASIL等级的定义

ASIL,全称Automotive Safety Integrity Level,汽车安全完整性等级。它分为四个等级:

  • ASIL A:最低安全等级
  • ASIL B:中等安全等级
  • ASIL C:较高安全等级
  • ASIL D:最高安全等级

还有一个QM(Quality Management),意思是仅需质量管理,不需要额外安全措施。比如车载娱乐系统,一般就是QM。

核心要点:ASIL等级越高,系统失效导致的风险越大,需要的安全措施就越严格。

我在项目中遇到过一件事:有个客户非要把一个ASIL D的功能拆成两个ASIL B来做,结果评审时被安全专家怼回去了。为什么?因为分解不是随便分的,有严格的规则。

1.2 危害分析与风险评估(HARA)

HARA是确定ASIL等级的核心方法。说白了,就是先找出系统可能出什么故障,然后评估这个故障会造成多严重的后果。

HARA主要评估三个参数:

参数 英文 含义
严重度(S) Severity 对人员伤害的严重程度
暴露率(E) Exposure 危险场景发生的概率
可控性(C) Controllability 驾驶员能否避免危险

每个参数分0-3四个等级。然后查表得出ASIL等级:

S E C ASIL
0 任意 任意 QM
1 1 1 QM
2 2 2 ASIL B
3 3 3 ASIL D

举个例子:刹车系统失效,S=3(可能致命),E=3(经常发生),C=3(驾驶员很难控制),查表就是ASIL D。

个人经验:做HARA时,我建议把场景想得越具体越好。比如"刹车失效"太笼统,要细化成"高速行驶时刹车助力突然消失"这样的具体场景。

1.3 ASIL分解与冗余设计

ASIL分解,就是把一个高等级的安全需求,拆成多个低等级的需求来实现。比如ASIL D可以分解成:

  • ASIL D(D) = ASIL C(D) + ASIL A(D)
  • ASIL D(D) = ASIL B(D) + ASIL B(D)
  • ASIL D(D) = ASIL D(D) + ASIL A(D)(这个不推荐)

注意括号里的(D)表示"分解"的意思,不是等级。

为什么要分解?说白了就是为了降低成本。ASIL D的硬件开发成本可能是ASIL B的3-5倍。如果能用两个ASIL B的芯片实现同样的功能,成本就降下来了。

避坑指南:我曾经犯过一个错误——把ASIL D分解成ASIL A + ASIL A + ASIL A。结果评审时被指出:分解后的两个部分必须相互独立,否则不能算有效分解。三个ASIL A互相依赖,跟没分解一样。

冗余设计是ASIL分解的常见实现方式。比如:

  • 双通道冗余:两个独立的计算通道,互相校验
  • 三模冗余:三个通道,多数表决
  • 异构冗余:用不同的硬件/软件实现相同功能

我个人的习惯是:能用双通道就别用三模,成本太高。除非是转向、刹车这种安全关键系统,才考虑三模冗余。

1.4 实际项目中的ASIL分配

嗯,这里要特别说一下。很多新手以为ASIL等级是拍脑袋定的,其实不是。它必须通过HARA分析得出,而且要有文档记录。

我参与过一个ADAS项目,最初团队把自动紧急制动(AEB)定为ASIL B。结果HARA一做,发现高速场景下S=3、E=2、C=2,查表是ASIL C。最后不得不重新设计架构,增加了冗余传感器和独立计算单元。

所以我的建议是:别在ASIL等级上省钱。该是D就是D,硬降级只会让后续的验证工作更痛苦。

关键总结

  • ASIL等级由HARA分析得出,不是拍脑袋
  • 分解要满足独立性要求
  • 冗余设计是常用手段,但要注意成本
  • 文档记录必须完整,这是审核重点

好了,这一章就到这里。下一章我们聊聊ASIL分解的具体实现——怎么用软件和硬件配合,达到安全目标。

课后思考:如果你设计一个电动助力转向系统,你会给它定什么ASIL等级?为什么?