CPAUTOSAREcuM详解_新能源技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CPAUTOSAREcuM详解 前言 在CP AUTOSAR架构中定义了许多和模式管理相关的组件,其中主要包括EcuM、BswM、ComM等。 在CP AUTOSAR 标准更新许多版本中,和ECU控制相关的模式管理模块EcuM主要包括两种类型,分别是Fixed和Flex,其中在CP AUTOSAR标准4.x之前的版本EcuM只有Fixed模式,而4.x之后出现了Flex模式,这两个模式都是在一些Common模式基础上增加了一些自己独有的功能。 Fixed模式下,有一组固定的ECU状态和它们之间的转换,对于没有特殊要求的常规ECU来说就足够了,Fixed模式下EcuM处理整个ECU状态切换,而Flex下主要通过BswM的Rules和Action中完成ECU状态的切换。本篇主要对EcuM的Flex模式管理做介绍。 一、EcuM Overview EcuM的主要作用是初始化BSW的各个模块;协调芯片MCAL相关模块的初始化;开启OS;进行初运行、睡眠、唤醒等模式的状态切换;执行ECU的关机和复位;检验唤醒事件等。在EcuM中要定义系统的下电方式、唤醒源、多核上下电模式处理等。 Flex EcuM下大多数ECU状态不再在EcuM模块本身中实现。 通常EcuM模块接管控制早期STARTUP阶段和后期SHUTDOWN阶段。在EcuM的启动阶段后BswM负责进一步的操作,EcuM模块仲裁来自SWCs的Run和PostRun请求,并通知BswM模式的状态。 Run协议是EcuM中建立的一种方法,用于确定ECU应保持活动状态还是准备关闭。Flex EcuM支持部分或快速启动、多核操作状态(多核运行状态),Fixed ECU管理不支持多核ECU。 在EcuM中对于通常关心下面的配置选项和功能: 配置不同的唤醒源 配置OS启动前的BSW模块的初始化 User初始化代码集成 通知BswM相关的唤醒源 分配Com通道的唤醒源 Com通道唤醒时,通知ComM相关的唤醒源 配置休眠模式 选择Shutdown的原因和目标 支持多核EcuM协调多核的模式转换 Run、PostRun模式请求 通知SWC当前的模式 二、EcuM各个状态的主要工作 在EcuM的Flex模式下,EcuM的状态比较灵活,一般没有标准的状态和模式转换,用户可以根据自己的需要定义相关的状态,在EcuM Mode Handling使能后,RUN以及PostRUN的模式转换可以在BswM的仲裁机制中实现。 Flex模式下的EcuM的状态也主要在BswM中实现,但是在EcuM中对模式管理的阶段作了定义,主要包括四个阶段,分别是STARTUP、UP、SLEEP、SHUTDOWN。整个阶段如下所示: 下面分别阐述下各个阶段的主要功能 01、STARTUP STARTUP阶段主要完成Mcal主要模块的初始化工作,使得Mcal的模块能够满足后续功能的使用,在该阶段主要分为OS启动前的初始化和OS启动后的初始化。 其中OS启动前的初始化主要分为两个阶段InitZero和InitOne,其中InitZero主要负责Det或者Dem的初始化,保证在后续的过程中,如果发生初始化的错误,开发集成人员可以确认; InitOne主要用于完成OS启动前必要的模块的初始化,主要是MCU初始化、时钟初始化、内存的初始化、Port、GPT、WDG、ADC等初始化等,经过Ecu这两个阶段的初始化后,OS就可以启动了。 OS启动后,进入STARTUP最后阶段的初始化,完成相关模块的初始化,主要包括BswM、SchM等,程序就可以正常的调度了。初始化的时序图如下所示: 02、UP UP阶段EcuM主要作用是进行唤醒相关的功能的验证,对于唤醒的验证和Power、Reset、WDG相关的唤醒功能不进行validation,对于其他的唤醒源,比如CAN唤醒、LIN唤醒等需要进行唤醒源的验证,验证也会对Timeout进行监控,如果检测到唤醒事件,但是验证无效或者超时发生,仍然视为唤醒失败。 UP阶段主要负责对唤醒的验证工作,SLEEP阶段主要进行唤醒查询,最终唤醒相关的使能和状态转换在BswM中统一根据定义的Rule和Action进行转换和管理。 在该阶段会周期的调用EcuM的MainFunction,由于Flex模式的状态切换主要依靠BswM进行仲裁,因此在UP阶段,EcuM的功能比较少,考虑到与APP层的模式转换和交互,在EcuM中会对RUN和PostRUN的请求与APP层的模式管理进行交互,根据APP层的模式管理,可以在BswM中设置RUN以及PostRUN请求和释放交互接口的数目,实现APP层模式管理与BSW层模式管理的协调。 03、SlEEP SLEEP阶段主要进行的休眠的功能。 在EcuM的Shutdown的Target为

文档评论(0)

play + 关注
实名认证
文档贡献者

分享有帮助的文档

1亿VIP精品文档

相关文档