AUTOSAR E2EXf E2ESM Introduction

article/2025/10/17 0:16:34

针对E2E 数据校验目前存在2种方式,如下

E2E Lib + E2E PW: 采用这种方式的校验E2E_Check接口将返回E2E PXX Status(例子可参见E2E PXX Status Estimation) ,App 需要自行根据返回的E2E PXX Status来判断采取什么Action , 对于这种组合在AUTOSAR 4.3 之后就不再采用了

E2E Lib +E2EXf+ E2ESM: 对于AUTOSAR 4.3 之后的版本都将采用这种组合,和前面提到的那种方式相比这种方式提供了滑动窗和动态判断“错误”的机制,使得APP 不用自己去技术和实现机制来完成一些功能

比如: 我们要判断5 次里有3次CRC 错误,我们就采取措施,如果采用E2E Lib + E2E PW 方式。APP 需要自行实现这个滑动窗动态监测机制,但是在E2E Lib +E2EXf+ E2ESM模式下只需要配置对应的属性即可完成

NOTE: 虽然E2E Lib +E2EXf+ E2ESM 可以减少APP的实现,但是需要相关人员对于这套组合具有非常好的理解才行。相比E2E Lib + E2E PW 虽然实现简单了,但是配置复杂度增加了

E2E Xf 处理流程

本文将结合Prefile 5 &1 来介绍E2E Lib +E2EXf+ E2ESM:究竟怎么理解,怎么做

Profile 5

Important Attribute

MaxDeltaCounter:

最大容忍Rolling Cnt 的变化数,对于E2E 中的Rolling Cnt我们希望他是线性变化的,因此如果连续两条的Rolling Cnt的变化值如果>1,则考虑有报文丢失,对于丢失报文的容忍度为(MaxDeltaCounter-1)帧报文。

Window Size:

只用最后N条报文对应的OkCount and ErrorCount参与评估E2ESM State

(详细内容见OkCount and ErrorCount Calculation 章节)

MaxErrorStateInit/ MaxOkStateInit:

在E2E SM_INT 状态下用于比较OkCount /ErrorCount的门限值

MaxErrorStateValid/ MaxOkStateValid:

在E2E SM_Valid 状态下用于比较OkCount /ErrorCount的门限值

MaxErrorStateInvalid/ MaxOkStateInvalid:

在E2E SM_Invalid 状态下用于比较OkCount /ErrorCount的门限值

E2E P05 Status Estimation

E2E_P05STATUS_OK: CRC 验证成功且 DaltaCounter =1, 即数据没有任何丢失且CRC 验证成功

E2E_P05STATUS_OKSOMELOST CRC 验证成功,但是Rolling Cnt不连续且在容忍范围内(<=MaxDeltaCounter)即丢(MaxDeltaCounter-1)帧数据可接受

E2E_P05STATUS_REPEATED 当DaltaCounter =0 ,即收到的Rolling Cnt和上一条一致

E2E_P05STATUS_WRONGSEQUENCE : DaltaCounter > MaxDeltaCounter 时&& DaltaCounter >=0 ,即丢失报文超过认为范围内,或者Rolling Cnt并非线性增加 (如果最后收到的Rolling Cnt比之前的小(除去扣圈特列)也会触发这个Error,)

E2E_P05STATUS_ERROR:当CRC 校验错误

E2E_P05STATUS_NONEWDATA 并未收到数据

P05Status and CheckStatus Mapping

E2E Check Status

E2E P05 Status

E2E_P_OK

E2E_P05STATUS_OK

E2E_P05STATUS_OKSOMELOST

E2E_P_ERROR

E2E_P05STATUS_ERROR

E2E_P_REPEATED

E2E_P05STATUS_REPEATED

E2E_P_NONEWDATA

E2E_P05STATUS_NONEWDATA

E2E_P_WRONGSEQUENCE

E2E_P05STATUS_WRONGSEQUENCE

OkCount and ErrorCount Calculation

直接看实现吧 ,比较容易解释。其中 errorCounter对应的就是CRC 错误。注意报文丢失并不会增加errorCounter。报文丢失数的容忍度只和MaxDeltaCounter 有关

E2ESM State Judgement

E2ESM 分为如下状态

E2E_SM_NODATA:E2E SM 初始化状态

E2E_SM_INIT: 只要收到过1帧CRC验证成功的报文就会转换为此种状态,一般只的就是第一帧验证成功的E2E报文

E2E_SM_VALID: 见下图流转

E2E_SM_INVALID: 见下图流转

E2ESM Status

0x01(E_SAFETY_VALID_REP)

0x02 (E_SAFETY_VALID_SEQ)

0x03 (E_SAFETY_VALID_ERR)

0x05 (E_SAFETY_VALID_NND)

0x20 (E_SAFETY_NODATA_OK)

0x21 (E_SAFETY_NODATA_REP)

0x22 (E_SAFETY_NODATA_SEQ)

0x23 (E_SAFETY_NODATA_ERR)

0x25 (E_SAFETY_NODATA_NND)

0x30 (E_SAFETY_INIT_OK)

0x31 (E_SAFETY_INIT_REP)

0x32 (E_SAFETY_INIT_SEQ)

0x33 (E_SAFETY_INIT_ERR)

0x35 (E_SAFETY_INIT_NND)

0x40 (E_SAFETY_INVALID_OK)

0x41 (E_SAFETY_INVALID_REP)

0x42 (E_SAFETY_INVALID_SEQ)

0x43 (E_SAFETY_INVALID_ERR)

0x45 (E_SAFETY_INVALID_NND)

Example

例子1:如果丢失5 帧报文,则需要采取特殊Action:

分析:这里的丢失5 帧报文,只有MaxDeltaCounter会影响到这个功能,按照上面介绍需要把MaxDeltaCounter设置为6,由于ErrorCounter 只是针对CRC 错误,因此在这个里我们需要检测各个E2E SM STATE 中的 WongSequence State

App 代码处理

If(ret== E_SAFETY_VALID_SEQ ||

ret== E_SAFETY_NODATA_SEQ||

ret== E_SAFETY_INIT_SEQ||

ret== E_SAFETY_INVALID_SEQ)

{

// Action

}

例子2:如果连续2帧CRC 错误,则需要采取特殊Action

分析:因为是CRC 错误,所以需要考虑ErrorCounter,由于是连续2帧,也就是最后2帧,因此需要使用window size :2

因此可将MaxErrorStateInit/ MaxErrorStateInvalid/ MaxErrorStateValid 设置为 2(ErrorCounter)-1 =1,那么在任何E2E SM 状态只要出现连续两帧CRC 错误就会导致E2E SM 状态切换为INVALID

App 代码处理

if(rte == E_SAFETY_INVALID_ERR))

{

// Action

}

例子3:如果5帧出现3帧CRC 错误,则需要采取特殊Action

分析:因为是CRC 错误,所以需要考虑ErrorCounter,由于是5帧出现3帧,需要使用window size :5,由于只有3帧出现错误时才会采取行为因此

因此可将MaxErrorStateInit/ MaxErrorStateInvalid/ MaxErrorStateValid 设置为 3-1 =2,那么在任何E2E SM 状态只要5帧出现3帧CRC 错误就会导致E2E SM 状态切换为INVALID

If(ret == E_SAFETY_INVALID_ERR))

{

// Action

}

Profile 1

未列出的内容和Profile 5 一致

Important Attribute

MaxDeltaCounter:

最大容忍Rolling Cnt 的变化数,对于E2E 中的Rolling Cnt我们希望他是线性变化的,因此如果连续两条的Rolling Cnt的变化值如果>1,则考虑有报文丢失,对于丢失报文的容忍度为(MaxDeltaCounter-1)帧报文。

MaxNoNewOrRepeatedData:

如果收到的Rolling Cnt并未发生变化,则NoNewOrRepeatedData 所对应的cnt+1, 当超多预定义的MaxNoNewOrRepeatedData时,在某些情况会返回E2E_P01STATUS_SYNC 状态

SyncCounterInit

当收到数据重复数量达到最大值之后(MaxNoNewOrRepeatedData),即使再次收到正确的数据也不能立即返回E2E_STATUS_OK or E2E_STATUS_OKSOMELOST,此时需要返回E2E_P01STATUS_SYNC, 当连续几个数据(SyncCounterInit)都正确才会返回E2E_STATUS_OK or E2E_STATUS_OKSOMELOST,

Window Size:

只用最后N条报文对应的OkCount and ErrorCount参与评估E2ESM State

(详细内容见OkCount and ErrorCount Calculation 章节)

MaxErrorStateInit/ MaxOkStateInit:

在E2E SM_INT 状态下用于比较OkCount /ErrorCount的门限值

MaxErrorStateValid/ MaxOkStateValid:

在E2E SM_Valid 状态下用于比较OkCount /ErrorCount的门限值

MaxErrorStateInvalid/ MaxOkStateInvalid:

在E2E SM_Invalid 状态下用于比较OkCount /ErrorCount的门限值

E2E P01 Status Estimation

E2E_P01STATUS_OK: CRC 验证成功且 DaltaCounter =1, 即数据没有任何丢失且CRC 验证成功

E2E_P01STATUS_OKSOMELOST CRC 验证成功,但是Rolling Cnt不连续且在容忍范围内(<=MaxDeltaCounter)即丢(MaxDeltaCounter-1)帧数据可接受

E2E_P01STATUS_INITIAL第一次收到E2E 报文且CRC校验通过

E2E_P01STATUS_SYNC

当收到数据重复数量达到最大值之后(MaxNoNewOrRepeatedData),即使再次收到正确的数据也不能立即返回E2E_STATUS_OK or E2E_STATUS_OKSOMELOST,此时需要返回E2E_P01STATUS_SYNC, 当连续几个数据(SyncCounterInit)都正确才会返回E2E_STATUS_OK or E2E_STATUS_OKSOMELOST

NOTE: 正常情况当我们收到一个E2E Frame ,只要对应的CRC校验通过后,那么收到的Rolling Cnt就会被采用,即下一帧期望收到的Rolling Cnt 为本次值+1, 但是如果SyncCounterInit >0 ,当收到的DeltaCounter > MaxDeltaCounter ,则并不会采用收到的Rolling Cnt, 意味一旦这种情况出现,需要等待Rolling Counter“扣圈” 发生,即当再次DeltaCounter < MaxDeltaCounter满足时,才会进行“重同步”

E2E_P01STATUS_REPEATED 当DaltaCounter =0 ,即收到的Rolling Cnt和上一条一致

E2E_P01STATUS_WRONGSEQUENCE : DaltaCounter > MaxDeltaCounter 时&& DaltaCounter >=0 ,即丢失报文超过认为范围内,或者Rolling Cnt并非线性增加 (如果最后收到的Rolling Cnt比之前的小(除去扣圈特列)也会触发这个Error,)

E2E_P05STATUS_ERROR:当CRC 校验错误

E2E_P05STATUS_NONEWDATA 并未收到数据

P01Status and CheckStatus Mapping

E2E Check Status

E2E P05 Status

E2E_P_OK

E2E_P01STATUS_OK

E2E_P01STATUS_OKSOMELOST

E2E_P01STATUS_INITIAL

E2E_P_ERROR

E2E_P01STATUS_ERROR

E2E_P_REPEATED

E2E_P01STATUS_REPEATED

E2E_P_NONEWDATA

E2E_P01STATUS_NONEWDATA

E2E_P_WRONGSEQUENCE

E2E_P05STATUS_WRONGSEQUENCE

E2E_P01STATUS_SYNC


http://chatgpt.dhexx.cn/article/1ParJ36W.shtml

相关文章

基于Vue源码中e2e测试实践

您好&#xff0c;如果喜欢我的文章&#xff0c;可以关注我的公众号「量子前端」&#xff0c;将不定期关注推送前端好文~ 基于Vue源码中e2e测试实践 前言技术选型&对Vue的参考Puppeteer测试流程在Concis中的实践项目目录整理Concis组件库 前言 最近半年博主一直在抽空自研一…

【测试与自动化】介绍-框架-Jest-覆盖率-异步代码-e2e-Vue测试

测试与自动化 软件测试和自动化测试介绍前端自动化测试框架使用Jest编写单元测试统计测试覆盖率使用Jest测试异步代码使用Cypress进行e2e测试测试 Vue 项目 软件测试和自动化测试介绍 了解什么是软件测试&#xff0c;以及自动化方式的测试 什么是软件测试&#xff1f; 定义&am…

AUTOSAR E2E Introduction

E2E – Functional Safety E2E 用于保护安全相关的数据交互,以防止数据在交互过程中因为” FAULT” 导致数据完整性,时效性,合法性出现问题, 比如HW RANDOM FAULT 导致数据被篡改 E2E 的使用可以满足ISO26262 -6 对于数据安全传输的要求, 最高可以满足ASILD 的要求 需要…

【小猫爪】AUTOSAR学习笔记12-功能安全之E2E模块

【小猫爪】AUTOSAR学习笔记12-功能安全之E2E模块 前言1 E2E模块简介2 E2E功能简介2.1 五种保护机制2.2 E2E的状态机2.3 E2E Protection Wrapper2.4 E2E 错误反馈方式 END 前言 从这一节开始&#xff0c;正式步入功能安全专题。这一节先来看一个与Communication Stack强相关的且…

AUTOSAR专项--E2E

1. E2E基本概念 E2E,全称叫做End To End。这个概念的提出是用于保护在ECU运行时与安全相关的数据交换不受通信链路中故障的影响。根据AUTOSAR E2E Protocol Specification描述,基于E2E的通信可以按照如下示例: 很明显,E2E在传输中用于防止MCU硬件的随机失效、通信总…

Vue中如何进行自动化测试与端到端测试(E2E测试)

Vue中如何进行自动化测试与端到端测试&#xff08;E2E测试&#xff09; Vue.js是一种流行的前端JavaScript框架&#xff0c;用于构建现代的单页应用程序。在Vue.js中&#xff0c;测试是一个非常重要的主题。测试可以确保代码的正确性&#xff0c;使代码更加可靠和可维护。在这…

前端测试:e2e测试

为什么进行测试 你是否有以下烦恼&#xff1a; 当你加班加点完成一个功能后&#xff0c;提交给测试部&#xff0c;立马返回几个bug 当你修改完bug后&#xff0c;并检查了好几遍&#xff0c;确保无误后&#xff0c;提交给测试部&#xff0c;有返回几个bug …… 对于以上情境…

【AUTOSAR-E2E】-1.1-End-to-End通信保护介绍(Functional Safety功能安全相关)

目录 1 常见的通讯故障以及E2E机制能够检出的通讯故障 2 Functional safety功能安全对通信的要求 3 通信故障的原因 3.1 软件故障 3.2 随机硬件故障 3.3 外部影响、环境压力 4 常见的“E2E通讯保护”解决方案 4.1 无E2E保护的信号数据流示例 4.2 E2E Protection Wrapper解决方案…

Autosar BSW层CAN通讯开发------08(Autosar的E2E开发-----以E2E Profile01为例)

Crc校验在CAN报文中的实际应用介绍&#xff1a; Crc在报文传输过程中的实际应用如下&#xff08;在汽车中&#xff0c;Crc一般是对8个字节进行校验&#xff0c;目前我接触到的是这样&#xff09;&#xff1a; ECU-A和ECU-B之间进行CAN报文的传输&#xff0c;双方规定ECU-A发出的…

功能安全专题之端到端(E2E) 的通信保护

本文来自AUTOSAR技术资料。 前言 功能安全&#xff08;Functional Safety&#xff09;是一项系统特性&#xff0c;由于基于功能安全的设计会影响到系统设计&#xff0c;所以从系统开发初始阶段就要进行考虑。由于软件的复杂度会影响 到功能安全的设计&#xff0c;所以在AUTOS…

AUTOSAR的E2E通信安全

导语&#xff1a;近期项目中遇到一些E2E的诊断故障&#xff0c;涉及到整车需求和AutoSAR配置&#xff0c;对这个概念重新做了下梳理&#xff0c;与大家交流。由于E2E机制比较成熟&#xff0c;本文章内容更多出自于AutoSAR标准、ISO 26262 和相关文献&#xff0c;这里只捡重点和…

E2E通信保护协议学习笔记

E2E通信保护协议学习笔记 最近在做功能安全方面工作&#xff0c;想了解E2E保护的问题。本文试着说明两个点&#xff1a; 功能安全需要考虑通信失效造成的影响&#xff0c;因此E2E通信保护协议被提出&#xff0c;以满足功能安全要求&#xff1b; 简单介绍E2E通信保护协议机制。…

什么是 E2E 保护 ?

安全在每个领域都是一个永恒的话题&#xff0c;汽车也不例外&#xff0c;而随着最近几年汽车电动化、智能化和网联化的发展&#xff0c;汽车安全也越来越受到用户及开发人员的重视&#xff0c;安全的要素也是多方面的&#xff0c;例如用户可能关心在使用车机系统时的隐私安全、…

HVS颜色空间的提取

在日常的图片处理中&#xff0c;常常要把RGB转成HVS&#xff0c;然后再提取色调、亮度、饱合度通道图片进行操作&#xff0c;网上大多介绍都只是提到转换&#xff0c;如果提取都不准确&#xff0c;我这里记录一下准确提取的方法。V&#xff0c;S提取只要将值乘255就可以&#x…

matlab绘制hsv色轮图

% 生成网格 tListlinspace(0,2.*pi,300); rListlinspace(0,1,100); [theta,R]meshgrid(tList,rList);% 角度及半径转换为坐标 Xcos(thetapi).*R; Ysin(theta).*R; Zzeros(size(X));% 构造hsv网格并转换为rgb网格 hsvMeshcat(3,theta./2./pi,ones(size(R)),R); rgbMeshhsv2rgb(h…

图像融合:Exposure Fusion Using Boosting Laplacian Pyramid

Exposure Fusion Using Boosting Laplacian Pyramid 文章目录 Exposure Fusion Using Boosting Laplacian PyramidJND ModelLuminance AdaptationContrast MaskingOverall JND Model A Hybrid Exposure Weight MeasurementLocal Exposure WeightGlobal Exposure WeightJND-Base…

基于主动视觉机制的深度学习--一个综合池化框架

卷积神经网络(CNN)是深度学习的代表算法之一&#xff0c;长期以来被广泛应用于图像识别领域。它是受到了生物处理过程的启发&#xff0c;通过模仿人类视觉系统(HVS)的工作机制&#xff0c;完成各种视觉任务等。但与HVS相比&#xff0c;CNN不能够像人类一样&#xff0c;迅速的分…

第13章:直方图处理

第13章&#xff1a;直方图处理 一、直方图的含义&#xff1a;1. 普通直方图&#xff1a;2. 归一化直方图&#xff1a; 二、绘制直方图&#xff1a;1. 使用Numpy绘制直方图&#xff1a;2. 使用OpenCV绘制直方图&#xff1a;3. 使用掩码绘制直方图&#xff1a; 三、直方图均衡化&…

通过matlab,基于DCT变换,利用hvs实现水印嵌入强度自适应

我真的会谢&#xff0c;为什么我跑出来是一片黑呀&#xff1f;本matlab小白跪求matlab大佬答疑解惑555555感谢 以下是我的程序&#xff1a; % 读取原始图像和水印图像 I imread(lena.bmp); W imread(waterMark.bmp);% 将图像转为灰度图&#xff0c;并将水印调整为与原始图像…

基于HVS 的结构相似性的视频质量评价

清华大学的汪志兵&#xff0c; 廖煜鹏&#xff0c; 汪 博&#xff0c; 秦明海&#xff0c; 林行刚等人在《通信技术》2010年第2期上发表。   HVS 对不同频率分量的敏感性不同&#xff0c;对视频帧不同部分的关注度也不相同。 为了达到更好的效果&#xff0c;论文中引入3 个因…