1. 功能安全基础:ISO26262标准概述、功能安全概念、ASIL等级定义与分解

大家好,我是你们这期功能安全实战课的讲师。咱们开门见山,直接聊干货。

很多人一听到「功能安全」,就觉得是厚厚的一本标准、一堆晦涩的术语。其实没那么玄乎。说白了,功能安全就是回答一个问题:当系统出故障时,它能不能保证不伤人?

我最早接触这个领域是在一个ESP项目的开发中。当时我们只关注功能能不能实现,结果在FMEA分析时发现,如果某个传感器失效,系统可能误判为驾驶员意图,直接导致车辆侧滑。嗯,从那以后,我就再也不敢轻视功能安全了。

1.1 ISO26262到底是什么?

ISO26262,全称是「道路车辆功能安全标准」。它源自工业领域的IEC61508,但针对汽车行业做了大量定制。2011年发布第一版,2018年更新了第二版。

它的核心目标只有一个:把电子电气系统的系统性故障和随机硬件故障风险,降低到可接受的水平。

我个人习惯把ISO26262理解成一本「安全开发说明书」。它不告诉你具体怎么设计电路、怎么写代码,而是告诉你:

  • 开发流程该怎么走
  • 每个阶段要交付什么文档
  • 怎么分析风险、怎么验证安全机制

你想想看,如果每个项目都按这个标准来,至少不会出现「功能做完了才发现安全要求没覆盖」这种尴尬局面。

关键认知: ISO26262不是束缚创新的枷锁,而是帮你系统化规避风险的框架。它允许你灵活选择实现方式,只要你能证明「安全目标已达成」。

1.2 功能安全的基本概念

在深入标准之前,有几个核心概念必须搞清楚。我见过不少工程师在这些概念上栽跟头。

1.2.1 安全 vs 功能安全

概念 定义 举例
安全 不存在不可接受的风险 车辆碰撞时气囊弹出
功能安全 系统在故障时仍能维持安全状态 传感器失效时,系统主动降速并报警

举个例子:你踩刹车,车能停下来,这是「功能」。但如果刹车踏板位置传感器坏了,系统误以为你没踩刹车,结果车停不下来——这就是功能安全要管的事。

1.2.2 故障、错误、失效

这三个词经常混用,但在ISO26262里定义很严格:

  • 故障(Fault):异常状态。比如芯片引脚虚焊。
  • 错误(Error):故障导致的不正确状态。比如虚焊导致信号电平错误。
  • 失效(Failure):错误传播到系统层面,导致功能丧失。比如信号错误导致刹车系统不响应。

我曾经在一个项目中,把「故障」和「失效」写反了,结果FMEA评审时被安全经理当场指出来。嗯,这种低级错误,大家尽量避免。

1.2.3 安全目标与安全状态

每个功能安全项目,首先要定义安全目标(Safety Goal)。比如:

  • 「当制动主缸压力传感器失效时,系统必须在100ms内进入安全状态」

安全状态(Safe State)就是系统在故障后,能到达的一个不会造成伤害的状态。比如:

  • 切断动力输出
  • 点亮故障灯并限制车速
  • 保持当前状态直到维修
我的经验: 定义安全状态时,一定要考虑「退出条件」。比如降速到30km/h后,是保持这个速度还是完全停车?不同场景下,安全状态可能不同。

1.3 ASIL等级:风险到底有多大?

ASIL(Automotive Safety Integrity Level)是ISO26262里最核心的概念之一。它用来衡量一个功能的安全风险等级。

ASIL分为四个等级:ASIL A、ASIL B、ASIL C、ASIL D。D是最严格的,A是最宽松的。还有一个等级叫QM(Quality Management),表示风险很低,按普通质量管理即可。

1.3.1 ASIL怎么确定的?

ASIL由三个参数决定:

  1. 严重度(Severity, S):伤害有多严重?分S0~S3。
  2. 暴露率(Exposure, E):危险场景发生的概率?分E0~E4。
  3. 可控性(Controllability, C):驾驶员或其他人员能否避免伤害?分C0~C3。

三个参数组合,查表得到ASIL等级。比如:

  • S3(致命伤害)+ E4(高频暴露)+ C3(几乎不可控)→ ASIL D
  • S1(轻伤)+ E2(低频暴露)+ C2(可控性一般)→ ASIL A
避坑指南: 我曾经见过一个团队,把「暴露率」和「故障率」搞混了。暴露率指的是「危险事件发生的场景频率」,不是「故障本身的概率」。比如,你开车上高速的频率是E4,但刹车失灵的概率是另一回事。这两个概念一定要分开。

1.3.2 ASIL分解

ASIL分解(ASIL Decomposition)是降低开发成本的重要手段。说白了,就是把一个高ASIL要求,拆成两个或多个低ASIL要求。

举个例子:

  • 一个ASIL D的功能,可以分解为:ASIL C(D) + ASIL A(D)
  • 或者:ASIL B(D) + ASIL B(D)

分解后的两个部分,必须满足:

  • 独立性:一个失效不会导致另一个也失效
  • 覆盖性:两个部分合起来,能覆盖原安全目标

我习惯用「双保险」来理解ASIL分解。就像飞机上的两个独立液压系统,一个失效了,另一个还能工作。这样,每个系统的开发要求就可以降低一些。

原始ASIL 分解方案1 分解方案2 分解方案3
ASIL D ASIL C(D) + ASIL A(D) ASIL B(D) + ASIL B(D) ASIL D(D) + QM(D)
ASIL C ASIL B(C) + ASIL A(C) ASIL C(C) + QM(C) —
ASIL B ASIL A(B) + ASIL A(B) ASIL B(B) + QM(B) —
注意: 分解后的ASIL等级后面会带括号,比如ASIL C(D),表示这个C是从D分解来的。在安全档案中,必须清晰记录分解关系,否则审核时会被挑战。

1.4 知识体系总览

下面这张图,是我自己总结的ISO26262核心知识框架。你可以把它当作本章的「地图」。

ISO26262核心知识框架 ISO26262 核心知识框架 ISO26262 标准概述 核心概念:安全目标 · 安全状态 · 故障/错误/失效 ASIL等级:A / B / C / D 严重度 (S0~S3) 暴露率 (E0~E4) 可控性 (C0~C3) ASIL分解:高等级 → 低等级组合 安全档案 · 安全机制 · 验证与确认 S/E/C 组合查表得 ASIL

这张图把本章的核心逻辑串起来了:从标准概述出发,理解核心概念,然后掌握ASIL的确定方法,最后学会如何通过分解来优化开发成本。

1.5 本章小结

好了,第一课的内容就到这里。我们讲了:

  • ISO26262是什么,它解决什么问题
  • 功能安全的核心概念:安全目标、安全状态、故障/错误/失效
  • ASIL等级的确定方法:S、E、C三个参数
  • ASIL分解的原则和常见方案

这些是后续所有章节的基础。你想想看,如果连ASIL都搞不清楚,后面的安全分析、安全机制设计根本无从下手。

下一课,我们会深入讲功能安全管理,包括安全计划、安全档案、以及项目开发中的角色和责任。到时候见。