1、什么是AUTOSAR?
官方一點:AUTOSAR 就是AUTomotive Open System ARchitecture的簡稱,中文翻譯就是汽車開放系統(tǒng)架構(gòu)。
直白一點:將汽車電子控制單元(ECU)的軟件底層做了一個標(biāo)準(zhǔn)的封裝。使得大家都能共用一套底層軟件,只需要修改其中的一些參數(shù),就可以匹配不同硬件,也可以匹配不同的應(yīng)用層軟件。如此之后,用戶只需要專心負責(zé)應(yīng)用層功能開發(fā)即可,底層都交給AutoSAR工程師就行了。
再直白一點:“就是一套寫的比較好的底層軟件”。其實現(xiàn)了硬件驅(qū)動的封裝(類似于STM32的庫),實現(xiàn)了操作系統(tǒng)的功能。用戶只需要開發(fā)操作系統(tǒng)上層的軟件應(yīng)用即可(類似于基于安卓開發(fā)App)。
再再再直白一點:各個廠家在五花八門的硬件上隨意開發(fā),想怎么寫就怎么寫,怎么爽怎么來,導(dǎo)致開發(fā)一時爽,維護火葬場,如果底層硬件換掉了,上面的代碼基本就要全部推倒重來,而且不同廠家之間的代碼移植性也幾乎沒有,各個廠家和工程師都很頭大,于是AUTOSAR應(yīng)運而生。AUTOSAR將各個硬件的底層接口做了封裝,以后如果換硬件,只需要配置一下AUTOSAR,告訴它我換硬件了,趕緊給我適配就可以了,上層代碼完全不需要改動就可以使用。從開發(fā)的角度來講,提高了代碼的復(fù)用性,降低了代碼的復(fù)雜度,提高了代碼的可維護性。
2、什么是網(wǎng)絡(luò)管理?
網(wǎng)絡(luò)管理的目的是使網(wǎng)絡(luò)中的ECU節(jié)點有序的睡眠和喚醒。在沒有通信需求的時候睡眠,在需要通信的時候喚醒,可以節(jié)約汽車電池的電量。
3、什么是CAN總線?
這個CSDN和知乎都有很多的介紹,這里就不贅述了。
4、CAN總線的AUTOSAR網(wǎng)絡(luò)管理報文(以下簡稱NM報文)長啥樣?
首先要明確一點,NM報文就是CAN報文。NM報文符合CAN報文的格式,由幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應(yīng)答場、幀結(jié)尾組成。
一般廠家在設(shè)計的時候會規(guī)定好NM報文的ID范圍。
舉個例子:規(guī)定標(biāo)識符在0x500到0x5FF范圍為NM報文。當(dāng)在CANoe中抓取到此ID范圍內(nèi)的報文,那就是NM報文。
此報文ID=0x502,那么它就是一幀NM報文
NM報文數(shù)據(jù)場
NM報文的重點在于數(shù)據(jù)場8字節(jié)里的內(nèi)容:
NM報文數(shù)據(jù)場內(nèi)容格式
Byte0:這里填的是ECU的地址,或者叫ECU的ID;
此報文的ID=一個基礎(chǔ)值+ECU的ID,例如廠家規(guī)定基礎(chǔ)值為0x500,那么此報文的ID=0x500+0x8=0x508;
這里要注意區(qū)分報文的ID和ECU ID的概念,很容易混淆;
Byte1:
NM報文數(shù)據(jù)場byte1格式
這里關(guān)注下bit0和bit4:
bit0:當(dāng)此位置1時強制進入RMS(下面會講到);
bit4:告訴其他節(jié)點自身是怎么被喚醒的。
置0:被動喚醒、遠程喚醒,比如被其他節(jié)點發(fā)送的NM報文喚醒;
置1:主動喚醒、本地喚醒,比如給ECU上電;
byte2-byte7里的user data數(shù)據(jù)由用戶自行定義。
5、CAN NM狀態(tài)介紹
AUTOSAR網(wǎng)絡(luò)管理有三種狀態(tài):
睡眠模式(Bus-Sleep Mode):當(dāng)節(jié)點沒有本地網(wǎng)絡(luò)喚醒以及遠程喚醒請求時,ECU通訊控制器切換至睡眠模式,ECU功耗降低至適當(dāng)水平;此模式下,NM報文只收不發(fā),APP報文不收不發(fā),當(dāng)出現(xiàn)有效喚醒源時必須要被喚醒;
預(yù)睡眠模式(Prepare Bus-Sleep Mode):這個狀態(tài)是為了等待總線上的所有節(jié)點能夠在進入Bus-Sleep Mode之前有時間停止節(jié)點的active狀態(tài)(如清空隊列中為發(fā)送的報文);此模式下,NM報文只收不發(fā),APP報文不收不發(fā),如果緩沖區(qū)有APP報文那可以繼續(xù)發(fā)完;
網(wǎng)絡(luò)模式(Network Mode):
包含3個子狀態(tài):
重復(fù)報文狀態(tài)(Repeat Message State):NM報文可收可發(fā),APP報文可收可發(fā);
正常工作狀態(tài)(Normal Operation State):NM報文可收可發(fā),APP報文可收可發(fā);
準(zhǔn)備睡眠狀態(tài)(Ready Sleep State):NM報文只收不發(fā),APP報文可收可發(fā);
總結(jié)見下圖:
6、定時器及參數(shù)介紹
第5小節(jié)和第6小節(jié)的內(nèi)容看一遍可能理解不了,學(xué)完下面的狀態(tài)遷移圖,再回過來多看幾遍就能理解了。
7、狀態(tài)機
現(xiàn)在終于來到AUTOSAR網(wǎng)絡(luò)管理的最難理解也是最容易使人禿頭的狀態(tài)機了,這里我不打算把每一條狀態(tài)轉(zhuǎn)換的文字描述直接貼上來,跟著我的思路,我們來一個一個看吧。
在開始之前,先了解一下各種縮略語:
BSM-睡眠模式 NM-網(wǎng)絡(luò)模式 PBM-預(yù)睡眠模式
RMS-重復(fù)報文模式 NOS-正常操作狀態(tài) RSS-準(zhǔn)備睡眠模式
01:給ECU上電,ECU自己就會初始化進入睡眠模式。如果沒有喚醒源來喚醒此節(jié)點,那就會一直待在睡眠模式。
02+03:當(dāng)出現(xiàn)本地喚醒(03)或者遠程喚醒(02)時,進入RMS狀態(tài)。這里再解釋下,本地喚醒就是我自己想要主動和其他節(jié)點通信;遠程喚醒是其他節(jié)點想要和我通信。
04:我們現(xiàn)在已經(jīng)走到網(wǎng)絡(luò)模式的重復(fù)報文子狀態(tài)了。話說為什么叫重復(fù)報文子狀態(tài)呢,因為在這個狀態(tài)里的時候,ECU需要一直發(fā)送周期報文,來告訴別人:我在線,性感ECU在線陪聊,你再不來找我我就要開始想念你......
如果是走03(本地喚醒)進來的,那么需要先在NM Immediate Transmit State中以很快的周期發(fā)送N幀報文(例:以20ms的周期連續(xù)發(fā)送5幀報文),發(fā)完這N幀報文再進入到NM Normal Transmit State中以正常的周期發(fā)送報文(例:500ms為周期發(fā)送報文。這個在上面的表格里有定義)。如果是直接走02進來的,那么直接以正常周期發(fā)送NM報文就可以了。一直發(fā)到T_repeat_message定時器超時。
這一步的目的是如果是本地喚醒的話,可能此ECU下面還有很多從屬節(jié)點,當(dāng)此ECU喚醒之后,需要同時喚醒其他兄弟節(jié)點一起通信,所以最開始的N幀報文周期很短,目的是為了快速、低延遲地喚醒其他節(jié)點。為什么被遠程喚醒就不需要這一步呢?歡迎大家在評論區(qū)里一起討論~
06+12:且慢,我們先來計算一下從BSM到這一步花費了多少時間了。參考上面定時器的定義,在02或03中,最大喚醒時間為T_wake_up=200ms;在04中,T_repeat_message=1600ms。總計1800ms,差不多為2s的時間,此時ECU有可能已經(jīng)不需要通信了(2019-11-29補充:ECU持續(xù)處于喚醒狀態(tài)的條件是有持續(xù)的喚醒源,例如一直有NM報文遠程喚醒、或一直有本地喚醒源例如上電)。如果還需要繼續(xù)通信,走06,進入NOS,繼續(xù)周期發(fā)送NM報文,可以收發(fā)APP報文,當(dāng)不再需要通信了,就停止發(fā)送NM報文,等待T_NM_timeout超時之后走09;如果直接不需要通信了,直接走12。
10:收到本地喚醒,進入NOS。
11:收到NM報文的byte1字節(jié)的重復(fù)請求位如果置1,強制進入RMS。
08+14+05:T_NM_timerout定時器超時,不改變當(dāng)前狀態(tài)。定時器需要重置。
13:在RSS狀態(tài),NM報文不可以發(fā)送。等待T_NM_TIMEOUT定時器超時后進入PBM。
15+16:PBM狀態(tài)只可以接收NM報文,其他報文不發(fā)不。收到遠程喚醒,走15;收到本地喚醒,走16。
17:如果PBM狀態(tài)收不到任何喚醒源,在T_WAIT_BUS_SLEEP定時器超時后進入BSM。
以上就是CAN總線AUTOSAR網(wǎng)絡(luò)管理的內(nèi)容分享。
來源:汽車自動駕駛技術(shù)
審核編輯:湯梓紅
-
CAN總線
+關(guān)注
關(guān)注
145文章
1986瀏覽量
132810 -
汽車電子
+關(guān)注
關(guān)注
3037文章
8343瀏覽量
170132 -
網(wǎng)絡(luò)管理
+關(guān)注
關(guān)注
0文章
125瀏覽量
28188 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
379瀏覽量
22647 -
ecu
+關(guān)注
關(guān)注
14文章
933瀏覽量
55799
原文標(biāo)題:一文搞懂CAN總線的AUTOSAR網(wǎng)絡(luò)管理
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
AUTOSAR CAN網(wǎng)絡(luò)管理
AUTOSAR CAN網(wǎng)絡(luò)管理狀態(tài)機介紹
CAN總線報文記錄產(chǎn)品簡介
AUTOSAR信息安全框架和關(guān)鍵技術(shù)相關(guān)資料介紹
《振南電子STM32視頻教程》第十三講:CAN總線
CAN總線協(xié)議教程|CAN報文分析
AUTOSAR_SWS_CAN網(wǎng)絡(luò)管理規(guī)范標(biāo)準(zhǔn)4.3.1
CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP中文版
CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP英文版
AUTOSAR CAN網(wǎng)絡(luò)管理協(xié)議
AUTOSAR CAN網(wǎng)絡(luò)管理報文的數(shù)據(jù)場格式
AutoSAR中CAN通信網(wǎng)絡(luò)管理的概述

一文解析AUTOSAR CAN網(wǎng)絡(luò)管理

評論