4、系统级开发(概念阶段):项目定义、安全生命周期启动、危害分析与风险评估(HARA)实操
各位同学,大家好。今天我们进入系统级开发的概念阶段。说白了,就是项目还没开始写代码之前,我们要把「安全」这件事先想清楚。
我个人习惯,把这个阶段叫做「打地基」。地基不稳,后面盖多高的楼都白搭。ISO26262 里这个概念阶段,核心就三件事:项目定义、安全生命周期启动、以及HARA。咱们一个一个来拆。
4.1 项目定义:你到底要做什么?
项目定义听起来简单,不就是写个需求文档吗?其实没那么简单。
我见过不少团队,上来就写「我们要做一个智能刹车系统」。然后呢?什么级别的智能?用在什么车上?有没有冗余?这些都不清楚。结果做到一半,发现功能安全目标定错了,全部返工。
项目定义阶段,你要回答清楚这几个问题:
- 功能范围:这个系统到底控制什么?是线控制动,还是辅助制动?
- 运行场景:在什么环境下工作?高速、市区、还是越野?
- 系统边界:哪些功能是系统内部的,哪些是外部的?
- 安全目标:初步的安全要求是什么?
举个例子。我之前参与过一个电动助力转向项目。项目定义阶段,我们花了整整两周,把「转向」这件事拆成了十几个子功能。每个子功能都明确了:什么时候启用、什么时候禁用、失效了会怎样。
4.2 安全生命周期启动:别急着写代码
安全生命周期启动,听起来很玄乎。其实就一句话:确定你的安全策略。
ISO26262 把安全生命周期分成了几个阶段:概念阶段、产品开发阶段、生产阶段。每个阶段都有对应的安全活动。启动阶段,就是要明确:
- 你的项目属于哪个 ASIL 等级?
- 需要做哪些安全活动?
- 谁来负责?
- 时间节点是什么?
嗯,这里要注意。很多团队觉得「安全生命周期启动」就是走个过场,填个表就完事了。我曾经在一个项目里吃过这个亏。当时我们觉得 ASIL B 嘛,要求不高,随便搞搞就行。结果到了评审阶段,被安全审核员问得哑口无言——因为我们根本没定义清楚「什么时候该做什么安全活动」。
4.3 HARA 实操:最核心也最头疼的部分
HARA,全称是 Hazard Analysis and Risk Assessment。中文叫「危害分析与风险评估」。这是概念阶段的重头戏。
说白了,HARA 就是回答三个问题:
- 系统可能出什么故障?(危害识别)
- 这个故障会导致什么后果?(场景分析)
- 这个后果有多严重?(风险评估)
我刚开始做 HARA 的时候,觉得这玩意儿就是写文档。后来发现,写文档只是结果,真正的功夫在「想」上面。
4.3.1 危害识别:别漏掉任何一个可能
危害识别,就是把你系统里所有可能出问题的地方都列出来。注意,是「所有」。
举个例子。一个电子油门系统,可能出什么问题?
- 油门踏板信号丢失
- 油门踏板信号异常增大
- 油门踏板信号卡滞
- 控制器死机
- 通信中断
- 电源掉电
- ……
你看,光是油门踏板这一个输入,就能列出七八种故障。每个故障都要分析。
4.3.2 场景分析:故障发生在什么情况下?
同一个故障,发生在不同场景下,后果完全不同。
比如,刹车助力失效:
- 在高速上突然失效 → 可能造成严重事故
- 在停车场低速行驶时失效 → 最多吓一跳,不会出大事
- 在维修模式下失效 → 根本不影响安全
所以,HARA 要求你分析每个故障在「典型场景」下的表现。ISO26262 里定义了三个维度:
| 维度 | 含义 | 等级 |
|---|---|---|
| S(Severity) | 严重度 | S0~S3 |
| E(Exposure) | 暴露概率 | E0~E4 |
| C(Controllability) | 可控性 | C0~C3 |
这三个维度组合起来,就决定了你的 ASIL 等级。
4.3.3 风险评估:到底有多危险?
风险评估,就是把 S、E、C 三个值组合起来,查表得到 ASIL 等级。
举个例子。还是刹车助力失效:
- S:高速上失效,可能造成多人伤亡 → S3
- E:高速行驶是常见场景 → E4
- C:普通驾驶员很难应对 → C3
查表得到:ASIL D。这是最高等级,意味着你需要最严格的安全措施。
4.4 HARA 实操模板
说了这么多,给大家一个我常用的 HARA 模板。你直接套用就行。
| 编号 | 功能 | 故障模式 | 危害描述 | 运行场景 | S | E | C | ASIL | 安全目标 |
|------|------|----------|----------|----------|---|---|---|------|----------|
| H001 | 油门控制 | 信号丢失 | 车辆无动力 | 高速行驶 | 3 | 3 | 2 | C | 检测信号丢失,进入跛行模式 |
| H002 | 油门控制 | 信号异常增大 | 车辆非预期加速 | 市区行驶 | 3 | 2 | 3 | C | 限制最大加速度,触发制动 |
| H003 | 制动控制 | 助力失效 | 制动力不足 | 高速行驶 | 3 | 4 | 3 | D | 冗余助力,失效时报警 |
这个表格,你填完以后,基本就完成了 HARA 的核心工作。剩下的就是写报告、评审、修改。
4.5 小结
概念阶段,说白了就是「想清楚再动手」。项目定义让你知道做什么,安全生命周期启动让你知道怎么做,HARA 让你知道做多安全。
我个人觉得,HARA 是整个功能安全里最考验「工程直觉」的部分。你不仅要懂技术,还要懂场景、懂用户、懂法规。多练几次,慢慢就有感觉了。
下一章,我们讲系统级开发的另一个重点——功能安全概念(FSC)。到时候我会分享一个我踩过的坑,关于「安全机制设计过度」的问题。敬请期待。