AUTOSAR图解==>AUTOSAR_ASWS_TransformerGeneral

AUTOSAR Transformer模块详解

AUTOSAR经典平台通用转换器规范分析

目录


1. AUTOSAR Transformer概述

1.1 Transformer的作用

Transformer(转换器)是AUTOSAR经典平台中的一个关键模块,它提供了数据转换机制,使AUTOSAR系统能够线性化和转换数据。Transformer主要用于以下场景:

  • 内部ECU通信数据的序列化和反序列化
  • 网络通信数据的安全保护
  • 特定应用场景下的数据转换需求
  • 跨域通信的数据格式适配

Transformer通过提供清晰定义的函数签名,为每个标记为需要转换的通信关系(基于端口或基于信号)服务。无论是客户端/服务器操作还是发送者/接收者接口,转换器的输出始终是线性字节数组。

1.2 基本概念

AUTOSAR Transformer模块基于以下核心概念:

  • 转换器链:多个转换器级联形成的处理流程
  • 序列化转换:将结构化数据转换为线性字节数组
  • 安全转换:为数据添加安全保护机制(如校验和、冗余数据)
  • 安保转换:为数据添加安全措施(如加密、认证)
  • 自定义转换:应用特定场景的定制转换逻辑

2. Transformer架构设计

2.1 架构层次

AUTOSAR Transformer的整体架构设计如下图所示,展现了其在AUTOSAR系统中的位置和内部结构:

在这里插入图片描述

图2.1 AUTOSAR Transformer模块架构图

该架构图展示了Transformer模块在AUTOSAR系统中的总体结构,包括:

  1. 分层设计

    • 应用层(黄色):包含RTE数据传输组件,负责与应用软件交互
    • 转换器层(蓝色):包含转换器接口、转换器链和各类转换器实现
    • 底层通信(绿色):包含COM模块和其他通信模块
  2. 核心组件

    • RTE数据传输:负责将应用数据传递给转换器接口
    • Transformer接口:统一的转换器调用接口
    • 转换器链:转换器的级联执行机制
    • 缓冲区处理:管理数据转换过程中的缓冲区
    • 错误处理:处理转换过程中的各种错误情况
  3. 转换器类别

    • Serializer(序列化器):将结构化数据转换为字节数组
    • Safety(安全):添加安全保护机制
    • Security(安保):添加加密和认证机制
    • Custom(自定义):针对特定需求的自定义转换逻辑

2.2 核心组件

Transformer架构中的核心组件各司其职:

  • 转换器接口:提供统一的API,接收来自RTE的数据,并调用转换器链
  • 转换器链:允许多个转换器级联,第一个转换器从RTE获取数据,后续转换器使用前一个转换器的输出作为输入
  • 缓冲区处理:负责转换过程中的内存管理,确保数据的正确线性化和序列化
  • 错误处理:监控转换过程中的异常情况,并触发适当的错误报告和恢复动作

2.3 转换器链

转换器链是AUTOSAR Transformer的核心机制,它允许多个转换器按照配置的顺序依次处理数据。这种链式处理模式具有以下特点:

  • 第一个转换器从RTE获取应用数据
  • 后续转换器使用前一个转换器的输出作为输入
  • 所有后续转换器具有相同的函数签名,接收和输出字节数组
  • 转换器链支持灵活的功能扩展,可以根据需要添加新的转换功能
  • 错误处理贯穿整个链条,任一环节出错都会中断处理流程

3. Transformer配置结构

3.1 配置类详解

AUTOSAR Transformer采用标准的AUTOSAR配置结构,下图展示了Transformer的配置类模型:

在这里插入图片描述

图3.1 AUTOSAR Transformer配置类图

该配置类图展示了Transformer模块的主要配置类及其关系:

  1. XfrmGeneral

    • 转换器的全局配置容器
    • 包含头部ID、路由组引用和DEM事件配置等参数
    • 与其他配置类形成一对多的包含关系
  2. XfrmImplementationMapping

    • 定义转换器的具体实现映射
    • 包含最大输入输出长度、消息头大小、是否支持逆变换等参数
    • 被XfrmSignal引用以确定使用哪种转换器实现
  3. XfrmSignal

    • 定义需要进行转换的信号配置
    • 包含ID、转换器类型和最大输出长度等参数
    • 通过引用XfrmImplementationMapping确定具体实现
  4. XfrmDemEventParameterRefs

    • 定义转换器使用的诊断事件参数引用
    • 用于错误报告和诊断
  5. XfrmTransformerClassEnum

    • 定义转换器的类型枚举
    • 包含四种类型:序列化器、安全、安保和自定义

3.2 配置参数说明

各主要配置类的关键参数说明如下:

XfrmGeneral关键参数

  • XfrmHeaderId:转换器头部标识符
  • XfrmRoutingGroupRef:路由组引用
  • XfrmLongDataEnabled:是否启用长数据支持
  • XfrmDemEventEnabled:是否启用DEM事件报告
  • XfrmInsufficientLengthErrorDemEventId:缓冲区长度不足错误的DEM事件ID
  • XfrmMalformedMessageErrorDemEventId:畸形消息错误的DEM事件ID

XfrmImplementationMapping关键参数

  • XfrmImplementation:具体的转换器实现
  • XfrmMaxInOutLength:最大输入输出长度
  • XfrmTransformerMessageHeaderSize:转换器消息头大小
  • XfrmIsInverseAvailable:是否支持逆变换
  • XfrmIsInitRequired:是否需要初始化
  • XfrmPrefix:转换器函数前缀

XfrmSignal关键参数

  • XfrmId:转换器信号ID
  • XfrmTransformerClass:转换器类型
  • XfrmMaxOutgoingLength:最大输出长度
  • XfrmPortRef:端口引用
  • XfrmImplMappingRef:实现映射引用

3.3 转换器类型

AUTOSAR Transformer标准定义了四种转换器类型:

  1. 序列化器(TRANSFORMER_CLASS_SERIALIZER)

    • 将结构化数据转换为线性字节数组
    • 通常作为转换器链的第一个元素
    • 反向操作将字节数组恢复为结构化数据
  2. 安全转换器(TRANSFORMER_CLASS_SAFETY)

    • 添加安全保护机制,如校验和、冗余数据
    • 提高数据传输的可靠性和安全性
    • 检测数据传输中的错误和篡改
  3. 安保转换器(TRANSFORMER_CLASS_SECURITY)

    • 添加加密和认证机制
    • 保护数据免受未授权访问和篡改
    • 验证数据来源和完整性
  4. 自定义转换器(TRANSFORMER_CLASS_CUSTOM)

    • 针对特定应用场景的定制转换逻辑
    • 允许开发者实现额外的转换功能
    • 扩展标准转换器的功能

4. Transformer交互流程

4.1 初始化阶段

AUTOSAR Transformer的交互流程包括初始化、数据传输和逆向转换三个主要阶段,下图展示了完整的交互流程:

在这里插入图片描述

图4.1 AUTOSAR Transformer序列交互图

初始化阶段是Transformer启动时的准备阶段,包括以下步骤:

  1. 应用程序Transformer接口发送初始化请求
  2. Transformer接口依次调用各个转换器的初始化函数<Mip>_Init()
  3. 各转换器完成初始化,并返回初始化状态
  4. Transformer接口应用程序报告初始化完成状态

初始化阶段主要完成以下工作:

  • 分配必要的内存资源
  • 初始化转换器内部状态
  • 建立转换器间的连接关系
  • 加载配置参数

4.2 数据传输阶段

数据传输阶段是Transformer的核心处理流程,包括以下步骤:

  1. 应用程序将数据发送到RTE
  2. RTE调用Transformer接口
  3. Transformer接口按顺序调用转换器链中的转换器:
    • 首先调用序列化转换器,将结构化数据转换为字节数组
    • 如果序列化成功且配置了安全转换器,则调用安全转换器
    • 如果安全转换成功且配置了安保转换器,则调用安保转换器
  4. 各转换器处理数据并返回状态
  5. Transformer接口将最终转换后的数据返回给RTE
  6. RTE将数据传递给COM模块进行通信

数据传输阶段的特点:

  • 转换器按照配置的顺序依次执行
  • 任一转换器出错,会中断后续转换并报告错误
  • 每个转换器都会检查输入数据并验证处理结果
  • 转换过程中出现的错误会通过错误处理机制报告给应用程序

4.3 逆向转换阶段

逆向转换阶段是数据接收和恢复的过程,包括以下步骤:

  1. COM模块接收数据并传递给RTE
  2. RTE调用Transformer接口的逆转换接口
  3. Transformer接口按照与数据传输相反的顺序调用转换器的逆转换函数:
    • 如果配置了安保转换器,首先调用其逆转换函数<Mip>_Inv_<transformerId>解密数据
    • 如果配置了安全转换器,然后调用其逆转换函数<Mip>_Inv_<transformerId>验证数据
    • 最后调用序列化转换器的逆转换函数<Mip>_Inv_<transformerId>,将字节数组转换回结构化数据
  4. 各转换器处理数据并返回状态
  5. Transformer接口将恢复的原始数据返回给RTE
  6. RTE将数据传递给应用程序

逆向转换阶段的关键点:

  • 转换器的调用顺序与正向转换相反
  • 每个转换器都需要支持逆转换功能(如果在配置中启用)
  • 逆转换过程中的错误同样会触发错误处理机制
  • 成功的逆转换将完全恢复原始的应用数据

5. Transformer错误处理机制

5.1 错误类型分类

AUTOSAR Transformer定义了系统化的错误处理机制,下图展示了错误处理的状态转换关系:

在这里插入图片描述

图5.1 AUTOSAR Transformer错误处理状态图

该状态图展示了Transformer模块的错误处理流程,包括以下几类错误:

  1. 序列化器错误

    • XFRM_E_INVALID_PDU:无效的PDU数据
    • XFRM_E_BUFFER_OVERFLOW:缓冲区溢出
    • XFRM_E_SERIALIZATION_ERROR:序列化过程中的一般错误
  2. 安全转换器错误

    • XFRM_E_SAFETY_CHECKSUM:校验和错误
    • XFRM_E_SAFETY_SECOC:安全通信错误
    • XFRM_E_SAFETY_SEQCOUNTER:序列计数器错误
    • XFRM_E_SAFETY_FRESHNESS:新鲜度值错误
    • XFRM_E_MALFORMED_MESSAGE:畸形消息错误(扩展生产错误)
  3. 安保转换器错误

    • XFRM_E_SECURITY_AUTHENTICATION:认证错误
    • XFRM_E_SECURITY_ENCRYPTION:加密/解密错误
  4. 自定义转换器错误

    • XFRM_E_CUSTOM_ERROR:自定义错误

这些特定错误类型进一步分为三个主要类别:

  • 开发错误:在开发阶段检测到的配置或实现问题
  • 生产错误:在运行时发生的常规错误
  • 扩展生产错误:特殊的严重错误情况,如畸形消息

5.2 错误处理流程

Transformer错误处理遵循以下流程:

  1. 错误检测

    • 转换器监控其操作过程
    • 当检测到异常情况时,转换到相应的错误状态
  2. 错误分类

    • 将检测到的错误分类为特定错误类型
    • 根据错误类型确定处理方式
  3. 错误报告

    • 如果启用了DEM事件报告(XfrmDemEventEnabled = TRUE),则向DEM报告错误
    • 使用配置的DEM事件ID将错误信息发送给诊断事件管理器
  4. 错误恢复

    • 对于可恢复的错误,执行恢复动作
    • 成功恢复后,转换器返回正常操作状态
    • 对于严重错误,可能导致操作终止

5.3 错误恢复策略

Transformer模块针对不同类型的错误采用不同的恢复策略:

  1. 开发错误处理

    • 开发错误通常在开发阶段检测
    • 默认情况下,开发错误会导致程序终止
    • 在生产环境中,开发错误应该不会出现
  2. 生产错误处理

    • 生产错误是运行时可能出现的错误
    • 根据错误的严重程度,可能采取不同的处理方式:
      • 重试操作
      • 使用默认值
      • 报告错误并继续
      • 报告错误并终止当前操作
  3. 扩展生产错误处理

    • 扩展生产错误表示严重的问题
    • 通常会导致DEM错误报告
    • 根据安全策略,可能需要执行特定的恢复动作
  4. 自主错误响应

    • 转换器可以配置为具有自主错误响应能力
    • 在检测到错误时,转换器可以自动执行预定义的响应动作
    • 响应动作可能包括重试、重置或使用备用数据

6. 总结

AUTOSAR Transformer模块是AUTOSAR经典平台中的一个关键组件,提供了强大而灵活的数据转换机制。本文详细分析了Transformer的架构设计、配置结构、交互流程和错误处理机制。

Transformer的主要特点和优势包括:

  1. 灵活的架构设计

    • 转换器链机制支持多种转换器的级联组合
    • 标准化的接口简化了转换器的实现和使用
    • 四种转换器类别满足不同的应用需求
  2. 标准化的配置结构

    • 符合AUTOSAR配置标准的配置类设计
    • 丰富的配置参数支持多样化的功能定制
    • 转换器实现与配置的清晰分离
  3. 完整的交互流程

    • 明确的初始化、数据传输和逆向转换阶段
    • 标准化的函数签名简化了集成工作
    • 灵活的数据流向支持复杂的通信场景
  4. 健壮的错误处理

    • 系统化的错误分类与管理
    • 与诊断事件管理器的无缝集成
    • 多层次的错误恢复策略

Transformer模块在AUTOSAR系统中的应用场景广泛,包括:

  • ECU内部通信的数据序列化与反序列化
  • 网络通信中的数据安全保护
  • 跨域通信的数据格式转换
  • 特定应用的数据处理需求

通过Transformer模块,AUTOSAR系统能够实现灵活、安全、高效的数据转换和通信,为现代汽车电子系统提供强大的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiGer666

慧眼~施主!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值