2. 功能安全标准体系
好,咱们进入正题。ISO 26262 这个标准,说白了就是功能安全在汽车行业的“基本法”。你出去跟人聊功能安全,如果没听过这个标准,那基本等于没入行。我刚开始接触它的时候,也觉得这玩意儿又厚又绕,但干久了你会发现,它的逻辑其实非常清晰。
2.1 ISO 26262 的起源:为什么会有它?
这得从 2000 年代初说起。那时候汽车电子系统越来越复杂,尤其是电子节气门、线控制动这些东西开始普及。你想想看,以前油门拉线断了,车最多没劲;但电子油门要是出了逻辑错误,车可能自己加速。这可不是闹着玩的。
我记得当时行业里出过几起跟电子系统相关的安全事故,虽然没有大规模报道,但工程师圈子里都知道——必须得有个统一的标准来管管这事儿了。于是,国际标准化组织(ISO)牵头,把欧洲、美国、日本的主机厂和供应商拉在一起,基于 IEC 61508(功能安全的基础标准)搞了个汽车专用版。
第一版 ISO 26262 在 2011 年发布,2018 年出了第二版。第二版把适用范围从乘用车扩展到了卡车、巴士、摩托车,甚至还包括了半导体。嗯,这里要注意,现在市面上主流项目基本都按 2018 版来执行。
2.2 适用范围:它管哪些东西?
ISO 26262 不是什么都管。它只针对安装在量产道路车辆上的 E/E 系统(电气/电子系统)。
具体来说:
- 管:ECU、传感器、执行器、软件、硬件、系统集成。
- 不管:非 E/E 系统(比如机械刹车盘)、非量产车辆(比如赛车)、已经量产后的维护备件(但开发过程要管)。
我遇到过有人问:“那我车上的一个纯机械弹簧,要不要做功能安全?” 答案很明确——不用。但如果你这个弹簧是跟电子解锁系统联动的,那整个系统就得考虑。
一句话总结:只要电流流过的、且故障可能导致人身伤害的,基本都在 ISO 26262 的射程范围内。
2.3 核心概念:ASIL、安全目标、安全状态
这三个概念是 ISO 26262 的骨架。你理解了它们,后面看什么 Hazard Analysis、FMEA、FTA 都会轻松很多。
2.3.1 ASIL(汽车安全完整性等级)
ASIL 是标准里最出名的东西。它用来衡量一个功能需要多高的安全等级。
怎么定的?看三个参数:
- Severity(严重度):人受伤有多重?轻伤、重伤、致命。
- Exposure(暴露率):这种危险场景发生的概率高不高?
- Controllability(可控性):驾驶员在危险发生时,能不能靠操作避免事故?
这三个参数组合起来,就得到了 ASIL 等级:
| ASIL 等级 | 安全要求严格度 | 典型应用场景 |
|---|---|---|
| ASIL D | 最高 | 转向、制动、主动安全 |
| ASIL C | 高 | 大灯自动调节、ACC 巡航 |
| ASIL B | 中 | 车窗防夹、雨量传感器 |
| ASIL A | 低 | 尾灯、门锁 |
| QM | 仅需质量管理 | 信息娱乐、导航 |
我个人习惯是,拿到一个新项目,先看它的 ASIL 等级。如果是 ASIL D,那从架构设计到代码实现,每一步都得打起十二分精神。如果是 QM,那基本按常规开发流程走就行。
避坑指南:我曾经见过一个团队,把 ASIL B 的功能分解成两个 ASIL A 的模块,结果分解不合理,评审被打回重做。ASIL 分解有严格规则,不是你想拆就能拆的。
2.3.2 安全目标(Safety Goal)
安全目标,说白了就是“我们要避免什么坏事发生”。它是从 Hazard Analysis(危险分析)里提炼出来的顶层安全要求。
举个例子:
- 对于电子助力转向系统,一个安全目标可能是:“防止非预期的转向力矩输出”。
- 对于电池管理系统,可能是:“防止电池过充导致热失控”。
每个安全目标都会分配一个 ASIL 等级,并且要定义出对应的安全状态。
2.3.3 安全状态(Safe State)
安全状态是系统在检测到故障后,主动进入的一个不会造成伤害的状态。
常见的几种:
- 关断/断电:比如 BMS 检测到过流,直接切断继电器。
- 降级模式:比如摄像头故障,ADAS 系统退回到仅提供报警,不主动刹车。
- 维持输出:比如线控制动失效,系统保持最后有效的制动力,直到驾驶员接管。
我遇到过最头疼的情况是,安全状态定义得太激进。比如一检测到故障就立刻断电,结果在高速上直接没了动力,反而更危险。所以,安全状态不是越安全越好,而是要“合理安全”。
注意:安全状态必须包含故障容错时间间隔(FTTI)的概念。也就是说,系统必须在规定时间内进入安全状态,否则伤害就可能发生。
2.4 核心逻辑关系图
下面这张图,把 ASIL、安全目标、安全状态之间的关系串起来了。你多看几遍,就能理解 ISO 26262 的顶层逻辑。
2.5 我的实战建议
学到这里,你可能会觉得概念有点多。别急,我给你三个实操建议:
- 先抓安全目标:拿到一个系统,先问“它的安全目标是什么?” 如果连这个都说不清楚,后面的工作全是白做。
- ASIL 等级别硬背:不用死记哪个功能是哪个等级。你只要会做 Hazard Analysis,等级自然就出来了。
- 安全状态要落地:别只写在文档里。我建议你在系统设计阶段,就画出安全状态机,明确每个故障对应的状态切换路径。
一句话记住本章:ISO 26262 的核心,就是通过 Hazard Analysis 找到危险,定出安全目标和 ASIL 等级,然后设计出能在规定时间内进入的安全状态。