4. ASIL等级确定:ASIL的定义、HARA与分解剪裁

各位工程师朋友,咱们今天聊聊ASIL等级确定。说实话,这是功能安全里最核心、也最容易让人头疼的环节。我刚开始接触ISO 26262时,觉得HARA就是填填表格,后来吃过亏才明白——这步要是走偏了,后面全白干。

4.1 ASIL到底是什么?

ASIL,全称Automotive Safety Integrity Level,汽车安全完整性等级。说白了,就是给系统的安全风险定个级。A到D,D最高,QM最低(质量管理级,不需要额外安全措施)。

你想想看,一个刹车系统和一个车窗升降系统,风险能一样吗?ASIL就是帮我们把有限的开发资源,花在最需要的地方。

核心要点:ASIL不是拍脑袋定的,它由三个参数决定——严重度(Severity)、暴露概率(Exposure)、可控性(Controllability)。

参数 含义 等级范围
S(Severity) 伤害的严重程度 S0~S3
E(Exposure) 危险场景的发生概率 E0~E4
C(Controllability) 驾驶员或乘客能否控制风险 C0~C3

举个例子。座舱里的中控屏黑屏,如果只是导航没了,S可能只有S0或S1。但如果黑屏导致倒车影像消失,同时驾驶员正在倒车——嗯,那S至少得S2起步。

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

HARA,全称Hazard Analysis and Risk Assessment。我个人习惯把它拆成三步走:

  1. 功能定义——搞清楚系统到底要干什么
  2. 危害识别——找出所有可能出问题的地方
  3. 风险评估——给每个危害定ASIL等级

我在项目中遇到过一件事。有个团队做座舱域控制器,HARA时只考虑了“显示异常”,没考虑“声音异常”。结果后来发现,倒车雷达的提示音如果延迟或丢失,驾驶员可能撞上障碍物。你看,漏掉一个场景,风险就埋下了。

我的经验:做HARA时,一定要拉上系统工程师、软件工程师、测试工程师一起脑暴。一个人想不全所有场景,真的。

4.2.1 危害识别的方法

常用的方法有:

  • 头脑风暴——最直接,但容易漏
  • 检查表法——基于历史经验,比较靠谱
  • FMEA——失效模式与影响分析,系统性强
  • HAZOP——危险与可操作性分析,适合复杂系统

我个人偏爱HAZOP,因为它用引导词(比如“无”、“多”、“少”、“反向”)来触发思考,不容易遗漏。我曾经用HAZOP帮一个座舱项目找出了7个之前没发现的危害场景。

4.2.2 风险评估矩阵

有了S、E、C三个参数,怎么合成ASIL?看这个矩阵:

S E C ASIL
S1 E3 C2 A
S2 E3 C2 B
S3 E3 C2 C
S3 E4 C3 D

注意,这不是简单的乘法。ISO 26262有详细的查表规则,我建议你直接看标准里的Table 1到Table 4。别自己发明公式,容易翻车。

避坑指南:我曾经见过有人把S、E、C的数值直接相乘,然后自己画个阈值来定ASIL。这是错的!ISO 26262的查表法是硬性规定,不能改。

4.3 ASIL分解与剪裁

定完ASIL,问题来了——如果某个功能要求ASIL D,但我们的硬件平台只能做到ASIL B,怎么办?

这时候就需要ASIL分解。

4.3.1 ASIL分解的原则

ASIL分解的核心思想是:把高ASIL要求拆成多个低ASIL要求,分配给不同的独立组件。

举个例子。一个ASIL D的功能,可以分解成:

  • 组件A:ASIL C
  • 组件B:ASIL A

或者:

  • 组件A:ASIL B
  • 组件B:ASIL B

但注意,分解后的组件必须相互独立,不能有共因失效。我在项目中见过一个反面案例——两个组件用了同一个电源芯片,结果电源一坏,两个都挂了。这就不叫独立。

关键约束:ASIL分解必须满足“安全目标不变”的原则。分解后的组件合起来,必须能覆盖原来的安全目标。

4.3.2 常见的分解模式

原始ASIL 分解方案1 分解方案2 分解方案3
D C + A B + B D + QM(不推荐)
C B + A A + A + A —
B A + A B + QM(需论证) —

你可能会问,为什么D + QM不推荐?因为QM组件没有安全机制,万一它出问题,整个安全目标就泡汤了。除非你能证明QM组件的失效率极低,否则别这么干。

4.3.3 ASIL剪裁

ASIL剪裁和分解不太一样。剪裁是在满足安全目标的前提下,适当降低某些组件的ASIL要求。

常见的剪裁方式有:

  • 冗余剪裁——两个组件互相备份,每个可以降一级
  • 时间剪裁——如果故障能在极短时间内被检测并处理,可以降级
  • 功能剪裁——如果某个功能只在特定条件下激活,可以降级

我记得有个座舱项目,倒车影像要求ASIL B。但后来我们发现,倒车影像只在R挡时激活,而且驾驶员通常会看后视镜。经过论证,我们把ASIL B剪裁成了ASIL A。当然,这个论证过程很严格,不是随便说说的。

我的建议:剪裁一定要有充分的证据支持。安全案例里要写清楚为什么可以剪裁,不能只写“我们认为没问题”。

4.4 本章知识体系

下面这张图,是我自己整理的ASIL等级确定的核心逻辑。你看一遍,应该能对本章内容有个整体把握。

ASIL等级确定核心流程 功能定义 危害识别 风险评估(S/E/C) ASIL等级(A/B/C/D) ASIL分解/剪裁 说明: 1. 功能定义是基础,定义不清后面全乱 2. 危害识别要全面,建议用HAZOP或FMEA 3. 分解/剪裁必须保证安全目标不变,且组件独立

嗯,这张图把整个流程串起来了。从功能定义开始,到危害识别,再到风险评估,最后决定要不要分解或剪裁。每一步都不能跳,跳了就是给自己挖坑。

4.5 常见误区与避坑

最后,我总结几个常见误区,都是我在项目里亲眼见过的:

  • 误区一:HARA只做一次就够了。错!功能变了、场景变了,HARA就要重新做。
  • 误区二:ASIL分解后,每个组件各自为政。错!分解后的组件之间要有交互验证,确保合起来能覆盖安全目标。
  • 误区三:剪裁就是降级。错!剪裁要有依据,不能为了省成本随便降。

我曾经踩过的坑:有个项目,我们把ASIL D分解成两个ASIL B,但没做独立性分析。结果两个组件共用了一个中断控制器,一个故障导致两个都失效。后来花了两个月重新设计,教训深刻。

好了,ASIL等级确定这部分就聊到这儿。记住,HARA不是走过场,它是整个功能安全工作的基石。你花在HARA上的每一分钟,后面都会十倍百倍地省回来。