FS-A3 — FTTI 时间预算:为什么容错时间是一切安全机制的根约束,以及它如何一路拆到采样率

本质与导读

专家养成 · 模块一(功能安全)· A 阶第 3 讲。上一讲 FS-A2 把无量纲的风险压成了 S×E×C 三维、ASIL 五档,并看清 ASIL 本质是 PMHF/SPFM/LFM 这套定量风险削减预算的入口。但那套预算只回答了"要削减多少",没回答"多快削减"。一个安全机制(SM)可以诊断覆盖率 99%、可以单点故障度量达标,却因为慢了几微秒而完全失效——器件已经热击穿,再正确的反应也是给尸体做手术。今天补上时间这一根轴:故障容错时间 FTTI,以及 怎么从一个顶层时间窗,一路分解到 ADC 采样率和诊断任务周期这种可以直接拍板的工程参数。

开篇:硬约束——SM 的正确性里藏着一个被忽视的时间维度

回到 FS-A1 那条分解-聚合链。链上每一环的安全机制,工程上习惯只问两件事:它测不测得到这个故障(诊断覆盖率 DC),它测到后做不做得对(反应是否进安全状态)。这两问都是"功能正确性"的问题。但它们漏掉了第三问,而且是更硬的一问:它够不够快

为什么这一问更硬?因为前两问的失败是可补偿的——DC 不够可以加诊断、反应不对可以改逻辑;而时间不够是不可补偿的物理事实。故障到危害之间有一段倒计时,这段时间用完的那一刻,危害就物理地发生了,与你的 SM 设计得多精巧无关。一个"正确但迟到"的 SM,其安全贡献严格等于零——更糟,它会在 FMEDA 里被错误地 claim 成有效覆盖,给整条 Safety Case 注入一个静默的假证据。

所以功能安全体系里有一个和 ASIL 同等地位、却更容易被工程师当成"次要参数"的根约束:每一个安全机制都有一个由危害物理定死的截止期,这个截止期就是 FTTI。SM 的全部时序设计,都是在这个不可谈判的窗口里求解。 这就是 FS-A3 的硬约束。下面从第一性原理推:这个窗口从哪来、为什么只能拆成两段、以及怎么把它翻译成采样率。


中段一:FTTI 的第一性定义——它是 item 的属性,不是 SM 的指标

先把定义钉死,否则后面全乱。FTTI(Fault Tolerant Time Interval,故障容错时间间隔):从故障在系统中发生的时刻,到该故障可能导致危害事件的时刻,二者之间的时间间隔——前提是安全机制不动作

这个定义里有一个最容易被忽略、却决定了整套方法逻辑的限定:"安全机制不动作"。为什么要假设 SM 不存在?因为 FTTI 衡量的是危害本身的物理急迫性,它必须独立于你将要设计的那个 SM。如果允许 SM 参与定义,逻辑就循环了——你会用 SM 的速度去论证 SM 够快。正确的因果方向是:FTTI 由 item + 危害的物理决定(是分母),SM 的检测 + 反应时间是要塞进这个分母的被除数(是预算消耗)。 把这个方向搞反,是新手写 TSR 时最隐蔽的错误。

由此推出两条直接结论:

第一,FTTI 是 per-hazard 的,不是一个全局数字。 既然它由具体危害的物理决定,不同危害的 FTTI 可以差好几个数量级。EV 主驱里:

  • 硬短路 / shoot-through:倒计时是器件的短路安全工作区(SCSOA),SiC 约 IGBT——微秒级。
  • 过温 / 绝缘退化 / CAN 报文超时:热惯量和工况决定倒计时是毫秒到百毫秒级。

把慢故障的预算套到快故障上,器件已经炸了你还没采到第二个样本;把快故障的预算套到慢故障上,则是拿微秒级硬件去过度设计一个毫秒级问题,白烧成本。所以方法学的第一步永远是:先按危害把 FTTI 归类,再分别给每类立预算。

第二,FTTI 是设计的约束,不是设计的目标。 你不能"把 FTTI 设大一点让设计轻松"——它不归你管,它归物理管。你能动的只有窗口内的两段时间。这一点 FTTI 预算分解深度SiC 微秒账本讲透了硬件侧;本讲补它没展开的另一半——这个约束如何向上决定采样率、向旁区分两个时间尺度。


中段二:为什么 FTTI 只能拆成 FDTI + FRTI 两段——两次状态转移的必然

ISO 26262 把 FTTI 拆成两个子区间,很多人当成约定记下来。其实它是因果上的必然:从"故障已发生"到"系统已安全",中间有且只有两次状态转移,所以预算必然两段:

  • FDTI(Fault Detection Time Interval)——从故障发生到 SM 确认检出。状态从"故障存在但系统不知道"转到"系统已确认有故障"。
  • FRTI(Fault Reaction Time Interval)——从确认检出到系统到达安全状态。状态从"已知有故障"转到"已物理进入安全态"(栅极关断完成、扭矩归零、主动短路建立)。

任何你能想到的中间步骤——报文上报、仲裁、执行器动作——都必然落在这两段之一里,不会冒出第三段。这就是为什么不是三段、不是一段:状态机从"故障"到"安全"恰好跨两条边。

两段各被什么卡住,决定了它们都不能取零:

FDTI 不能取零,因为检测必须先躲过合法瞬态。最典型的是栅极驱动里的消隐时间(blanking):器件正常开通时 还没降下来,若不等待就会把每次正常开通误判成短路。这段强制等待是 FDTI 的下限。对软件诊断,对应的是"去抖确认"——后面会看到它直接吃采样周期。

FRTI 不能取零,因为安全态的建立要搬运能量,而能量搬运受 约束。短路时硬关栅极,极大的 过压会反过来击穿器件——所以必须用软关断(soft turn-off)受控地降电流,这本身要花 。FRTI 是"关得太快会过压击穿、关得太慢会吃光 SCSOA"两个边界夹出来的窗口,详见 DESAT 保护深度

于是硬约束完整写法不是简单相加等于,而是要扣掉工程余量:

余量 留给器件离散、温度漂移、老化和测量不确定度。SiC 主驱实践常取 SCSOA 的约 60%(即 )。这条不等式就是一切 SM 时序设计的总账。 下一节把它向上解一格,得到采样率。


中段三:核心推导——FTTI 如何决定采样率与诊断周期

前面 FDTI 对硬件比较器是"消隐 + 比较延迟"。但对周期采样的诊断(软件读 ADC 判过流、判过速、判过压,或周期性自检),FDTI 的构成完全不同,而且这里藏着把顶层时间预算翻译成具体工程参数的最关键一步——它直接定死你的采样率下限

因果链是这样的。一个周期诊断以诊断测试间隔 (Diagnostic Test Interval,DTI,对采样诊断就是采样周期)反复检查。故障可以在任意时刻发生,与采样栅格无相位关系。最坏情况:故障恰好在一次采样刚结束后才出现,那它要白等将近一整个 才被下一次采样看到。这是第一笔延迟。

更现实的是,几乎所有诊断都要去抖——为抗噪声 / 抗单次毛刺,要求连续 次采样都判正才确认(-out-of-),否则一次 EMI 尖峰就误触发安全态(误进安全态本身是另一类危害)。于是确认还要再等 个周期。加上每次采样的处理 / 通信延迟 ,最坏检测时间是:

把它代回上一节的总账 ,解出对采样周期的硬上限:

这就是把一个抽象时间窗(FTTI)落到一个可以直接配置寄存器的数字(采样率 、诊断任务周期 )的桥。 读到 FTTI,你就能反推这条诊断链的 ADC 采样率、定时器中断频率、看门狗喂狗周期该设多少。

走一个数:DC-link 过压这类中速电气故障,设 FTTI (由母线电容能量与器件耐压决定),反应是触发主动短路 / 断开逆变器,,单次处理 ,去抖 ,余量 。代入:

即诊断采样率至少 ;工程上取整到 ()留头寸。FTTI 就是这样反向定死了你的安全诊断环路速率——它不是控制带宽决定的,是危害倒计时决定的,两者谁紧取谁。

现在反过来用这把尺子审视硬短路:FTTI ,即使把 FRTI 和 压到极限、,要求的 也是兆赫兹量级,远超任何主控 MCU 的中断 + ADC 链能稳定兑现的速率。这把采样率公式于是给出一个第一性原理的结论:微秒级故障在数学上无法用"采样—判决"的离散诊断兜住,检测必须坍缩成 的连续模拟比较(DESAT 比较器 / 退饱和检测)。 这正是为什么快电气故障的保护必须离开软件域、下沉到栅极驱动里的硬件层——不是工程偏好,是采样定理逼出来的硬边界。两级保护架构(快故障走 2nd-Level 硬件 、慢故障走 1st-Level 软件 )的分界线,本质就是这条公式的解可行 / 不可行的分界,见 安全状态管理器深度


中段四:第二根时间轴——FTTI 之外还有 MPFDTI,别用一把尺子量两件事

到这里讲的全是"单点故障发生后必须在 FTTI 内反应"。但 FMEDA 里还有一类故障——潜伏故障(latent fault):某个安全机制自己悄悄坏了,平时没人察觉,直到第二个独立故障到来时,本该兜底的 SM 才暴露失效,两个故障叠加击穿安全目标。这类故障对应的时间约束不是 FTTI,而是另一根尺度完全不同的轴:MPFDTI(Multiple-Point Fault Detection Time Interval,多点故障检测时间间隔)

为什么它的时间尺度可以宽几个数量级?因为它要赶的不是"危害的物理倒计时",而是"第二个独立故障的到来"。第二个故障是随机硬件失效,其到达本身是稀有事件(FIT 量级)。只要在第二故障统计上可能到来之前把第一个潜伏故障检出修复,双点失效就不会形成。所以 MPFDTI 通常放宽到一个驾驶循环 / 每次上电自检(key-on test),即小时级——而不是 FTTI 的微秒 / 毫秒级。

这根轴服务的是另一个指标:它决定潜伏故障度量 LFM(FS-A2 提到的 ASIL D ),而 FTTI 服务的是单点故障度量 SPFMPMHF。把两者混为一谈会犯两类对称的错:

  • 用 FTTI 的紧度去要求潜伏故障检测——逼着上电自检在毫秒内跑完,过度设计、挤占启动时序。
  • 用 MPFDTI 的松度去对待单点反应——以为"一个驾驶循环内查到就行",而真实单点故障会在微秒内把器件烧穿。

一句话收束:FTTI 量的是"危害多快到",MPFDTI 量的是"第二个故障多久来";前者治单点、喂 SPFM,后者治潜伏、喂 LFM。两根轴差几个数量级,各自独立立预算。 两者最终都在 FMEDA 里汇成 SPFM / LFM / PMHF 三个数,见 FMEDA 深度诊断覆盖率分级


FTTI 时间预算 — 故障→FDTI→检出→FRTI→安全态,FDTI+FRTI≤(1-β)FTTI;反推采样率 T_s≤((1-β)FTTI-FRTI-t_proc)/m,μs级故障须下沉硬件连续检测;FTTI 单点/SPFM 与 MPFDTI 潜伏/LFM 两根独立轴

落到工程结论:自顶向下的时间预算分解 + 三条准则

把四段拼成一套能直接执行的分解流程。给定一个危害:

  1. 定 FTTI:由危害物理定倒计时(器件 SCSOA / 母线能量 / 热惯量 / 工况),归类是快(μs,硬件)还是慢(ms,软件)。
  2. 切两段:在 内分配 FDTI 与 FRTI;FRTI 由安全态建立的能量搬运(soft-off 的 )定下限,先扣掉它。
  3. 拆到采样率:把剩余预算用 翻译成采样率 / 任务周期;若解出的 超出 MCU 可行域,说明这条故障必须下沉到硬件连续检测。
  4. 另立潜伏轴:对兜底用的 SM,额外用 MPFDTI(驾驶循环 / key-on 自检)约束其潜伏故障检测,喂 LFM。
  5. 写进 TSR + 实测闭环:把 FDTI / FRTI / FTTI / 余量都写成可验证的数,bench/HIL 注入故障、示波器分段抓端到端延迟核验,见 FSR/TSR 写法

带走三条准则:

  1. FTTI 是分母不是目标。 它由物理定死,你只能在窗口内分配检测 + 反应。任何"调大 FTTI"的念头都是逻辑错位。
  2. 采样率是 FTTI 的下游,不是控制带宽的下游。 安全诊断环路的速率,谁紧(危害倒计时 vs 控制需求)取谁;去抖次数 直接乘进 FDTI,定 时就在花时间预算。
  3. 快故障和潜伏故障用两把尺。 FTTI 治单点(微秒/毫秒,喂 SPFM),MPFDTI 治潜伏(驾驶循环,喂 LFM);混用必出过度设计或漏窗炸器件两类错。

承上启下:今天我们补上了 ASIL…

承上启下:今天我们补上了 ASIL 预算缺的那根时间轴——FTTI 是危害定死的容错窗, 是一切 SM 时序的总账,并由它一路反推到采样率,还看清了 MPFDTI 是治潜伏故障的第二根独立轴。但我们一直把"安全机制"当黑盒在用——它到底分几类、检测段和反应段是不是同一种东西、容错和检测有什么本质差别?下一讲 FS-A4 拆安全机制的分类学:检测 / 反应 / 容错三类各自的本质、物理实现与适用边界——正是今天 FDTI 段(检测类 SM)和 FRTI 段(反应类 SM)落在不同机制上的根源。预热可读 安全机制目录


延伸阅读