Ecu是如何斷電的?MCU是何時(shí)停止工作的?總線的通信是什么時(shí)候停止的?圍繞這些問(wèn)題,我們基于Autosar架構(gòu)進(jìn)行討論。
Autosar下架構(gòu)下,是靠EcuM模塊對(duì)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需要做些什么,我們?cè)倏戳鞒虉D:
首先在進(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來(lái)實(shí)現(xiàn),所以要想令整個(gè)ECU下電,則只需要通過(guò)軟件,拉低IO口的電壓,或者發(fā)送指令讓CANtransceiver進(jìn)入休眠模式即可。
不過(guò)正常情況下,需要先對(duì)BswM和schM模塊進(jìn)行去初始化,并且關(guān)掉所有工作的內(nèi)核,最終才執(zhí)行以上的下電動(dòng)作。其中要注意的是,如果在shutdown的過(guò)程中又收到有效的喚醒事件,那么則要執(zhí)行reset的動(dòng)作,重新開(kāi)啟ECUM的流程。
-
AUTOSAR
+關(guān)注
關(guān)注
10文章
378瀏覽量
22627 -
ecu
+關(guān)注
關(guān)注
14文章
933瀏覽量
55769 -
狀態(tài)機(jī)
+關(guān)注
關(guān)注
2文章
493瀏覽量
28221 -
MCU芯片
+關(guān)注
關(guān)注
3文章
256瀏覽量
12093
發(fā)布評(píng)論請(qǐng)先 登錄
用AFE4490的AFE_PDN腳停止工作和用控制寄存器0x23的PDNAFE位置停止工作有區(qū)別嗎
STM32為什么拔了仿真線會(huì)停止工作
ARMCC停止工作的問(wèn)題
Keil 運(yùn)行時(shí)停止工作
optane 16模塊突然停止工作
PWM停止工作
ISE在嘗試獲得許可時(shí)停止工作
拾取停止工作
PIC32MZ停止工作
致使AD7794停止工作的原因有哪些?
委內(nèi)瑞拉的第一顆國(guó)有通信衛(wèi)星將停止工作
APM32F003F6U6_硬件問(wèn)題_高溫時(shí)芯片停止工作

評(píng)論