AUTOSAR Safety BSW 深度 — WdgM / SafetyOS / E2E / MPU 协同
本质与导读
本质 AUTOSAR Classic 的 ASIL D 软件安全不靠单点,而靠 BSW 层 WdgM、E2E、Safety OS、MPU/CRC Driver 协同——时间监督、通信完整性、空间/时间隔离三类保护缺一不可,任一缺位即无法 claim ASIL D。
1. AUTOSAR Safety BSW Stack 全景
下图把 5 大 Safety module 在 AUTOSAR stack 中的位置一次说清:
5 大 module,以及三个容易被画错/说错的定位细节:
- WdgM — Services Layer 标准模块(SWS WatchdogManager),经 WdgIf → Wdg drv(MCAL)三层链驱动内部/外部看门狗,监督任务
- E2E — 严格说是 library(SWS E2ELibrary),不驻留某一层:RTE 通过 E2E Transformer(E2EXf)在信号收发路径上调用它,图中画在 Services 层是示意位置
- Safety OS — 商用叫法,不是规范模块名:隔离能力(memory / timing protection、OS-Application)是 SWS Os 在 SC3/SC4 下的规范内建(§4.1)
- MPU Driver — 标准里没有独立的 MPU SWS:MPU 由 OS 在启动与上下文切换时管理;vendor MCAL 常附带非标 Mpu 复杂驱动,图中位置按 vendor 实践画
- CRC Driver / library — CRC 例程来自 SWS CRCLibrary,可绑定硬件加速(如 TC397 的 FCE)
2. WdgM (Watchdog Manager) 深度
WdgM 是任务监督的核心:每个被监督对象是一个 supervised entity(SE),SE 在代码关键路径上打 checkpoint(WdgM_CheckpointReached),WdgM 的周期 MainFunction 独立汇总仲裁——监督者与被监督者解耦,这是它比"task 自己喂狗"强的根本原因。
2.1 alive supervision
alive supervision 验的是"活性 + 频率":SE 在一个 supervision reference cycle(WdgMSupervisionReferenceCycle)内报告 checkpoint 的次数必须落在期望值 ± 容差内(WdgMExpectedAliveIndications + WdgMMinMargin/WdgMMaxMargin):
- 抓 task 挂死(次数 = 0)与超频跑(如中断风暴导致重复执行,次数超上限)
- 只数次数不看时点——task 在 cycle 末尾挤着跑完也算 OK,所以它测不出调度抖动
- 失败可容忍
WdgMFailedAliveSupervisionRefCycleTol个 reference cycle(local status 先进 FAILED),超出才 EXPIRED
2.2 deadline supervision
deadline supervision 验的是"时点":一对 checkpoint(start → end)之间的实测间隔必须落在 [min, max]:
- 抓调度延迟 / 抖动 / 执行时间漂移——正好补 alive 的盲区
- 违规没有容忍参数,local status 直接 EXPIRED(SWS WdgM 状态机:FAILED 只可由 alive 失败进入)
- 典型用在 ASIL D 主驱 PWM / 电流环这类硬实时任务
2.3 logical supervision
logical supervision 验的是"控制流":checkpoint 构成有向图,运行时的转移必须沿配置边(A → B → C):
- 抓 SEU 打飞 PC、非法跳转、被跳过的初始化 / 校验步骤
- 与 alive/deadline 正交:次数对、时间对、但顺序错,只有它能抓
- 违规同样直接 EXPIRED,无容忍
2.4 状态机与三条反应路径
WdgM 的反应不是简单"咬狗复位",local / global 两级状态机给了分级处理空间。local status:OK → FAILED(仅 alive,容忍窗内)→ EXPIRED;global status:OK / FAILED / EXPIRED / STOPPED / DEACTIVATED。三条反应路径按烈度递增:
- 应用级降级 — RTE mode notification 把 local/global status 通知 SWC,应用做 limp-home 仲裁
- 分区级重启 — 结合 OS-Application:
TerminateApplication(RESTART)只重启出错分区 - 系统级复位 / 安全态 — global EXPIRED 后,WdgM 还容忍
WdgMExpiredSupervisionCycleTol个 supervision cycle 才进 STOPPED、停止经WdgIf_SetTriggerCondition喂狗——这个容忍窗是刻意留给 Dem/NvM 写 freeze frame 的,归零它就等于放弃故障记录(§12 G2)
2.5 与 SBC fast WD 联动
MCU 内部 WD 不独立于 MCU 自身失效,ASIL D 必须再挂一条外部硬件通道:
- WdgM 停喂 → Wdg drv 停止服务 SBC 外部看门狗(window 或 Q&A 协议)
- SBC 超窗 / 答错计数达限 → 硬件拉 safe-state 输出直达栅极驱动 STO,不经 MCU 决策
- 协议与器件对比见 topic-sbc-watchdog-deep;本页 §7 给 TLF35584 全链算术
3. E2E (End-to-End) 深度
E2E 保护"发送 SWC 封装 → 接收 SWC 解封"整条软件路径的通信完整性——链路层 CRC 在每个网关被剥掉重算,只有 E2E 是真端到端。FO R23-11 PRS E2E Protocol 定义 10 个数据 Profile(1/2/4/5/6/7/8/11/22/44)+ 4 个 method Profile(4m/7m/8m/44m,给 SOME/IP 方法调用);信号类通信只看前十个。
3.1 E2E Profile 选型
选型三维:总线带宽预算 × 消息定长/变长 × ASIL 对 CRC/Counter 强度的下限。主流几档:
| Profile | CRC | Counter | 线上开销 | 定位 |
|---|---|---|---|---|
| P01 → P11 | 8-bit (0x1D) | 4-bit | ≈ 2 B | CAN classic;P01 legacy,新项目用 P11 |
| P02 → P22 | 8-bit (0x2F) | 4-bit | ≈ 1.5 B | CAN classic,DataIDList 轮换;P22 是 P02 现代替代 |
| P05 | 16-bit (0x1021) | 8-bit | 3 B | CAN-FD 定长消息,ASIL D 主流 |
| P06 | 16-bit (0x1021) | 8-bit | 5 B(含 Length) | CAN-FD / FlexRay 变长消息 |
| P04 | 32-bit (0xF4ACFB13) | 16-bit | 12 B(含 Length) | Ethernet / SOME/IP,数据 ≤ 4 KB |
| P44 | 32-bit (0xF4ACFB13) | 16-bit | 12 B | P04 大数据版,≤ 64 KB |
| P07 | 64-bit (ECMA) | 32-bit | 20 B | Ethernet 大 PDU |
| P08 | 32-bit (0xF4ACFB13) | 32-bit | 16 B | Ethernet,长计数需求 |
两个常见口径错误在此正名:P22 不是 R22-11 新增——它和 P11 一样是老 Profile(P02/P01)的现代替代,规范明言新项目弃 P01/P02;"主驱推荐 P04"不成立——扭矩指令走 CAN-FD 定长帧时主流是 P05(3 字节开销,32 字节帧装得下 E2E + SecOC),P04 是 Ethernet backbone / SOME/IP 侧的选择。
3.2 CRC + Counter + DataID
三个字段各抓一类 fault,组合才覆盖 ISO 26262-6 Annex D 的通信 fault 清单:
- CRC:抓数据内容随机损坏(bit flip);多项式与 Hamming distance 证据链、以及"CRC 不抓什么"见 topic-can-e2e-secoc §3
- Counter:抓重放 / 丢失 / stuck / 乱序;接收端按增量判 OK / OKSOMELOST / REPEATED / WRONGSEQUENCE / NONEWDATA
- DataID:抓无意 masquerade(错的发送端 / 错路由)——进 CRC 计算,两端配置不一致时表现为 100% CRC fail
- 状态聚合交给 E2E state machine(E2E_SM):滑动窗口 + OkCount/ErrorCount 判 VALID/INVALID,应用只消费 SM 状态而非单帧 status——完整参数化与 FTTI 预算见 topic-can-e2e-secoc §9
4. Safety OS 深度
"Safety OS" 指按 ASIL 开发/认证的 AUTOSAR OS 实现(Vector MICROSAR Safe、EB tresos Safety OS、ETAS RTA-OS 等);其隔离机制全部来自 SWS Os 的 Scalability Class 定义,不是 vendor 私货。
4.1 Scalability Class — 隔离能力的规范开关
SC 等级决定 OS 带哪些保护,选错等级 = 隔离能力先天缺失:
| SC | 内容 | 典型场景 |
|---|---|---|
| SC1 | OSEK OS + schedule table | 单 ASIL、无分区小 ECU |
| SC2 | SC1 + timing protection + 全局时间同步 | 时间隔离需求 |
| SC3 | SC1 + memory protection + OS-Application + trusted function | 混合 ASIL 空间隔离 |
| SC4 | SC2 + SC3 全集 | ASIL D 主驱标配 |
4.2 OS-Application 隔离
OS-Application 是分区单元:task / ISR / counter / alarm 按信任域打包:
- 一个 ECU 内多个 OS-App,不同 ASIL 任务归不同 OS-App
- trusted OS-App 特权态跑(通常 BSW),non-trusted 用户态跑,ASIL D 与 QM 严格分开
- 分区级恢复:
TerminateApplication可带 RESTART 选项,错误不必整机复位
4.3 Memory Protection
空间隔离由 MPU 硬件 enforce,OS 在上下文切换时切保护配置:
- 每 OS-App 拥有独立 data / stack region,写其他 region → 硬件 trap
- trap 进 ProtectionHook,返回值决定烈度:
PRO_IGNORE/PRO_TERMINATETASKISR/PRO_TERMINATEAPPL(_RESTART)/PRO_SHUTDOWN - 只隔 RAM 不够——外设寄存器空间同样要进访问矩阵(§12 G3)
4.4 Timing Protection
时间隔离防"高 ASIL 任务被低 ASIL 任务饿死",SC2/SC4 内建三个预算:
- execution time budget:单次激活的最坏执行时间上限(如 100 μs)
- inter-arrival time:两次激活的最小间隔,防中断风暴 / 高频重触发
- resource lock / interrupt disable 时间上限:防长临界区阻塞高优先级任务
- 超限 → ProtectionHook;注意 budget 必须按 WCET 配而非平均值(§12 G5)
4.5 Trusted Functions
低 ASIL / non-trusted 分区要用高特权资源时,唯一合法通道是 trusted function:
CallTrustedFunction经 OS 受控切换到 trusted 上下文,等价 syscall- 被调函数必须做参数校验(指针范围、长度)——这层校验代码本身继承高 ASIL
- 滥用即后门:trusted function 列表应短、可审计,每条有安全论证
5. MPU 与 Memory Partition 协同
ASIL D 内存分区设计(FFI:让 QM/低 ASIL 永远写不进高 ASIL 数据):
| Region | ASIL | 访问 |
|---|---|---|
| ASIL D code | D | ASIL D RX,其他禁 |
| ASIL D data | D | ASIL D RW,其他禁 |
| ASIL B code | B | ASIL B RX |
| ASIL B data | B | ASIL B RW |
| Shared (E2E) | D | D 写 + B 读 |
| Stack ASIL D | D | ASIL D 独占 |
硬件资源口径(常被笼统写成"16+ region",按手册说清):TC397 每个 TriCore 核有 18 个 Data Protection Range(DPR)+ 10 个 Code Protection Range(CPR),组织成 6 组可切换 Protection Set(PSW.PRS 选择)——range 是上下界寄存器对,不受 ARM 式对齐限制;S32K3 的 Cortex-M7 用 16 region 的核内 MPU(v7-M,region 有对齐/大小约束)。跨核/跨 master 还有一层总线级保护(TC3xx 外设 ACCEN 按 bus master 白名单)。TC397 的逐 region 配置实例与动态 FFI 测试见 topic-software-safety §4 Step 4。
6. AUTOSAR Safety BSW 配置工具与商用栈
主流商用 Safety BSW + 配置工具(市场份额无权威公开数,以下按装车面观察排序):
- Vector MICROSAR Classic + DaVinci Configurator — Safety 产品线 MICROSAR Safe(SafeBSW / SafeOS / SafeRTE),事实上的全球主流
- Elektrobit(Continental 旗下)EB tresos Studio + Safety OS — 大众系广泛使用
- ETAS(Bosch 旗下)RTA-OS / RTA-BSW — Bosch 体系量产主力
- 国产 — 经纬恒润 INTEWORK-EAS / 东软睿驰 NeuSAR cCore / 普华 ORIENTAIS — ASIL D 认证均已落地(§11)
工具本身还要过 tool qualification(TCL 分级 + qualification kit),见 topic-tool-qualification-deep。
7. Worked design — TC397 + TLF35584 主驱监督链端到端
本节把 §2-§5 的机制拼成一条可逐段核算的真器件设计链:EV 主驱逆变器,Safety Goal「避免意外扭矩」ASIL D,FTTI = 100 ms(与 topic-torque-safety / topic-software-safety 口径一致)。通信链(E2E + SecOC 帧布局与注入验收)已在 topic-can-e2e-secoc §9 给全,本节做它的孪生:任务监督链。
7.1 平台与监督对象
硬件:Infineon TC397(6× TriCore 1.6.2 @ 300 MHz,ASIL D 任务跑 lockstep 核;16 MB PFlash / 2.8-6.9 MB SRAM 按 variant)+ Infineon TLF35584(safety SBC,datasheet Rev 2.0:WWD 窗口看门狗 + FWD 功能看门狗(SPI Q&A)双协议;SS1/SS2 safe-state 输出,fail-safe 时拉低、SS1→SS2 延迟可配;ERR pin 监视 MCU SMU 的 toggle 信号,恒高/恒低即判错——与 SPI 看门狗互为独立通道)。软件:AUTOSAR CP R22-11,OS SC4。
| SE | Task(核 / 周期) | Supervision | 关键参数 |
|---|---|---|---|
| SE1 转矩控制 | CPU0 / 1 ms | alive | reference cycle 10 ms,expected 10,margin ±1;FailedAliveSupervisionRefCycleTol = 1 |
| SE2 电流采样 | CPU1 / 250 μs | deadline | start→end ∈ [0.02, 0.20] ms;违规直接 EXPIRED |
| SE3 安全状态机 | CPU0 / 10 ms | logical | 读输入→合理性→输出仲裁 有向图;跳步直接 EXPIRED |
全局参数:WdgM MainFunction(= supervision cycle)10 ms;WdgMExpiredSupervisionCycleTol = 2(EXPIRED 后留 20 ms 给 Dem 写 freeze frame);TLF35584 FWD 服务窗 10 ms,WD error counter 门限 3 次(达限锁定进 fail-safe,见 topic-infineon-aurix-tc3xx-fusa-deep §5.1)。
7.2 Fault reaction 时间预算(逐段最坏值)
以最慢路径(alive 失败,走满全部容忍窗)核算:
| # | 段 | 机制 | 最坏时延 |
|---|---|---|---|
| 1 | fault → 下个 MainFunction 判 local FAILED | WdgM 10 ms 周期检查 | ≤ 10 ms |
| 2 | FAILED 容忍窗 → local EXPIRED | FailedAliveSupervisionRefCycleTol = 1 | + 10 ms |
| 3 | global EXPIRED → STOPPED | ExpiredSupervisionCycleTol = 2(freeze frame 窗) | + 20 ms |
| 4 | 停喂 → TLF35584 错 3 次达限 → fail-safe | FWD 10 ms 窗 × error counter 3 | + 30 ms |
| 5 | SS1/SS2 拉低 → 栅极驱动 STO 关栅 | 硬件线,不经 MCU | + 1 ms |
余量 29 ms 吃调度抖动 / 晶振温漂 / 参数取整。deadline / logical 违规没有 #2 的容忍窗,同链最坏 61 ms。两个架构判断值得写进 safety case:safe state 由 SBC 硬件路径落地(SS1 → STO),不依赖 MCU 自身活着——MCU reset + LBIST 重启不在安全反应链上;WdgMImmediateReset 能砍掉 #3/#4 换更快 reset,但牺牲 freeze frame 且 reset ≠ 主驱 safe state,本设计不用。
7.3 E2E 配置(通信链侧,对齐姊妹页)
扭矩指令 VCU → 主驱走 CAN-FD 定长帧:P05(3 字节开销),MaxDeltaCounter = 2,E2E_SM 窗口参数使 tFD ≤ 30 ms——完整帧布局、SecOC 叠加与十类 fault 注入验收见 topic-can-e2e-secoc §9,本页不重复;唯一接口要求:E2E_SM 判 INVALID 后的降扭反应与 §7.2 监督链共用同一 FTTI 预算表,两条链分别 ≤ 100 ms 各自闭环。
8. BSW 资源占用
Safety BSW 的资源开销必须进预算——但要把账记对:CPU 大头是 OS 保护开销(trap / syscall / 上下文切换随任务频率线性涨),不是 CRC 计算。量级参考(TC397 @ 300 MHz,硬件 CRC(FCE)可用,以 vendor AN + 项目 profiling 口径,实际以实测为准):
| Module | ROM (KB) | RAM (KB) | CPU 量级 | 依据 |
|---|---|---|---|---|
| WdgM(3 类 supervision,3-5 SE) | 10-25 | 1-4 | < 1% | MainFunction 10 ms,单次几十 μs |
| E2E lib + E2EXf(20 signal @ 100 Hz) | 10-30 | 1-4 | < 0.5% | P05 check 约 1 μs/帧;FCE 更低 |
| OS SC4(memory + timing protection) | 30-100 | 10-50 | 5-15% | 任务周期越短占比越高 |
| Wdg + WdgIf + SPI 链 | 5-15 | 1-2 | < 1% | 10 ms 一帧 Q&A |
| Crc drv(FCE 硬件) | 2-10 | < 1 | ≈ 0 | 硬件卸载 |
| 合计 | ≈ 60-180 | ≈ 15-60 | 6-17%(典型 ≈ 10%) |
旧口径"18-30% CPU"过于悲观——它把软件 CRC 全速跑在小核、且把应用任务切换全记 BSW 账的两个旧假设叠加了。TC397 的 16 MB PFlash / MB 级 SRAM 对这个 ROM/RAM 量级是零头;真正要在 250 μs / 1 ms 级任务系统里逐项 profiling 的是 OS 行:resource usage evaluation 本身就是 ISO 26262-6:2018 Table 7 点名的 unit 验证方法,不是 nice-to-have。
9. ASIL D 主驱 BSW 验证 5 项
ASIL D BSW 验证清单——共同判据是"注入后检出 + 进安全态的实测时序落在 §7.2 预算表内,trace 留档进 safety case":
- WdgM fault injection — 挂死 SE task(alive)/ 人为拖长执行(deadline)/ 打乱 checkpoint 顺序(logical),三类各有用例,验 local → global → SBC 全链
- E2E corrupt injection — corrupt CRC / counter 跳变 / 重放 / 停发,对齐 topic-can-e2e-secoc §9.5 的十类 fault;negative test 缺位 = 机制可能根本没在跑(§12 G4)
- Safety OS partition test — 跨 region 写(含跨 OS-App 写外设寄存器),验 MPU trap → ProtectionHook → 预期反应
- Timing protection test — task 故意 hang / 高频重触发,验 execution budget 与 inter-arrival 两条都咬
- Coverage report — MC/DC 对 ASIL D 是 ISO 26262-6:2018 Table 9 的 highly recommended(++);标准不给数值门限,数值目标(常见 ≥ 90%,或 100% 减 justified deviation)由项目定义——实操闭环(插桩→注入补缺→dead code deviation)见 topic-software-safety §4 Step 3
10. AUTOSAR Adaptive 趋势
AUTOSAR Adaptive(POSIX / 服务化)在 EV 的位置要分清:
- ASIL D 主驱仍主用 Classic——Adaptive 的动态调度对硬实时 determinism 不友好
- 中央计算 / 智驾域用 Adaptive;Classic + Adaptive 混合架构是主流
- 概念有对应物:Classic 的 WdgM 职责在 Adaptive 里由 PHM(Platform Health Management) 承接(同样 alive/deadline/logical supervision),E2E 走同一份 PRS E2E Protocol——机制思想跨平台复用
11. 国产 AUTOSAR Safety BSW 现状
国产三家的功能安全认证在 2022-2024 间已陆续落地,"认证跟不上"的旧叙事需要更新:
- 经纬恒润 INTEWORK-EAS(-CP) — 27 个模块过 ISO 26262 ASIL D 流程 + 产品双认证(注意产品名是 INTEWORK-EAS,非 DPSE)
- 东软睿驰 NeuSAR — Classic 平台 cCore 过 ASIL D 认证;aCore 是 Adaptive 产品线
- 普华基础软件 ORIENTAIS — OS 过 ASIL D 产品认证,定位动力 / 底盘安全系统
真实瓶颈已从认证转向生态:海外主机厂准入、量产 track record、配置工具链成熟度(对标 DaVinci / tresos 的易用性与诊断能力)、Safety Manual / AoU 工程支持深度。主流 EV 主驱平台现阶段仍以 Vector / EB / ETAS 为主,国产在自主品牌新平台上渗透。
12. 工程陷阱(Gotcha)
7 条 BSW 配置 / 集成层的高频返工点——共同规律是"模块都启用了,但配置让保护没真正起作用":
G1 — 喂狗点错位,狗形同虚设:把 Wdg trigger 塞进 timer ISR 或 idle task——ISR 还活着、被监督 task 全死,狗照样被喂饱。checkpoint 必须打在被监督 task 的关键路径上,由 WdgM MainFunction 独立仲裁。修法:review 所有 WdgM_CheckpointReached 调用点归属;fault injection 挂死 task 证明狗真咬(§9)。
G2 — ExpiredSupervisionCycleTol 两头都是坑:设 0 → EXPIRED 立即 STOPPED,reset 前 Dem freeze frame 没写完,量产出现"查无记录的幽灵复位";设太大 → 直接加粗 §7.2 第 3 行,悄悄吃穿 FTTI。修法:该参数必须出现在 fault reaction 预算表里正着算,并用注入实测验证时序。
G3 — OS-App 只隔 RAM 不隔外设:QM 分区直写 GTM/PWM 寄存器,FFI 破功而 MPU 报告全绿。修法:外设寄存器空间进访问矩阵(TC3xx 用 ACCEN 按 bus master 白名单),partition test 必含"跨 App 写外设"用例。
G4 — E2EXf 没真挂上:RTE transformer 链漏配 / DataID 映射错,protect 从未被调用,线上 CRC 字节恒 0——联调时常被当成"预留字节"放过。修法:验收必含 negative test:corrupt 注入必须报错,不报错 = 机制没在跑。
G5 — timing protection budget 按平均执行时间配:cache 冷启动 / flash wait state / 中断嵌套下 WCET 超 budget,量产偶发 ProtectionHook 误杀 ASIL D task——保护机制自己成了可用性事故。修法:budget 按 WCET 分析(静态工具 + 实测包络)配,留 ≥ 20% 余量;ProtectionHook 的反应等级(terminate task / restart App / shutdown)按 ASIL 论证,不拍脑袋。
G6 — 共享库继承 caller 保护上下文:QM 与 ASIL D 共链的 math/util 库在谁调用就在谁的上下文跑,共享静态数据成跨分区写点,stack 溢出向下踩相邻分区。修法:per-OS-App stack + MPU stack guard(越界即 trap);共享库无状态化,或整体按最高 ASIL 开发。
G7 — debug 期禁狗,量产忘恢复:开发 / 刷写阶段外部 WD 常被禁用,量产件配置未恢复 → channel B 整条缺失而功能测试全绿。修法:EOL 下线检查必含"停喂狗必须触发 fail-safe"一条;WD 使能状态进量产配置基线审计。
13. Corner cases
3 条边界条件,平时测不到、出事就是整链失效:
C1 — 上电启动窗竞态:TLF35584 上电即开始跑看门狗(INIT 长开窗),SSW → OS 启动 → WdgM 初始化这条链(叠加 OTA A/B 切换、一次性 NvM 迁移)必须在窗内完成首次服务,否则永远起不来。慢启动超窗的 AoU mismatch 实例见 topic-seooc-engineering-deep §10.3。
C2 — 模式切换后监督参数失配:limp-home / 降功耗模式下任务周期变了,alive expected indications 不跟着切 → 误报 EXPIRED(或反向放松成漏检)。WdgM 规范内建 per-mode 参数集(WdgM_SetMode),用它,别自造"临时关监督"开关——后者十有八九忘了恢复。
C3 — 信号网关重生 E2E:跨网段 signal gateway 重打包会终结并重算 E2E,"端到端"被切成两段,网关内部 corruption 裸露在保护外。要么 PDU 级透传保持一条 E2E 贯穿,要么把网关软件拉进安全边界、按两段分别 claim——审计 routing 配置时盯住"E2E 的终点是不是真的应用端"。
14. 一句话总结
AUTOSAR Safety BSW = ASIL D 软件的硬骨架——WdgM(监督)+ E2E(通信)+ OS SC4(隔离)+ MPU 分区 + CRC 协同,缺一不可;正名三件事:E2E/CRC 是 library、"Safety OS"能力是 SWS Os SC3/SC4 规范内建、标准里没有独立 MPU 驱动。真器件链 TC397 + TLF35584 的最坏 fault reaction 71 ms < FTTI 100 ms,逐段可核;资源量级 ROM 60-180 KB / RAM 15-60 KB / CPU 6-17%(大头是 OS 保护开销)。选型看三样:Safety BSW 认证 + Tool Qualification + Tier-1 量产经验;国产三家 ASIL D 认证已齐,差距在生态与 track record。配置错 = 量产后 ASIL D evidence 失效 = 项目重做。
核心要点
- 5 大 Safety BSW:WdgM / E2E / Safety OS / MPU 分区 / CRC——E2E 与 CRC 是 library,MPU 归 OS 管(无独立 SWS)
- WdgM 三类 supervision 正交:alive 数次数、deadline 卡时点、logical 卡顺序;deadline/logical 违规直接 EXPIRED,EXPIRED→STOPPED 容忍窗是留给 freeze frame 的
- E2E:PRS R23-11 共 10 数据 + 4 method Profile;CAN-FD 定长 ASIL D 主流是 P05(3 B),P04 属 Ethernet 侧;P11/P22 是 P01/P02 的现代替代
- Safety OS 隔离 = SC3/SC4 规范内建:OS-Application + memory protection + timing protection + trusted function
- Worked design:TC397(每核 18 DPR + 10 CPR)+ TLF35584(WWD/FWD + SS1/SS2)监督链最坏 71 ms < FTTI 100 ms
- 资源:ROM 60-180 KB / RAM 15-60 KB / CPU 6-17%,大头是 OS 保护开销不是 CRC;resource usage evaluation 是 26262-6 Table 7 点名项
- 国产恒润 INTEWORK-EAS / 东软睿驰 NeuSAR cCore / 普华 ORIENTAIS 均已 ASIL D 认证,瓶颈在生态不在证书
缩写表
只列本页用到的工业标准缩写;通用英语…
只列本页用到的工业标准缩写;通用英语 / 单位 / 月份 / 我们的
层/Lxtag 不列。覆盖不到的术语见正文 inline 注释。
| 缩写 | 全称 | 中文 / 备注 |
|---|---|---|
| AUTOSAR | Automotive Open System Architecture | 汽车开放系统架构 |
| BSW | Basic Software | 基础软件 (AUTOSAR) |
| E2E | End-to-End protection | 端到端通信保护 (AUTOSAR) |
| MPU | Memory Protection Unit | 内存保护单元(区域级访问权限硬件 enforce) |
| ASIL | Automotive Safety Integrity Level | ISO 26262 安全完整性等级 QM→A→B→C→D |
| SBC | System Basis Chip | 系统基础芯片(电源 + 收发器 + 监控集成) |
| EV | Electric Vehicle | 电动车 |
| MCAL | Microcontroller Abstraction Layer | 微控制器抽象层 (AUTOSAR) |
| PWM | Pulse Width Modulation | 脉冲宽度调制 |
| ECU | Electronic Control Unit | 电子控制单元 |
| QM | Quality Management | ISO 26262 最低等级,只走质量流程 |
| DC | Diagnostic Coverage | 诊断覆盖率 (功能安全语境) |
| SWS / PRS | Software Specification / Protocol Requirements Specification | AUTOSAR 规范文档类型 |
| SE | Supervised Entity | WdgM 被监督实体 |
| SC | Scalability Class | AUTOSAR OS 能力等级 SC1-SC4 |
| RTE | Runtime Environment | AUTOSAR 运行时环境 |
| CRC | Cyclic Redundancy Check | 循环冗余校验 |
| FFI | Freedom From Interference | 免于干扰 (ISO 26262-6 Annex D) |
| FTTI | Fault Tolerant Time Interval | 容错时间间隔 |
| WWD / FWD | Window / Functional Watchdog | 窗口 / 功能(Q&A)看门狗 |
| DPR / CPR | Data / Code Protection Range | TriCore 数据 / 代码保护范围寄存器 |
| WCET | Worst-Case Execution Time | 最坏执行时间 |
| STO | Safe Torque Off | 安全转矩关断(硬件关栅路径) |
| SMU | Safety Management Unit | AURIX 安全管理单元(ERR pin 信号源) |
| Dem / NvM | Diagnostic Event Manager / NVRAM Manager | 故障记录 / 非易失存储模块 |
| PHM | Platform Health Management | AUTOSAR Adaptive 健康管理(WdgM 对应物) |
| SEU | Single Event Upset | 单粒子翻转 |
| AoU | Assumptions of Use | 使用假设 (SEooC 语境) |
Cross-references
- ← 索引
- 功能安全工程师指南 hub — V-cycle + 8 大主题
- 软件功能安全 ASIL D — TC397 worked design(MPU 逐 region 配置 / MC/DC 闭环),与本页 §7 互补
- ASIL Decomposition 深度 — BSW 与 ASIL 拆解
- Lockstep Core 深度 — BSW 与硬件 lockstep 协同
- AURIX TC3xx 功能安全 — SMU / MPU / OPTIREG 配对硬件侧
- SBC Watchdog 深度 — WdgM 与 SBC fast WD 联动
- CAN E2E + SecOC — E2E 通信保护详解 + 通信链 worked design
- Tool Qualification 深度 — Vector / EB tool qualification