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