詳解AUTOSAR:AUTOSAR CAN網(wǎng)絡(luò)管理/CAN NM
AUTOSAR CAN網(wǎng)絡(luò)通信中有三種模式和三種狀態(tài),如下圖所示:
3種運行模式:
睡眠模式(Bus-Sleep Mode);
預(yù)睡眠模式(Prepare Bus-Sleep Mode);
網(wǎng)絡(luò)模式(Network Mode)。
睡眠模式(Bus-Sleep Mode)
當CAN網(wǎng)絡(luò)中沒有遠程喚醒或者本地喚醒請求時,ECU應(yīng)處于睡眠模式(Bus-Sleep Mode),將功耗降低至最低水平,這種模式是ECU啟動時的起始狀態(tài)或者是ECU睡眠時的最終狀態(tài)。
在該模式下,網(wǎng)絡(luò)管理報文和應(yīng)用報文都禁止發(fā)送,但是可以被網(wǎng)絡(luò)上的報文喚醒。
CAN收發(fā)器應(yīng)當支持設(shè)定喚醒幀(如果有CAN收發(fā)器的情況下),ECU只會接受到特定的NM報文才會正常喚醒,否則就會一直處于休眠狀態(tài),能夠不受網(wǎng)絡(luò)上應(yīng)用報文的干擾。
預(yù)睡眠模式(Prepare Bus-Sleep Mode)
ECU進入預(yù)睡眠模式(Prepare Bus-Sleep Mode)后禁止網(wǎng)絡(luò)管理報文的發(fā)送,允許接收網(wǎng)絡(luò)管理報文。應(yīng)用報文已經(jīng)在buffer中的一般允許繼續(xù)發(fā)送,進入到預(yù)睡眠模式(Prepare Bus-Sleep Mode)計時器CanNmWaitBusSleepTime就會啟動,一旦計時器CanNmWaitBusSleepTime超時,就會進入到睡眠模式(Bus-Sleep Mode)。
本項目AUTOSAR配置中設(shè)定計時器CanNmWaitBusSleepTime為2秒。
網(wǎng)絡(luò)模式(Network Mode)
當CAN網(wǎng)絡(luò)處于開啟或者工作情況下會進入網(wǎng)絡(luò)模式,ECU進入網(wǎng)絡(luò)模式(Network Mode)后計時器CanNmTimeoutTime就會啟動,只要成功接收到來自CAN總線上的網(wǎng)絡(luò)管理報文或者成功發(fā)送至CAN總線網(wǎng)絡(luò)管理報文,都會將計時器CanNmTimeoutTime重置。
本項目AUTOSAR配置中設(shè)定計時器CanNmTimeoutTime為2秒,所以0X505網(wǎng)絡(luò)管理報文的發(fā)送周期要在2秒內(nèi),超時會進入預(yù)睡眠模式(Prepare Bus-Sleep Mode)。
網(wǎng)絡(luò)模式(Network Mode)包含3種狀態(tài):
報文重復(fù)狀態(tài)(Repeat Message State);
常規(guī)運行狀態(tài)(Normal Operation State);
準備睡眠狀態(tài)(Ready Sleep State)。
報文重復(fù)狀態(tài)(Repeat Message State)
當ECU從其他模式進入網(wǎng)絡(luò)模式(Network Mode)時,默認進入報文重復(fù)狀態(tài)(Repeat Message State)。該階段是CAN網(wǎng)絡(luò)正式開始工作前的準備階段,用來等待CAN網(wǎng)絡(luò)中所有相關(guān)節(jié)點進行網(wǎng)絡(luò)通信的準備時間。
該模式下計時器CanNmRepeatMessageTime規(guī)定了重復(fù)發(fā)送網(wǎng)關(guān)管理報文的時間,CanNmImmediateNmTransmissions規(guī)定了發(fā)送網(wǎng)絡(luò)管理報文的次數(shù)。
在報文重復(fù)狀態(tài)(Repeat Message State)ECU使用計時器CanNmMsgCycleTime周期時間發(fā)送網(wǎng)絡(luò)管理報文。
本項目AUTOSAR配置中發(fā)送網(wǎng)絡(luò)管理報文的周期是640毫秒,重復(fù)次數(shù)為5,總時常3.2秒。
常規(guī)運行狀態(tài)(Normal Operation State)
ECU進行正常CAN通信時會處于常規(guī)運行狀態(tài)(Normal Operation State),該階段中,節(jié)點要按照計時器CanNmMsgCycleTime時間周期發(fā)送網(wǎng)絡(luò)管理報文。每次成功發(fā)送或者接收CAN網(wǎng)絡(luò)報文計時器CanNmTimeoutTime就會重置。
在常規(guī)運行狀態(tài)(Normal Operation State)下的網(wǎng)絡(luò)管理報文和應(yīng)用報文都應(yīng)該正常收、發(fā)通信。
準備睡眠狀態(tài)(Ready Sleep State)
在準備睡眠狀態(tài)(Ready Sleep State)ECU應(yīng)當停止發(fā)送網(wǎng)絡(luò)管理報文,每次成功接受到來自CAN網(wǎng)絡(luò)上的網(wǎng)絡(luò)管理報文,計時器CanNmTimeoutTime就會重置,一旦CanNmTimeoutTime超時,就會進入預(yù)睡眠模式(Prepare Bus-Sleep Mode)。
在AUTOSAR中規(guī)定了各種模式和狀態(tài)下計時器的默認時間:
配置參數(shù)在AUTOSAR代碼中體現(xiàn)如下所示:
下圖梳理了所有網(wǎng)絡(luò)管理的模式轉(zhuǎn)換情況,通常控制器的狀態(tài)轉(zhuǎn)換如藍色箭頭所示:
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。