4、功能安全概念(FSC):安全目标的导出、功能安全需求、安全机制初步设计、故障容错时间间隔
好,我们进入功能安全概念阶段。这是整个安全开发的骨架,说白了就是回答三个问题:要防止什么?怎么防止?多快防止?
我个人习惯把 FSC 比作给系统做「免疫系统设计」。你不能等病毒入侵了再想对策,得提前把抗体、隔离区、应急方案都规划好。这一章我们就把这套免疫系统的设计方法拆开来讲。
4.1 安全目标的导出
安全目标(Safety Goal, SG)是 FSC 的起点。它来自上一章做的 HARA 分析,每个危害事件都可能对应一个或多个安全目标。
安全目标的定义原则:
- 顶层性:描述的是「要避免什么」,而不是「怎么避免」。
- 可验证性:目标必须能被测试或分析证明。
- ASIL 等级继承:安全目标的 ASIL 等级直接继承自对应的危害事件。
示例:智能座舱中控屏黑屏危害
危害事件:行驶中中控屏突然黑屏,导致驾驶员无法查看导航和车速信息。
安全目标 SG-1:中控屏在车辆行驶过程中,必须持续显示车速、挡位等关键驾驶信息,避免因信息缺失导致驾驶员分心或误操作。
ASIL 等级:B(C)
我在项目中遇到过一个问题:安全目标写得太细,直接写成了「CPU 要每 100ms 刷新一次显示」。这其实是功能安全需求该干的事。安全目标要站在系统层面,别掉进实现细节里。
4.2 功能安全需求
安全目标定好了,接下来要把它翻译成具体的技术要求。这就是功能安全需求(Functional Safety Requirement, FSR)。
FSR 的导出方法:
- 对每个安全目标,分析系统需要具备哪些功能来达成它。
- 考虑正常模式和故障模式下的行为。
- 分配 ASIL 等级(可以继承,也可以分解)。
| 安全目标 ID | 功能安全需求 ID | 需求描述 | ASIL |
|---|---|---|---|
| SG-1 | FSR-1.1 | 系统应具备独立的看门狗监控主控芯片运行状态,当主控芯片无响应超过 200ms 时,看门狗应触发系统复位。 | B |
| SG-1 | FSR-1.2 | 系统应具备显示内容完整性校验机制,每 100ms 对关键显示区域进行 CRC 校验,校验失败时进入安全状态。 | B |
| SG-2 | FSR-2.1 | 系统应检测触摸屏输入异常(如持续误触超过 5s),并自动屏蔽触摸输入,直到驾驶员确认。 | A |
我的经验:写 FSR 时,一定要把「触发条件」和「系统响应」写清楚。我曾经见过一份需求只写了「系统应检测故障」,但没写检测到什么算故障、检测到后做什么。这种需求没法落地,评审时肯定被怼回来。
4.3 安全机制初步设计
有了需求,就要设计具体的安全机制来实现它。安全机制就是系统的「免疫细胞」——检测故障、响应故障、恢复系统。
常见的安全机制分类:
- 检测机制:看门狗、ECC 校验、CRC 校验、电压/电流监控、时序监控。
- 响应机制:系统复位、降级模式、安全状态切换、故障指示。
- 冗余机制:双核锁步、信号冗余、通道冗余。
举个例子,智能座舱的显示系统,我通常会设计这样一套安全机制:
- 主控芯片内部:双核锁步(Lockstep)检测 CPU 计算错误。
- 显示链路:每帧图像加入 CRC 校验,接收端校验失败则显示黑屏警告。
- 电源监控:独立电压监控芯片检测供电是否正常。
- 看门狗:外部看门狗监控主控心跳,超时则强制复位。
注意:安全机制本身也可能失效!比如看门狗芯片自己坏了怎么办?所以安全机制也要有诊断覆盖率的概念。我一般会要求安全机制的诊断覆盖率至少达到 90%,对于 ASIL D 的系统甚至要 99% 以上。
4.4 故障容错时间间隔
故障容错时间间隔(Fault Tolerant Time Interval, FTTI)是个容易被忽视但极其重要的参数。它定义了从故障发生到系统进入安全状态的最大允许时间。
FTTI 的组成:
| 阶段 | 描述 | 典型时间 |
|---|---|---|
| 故障潜伏期 | 故障发生到被检测到的时间 | 10-100ms |
| 故障响应时间 | 检测到故障到开始执行安全措施的时间 | 5-50ms |
| 安全状态到达时间 | 执行安全措施到系统进入安全状态的时间 | 20-200ms |
你想想看,如果 FTTI 是 200ms,但你的故障检测就要 150ms,留给响应的时间只有 50ms,这就很紧张了。所以设计时一定要留余量。
我曾经在一个项目中,客户要求 FTTI 是 100ms,但我们的看门狗超时时间设了 150ms。结果评审时直接被指出不符合要求。后来我们把看门狗超时改成 80ms,再配合快速复位电路,才勉强达标。
4.5 知识体系总览
下面这张图把 FSC 的核心流程串起来了,你可以对照着理解:
嗯,到这里 FSC 的核心内容就讲完了。记住,安全目标要顶层、FSR 要可落地、安全机制要有覆盖率、FTTI 要留余量。这四块做好了,功能安全概念阶段就算扎实了。