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