摘要:
本文討論一個具體的工程問題,E2E報文對應(yīng)的信號,由小周期轉(zhuǎn)大周期導(dǎo)致的E2E校驗失敗問題。
工程中,網(wǎng)關(guān)節(jié)點很重要的一個功能就是路由。當(dāng)然,E2E(End to End)報文也可路由,但是,路由的信號(Signal),如果周期不同,通信矩陣設(shè)計又未充分考慮,可能會帶來一些預(yù)料之外的問題。本文討論一個具體的工程問題,E2E報文對應(yīng)的信號,由小周期轉(zhuǎn)大周期導(dǎo)致的E2E校驗失敗問題。
1、問題描述
節(jié)點Node1和節(jié)點Node2之間通過網(wǎng)關(guān)節(jié)點(Gateway Node)通信,其中,某幀PDU受E2E保護(hù)。Node1通過CAN總線,以10ms周期發(fā)送E2E Tx PDU,發(fā)送給網(wǎng)關(guān)節(jié)點(Gateway Node),Gateway Node再通過Flexray總線,以320ms周期將此PDU信息路由給Node2,Node2接收E2E Rx PDU,并對此PDU做E2E校驗。此E2E PDU的傳輸示意如下:
提示:Gateway Node僅僅是路由功能,不做E2E校驗。路由時,如果Node1中的信號或者信號組配置了UB(Update Bit),路由信息之前,需要進(jìn)行UB位檢查。
(一)問題現(xiàn)象采集的數(shù)據(jù)如下所示:
如上圖,在T1時刻,Node1停止發(fā)送E2E Tx PDU,即:E2E Tx PDU包含的信號SignalCnt停發(fā)。而在T2時刻,Node2接收到的SignalCnt UB = 1,繼續(xù)接收SignalCnt,但是,此時的SignalCnt = 11,而上一次的SignalCnt = 12,Node2做E2E校驗時,認(rèn)為此時Sequence Number Error,進(jìn)而進(jìn)行了故障處理,eg:故障指示燈提示等。具體錯誤:由于DeltaCounter >MaxDeltaCounter,導(dǎo)致E2EPW_STATUS_WRONGSEQUENCE。DeltaCounter的計算如下:(ReceiverCounter >= State->LastValidCounter)?(DeltaCounter?= ReceivedCounter -State->LastValidCounter):(DeltaCounter?= 15 + ReceivedCounter -?State->LastValidCounter)由于Node2最新一次接收的值ReceiverCounter =?11,State->LastValidCounter = 12,DeltaCounter = 14。而配置的State->MaxDeltaCounter = 8,最終導(dǎo)致E2EPW_STATUS_WRONGSEQUENCE。
2、問題分析
這個問題的本質(zhì)是因為信號小周期(本文:10ms)轉(zhuǎn)大周期(本文:320ms)過程中,UB處理問題。如下圖:
t0時刻,Node1正常發(fā)送E2E報文,且Tx UB?= 1,Gateway Node正常路由信號SignalCnt,Rx UB = 1,Node2正常接收E2E報文,并做E2E校驗;
t1時刻,Node1停發(fā)E2E報文,但是,t0~t1期間,由于Tx?UB?= 1,Gateway?Node仍正常路由信號SignalCnt,且路由的SignalCnt值為11;
t1~t2期間,由于Tx UB = 0,Gateway Node不再路由信號SignalCnt;
t2時刻,由于Gateway?Node所在的Flexray并沒有停止通信,Gateway?Node繼續(xù)路由數(shù)據(jù),而此時路由的SignalCnt = 11。由于t0~t1期間,Gateway?Node的發(fā)送緩沖區(qū)數(shù)據(jù)有更新,因此,t2時刻發(fā)送數(shù)據(jù)時,UB = 1,因此,Node2接收到的Rx UB = 1,進(jìn)而Node2繼續(xù)校驗Node1發(fā)送的E2E報文,由于此時,SignalCnt = 11,不是預(yù)期的SignalCnt = 13,且DeltaCounter >MaxDeltaCounter,進(jìn)而導(dǎo)致校驗失敗。
3、處理措施
如上的分析,問題并不出在收/發(fā)兩方,而是通信矩陣設(shè)計時,未有充分考慮E2E路由的問題,即:小周期轉(zhuǎn)大周期的E2E路由問題。
如上的通信設(shè)計中,已經(jīng)失去了E2E的保護(hù)意義。因為發(fā)送端的Counter值路由到接收端時,可能存在隨機(jī)性。發(fā)送端每10ms發(fā)送一次,而接收端每320ms接收一次,也就是說,發(fā)送端的Counter更新了32次,接收端才接收到一次。收/發(fā)兩端SignalCnt變化情況如下所示:
如上圖,可以看出,接收端在接收到SignalCnt存在一定的隨機(jī)性。
所以,上述問題,需要系統(tǒng)重新評估和設(shè)計通信矩陣,或者接收端優(yōu)化網(wǎng)絡(luò)休眠時的E2E處理策略。文章來源:http://www.zghlxwxcb.cn/news/detail-608391.html
來源?|?開心果 Need Car文章來源地址http://www.zghlxwxcb.cn/news/detail-608391.html
到了這里,關(guān)于E2E工程問題:小周期轉(zhuǎn)大周期Gateway的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!