概述
AUTOSAR CAN 網(wǎng)絡(luò)管理是一個(gè)獨(dú)立于硬件的協(xié)議,只能在 CAN 上使用。它的主要目的是協(xié)調(diào)網(wǎng)絡(luò)的正常運(yùn)行和總線休眠模式之間的轉(zhuǎn)換。
除了核心功能之外,還提供了可配置功能,例如, 實(shí)施服務(wù)來(lái)檢測(cè)所有當(dāng)前節(jié)點(diǎn)或檢測(cè)是否所有其他節(jié)點(diǎn)都準(zhǔn)備好休眠。
CAN 網(wǎng)絡(luò)管理(CanNm)功能提供網(wǎng)絡(luò)管理接口(NmIf)和 CAN 接口(CanIf)模塊之間的適配。
網(wǎng)絡(luò)管理的制約
CanNm 的一個(gè)通道只與一個(gè)網(wǎng)絡(luò)中的一個(gè)網(wǎng)絡(luò)管理集群相關(guān)聯(lián)。一個(gè)網(wǎng)絡(luò)管理群集在一個(gè)節(jié)點(diǎn)中只能有一個(gè) CanNm 通道。
CanNm 的一個(gè)通道僅與同一 ECU 內(nèi)的一個(gè)網(wǎng)絡(luò)相關(guān)聯(lián)。
CanNm 僅適用于 CAN 系統(tǒng)。
CANNm 模塊可以應(yīng)用于任何汽車領(lǐng)域。
網(wǎng)絡(luò)管理協(xié)議
喚醒請(qǐng)求
喚醒請(qǐng)求可分為如下兩種:
本地喚醒請(qǐng)求, 即來(lái)自該節(jié)點(diǎn)內(nèi)部的對(duì)網(wǎng)絡(luò)的喚醒請(qǐng)求。
遠(yuǎn)程喚醒請(qǐng)求, 即來(lái)自網(wǎng)絡(luò)上其他節(jié)點(diǎn)的網(wǎng)絡(luò)管理報(bào)文請(qǐng)求。
網(wǎng)絡(luò)管理模式
網(wǎng)絡(luò)管理包含如下三種模式:
睡眠模式
預(yù)睡眠模式
網(wǎng)絡(luò)模式
睡眠模式
當(dāng)節(jié)點(diǎn)沒(méi)有本地網(wǎng)絡(luò)喚醒及遠(yuǎn)程喚醒請(qǐng)求時(shí), ECU 通訊控制器切換至睡眠模式, ECU 功耗降低至適當(dāng)水平。
在睡眠模式下,節(jié)點(diǎn)的網(wǎng)絡(luò)管理報(bào)文和應(yīng)用報(bào)文禁止發(fā)送,并且不能對(duì)總線上的報(bào)文進(jìn)行 ACK 應(yīng)答;但可以被總線上的報(bào)文喚醒,在被喚醒后才可以對(duì)總線報(bào)文進(jìn)行ACK 應(yīng)答。同時(shí)節(jié)點(diǎn)在該模式下,如果檢測(cè)到有效的喚醒源,節(jié)點(diǎn)必須被喚醒。
預(yù)睡眠模式
當(dāng)節(jié)點(diǎn)進(jìn)入預(yù)睡眠模式時(shí),將啟動(dòng)T_WAIT_BUS_SLEEP定時(shí)器。
在預(yù)睡眠模式下,總線活動(dòng)需靜止下來(lái),最終達(dá)到總線上沒(méi)有活動(dòng),但ECU通訊控制器狀態(tài)應(yīng)處于工作模式。
在該模式下,節(jié)點(diǎn)的網(wǎng)絡(luò)管理報(bào)文和應(yīng)用報(bào)文禁止發(fā)送(為了清空發(fā)送緩存,允許將發(fā)送隊(duì)列中已有的報(bào)文發(fā)完),但需對(duì)總線上的報(bào)文進(jìn)行ACK應(yīng)答。
網(wǎng)絡(luò)模式
當(dāng)節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)模式時(shí),將啟動(dòng) T_NM_TIMEROUT 定時(shí)器。在網(wǎng)絡(luò)模式下成功接收或者發(fā)送網(wǎng)絡(luò)管理報(bào)文時(shí),節(jié)點(diǎn)將重新啟動(dòng) T_NM_TIMEROUT 定時(shí)器。
網(wǎng)絡(luò)模式分為三種內(nèi)部狀態(tài):
重復(fù)報(bào)文狀態(tài)
常規(guī)操作狀態(tài)
準(zhǔn)備睡眠狀態(tài)
重復(fù)報(bào)文狀態(tài)
重復(fù)報(bào)文狀態(tài)確保節(jié)點(diǎn)從睡眠模式或預(yù)睡眠模式到網(wǎng)絡(luò)模式的轉(zhuǎn)換對(duì)網(wǎng)絡(luò)上的其他節(jié)點(diǎn)可見(jiàn)。
進(jìn)入重復(fù)報(bào)文狀態(tài)時(shí),節(jié)點(diǎn)將(重新)開(kāi)始網(wǎng)絡(luò)管理報(bào)文的發(fā)送,并啟動(dòng) T_REPEAT_MESSAGE 定時(shí)器。應(yīng)用報(bào)文必須在第一幀網(wǎng)絡(luò)管理報(bào)文發(fā)送開(kāi)始后且小于 T_STARTx_AppFrame 內(nèi)發(fā)送。
節(jié)點(diǎn)的網(wǎng)絡(luò)管理狀態(tài)將保持在重復(fù)報(bào)文狀態(tài)直到 T_REPEAT_MESSAGE 時(shí)間截止,一旦該時(shí)間超時(shí),網(wǎng)絡(luò)管理狀態(tài)應(yīng)該離開(kāi)重復(fù)報(bào)文狀態(tài)。
在 重 復(fù) 報(bào) 文 狀 態(tài) 下 , 節(jié) 點(diǎn) 一 旦 接 收 或 發(fā) 送 一 條 網(wǎng) 絡(luò) 管 理 報(bào) 文 , 或 者T_NM_TIMEROUT 超時(shí),則 T_NM_TIMEROUT 立即重置。
重復(fù)報(bào)文狀態(tài)包含兩個(gè)子狀態(tài):
NM 快速發(fā)送子狀態(tài)。節(jié)點(diǎn)在進(jìn)入 NM 快速發(fā)送子狀態(tài)時(shí),為了快速喚醒網(wǎng)絡(luò),節(jié)點(diǎn)必須以快速周期T_NM_ImmediateCycleTime 發(fā)送網(wǎng)絡(luò)管理報(bào)文。
發(fā)送的快速網(wǎng)絡(luò)管理報(bào)文數(shù)量由參數(shù) N_ImmediateNM_TIMES 決定,節(jié)點(diǎn)每次成功發(fā)送一條快速周期網(wǎng)絡(luò)管理報(bào)文時(shí),該數(shù)值應(yīng)遞減 1。
NM 正常發(fā)送子狀態(tài)。進(jìn)入NM正常發(fā)送子狀態(tài)后,節(jié)點(diǎn)必須以正常周期T_NM_MessageCycle發(fā)送網(wǎng)絡(luò)管理報(bào)文。
常規(guī)操作狀態(tài)
當(dāng)節(jié)點(diǎn)因發(fā)生本地喚醒事件需要與網(wǎng)絡(luò)上的其他節(jié)點(diǎn)進(jìn)行通訊時(shí),必須保持在常規(guī)操作狀態(tài),并且以正常周期 T_NM_MessageCycle 發(fā)送網(wǎng)絡(luò)管理報(bào)文。在常規(guī)操作狀態(tài)下,節(jié)點(diǎn)一旦接收或發(fā)送一條網(wǎng)絡(luò)管理報(bào)文,或者 T_NM_TIMEROUT 超時(shí),則 T_NM_TIMEROUT 應(yīng)該立即重置。
在常規(guī)操作狀態(tài)下,節(jié)點(diǎn)的網(wǎng)絡(luò)管理報(bào)文和應(yīng)用報(bào)文必須正常發(fā)送。
準(zhǔn)備睡眠狀態(tài)
節(jié)點(diǎn)進(jìn)入準(zhǔn)備睡眠后,必須停止發(fā)送網(wǎng)絡(luò)管理報(bào)文。
在準(zhǔn)備睡眠狀態(tài)下,節(jié)點(diǎn)一旦接收到一條網(wǎng)絡(luò)管理報(bào)文, T_NM_TIMEROUT應(yīng)該立刻重置。T_NM_TIMEROUT超時(shí),節(jié)點(diǎn)的網(wǎng)絡(luò)管理狀態(tài)應(yīng)進(jìn)入預(yù)睡眠模式。
網(wǎng)絡(luò)管理報(bào)文
AUTOSAR 網(wǎng)絡(luò)管理報(bào)文結(jié)構(gòu)如下表所示:
CAN 網(wǎng)絡(luò)管理報(bào)文 ID 范圍從 0x500~0x53F,其中報(bào)文優(yōu)先級(jí)定義為(110) 2 = 6 級(jí), FFFA 為網(wǎng)絡(luò)管理 PGN(自定義),00~FF 為 ECU 源地址SA;
網(wǎng)絡(luò)管理報(bào)文數(shù)據(jù)場(chǎng)的字節(jié) 1 用于發(fā)送控制比特向量(Control Bit Vector),字節(jié) 2~7 用戶自定義:
當(dāng)控制器有重復(fù)報(bào)文請(qǐng)求,主動(dòng)回到重復(fù)報(bào)文狀態(tài),并將重復(fù)報(bào)文請(qǐng)求位置 1;當(dāng)該控制器離開(kāi)重復(fù)報(bào)文狀態(tài),將重復(fù)報(bào)文請(qǐng)求位清零;控制器由于其他條件(本地喚醒或接收到其他控制器重復(fù)報(bào)文狀態(tài)位置 1 的 NM 報(bào)文)而回到重復(fù)報(bào)文狀態(tài),重復(fù)報(bào)文請(qǐng)求位保持 0。
當(dāng)控制器由于本地喚醒進(jìn)入重復(fù)報(bào)文狀態(tài)時(shí),主動(dòng)喚醒位置 1,直到重新進(jìn)入預(yù)睡眠模式時(shí)清零;當(dāng)控制器由于遠(yuǎn)程 NM 報(bào)文喚醒,主動(dòng)喚醒位保持 0。
網(wǎng)絡(luò)管理常用參數(shù)
狀態(tài)遷移
狀態(tài)遷移條件
NM_01
網(wǎng)絡(luò)管理節(jié)點(diǎn)的上電后(Battery Power on),節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)管理模塊初始化,初始化完成后進(jìn)入睡眠模式,具備被本地喚醒事件或者遠(yuǎn)程喚醒請(qǐng)求的能力。
NM_02
當(dāng)網(wǎng)絡(luò)管理節(jié)點(diǎn)處于睡眠模式時(shí),如果收到有效的遠(yuǎn)程喚醒請(qǐng)求,那么節(jié)點(diǎn)必須離開(kāi)睡眠模式并進(jìn)入重復(fù)報(bào)文狀態(tài)的 NM 正常發(fā)送子狀態(tài)。
進(jìn)入 NM 正常發(fā)送子狀態(tài)后,在定時(shí)器 T_REPEAT_MESSAGE 超時(shí)前,節(jié)點(diǎn)必須以以 T_NM_MessageCycle 為周期發(fā)送網(wǎng)絡(luò)管理報(bào)文。
NM_03
如果節(jié)點(diǎn)在睡眠模式下檢測(cè)到本地喚醒請(qǐng)求,那么節(jié)點(diǎn)必須主動(dòng)喚醒網(wǎng)絡(luò), 進(jìn)入NM 快速發(fā)送子狀態(tài), 并將主動(dòng)喚醒位設(shè)置為 1。
節(jié)點(diǎn)進(jìn)入 NM 快速發(fā)送子狀態(tài)后,需以 T_NM_ImmediateCycleTime 為周期,發(fā)送數(shù)量為 N_ImmediateNM_TIMES 的網(wǎng)絡(luò)管理報(bào)文。
NM_04
處于 NM 快速發(fā)送子狀態(tài)的節(jié)點(diǎn),在計(jì)數(shù)器 N_ImmediateNM_TIMES 為零時(shí),將進(jìn)入 NM 正常發(fā)送子狀態(tài)。
NM_05
處于重復(fù)發(fā)送狀態(tài)下的節(jié)點(diǎn),如果 T_NM_TIMEROUT 超時(shí),節(jié)點(diǎn)的網(wǎng)絡(luò)管理狀態(tài)不應(yīng)改變,但 T_NM_TIMEROUT 必須重置。
NM_06
處于 NM 正常發(fā)送子狀態(tài)的節(jié)點(diǎn),當(dāng) T_REPEAT_MESSAGE 超時(shí), 主動(dòng)喚醒模式下,則進(jìn)入常規(guī)操作狀態(tài)。節(jié)點(diǎn)繼續(xù)保持以正常周期 T_NM_MessageCycle發(fā)送網(wǎng)絡(luò)管理報(bào)文和相關(guān)的應(yīng)用報(bào)文。
NM_07
處于常規(guī)操作狀態(tài)的節(jié)點(diǎn),如果節(jié)點(diǎn)自身有重復(fù)報(bào)文請(qǐng)求,節(jié)點(diǎn)將網(wǎng)絡(luò)管理狀態(tài)切換到重復(fù)報(bào)文狀態(tài)的 NM 快速發(fā)送子狀態(tài);如果節(jié)點(diǎn)收到其他節(jié)點(diǎn)重復(fù)報(bào)文請(qǐng)求位置 1 的 NM 報(bào)文,節(jié)點(diǎn)將網(wǎng)絡(luò)管理狀態(tài)切換到重復(fù)報(bào)文狀態(tài)的 NM 正常發(fā)送子狀態(tài)。
NM_08
處于常規(guī)操作狀態(tài)下的節(jié)點(diǎn),如果 T_NM_TIMEROUT 超時(shí),節(jié)點(diǎn)的網(wǎng)絡(luò)管理狀態(tài)不應(yīng)改變,但 T_NM_TIMEROUT 必須重置。
NM_09
處于常規(guī)操作狀態(tài)下的節(jié)點(diǎn),如果本身不需要網(wǎng)絡(luò),節(jié)點(diǎn)馬上將網(wǎng)絡(luò)管理狀態(tài)切換到準(zhǔn)備睡眠狀態(tài),同時(shí)停止發(fā)送網(wǎng)絡(luò)管理報(bào)文,保持應(yīng)用報(bào)文的發(fā)送和接受,每次接受到網(wǎng)絡(luò)管理報(bào)文,重置T_NM_TIMEROUT定時(shí)器。
NM_10
處于準(zhǔn)備睡眠狀態(tài)的節(jié)點(diǎn),如果檢測(cè)到本地喚醒請(qǐng)求,則將網(wǎng)絡(luò)管理狀態(tài)切換到常規(guī)操作狀態(tài)。
NM_11
處于準(zhǔn)備睡眠狀態(tài)的節(jié)點(diǎn),如果節(jié)點(diǎn)自身有重復(fù)報(bào)文請(qǐng)求,節(jié)點(diǎn)將網(wǎng)絡(luò)管理狀態(tài)切換到重復(fù)報(bào)文狀態(tài)的 NM 快速發(fā)送子狀態(tài);如果節(jié)點(diǎn)收到其他節(jié)點(diǎn)重復(fù)報(bào)文請(qǐng)求位置 1 的 NM 報(bào)文,節(jié)點(diǎn)將網(wǎng)絡(luò)管理狀態(tài)切換到重復(fù)報(bào)文狀態(tài)的 NM 正常發(fā)送子狀態(tài)。
NM_12
處于 NM 正常發(fā)送子狀態(tài)下的節(jié)點(diǎn),當(dāng) T_REPEAT_MESSAGE 超時(shí),且自身無(wú)網(wǎng)絡(luò)請(qǐng)求,節(jié)點(diǎn)將立即進(jìn)入準(zhǔn)備睡眠狀態(tài),并開(kāi)啟CANNM_WBS_TIMER定時(shí)器。
NM_13處 于 準(zhǔn) 備 睡 眠 狀 態(tài) 的 節(jié) 點(diǎn), 如 果 不 再 收 到 本 地 或 遠(yuǎn) 程 喚 醒 請(qǐng) 求 , 在CANNM_WBS_TIMER超時(shí)后,節(jié)點(diǎn)將進(jìn)入預(yù)睡眠模式,進(jìn)入預(yù)睡眠模式后開(kāi)啟T_WAIT_BUS_SLEEP 定時(shí)器.
NM_14
處于網(wǎng)絡(luò)模式的節(jié)點(diǎn),在成功接收或者發(fā)送一幀網(wǎng)絡(luò)管理報(bào)文后,節(jié)點(diǎn)的網(wǎng)絡(luò)處于預(yù)睡眠模式的節(jié)點(diǎn),如果收到遠(yuǎn)程喚醒請(qǐng)求,將進(jìn)入重復(fù)報(bào)文狀態(tài)的 NM 正常發(fā)送子狀態(tài)。
NM_16
處于預(yù)睡眠模式的節(jié)點(diǎn),如果收到本地喚醒請(qǐng)求,將進(jìn)入重復(fù)報(bào)文狀態(tài)的 NM 快速發(fā)送子狀態(tài)。
NM_17
處 于 預(yù) 睡 眠 模 式 的 節(jié) 點(diǎn) , 如 果 不 再 收 到 本 地 或 遠(yuǎn) 程 喚 醒 請(qǐng) 求 ,在T_WAIT_BUS_SLEEP 超時(shí)后,節(jié)點(diǎn)將進(jìn)入睡眠模式。
故障處理
節(jié)點(diǎn)的網(wǎng)絡(luò)管理所在的網(wǎng)絡(luò)總線不可用時(shí),必須執(zhí)行如下行為:
如果節(jié)點(diǎn)沒(méi)有準(zhǔn)備好睡眠,但總線變得不可用,則不應(yīng)該進(jìn)入睡眠模式。
如果節(jié)點(diǎn)已準(zhǔn)備好睡眠,但總線變得不可用,則應(yīng)該進(jìn)入睡眠模式。
如果總線不可用,但節(jié)點(diǎn)狀態(tài)變?yōu)闇?zhǔn)備睡眠,則應(yīng)該進(jìn)入睡眠模式。
如果總線不可用,但節(jié)點(diǎn)狀態(tài)變?yōu)槲礈?zhǔn)備好睡眠,則不應(yīng)該進(jìn)入睡眠模式。
網(wǎng)絡(luò)管理的故障處理不適用于已經(jīng)處于睡眠模式的節(jié)點(diǎn),因?yàn)樵谒吣J较聼o(wú)通信行為,此時(shí)總線不可用是難以檢測(cè)到的。
審核編輯:湯梓紅
-
接口
+關(guān)注
關(guān)注
33文章
8600瀏覽量
151166 -
CAN
+關(guān)注
關(guān)注
57文章
2754瀏覽量
463718 -
網(wǎng)絡(luò)管理
+關(guān)注
關(guān)注
0文章
120瀏覽量
27673 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
362瀏覽量
21588 -
ecu
+關(guān)注
關(guān)注
14文章
886瀏覽量
54504
原文標(biāo)題:一文搞懂 Autosar 網(wǎng)絡(luò)管理
文章出處:【微信號(hào):談思實(shí)驗(yàn)室,微信公眾號(hào):談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論