OSEK初級認知
有幾個小朋友要玩“擊鼓傳花”游戲,游戲規則很簡單:
1、想玩的人自己隨機報個數,所有人報完后自己心里排個序,花從小數往大數傳,最大數者傳給最小數,花到誰手里誰發言:表明想繼續玩還是想退出。
2、第一個報數的人等一段時間后看沒人再報數了就可以開始傳花了。
3、花到誰手里發言前,他需要檢查一下是否所有人都申請過想退出,如果是,他就通知大家:散場。
4、當然如果中途有人表明:想繼續玩,那他之前所有人的申請都作廢,大家重新表明態度,直到出現第一個發現所有人都提過申請退出的人,這個人才正式通知大家:散場。
初級中規則其實是為了讓大家好幾好回憶,理解規則后現在上數據玩真的
OSEK中級認知
實際場景中遇到的情況主要有以下四種情況:
正常上線、建環、傳遞令牌(Taken)及休眠(初級中描述的情況)
已建環有新節點插入
已建環現有節點異常掉線
上線未發現其他節點建環失敗(跛足模式)
結構說明
data[1]表明自己節點當前狀態
0x01 Alive(上線,玩游戲前自我報數過程)
0x02 Ring(建環,玩游戲傳花中)
0x04 LimpHome(跛足,網絡無人響應無法建環)
0x10 SleepIndicatio(休眠申請,游戲中申請退出)
0x20 SleepAcknowledege(應答申請,游戲中通知大伙散場)
以上命令可以組合比如建環中想申請休眠就是0x12
OSEK網絡管理報文CAN ID 一般為4XX,其中XX就是自己的網絡ID,data[0]在Alive狀態時填充自己ID,但注意[1]建環前表明身份還是靠監聽CAN ID XX而不是Alive時的data[0],在Ring狀態時填充傳遞Taken的ID
1. 正常上線、建環、傳遞令牌(Taken)及休眠
注意幾個點:
表格中時間是時間間隔,Alive在100ms內隨機響應,Ring響應間隔是100ms
當輪到自己發言0x12表明休眠申請后,只需處理3種狀態:
Taken未到自己(即下輪發言未輪到自己)時監聽到休眠應答(其他節點發22或32)則進入休眠等待(1.5s)
Taken未到自己時監聽到有節點不想休眠發02,則退出休眠申請狀態,輪到自己時重新發起
Taken到自己時監聽并檢查所有節點都發出過10休眠申請,則自己發32廣播集體休眠,進入休眠等待(1.5s)
發出32休眠應答命令1.5s內有任何報文,則退出休眠重新申請
-
[ tWaitBusSleep = 1500ms ]
2. 已建環有403新節點插入
新節點03發Alive表明上線,同時節點00將下家節點從07更新為03
03上線后監聽到09有發言,就把自己的下家節點更新為09
03上線后只有09號比自己大,就理所當然到發言時通知09,這讓07發現自己被忽略了
07繼續通知09,不再發02Ring報文,而是發01Alive廣播(這就是注意[1]里的原因,Alive時data[0]也不一定代表自己),次時03發現有個07在自己和下家09之間,則更新下家為07
3. 已建環現有節點403異常掉線
以下圖文是演示403節點掉線又上線的過程,如果403直接掉線,則400把Taken傳給403超時未響應時,所有節點重新發Alive報文重新建環
4. 上線未發現其他節點建環失?。俗隳J剑?/p>
發Alive報文100m后發特殊Ring報文(正常的Ring報文data[0]應該指示下家節點,現在找不到只能填充自己節點ID)并監聽網絡,260ms超時后再次重發Alive報文
OSEK高級認知網絡管理分類
直接網絡管理(OSEK, AUTOSAR等專門網絡報文進行整車節點控制喚醒休眠)
間接網絡管理(個人理解就是沒有網絡管理,IGN ON 發應用報文,OFF停發應用報文)
(本文中提及的網絡管理都是指直接網絡管理)
網絡管理作用(巧記:同時休眠,提供狀態)
協調各ECU節點同時進入休眠
監控網絡配置
提供本身系統狀態
時間參數
ECU本地喚醒(IGN等)一般要求150ms內使能CAN接收處理應用報文,并在200ms內發出第一條報文且必須為Alive報文而非應用報文,并在第一條Alive后[60~120ms]間發送第一條應用報文,在700ms內所有周期報文至少發送一次(此要求依賴車廠)
2.ECU遠程喚醒(收到網絡報文)一般要求50ms內發出第一幀Alive報文,并在700ms內發送完成所有周期報文
3.ECU休眠 當節點發出休眠申請后開始監聽網絡,當收到休眠應答(或輪到自己廣播休眠應答)后進入1500ms休眠等待時間,時間到后關閉所有發送進入休眠。未避免反復喚醒,喚醒后至少5s才能下一輪休眠
4.ECU跛足模式 當ECU連續4次發Alive報文無法建環時,進入LimpHome模式,以1000ms周期發送LimpHome 04報文
5.時間參數
OSEK網絡管理總結
1、建環機制:網絡管理報文ID從小到大發送,然后從最大節點到最小節點依次建成邏輯環。
2、OSEK網絡管理報文規則:ID:4xx,其中4代表此幀報文為網絡管理報文。xx代表當前節點的基地址,在OSEK網絡管理中會給每個節點分配一個基地址(00~FF)
Byte0:代表此幀網絡管理報文發送的目標地址(一般情況)。通俗說就是這幀網絡管理報文是發送給BCM還是給PEPS或者其他節點。
Byte1:代表發送的網絡管理報文的類型即是ring報文還是Alive報文或者LimpHome報文;
01:代表 Alive報文,在總線上聲明自己的存在,請求其他節點與自己建環。
02:代表Ring報文;
12:代表當前節點已無通訊請求(睡眠標志位ind置位),即告知其他節點我已滿足睡眠條件;
32:即將其睡眠應答位置1,當檢測到其他節點都在發送12ring報文后,最后一個節點發送此應答報文,告知其他節點當前整個網絡無通信請求,可以睡眠。此時進入睡眠等待狀態即Twbs狀態。
04:代表跛行報文,如果網絡管理報文接收計數器和發送計數器超限后,發送跛行報文即無其他節點與此節點建環,只有一個節點存在。
其余字節預留。
3、OSEK網絡管理可以被應用報文喚醒。
編輯:hfy
-
網絡管理
+關注
關注
0文章
120瀏覽量
27670 -
OSEK
+關注
關注
2文章
19瀏覽量
13024
發布評論請先 登錄
相關推薦
評論