4、功能安全目标与安全状态:定义安全目标(Safety Goal)、安全状态(Safe State)、容错时间间隔(FTTI)

好,咱们进入第四章。这一章要聊的,是功能安全落地的三个核心概念:安全目标安全状态、还有容错时间间隔

说实话,这三个东西在标准里写得挺抽象的。我当年刚接触ISO 26262时,看了好几遍才搞明白它们到底怎么用。后来在项目里踩过坑,才真正理解——嗯,它们其实是整个安全设计的“锚点”。

你想想看,没有安全目标,你都不知道要保护什么。没有安全状态,你都不知道出事了该往哪跑。没有FTTI,你都不知道自己还有多少时间反应。所以,咱们一个一个来拆。

4.1 安全目标(Safety Goal)

安全目标是什么?

说白了,安全目标就是一句话:“防止某个危害事件发生”。它是从危害分析和风险评估(HARA)里直接导出的最高层级安全要求。

举个例子,BMS里最常见的危害:电池过充。对应的安全目标就是:“防止电池单体电压超过安全阈值”

我个人习惯,写安全目标时一定要做到三点:

  • 明确危害:到底要防止什么?过充?过放?短路?
  • 明确对象:保护谁?电池?人员?车辆?
  • 明确条件:在什么场景下生效?正常行驶?充电?

安全目标示例(BMS领域)

  • SG-01:防止电池单体电压超过4.25V(ASIL C)
  • SG-02:防止电池温度超过60°C(ASIL B)
  • SG-03:防止绝缘电阻低于100Ω/V(ASIL C)
  • SG-04:防止接触器在过流时粘连(ASIL D)

这里要注意,安全目标是有ASIL等级的。HARA分析出来是ASIL C,那安全目标就得是ASIL C。不能降级,除非你有充分的理由和证据。

避坑指南

我曾经在一个项目里,看到有人把安全目标写得像需求文档一样长。什么“系统应在100ms内检测到过压,然后通过CAN发送故障码,再断开接触器...”——这其实是功能安全需求,不是安全目标。

安全目标要简洁、抽象、可验证。一句话能说清楚的事,别写三段。

4.2 安全状态(Safe State)

安全状态是什么?

安全状态,就是系统在检测到故障后,要进入的一个“不会造成危害”的状态。它是安全目标的“执行结果”。

你想想看,安全目标说“防止过充”,那万一真的过充了怎么办?系统得有个“退路”——这就是安全状态。

常见的BMS安全状态有:

  • 断开高压:打开接触器,切断电池与负载的连接
  • 限制功率:降功率运行,比如只允许10A放电
  • 进入休眠:关闭非必要功能,只保留监控
  • 紧急放电:通过泄放回路消耗多余能量

我个人建议,安全状态要分层定义

层级 安全状态 适用场景
L1 正常运行 无故障
L2 降级运行 轻微故障(如温度传感器偏差)
L3 安全停机 严重故障(如过压、过温)
L4 紧急断开 致命故障(如绝缘失效、短路)

我记得有个项目,客户要求所有故障都直接断开高压。我说不行——你想想看,如果车辆在高速上突然断电,方向盘助力没了,刹车助力也没了,那才是真正的危险。所以安全状态不是越激进越好,要权衡功能可用性和安全性

小技巧

定义安全状态时,一定要问自己一个问题:“进入这个状态后,系统还会不会造成新的危害?”

比如断开高压,虽然防止了电击,但如果接触器粘连了,那安全状态就没达到。所以安全状态本身也要有监控机制。

4.3 容错时间间隔(FTTI)

FTTI是什么?

FTTI,全称Fault Tolerant Time Interval。翻译过来就是“容错时间间隔”

它的定义很简单:从故障发生,到系统进入安全状态,中间允许的最大时间

为什么要有FTTI?因为故障不会瞬间导致危害。比如电池过充,电压从4.2V升到4.3V可能需要几秒钟。只要在这几秒内系统检测到并采取措施,就不会出事。

FTTI的组成通常包括:

  • 故障检测时间:从故障发生到被检测到
  • 故障响应时间:从检测到到执行安全动作
  • 安全执行时间:从动作执行到进入安全状态

用公式表示就是:

FTTI ≥ 故障检测时间 + 故障响应时间 + 安全执行时间

举个例子,BMS过充保护:

  • 故障检测时间:50ms(电压采样+诊断)
  • 故障响应时间:20ms(MCU处理+指令发送)
  • 安全执行时间:30ms(接触器断开)
  • FTTI要求:≤ 200ms

你看,实际用了100ms,还有100ms余量。这就是设计余量,我个人习惯留至少50%的余量

避坑指南

我曾经在一个项目里,FTTI定得太紧。比如要求100ms内完成所有动作。结果发现接触器本身动作时间就要80ms,留给检测和处理的时间只有20ms——根本不可能。

所以FTTI不是拍脑袋定的,要基于物理特性和系统能力来定。接触器动作时间、ADC采样周期、CAN通信延迟,这些都要考虑进去。

4.4 三者之间的关系

好,咱们把这三个概念串起来:

  • 安全目标:你要防止什么危害?
  • 安全状态:出事后你要跑到哪里?
  • FTTI:你有多长时间跑过去?

它们的关系就像这样:

安全目标(SG-01:防止过充)
    ↓
安全状态(SS-01:断开充电接触器)
    ↓
FTTI(≤ 200ms:从过充发生到断开完成)

你想想看,没有安全目标,安全状态就是无头苍蝇。没有FTTI,安全状态就是“到了就行,不管多久”——那肯定不行。

实战建议

我建议在项目初期,就建立一个安全目标-安全状态-FTTI映射表。每个安全目标都要对应一个安全状态和一个FTTI值。这样后续做安全架构、安全机制设计时,才有明确的输入。

4.5 本章小结

这一章咱们聊了三个核心概念:

  • 安全目标:一句话说清楚要防止什么危害,带ASIL等级
  • 安全状态:系统出事后要进入的“安全避风港”
  • FTTI:从故障到安全状态的最大允许时间

嗯,内容不多,但很重要。下一章咱们会聊功能安全需求分解——怎么把安全目标拆成具体的软硬件需求。到时候见。

课后思考

假设你的BMS检测到电池温度超过60°C,安全目标是“防止热失控”。你会定义什么样的安全状态?FTTI定多少合适?

我个人建议,先想想电池的热惯性——温度从60°C升到80°C需要多久?接触器动作要多久?冷却系统启动要多久?把这些时间加起来,再留余量,就是你的FTTI。