前言
最近在做CAN網絡管理的工作,發現網絡休眠(關閉)后在ECU系統沒有休眠/下電前如果又收到了NM報文,ECU的網絡沒有被重新喚醒(開啟),ECU系統也沒有結束下電(Shutdown)流程,而是直接下電后再被喚醒,而不是我們期望的在PreShutdown到Shutdown階段收到NM報文重回到Startup階段。
正文
1.網絡休眠時的相關系統狀態
在本地喚醒源(Local wake up source,一般是IGN等硬線信號)Disable掉后,User會調用ComM_RequestComMode請求ComM進入到NoCom狀態,如果這個時候沒有接收到NM報文,且沒有收到診斷請求ComM會切換到NoCom狀態,這個時候ComM會調用CanSM_RequestComMode(network:=, mode:= COMM_NO_COMMUNICATION)關閉Can控制器(CanDriver)的收發報文能力。
我們具體來看CanSM對Can Transceiver的操作,以及此時Transceiver的狀態。
CanSM-->CanIf-->CanTrcv最終會拉低TJA1043收發器的STB_N腳,這個時候TJA1043收發器的INH腳是處于高電平狀態。
TJA1043收發器處于Standby mode時的報文收發功能是關閉的,也就是收發器在Standby mode下是不能收發報文的。
所以這個時候,ComM處于NoCom狀態,NM處于Bus Sleep狀態,就算這個時候Can-Bus上有NM報文過來,Can Transceiver根本就收不到,也就是不可能讓ECU系統狀態機從Preshutdown跳轉到Startup。
那能讓Can Transceiver別不要進入到Standby Mode么?-- 不能,因為ComM進入NoCom后CanSM-->CanIf-->CanTrcv設置Transceiver進入到Standby mode這個過程是AUTOSAR靜態代碼自動實現的,我們不可能去改靜態代碼。
所以我們該怎么做才能實現網絡關閉后ECU沒有休眠前網絡喚醒?
2.網絡休眠后重新喚醒網絡需要做的準備工作
要實現網絡關閉后ECU沒有休眠前網絡喚醒需要以下必要操作:
1)配置CanIf和EcuM的Wake up validation功能。
2)User判斷Can Transceiver進入到Standby模式后,通過CanIf_SetTransceiverMode --> CanTrcv_SetTransceiverMode設置收發器到Sleep模式。
軟件設置Can收發器到Sleep模式后通過硬件設計保證INH腳在Sleep模式是以低電平狀態輸入到MCU。
3)Can收發器進入Sleep模式后如果收到CAN報文就會使得INH腳切換到High電平狀態,User通過判斷INH腳從Low電平狀態跳變為High狀態來得知Can-Bus收到了報文,這個時候通過調用CanIf_SetTransceiverMode --> CanTrcv_SetTransceiverMode設置Can Transceiver到Normal狀態,這樣Can Transceiver就能接收到報文了,報文就能到達CanIf模塊。
4)允許網絡通信CommunicationAllowed=TRUEComM,這樣通過ComM_EcuM_WakeUpIndication(ChX)這個條件就能使得ComM進入到FullCom狀態,如果收到的是NM報文,就能維持住網絡。
3.總結
想要實現網絡關閉但ECU沒有休眠前網絡喚醒需要通過檢測TJA1043收發器的INH腳的電平狀態來判斷接收到Can報文,然后通過EcuM和CanIf的喚醒源校驗(NM報文校驗)功能來觸發ComM模塊切換到FullCom狀態,最后ComM進入FullCom后調用CanSM接口喚醒網絡,同時NM狀態進入到Network Mode的Repeat Message State,整個網路開啟。
上一篇:如何為汽車門禁系統的發展打開機遇大門
下一篇:從零學習自動駕駛—百度Apollo高精地圖
推薦閱讀最新更新時間:2025-06-28 23:45




- A_21_V10基于IPS2電機換向傳感器的設計
- DC500A-B,使用 LTC3406ES5-1.5 的演示板,2.7V 至 5.5Vin,1.5Vout @ 600mA max 同步降壓穩壓器
- 使用 Analog Devices 的LT1934的參考設計
- LT6656BCS6-2.5、2.5V 低功率 ADC 電壓基準的典型應用
- 使用 Cypress Semiconductor 的 MAX13082EESA 的參考設計
- 使用 Analog Devices 的 LT3091HFE 的參考設計
- AD8625ARZ-REEL單極輸出精密放大器典型應用電路
- LT1351 的典型應用 - 250 uA、3MHz、200V/us 運算放大器
- 根據 EN50121-3-2(雙輸出)使用帶有 EMC 濾波的 RP40-4812SFR DC/DC 轉換器的典型應用
- LTC7149IFE 24V 輸入至 -12V 輸出、1MHz 降壓穩壓器的典型應用電路