前言
最近在做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:=
我們具體來看CanSM對Can Transceiver的操作,以及此時Transceiver的狀態(tài)。
CanSM-->CanIf-->CanTrcv最終會拉低TJA1043收發(fā)器的STB_N腳,這個時候TJA1043收發(fā)器的INH腳是處于高電平狀態(tài)。
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功能。
2)User判斷Can Transceiver進入到Standby模式后,通過CanIf_SetTransceiverMode --> CanTrcv_SetTransceiverMode設置收發(fā)器到Sleep模式。
軟件設置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)路開啟。
審核編輯:劉清
-
收發(fā)器
+關注
關注
10文章
3370瀏覽量
105791 -
AUTOSAR
+關注
關注
10文章
349瀏覽量
21446 -
ecu
+關注
關注
14文章
876瀏覽量
54360 -
CAN網(wǎng)絡
+關注
關注
1文章
44瀏覽量
16886
原文標題:網(wǎng)絡關閉但ECU沒有休眠前如何網(wǎng)絡喚醒
文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論