文章目录
-
- 简述
- CAN网络状态机
-
- 触发器
- 防护条件
- 作用
- 子状态机 CANSM_BSM_WUVALIDATION
- 子状态机 CANSM_BSM_S_PRE_NOCOM
-
- 防护条件 CANSM_BSM_G_PN_NOT_SUPPORTED
- 防护条件 CANSM_BSM_G_PN_SUPPORTED
- 子状态机 CANSM_BSM_DeInitPnSupported
-
- 在状态 S_PN_CLEAR_WUF的操作
- 防护条件 G_PN_CLEAR_WUF_E_OK
- 触发器 T_CLEAR_WUF_INDICATED
- 触发器 T_CLEAR_WUF_TIMEOUT
- 在状态 S_CC_STOPPED中的操作
- 防护条件 G_CC_STOPPED_E_OK
- 触发器 T_CC_STOPPED_INDICATED
- 触发器 T_CC_STOPPED_TIMEOUT
- 在状态S_TRCV_NORMAL下的操作
- 防护条件 G_TRCV_NORMAL_E_OK
- 触发器 T_TRCV_NORMAL_INDICATED
- 触发器 T_TRCV_NORMAL_TIMEOUT
- 在状态 S_TRCV_STANDBY的操作
- 防护条件 G_TRCV_STANDBY_E_OK
- 触发器 T_TRCV_STANDBY_INDICATED
- 触发条件 T_TRCV_STANDBY_TIMEOUT
- 在状态 G_CC_SLEEP_E_OK 的操作
- 防护条件 G_CC_SLEEP_E_OK
- 触发器 T_CC_SLEEP_INDICATED
- 触发器 CANSM_BSM_T_CC_SLEEP_TIMEOUT
- 在状态 S_CHECK_WFLAG_IN_CC_SLEEP的操作
- 防护条件 G_CHECK_WFLAG_E_OK
- 触发器 T_CHECK_WFLAG_INDICATED
- 触发器 T_CHECK_WFLAG_TIMEOUT
- 在状态 S_CHECK_WFLAG_IN_NOT_CC_SLEEP 的操作
- 子状态机 CANSM_BSM_DeInitPnNotSupported
-
- 在状态 S_CC_STOPPED 的操作
- 防护条件 CANSM_BSM_G_CC_STOPPED_OK
- 触发器 T_CC_STOPPED_INDICATED
- 触发器 T_CC_STOPPED_TIMEOUT
- 在状态 S_CC_SLEEP 的操作
- 防护条件 G_CC_SLEEP_E_OK
- 触发器 T_CC_SLEEP_INDICATED
- 触发器 T_CC_SLEEP_TIMEOUT
- 在状态 S_TRCV_NORMAL 的操作
- 防护条件 G_TRCV_NORMAL_E_OK
- 触发器 T_TRCV_NORMAL_INDICATED
- 触发器 T_TRCV_NORMAL_TIMEOUT
- 在状态 S_TRCV_STANDBY 的操作
- 防护条件 G_TRCV_STANDBY_E_OK
- 触发条件 T_TRCV_STANDBY_INDICATED
- 触发条件 CANSM_BSM_T_TRCV_STANDBY_TIMEOUT
- 子状态机 CANSM_BSM_S_SILENTCOM_BOR
- 子状态机 CANSM_BSM_S_PRE_FULLCOM
- 子状态机 CANSM_BSM_S_FULLCOM
-
- 防护条件: G_BUS_OFF_PASSIVE
- 效果:E_BUS_OFF_PASSIVE
- 触发器:T_CHANGE_BR_REQUEST
- 效果:E_CHANGE_BR_BSWM_MODE
- 触发器:T_BUS_OFF
- 效果:E_BUS_OFF
- 在状态 S_RESTART_CC 的操作
- 防护条件 G_RESTART_CC_OK
- 触发器 T_RESTART_CC_INDICATED
- 触发器 T_RESTART_CC_TIMEOUT
- 效果 E_TX_OFF
- 防护条件 G_TX_ON
- 效果 E_TX_ON
- 触发器 T_TX_TIMEOUT_EXCEPTION
- note
- 子状态机 CANSM_BSM_S_TX_TIMEOUT_EXCEPTION
- 子状态机 CANSM_BSM_S_CHANGE_BAUDRATE
-
- 在进入时需要执行的状态操作:DO_SET_BAUDRATE_DIRECT
- 防护条件:G_SET_BAUDRATE_DIRECT_OK
- 防护条件:G_SET_BAUDRATE_DIRECT_NOT_OK
- 状态 S_CC_STOPPED 中的操作
- 防护条件:G_CC_STOPPED_OK
- 触发器:T_CC_STOPPED_INDICATED
- 触发器:T_CC_STOPPED_TIMEOUT
- 效果:E_CHANGE_BAUDRATE
- 状态 S_CC_STARTED 中的操作
- 防护条件:G_CC_STARTED_OK
- 触发器:T_CC_STARTED_INDICATED
- 触发器:T_CC_STARTED_TIMEOUT
- 防护条件:G_NO_COM_MODE_REQUESTED
- 防护条件:G_NO_COM_MODE_NOT_REQUESTED
- 总结
本章我们介绍CAN状态管理器(CAN State Manager,CanSM)。CanSM位于BSW的通信服务层,它与通信硬件抽象层和系统服务层交互。下图所示为CanSM在AUTOSAR BSW中的位置。

下图简要描述了CanSM模块需要其他模块间的交互。

关于模块交互、依赖,在此前的模块介绍中都没做介绍,但CanSM模块与依赖模块的交互我们需要了解一下,因为CanSM作为CAN网络的状态管理器,与其他模块的交互对于我们理解掌握整个CAN通信系统的运行有重要的作用。这里捡出几个重要相关的交互模块:
- EcuM(ECU State Manager):EcuM模块初始化CanSM,与CanSM交互进行CAN唤醒的验证;
- SchM(BSW Scheduler):BSW调度程序模块调用CanSM模块的main函数,这是周期处理CanSM模块任务所必