欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > AUTOSAR图解==>AUTOSAR_SWS_E2ETransformer

AUTOSAR图解==>AUTOSAR_SWS_E2ETransformer

2025/5/1 9:54:49 来源:https://blog.csdn.net/zhangkaidewd/article/details/147341354  浏览:    关键词:AUTOSAR图解==>AUTOSAR_SWS_E2ETransformer

AUTOSAR E2E Transformer详解

基于AUTOSAR标准的端到端通信保护变换器技术解析

目录

  • 1. E2E Transformer概述
    • 1.1 E2E Transformer的作用
    • 1.2 功能特点
    • 1.3 应用场景限制
  • 2. 模块架构
    • 2.1 架构设计
    • 2.2 与其他模块的关系
  • 3. 初始化与状态机
    • 3.1 模块状态流转
    • 3.2 初始化与去初始化
  • 4. 保护功能实现
    • 4.1 保护函数流程
    • 4.2 缓冲区处理
  • 5. 配置与数据流
    • 5.1 配置结构层次
    • 5.2 数据流处理
  • 6. 总结

1. E2E Transformer概述

1.1 E2E Transformer的作用

E2E Transformer是AUTOSAR基础软件中安全类模块的重要组成部分,提供端到端通信保护功能。它在安全相关软件组件间通信过程中确保数据完整性,即使数据需要穿越被视为"黑通道"的QM(合格级)通信栈。

E2E Transformer主要承担以下职责:

  • 根据配置调用E2E Library的保护和检查功能
  • 实例化E2E配置状态数据结构
  • 不修改应用层接口的情况下提供数据保护
  • 作为RTE(运行时环境)和E2E Library之间的桥梁

1.2 功能特点

E2E Transformer的关键功能特点包括:

  • 一对一映射关系:数据元素与I-信号之间存在一对一的映射关系
  • 接收端扇出:一个I-信号可以映射到多个数据元素(接收端)
  • 配置灵活性:支持不同的E2E配置文件(Profile P1/P2/P4/P5/P7/P11/P22)
  • 透明处理:对于不读取状态码的接收SWC完全透明
  • 编译时变体:支持链接时和后构建可选配置变体
  • 跳过E2E检查:可配置某些接收方跳过E2E检查

1.3 应用场景限制

当前E2E Transformer受限于以下应用场景:

  • 仅支持发送者-接收者通信(无客户端-服务器)
  • 仅考虑软件组件间的周期性通信(无事件触发)
  • 仅考虑ECU间通信(通过COM堆栈交换)
  • 仅支持队列发送者-接收者通信的非阻塞特性

2. 模块架构

2.1 架构设计

下图展示了AUTOSAR E2E Transformer的整体架构设计:

在这里插入图片描述

从架构图中可以看出,E2E Transformer处于应用层软件组件与通信栈之间的中间位置,主要由以下几部分组成:

  1. E2EXf_<transformerId>保护函数:在发送端被RTE调用,负责对数据进行E2E保护
  2. E2EXf_<transformerId>检查函数:在接收端被RTE调用,负责对数据进行E2E检查
  3. E2EXf_Init:模块初始化函数,负责初始化状态数据
  4. E2EXf_DeInit:模块去初始化函数,负责清理资源

E2E Transformer封装了E2E配置和处理的复杂性,对调用者(RTE)提供标准的变换器接口。通过这种设计,调用E2E Transformer的组件无需了解内部的E2E处理细节。

2.2 与其他模块的关系

E2E Transformer与周边模块的关系如下:

  • 与RTE的关系:被RTE调用,通过RTE的API(读、写、发送、接收)提供服务
  • 与E2E Library的关系:调用E2E Library提供的功能,执行实际的保护和检查算法
  • 与通信栈的关系:通过通信栈(COM、PDU Router等)传输被E2E保护的数据
  • 与应用层的关系:为安全相关软件组件和QM软件组件提供透明的数据保护

目前,E2E Transformer支持以下RTE函数:

  • Rte_Write/Rte_Read
  • Rte_IWrite/Rte_IRead
  • Rte_Send/Rte_Receive

未来版本计划扩展支持客户端/服务器功能。


3. 初始化与状态机

3.1 模块状态流转

E2E Transformer模块的状态流转如下图所示:

在这里插入图片描述

E2E Transformer模块具有三种主要状态:

  1. 未初始化状态:模块启动的初始状态,此时模块状态标志为FALSE
  2. 已初始化状态:通过调用E2EXf_Init()进入,此时模块状态标志为TRUE
  3. 去初始化状态:通过调用E2EXf_DeInit()进入,重置模块状态标志为FALSE

3.2 初始化与去初始化

E2E Transformer的初始化过程包括两个主要部分:

  1. 状态数据初始化

    • 初始化E2E_PXXCheckStateType类型的状态数据资源
    • 初始化E2E_SMCheckStateType类型的状态数据资源,通过调用相应的E2E_SMCheckInit()方法
  2. 配置数据初始化

    • 初始化EndToEndTransformationDescription配置
    • 初始化EndToEndTransformationISignalProps配置
    • 初始化EndToEndTransformationComSpecProps配置

特别注意:如果E2E Transformer模块未正确初始化(即E2EXf_Init()未成功调用),所有生成的E2E Transformer API都会立即返回E_SAFETY_HARD_RUNTIMEERROR错误。这是一种安全机制,确保只有在模块正确初始化后才能使用其功能。


4. 保护功能实现

4.1 保护函数流程

E2E Transformer的保护函数E2EXf_<transformerId>的处理流程如下图所示:

在这里插入图片描述

保护函数处理流程包括以下关键步骤:

  1. 初始化检查:检查模块是否已初始化,未初始化则返回错误
  2. 参数校验:根据处理模式(原地/非原地)验证输入参数有效性
  3. 缓冲区处理:根据配置参数处理原始头部数据
  4. E2E保护:调用E2E_PXXProtect函数添加E2E保护头信息
  5. 结果返回:根据处理结果返回相应状态码

4.2 缓冲区处理

E2E Transformer支持两种缓冲区处理模式:

  1. 原地处理(In-place)

    • 使用同一缓冲区作为输入和输出
    • 通过向左移动方式为E2E头部腾出空间
    • 性能优势:减少复制操作和缓冲区使用
  2. 非原地处理(Out-of-place)

    • 使用单独的输入缓冲区和输出缓冲区
    • 将输入缓冲区内容复制到输出缓冲区的适当位置
    • 计算并设置新的缓冲区长度

对于原始头部数据的处理,关键参数是upperHeaderBitsToShift,它控制需要移位的原始头部位数。


5. 配置与数据流

5.1 配置结构层次

E2E Transformer使用三级层次的配置结构,如下图所示:

在这里插入图片描述

E2E Transformer的配置结构包括以下三个层次:

  1. EndToEndTransformationDescription

    • 最低优先级配置
    • 配置多个ISignal共享的E2E配置文件
    • 定义Profile类型、upperHeaderBitsToShift等参数
  2. EndToEndTransformationISignalProps

    • 中间优先级配置
    • 定义针对特定ISignal的配置选项
    • 包含dataLengthdataBitPosition等参数
  3. EndToEndTransformationComSpecProps

    • 最高优先级配置
    • 可覆盖特定ReceiverComSpec的配置选项
    • 包含disableEndToEndCheckmaxDeltaCounter等参数

配置的优先级顺序确保了灵活性,允许在不同级别进行配置覆盖。这对于处理接收端扇出场景(一个I-信号映射到多个数据元素)尤为重要。

5.2 数据流处理

E2E Transformer的数据流包含两个主要部分:

  1. 发送方数据流

    • 数据 -> E2EXf_<transformerId> -> E2E_PXXProtect
    • 添加CRC、计数器等E2E头部信息
    • 根据需要处理原始头部数据
  2. 接收方数据流

    • 数据 -> E2EXf_<transformerId> -> E2E_PXXCheck
    • 验证CRC、计数器等E2E头部信息
    • 状态机评估数据安全状态
    • 可配置关闭E2E检查(disableEndToEndCheck=TRUE

特别注意,如果接收方设置了disableEndToEndCheck=TRUE,E2E Transformer将跳过E2E检查,仅执行缓冲区处理操作。这在接收端扇出场景中非常有用,可以让某些QM(合格级)接收者跳过E2E检查。


6. 总结

AUTOSAR E2E Transformer作为安全相关通信的关键组件,提供了在标准通信堆栈上实现端到端数据保护的能力,主要优势包括:

  • 标准接口:遵循AUTOSAR变换器通用规范,提供标准化接口
  • 保护透明性:对不关注E2E状态的软件组件完全透明
  • 灵活配置:支持三层配置结构,提供不同级别的配置覆盖能力
  • 多种处理模式:支持原地和非原地缓冲区处理,适应不同性能需求
  • 可选E2E检查:允许某些接收方跳过E2E检查,适用于QM组件接收数据场景

E2E Transformer通过封装E2E配置和处理的复杂性,简化了安全相关数据传输的实现。它不需要了解E2E内部细节,仅负责根据配置调用E2E Library,使得安全通信的实现更加灵活和标准化。

未来版本中,E2E Transformer将扩展支持客户端/服务器功能,并可能放宽当前的应用场景限制,进一步提升其在AUTOSAR平台中的适用性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com