ISO 26262要求ASIL C和D等级的系统必须检测:定时和执行故障、内存故障、信息交换故障。AUTOSAR 4.x提供了看门狗、E2E保护、内存分区等机制,但仍有盲区。
- 定时故障检测的盲区
AUTOSAR的Watchdog Manager可以监控任务是否“卡死”(长时间不喂狗),但它无法检测任务的无限期阻塞。例如,任务A优先级低,被高优先级任务B持续抢占,导致A永远无法运行——但Watchdog Manager只检查任务是否被激活,而不检查任务是否实际执行。
强化方案:实现“期限监督机制”(Deadline Supervision)。在任务入口记录时间戳,在任务出口检查耗时是否超过最大执行时间(WCET)。若超过,触发安全机制(复位或进入安全状态)。这个逻辑需要手动添加到每个关键任务中。
- 信息交换故障的延迟检测
E2E保护机制(AUTOSAR规范中的E2E Transformer)可以检测数据损坏、丢失、重复、错序,但无法检测传输延迟。因为E2E的接收端不知道发送时的绝对时间戳。
一个解决方法:在发送端将系统时间(如Global Time)嵌入数据负载,接收端计算时间差。如果差值超过阈值,认为通信延迟过大。这需要应用层SWC配合,而非纯BSW配置。
- 硬件安全机制与AUTOSAR的集成
英飞凌TC3xx系列MCU提供LockStep核冗余、ECC保护、SMU(安全管理单元)等。但AUTOSAR的MCAL并未默认开启所有安全特性。工程师需要:
配置MCU模块的LockStep模式(例如Core0和Core1组成LockStep