分享

AutoSAR E2E 介绍

 ZHAOHUI 2023-10-13 发布于上海

1 E2E简介  

造成故障可能的原因包括:

- 硬件随机故障(CAN Trcv 的寄存器故障)

- 硬件EMC干扰

- 软件设计/运行故障

为了保证接收端 能够接收到正确的数据,或者在收到错误的数据时能够进行识别。

E2E 通信保护主要是指 数据交换应在运行时受到保护,免受通信链路故障的影响。

使用E2E通信保护检测的发送端和接收端之间的故障包括系统性软件故障,如发送端或接收端通信较低层引入的故障,以及MCU硬件、通信外设、收发器、通信线路引入的随机硬件故障。或其他通信基础设施。

此类故障的示例包括随机硬件故障(例如 CAN 收发器的损坏寄存器)、干扰(例如由于 EMC)以及较低通信层的系统故障(例如 RTE、IOC、COM 和网络堆栈)。

         图片

2 E2E 通信保护  

它通过添加控制数据来保护要发送的安全相关数据

它使用该控制数据验证接收到的安全相关数据

它将检查结果提供给接收器,然后必须充分处理它

2.1  通讯保护概述

通信保护机制的一个重要方面是它的标准化和针对不同目的的灵活性。这可以通过一组 E2E 配置文档来解决,这些配置文档定义了保护机制、消息格式和一组配置参数的组合。

此外,一些 E2E 配置文档具有标准的 E2E 变体。 E2E 变体只是与给定 E2E 配置文档一起使用的一组配置选项。例如,在 E2E Profile 1 中,CRC 和计数器的位置是可配置的。 E2E 变体 1A 要求 CRC 从第 0 位开始,计数器从第 8 位开始。

2.2  E2E通信保护原理:

发送方:在传输的数据中添加 CRC 或计数器等控制字段;

接收器:从接收的数据中评估控制字段,计算控制字段(例如,对接收的数据进行 CRC 计算),将计算的控制字段与预期/接收的内容进行比较。

图片

每个 E2E 配置文档都有一组特定的控制字段,具有特定的功能行为和用于检测通信故障的特定属性.

2.3  配置文档概述

E2E 配置文档提供了一组一致的数据保护机制,旨在防止故障模型中考虑的故障。

每个 E2E 配置文档通过不同的算法提供了一种保护通信的替代方法。但是,E2E 配置文档具有相似的接口和行为。

每个 E2E 配置文档使用以下数据保护机制的子集:

① CRC监理提供的CRC;

② 串行计数器在每次传输请求时递增,在接收端检查该值是否正确递增;

③ Alive Counter 在每次传输请求时递增,接收端检查该值是否发生变化,但不检查是否正确递增;

④ 通过端口发送的每个端口数据元素的特定 ID 或每个消息组的特定 ID(全局到系统,其中系统可能包含多个 ECU);

⑤ 数据元素或消息组的每个源(例如,客户端)的特定 ID

⑥ 在方法的端到端通信保护情况下区分请求和响应的消息类型

⑦ 区分正常响应和错误响应的消息结果方法8的端到端通信保护案例。

⑧ 超时检测:(a)接收方通信超时。 (b) 发送方确认超时。

根据使用的通信和网络堆栈,这些机制的适当子集被定义为 E2E 通信配置文档。

上述一些机制在 RTE、COM 和/或通信堆栈中实现。但是,为了减少或避免将安全要求分配给这些模块,不考虑它们:E2E 监督在内部提供所有机制(仅使用 CRC 监督)。

E2E 配置文档可用于 ECU 间和内部的通信。 E2E 配置文档是为特定的通信基础设施指定的,例如 CAN、CAN FD、FlexRay、LIN、以太网。

根据系统,用户从 E2E Supervision 提供的 E2E Profiles 中选择要使用的 E2E Profile。

3  E2E Profile介绍  

E2E 模块可以被三个地方调用,分别是COM 模块中的COM callout ,E2E Transformer模块 和 E2E Protection Wrapper。当 E2E 库被 Transformer 和 Wrapper 调用时,需要在 Transformer 和 Wrapper 中对数据元素进行序列化。在 E2E 模块内部会调用 Crc 模块提供函数。

E2E提供了一下五种保护机制来保护数据安全,如下:

vCRC:发送端根据数据计算CRC值,接收端会重新计算并检查。

vSequence Counter: 发送端每次传输,该值都会加一,接收端会检查该值。

vAlive Counter:发送端每次传输,该值都会加一,接收端会检查该值,通常跟Sequence Counter是一个东西(具体我也不知道有什么区别)。

vData ID:给每个数据或者I-PDU Group编号。

vTimeout detection: 接收者接收超时,发送者响应超时。

  为了同时满足保护机制的标准化和灵活性要求,E2E 模块提供了很多个 profile,包括P01、P02、P04、P05 和 P06,P07, P11, P22,它们之间的最大区别就在于每一个所采用的保护机制是以上五个保护机制的子集。

图片

注:

1.保护机制中包含Length的Profile支持保护不定长数据,其他则不支持。

2. 保护机制中的Data ID List指的是每一条消息的Data ID由Counter值去确定,所以需要静态定义Data ID和Counter的对应表格,这种机制就叫做Data ID List。

3. 当使用 profile4、profile5 和 profile6 保护数据时,如果需要保护的数据较长时,CRC 计算时间会较长,由于 E2E 模块的保护和检测功能都是同步执行的,可能会影响系统的实时性。

4. 每一种profile检测到错误时所采取的措施也是不一样的,至于每一种profile的工作机制大家可以参考官方规范手册《AUTOSAR_SWS_E2ELibrary.pdf》。

4  E2E的状态机  

E2E profile 中对数据的检测只表示在单个周期内数据的正确性,E2E 的状态机则将固定次数内(reception window)的 profile 数据检测结果进行统一管理,并将处理后的状态提供给调用者,调用者可根据状态决定是否使用数据。E2E 各状态转换描述如下:

图片

5  E2E Protection Wrapper  

  前面提到了E2E Protection Wrapper 属于 E2E 三种调用者之一,其位置比较特殊,它不属于BSW层,而是位于 RTE 之上,属于 SWC 层的一部分,其保护的数据需要为信号组的形式。其结构如下:

图片

E2E Protection Wrapper主要功能如下。

  1. 负责将复杂数据元素进行序列化

  2. 负责将调用 E2E Lib 时使用的数据结构实例化和初始化

  3. 调用 E2E 接口对数据元素进行保护

  4. 调用 RTE 接口接收和发送数据

  E2E Protection Wrapper 为每组需要保护的数据元素生成一组接口,发送数据接口E2EPW_Write_

_和 E2EPW_WriteInit_

_, 接 收 数 据 接 口E2EPW_Read_

_和 E2EPW_ReadInit_

_。 当 用 户 发 送 数 据 时 调 用E2EPW_Write_

_()接口,该接口将数据进行序列化,调用 E2E 的接口保护数据,调用 RTE 的数据发送接口发送数据;当用户接收数据时调用 E2EPW_Read_

_()接口,该接口调用 RTE 的数据接收接口接收数据,序列化接收数据,并调用 E2E 接口检查接收数据。

6  E2E 错误反馈方式  

  当用户使用 E2E Protection Wrapper 调用 E2E 时,E2E 中检查的错误通过 E2EProtection Wrapper 中的返回值反馈给用户。该返回值为 32 位的无符号数,各字节代表不同的错误类型。E2EPW_Write**

_和 E2EPW_Read**

_返回值描述如下表。

图片

E2E_PxxCheck 函数检查的错误状态描述如下表:

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多