作者:You小編:吃不飽
在上篇中我們分別在狀態機和報文格式方面對OSEK和AUTOSAR網絡管理進行了簡單介紹,感興趣的小伙伴請移步至文章《科普系列:AUTOSAR與OSEK網絡管理比較(上)》。
01
OSEK與AUTOSAR網絡管理特點對比
本篇就是本文的重點了,接下來對比下這兩種網絡管理之間的共同點以及差別。
共同點
1
都是基于狀態機的網絡管理。
2
都是協調網絡中的節點同時進入休眠以及喚醒。
3
都分配了特定的網絡管理報文在網絡中進行網絡管理,屬于直接網絡管理。
4
通常情況每個節點都有獨有的節點ID(如0x1),與基礎ID(如0x400)共同構成網絡管理報文的ID(0x401)。
圖一 通常情況網絡管理報文ID組成
5
網絡喚醒方式都相同,每個節點都可以由于自己需要通信而主動喚醒網絡,也可以被網絡中其它的節點喚醒。
不同點
喚醒行為不一樣
OSEK網絡管理喚醒后會發出一幀特殊網絡管理報文,用來進行建環,建環完成后才根據邏輯環發送網絡管理報文;以三個節點建立邏輯環簡單舉個例子:
1.通信啟動
網絡中所有節點發出Alive報文。
圖二 OSEK網絡管理建環示意圖(1)
2.確認邏輯后繼節點
所有節點根據總線上出現的Alive報文判斷自身節點的邏輯后繼節點。
圖三 OSEK網絡管理建環示意圖(2)
3.發出Ring報文
某個節點發出Ring報文嘗試建環。
圖四 OSEK網絡管理建環示意圖(3)
4.令牌傳遞
節點收到指向自身的網絡管理報文也就是收到令牌后,將數據更新后再次發出。
圖五 OSEK網絡管理建環示意圖(4)下一個節點收到指向自身的網絡管理報文,也是將數據更新后再次發出。圖六 OSEK網絡管理建環示意圖(5)
5.建環完成
令牌再次傳遞到第一個發送Ring報文的節點,且令牌傳遞期間沒有節點發出Alive報文。
圖七 OSEK網絡管理建環示意圖(6)而AUTOSAR網絡管理喚醒后直接周期性發出自身的網絡管理報文即可,無需發出特殊的網絡管理報文。
休眠行為不一樣
OSEK網絡管理在總線睡眠之前,所有節點正常發送網絡管理報文,待所有節點都準備好休眠并發送SleepInd后,最后一個節點發送SleepACK,網絡中各節點再同時休眠,同樣以三個節點簡單舉個例子:A/B/C三個節點處于正常通信,節點B/C維持網絡處于通信狀態,A被維持通信。
1.節點B就緒休眠
就緒睡眠的節點在收到指向自身的網絡管理報文時,將數據更新為攜帶睡眠指示信息的網絡管理報文再次發出,此時僅C請求網絡通信,A/B被維持通信。
圖八 OSEK網絡管理控制同時休眠示意圖(1)
2.僅節點C主動維持網絡通信
Node B準備休眠發出攜帶睡眠指示的網絡管理報文,被節點C維持通信。
Node C依然需要請求網絡,發出未攜帶睡眠指示的網絡管理報文,維持節點A/B處于通信狀態。
Node A準備休眠發出攜帶睡眠指示的網絡管理報文,被節點C維持通信。
圖九 OSEK網絡管理控制同時休眠示意圖(2)
3.節點C也準備休眠
Node B準備休眠發出攜帶睡眠指示的網絡管理報文。
Node C準備休眠發出攜帶睡眠指示的網絡管理報文。
Node A檢測到所有節點都準備休眠,發出后繼節點指向自身且攜帶睡眠應答信息的網絡管理報文。
圖十 OSEK網絡管理控制同時休眠示意圖(3)此后所有節點停止網絡管理報文的發送,并同時進入休眠。
而AUTOSAR網絡管理在整個網絡休眠之前,只要某個節點準備休眠,那么這個節點就不再發送網絡管理報文,直到總線上不再發送網絡管理報文,那么所有節點則自行判斷已經可以休眠,無需確認休眠信息,如下以三個節點協調睡眠舉例:
1.A/B/C三個節點都處于請求網絡狀態
所有節點都周期發送自身網絡管理報文。
圖十一AUTOSAR網絡管理控制同時休眠示意圖(1)
2.節點A準備休眠,節點B/C依然維持通信
節點A停發自身網絡管理報文,但被節點B/C維持通信。
圖十二AUTOSAR網絡管理控制同時休眠示意圖(2)
3.所有節點準備好睡眠
所有節點停發網絡管理報文,等待NM-Timeout timer 超時并啟動Wait Bus-Sleep Timer。
圖十三AUTOSAR網絡管理控制同時休眠示意圖(3)
每個節點Wait Bus-Sleep Timer超時后就各自進入睡眠模式,總線上不再有通信。
網絡管理邏輯不同
1)OSEK網絡管理需要建環,網絡管理報文的發送必須按照邏輯環進行,只有得到“令牌”才能發送網絡管理報文,因此需要一個穩定的邏輯環,網絡管理才能正常進行,對網絡的穩定性要求比較高。
2)AUTOSAR網絡管理則不會受到其他節點狀態的影響,節點狀態的跳轉只與自身需求和總線的狀態有關,只需要監視總線狀態即可,網絡管理報文的發送是周期性的。
網絡管理報文格式不一樣
1)OSEK網絡管理由于邏輯環的存在報文包含節點自身的ID和下一個發出網絡管理報文的節點的ID,包含用于指示報文類型以及節點狀態的數據,即操作碼以及用戶數據。
操作碼(Opcode):OSEK網絡管理PDU中的byte1,置位這個字節中不同位置的位就表現為不同的報文類型,分別為Alive報文,Ring報文,LimpHome報文,但同一時刻只能發送一種類型;這個字節中還包含節點的狀態信息,也就是節點是否準備好睡眠以及是否確認睡眠,各占一個位。這個字節中的其它位則是預留的。
圖十四 OSEK網絡管理操作碼示例2)AUTOSAR網絡管理報文則由于是廣播發送的且不需要指定任何節點,所以報文只包含自身的ID,和少量的控制信息,即控制位向量,以及用戶數據。
控制位向量(CBV):AUTOSAR網絡管理PDU中的byte1,這個字節中包含重復消息請求信息,主動喚醒信息以及PN相關等表明節點進行網絡管理的控制信息。
圖十五 AUTOSAR網絡管理控制位向量
對于節點掉線或者加入的處理不一樣
1)在正常通信OSEK網絡管理網絡中不論是加入某個新節點還是掉線某個節點,都會影響網絡管理的狀態,需要重新建環才能維持正常的網絡管理。
2)而AUTOSAR網絡管理不論是加入新節點還是已有的節點掉線都不會影響原有節點的網絡管理狀態。
02
總 結
AUTOSAR網絡管理和OSEK網絡管理是汽車電子網絡管理中的兩個常見協議,本文就狀態機、報文格式等方面對二者進行了相應的科普和比較。僅以此投石問路,北匯信息后續會發布更多的科普系列文章,為大家擴展更多的汽車電子方面的知識。
北匯信息專注于汽車電子測試,與國內外眾多OEM和Tier1合作,在車載通信、診斷刷寫、OTA、車內網絡安全、域控制器功能測試等領域積累了豐富的實踐經驗,歡迎大家交流、探討。
-
網絡
+關注
關注
14文章
7523瀏覽量
88650
發布評論請先 登錄
相關推薦
評論