FS-C4 — SEooC 接口工程:AoU 与 Safety Manual 如何双向闭合

更新

本质与导读

专家养成 · 模块一(功能安全)· C 阶第 4 讲。上一讲 FS-C3看门狗时,结尾留了个前提没答:那条「MCU 必须用约定算法、在窗口内、用正确种子喂狗」的规矩,到底写在哪、由谁保证 MCU 侧真照做?答案是:它是 SBC 这颗现货安全件(SEooC)对使用者提出的一条使用假设(AoU),白纸黑字写在 Safety Manual 里。今天把这个接口彻底拆开。核心问题只有一个,而且比「SEooC 是什么」深一层:一颗芯片在不知道自己会被装进哪个 item 的前提下,凭什么能声称自己是 ASIL D?这个声明的逻辑地位到底是什么?答案会逼出「双向闭合」这四个字——它不是流程术语,是这条安全论证链能不能成立的数学条件。

开篇:硬约束——「脱离上下文」的安全声明,本质是一个条件命题

先把问题的性质钉死。ISO 26262 的安全论证是一条条件链(FS-A1 讲过):每一级需求、每一个 FMEDA 数字,都不是无条件为真,而是在其上级前提成立的条件下为真。一颗 MCU 的 FMEDA 算出 SPFM = 99.3%,这个数从来不是「这颗芯片就是 99.3%」,而是「给定结温 ≤ 125 ℃、给定外部有独立看门狗、给定这些寄存器被锁……在这些条件下,SPFM = 99.3%」。条件是失效率模型的输入,数字是输出

现在制造矛盾:Tier-2 芯片厂开发这颗 MCU 时,根本不知道它会被装进 EPS 还是主驱还是 ABS。而上面那些条件——结温、外部 SM、mission profile——全都是 item 级上下文才能确定的量。芯片厂手里缺的正是算 FMEDA 必需的那组输入。

于是只剩两条路:要么等到 item 确定了再开发(那就退化成 FS-A1 的经典 SEoC / top-down 路径,失去复用价值);要么——把缺失的每一个上下文输入,写成一条显式的、有据可循的假设(justified assumption),先假设它成立,基于这组假设把 FMEDA 算出来,连同这组假设一起交付。 后者就是 SEooC(Safety Element out of Context)。

这一步一旦看清,SEooC 的全部工程就清楚了:芯片厂交付的从来不是「ASIL D 芯片」,而是一个条件命题「ASIL D | AoU 成立」。 AoU(Assumption of Use)就是那个竖线右边的条件集,Safety Manual 就是承载这个条件命题的合同。而 Tier-1 集成的本质,是去兑现竖线右边的每一个条件——这在数学上叫「discharge(卸除)一个前提」。任何一条 AoU 在真实 item 里不成立,竖线右边就塌了一块,竖线左边那个漂亮的 ASIL D 数字不是略微偏差,是整个条件概率失去定义。这就是本讲的硬约束。下面从这里推出「双向闭合」到底闭的是哪两个方向。


中段一:为什么必然要写 AoU——缺失的前提只能外化,不能默认

有人会问:芯片厂为什么不直接取个「保守值」算完了事,非要把假设列成清单甩给 Tier-1?这不是流程偏好,是条件命题的完备性逼出来的。

一个条件概率 要能被下游正确使用,竖线右边的条件集 必须被完整、显式地说出来。因为下游(Tier-1)看到的只有左边那个输出数字 99.3%,它无法从数字反推出这个数字依赖了哪些假设。一条没被写出来的隐含假设(hidden assumption),就是一颗定时炸弹:芯片厂心里默认「结温不超 125 ℃」但没写进 Safety Manual,Tier-1 把它装进 140 ℃ 的主驱控制腔,双方都以为安全论证成立,而它其实早已失效,只是没人知道。这正是 SEooC 头号量产坑「AoU mismatch」的数学根源——它是未声明前提真实上下文之间的静默偏差。

所以芯片厂的义务不是「取保守值」,而是把 FMEDA 每一个依赖的上下文输入,无一遗漏地外化成编号 AoU(AoU-001AoU-NNN)。这些条目覆盖至少这几个正交维度(参见 SEooC 工程深度 的 9 维清单):目标 ASIL、工作温度(Tamb + Tj 上限 + mission profile)、工作电压与 UVLO、时钟/开关频率、FTTI 上限外部 SM 依赖(如「必须存在独立看门狗」——正是 FS-C3 那颗 SBC 反过来对 MCU 提的镜像假设)、配置约束(哪些寄存器必须锁)、以及哪些 SM 必须 enable 才能兑现声明的 SPFM ≥ 99%

看清一件事:AoU 不是「注意事项」,是 FMEDA 的输入参数快照。Microchip 的 Safety Manual 原话说得很直白:「系统集成方满足 Safety Manual 里列的所有 AoU,而这些 AoU 在分析失效率与 Fault metrics 时已被假定为满足。」——「已被假定为满足」七个字,就是把条件命题的竖线右边钉死。


中段二:双向闭合的确切含义——前向验真 + 后向锚定,两个方向都不许有孤儿

「双向闭合」是本讲题眼,必须拆精确,否则会被当成「Tier-2 写、Tier-1 读」这种废话。它指的是安全论证链要在两个相反方向上都无缝合拢:

前向闭合(Safety Manual → AoU → Tier-1 验真):芯片厂把每条 AoU 推下去,Tier-1 必须对每一条给出验证状态——Satisfied / Violated / Not-Applicable,且每个状态都要有论证。一条 AoU 没被 Tier-1 处理,就是竖线右边有一个条件悬空:那个 ASIL D 数字下游根本没资格引用。前向闭合回答的是:「芯片厂列出的每一个前提,是否都在真实 item 里被卸除了?」

后向闭合(每条 AoU ← 反向锚定到它保护的那个 SM / FMEDA 数字):反过来,每一条 AoU 都必须能回指到一个具体的、它在保护的安全断言——某条 SM 的诊断覆盖率、某个失效率分配、某个 SPFM 分量。一条找不到对应保护对象的孤儿 AoU,要么是冗余(白白给 Tier-1 加验证负担),要么暴露了 Safety Manual 结构没理清。后向闭合回答的是:「每一个被算进 metric 的假设,是否都能追溯到它撑起的那个数字?」——这本质是 FMEDA 假设集的可追溯性(traceability),和 FS-A1 讲的双向链、FS-A5 讲的「覆盖且不超出」是同一条第一性原理在组织边界上的投影。

两个方向合起来才叫闭合。前向缺失 = 有前提没兑现(装了炸弹);后向缺失 = 有数字没依据(虚高的 metric)。 任一方向漏一条,安全论证链就在 Tier-2/Tier-1 的组织缝隙里断掉——而这条缝隙恰恰是 assessment 时 TÜV 第一个撬的地方。承载这套双向账的法律文档是 DIA(开发接口协议,ISO 26262-8:2018 Clause 5):它用 RACI 把「哪条 AoU 谁验、哪个数字谁出、版本升级谁触发 delta 分析」写成可审计条款(见 TSC + DIA 深度)。没有 DIA,双向闭合就没有可执行的载体。


中段三:worked example——一条 AoU 违反,如何把条件概率击穿

「AoU mismatch 会掉 ASIL」是口号,下面把它算成数,顺便纠正一个业内高频含糊说法。

设定。 某 ASIL D 主驱的 PMHF 预算里,这颗 MCU 元件分得的份额,在 Safety Manual 假设工况(结温 )下,FMEDA 算得 。ASIL D 要求 PMHF (ISO 26262-5,已核),故假设工况下通过,余量 4 FIT。现在 Tier-1 把它装进真实控制腔:高温路况下实测结温 ,违反 AoU-温度

用 Arrhenius 算真实失效率。 半导体随机失效率随温度按 Arrhenius 加速,加速因子

取硅器件对未知机理的默认活化能 (已核:业界对未知失效机理默认取 0.7 eV),,温度转开尔文 :

即结温从 125 ℃ 升到 140 ℃,随机失效率约翻到 2.1 倍(与「每升约 10 ℃ 失效率翻倍」的工程经验一致,已核)。于是真实 PMHF:

PMHF 从 6 FIT 冲到 12.6 FIT,越过 ASIL D 上限 —— 量产不能放行。 而 Tier-1 若只翻 datasheet 的 25 ℃ typical 值打勾,这条 mismatch 完全隐形,直到路测或产线 FMEDA 复算才暴露。这就是「验真 ≠ 读到」的量化含义。

第一性纠正(业内高频含糊点)。 很多资料会顺口说「温度超标 → SPFM 跌破 99%」——这在一阶上是错的,值得单独讲透。SPFM 是一个比值:

如果所有失效模式共享同一 、同一温度,升温给每个 乘同一个 AF,分子分母同乘 AF,比值不变——SPFM 对均匀升温一阶免疫。真正被均匀升温直接击穿的是 PMHF 这个绝对量(和绝对 、和 FIT 预算),因为它不是比值、AF 不会约掉。SPFM 只有在二阶效应下才动:不同失效模式活化能不同、或某条 SM 的诊断覆盖率本身随温漂移(比如比较器阈值漂了导致 DC 下降)。所以正确的因果是:温度 mismatch 首先打 PMHF(绝对失效率预算),再经二阶机制才可能碰 SPFM。 把这两者分清,才不会在 FMEDA 复算时找错受击穿的指标——这正是 maker≠checker 该抓的那类「讲得顺但算不对」。


中段四:为什么闭合是「验真」不是「读到」——datasheet typical 是最隐蔽的假通过

上一节的数已经点破:Tier-1 最隐蔽的失败不是不读 Safety Manual,而是用错了数据源去验 AoU。这值得从第一性讲清,因为它是「假通过」的头号来源。

根因在于 datasheet typical 值与 Safety Manual assumed context 是两套不同源的数值体系。datasheet 的 typical 往往是 25 ℃、标称电压、单次测量的中心值;而 FMEDA 假设的是全温度、全寿命 mission profile、带保守余量的 worst-case 应力。Tier-1 若拿 UVLO typ、传播延迟 typ、 typ 去给 AoU 打勾,打的其实是「标称点满足」,而 FMEDA 依赖的是「corner 满足」。表面每条 AoU 都 Satisfied,竖线右边的条件却在温度/电压 corner 下悄悄为假——AoU 表面闭合、FMEDA 假设不闭合,量产在 corner 下掉档(与上节温度案例同一物理根因)。

所以「验真」有确切的操作含义:对每条 AoU,用 Safety Manual 的 FMEDA 所假设的那个应力值去核,而不是 datasheet 的 typical;并且 validation 必须实测 AoU 边界(温度 corner、电压 corner、fsw corner、FTTI 端到端时序、SM 注错触发),而不是只跑 nominal。这也是后向闭合的实战投影:每条 AoU 验证,都要落到它保护的那个 FMEDA 数字在真实应力下仍然成立

而当某条 AoU 确实 Violated,双向闭合的后向通道就启动了:Tier-1 不能私自「就近取整」放行,必须走 ISO 26262-8 变更管理触发 impact analysis——要么改 item 设计把条件拉回 AoU 范围(如加散热把 Tj 压回 125 ℃),要么反向委托 Tier-2 按真实工况重出定制 FMEDA(NXP S32K3 提供 customer-configurable FMEDA 正是为此)。这条「Tier-1 → Tier-2」的回推,才让「双向」名副其实:前向推假设下来,后向把违反顶回去,闭环才合上。


落到工程结论:SEooC 集成的验真判断链 + 三条准则

给定一颗带 Safety Manual 的 SEooC 芯片,专家的集成判断链是:

  1. 先把交付物读全,不止 datasheet:Safety Manual 的 AoU 清单(第 3 章)+ SM 列表(第 4 章)+ FMEDA 输入参数是核心;只读 datasheet 数值 = 没读。产出:编号 AoU 全清单 + 每条对应保护的 SM/metric。
  2. 对每条 AoU 逐条定状态 + 论证:Satisfied / Violated / N-A,提进需求系统(DOORS / Polarion / Codebeamer)。关键:用 FMEDA 假设的 corner 应力值核,不是 datasheet typical——这一步防住最隐蔽的假通过。
  3. Violated 走变更管理,不许就近放行:触发 ISO 26262-8 impact analysis,要么改 item 把条件拉回范围,要么委托 Tier-2 按真实 mission profile 重出定制 FMEDA。
  4. validation 实测 AoU 边界:温度/电压/fsw corner + SM 注错触发 + FTTI 端到端,覆盖真实 mission profile 应力,不是只测标称点。
  5. DIA 锁双向账 + 版本:三方 RACI 写清每条 AoU 谁验、每个数字谁出;Safety Manual 文档号 + die revision 锁进 DIA §3,任何版本升级触发 delta-AoU 分析(OTA 引发 MCU Safety Manual 变更最易漏)。

带走三条准则:

  1. SEooC 交付的不是「ASIL D 芯片」,是条件命题「ASIL D | AoU 成立」。 AoU 是那个竖线右边的条件集,集成的全部功夫是把每个条件在真实 item 里卸除;卸不掉一条,左边的数字就失去定义——不是扣分,是无定义。
  2. 双向闭合 = 前向验真(每条 AoU 都被 Tier-1 处理)+ 后向锚定(每条 AoU 都追溯到它保护的 metric)。 前向漏 = 装炸弹,后向漏 = 数字虚高;两个方向都不许有孤儿,DIA 是这套双向账的可审计载体。
  3. 温度/电压 mismatch 首先击穿 PMHF(绝对失效率),不是 SPFM(比值,对均匀升温一阶免疫)。 验 AoU 要用 FMEDA 假设的 corner 应力核,不是 datasheet typical;找对被击穿的指标,才不会在复算时张冠李戴。

承上启下:今天我们看清 SEooC…

承上启下:今天我们看清 SEooC 接口的本质是一个条件命题的双向闭合——Safety Manual 把 FMEDA 依赖的每个上下文外化成 AoU,Tier-1 前向逐条验真、后向锚定到它保护的 metric,任一方向漏一条,ASIL 声明就在组织缝隙里静默失效。但这里一直有个乐观假设没被质疑:我们默认「只要 SM enable 了、数字算对了,芯片就真的在按 FMEDA 说的那样工作」。可如果芯片算错了却不报错——ALU 偶发位翻转恰好没触发任何诊断、算出一个合法但错误的结果呢?这类**静默数据腐蚀(Silent Data Corruption)**不改变任何代理信号(呼应 FS-C3 看门狗覆盖不到的那一类),却能悄悄击穿 FMEDA 里 DC 与 LFM 的假设。下一讲 FS-C5SDC:静默误算如何绕过诊断、补偿手段有哪些。预热可读 诊断覆盖率分级


延伸阅读