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

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

3天內不再提示

網(wǎng)絡關閉但ECU沒有休眠前如何進行網(wǎng)絡喚醒呢?

832065824 ? 來源:汽車電子嵌入式 ? 2023-03-29 09:06 ? 次閱讀

前言

最近在做CAN網(wǎng)絡管理的工作,發(fā)現(xiàn)網(wǎng)絡休眠(關閉)后在ECU系統(tǒng)沒有休眠/下電前如果又收到了NM報文,ECU的網(wǎng)絡沒有被重新喚醒(開啟),ECU系統(tǒng)也沒有結束下電(Shutdown)流程,而是直接下電后再被喚醒,而不是我們期望的在PreShutdown到Shutdown階段收到NM報文重回到Startup階段。

正文

1.網(wǎng)絡休眠時的相關系統(tǒng)狀態(tài)

在本地喚醒源(Local wake up source,一般是IGN等硬線信號)Disable掉后,User會調用ComM_RequestComMode請求ComM進入到NoCom狀態(tài),如果這個時候沒有接收到NM報文,且沒有收到診斷請求ComM會切換到NoCom狀態(tài),這個時候ComM會調用CanSM_RequestComMode(network:=, mode:= COMM_NO_COMMUNICATION)關閉Can控制器(CanDriver)的收發(fā)報文能力。

我們具體來看CanSM對Can Transceiver的操作,以及此時Transceiver的狀態(tài)。

1dae6d16-cdc6-11ed-bfe3-dac502259ad0.png

1db61732-cdc6-11ed-bfe3-dac502259ad0.png

CanSM-->CanIf-->CanTrcv最終會拉低TJA1043收發(fā)器的STB_N腳,這個時候TJA1043收發(fā)器的INH腳是處于高電平狀態(tài)。

1dcd7f94-cdc6-11ed-bfe3-dac502259ad0.png

TJA1043收發(fā)器處于Standby mode時的報文收發(fā)功能是關閉的,也就是收發(fā)器在Standby mode下是不能收發(fā)報文的。

所以這個時候,ComM處于NoCom狀態(tài),NM處于Bus Sleep狀態(tài),就算這個時候Can-Bus上有NM報文過來,Can Transceiver根本就收不到,也就是不可能讓ECU系統(tǒng)狀態(tài)機從Preshutdown跳轉到Startup。

那能讓Can Transceiver別不要進入到Standby Mode么?-- 不能,因為ComM進入NoCom后CanSM-->CanIf-->CanTrcv設置Transceiver進入到Standby mode這個過程是AUTOSAR靜態(tài)代碼自動實現(xiàn)的,我們不可能去改靜態(tài)代碼。

所以我們該怎么做才能實現(xiàn)網(wǎng)絡關閉后ECU沒有休眠前網(wǎng)絡喚醒?

2.網(wǎng)絡休眠后重新喚醒網(wǎng)絡需要做的準備工作

要實現(xiàn)網(wǎng)絡關閉后ECU沒有休眠前網(wǎng)絡喚醒需要以下必要操作:

1)配置CanIf和EcuM的Wake up validation功能。

1de4ab2e-cdc6-11ed-bfe3-dac502259ad0.png

2)User判斷Can Transceiver進入到Standby模式后,通過CanIf_SetTransceiverMode --> CanTrcv_SetTransceiverMode設置收發(fā)器到Sleep模式。

1df38b26-cdc6-11ed-bfe3-dac502259ad0.png

1e0cf99e-cdc6-11ed-bfe3-dac502259ad0.png

軟件設置Can收發(fā)器到Sleep模式后通過硬件設計保證INH腳在Sleep模式是以低電平狀態(tài)輸入到MCU。

3)Can收發(fā)器進入Sleep模式后如果收到CAN報文就會使得INH腳切換到High電平狀態(tài),User通過判斷INH腳從Low電平狀態(tài)跳變?yōu)镠igh狀態(tài)來得知Can-Bus收到了報文,這個時候通過調用CanIf_SetTransceiverMode --> CanTrcv_SetTransceiverMode設置Can Transceiver到Normal狀態(tài),這樣Can Transceiver就能接收到報文了,報文就能到達CanIf模塊。

4)允許網(wǎng)絡通信CommunicationAllowed=TRUEComM,這樣通過ComM_EcuM_WakeUpIndication(ChX)這個條件就能使得ComM進入到FullCom狀態(tài),如果收到的是NM報文,就能維持住網(wǎng)絡。

3.總結

想要實現(xiàn)網(wǎng)絡關閉但ECU沒有休眠前網(wǎng)絡喚醒需要通過檢測TJA1043收發(fā)器的INH腳的電平狀態(tài)來判斷接收到Can報文,然后通過EcuM和CanIf的喚醒源校驗(NM報文校驗)功能來觸發(fā)ComM模塊切換到FullCom狀態(tài),最后ComM進入FullCom后調用CanSM接口喚醒網(wǎng)絡,同時NM狀態(tài)進入到Network Mode的Repeat Message State,整個網(wǎng)路開啟。







審核編輯:劉清

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

    關注

    10

    文章

    3370

    瀏覽量

    105791
  • AUTOSAR
    +關注

    關注

    10

    文章

    349

    瀏覽量

    21446
  • ecu
    ecu
    +關注

    關注

    14

    文章

    876

    瀏覽量

    54360
  • CAN網(wǎng)絡

    關注

    1

    文章

    44

    瀏覽量

    16886

原文標題:網(wǎng)絡關閉但ECU沒有休眠前如何網(wǎng)絡喚醒

文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    干貨分享 | TSMaster—LIN 喚醒休眠機制

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

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

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

    cc2530休眠喚醒后各個模塊寄存器的值有變化嗎?

    做zigbee協(xié)議cc2530低功耗編程時有以下疑問請幫忙解答一下:1.休眠喚醒后各個模塊寄存器的值有變化嗎?尤其是串口。2.串口要進入休眠狀態(tài)需要哪些設置?一定要中斷模式嗎?DM
    發(fā)表于 04-01 17:53

    Zigbee 怎么實現(xiàn)沒有網(wǎng)絡就進入休眠的功能

    本帖最后由 冒汗的心情 于 2016-4-27 09:14 編輯 在Zigbee網(wǎng)路想實現(xiàn)一個功能,如果終端上電周圍沒有網(wǎng)絡可以加入,就進入休眠,下次上電再繼續(xù)加入網(wǎng)絡,如果
    發(fā)表于 04-26 10:19

    如果設備加入到網(wǎng)絡后,在休眠后怎么檢測到協(xié)調器掉網(wǎng)?

    TI工程師,你們好,我現(xiàn)在有一個終端節(jié)點,想做低功耗,現(xiàn)在有幾個問題想請教下,謝謝!1、如果設備在沒有加入網(wǎng)絡的狀態(tài)下,怎么讓設備進入到休眠,然后定時喚醒和按鍵中斷喚醒。2、如果設備加
    發(fā)表于 08-05 14:21

    如何實現(xiàn)局部網(wǎng)絡休眠喚醒機制?

    局部網(wǎng)絡管理是什么?局部網(wǎng)絡(PN)管理的優(yōu)勢有哪些?如何實現(xiàn)局部網(wǎng)絡休眠喚醒機制?
    發(fā)表于 04-19 07:42

    無os的LwIP在TCP server歷程中如何進行網(wǎng)絡數(shù)據(jù)發(fā)送

    無os的LwIP在TCP server歷程中如何進行網(wǎng)絡數(shù)據(jù)發(fā)送?開啟LWIP的調試功能主要的設置步驟有哪些?
    發(fā)表于 11-04 06:47

    ECU是怎么啟動或關閉?ECU啟動方式有沒有一般規(guī)律

    前言當你看到ECU從啟動狀態(tài)至正常運行狀態(tài),再從正常運行狀態(tài)至休眠關閉的過程時,你是否曾想過以下一些問題?ECU是怎么啟動或
    發(fā)表于 02-10 06:07

    CH582M freeRTOS如何實現(xiàn)休眠? 休眠后如何喚醒?

    有以下以后望解答:如何實現(xiàn)休眠? 休眠后如何喚醒?目前嘗試用裸機例程中的休眠函數(shù),僅LowPower_Shutdown(0); 可以正常睡眠并且成功
    發(fā)表于 08-01 06:19

    LM3S系列單片機休眠與深度休眠應用筆記

    介紹 LM3S 系列單片機如何進休眠或深度休眠模式,以及休眠后如何喚醒。
    發(fā)表于 11-07 13:57 ?35次下載

    MSP430休眠喚醒裝置設計詳析

    針對礦用救災指揮裝置網(wǎng)絡視頻服務器采用電池供電工作時間短的缺點, 采用 MSP430 低功耗單片機設計了一種休眠喚醒裝置, 實現(xiàn)了網(wǎng)絡視頻服務器的
    發(fā)表于 04-24 14:27 ?14次下載
    MSP430<b class='flag-5'>休眠</b><b class='flag-5'>喚醒</b>裝置設計詳析

    ECU休眠網(wǎng)絡喚醒時間怎么測?

    t0時刻,使用仿真設備(CANoe/PCan/ZLG等)發(fā)送一幀或者連續(xù)多幀有效的網(wǎng)絡管理報文;
    的頭像 發(fā)表于 08-29 17:28 ?4388次閱讀
    <b class='flag-5'>ECU</b>從<b class='flag-5'>休眠</b>到<b class='flag-5'>網(wǎng)絡</b><b class='flag-5'>喚醒</b>時間怎么測?

    ECU系統(tǒng)休眠后通過診斷報文喚醒ECU喚醒網(wǎng)絡

    ECU系統(tǒng)休眠后TJA1043的INH腳處于floating高阻態(tài),系統(tǒng)休眠后通過硬件外部電路下拉到低電平狀態(tài)/Low-level,ECU系統(tǒng)休眠
    的頭像 發(fā)表于 04-04 09:40 ?8040次閱讀

    ECU系統(tǒng)休眠后通過診斷報文喚醒ECU喚醒網(wǎng)絡后快發(fā)NM報文

    一文中我們分析并實現(xiàn)了通過診斷報文
    的頭像 發(fā)表于 05-09 09:36 ?5256次閱讀
    <b class='flag-5'>ECU</b>系統(tǒng)<b class='flag-5'>休眠</b>后通過診斷報文<b class='flag-5'>喚醒</b><b class='flag-5'>ECU</b>且<b class='flag-5'>喚醒</b><b class='flag-5'>網(wǎng)絡</b>后快發(fā)NM報文

    理一理AUTOSAR架構下的喚醒源事件

    最近的項目負責網(wǎng)絡管理部分,網(wǎng)路喚醒ECU系統(tǒng)的休眠關系緊密,對系統(tǒng)的喚醒源事件感覺理解的不是很透徹,今天就來理一理AUTOSAR架構下的
    的頭像 發(fā)表于 07-14 09:11 ?3463次閱讀
    理一理AUTOSAR架構下的<b class='flag-5'>喚醒</b>源事件