【Mode Management】ECU上下电过程CanSM为什么会多次设置CandTrcv和CanController模式
目录
前言
正文
1.Cantrcv设置唤醒事件
2.ECUM检验唤醒事件
3.ComM被动唤醒到FULL COM状态
4. CanSM模块上电过程控制
4.1 CANSM_BSM_S_PRE_NOCOM子状态
4.2 CANSM_BSM_S_PRE_FULLCOM子状态
5. 总结
前言
经常调试Can通信协议栈的朋友一定会发现在ECU上电过程中即使ECUM检测到有效的唤醒源(Wakeup Event)CanSM也会多次的去设置Can Controller到Stoped, Started状态,设置CanTrcv到Standby, Normal状态。为什么不是一次性设置Controller到Started状态,设置Cantrcv到Normal状态了?
AUTOSAR架构下,ECU的上下电是一个很复杂的过程,需要依赖CanTrcv, Can Controller, CanIf, CanSM, ComM, EcuM, CanNM等模块协同完成,本文着重介绍上电过程中CanSM多次控制Cantrcv和Controller的问题,其他模块简要介绍。关于ECU的上下及休眠唤醒问题可以参考以下文章:
【CAN通信】CanTrcv和EcuM的关系及不同类型的Can收发器主要使用场景