前言
E2E(End-to-End)保護(hù)存在于安全性較高的信號(hào),在信號(hào)傳遞的過(guò)程中,受軟硬件的影響,發(fā)送端和接收端的數(shù)據(jù)可能不一致,此時(shí)E2E的作用就體現(xiàn)出來(lái),系統(tǒng)可以快速檢測(cè)出E2E異常,以便做出相應(yīng)的異常處理。
本文以常用的Profile1為例,介紹相關(guān)的定義的和使用
E2E的依賴:E2E會(huì)調(diào)用CRC中的函數(shù),例如Crc_CalculateCRC8
E2E Development Errors
E2E_E_INPUTERR_NULL(0x13):至少有一個(gè)指針參數(shù)是NULL指針
E2E_E_INPUTERR_WRONG(0x17):至少有一個(gè)輸入?yún)?shù)錯(cuò)誤,例如超出范圍
E2E_E_INTERR(0x19):發(fā)生了內(nèi)部庫(kù)錯(cuò)誤(例如,程序流監(jiān)控檢測(cè)到的錯(cuò)誤,違反了不變式或后置條件)
E2E_E_WRONGSTATE(0x1A):函數(shù)在錯(cuò)誤的狀態(tài)下執(zhí)行
Type definitions類型定義
本章定義了對(duì)調(diào)用方可見(jiàn)的E2E庫(kù)定義的數(shù)據(jù)類型。
下面顯示的一些屬性定義了數(shù)據(jù)偏移量。偏移量的定義規(guī)則如下:
偏移量以位為單位,
在一個(gè)字節(jié)中,位從0往上編號(hào),第0位是最低位(與微控制器或總線端序無(wú)關(guān))。
E2E_P01ConfigType
CounterOffset:Counter的位偏移。CounterOffset應(yīng)為4的倍數(shù)。在變體1A、1B和1C中,CounterOffset為8。
CRCOffset:CRC的位偏移量。偏移量應(yīng)為8的倍數(shù)。在變體1A、1B和1C中,CRCOffset為0。
DataID:兩字節(jié),根據(jù)具體要求來(lái)定,每個(gè)Group的Data Id都可能不一樣。
DataIDNibbleOffset:DataID的高字節(jié)的low nibble位偏移量。只有當(dāng)DataIDMode = E2E_P01_DATAID_NIBBLE時(shí),E2E庫(kù)才會(huì)使用該參數(shù)(否則會(huì)被E2E Library忽略)
DataIDMode:Data ID的使用方式,包括both bytes, alternating, or low byte 等,在后面介紹
DataLength:數(shù)據(jù)的長(zhǎng)度,以位為單位。該值應(yīng)為8的倍數(shù)。DataLength包含Checksum和Counter
MaxDeltaCounterInit:兩個(gè)連續(xù)接收到的有效數(shù)據(jù)的兩個(gè)計(jì)數(shù)器值之間的初始最大允許間隙。例如,如果接收方獲得計(jì)數(shù)器為1的數(shù)據(jù),并且MaxDeltaCounterInit為1,那么在下一次接收時(shí),接收方可以接受值為2和3的計(jì)數(shù)器,但不能接受值為4的計(jì)數(shù)器。
MaxNoNewOrRepeatedData:在正常通信條件下,接收方不希望超過(guò)的丟失或重復(fù)數(shù)據(jù)的最大數(shù)量。也就是允許counter不變時(shí)的次數(shù)
SyncCounterInit:在檢測(cè)到接收到的計(jì)數(shù)器的意外行為后,必須用有效計(jì)數(shù)器(即在允許的鎖定范圍內(nèi)的計(jì)數(shù)器)接收的驗(yàn)證計(jì)數(shù)器一致性所需的數(shù)據(jù)數(shù)。這個(gè)相當(dāng)于是一個(gè)debounce,在故障確認(rèn)后,需要連續(xù)檢測(cè)SyncCounterInit配置的值后status才會(huì)變?yōu)檎顟B(tài)
E2E_P01DataIDMode
E2E_P01_DATAID_BOTH:兩個(gè)字節(jié)包含在CRC(雙字節(jié)ID配置)中,這在E2E變體1A中使用。
E2E_P01_DATAID_ALT:包括兩個(gè)字節(jié)字節(jié)中的一個(gè),根據(jù)Counter的奇偶性(交替ID配置)交替高字節(jié)和低字節(jié)。對(duì)于偶數(shù)Counter,使用低字節(jié)。對(duì)于奇數(shù)Counter,使用高字節(jié)。這在E2E變型1B中使用。
E2E_P01_DATAID_LOW:只包含低字節(jié),從不使用高字節(jié)。這適用于特定系統(tǒng)中的id為8位的情況
E2E_P01_DATAID_NIBBLE:低字節(jié)包含在隱式CRC計(jì)算中,高字節(jié)的低字節(jié)與數(shù)據(jù)一起傳輸(即顯式包含),不使用高字節(jié)的高字節(jié)。這適用于最多12位的id。這在E2E型1C中使用。也就是說(shuō)data id的高字節(jié)的低四位是包含在data中的
E2E_P01CheckStateType
LastValidCounter:最近收到的計(jì)數(shù)器值。如果尚未接收到數(shù)據(jù),則該值為0x0。每次接收后,計(jì)數(shù)器都會(huì)使用接收到的值進(jìn)行更新
MaxDeltaCounter:當(dāng)前Counter最大差值
WaitForFirstData:如果為true,則表示在接收器初始化或重新初始化后尚未收到正確的數(shù)據(jù)(具有正確的data ID和CRC)
NewDataAvailable:向端到端庫(kù)表示有新的數(shù)據(jù)可供庫(kù)檢查。此屬性由E2E Library調(diào)用方設(shè)置,而不是由E2E Library。
LostData:自收到最后一個(gè)有效數(shù)據(jù)(消息)以來(lái)丟失的數(shù)據(jù)(消息)數(shù)。只有當(dāng)Status等于E2E_P01STATUS_OK或E2E_P01STATUS_OKSOMELOST時(shí),才會(huì)設(shè)置該屬性。對(duì)于Status的其他值,LostData的值是undefined。E2E_P01CheckStatusType Status數(shù)據(jù)校驗(yàn)結(jié)果,由Check函數(shù)確定
Status:數(shù)據(jù)驗(yàn)證的結(jié)果,由Check函數(shù)確定
SyncCounter:在檢測(cè)到接收到的計(jì)數(shù)器的意外行為后,必須用有效計(jì)數(shù)器(即在允許的鎖定范圍內(nèi)的計(jì)數(shù)器)接收的驗(yàn)證計(jì)數(shù)器一致性所需的數(shù)據(jù)數(shù)。也就是故障出現(xiàn)后,重新接收到有效數(shù)據(jù)的計(jì)數(shù)。當(dāng)SyncCounter超過(guò)SyncCounterInit后,E2E接收的數(shù)據(jù)才會(huì)變?yōu)橛行?/p>
NoNewOrRepeatedDataCounter:連續(xù)接收周期的數(shù)量,其中(1)沒(méi)有新數(shù)據(jù),或(2)數(shù)據(jù)重復(fù)。
E2E_P01CheckStatusType
E2E_P01STATUS_OK:CRC校驗(yàn)通過(guò),計(jì)數(shù)器相對(duì)于最近收到的狀態(tài)為_INITIAL、_OK或_OKSOMELOST的數(shù)據(jù)加1.這意味著自最后一次正確的數(shù)據(jù)接收以來(lái)沒(méi)有數(shù)據(jù)丟失
E2E_P01STATUS_NONEWDATA:錯(cuò)誤:Check函數(shù)已被調(diào)用,但根據(jù)通信介質(zhì),自上次調(diào)用以來(lái)沒(méi)有新的數(shù)據(jù)不可用.因此,沒(méi)有執(zhí)行數(shù)據(jù)的E2E檢查。
E2E_P01STATUS_WRONGCRC:錯(cuò)誤:根據(jù)通信介質(zhì)已經(jīng)接收到數(shù)據(jù),但是
1.CRC不正確(適用于所有E2E配置文件1)或
2.數(shù)據(jù)ID高字節(jié)的low nibble錯(cuò)誤(僅適用于E2E_P01DataIDMode = E2E_P01_DATAID_NIBBLE的E2E Profile1)
E2E_P01STATUS_SYNC:NOT VALID:在檢測(cè)到計(jì)數(shù)器的意外行為后,新數(shù)據(jù)已被接收。數(shù)據(jù)有一個(gè)正確的CRC和一個(gè)在預(yù)期范圍內(nèi)的計(jì)數(shù)器,相對(duì)于最近收到的數(shù)據(jù),但是計(jì)數(shù)器的確定的連續(xù)性檢查還沒(méi)有完成
E2E_P01STATUS_INITIAL:初始化:根據(jù)通信介質(zhì)已經(jīng)接收到新的數(shù)據(jù),CRC是正確的,但這是接收方初始化或重新初始化后的第一個(gè)數(shù)據(jù),因此計(jì)數(shù)器還不能驗(yàn)證
E2E_P01STATUS_REPEATED:錯(cuò)誤:根據(jù)通信介質(zhì)已經(jīng)接收到新的數(shù)據(jù),CRC是正確的,但是計(jì)數(shù)器與最近收到的狀態(tài)為_INITIAL, _OK或_OKSOMELOST的數(shù)據(jù)相同。
E2E_P01STATUS_OKSOMELOST根據(jù)通信介質(zhì)已經(jīng)接收到新數(shù)據(jù),CRC是正確的,計(jì)數(shù)器相對(duì)于最近收到的狀態(tài)為_INITIAL, _OK或_OKSOMELOST的數(shù)據(jù)增加DeltaCounter (1 < DeltaCounter = MaxDeltaCounter)。這意味著自最后一次正確/初始接收以來(lái),序列中的一些數(shù)據(jù)可能已經(jīng)丟失,但這在配置的公差范圍內(nèi)。
E2E_P01STATUS_WRONGSEQUENCE:錯(cuò)誤:根據(jù)通信介質(zhì)已經(jīng)接收到新的數(shù)據(jù),CRC是正確的,但是計(jì)數(shù)器Delta (DeltaCounter > MaxDeltaCounter)相對(duì)于最近收到的狀態(tài)為_INITIAL, _OK或_OKSOMELOST的數(shù)據(jù)太大。這意味著自最后一次正確/初始接收以來(lái),序列中可能丟失了太多數(shù)據(jù)。
函數(shù)定義
E2E_P01Protect
輸入?yún)?shù):ConfigPtr:E2E_P01的配置參數(shù)
輸入輸出參數(shù):
StatePtr:當(dāng)前E2E_P01通信狀態(tài)
DataPtr:要發(fā)送的數(shù)據(jù)指針,經(jīng)過(guò)E2E計(jì)算的
E2E_P01Protect函數(shù)主要用來(lái)根據(jù)輸入的DATA和DATA ID等計(jì)算Counter和CRC
E2E_P01ProtectInit
初始化E2E_P01ProtectState
E2E_P01Check
輸入?yún)?shù):Config:E2E_P01的配置參數(shù)
Data :需要E2E校驗(yàn)的數(shù)據(jù)
輸入輸出參數(shù):State:當(dāng)前E2E_P01的通信狀態(tài)
E2E_P01Check主要用來(lái)根據(jù)輸入的DATA和DATA ID等校驗(yàn)數(shù)據(jù)是否正常
E2E_P01CheckInit
初始化E2E_P01CheckState
E2E_P01MapStatusToSM
將Profile 1的check status映射為通用check status,供E2E狀態(tài)機(jī)檢查功能使用。
審核編輯:湯梓紅
-
微控制器
+關(guān)注
關(guān)注
48文章
7872瀏覽量
153488 -
信號(hào)
+關(guān)注
關(guān)注
11文章
2836瀏覽量
77786 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
370瀏覽量
22337 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4365瀏覽量
63952
原文標(biāo)題:Autosar E2E及其實(shí)現(xiàn)(基于E2E_P01)
文章出處:【微信號(hào):談思實(shí)驗(yàn)室,微信公眾號(hào):談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
以前的E2E社區(qū)的資料
電子發(fā)燒友E2E線下30城活動(dòng)?|?讓技術(shù)成就夢(mèng)想,誰(shuí)將是夢(mèng)想領(lǐng)航人呢?
電子發(fā)燒友E2E首場(chǎng)粉絲見(jiàn)面會(huì),暢談如何提升產(chǎn)品可靠性?
電子發(fā)燒友E2E線下沙龍深圳站|“暢談如何提高產(chǎn)品可靠性”精彩回顧
電子發(fā)燒友E2E線下30城活動(dòng) | 讓技術(shù)成就夢(mèng)想,誰(shuí)將是夢(mèng)想領(lǐng)航人呢?
HarmonyOS應(yīng)用開發(fā)-HelloWorld應(yīng)用開發(fā)E2E體驗(yàn)
“E:\NXP\AUTOSAR\S32K_AUTOSAR_OS_4_0_98_RTM_1_0_0sample\standard\sc1”編譯時(shí)無(wú)法生成sample1_cfg.o怎么解決?
物聯(lián)網(wǎng)轉(zhuǎn)向E2E解決方案
HMC652LP2E/HMC653LP2E/HMC654LP2E/HMC655LP2E Gerber Files

基于A10PED-0U-A-066X3E2S-N-E2E2-1-066X3E2S-N-E2E2-0-0-ST2APS-ABField-Programmable Gate Array的參考設(shè)計(jì)

羅德與施瓦茨成功驗(yàn)證10Gbps端到端(E2E)峰值下行鏈路IP數(shù)據(jù)吞吐量

AUTOSAR E2E:車載通信的安全保障

詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗(yàn)方法

干貨分享 | TSMaster AUTOSAR E2E使用說(shuō)明

評(píng)論