博客專欄

EEPW首頁 > 博客 > 詳解AUTOSAR:AUTOSAR CAN網(wǎng)絡(luò)管理/CAN NM

詳解AUTOSAR:AUTOSAR CAN網(wǎng)絡(luò)管理/CAN NM

發(fā)布人:美男子玩編程 時(shí)間:2023-04-25 來源:工程師 發(fā)布文章

圖片


AUTOSAR CAN網(wǎng)絡(luò)通信中有三種模式和三種狀態(tài),如下圖所示:


圖片


3種運(yùn)行模式:

  1. 睡眠模式(Bus-Sleep Mode);

  2. 預(yù)睡眠模式(Prepare Bus-Sleep Mode);

  3. 網(wǎng)絡(luò)模式(Network Mode)。


睡眠模式(Bus-Sleep Mode)

當(dāng)CAN網(wǎng)絡(luò)中沒有遠(yuǎn)程喚醒或者本地喚醒請(qǐng)求時(shí),ECU應(yīng)處于睡眠模式(Bus-Sleep Mode),將功耗降低至最低水平,這種模式是ECU啟動(dòng)時(shí)的起始狀態(tài)或者是ECU睡眠時(shí)的最終狀態(tài)。


在該模式下,網(wǎng)絡(luò)管理報(bào)文和應(yīng)用報(bào)文都禁止發(fā)送,但是可以被網(wǎng)絡(luò)上的報(bào)文喚醒。


CAN收發(fā)器應(yīng)當(dāng)支持設(shè)定喚醒幀(如果有CAN收發(fā)器的情況下),ECU只會(huì)接受到特定的NM報(bào)文才會(huì)正常喚醒,否則就會(huì)一直處于休眠狀態(tài),能夠不受網(wǎng)絡(luò)上應(yīng)用報(bào)文的干擾。


預(yù)睡眠模式(Prepare Bus-Sleep Mode)

ECU進(jìn)入預(yù)睡眠模式(Prepare Bus-Sleep Mode)后禁止網(wǎng)絡(luò)管理報(bào)文的發(fā)送,允許接收網(wǎng)絡(luò)管理報(bào)文。應(yīng)用報(bào)文已經(jīng)在buffer中的一般允許繼續(xù)發(fā)送,進(jìn)入到預(yù)睡眠模式(Prepare Bus-Sleep Mode)計(jì)時(shí)器CanNmWaitBusSleepTime就會(huì)啟動(dòng),一旦計(jì)時(shí)器CanNmWaitBusSleepTime超時(shí),就會(huì)進(jìn)入到睡眠模式(Bus-Sleep Mode)。


圖片


本項(xiàng)目AUTOSAR配置中設(shè)定計(jì)時(shí)器CanNmWaitBusSleepTime為2秒。


網(wǎng)絡(luò)模式(Network Mode)

當(dāng)CAN網(wǎng)絡(luò)處于開啟或者工作情況下會(huì)進(jìn)入網(wǎng)絡(luò)模式,ECU進(jìn)入網(wǎng)絡(luò)模式(Network Mode)后計(jì)時(shí)器CanNmTimeoutTime就會(huì)啟動(dòng),只要成功接收到來自CAN總線上的網(wǎng)絡(luò)管理報(bào)文或者成功發(fā)送至CAN總線網(wǎng)絡(luò)管理報(bào)文,都會(huì)將計(jì)時(shí)器CanNmTimeoutTime重置。




本項(xiàng)目AUTOSAR配置中設(shè)定計(jì)時(shí)器CanNmTimeoutTime為2秒,所以0X505網(wǎng)絡(luò)管理報(bào)文的發(fā)送周期要在2秒內(nèi),超時(shí)會(huì)進(jìn)入預(yù)睡眠模式(Prepare Bus-Sleep Mode)。




網(wǎng)絡(luò)模式(Network Mode)包含3種狀態(tài):

  1. 報(bào)文重復(fù)狀態(tài)(Repeat Message State);

  2. 常規(guī)運(yùn)行狀態(tài)(Normal Operation State);

  3. 準(zhǔn)備睡眠狀態(tài)(Ready Sleep State)。


報(bào)文重復(fù)狀態(tài)(Repeat Message State)

當(dāng)ECU從其他模式進(jìn)入網(wǎng)絡(luò)模式(Network Mode)時(shí),默認(rèn)進(jìn)入報(bào)文重復(fù)狀態(tài)(Repeat Message State)。該階段是CAN網(wǎng)絡(luò)正式開始工作前的準(zhǔn)備階段,用來等待CAN網(wǎng)絡(luò)中所有相關(guān)節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)通信的準(zhǔn)備時(shí)間。


該模式下計(jì)時(shí)器CanNmRepeatMessageTime規(guī)定了重復(fù)發(fā)送網(wǎng)關(guān)管理報(bào)文的時(shí)間,CanNmImmediateNmTransmissions規(guī)定了發(fā)送網(wǎng)絡(luò)管理報(bào)文的次數(shù)。

在報(bào)文重復(fù)狀態(tài)(Repeat Message State)ECU使用計(jì)時(shí)器CanNmMsgCycleTime周期時(shí)間發(fā)送網(wǎng)絡(luò)管理報(bào)文。


圖片


圖片


本項(xiàng)目AUTOSAR配置中發(fā)送網(wǎng)絡(luò)管理報(bào)文的周期是640毫秒,重復(fù)次數(shù)為5,總時(shí)常3.2秒。


圖片


常規(guī)運(yùn)行狀態(tài)(Normal Operation State)

ECU進(jìn)行正常CAN通信時(shí)會(huì)處于常規(guī)運(yùn)行狀態(tài)(Normal Operation State),該階段中,節(jié)點(diǎn)要按照計(jì)時(shí)器CanNmMsgCycleTime時(shí)間周期發(fā)送網(wǎng)絡(luò)管理報(bào)文。每次成功發(fā)送或者接收CAN網(wǎng)絡(luò)報(bào)文計(jì)時(shí)器CanNmTimeoutTime就會(huì)重置。

在常規(guī)運(yùn)行狀態(tài)(Normal Operation State)下的網(wǎng)絡(luò)管理報(bào)文和應(yīng)用報(bào)文都應(yīng)該正常收、發(fā)通信。


準(zhǔn)備睡眠狀態(tài)(Ready Sleep State

在準(zhǔn)備睡眠狀態(tài)(Ready Sleep State)ECU應(yīng)當(dāng)停止發(fā)送網(wǎng)絡(luò)管理報(bào)文,每次成功接受到來自CAN網(wǎng)絡(luò)上的網(wǎng)絡(luò)管理報(bào)文,計(jì)時(shí)器CanNmTimeoutTime就會(huì)重置,一旦CanNmTimeoutTime超時(shí),就會(huì)進(jìn)入預(yù)睡眠模式(Prepare Bus-Sleep Mode)。


在AUTOSAR中規(guī)定了各種模式和狀態(tài)下計(jì)時(shí)器的默認(rèn)時(shí)間:


圖片


配置參數(shù)在AUTOSAR代碼中體現(xiàn)如下所示:


圖片


下圖梳理了所有網(wǎng)絡(luò)管理的模式轉(zhuǎn)換情況,通常控制器的狀態(tài)轉(zhuǎn)換如藍(lán)色箭頭所示:


圖片


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: CAN

技術(shù)專區(qū)

關(guān)閉