当前位置: 首页 > news >正文

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平台中的适用性。

相关文章:

  • Sigma-Delta ADC(ΣΔ-ADC)中的量化器简介
  • YOLOv11改进:基于小波卷积WTConv的大感受野目标检测网络-
  • 2048小游戏C++板来啦!
  • 3.Chromium指纹浏览器开发教程之chromium119版本源码拉取
  • Python实例题:Python批量获取王者荣耀皮肤
  • Leetcode刷题 由浅入深之哈希表——349. 两个数组的交集
  • 一级指针的介绍
  • 如何使用Labelimg查看已经标注好的YOLO数据集标注情况
  • webgl入门实例-12WebGL 投影矩阵 (Projection Matrix)基本概念
  • 电子级化学品除杂的必要性
  • java线程池原理及使用和处理流程
  • 【AI部署】腾讯云GPU-常见故障—SadTalker的AI数字人视频—未来之窗超算中心 tb-lightly
  • ESP8266简单介绍
  • cpolar 内网穿透 实现公网可以访问本机
  • 智能体时代的产业范式确立,中国企业以探索者姿态走出自己的路
  • 【卡洛诗】成为平价市场中的标杆西餐厅
  • 守护进程编程、GDB调试以及外网连接树莓派
  • 关于@Scheduled注解的参数
  • NOIP2015提高组.信息传递
  • 工厂方法模式详解及在自动驾驶场景代码示例(c++代码实现)
  • 徐州沛县一村委会因无资质处理固废,被环保部门罚款19万元
  • 观察|美军在菲律宾部署新导弹,试图继续构建“导弹链”
  • 亲诚惠容行大道,命运与共开新篇——中共中央政治局委员、外交部长王毅谈习近平主席对越南、马来西亚、柬埔寨进行国事访问
  • 老人在健身中心晕倒获AED急救,上海检察机关为何被感谢?
  • 瑞士工业巨头ABB拟分拆机器人业务独立上市,市场份额全球第二
  • 习近平抵达柬埔寨首都金边