Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_SOMEIPTransformer.md
T

8.2 KiB

SOME/IP 转换器规范 (Specification of SOME/IP Transformer)

AUTOSAR CP Release 4.4.0 文档 ID 660: AUTOSAR_SOMEIPTransformer

元信息

项目 内容
文档标题 SOME/IP 转换器规范
文档所有者 AUTOSAR
文档责任方 AUTOSAR
文档标识号 660
文档状态 Final
所属 AUTOSAR 标准 Classic Platform
所属标准版本 4.4.0

文档变更历史

日期 版本 变更方 变更说明
2018-10-31 4.4.0 AUTOSAR Release Management 字符串和数组支持增强;字节序处理
2017-12-08 4.3.1 AUTOSAR Release Management 修正/澄清
2016-11-30 4.3.0 AUTOSAR Release Management 增强复杂数据类型
2015-07-31 4.2.2 AUTOSAR Release Management 初始正式版本

目录


1. 介绍

SOME/IP(Scalable service-Oriented MiddlewarE over IP)是一种面向服务的中间件,允许 SWC 进行 Client/Server 通信或 Sender/Receiver 通信。

SOME/IP 转换器是 AUTOSAR Transformer 概念的一部分,负责:

  • 发送端:将 SWC 数据序列化为符合 SOME/IP 协议的字节序列
  • 接收端:从 SOME/IP 字节序列反序列化为 SWC 数据

1.1 范围

SOME/IP 转换器只实现 SOME/IP 协议的一部分:

  • 一部分由 Service Discovery [2] 实现
  • 一部分由 Socket Adaptor [4] 实现
  • 一部分目前在 AUTOSAR 中未实现(见附录 B)

2. 缩略语

缩略语 描述
API Application Programming Interface
AUTOSAR Automotive Open System Architecture
BSW Basic Software
DET Default Error Tracer
IP Internet Protocol
ISignal Inter-ECU Signal
RTE Runtime Environment
SD Service Discovery
SoAd Socket Adaptor
SOME/IP Scalable service-Oriented MiddlewarE over IP
SOME/IP-SD SOME/IP Service Discovery
SWC Software Component
TCP Transmission Control Protocol
TLV Type-Length-Value
UDP User Datagram Protocol
UTF Unicode Transformation Format

3. 相关文档

3.1 输入文档

  • [1] List of Basic Software Modules
  • [2] Specification of Service Discovery
  • [3] General Specification on Transformers
  • [4] Specification of Socket Adaptor
  • [5] Specification of RTE Software
  • [6] Requirements on AUTOSAR Features
  • [7] Specification of Platform Types
  • [8] Software Component Template
  • [9] System Template
  • [10] Requirements on Transformer
  • [11] UTF-8, a transformation format of ISO 10646
  • [12] UTF-16, an encoding of ISO 10646
  • [13] General Specification of Basic Software Modules
  • [14] General Requirements on Basic Software Modules

3.2 相关标准

  • UTF-8、UTF-16 编码规范 [11, 12]

3.3 相关规范

AUTOSAR 提供 General Specification on Transformers [3],同样适用于 SOME/IP 转换器。


4. 约束与假设

4.1 限制

对 SOME/IP 转换器,所有通用 transformer 限制均适用(见 [3])。

4.2 适用车域

当使用 SOME/IP Sender/Receiver 或 Client/Server 通信时,适用于所有车域。


5. 与其他模块的依赖

AUTOSAR RTE [5] 必须存在以执行转换器。

5.1 文件结构

5.1.1 代码文件结构

按 ASWS Transformer General [3] 定义。

5.1.2 头文件结构

  • [SWS_SomeIpXf_00136] ⌈头文件 SomeIpXf[].h 应是 SOME/IP 转换器的主头文件,应包含 TransformerTypes.h 和模块互连头文件 SchM[].h。⌋ (SRS_BSW_00346)

6. 需求可追溯性

需求 ID 描述 满足者
SRS_BSW_00159 工具配置 SWS_SomeIpXf_00185
SRS_BSW_00337 开发错误分类 SWS_SomeIPxf_00184
SRS_BSW_00346 基本模块文件 SWS_SomeIpXf_00136
SRS_BSW_00404 后构建配置 SWS_SomeIpXf_00183
SRS_BSW_00407 版本信息 SWS_SomeIpXf_00180, SWS_SomeIpXf_00181, SWS_SomeIpXf_00182
SRS_Xfrm_00001 转换器处理 RTE 数据 SWS_SomeIpXf_00264, SWS_SomeIpXf_00265, SWS_SomeIpXf_00266
SRS_Xfrm_00002 固定接口 SWS_SomeIpXf_00206 ~ SWS_SomeIpXf_00211
SRS_Xfrm_00004 错误处理 SWS_SomeIpXf_00264, SWS_SomeIpXf_00265, SWS_SomeIpXf_00266
SRS_Xfrm_00008 指定输出格式 SWS_SomeIpXf_00001 ~ SWS_SomeIpXf_00156

[摘要] 完整需求追溯表见原文 PDF 第 12-30 页。


7. 功能规范

7.1 SOME/IP 消息格式

SOME/IP 消息由以下字段组成:

  • Message ID (32 位):Service ID (16) + Method ID (15) + Event Flag (1)
  • Length (32 位):剩余消息长度
  • Request ID (32 位):Client ID (16) + Session ID (16)
  • Protocol Version (8 位):0x01
  • Interface Version (8 位)
  • Message Type (8 位):REQUEST/RESPONSE/NOTIFICATION/REQUEST_NO_RETURN/ERROR
  • Return Code (8 位):E_OK 或错误码
  • Payload (可变):实际数据

7.2 数据序列化

7.2.1 基础数据类型

AUTOSAR 类型 SOME/IP 字节序
uint8 / sint8 1 字节
uint16 / sint16 2 字节 BE/LE
uint32 / sint32 4 字节 BE/LE
uint64 / sint64 8 字节 BE/LE
float32 4 字节 IEEE 754 BE/LE
float64 8 字节 IEEE 754 BE/LE
boolean 1 字节 (0x00/0x01)

7.2.2 字符串

  • 支持 UTF-8 和 UTF-16
  • 固定长度或动态长度(带长度前缀)
  • BOM (Byte Order Mark) 支持

7.2.3 数组

  • 固定大小或动态大小(带长度前缀)
  • 元素递归序列化

7.2.4 结构体

  • 元素按声明顺序序列化
  • 支持嵌套

7.2.5 联合 (Union)

  • 4 字节类型 ID 前缀 + 数据

7.3 TLV (Type-Length-Value) 编码

可选支持 TLV 编码,在结构体中添加 wireType 和 length。

7.4 接收处理

  • [SWS_SomeIpXf_00264] ⌈接收时,SOME/IP 转换器应解析 SOME/IP 头并反序列化 payload。⌋
  • [SWS_SomeIpXf_00265] ⌈错误的消息格式应返回 E_NOT_OK。⌋

7.5 错误分类

7.5.1 转换器返回码

返回码 含义
E_OK 成功
E_NOT_OK 一般错误
E_SER_GENERIC_ERROR 序列化错误
E_SER_MALFORMED_MESSAGE 消息格式错误
E_SER_WRONG_INTERFACE_VERSION 接口版本错误
E_SER_WRONG_PROTOCOL_VERSION 协议版本错误

7.5.2 开发错误

  • [SWS_SomeIPxf_00184] ⌈应分类开发错误。⌋

8. API 规范

8.1 转换器函数

8.1.1 SomeIpXf_

uint8 SomeIpXf_<transformerId>(
    uint8* buffer,
    uint32* bufferLength,
    const <DataType>* dataElement
)
描述 序列化 SWC 数据为 SOME/IP 字节序列

8.1.2 SomeIpXf_Inv_

uint8 SomeIpXf_Inv_<transformerId>(
    const uint8* buffer,
    uint32 bufferLength,
    <DataType>* dataElement
)
描述 反序列化 SOME/IP 字节序列为 SWC 数据

8.2 版本信息

8.2.1 SomeIpXf_GetVersionInfo

void SomeIpXf_GetVersionInfo(Std_VersionInfoType* versioninfo)

9. 配置规范

9.1 配置容器

SOME/IP 转换器配置基于:

  • SOMEIPTransformationDescription (SystemTemplate)
  • SOMEIPTransformationISignalProps
  • SOMEIPTransformationComSpecProps

9.2 主要配置参数

参数 类型 说明
protocol string SOMEIP
version string 1.0.0
transformerClass enum serializer
byteOrder enum BE / LE
serviceInterfaceVersion uint8 接口版本
serializer container 详细序列化配置

9.3 数据类型配置

参数 类型 说明
dataTypeId uint32 类型 ID(用于 union)
dataTypeName string 数据类型名
lengthFieldSize enum 长度字段大小(0/1/2/4 字节)
typeFieldSize enum 类型字段大小

[摘要] 详细配置参数见原文 PDF 第 50-90 页;附录 A 提供完整数据格式示例,附录 B 说明未实现的 SOME/IP 部分。


翻译说明

  • 本译本基于 AUTOSAR CP 4.4.0 的 SOME/IP 转换器规范 (Document ID 660,共 100 页)
  • 摘要标记位置:第 6 章需求追溯、第 9 章配置参数和附录