4、功能安全目标与安全状态:安全目标定义、安全状态设计、故障容错时间间隔(FTTI)、安全机制触发条件
好,咱们进入第四章。这一章讲的是功能安全里最核心的几个概念——安全目标、安全状态、FTTI,还有触发条件。说白了,就是回答三个问题:要保什么?保不住时怎么办?多快必须反应?
我在项目里见过不少工程师,把安全目标写得像散文,把安全状态设计得过于理想化。结果一跑FMEA,发现根本实现不了。嗯,咱们今天就把这些坑一个个填上。
4.1 安全目标定义——别写成“系统不能失效”
安全目标(Safety Goal)是功能安全活动的“北极星”。它必须具体、可验证、可分配。
我个人习惯用这个模板来写:
“当[特定故障]发生时,系统应在[FTTI]内进入[安全状态],且[某个危害事件]的发生概率低于[ASIL等级对应的阈值]。”
举个例子,别这么写:
- ❌ “转向系统不能失效” —— 太模糊,没法验证
- ✅ “当转向扭矩传感器信号丢失时,系统应在100ms内进入降级模式,方向盘手力不超过5Nm,避免非预期转向”
我在做EPS项目时,遇到过安全目标写的是“转向助力不能突然消失”。结果评审时被安全专家怼了:“突然消失是多久?1ms还是1s?消失到什么程度?” 从那以后,我要求所有安全目标必须带上时间、幅度、边界条件。
安全目标三要素:
- 故障场景:什么故障?什么条件下?
- 安全状态:进入什么状态?
- 时间约束:多快必须完成?
4.2 安全状态设计——不是只有“断电”一条路
安全状态(Safe State)是系统在检测到故障后,要进入的一种可接受的风险水平的状态。很多新手以为安全状态就是“关机”,其实不然。
常见的几种安全状态:
| 安全状态类型 | 说明 | 典型应用 |
|---|---|---|
| 完全关闭 | 系统断电,所有执行器归零 | 安全气囊ECU |
| 降级模式 | 部分功能关闭,保留基础功能 | 制动系统(保留机械备份) |
| 维持输出 | 保持当前输出值不变 | 油门踏板位置保持 |
| 受限操作 | 限制功率/速度/扭矩 | 电机控制器(限速30km/h) |
我曾经设计过一个线控制动系统,安全目标要求“制动失效时进入安全状态”。一开始我们设计的是“断电,让制动踏板硬连接”。结果发现,断电后踏板力会突然变重,驾驶员根本踩不动。这反而更危险!
后来我们改成了“保持当前制动压力,同时点亮警告灯,允许驾驶员用更大脚力继续制动”。你看,安全状态不是一刀切,得结合人因工程。
设计安全状态时,问自己三个问题:
- 这个状态真的比故障前更安全吗?
- 驾驶员/乘客能理解并应对这个状态吗?
- 从故障到进入安全状态,会不会引入新的危害?
4.3 故障容错时间间隔(FTTI)——别让安全机制“迟到”
FTTI(Fault Tolerant Time Interval)是从故障发生到系统进入安全状态所允许的最大时间。说白了,就是安全机制的“死线”。
FTTI 由两部分组成:
- 故障检测时间(FDT):从故障发生到被检测到
- 故障反应时间(FRT):从检测到故障到进入安全状态
公式很简单:FTTI ≥ FDT + FRT
但实际项目中,我经常看到有人把FTTI设得太紧。比如某个项目要求“转向助力丢失后50ms内进入安全状态”。结果一算,传感器诊断周期就要20ms,MCU处理要10ms,执行器响应要15ms,加起来45ms。看起来够,但没考虑余量。一旦温度升高、晶振漂移,就超了。
避坑指南: 我曾经因为FTTI余量留得太少,导致某批次ECU在高温环境下安全机制超时。从那以后,我要求FTTI分配时至少留20%的余量。另外,别忘了考虑多故障叠加的情况——两个故障同时发生,FTTI怎么算?
不同ASIL等级对FTTI的典型要求:
| ASIL等级 | 典型FTTI范围 | 说明 |
|---|---|---|
| ASIL A | 100ms ~ 1s | 非关键系统,如车窗 |
| ASIL B | 10ms ~ 100ms | 中等关键,如雨刮 |
| ASIL C | 1ms ~ 10ms | 关键系统,如制动 |
| ASIL D | < 1ms | 极高安全,如转向、气囊 |
你想想看,如果安全气囊的FTTI是1ms,那你的诊断电路必须在几百微秒内完成检测。这可不是随便一个MCU能搞定的,得用硬件比较器或者专用ASIC。
4.4 安全机制触发条件——别让误触发害了你
安全机制不是越灵敏越好。触发条件设得太松,故障漏报;设得太紧,误报频发。误触发会导致系统频繁进入安全状态,用户体验极差。
我见过一个项目,因为电压监测阈值设得太窄,每次发动机启动时电压波动都会触发“电源故障”,导致系统重启。后来我们把阈值放宽了10%,并加入了去抖时间(比如连续3次采样超限才触发),问题就解决了。
常见的触发条件设计原则:
- 阈值+时间窗口:比如“电压低于4.5V且持续超过10ms”
- 多级触发:轻度故障只报警,严重故障才进入安全状态
- 冗余确认:两个独立通道同时检测到故障才触发
- 自恢复机制:某些瞬态故障允许系统自动恢复,不用一直停在安全状态
触发条件设计检查清单:
- 是否考虑了噪声和瞬态干扰?
- 触发阈值是否覆盖了所有工作温度范围?
- 是否有防抖/滤波机制?
- 误触发率是否可接受?
- 触发后是否有记录(DTC)以便后续分析?
嗯,这一章的内容就这些。安全目标、安全状态、FTTI、触发条件,这四个概念是功能安全设计的基石。你想想看,如果连“要保什么”都没说清楚,后面的安全机制设计就是空中楼阁。
下一章咱们聊聊安全架构——怎么用硬件和软件的组合拳,把这些安全目标落地。