4. 功能安全概念(FSC):功能安全概念定义、安全机制分配、安全状态定义、故障容错时间间隔

好,咱们进入功能安全开发中最核心的一环——功能安全概念,也就是 FSC。说实话,很多工程师觉得 Hazard Analysis 做完就万事大吉了,其实真正的硬仗才刚开始。FSC 说白了,就是把安全目标翻译成具体的技术方案。你想想看,安全目标说「转向不能非预期助力」,那怎么保证?靠什么电路?什么逻辑?什么时间响应?这些就是 FSC 要回答的问题。

4.1 功能安全概念的定义

功能安全概念,我习惯叫它「安全需求的架构层描述」。它不涉及具体元器件选型,也不写代码,而是定义一套高层级的、系统层面的安全措施。ISO 26262 里明确说了,FSC 要基于安全目标,定义出安全机制、安全状态、故障容错时间间隔,以及系统在故障下的行为。

我在一个 EPS 项目中遇到过这样的情况:安全目标定义得很漂亮,但到了 FSC 阶段,团队发现「检测到扭矩传感器故障后,系统该做什么」这个问题,竟然吵了三天。为什么?因为 FSC 没写清楚。所以我的经验是,FSC 一定要把「谁检测、谁决策、谁执行」这三件事说透。

核心要点: FSC 是连接安全目标与具体技术实现的桥梁。它回答三个问题——检测什么故障?故障后怎么办?多长时间内必须完成?

4.2 安全机制分配

安全机制分配,说白了就是把安全目标拆解到各个子系统、各个组件上。EPS 系统里,常见的分配方式是这样的:

安全目标 分配到的子系统 安全机制示例
防止非预期助力 扭矩传感器 + MCU 传感器信号合理性检查、双通道比较
防止助力丢失 电源管理 + 电机驱动 欠压检测、看门狗、冗余供电
防止转向卡滞 机械 + 电机 电机电流监控、位置传感器故障检测

分配的时候,我建议你画一张「安全机制分配矩阵图」。横轴是安全目标,纵轴是硬件/软件模块,交叉点写上对应的安全机制。这样做的好处是,一眼就能看出哪个模块承担的安全责任最多,哪个安全目标还没有被覆盖到。

我的习惯: 分配安全机制时,先做「单点故障分析」。如果一个安全机制失效,会不会导致安全目标被违反?如果是,那就需要再加一层冗余机制。

4.3 安全状态定义

安全状态,就是系统在检测到故障后,要进入的一个「不会造成危害」的状态。EPS 系统的安全状态,我归纳下来主要有这么几种:

  • 降级模式: 比如助力降低到 50%,让驾驶员还能打方向,但手感变重。这是最常见的 EPS 安全状态。
  • 安全关闭: 完全切断助力,系统退化为纯机械转向。注意,这要求机械部分本身是安全的。
  • 维持当前状态: 某些瞬态故障,比如通信丢了一帧,系统可以保持上一帧的输出,不切换状态。
  • 紧急操作模式: 比如检测到方向盘位置传感器故障,系统强制进入一个预设的「回家模式」,让车辆低速行驶到安全区域。

我曾经在一个项目中,把安全状态定义得太简单了——只有「正常」和「关闭」两种。结果呢?某个传感器间歇性故障,系统频繁进入关闭状态,驾驶员投诉说「方向盘突然变重,差点出事」。后来我们增加了「降级模式」和「故障确认延时」,问题才解决。所以,安全状态的定义一定要考虑故障的严重程度和持续时间。

注意: 安全状态不是越安全越好。如果一有故障就切断助力,反而可能造成驾驶员恐慌。安全状态的设计,要在「安全」和「可用性」之间找到平衡。

4.4 故障容错时间间隔

故障容错时间间隔,简称 FTTI。这个概念很多人理解错了,以为它是「故障发生后,系统还能撑多久」。其实不是。FTTI 是「从故障发生,到系统进入安全状态,所允许的最大时间」。超过这个时间,危害就可能发生。

EPS 系统的 FTTI 怎么定?我一般这么算:

  1. 故障检测时间: 从故障发生到被诊断机制检测到。比如扭矩传感器信号超范围,ADC 采样周期是 1ms,那检测时间就是 1ms。
  2. 故障反应时间: 从检测到故障,到执行安全动作。比如 MCU 判断出故障后,切断 PWM 输出,这需要几十微秒。
  3. 安全状态建立时间: 从执行动作到系统真正进入安全状态。比如电机电流降到零,需要几个毫秒。

这三段时间加起来,必须小于 FTTI。我见过一个案例,某团队把 FTTI 定成了 100ms,但他们的故障检测用了 80ms,反应用了 30ms,加起来 110ms,超了。结果在实车测试中,转向助力在故障后还持续了 120ms,驾驶员明显感觉到了异常抖动。

经验值参考: 对于 EPS 系统,FTTI 通常建议在 50ms~200ms 之间。具体取决于安全目标的 ASIL 等级。ASIL D 的项目,我一般压到 50ms 以内。

4.5 一个完整的 FSC 示例

咱们拿 EPS 的「扭矩传感器故障」来走一遍完整的 FSC 流程:

  • 安全目标: 防止因扭矩传感器故障导致非预期助力(ASIL D)
  • 安全机制分配:
    • 扭矩传感器自身:提供两路冗余信号(主信号 + 副信号)
    • MCU 软件:每 1ms 比较两路信号的差值,超过阈值则判定故障
    • 电机驱动:接收 MCU 的故障信号,切断 PWM 输出
  • 安全状态定义: 降级模式——助力降低到 30%,同时点亮仪表盘故障灯
  • FTTI: 50ms(检测时间 1ms + 反应时间 0.5ms + 建立时间 10ms,留有余量)

你看,这样写出来,每个环节都清清楚楚。开发团队拿到这个 FSC,就知道该做什么了。

避坑指南: 我曾经在 FSC 里忘了定义「故障恢复」的逻辑。结果系统进入安全状态后,故障消失了,但系统没有自动恢复,一直处于降级模式。后来我养成了一个习惯——每个安全状态都要配套定义「退出条件」。

好了,FSC 的核心内容就这些。记住,功能安全概念不是写文档,而是做设计。你写得越清楚,后面的开发和测试就越顺畅。下一章咱们聊技术安全概念,也就是 TSC,那才是真正开始画电路图、写代码的阶段。