目录
前言:AUTOSAR CanSM 简介
CanSM 是 AUTOSAR 架构BSW 中的一个标准模块,主要完成CAN网络状态管理;提供的功能主要包括:
- 通讯模式切换
COMM_NO_COMMUNICATION
COMM_SILENT_COMMUNICATION
COMM_FULL_COMMUNICATION
- BUSOFF 恢复管理
- 波特率切换
- 唤醒确认管理
CanSM接收其他模块(如ComM,Dcm 等)的通讯模式切换请求,按照CAN网络状态管理的逻辑,通过调用CanIf 下层接口,实现对CAN controller 或CAN transceiver 工作状态的切换;或者反过来向其他模块反馈CAN 网络状态;
我们从 AUTOSAR CanSM(1) -- CAN 网络初始化及启动流程-CSDN博客 已经了解到CAN 网络的初始化和启动流程;
在网络没有故障的情况下,CanSM 启动后会保持在FULLCOM 状态的 NO_BUS_OFF 子状态,PduMode 保持在CANIF_ONLINE,通讯模式保持在COMM_FULL_COMMUNICATION,进行网络报文收发的处理;
如果在之后的通讯过程中,网络存在故障(比如CANH / CANL 短接),导致节点进入BUSOFF,一段时间后,故障又消失了,恢复到正常状态,总线出现128次连续11个bit 的隐性电平(允许恢复到正常状态) ,这个时候CanSM 就会执行BUSOFF 恢复流程,尝试将CAN 网络恢复到正常状态;
1. BUSOFF 恢复的前置条件
节点从BUSOFF 恢复到正常状态ERROR ACTIVE 的前置条件是:总线上的故障确实消失了,并且出现了 128次 连续 11个 bit 的隐性电平,这个时候才允许执行节点状态恢复的动作;
CAN Specification 2.0 PART B (3) -- CAN message 传输错误处理、CAN节点故障状态说明-CSDN博客