前言
AUTOSAR網絡管理實際工程項目中,有時會對一些概念理解不清或者需求不清楚的情況,不知道你是否有同感?本篇就一些網絡需求和概念東西做一些分享。
Network states/Network Mode
Network Mode對應網絡開發人員并不陌生,它包含Repeat Message State、Normal Operation State、Ready Sleep State三個子狀態。Network states包含requested和released兩個子狀態。
Network states表示,軟件組件是否需要在總線上進行通信,通信與否需要調用CanNm_NetworkRequest/Release接口,接口的調用需要根據實際項目的需求開發,如:收到有效的Power On信號等。
節點收到總線NM報文,且沒有調用CanNm_NetworkRequest,通信是如何起來的呢?
如上圖(1),網絡在BSM狀態收到NM報文,有兩種方式進入NM(Normal Mode),一種是調用CanNm_NetworkRequest接口,另一種是調用CanNm_PassiveStartup接口。
CanNm_NetworkRequest接口:這種方式由實際開發需求決定,因為CanNm_NetworkRequest接口不是主動調用的接口,如果需求要求收到本地喚醒源,如:KL15、Power On激活網絡,即Network states進入requested,則在上層邏輯中可主動調用該接口實現需求。
CanNm_PassiveStartup接口:由上圖可以看出,如果在BSM/PBSM下收到網絡管理報文,且沒有調用CanNm_NetworkRequest接口,則程序會主動調用CanNm_PassiveStartup接口,讓Network states進入requested,進而節點正常通信。CanNm_PassiveStartup接口之所以被調用,是ComM在COMM_FULL_COMMUNICATION狀態下請求網絡激活的結果。
Passive Mode/PassiveStartup
Passive Mode:表示該節點只能接收NMPDU,不能外發NMPDU。注意:Autosar CANNM規范中規定對于一個節點(即一個ECU)來說,該節點內的所有網絡要么都使用Passive Mode,要么都不使用Passive Mode。
Passive Startup:表示該節點網絡的啟動方式是被動啟動,不是主動啟動,即該節點接收到總線報文由BSM(Bus Sleep Mode)或者PBSM(Pre-BusSleep Mode)進入NM(Normal Mode)。這里的報文一般是NM報文。
Passive Startup并不是說當前節點不外發網絡管理報文,是否外發網絡管理報文取決于當前節點是否是Passive Mode,而這需要根據項目需求確定當前節點是否需要設計成Passive Mode。
這里提一個問題,為什么有些節點要設計成Passive Mode?個人理解:在一個網段里,如果掛接的節點過多,在啟動時每個節點都外發自己的NM報文,由于總線仲裁,高優先級的報文可以發送,其它節點的NM報文則會被阻塞,優先級最低節點的NM報文可能外發的時間被大大延遲,導致該節點不能在規定的時間內發出自己的應用報文(一般需求會要求第一幀是NM報文,確保網絡被快速激活,之后是應用報文),如果將這樣的節點設計成Passive Mode則不存在這樣的問題,即這些節點收到其他節點的NM報文以后發送自身的應用報文(應用報文可以增加Offset,即初始第一幀應用報文延時一段時間發送)。減少NM發送,也可以降低一些總線的負載率。
審核編輯:劉清
-
AUTOSAR
+關注
關注
10文章
360瀏覽量
21554 -
ecu
+關注
關注
14文章
886瀏覽量
54485 -
PDU
+關注
關注
0文章
94瀏覽量
16978 -
CAN接口
+關注
關注
3文章
77瀏覽量
25648
發布評論請先 登錄
相關推薦
評論