详解AUTOSAR:CanSM通信模式状态机与BusOff恢复机制(理论篇—12)

📅 2026/7/10 1:42:21 👁️ 阅读次数 📝 编程学习
详解AUTOSAR:CanSM通信模式状态机与BusOff恢复机制(理论篇—12)

CAN 通道从睡眠到可通信,不只是把控制器置为 STARTED。控制器、收发器、CanIf PDU Mode、ComM 模式、BswM 状态、DEM 事件都要按顺序变化;其中任何一个异步模式指示缺失,都可能让通信栈停在过渡状态。CanSM 的职责就是把 ComM 的网络通信模式请求翻译成 CAN 硬件和 CanIf 的动作,并把最终状态回报给 ComM 和 BswM。

CanSM 位于 Communication Manager(ComM)和 CAN Interface(CanIf)之间。ComM 决定网络需要COMM_NO_COMMUNICATIONCOMM_SILENT_COMMUNICATION还是COMM_FULL_COMMUNICATION,CanSM 负责驱动 CAN transceiver、CAN controller 和 PDU Mode 到对应状态。CanSM 的主函数由 SchM 周期调用,异步 controller/transceiver indication、bus-off、Tx timeout、PN wake flag 等事件则通过回调改变状态机走向。

模块定位与边界

CanSM 面向 AUTOSAR Release 4,支持 pre-compile 和 post-build selectable 配置变体。模块标识为CANSM_VENDOR_ID = 30CANSM_MODULE_ID = 140。当前能力边界中,CanSM 支持“每个网络一套状态机”,但不支持一个 network 配多个 CAN controller;