精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

喚醒事件(也稱喚醒源)有效性驗證為什么要設置一段時間?

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

前言

上一篇中講只有Transceiver、Controller處于正常工作模式以后才能有效的收發報文,進而才能識別報文的類型(NM Message、XCPMessage、Diagnostic Message、APPMessage)。但識別出這些報文需要一個前提:ECU上電同時整個主程序運行起來,且需要一定的時間去識別報文類型。

項目中,喚醒事件(也稱喚醒源)有效性驗證為什么要設置一段時間?ECU上電,整個主程序如何運行起來?

本篇就上述問題進行分析。

喚醒事件有效性驗證時間分析

在實際的網絡管理項目中,大家可能會遇到這樣的需求:收到有效喚醒事件(如:網絡管理報文),網絡激活,報文正常收發;如果收到的報文是非網絡管理報文,ECU需要保持一定時間后休眠(如:ECU保持5s,即5s內ECU處于供電狀態)。注意后者網絡仍然在BSM(BusSleepMode),只能此時間內接收報文,不能發送報文。如果ECU在該時間內收到有效喚醒事件(多數是網絡管理報文,也可能是有效的Power ON信號報文),網絡將激活,進而進行正常的報文收發。

注意:ECU喚醒是網絡喚醒的前提條件,ECU喚醒并不一定網絡喚醒,如果網絡激活(進入NormalMode)則ECU一定喚醒(RUN模式)

為什么要ECU保持一段時間呢?這里說一下個人理解,ECU自身并不知道喚醒事件是不是有效,ECU只要被供電就從啟動文件指定的位置開始執行程序。如果要識別該喚醒事件是不是有效需要上層模塊(EcuM)識別,而EcuM從開始驗證到確認該事件的有效性需要調用底層模塊確認(如:Controller或者Transceiver),這需要時間,且EcuM的驗證和確認一般是異步執行,這也需要時間。上述時間其實并不長,項目不同執行的時間不等(每個項目初始化模塊數量和讀NVM時間不同),但多數在幾十毫秒內執行完,但又為什么會要求1s或者5s或者更長呢?個人理解:ECU被喚醒,整個冷啟動(可以理解為與電壓相關的啟動)花費了“較長”的時間,廢了這么大勁立馬Shutdown有點“過分”,如果ECU下電又被干擾起來還需要重頭再來(各個模塊、外設初始化、讀NVM等),既然這樣還不如等待一段時間確定沒有有效喚醒事件以后,ECU再走Shutdown流程,進而避免ECU頻繁的喚醒->休眠->喚醒,注意是ECU,不是網絡被喚醒->休眠->喚醒,網絡只有有效喚醒源才能激活。

ECU上電,程序運行過程分析

ECU如果要正常的運行程序,則需要供電,之后程序開始執行:啟動文件->BootLoader->Application,進入“main”函數,也就是我們熟知的用戶代碼程序。用戶代碼程序包含ASWC的runnable以及各個模塊的mainhandler(如:CanTrcv_30_Tja1145_MainFunction),這些程序在OS的調度下周期性或者事件觸發執行,這也是上層模塊可以收到消息和處理消息的基礎。

這里主要分析EcuM管理的上電到程序運行過程。AUTOSAR中,EcuM分為Flexible和Fixed兩種類型,因為Fixed并不支持多核且不靈活,本文主要討論Flexible類型的EcuM。

pYYBAGMESDyAX8xwAACoYJ2kfXY991.png

如上圖(1)所示,CInitCode一般是應用程序的main函數,即EcuM_Init在應用程序的main函數被調用,EcuM將控制ECU的啟動流程,EcuM調用StartOS,讓Os完成Task的激活。

EcuM_Init并不能完成MCU所有的初始化動作,在StartPreOS Sequence階段主要完成DET模塊(最先完成初始化,以便其它模塊可以上報開發錯誤)以及一些硬件外設的初始化,如MCU、Port、Internal Watchdog等(主要根據項目需求設置要初始化的外設模塊)。

poYBAGMESFKAP1JDAADR9R37i-A697.png

如上圖,EcuM_StartupTwo將完成SchM(Os),BSW模塊的初始化,其中各個模塊的初始化(Can_Init、CanIf_Init等)在BswM中完成。程序所需的所有外設、模塊初始化之后,啟動Scheduler 定時,即周期性的執行BSW/SWCs任務,至此Application程序得以運行。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17002

    瀏覽量

    350326
  • AUTOSAR
    +關注

    關注

    10

    文章

    350

    瀏覽量

    21479
  • ecu
    ecu
    +關注

    關注

    14

    文章

    881

    瀏覽量

    54405
  • DET
    DET
    +關注

    關注

    0

    文章

    3

    瀏覽量

    8580
收藏 人收藏

    評論

    相關推薦

    TLV5633IPW使用一段時間就壞了,為什么?

    最近使用TLV5633IPW芯片,使用一段時間就壞了,跟C8051F530A單片機搭配使用,DA輸出過大,請大佬出來指點一二,謝謝
    發表于 11-26 08:18

    文搞懂Linux進程的睡眠和喚醒

    : 使用 sleep() 函數讓進程暫停執行一段時間 使用 usleep() 函數,使進程睡眠0.5秒,精確度更高 使用 nanosleep(),使進程睡眠1.5秒,可以精細控制時間 2.
    發表于 11-04 15:15

    TAS5825正常播放一段時間后,進入Sleep模式喇叭沒有聲音,為什么?怎么解決?

    TAS5825正常輸出音頻信號一段時間后,芯片進入sleep模式,喇叭沒有聲音。 讀取相關寄存器發現DEVICE_CTRL2 寄存器設置為0x03,上電之后STATE_RPT 寄存器值為0x03
    發表于 10-15 08:19

    風機運行一段時間跳閘的原因

    風機在運行一段時間后跳閘,可能的原因有多種,以下是些常見的因素及其解決方法: 、電氣因素 起動電流過大 : 對于大功率容量的風機,建議采用降壓起動方式以減少起動電流。 檢查電氣系統,確保電氣元件
    的頭像 發表于 09-30 10:11 ?1235次閱讀

    求助,有沒有上升沿和下降沿觸發后保持一段時間可以恢復的芯片?

    電源輸出 然后在板子上電時SN74LVC1G80-Q1的Q pin就直接輸出了高電平,并不能停止輸出 我想咨詢有沒有上升沿和下降沿觸發后保持一段時間可以恢復的芯片
    發表于 09-23 07:16

    使用labview調用python運行一段時間后,報錯

    使用labview調用python運行一段時間后,報錯。 labview版本:2018*64; python:3.6x64 怎么解決~
    發表于 08-26 10:16

    如何讓蜂鳴器響一段時間停止

    蜂鳴器是種常見的電子元件,廣泛應用于各種電子設備中,如鬧鐘、電話、電子玩具等。蜂鳴器的工作原理是通過電磁線圈產生磁場,使蜂鳴片振動產生聲音。本文將介紹如何讓蜂鳴器響一段時間停止,包括硬件連接、軟件
    的頭像 發表于 08-09 10:06 ?730次閱讀

    ESP32 CAM板子在light_sleep模式喚醒時有定概率重啟的原因?

    我使用ESP32-CAM板子,程序邏輯是每工作一段時間(比如60s)然后進入light sleep模式100s,設置light sleep的喚醒方式為timer。 但是程序有定概率
    發表于 06-18 08:29

    STM3218B20讀取一段時間后出0是怎么回事?

    18b20讀取一段時間后出0
    發表于 04-22 06:58

    STM8串口工作一段時間后出現通訊異常的原因?

    能串口。發送數據前先發送幾個0x00喚醒對方再發有用數據。通訊速率很低。 產品在終端客戶手上使用一段時間后可能會出現通訊不上的問題。出現問題后過一段時間可能會自行恢復。通過對STM8L052R8T6
    發表于 04-15 08:05

    兩個控制器間SPI通信片選使能后為什么一段時間才收發數據?

    求助各位大佬,[抱拳]:兩個控制器間SPI通信片選使能后為什么一段時間才收發數據?收發完數據后為什么過一段時間才拉高片選?如附圖示時間段1和時間
    發表于 03-13 08:13

    tc264隔一段時間會復位有些什么原因呢?

    tc264隔一段時間會復位有些什么原因呢
    發表于 02-02 07:31

    LTM4700負載滿載時,運行一段時間電源會掉電下如何解決?

    您好, 使用LTM4700遇到個問題:在負載不滿載時,沒有問題,負載滿載時(電流約60A),運行一段時間電源會掉電下,懷疑是過流導致電源保護,環路補償設置不合適,但是環路補償如何
    發表于 01-04 08:01

    AD7655芯片工作一段時間后異常是什么原因引起的?

    一段時間后,AD7655芯片會急劇增溫,AVDD電平拉低。 不知道這是什么原因引起的? 在線等。。那位大神指點下啊?謝謝!
    發表于 12-14 06:00

    維修力科示波器604ZI開機一段時間黑屏

    近日某院校送修力科示波器604ZI,客戶反饋開機一段時間黑屏,對儀器進行初步檢測,確定與客戶描述故障基本致。本期將為大家分享本維修案例。 下面就是力科-604ZI維修情況 力科示波器604ZI開機
    的頭像 發表于 12-11 16:18 ?460次閱讀