AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

汽车安全 1年前 (2023) admin
332 0 0

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

正文

项目中的ECU硬件设计为休眠系统(无SBC,满足休眠条件后系统进入深度休眠状态),整个项目的模式管理及ECU休眠唤醒功能涉及到EcuMBswMSWC三方交互,设计及实现中遇到了不少问题,最终都被一一解决。本文将详细介绍模式管理实现过程中的关键步骤。

 

MCURenesas RH850 F1KM

MCALDavinceCFG

BSWISOLAR-9.1

 

在开始系统配置之前先回答以下问题:

1).为什么在硬件上要设计为深度休眠系统?

减少SBCSystem base chip)降低成本,热启动提高启动速度。

 

2).基于RH850芯片的ECU设计为深度休眠系统后,怎么让系统进入深度休眠状态?

–BswM中维持一个EcuM状态的状态机,当状态机跳转到SLEEP状态后执EcuM_GoHaltEcuM_SelectShutdownTarget(EcuMSelectShutdownTarget_SLEEP_MCU,SLEEP_MCU)动作后EcuM接管程序,EcuM调用Mcu模块的Mcu_SetMode(Deep_Sleep)进入深度休眠状态。

 

3).基于RH850芯片的ECU设计为深度休眠系统后,AUTOSAR架构下在哪里设置系统进入深度休眠?

–EcuM没有提供Callout函数让系统设计去设置Mcu进入深度休眠,EcuM在检测到系统满足休眠条件后在Sleep Sequence中直接调用Mcu_SetMode(Deep_Sleep)进入深度休眠。

 

4).基于RH850芯片的ECU设计为深度休眠系统后,AUTOSAR架构下在哪里及怎么开启唤醒中断?

–EcuM提供EcuM_EnableWakeupSources Callout中调用RH850提供的Mcu_WakeUpFactor_Preparation函数设置唤醒中断。

 

5).基于RH850芯片的ECU进入深度休眠状态后被唤醒是直接复位还是接着往下跑?

— 芯片特性,直接复位。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

 

6).基于RH850芯片的ECU进入深度休眠状态后被唤醒如果是复位,AUTOSAR架构下在哪里调用Mcu_PerforReset

— 不用调用Mcu_PerforResetRH850-F1KM芯片自动从0地址开始运行(相当于复位)。

 

7).基于RH850芯片的ECU进入深度休眠状态后被唤醒如果是接着跑,AUTOSAR架构下在哪里关闭唤醒中断?

— RH850芯片进入深度休眠后被唤醒会自动复位,所以不用进行关闭唤醒中断的操作。但是,如果是NXP S32K系列的芯片在进入深度休眠后,被唤醒后是接着往下跑的,这个时候在AUTOSAR架构下改怎么去关闭唤醒中断了(目前作者也还没有答案),这个问题留个大家思考。

1.状态机设计

本系统配置为Flexible EcuM系统,EcuM存在STARTUPONE,STARTUPTWO,RUN,RESHUTDOWN,SLEEP五种状态。

 

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

1-EcuMBswM中的状态机-BswMMode

 

ASW请求接口SleepReq == TRUE(同时满足其他,NvMWriteAll成功 && IGNOff等)后BswMMode状态机切换到SLEEP状态后调用EcuMSelectShutdownTarget_SLEEP_MCUEcuMGoHalt使得EcuM接管程序走SLEEP Sequence

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

2-Sleep阶段

 

2.Davince配置MCAL

DavinceCFG根据硬件设计配置唤醒脚和唤醒中断,需要配置MCAL架构中的PortMCU模块。Port模块中配置唤醒脚的Pin属性,MCU模块中配置深度休眠模式及其对应的唤醒中断源。

2.1 配置port模块

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

查看软硬件接口表找到硬件唤醒脚。

 

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

Davince中配置Port模块的唤醒Pin的属性。

 

 

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

配置中断唤醒Pin的电平触发模式。

 

2.2 配置MCU模块

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


添加一个Mcu深度休眠模式。

 

 

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

添加MCU唤醒Pin

3.ISOLAR配置BSW

ECU模式管理中主要配置的BswM模块和EcuM模块。EcuM主要配置系统休眠模式及唤醒源信息,BswM模块配置模式管理接口(MRP)、模式仲裁及模式控制。

3.1 添加MCU模块

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

EcuM模块配置Sleep Mode的时候需要引用到Mcu模块的的信息,所以需要在ISOLAR工程种配置一个Mcu的模块。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

ISOLAR工程目录xxxISOLAR_CfgPrjConfigecu_configparamdefs(这个是作者的工程目录)

添加模块UI信息。

 

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


新建一个Mcu模块。

 

3.2 配置OS模块

虽然F1KM是单核系统,但是在配置EcuM模块的时候还是需要在OS配置一个RES_AUTOSAR_ECUM的资源锁,不然在生成BSW的过程中ISOSALR会报错。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

 

3.3 配置EcuM模块

3.3.1 EcuM引用RES_AUTOSAR_ECUM

 

3.3.2 配置EcuMSleepModes

设计为休眠系统的EcuM模块必须配置EcuMSleepModesEcuM_Cfg.h文件里面的ECUM_SLEEP_SUPPORT_ENABLE宏需要配置了EcuMSleepModes后才会配置为TURE

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


3.3.3 配置唤醒源

以下五个唤醒源是系统默认配置的:

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唤醒源。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

 

3.3.4 引用NormalMcuMode

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


3.4 配置BswM模块

BswM模块的配置最主要的就是配置:一个和SWC交互的MRPSleepReq,应用层满足休眠条件后请求休眠的模式管理请求接口);EcuMGoHaltActionBswMode进入SLEEP状态后调用);EcuMSelectShutdownTarget_SLEEP_MCUActionBswMode进入SLEEP状态后调用)。

3.4.1 添加Sleep相关的Action

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

3.4.2 添加ActionList

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


3.4.3 PreShutdownToShutdown添加SleepActionList

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


4.Callout函数实现

EcuM模块提供的Callout函数EcuM_EnableWakeupSource中调用MCAL提供的标准接口(不是AUTOSAR标准接口)Mcu_WakeUpFactor_Preparation函数设置唤醒中断。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM 

5.ASW配置

设计一个SWC模块来专门管理应用层的休眠唤醒功能。SWC模块设计一个Pport设置当前应用层是否满足休眠条件(SleepReq == TRUE)。

5.1 添加应用请求休眠接口

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


5.2 SWC中清除预留唤醒源

系统每次被唤醒后如果没有检测到唤醒源,会默认设置一个Reset的唤醒源。因为系统休眠后立即被复位了,复位起来后最好将默认的唤醒源都清除掉。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


5.3 设置唤醒事件

在休眠管理模块中检测和设置唤醒实践。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

6.实际效果

满足IGN == IgOff & SleepReq == TRUE后系统进入了深度休眠状态。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


7.总结

AUTOSAR架构下的模式管理是SWC – BSW – ECUM三方交互的一个过程,SWC请求,BSW仲裁后调用ECUM的请求接口,ECUM完成最后的执行。






AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

码上报名

AutoSec 2023 第七届中国汽车网络安全周暨第四届智能汽车数据安全展,9月13-15日,上海

更多文章

智能网联汽车信息安全综述

华为蔡建永:智能网联汽车的数字安全和功能安全挑战与思考

汽车数据合规要点

车载以太网技术发展与测试方法

车载以太网防火墙设计

SOA:整车架构下一代的升级方向

软件如何「吞噬」汽车?

汽车信息安全 TARA 分析方法实例简介

汽车FOTA信息安全规范及方法研究

联合国WP.29车辆网络安全法规正式发布

滴滴下架,我却看到数据安全的曙光

从特斯拉被约谈到车辆远程升级(OTA)技术的合规

如何通过CAN破解汽

会员权益: (点击可进入)谈思实验室VIP会员


END

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

微信入群

谈思实验室专注智能汽车信息安全、预期功能安全、自动驾驶、以太网等汽车创新技术,为汽车行业提供最优质的学习交流服务,并依托强大的产业及专家资源,致力于打造汽车产业一流高效的商务平台。

 

每年谈思实验室举办数十场线上线下品牌活动,拥有数十个智能汽车创新技术的精品专题社群,覆盖BMW、Daimler、PSA、Audi、Volvo、Nissan、广汽、一汽、上汽、蔚来等近百家国内国际领先的汽车厂商专家,已经服务上万名智能汽车行业上下游产业链从业者。专属社群有:信息安全功能安全自动驾驶TARA渗透测试SOTIFWP.29以太网物联网安全等,现专题社群仍然开放,入满即止。


扫描二维码添加微信,根据提示,可以进入有意向的专题交流群,享受最新资讯及与业内专家互动机会。

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM


谈思实验室,为汽车科技赋能,推动产业创新发展!

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

原文始发于微信公众号(谈思实验室):AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

版权声明:admin 发表于 2023年7月9日 下午6:01。
转载请注明:AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...