Ecu是如何断电的?MCU是何时停止工作的?

电子说

1.2w人已加入

描述

Ecu是如何断电的?MCU是何时停止工作的?总线的通信是什么时候停止的?围绕这些问题,我们基于Autosar架构进行讨论。

Autosar下架构下,是靠EcuM模块对Ecu进行状态机的管理,其中EcuM的状态机又分两种Flex的和Fixed的,本文是基于Fixed进行分析的。先看一下EcuM的状态机:该状态机包含了Ecu的startup,up,sleep和shutdown.实际项目中我们不必严格按照下面的状态执行,例如一般项目上并不需要sleep状态,而是直接接入shutdown状态,这样也是可以的,取决于实际项目的需要。

状态机

Shutdowm的状态Ecu需要做些什么,我们再看流程图:

状态机

首先在进入shutdown时,BswM会调用EcuM_SelectShutdownTarget,这一步是需要在BswM里面手动配置的。从而进入Ecum_Godown,而后进入EcuM_OnGoOffone,这是一个callout函数,根据需要可以在其中添加一些我们的手工代码,当然,这个阶段也可以直接断掉ECU的电源使能接口。

一般ECU的供电电源都会有一个enable port,当这个port口的电源为high时,使能电源,给整个ECU供电,包括MCU的供电,而这个enbale port通常是由软件控制的MCU IO口或者CANtransceiver来实现,所以要想令整个ECU下电,则只需要通过软件,拉低IO口的电压,或者发送指令让CANtransceiver进入休眠模式即可。

不过正常情况下,需要先对BswM和schM模块进行去初始化,并且关掉所有工作的内核,最终才执行以上的下电动作。其中要注意的是,如果在shutdown的过程中又收到有效的唤醒事件,那么则要执行reset的动作,重新开启ECUM的流程。

状态机

状态机

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分