2. ASIL等级确定:危害分析与风险评估(HARA)

好,咱们进入正题。ASIL等级怎么定?说白了,就靠一套叫HARA的方法论。HARA全称是Hazard Analysis and Risk Assessment,危害分析与风险评估。这是ISO 26262里最核心的起点,没有之一。

我见过不少团队,上来就拍脑袋说“这个功能得ASIL D”。为什么?因为觉得安全嘛,越高越好。但实际上一刀切ASIL D,成本翻倍、开发周期拉长,最后还不一定过得了评审。HARA就是用来解决这个问题的——用数据说话,而不是凭感觉。

2.1 HARA的核心三要素:S、E、C

ASIL等级由三个参数决定:

  • S(Severity):严重度。危害发生时,对人员造成的伤害程度。
  • E(Exposure):暴露概率。车辆在危险场景下运行的频率。
  • C(Controllability):可控性。驾驶员或其他人员能否避免伤害。

这三个参数组合起来,查表就能得到ASIL等级。我习惯把S、E、C称为“安全三剑客”,缺一不可。

核心公式:ASIL等级 = f(S, E, C)

每个参数分4级(QM、A、B、C、D),但QM不算ASIL,属于质量管理范畴。

2.2 严重度(S)分级

严重度看的是伤害程度。ISO 26262分了4档:

等级 描述 典型场景
S0 无伤害 轻微功能降级,不影响安全
S1 轻伤 碰撞后轻微擦伤、扭伤
S2 重伤 骨折、内出血,但可存活
S3 致命伤 死亡或不可逆重伤

这里有个坑。我遇到过团队把“车辆失控”直接定为S3,但仔细分析后发现,失控场景下如果车速很低(比如停车场),实际伤害可能只是S1。所以一定要结合具体场景,不能只看功能本身。

我的习惯:做S评级时,先问三个问题——

  1. 伤害对象是谁?(驾驶员?乘客?行人?)
  2. 伤害程度有多重?(可逆?不可逆?)
  3. 有没有防护措施?(安全带?气囊?)

2.3 暴露概率(E)分级

暴露概率看的是“危险场景出现的频率”。不是功能失效的概率,而是车辆处于危险场景中的概率。

等级 描述 典型场景
E0 几乎不暴露 车辆在封闭赛道测试
E1 低暴露 每年几次,比如雪地驾驶
E2 中暴露 每月几次,比如高速公路行驶
E3 高暴露 每次驾驶都可能遇到,比如城市拥堵
E4 极高暴露 几乎每次驾驶都遇到,比如倒车

举个例子。自适应巡航(ACC)在高速上失效,E等级可能是E3或E4。但如果是自动泊车功能,只在停车时使用,E等级可能只有E2。你想想看,同一个功能,不同场景下E值完全不同。

注意:E等级不是拍脑袋定的。我建议用实际路测数据或行业统计数据来支撑。比如某车型年行驶里程、某场景出现频率等。没有数据支撑的E值,评审时会被挑战得很惨。

2.4 可控性(C)分级

可控性看的是“驾驶员能不能避免伤害”。这是最容易被低估的参数。

等级 描述 典型场景
C0 完全可控 功能失效后,驾驶员有足够时间反应
C1 简单可控 大多数驾驶员能应对,比如仪表灯熄灭
C2 一般可控 部分驾驶员可能无法应对,比如转向助力突然消失
C3 难以控制 大多数驾驶员无法避免伤害,比如刹车完全失效

我曾经做过一个线控转向的项目。失效后方向盘还能转,但反馈力消失。我们一开始定C2,后来做用户测试发现,有30%的驾驶员在高速上会过度修正导致失控。最后改成了C3。所以C值一定要有实验数据支撑,不能光靠理论分析。

2.5 ASIL等级计算

有了S、E、C,查表就能得到ASIL等级。ISO 26262 Part 3给出了标准矩阵:

S E C1 C2 C3
S1 E1 QM QM QM
S1 E2 QM QM ASIL A
S1 E3 QM ASIL A ASIL B
S1 E4 ASIL A ASIL B ASIL B
S2 E1 QM QM ASIL A
S2 E2 QM ASIL A ASIL B
S2 E3 ASIL A ASIL B ASIL C
S2 E4 ASIL B ASIL C ASIL C
S3 E1 ASIL A ASIL B ASIL C
S3 E2 ASIL B ASIL C ASIL D
S3 E3 ASIL B ASIL C ASIL D
S3 E4 ASIL C ASIL D ASIL D

举个例子。刹车失效:S3(致命伤)、E4(每次驾驶都用到)、C3(难以控制),查表得到ASIL D。而车内氛围灯失效:S0(无伤害),直接QM,不需要任何ASIL措施。

关键点:ASIL D是最严格的等级,要求最高的安全措施。QM则不需要额外安全机制,按正常质量流程走就行。

2.6 ASIL等级分解

一个功能可能涉及多个组件。比如电子助力转向(EPS)系统,包含传感器、控制器、电机、机械结构。如果整个系统要求ASIL D,每个组件都要做到ASIL D吗?不一定。

ASIL分解允许你把高等级需求分配到多个独立组件上。比如:

  • 传感器:ASIL B
  • 控制器:ASIL B
  • 电机:ASIL B
  • 机械结构:QM

只要这些组件相互独立,且满足“ASIL B + ASIL B = ASIL D”的分解规则。但注意,分解必须满足两个条件:

  1. 独立性:一个组件失效不影响另一个。
  2. 覆盖性:所有失效模式都被覆盖。

我见过一个项目,把ASIL D分解成ASIL B + ASIL B,但两个组件共用同一个电源。结果评审时被指出“共因失效”问题,最后不得不重新设计。所以分解不是简单的数学加法,一定要考虑物理独立性。

2.7 HARA流程总结

做HARA的步骤,我一般按这个流程走:

  1. 功能定义:明确分析对象的功能和边界。
  2. 场景识别:列出所有可能的运行场景。
  3. 危害识别:分析功能失效导致的危害。
  4. S、E、C评级:对每个危害进行评级。
  5. ASIL等级确定:查表得到ASIL等级。
  6. 安全目标定义:为每个危害定义安全目标。
  7. ASIL分解(可选):将高等级需求分配到组件。

下面这张图展示了HARA的核心流程:

HARA核心流程图 HARA核心流程图 功能定义 场景识别 危害识别 S、E、C评级 ASIL等级确定 说明:每个步骤都需要文档记录,评审通过后才能进入下一步

避坑指南:我曾经在HARA评审时被问到一个问题——“你这个危害场景的E值为什么是E3而不是E2?”当时我拿不出数据,只能现场估算,结果被要求重新分析。从那以后,我每个E值都附上数据来源或计算依据。记住,HARA不是写作文,是写证据。

2.8 实战案例:自适应巡航(ACC)的HARA

拿ACC举个例子。假设ACC在高速上突然失效,导致车辆无法自动减速:

  • 危害:追尾前车
  • S:S2(重伤,高速追尾可能导致骨折)
  • E:E3(高速场景,每月使用多次)
  • C:C2(驾驶员可以刹车,但反应时间有限)

查表:S2 + E3 + C2 = ASIL B。所以ACC的失效处理需要满足ASIL B要求。

但如果ACC在市区拥堵路况下失效:

  • S:S1(低速追尾,轻伤)
  • E:E4(每天使用)
  • C:C1(驾驶员容易应对)

查表:S1 + E4 + C1 = ASIL A。同一个功能,不同场景下ASIL等级不同。所以HARA一定要覆盖所有典型场景。

注意:HARA不是一次性工作。功能变更、场景新增、法规更新,都需要重新做HARA。我见过一个项目,功能改了三版,HARA还是第一版的结果,最后被审核员开了严重不符合项。

好了,ASIL等级确定的核心内容就这些。记住,HARA是安全开发的基石,花时间把这一步做扎实,后面会省很多麻烦。