0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

EcuM是如何知道有喚醒事件呢?

冬至配餃子 ? 來源:開心果 Need Car ? 作者:開心果 Need Car ? 2022-08-23 11:39 ? 次閱讀

前言

在AUTOSAR中,Ecu的喚醒流程并不能簡單的看作是對各個外設(shè)模塊的供電動作。Autosar給了軟件開發(fā)人員很大的自由度去設(shè)計目標(biāo)項目Ecu的喚醒動作,而自由度越大的代價就是開發(fā)人員需要很好的設(shè)計Ecu的喚醒時序,提供Ecu喚醒過程的魯棒性。

喚醒源的狀態(tài)

在EcuM中規(guī)定了喚醒源的4中狀態(tài):NONE、PENDING、VALIDATED、EXPIRED。四種狀態(tài)關(guān)系的切換關(guān)系如下所示:

poYBAGMES7WAJoCFAADeSJyKHwM989.png

當(dāng)Ecu上電時,喚醒源的初始狀態(tài)是NONE,當(dāng)喚醒源狀態(tài)切換到NONE時,需要通知到BswM模塊,上圖也可以看出,喚醒源的每次狀態(tài)切換都需要通知到BswM模塊,通知接口:BswM_EcuM_CurrentWakeup。

EcuM是如何知道有喚醒事件呢?EcuM如果想知道有喚醒Ecu的事件,最好的方式就是給底層提供一個接口或者注冊一個回調(diào),Autosar里規(guī)定了標(biāo)準(zhǔn)接口:EcuM_SetWakeupEvent。當(dāng)有喚醒事件發(fā)生時,底層的硬件模塊(例如:Transceiver、Sensor)最先識別到,之后通過該接口上報給EcuM。

EcuM主函數(shù)會輪詢檢測底層上報的喚醒事件,如果想進(jìn)一步的分析喚醒事件是不是有效的總線喚醒源(網(wǎng)絡(luò)管理報文),需要Ecu有正常的收發(fā)報文能力,想要收發(fā)報文,Transceiver和Controller兩個模塊均需要啟動。一般來講,Transceiver會在程序初始化時進(jìn)入正常的工作模式,而Controller進(jìn)入正常的工作模式是EcuM調(diào)用EcuM_StartWakeupSources的結(jié)果,而該接口的內(nèi)部功能的實現(xiàn)由開發(fā)者自行把控,autosar并未做硬性的要求。

啟動Transceiver和Controller,建立了報文的正常收發(fā)能力,Ecu即可進(jìn)一步的將報文上報上層模塊,如:CanIf,即此時Ecu可以拿到總線的RawData,不管是不是網(wǎng)絡(luò)管理報文,Ecu都可以做進(jìn)一步的功能實現(xiàn),如收到診斷報文喚醒網(wǎng)絡(luò)等。

一般來說,會在EcuM模塊配置兩個時間參數(shù),CheckWakeup和ValidateWakeup時間,如果CheckWakeup時間走完走完沒有判斷到有效的喚醒源,則調(diào)用EcuM_StopWakeupSources關(guān)閉喚醒源,這里多數(shù)關(guān)閉controller,進(jìn)而Ecu失去通信能力。

ValidateWakeup時間參數(shù)配置與否決定了是否使用喚醒事件的驗證功能,如果配置該參數(shù),且驗證喚醒事件有效后則通知ComM使能通信,調(diào)用ComM接口:ComM_EcuM_WakeupIndication。如果該參數(shù)沒有配置,則EcuM不在繞圈,直接通知BswM喚醒事件有效,通知ComM開啟通信。個人理解:該參數(shù)配置較合理。

第一:可以驗證喚醒事件的有效性,避免因總線抖動等干擾造成的非預(yù)期Ecu喚醒;

第二:如果使用的Transceiver沒有Pn功能,Ecu會因總線的擾動而不斷的喚醒,假設(shè)總線有應(yīng)用報文沒有網(wǎng)絡(luò)管理報文,ValidateWakeup時間給0,Ecu將會不斷的走上下電流程,如果下電選擇OFF流程(實際項目中很多開發(fā)人員沒有開啟Reset流程的Operation,即直接冷啟動,這不符合autosar規(guī)范,也不安全),將會帶來未知問題(如果Ecu內(nèi)核有一定時間內(nèi)喚醒次數(shù)限制,超過閾值則可能上鎖保護(hù)),設(shè)置該參數(shù)可以有效的延遲Ecu喚醒頻率。


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8459

    瀏覽量

    150746
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2861

    瀏覽量

    87923
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    349

    瀏覽量

    21447
收藏 人收藏

    評論

    相關(guān)推薦

    【AI技術(shù)支持】ESP32-C3-MINI-1U模組睡眠模式下喚醒死機(jī)問題

    啟明云端/01你是否曾遇到過?在使用ESP32-C3-MINI-1U模組,ESP-IDF版本為idf5.0.1時,在睡眠模式下上電喚醒概率失敗,模組死機(jī),串口沒有任何信息打印,為什么?啟明云端
    的頭像 發(fā)表于 10-23 08:01 ?242次閱讀
    【AI技術(shù)支持】ESP32-C3-MINI-1U模組睡眠模式下<b class='flag-5'>喚醒</b>死機(jī)問題

    干貨分享 | TSMaster—LIN 喚醒與休眠機(jī)制

    在汽車總線中常見的喚醒方式硬線喚醒、網(wǎng)絡(luò)喚醒和特定信號喚醒,而LIN總線則是通過休眠幀與喚醒
    的頭像 發(fā)表于 09-25 08:03 ?1274次閱讀
    干貨分享 | TSMaster—LIN <b class='flag-5'>喚醒</b>與休眠機(jī)制

    請問esp32c6 wifi6 twt如何在程序里知道CPU已經(jīng)喚醒

    30mA。 在twt建立后,從電流曲線能看到板子確實在按照約定的時間在喚醒休眠中循環(huán),但是這個過程中例程里沒有日志輸出。 我比較好奇的是,在代碼中有沒有辦法知道何時喚醒?或者說,能否在喚醒
    發(fā)表于 06-07 08:23

    藍(lán)牙模塊喚醒原理是怎樣的?

    具有一項獨(dú)特的功能——喚醒功能。本文將詳細(xì)介紹藍(lán)牙模塊喚醒的工作原理。 ?一、藍(lán)牙模塊喚醒的基本原理 ?藍(lán)牙模塊喚醒的工作原理主要基于低功耗藍(lán)牙(BLE)技術(shù)。低功耗藍(lán)牙技術(shù)是一種實現(xiàn)
    的頭像 發(fā)表于 05-27 15:52 ?1223次閱讀
    藍(lán)牙模塊<b class='flag-5'>喚醒</b>原理是怎樣的?

    三星貼片電容規(guī)格哪些?怎么選擇?

    在這里可以明確的告訴大家,三星貼片電容的規(guī)格很多。目前有上百種電三星貼片電容的規(guī)格,因為不同的三星貼片的規(guī)格,所適用的電器是不一樣的。那么三星貼片的電容哪些?如果大家想要知道三星
    的頭像 發(fā)表于 05-24 16:31 ?321次閱讀
    三星貼片電容規(guī)格<b class='flag-5'>有</b>哪些<b class='flag-5'>呢</b>?怎么選擇<b class='flag-5'>呢</b>?

    stm8s halt之后無法喚醒怎么解決?

    我用的是003f3p6,現(xiàn)在遇到一件很奇怪的事,在連接STLINK的時候,單片機(jī)可以很正常地從halt模式中喚醒,但是如果不連接的話,就會無法喚醒,不知道有人遇到過同樣的情況嗎?求幫助!
    發(fā)表于 05-08 08:18

    stop mode下怎么實現(xiàn)按下矩陣鍵盤的任意鍵將系統(tǒng)喚醒

    請問有沒有大佬知道stop mode下怎么實現(xiàn)按下矩陣鍵盤的任意鍵將系統(tǒng)喚醒?用WAKEUP 能實現(xiàn)嗎?
    發(fā)表于 05-06 07:08

    操作FreeRTOS時,執(zhí)行__WFI()導(dǎo)致系統(tǒng)滴答中斷無法喚醒設(shè)備怎么解決?

    內(nèi)核時鐘全部關(guān)閉了,導(dǎo)致滴答中斷無法觸發(fā),不知道是不是這樣的原因 2、如果__WFI()無法使用滴答中斷喚醒,那能否用普通定時器喚醒,怎么樣能夠讓普通定時器去替代系統(tǒng)滴答 希望
    發(fā)表于 04-24 08:29

    PC端打開串口助手,怎么會影響到STM32的WKUP喚醒?

    。 問題: PC端 打開串口助手,怎么會影響到 STM32 的 WKUP 喚醒? 難道是串口什么信號引腳干擾了內(nèi)核喚醒? 非常感謝!
    發(fā)表于 04-24 08:26

    DCM模塊喚醒網(wǎng)絡(luò)主動與被動喚醒機(jī)制探討

    CanNm專題機(jī)從Prepare Bus-Sleep Mode切換到Nework Mode的Repeat Message State是如果是通過CanNm_PassiveStartUp()條件切換的就是被動喚醒,如果是通過CanNm_NetworkRequest()條件切換的就是主動
    發(fā)表于 03-15 11:20 ?879次閱讀
    DCM模塊<b class='flag-5'>喚醒</b>網(wǎng)絡(luò)主動與被動<b class='flag-5'>喚醒</b>機(jī)制探討

    stm32進(jìn)入stop模式后,為什么uart還能觸發(fā)中斷并喚醒stm32

    我的理解是stm32進(jìn)入stop模式后,外設(shè)時鐘都停掉了,比如uart的時鐘,也就是說uart無法收數(shù)據(jù)了,為什么uart還能觸發(fā)中斷并喚醒stm32
    發(fā)表于 03-15 08:16

    STM32WL55啟用Radio初始化,RTC待機(jī)喚醒模式失效的原因?

    排查了很久,發(fā)現(xiàn)使用了Radio.Init();函數(shù)后原本使用的Standby模式被一直喚醒(程序使用的是RTC5秒喚醒),老哥知道原因嗎?
    發(fā)表于 03-12 08:34

    電動汽車的ECU進(jìn)入休眠后,目前有3種喚醒模式,CAN總線和AC電壓的喚醒設(shè)計原理是什么?

    電動汽車的ECU進(jìn)入休眠后,目前有3種喚醒模式,我想知道CAN總線和AC電壓的喚醒設(shè)計原理是什么?
    發(fā)表于 02-02 06:19

    貼片加工廠生產(chǎn)前對PCB進(jìn)行烘烤什么用?

    在貼片加工廠待過的朋友們都知道,一般PCB在貼片之前都會放到烤箱進(jìn)行烘烤(特殊板材除外),這樣做什么用?接下來小編就為大家一一解析。
    的頭像 發(fā)表于 01-12 11:10 ?838次閱讀

    aducm360進(jìn)入低功耗無法喚醒是什么原因?qū)е碌??如何解決?

    ,NVIC_EnableIRQ(EINT4_IRQn); EiCfg(EXTINT2,INT_EN,INT_RISE);//外部中斷2,NVIC_EnableIRQ(EINT2_IRQn); 可是實際工作時,串口可以喚醒CPU,返回相應(yīng)指令, 但外部中斷4,卻無法喚醒
    發(fā)表于 01-11 07:45