1. ISO26262概述:功能安全背景、标准体系结构与ASIL等级

1.1 为什么我们需要功能安全?

先聊点背景。你想想看,十年前的车,电子系统出个故障,最多是收音机不响了、车窗升不上去。现在的车呢?线控转向、自动紧急刹车、车道保持——电子系统直接控制方向盘和刹车踏板。

这意味着什么?一个软件bug,可能让车在高速上突然刹车,或者在弯道里失去动力。这不是死机重启的问题,这是人命关天的事。

我2015年参与过一个ADAS项目,当时团队对功能安全还没那么重视。结果呢?路试时摄像头误检,车辆在空旷路段突然急刹,后车差点追尾。从那以后,我深刻理解了一件事:功能安全不是锦上添花,是底线。

核心观点:功能安全的目标是——当系统发生故障时,要么把风险降到可接受水平,要么让系统进入安全状态。不是保证不出错,而是保证出错后不出事。

1.2 ISO26262标准体系结构

ISO26262脱胎于工业领域的IEC61508,专门为汽车电子电气系统量身定制。2011年发布第一版,2018年更新到第二版。我个人习惯把它的结构想象成一栋楼:

ISO26262 标准体系结构(2018第二版) Part 1: 词汇表(Vocabulary) Part 2: 管理 Part 3: 概念阶段 Part 4: 产品开发(系统级) Part 5: 硬件开发 Part 6: 软件开发 Part 7: 生产运维 Part 8: 支持过程 Part 9: ASIL导向与安全分析 Part 10: 指南 Part 11: 半导体应用 Part 12: 摩托车 说明 Part 1-9 为强制性要求,Part 10-12 为行业指南和扩展应用

标准分12个部分。Part 1到Part 9是核心,Part 10到Part 12是补充。我建议你重点吃透Part 3到Part 6,这是产品开发的主线。

我的经验:刚接触ISO26262时别试图一口气读完所有部分。先看Part 3(概念阶段)和Part 6(软件开发),这两个是项目中最常被审计的部分。Part 8和Part 9是工具书,遇到具体问题再翻。

1.3 ASIL等级——功能安全的核心度量

ASIL,全称Automotive Safety Integrity Level,汽车安全完整性等级。说白了,就是给系统的风险程度打分。

ASIL分四个等级:ASIL A、ASIL B、ASIL C、ASIL D。A是最低,D是最高。还有一个QM(Quality Management),意思是风险低到不需要额外安全措施,按普通质量管理做就行。

ASIL等级 风险程度 典型应用场景 开发工作量(相对)
QM 可忽略 车窗升降、车内照明 1x
ASIL A 轻度 尾灯、信息娱乐 2-3x
ASIL B 中度 雨刮、仪表盘 4-6x
ASIL C 重度 自适应巡航、自动大灯 8-10x
ASIL D 极度 制动、转向、安全气囊 12-15x

ASIL等级怎么定的?标准里给了三个参数:

  • 严重度(Severity, S)——事故造成伤害的程度。分S0(无伤害)到S3(致命)。
  • 暴露率(Exposure, E)——危险场景发生的概率。分E0(几乎不)到E4(非常高)。
  • 可控性(Controllability, C)——驾驶员能否避免事故。分C0(完全可控)到C3(几乎不可控)。

三个参数组合查表,就得到ASIL等级。举个例子:

  • 刹车失灵:S3(致命)、E4(经常遇到)、C3(几乎不可控)→ ASIL D
  • 雨刮不工作:S1(轻伤)、E3(偶尔)、C1(容易控制)→ ASIL A

避坑指南:我曾经见过一个团队,把ESP系统的ASIL等级定成了B。理由是“驾驶员可以自己控制”。但仔细分析后发现,在冰雪路面上,ESP失效时驾驶员几乎无法控制车辆。最终改成了D。记住:可控性评估要基于最坏情况,别想当然。

1.4 ASIL分解——把大问题拆小

ASIL D的要求非常高,开发成本也高。有没有办法降低单个模块的等级?有,这就是ASIL分解。

核心思想:把一个高ASIL需求,分解到多个独立元素上。每个元素承担一部分安全责任,等级自然就降下来了。

举个例子:一个ASIL D的刹车系统,可以分解为:

  • 主控制器:ASIL C
  • 冗余控制器:ASIL C

两个ASIL C加起来,通过独立性保证,可以满足ASIL D的要求。注意:分解的前提是独立性——两个模块不能有共因失效。

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

我的建议:ASIL分解虽然能降低成本,但会增加系统复杂度。我一般只在ASIL D或C的项目中使用分解。ASIL B以下,直接按原等级开发更省事。分解后的独立性论证,审计时查得很严。

1.5 本章小结

这一章我们聊了三件事:

  • 功能安全背景——为什么需要它,它解决什么问题
  • 标准体系结构——ISO26262的12个部分怎么组织,重点看哪些
  • ASIL等级与分解——怎么定级,怎么拆解