一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

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

前言

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

項(xiàng)目中,喚醒事件(也稱喚醒源)有效性驗(yàn)證為什么要設(shè)置一段時(shí)間?ECU上電,整個(gè)主程序如何運(yùn)行起來(lái)?

本篇就上述問(wèn)題進(jìn)行分析。

喚醒事件有效性驗(yàn)證時(shí)間分析

在實(shí)際的網(wǎng)絡(luò)管理項(xiàng)目中,大家可能會(huì)遇到這樣的需求:收到有效喚醒事件(如:網(wǎng)絡(luò)管理報(bào)文),網(wǎng)絡(luò)激活,報(bào)文正常收發(fā);如果收到的報(bào)文是非網(wǎng)絡(luò)管理報(bào)文,ECU需要保持一定時(shí)間后休眠(如:ECU保持5s,即5s內(nèi)ECU處于供電狀態(tài))。注意后者網(wǎng)絡(luò)仍然在BSM(BusSleepMode),只能此時(shí)間內(nèi)接收?qǐng)?bào)文,不能發(fā)送報(bào)文。如果ECU在該時(shí)間內(nèi)收到有效喚醒事件(多數(shù)是網(wǎng)絡(luò)管理報(bào)文,也可能是有效的Power ON信號(hào)報(bào)文),網(wǎng)絡(luò)將激活,進(jìn)而進(jìn)行正常的報(bào)文收發(fā)。

注意:ECU喚醒是網(wǎng)絡(luò)喚醒的前提條件,ECU喚醒并不一定網(wǎng)絡(luò)喚醒,如果網(wǎng)絡(luò)激活(進(jìn)入NormalMode)則ECU一定喚醒(RUN模式)。

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

ECU上電,程序運(yùn)行過(guò)程分析

ECU如果要正常的運(yùn)行程序,則需要供電,之后程序開始執(zhí)行:?jiǎn)?dòng)文件->BootLoader->Application,進(jìn)入“main”函數(shù),也就是我們熟知的用戶代碼程序。用戶代碼程序包含ASWC的runnable以及各個(gè)模塊的mainhandler(如:CanTrcv_30_Tja1145_MainFunction),這些程序在OS的調(diào)度下周期性或者事件觸發(fā)執(zhí)行,這也是上層模塊可以收到消息和處理消息的基礎(chǔ)。

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

pYYBAGMESDyAX8xwAACoYJ2kfXY991.png

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

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

poYBAGMESFKAP1JDAADR9R37i-A697.png

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



審核編輯:劉清

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

    關(guān)注

    146

    文章

    17734

    瀏覽量

    358573
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    370

    瀏覽量

    22318
  • ecu
    ecu
    +關(guān)注

    關(guān)注

    14

    文章

    907

    瀏覽量

    55332
  • DET
    DET
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    8664
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LSM6DSR工作一段時(shí)間后就算靜止不動(dòng)會(huì)出現(xiàn)Y軸數(shù)據(jù)偏移,是什么原因?qū)е碌模?/a>

    LSM6DSR工作一段時(shí)間后就算靜止不動(dòng)會(huì)出現(xiàn)Y軸數(shù)據(jù)偏移,請(qǐng)問(wèn)下是什么原因可能會(huì)導(dǎo)致出現(xiàn)這個(gè)異常?
    發(fā)表于 03-11 07:52

    ADS1278上電后運(yùn)行一段時(shí)間后DRDY信號(hào)就沒(méi)有了,為什么?

    我們用 ADS1278 做了個(gè)樣板,直有 DRDY 引號(hào),數(shù)據(jù)可以采集到。但前幾天,上電后運(yùn)行一段時(shí)間后 DRDY 信號(hào)就沒(méi)有了,再斷電、上電,還是運(yùn)行
    發(fā)表于 01-09 07:55

    使用STM32單片機(jī)可以進(jìn)行SPI通訊,一段時(shí)間可以正常工作,一段時(shí)間沒(méi)有數(shù)值,這是什么問(wèn)題?

    我使用STM32單片機(jī),可以進(jìn)行SPI通訊。。一段時(shí)間可以正常工作,一段時(shí)間沒(méi)有數(shù)值,寄存器0x20顯示0xf0.。。。請(qǐng)問(wèn)您這是什么問(wèn)題?
    發(fā)表于 01-09 07:52

    ADS1013采集運(yùn)放輸出數(shù)據(jù),一段時(shí)間后變的很低是為什么?

    我用ADS1013采集AD8237運(yùn)放輸出直流數(shù)據(jù),開始采集得到的原始數(shù)據(jù)為683,對(duì)應(yīng)1.3v。一段時(shí)間后大概5-9分鐘,ads1013讀出來(lái)的數(shù)據(jù)變成11,對(duì)應(yīng)0.02v,然后不再發(fā)生變化。需要系統(tǒng)復(fù)位ADS1013采集的數(shù)據(jù)才會(huì)變成683,但過(guò)了一段時(shí)間還是會(huì)出現(xiàn)
    發(fā)表于 12-17 07:09

    TLV5633IPW使用一段時(shí)間就壞了,為什么?

    最近使用TLV5633IPW芯片,使用一段時(shí)間就壞了,跟C8051F530A單片機(jī)搭配使用,DA輸出過(guò)大,請(qǐng)大佬出來(lái)指點(diǎn)一二,謝謝
    發(fā)表于 11-26 08:18

    文搞懂Linux進(jìn)程的睡眠和喚醒

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

    TAS5825正常播放一段時(shí)間后,進(jìn)入Sleep模式喇叭沒(méi)有聲音,為什么?怎么解決?

    TAS5825正常輸出音頻信號(hào)一段時(shí)間后,芯片進(jìn)入sleep模式,喇叭沒(méi)有聲音。 讀取相關(guān)寄存器發(fā)現(xiàn)DEVICE_CTRL2 寄存器設(shè)置為0x03,上電之后STATE_RPT 寄存器值為0x03
    發(fā)表于 10-15 08:19

    風(fēng)機(jī)運(yùn)行一段時(shí)間跳閘的原因

    風(fēng)機(jī)在運(yùn)行一段時(shí)間后跳閘,可能的原因有多種,以下是些常見(jiàn)的因素及其解決方法: 、電氣因素 起動(dòng)電流過(guò)大 : 對(duì)于大功率容量的風(fēng)機(jī),建議采用降壓起動(dòng)方式以減少起動(dòng)電流。 檢查電氣系統(tǒng),確保電氣元件
    的頭像 發(fā)表于 09-30 10:11 ?3139次閱讀

    CYW89820怎么關(guān)閉HIDOFF下GPIO作為喚醒?

    HIDOFF, 因?yàn)槲矣?jì)劃在HIDOFF下周期喚醒,但設(shè)置喚醒時(shí)間到后,查看wake up reason,會(huì)顯示GPIO,通過(guò)
    發(fā)表于 09-26 06:56

    求助,有沒(méi)有上升沿和下降沿觸發(fā)后保持一段時(shí)間可以恢復(fù)的芯片?

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

    使用labview調(diào)用python運(yùn)行一段時(shí)間后,報(bào)錯(cuò)

    使用labview調(diào)用python運(yùn)行一段時(shí)間后,報(bào)錯(cuò)。 labview版本:2018*64; python:3.6x64 怎么解決~
    發(fā)表于 08-26 10:16

    如何讓蜂鳴器響一段時(shí)間停止

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

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

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

    esp32使用esp_http_client時(shí)過(guò)了一段時(shí)間就會(huì)出現(xiàn)報(bào)錯(cuò),為什么?

    每次都是使用了一段時(shí)間后出現(xiàn)這個(gè)問(wèn)題,甚至連wifi都異常斷開,無(wú)法重連
    發(fā)表于 06-17 07:17

    VL53L0在使用一段時(shí)間后無(wú)法讀取數(shù)據(jù)如何解決?

    VL53L0在使用一段時(shí)間后無(wú)法讀取數(shù)據(jù),已經(jīng)有好幾個(gè)模塊了,返回的錯(cuò)誤代碼有-6,-7和-20,這個(gè)到底是怎么回事?如何解決?
    發(fā)表于 05-28 08:07