Ecu是如何斷電的?MCU是何時停止工作的?總線的通信是什么時候停止的?圍繞這些問題,我們基于Autosar架構(gòu)進行討論。
Autosar下架構(gòu)下,是靠EcuM模塊對Ecu進行狀態(tài)機的管理,其中EcuM的狀態(tài)機又分兩種Flex的和Fixed的,本文是基于Fixed進行分析的。先看一下EcuM的狀態(tài)機:該狀態(tài)機包含了Ecu的startup,up,sleep和shutdown.實際項目中我們不必嚴格按照下面的狀態(tài)執(zhí)行,例如一般項目上并不需要sleep狀態(tài),而是直接接入shutdown狀態(tài),這樣也是可以的,取決于實際項目的需要。
Shutdowm的狀態(tài)Ecu需要做些什么,我們再看流程圖:
首先在進入shutdown時,BswM會調(diào)用EcuM_SelectShutdownTarget,這一步是需要在BswM里面手動配置的。從而進入Ecum_Godown,而后進入EcuM_OnGoOffone,這是一個callout函數(shù),根據(jù)需要可以在其中添加一些我們的手工代碼,當然,這個階段也可以直接斷掉ECU的電源使能接口。
一般ECU的供電電源都會有一個enable port,當這個port口的電源為high時,使能電源,給整個ECU供電,包括MCU的供電,而這個enbale port通常是由軟件控制的MCU IO口或者CANtransceiver來實現(xiàn),所以要想令整個ECU下電,則只需要通過軟件,拉低IO口的電壓,或者發(fā)送指令讓CANtransceiver進入休眠模式即可。
不過正常情況下,需要先對BswM和schM模塊進行去初始化,并且關(guān)掉所有工作的內(nèi)核,最終才執(zhí)行以上的下電動作。其中要注意的是,如果在shutdown的過程中又收到有效的喚醒事件,那么則要執(zhí)行reset的動作,重新開啟ECUM的流程。
-
AUTOSAR
+關(guān)注
關(guān)注
10文章
370瀏覽量
22377 -
ecu
+關(guān)注
關(guān)注
14文章
912瀏覽量
55412 -
狀態(tài)機
+關(guān)注
關(guān)注
2文章
493瀏覽量
28047 -
MCU芯片
+關(guān)注
關(guān)注
3文章
256瀏覽量
11949
發(fā)布評論請先 登錄
評論