Ecu是如何斷電的?MCU是何時(shí)停止工作的?總線的通信是什么時(shí)候停止的?圍繞這些問題,我們基于Autosar架構(gòu)進(jìn)行討論。
Autosar下架構(gòu)下,是靠EcuM模塊對Ecu進(jìn)行狀態(tài)機(jī)的管理,其中EcuM的狀態(tài)機(jī)又分兩種Flex的和Fixed的,本文是基于Fixed進(jìn)行分析的。先看一下EcuM的狀態(tài)機(jī):該狀態(tài)機(jī)包含了Ecu的startup,up,sleep和shutdown.實(shí)際項(xiàng)目中我們不必嚴(yán)格按照下面的狀態(tài)執(zhí)行,例如一般項(xiàng)目上并不需要sleep狀態(tài),而是直接接入shutdown狀態(tài),這樣也是可以的,取決于實(shí)際項(xiàng)目的需要。

Shutdowm的狀態(tài)Ecu需要做些什么,我們再看流程圖:

首先在進(jìn)入shutdown時(shí),BswM會(huì)調(diào)用EcuM_SelectShutdownTarget,這一步是需要在BswM里面手動(dòng)配置的。從而進(jìn)入Ecum_Godown,而后進(jìn)入EcuM_OnGoOffone,這是一個(gè)callout函數(shù),根據(jù)需要可以在其中添加一些我們的手工代碼,當(dāng)然,這個(gè)階段也可以直接斷掉ECU的電源使能接口。
一般ECU的供電電源都會(huì)有一個(gè)enable port,當(dāng)這個(gè)port口的電源為high時(shí),使能電源,給整個(gè)ECU供電,包括MCU的供電,而這個(gè)enbale port通常是由軟件控制的MCU IO口或者CANtransceiver來實(shí)現(xiàn),所以要想令整個(gè)ECU下電,則只需要通過軟件,拉低IO口的電壓,或者發(fā)送指令讓CANtransceiver進(jìn)入休眠模式即可。
不過正常情況下,需要先對BswM和schM模塊進(jìn)行去初始化,并且關(guān)掉所有工作的內(nèi)核,最終才執(zhí)行以上的下電動(dòng)作。其中要注意的是,如果在shutdown的過程中又收到有效的喚醒事件,那么則要執(zhí)行reset的動(dòng)作,重新開啟ECUM的流程。


-
AUTOSAR
+關(guān)注
關(guān)注
10文章
388瀏覽量
23381 -
ecu
+關(guān)注
關(guān)注
14文章
953瀏覽量
56660 -
狀態(tài)機(jī)
+關(guān)注
關(guān)注
2文章
495瀏覽量
28703 -
MCU芯片
+關(guān)注
關(guān)注
3文章
257瀏覽量
12429
發(fā)布評論請先 登錄

Ecu是如何斷電的?MCU是何時(shí)停止工作的?
評論