E2E通信保护协议学习笔记

article/2025/10/17 2:48:52

E2E通信保护协议学习笔记

最近在做功能安全方面工作,想了解E2E保护的问题。本文试着说明两个点:

  • 功能安全需要考虑通信失效造成的影响,因此E2E通信保护协议被提出,以满足功能安全要求;

  • 简单介绍E2E通信保护协议机制。

一、E2E通信保护协议的由来

如果系统的功能安全依赖于数据的完整性,那么发送方(Sender)和接收方(Receiver)之间的数据交换就可以对系统的功能安全造成影响。根据ISO 26262 Part 6的 附录D:信息交换章节,对于信息交换的接收方或发送方,一般需要考虑以下失效模式:

引自[1]

这里,对上述的这些失效模式稍作解释:

  • 信息重复:多次收到同一条信息;

  • 信息丢失:传输的信息流中,信息或部分信息被移除;

  • 信息延迟:信息接收比预期晚;

  • 信息插入:传输的信息流中,额外信息被插入;

  • 伪装:非真实信息被接收方接收为真实信息;

  • 不正确寻址:接收了不正确的发送方的信息或被不正确的接收方接收了信息;

  • 信息序列不正确:修改了传输的信息流中的信息序列;

  • 信息损坏:改变信息;

  • 从发送方发送到多个接收方的非对称信息:接收方从同一发送方接收到了不同信息;

  • 来自发送方的信息仅由一部分接收方接收:有些接收方没有接收到信息;

  • 阻塞访问通信通道:通信通道的访问被阻塞。

这些失效一般由软件故障,随机硬件故障和瞬态故障引起。

  1. 软件故障:像通信栈模块,RTE等软件可能存在故障,而这些故障是系统性的,可能发生在系统生命周期的规范,设计,制造,运行和维护的任一阶段,并且在情况(例如根本原因的触发条件)相同时,它们总会出现,其后果可能导致通信失败,比如发送数据中断,接收器溢出等故障。

  2. 随机硬件故障:通常是电气过载、退化、老化的结果或暴露于硬件部件的外部影响(例如环境压力)。随机硬件故障无法完全避免,但可以评估其概率并且可以实施适当的技术措施(比如诊断)。

  3. 瞬态故障:由外部影响或环境应力引起,包括EMI、ESD、湿度、腐蚀、温度或机械应力(比如振动)等影响。

对应基于AUTOSAR架构的通讯部分,上述的故障表现如下示意:

引自[4]

上图包括软硬件导致的通信失效,其中硬件导致的通信失效有:

  • H1:通信的物理网络存在故障;

  • H2:是通信网络的接口存在电磁兼容性问题;

  • H3:微控制器故障,例如上下文切换时寄存器失效等

软件导致的通讯失效有:

  • S1: RTE生成代码出错

  • S2: COM服务层代码出错;

  • S3: 通信接口层和通信的驱动层之间可能存在问题;

  • H3:微控制器故障,例如上下文切换时寄存器失效等.

针对这些通讯失效,在AUTOSAR中就提出了E2E通信保护协议,即在系统运行过程中,动态地识别软硬件故障引起通信失效,保证ECU之间以及ECU内部不同核之间,不同SWC 之间数据的安全通信。

引自[2]

基于E2E需求,E2E通信保护协议采用结合CRC(循环冗余校验),Counter(计数器),Timeout monitoring(超时监控)和Data ID来实现,如下所示:

E2E保护机制检测出的失效模式
Counter信息的重复,丢失,插入,不正确的序列,阻塞
Time monitoring信息的丢失,延迟,阻塞
Data ID + CRC信息的伪装,不正确寻址,插入
CRC信息的损坏,不对称

具体这些机制是如何能够检测出对应的失效呢?

考虑到E2E通信保护协议需要涵盖各种大小的交换数据和不同类型的物理总线介质。因此就创建了多种E2E profiles(配置文件),即每个profiles包括一组保护机制,如下所示:

引自[3]

在[3] E2E Protocol Specification 中可以详细了解到8中E2E profiles 1,2,4,5,6,7,11,22的定义。这些E2E profiles是根据ISO26262开发,用于与安全相关的项目,没有特定于某控制器,可以满足ASIL D需求的安全相关通信(之前思考一个问题:对于不同ASIL等级,需要采用哪种E2E profiles,我觉得都可以,因为每种E2E profiles都满足ASIL D等级,就看各家如何选取,谁有补充么?)。

二、 E2E通信保护协议机制

以E2E profiles 2为例,它包含3个保护方式:分别是循环冗余校验,计数器和数据ID,如下:

引自[3]

这四种E2E机制可检测出的失效如下:

引自[3]

这套机制是如何运行呢?借助[7]解释如下:

[7]: 通过E2E Profile 2处理后的数据 Buffer分布如下所示。E2E Profile 2规定Data[0]必须存放CRC校验和,Data[1]的低4个位必须存放Sequence Counter。从Data[2]开始存放需要保护的数据。

[7]: 其中参与CRC校验和计算的字段可以根据用户配置而定, 我们采用的是下图的方式,校验和包含Data ID部分和排除 CRC存储字段外的所有的数据,虽然Data ID并没有显性的通过报文发送出去,但是它的校验信息包含在CRC中,其中需要填充的部分统一填充为0xF。

[7]: 采用E2E Profile 2安全通信需要 额外的引入两个数据元素,分别是 Sequence CounterCRC校验和,它们 必须随着被保护数据一起从发送端传送到接收端。在进行软件组件接口定义的时候必须定义相关的数据元素,尤其是在跨ECU通信中还必须在DBC中预留出相关的信号用于传输Sequence Counter与CRC校验和。
E2E ProfiIe 2的发送端和接收端,分别维护着一个E2E 发送端的状态机和一个E2E接收端的状态机。在发送端, E2E 会根据发送端的状态机,首先计算Sequence Counter并写入数据Buffer,然后根据被保护的数据、静态配置好的数据ID列表以及Sequence counter,计算CRC校验和,并写入发送 Buffer。完成上述操作后,E2E就返回数据Buffer给调用者, 最终由调用者将CRC校验和、Sequence Counter与被保护的数据一起发送出去。被保护的数据并不会被E2E改变, E2E并不负责加密
在接收端,E2E根据接收端状态机先计算出预期的Sequence Counter,再根据静态配置好的数据ID列表、Sequence Counter和接收到的数据,计算出CRC校验和。这里,接收到的数据仅仅指发送端发送的需要被保护的数据。
计算出CRC校验和后,E2E会与发送端发过来的CRC校验和进行比较,如果一致,则继续判断Sequence Counter是否与期望的Sequence Counter一致。 如果校验结果完全正确或者在容忍的范围内,则E2E Profile 2返回正确的返回值;如果校验结果有问题, 则需要进一步解析出错的类型,并将错误状态更新到E2E的状态机。
E2E只做数据准确性的校验,至于出现数据丢失或者重复,应用层是否采用此数据,那是应用层数据访问的策略,与E2E无关。

三、待解释问题

  • 为什么根据CRC,Counter,ID可以检测出相应的通讯失效?

  • AUTOSAR是怎么实现E2E通信保护协议机制?

  • 待理解更深入,能更通俗易懂地更新本文,比如失效模式的详细解释。

  • 。。。。。。

附录1:CRC计算原理

CRC(Cyclic Redundancy Check),即循环冗余检验,是基于数据计算一组校验码码,用于核对数据传输过程中是否被更改或传输错误。假设有一组原始数据:1101011011,如何获取其CRC?见下图右方:

第1步:选取CRC算法,即生成多项式,也就是E2E profiles就采用了CRC-8,CRC-16, CRC-32。像E2E profile 1采用x8 + x4 + x3 + x2 + 1,即1 0001 1101。此处选用4位CRC算法,x4 + x1 + 1,即1 0011。

第2步:因此选用4位CRC算法,1 0011,注意宽度是4位,不是5位,这时原始数据需要在右边填充4位,0000,后面用来存放4位CRC,变为:1101011011 0000。

第3步,使用XOR运算,计算CRC,过程如下图左方:

第4步:将CRC更新到原始数据的右4位,则数据变为:11010110111110。这个数据将发送给其他控制器。

Reference:

[1] ISO26262-6: Road vehicles - Functional safety Part 6: Product development at the software level

[2] Requirements on E2E

[3] E2E Protocol Specification

[4] Specification of SW-C End-toEnd Communication Protection Library

[5] Specification of Module E2E Transformer

[6] Specification of CRC Routines

[7] 基于AUTOSAR的点到点安全通信的实现


http://chatgpt.dhexx.cn/article/CPVgURpT.shtml

相关文章

什么是 E2E 保护 ?

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

HVS颜色空间的提取

在日常的图片处理中,常常要把RGB转成HVS,然后再提取色调、亮度、饱合度通道图片进行操作,网上大多介绍都只是提到转换,如果提取都不准确,我这里记录一下准确提取的方法。V,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)是深度学习的代表算法之一,长期以来被广泛应用于图像识别领域。它是受到了生物处理过程的启发,通过模仿人类视觉系统(HVS)的工作机制,完成各种视觉任务等。但与HVS相比,CNN不能够像人类一样,迅速的分…

第13章:直方图处理

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

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

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

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

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

一种基于HVS特性的视频质量评测方法

本篇论文是由厦门大学的袁飞,黄联芬,姚彦发表于《光电工程》2008年1月刊上。   本文针对视频质量的评测应用,通过在视频帧内图像和帧间图像的处理过程中引入人眼视觉系统(HVS)的主要特性,克服传统PSNR 算法在序列质量检测应用方…

数字水印算法matlab源程序 matlab版数字水印算法 /DCT/DWT/LSB/HVS/W-SVD数字水印源码 数字水印的嵌入和提取 W-SVD数字水印实现

发以下多套系统源码: 1、matlab版数字水印算法 2、MATLAB数字水印 源代码文档 3、数字水印技术matlab代码 4、数字水印 JPEG压缩 matlab代码 5、数字水印 添加噪声 matlab代码 6、各种数字水印的matlab源代码(有DFT,DCT,小波变换等…

基于hvs图像水印matlab和psnr nc的计算 首先读取图像和水印,进行图像加印

基于hvs图像水印matlab和psnr nc的计算 首先读取图像和水印,进行图像加印 然后进行攻击 攻击方式有白噪声,裁剪,旋转10度,压缩,和无攻击,然后最后还原水印。 ID:31314617581701451好好学习

opencv RGB2HVS

RGB色彩空间和HSV色彩空间的理解 本文的结构如下: 1、RGB色彩空间 2、HSV色彩空间(附HSV颜色分量范围表) 3、RGB到HSV的转换的Demo   使用OpenCV实现RGB转HSV,并通过滑动条动态设定HSV阈值   自己写程序,实现…

HVS颜色模型(六角锥体模型)

色调(H):用角度度量,取值范围为0~360,从红色开始按逆时针方向计算,红色为0,绿色为120,蓝色为240、他们的补色是:黄色为60,青色为180,紫色为300&am…

ISP——HVS

本片博文是一篇笔记,是在看论文的时候碰到下面一段话,反复把论文看了三遍才弄懂,刚开始老觉得和gamma的特性是反的,还一度怀疑论文些错了,经过反复琢磨才弄明白,故此写下笔记记录 Higher gap in intensity…

HVS的真相

HVS的真相 人眼视觉系统( human visual system,HVS)是人类通过感知光线形成视觉的系统,是人类捕获外界信息最关键的系统之一。HVS在视频编码的主观优化中发挥重要作用。关于HVS有以下特性不得不知: HVS对高频信号的失…

人类视觉系统(Human Visual System,HVS)

人类通过人类视觉系统(HVS)来获取外界图像信息,当光辐射刺激人眼时,将会引起复杂的生理和心理变化,这种感觉就是视觉。 人类视觉系统(HVS)作为一种图像处理系统,它对图像的认知是非均…

数据库三范式与反范式详解(一看就懂)

目 录 范式与反范式1.第一范式2.第二范式3.第三范式4.反范式 范式与反范式 范式化设计 通过满足下面提出的三条范式规则,尽可能的避免出现数据冗余 因为数据冗余会带来,数据UPDATE更新遗漏问题(毕竟SQL是人写的~) 反范式化设计 目…

数据库三范式举例详解

整理不易,转发请注明出处,请勿直接剽窃! 点赞、关注、不迷路! 摘要: 1NF、2NF、3NF 关系型数据库一共有6种范式,越高的范式数据库冗余越小。一般情况下,在关系型数据库中通常将数据规范化为第三…

第十章 数据库三范式

概念 • 必须保证数据库设计的合理性 ​ 数据库设计关系整个系统的架构,关系到后续开发效率和运行效率 ​ 数据库的设计主要包含了设计表结构和表之间的联系 • 如何是合理数据库 ​ 结构合理 ​ 冗余较小 ​ 尽量避免插入删除修改异常 • 如何才能保证数据库设计水…