下圖是COMM的狀態轉換
通信發起的三種條件:
USER:根據LOCAL的喚醒源(KL15等)主動請求COMM(ComM_RequestComMode)進入到請求模式
DCM:診斷功能請求(在NM Passive模式下不能激活通道)
遠程網絡管理報文喚醒:分為ECU是主動的還是被動的,主動的ECU被其他網絡管理報文喚醒后可以繼續喚醒其他ECU;被動的ECU(Passive NM 模式)只能被別人喚醒不能喚醒別的ECU
要想通信,三個條件必須有一個滿足。
進入FULL的條件:
一般在ECUM的狀態切換(WakeUp到RUN)中將對應的通道允許通信
FULL模式
Passive ECU:不能發生網絡管理報文的ECU,只能被動被別的ECU喚醒,直接進入到READY_SLEEP模式。可以調用CanNm的CanNm_PassiveStartup切換CanNm的狀態,在CanNm的Network模式中由于此類ECU不支持喚醒別的ECU,因此直接進入到CanNm的Ready Sleep狀態。
非Passive ECU:可以發送網絡管理報文的ECU,進入到FULL_COM_NETWORK_REQUEST模式,可以主動發送網絡管理報文去喚醒總線上其他網絡節點,調用CanNm中的CanNm_NetworkRequest切換CanNm的狀態機進入到Repeat Message狀態去喚醒其他ECU。
FULL到SILENT
主要和CanNm的網絡管理相關,在網絡管理狀態從Ready Sleep進入到Prepare Bus Sleep的時候通知ComM從狀態FULL進入到SILENT模式,該模式停止發送報文,只接收報文(一般通過控制COM層的PDU Group進行操作)。
SLIENT到NO
當CanNm的狀態從Prepare Bus Sleep進入到Bus Sleep的時候通過回調函數通知ComM,ComM狀態從SLIENT進入到NO,接下來ComM發起NO的請求,通過CanSM控制CanIf、CanTrcv、Can進入到OFF模式。
審核編輯:劉清
-
CAN通信
+關注
關注
5文章
94瀏覽量
17886 -
AUTOSAR
+關注
關注
10文章
362瀏覽量
21618 -
ECU測試
+關注
關注
1文章
11瀏覽量
8763
發布評論請先 登錄
相關推薦
評論