前言
项目开始时考虑硬件成本,ECU设计为休眠系统(无SBC,满足休眠条件后系统进入深度休眠状态),则AUTOSAR架构下的模式管理走的Shutdown的Sleep流程。经过一段时间的验证后,发现休眠系统存在系统起不来的风险,则第二版硬件加上一个简单的SBC,ECU改为断电系统(有SBC),则AUTOSAR架构下的模式管理又要重新配置为Shutdown后走OFF流程。在测试过程中也遇到一些问题,最终都被一一解决。本文将接收断电系统的模式管理配置及遇到的问题及解决过程。
MCU:Renesas RH850 F1KM
MCAL:DavinceCFG
BSW:ISOLAR-9.1
正文
本系统配置为Flexible EcuM系统,EcuM存在STARTUPONE,STARTUPTWO,RUN,RESHUTDOWN,SHUTDOWN五种状态。
图1-EcuM在BswM中的状态机--BswMMode
ASW请求接口SleepReq == TRUE(同时满足其他,NvMWriteAll成功 && IGNOff等)后BswMMode状态机切换到SHUTDOWN状态后调用EcuMSelectShutdownTarget_OFF_MCU和EcuMGoDown使得EcuM接管程序走OffPreOs Sequence和OffPostOs。
图2:SHUTDOWN阶段
图3:OffPreOS Sequence
图4:OffPostOS Sequence
ECU模式管理中主要配置的BswM模块和EcuM模块。EcuM主要去掉休眠系统的配置,BswM模块配置模式管理接口(MRP)、模式仲裁及模式控制。
设计为休眠系统的EcuM模块必须配置EcuMSleepModes。EcuM_Cfg.h文件里面的ECUM_SLEEP_SUPPORT_ENABLE宏需要配置了EcuMSleepModes后才会配置为TURE。我们现在改为断电系统,则必须删除EcuMSleepModes。
以下五个唤醒源是系统默认配置的:
EcuMConf_EcuMWakeupSource_ECUM_WKSOURCE_INTERNAL_RESET EcuMConf_EcuMWakeupSource_ECUM_WKSOURCE_EXTERNAL_WDG EcuMConf_EcuMWakeupSource_ECUM_WKSOURCE_INTERNAL_WDG EcuMConf_EcuMWakeupSource_ECUM_WKSOURCE_POWER EcuMConf_EcuMWakeupSource_ECUM_WKSOURCE_RESE
其他唤醒源需要根据实际系统设计配置。本项目有一个本地Local唤醒源(IGN)及一个CAN唤醒源。
和休眠系统不一样的地方是,休眠系统的唤醒源直接接到MCU芯片,但是断电系统的唤醒源接到了SBC上用来唤醒SBC,然后SBC给MCU供电。
BswM模块的配置最主要的就是配置:一个和SWC交互的MRP(SleepReq,应用层满足休眠条件后请求休眠的模式管理请求接口);EcuMGoDown的Action(BswMode进入SHUTDOWN状态后调用);EcuMSelectShutdownTarget_OFF_MCU的Action(BswMode进入SHUTDOWN状态后调用)。
EcuM模块提供的Callout函数EcuM_AL_SwitchOff中调用SBC的复杂驱动接口接口(不是AUTOSAR标准接口)CDD_SBC_GoToSleep函数控制SBC给MCU下电。
设计一个 SWC模块来专门管理应用层的休眠唤醒功能。SWC模块设计一个Pport设置当前应用层是否满足休眠条件(SleepReq == TRUE)。
系统每次被唤醒后如果没有检测到唤醒源,会默认设置一个Reset的唤醒源。因为系统休眠后立即被复位了,复位起来后最好将默认的唤醒源都清除掉。
在休眠管理模块中检测和设置唤醒事件。
满足IGN == IgOff & SleepReq == TRUE后系统进入了断电状态。
AUTOSAR架构下的模式管理是SWC - BSW - ECUM三方交互的一个过程,SWC请求,BSW仲裁后调用ECUM的请求接口,ECUM完成最后的执行。
测试过程中遇到了一个奇怪现象:IGOff后,ASW发送SleepReq请求后,ECU确实下电了,一位一把成功到位,But,在EcuM_AL_SwitchOff函数中打了一个断点后重新测试,居然没有跑到EcuM_AL_SwitchOff函数中ECU就自己下电了。
最后分析是因为EcuM_SelectShutdownTarget配置成了Reset,最后OffPostSequence走了EcuM_AL_Reset流程,执行了Mcu_PerformReset,这个时候因为IG电下了,SBC也没有唤醒源,看上去和EcuM_AL_SwitchOff的现象一样。
end
分享不易,恳请点个【再看】