2. 通信故障注入工程目标与安全需求

在AURIX通信故障注入工程中,最容易出现的误区是“为了注入而注入”:能造出CRC错误、丢帧、延迟,却说不清这些故障对应哪条安全需求、由哪个ECU机制负责检测、检测结果又该满足什么指标。要让故障注入成为可辩护的工程活动,必须先把三层关系对齐:ISO 26262给出的安全需求与完整性等级、AUTOSAR定义的通信服务与保护机制、ECU内部实际实现的硬件/软件安全机制,最后才是故障注入用例。故障注入不是起点,而是验证这条映射链是否闭合的手段。

一、三层安全需求到故障注入的映射逻辑

ISO 26262从危害分析出发,为每个安全目标分配ASIL等级,再导出功能安全需求(FSR)和技术安全需求(TSR)。通信相关的TSR通常表述为“在通信链路发生数据损坏、丢失、重复、乱序、延迟时,系统应在规定时间内进入安全状态”。AUTOSAR则把这些需求落到具体机制上:E2E Protection负责端到端数据完整性,COM模块负责信号打包与超时监控,PDU Router负责路由与网关转发,CanIf/CanDrv负责控制器与驱动层收发,而AURIX的CAN节点、DMA、SMU、看门狗等硬件资源提供底层支撑。

故障注入的目标,就是针对这些机制制造“它们本应能处理的异常”,然后观察机制是否按预期响应。因此,一个合格的故障注入用例必须能回答四个问题:注入什么故障(对应哪类通信失效)、注入到哪一层(总线、控制器、驱动、COM、E2E)、哪个机制应该检测到、检测后的预期行为与时间指标是什么。缺少任何一项,用例都无法与安全需求建立可追溯关系。

ISO 26262 → AUTOSAR → AURIX ECU机制 → 故障注入 映射链 ISO 26262 安全需求层 安全目标 SG 功能安全需求 FSR 技术安全需求 TSR ASIL 等级 导出 AUTOSAR 通信服务层 E2E Protection CRC/计数器/DataID COM 模块 超时/更新位/信号 PDU Router 路由/网关转发 CanIf / CanDrv 控制器/驱动收发 Dem/Dcm 诊断事件 实现 AURIX ECU 硬件/软件安全机制 MultiCAN+ 节点 Tx/Rx 错误计数 DMA / 中断 报文搬运与通知 SMU 安全管理单元 故障报警与响应 看门狗 / 时钟监控 程序流与时间监控 安全状态 降级/关断 验证 故障注入用例层 数据损坏:CRC 翻转 报文丢失:丢帧/超时 乱序/重复:计数器异常 延迟:总线负载/优先级反转 每一层向下导出,故障注入向上验证:用例必须能追溯到具体 TSR 与 ECU 机制

二、AUTOSAR E2E Protection与故障注入的对应关系

E2E Protection是通信安全中最核心的机制,它通过在PDU中附加CRC、序列计数器(Counter)和DataID来对抗通信失效。不同E2E Profile覆盖的故障类型不同,故障注入用例必须按Profile能力设计。例如E2E Profile 1使用4位CRC和4位计数器,能检测数据损坏和部分丢失,但对重复帧的检测能力有限;Profile 5使用16位或32位CRC、32位计数器,并支持DataID,可检测损坏、丢失、重复、乱序和延迟。若安全需求要求覆盖“重复帧”和“乱序”,却选用Profile 1,则无论注入多少用例都无法通过验证——这是映射关系中最常见的错配。

在AURIX TC3xx上做E2E故障注入时,典型做法是在发送端与接收端之间插入一个“篡改点”。若使用CAN总线,可通过Vector VN系列或AURIX自身作为网关节点,在PDU层修改数据字节、CRC字段或Counter值。例如,针对Profile 5的16位CRC,注入用例可设计为:保持DataID和Counter不变,仅翻转数据区某一位,预期接收端E2E检查返回E2E_P05STATUS_ERROR,COM层将该信号标记为无效,应用层在超时窗口内进入降级。若接收端未报错,则说明CRC计算范围或DataID配置存在缺陷。

三、ECU安全机制与故障注入的层次对应

故障注入的“注入点”决定了它能验证哪一层机制。在总线物理层注入位错误,主要验证CAN控制器的错误计数与总线关闭恢复;在CanIf层丢弃报文,验证COM超时监控与E2E丢失检测;在COM层篡改信号值,验证应用层范围检查与E2E数据校验;在PDU Router层制造路由错误,验证网关的转发完整性与超时处理。若把总线层故障注入结果直接当作E2E机制验证结论,就会产生“机制未被真正激励”的假通过。

以AURIX的MultiCAN+节点为例,当总线持续出现位错误时,节点的Tx Error Counter递增,达到128进入Error Passive,达到256进入Bus Off。此时若ECU安全机制配置了Bus Off恢复策略,应在规定时间内尝试恢复或向SMU报告。故障注入用例应记录:注入起始时刻、错误计数器变化、Bus Off进入时刻、恢复时刻、SMU报警时刻。这些时间戳与安全需求中的FTTI(故障容忍时间间隔)对比,才能判断机制是否满足ASIL等级要求。

四、从安全需求到故障注入用例的映射表

下表给出一个可参考的映射示例,用于把TSR、AUTOSAR机制、AURIX实现和注入用例串起来。表中参数为教学示例,实际项目需按具体安全分析和配置填写。

TSR 示例 ASIL AUTOSAR 机制 AURIX 实现 故障注入用例 预期响应与判据
通信数据损坏须在 20 ms 内被检测 D E2E Profile 5,16 位 CRC MultiCAN+ 接收中断 + E2E 库 翻转数据区 1 bit,保持 Counter/DataID 不变 E2E 返回 ERROR,信号无效,应用层 20 ms 内降级
报文丢失须被检测并触发替代值 D COM 超时监控 + E2E 丢失检测 DMA 接收超时中断 在 CanIf 层丢弃连续 3 帧 COM 超时标志置位,应用层使用替代值并记录 Dem 事件
重复帧不得导致错误控制 C E2E Profile 5 Counter 检查 软件 Counter 比较 重放上一帧,Counter 不递增 E2E 返回 REPEATED,帧被丢弃,不更新信号
总线 Bus Off 后须进入安全状态 D CanIf 控制器模式管理 MultiCAN+ 错误计数器 + SMU 持续注入位错误直至 Bus Off Bus Off 后 50 ms 内 SMU 报警,系统进入降级

五、工程落地要点

建立映射关系时,建议以TSR为行、以AUTOSAR机制和AURIX实现为列,形成可追溯矩阵。每个故障注入用例必须绑定至少一条TSR和一个被测机制,并明确注入点、注入量、观测点和判据。对于ASIL D的通信安全需求,注入用例还应覆盖“机制自身失效”的场景,例如E2E校验函数被跳过、Counter比较被旁路,验证安全机制不会静默失效。

注意:故障注入用例的“通过”不等于安全需求已满足。若注入后系统进入安全状态,但响应时间超过FTTI,或Dem事件未正确记录,仍应判定为不通过。映射关系的价值在于让每个用例都有明确的追溯目标和判据,而不是只证明“能注入”。

综上,ISO 26262提供“为什么做”和“做到什么程度”,AUTOSAR提供“用什么机制做”,AURIX ECU提供“机制实际在哪里实现”,故障注入则回答“机制是否真的有效”。四者通过可追溯映射表连接,才能让通信故障注入从零散测试升级为可辩护的安全验证活动。