2、功能安全基础概念:危害、风险、安全目标、安全状态、故障与错误
好,咱们正式开始聊功能安全的核心概念。说实话,这些术语你如果去翻标准,定义都很严谨,但刚接触的人很容易绕晕。我当年刚入行时,也花了不少时间才把这些概念真正串起来。
今天我就用大白话,结合我踩过的坑,帮你把这些基础概念理清楚。
2.1 危害(Hazard)—— 到底什么会伤人?
危害,说白了就是「什么东西可能让人受伤」。在汽车里,危害通常跟能量有关。
举个例子:车辆意外加速。这算不算危害?算。因为车突然冲出去,可能撞到人。再比如刹车失灵,也是危害。
我个人习惯把危害分成三类:
- 机械危害:比如转向卡死、刹车失效
- 电气危害:比如高压电漏电、电池热失控
- 功能危害:比如ACC(自适应巡航)突然急刹
小提示:危害分析时,别只盯着「功能失效」。有时候功能正常,但场景不对,也会产生危害。比如雨夜自动远光灯没关,晃了对向司机,这也是危害。
2.2 风险(Risk)—— 危害发生的概率有多高?
危害是客观存在的,但风险不一样。风险 = 危害的严重程度 × 发生的概率。
你想想看,同样是「刹车失灵」这个危害:
- 在高速公路上发生,严重程度极高,风险极高
- 在封闭测试场里发生,严重程度低,风险也低
所以ISO 26262里引入了ASIL(汽车安全完整性等级)的概念,就是通过评估三个参数来量化风险:
| 参数 | 英文 | 含义 |
|---|---|---|
| 严重度(S) | Severity | 伤害有多重?轻伤、重伤、致命? |
| 暴露率(E) | Exposure | 这种场景出现的频率高不高? |
| 可控性(C) | Controllability | 驾驶员能不能及时反应过来? |
我记得有一次做EPS(电动助力转向)的项目,我们分析「转向助力突然消失」这个危害。S=2(重伤),E=3(中等频率),C=2(驾驶员能控制但吃力)。最后算出来ASIL B。嗯,这个等级不高不低,但设计上该做的冗余一点都不能少。
2.3 安全目标(Safety Goal)—— 我们要防住什么?
安全目标,就是针对每个危害,定一个「绝对不能发生」的顶层要求。
比如针对「车辆意外加速」这个危害,安全目标可能是:
「车辆在非驾驶员意图下,加速度不得超过0.3g。」
安全目标有几个特点:
- 顶层性:它不关心你怎么实现,只关心结果
- 可验证:能不能测?能不能证明?
- 带ASIL等级:每个安全目标都继承自危害分析的ASIL
重点:安全目标一旦定下来,后续所有的设计、测试、验证都要围绕它展开。我见过不少项目,前期安全目标写得很模糊,结果后期评审时被怼得哑口无言。所以,安全目标一定要写得「可测试、可追溯」。
2.4 安全状态(Safe State)—— 出事了怎么办?
安全状态,就是系统发生故障后,能进入的一个「相对安全」的状态。
常见的几种安全状态:
- 降级模式:比如ACC失效,但保留基础巡航功能
- 故障静默:比如EPS故障,直接切断助力,变成纯机械转向
- 安全关断:比如BMS检测到电池过温,直接切断高压继电器
这里有个坑,我曾经踩过。有一次做BMS项目,我们设计的安全状态是「切断高压」。但没考虑到,如果车辆正在高速行驶中突然断电,方向盘助力、刹车助力都会消失,反而更危险。
避坑指南:我曾经在评审时被问到「你的安全状态本身安全吗?」。这个问题很关键。进入安全状态的过程,也要做安全分析。比如切断高压前,是不是要先降功率?是不是要先通知VCU?这些细节,往往决定了安全设计的好坏。
2.5 故障(Fault)与错误(Error)—— 别搞混了
这两个词,在ISO 26262里定义得很清楚,但很多人混着用。我简单解释一下:
| 术语 | 定义 | 打个比方 |
|---|---|---|
| 故障(Fault) | 物理层面的缺陷或异常 | 芯片引脚虚焊了 |
| 错误(Error) | 故障导致的信息或状态偏差 | 因为虚焊,ADC读到的电压值不对 |
| 失效(Failure) | 错误传播到系统层面,导致功能丧失 | 因为电压值不对,BMS误判电池状态,触发了保护 |
你想想看,故障是「因」,错误是「果」,失效是「最终表现」。我们做功能安全,核心任务就是:检测故障,纠正错误,防止失效。
举个例子:
// 故障:RAM单元物理损坏(Stuck-at-0)
// 错误:变量 actual_speed 本该是 50km/h,但读出来是 0
// 失效:ACC系统认为车速为0,开始急加速
// 安全机制:ECC校验
if (ECC_check(&actual_speed) == ERROR) {
enter_safe_state(); // 进入安全状态
}
这段代码很简单,但背后是功能安全的核心思想:故障不可避免,但我们可以通过安全机制,防止它变成失效。
2.6 小结一下
好,咱们把今天的内容串起来:
- 危害:什么东西可能伤人?
- 风险:这个危害有多大概率发生?多严重?
- 安全目标:我们承诺「绝对不能发生」什么?
- 安全状态:万一出事了,系统怎么保命?
- 故障与错误:物理坏了叫故障,数据错了叫错误,功能没了叫失效
这些概念,是功能安全的「地基」。地基打不牢,后面做HARA、做FMEA、做FTA,都会跑偏。我个人建议,刚开始接触功能安全的同学,先把这几个概念背熟,然后找自己项目里的实际例子,一个一个套进去分析。嗯,这样学起来最快。
下一章,咱们聊聊HARA(危害分析与风险评估),这是功能安全里最核心的分析方法之一。到时候我会拿一个真实项目案例,带你一步步走一遍。