日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

ECU的上下電都在做什么

2021-03-03 10:48:40·  來源:汽車ECU開發(fā)  作者:eng2mot  
 
ECU的啟動首先肯定是從芯片的BootROM開始,之前也寫過英飛凌Tricore系列的啟動流程(感興趣回戳—> )。當主芯片內(nèi)核初始化完之后,軟件初始化需要做什么呢? 在現(xiàn)在的汽車ECU開發(fā)中,大部分都慢慢引入AUTOSAR架構(gòu),所以在AUTOSAR架構(gòu)中,軟件的上下電流程是怎
ECU的啟動首先肯定是從芯片的BootROM開始,之前也寫過英飛凌Tricore系列的啟動流程(感興趣回戳—> )。當主芯片內(nèi)核初始化完之后,軟件初始化需要做什么呢?
在現(xiàn)在的汽車ECU開發(fā)中,大部分都慢慢引入AUTOSAR架構(gòu),所以在AUTOSAR架構(gòu)中,軟件的上下電流程是怎么做的呢?
在AUTOSAR架構(gòu)中,軟件的上下電流程主要由EcuM來管理,EcuM又分為兩種,分別為:
1、Fixed EcuM:用于管理ECU固定狀態(tài),例如OFF、RUN和SLEPP以及這些狀態(tài)之間的切換,對于沒有特殊需求(例如部分啟動或快速啟動)的ECU,這已足夠了,另外,F(xiàn)ixed EcuM不支持多核ECU。
2、Flexible EcuM:Flexible EcuM功能更強大,靈活度更高,允許一下情況:
    1、部分或快速啟動,即ECU以一組有限的功能啟動,然后在逐步啟動。
    2、交錯啟動,即ECU最低限度啟動,然后啟動BSW和SWCs,從而交錯BSW和應(yīng)用程序啟動。
    3、支持多核ECU,其中ECU的所有不同核上的不同狀態(tài)(啟動、關(guān)閉、休眠、喚醒)均能很好的協(xié)調(diào)。
EcuM模塊所負責的任務(wù)包括:
1、EcuM負責BswM,SchM和Autosar OS模塊以及一些基本軟件驅(qū)動程序模塊的初始化和反初始化。
2、負責處理不同的ECU狀態(tài),包括SLEEP和SHUTDOWN狀態(tài)。
3、 EcuM還處理ECU的所有喚醒事件,從而區(qū)分真實的喚醒事件和不穩(wěn)定的喚醒事件。
在實際應(yīng)用中,大部分用的是Flexible EcuM,所以接下來主要針對Flexible EcuM進行介紹。如圖1所示,展示了Flexible EcuM的狀態(tài)機,
圖1 Flexible EcuM狀態(tài)機

STARTUP Phase




STARTUP階段分為兩部分,如圖2所示。一部分在OS啟動之前,稱之為StartPreOS,這部分為初始化OS做基礎(chǔ),如圖3所示,這個階段要盡可能的短,主要設(shè)計的接口包括:
1、EcuM_AL_DriverInitZero:主要用于初始化DET模塊,讓其他模塊可以報告任何開發(fā)錯誤,也可以保持為空函數(shù)。
2、EcuM_AL_DriverInitOne:主要用于對主芯片的外設(shè)進行初始化,例如GPIO、ADC、PWM、ICU等等。

圖2 STARTUP階段
圖3 StartPreOS
STARTUP的第二部分,即為即StartPostOS序列,在調(diào)用EcuM_StartupTwo之后被激活。下圖4顯示了ECU初始化中PostOS啟動后的順序,主要包括:
圖4 StartPostOS階段
1、啟動BSW Scheduler(SchM)-SchM代表BSW Scheduler。用于加載BSW中TASK的配置信息。
2、初始化BSW調(diào)度程序-SchM_Init()是為初始化SchM模塊而定義的函數(shù)。它用于分配和初始化BSW Scheduler模塊要使用的資源。它可以調(diào)用OS服務(wù)來觸發(fā)AUTOSAR OS的任務(wù)。
3、BswM_Init(),用于初始化BswM模塊,為了后續(xù)可以正常觸發(fā)BswM中配置的規(guī)則和操作序列。

UP Phase

EcuM啟動操作系統(tǒng)并完成SchM和BswM的初始化后,ECU進入UP Phase。當BSW Scheduler啟動并調(diào)用BswM_Init時,UP Phase開始。此時,內(nèi)存管理、通信堆棧、軟件組件(SW-C)都尚未啟動。此階段由集成商定義,ECU按照集成商的指示從一種狀態(tài)進入另一種狀態(tài),從一種模式進入另一種模式。
集成商首先必須負責NVM的初始化,然后調(diào)用NvM_Readall。然后觸發(fā)BswM中配置的規(guī)則,分別完成通信協(xié)議棧、診斷協(xié)議棧、網(wǎng)絡(luò)管理等的初始化,這些初始化完后,啟動RTE,然后在啟動SWC。這樣程序就可以正常運行了。

SHUNTDOEN Phase

當程序中下電標志位置位后,開始進入SHUNTDOWN階段,首先是對將通信相關(guān)的進行關(guān)閉,以及關(guān)閉RTE終止任務(wù)的周期調(diào)度,然后對SHUNTDOWN一些模塊,例如DEM、BswM等。 最后調(diào)用 EcuM_GoDown(),在此之中主要是將完成NvM的寫入,已經(jīng)操作SBC的下電。 

SLEEP Phase

在此階段,不應(yīng)執(zhí)行任何代碼,但是仍會向ECU提供電源。應(yīng)該認為這是一種節(jié)能狀態(tài),以節(jié)省能源。ECU能響應(yīng)有意或無意的喚醒事件。對于意外喚醒事件,EcuM模塊提供的協(xié)議會忽略意外的喚醒事件。在常規(guī)的ECU中,通常不會這個狀態(tài)。

OFF Phase

當ECU斷電時,ECU將進入OFF狀態(tài)。在此狀態(tài)下可以通過SBC喚醒。
分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25