P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,307 @@
|
||||
# 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. 介绍](#1-介绍)
|
||||
- [2. 缩略语](#2-缩略语)
|
||||
- [3. 相关文档](#3-相关文档)
|
||||
- [4. 约束与假设](#4-约束与假设)
|
||||
- [5. 与其他模块的依赖](#5-与其他模块的依赖)
|
||||
- [6. 需求可追溯性](#6-需求可追溯性)
|
||||
- [7. 功能规范](#7-功能规范)
|
||||
- [8. API 规范](#8-api-规范)
|
||||
- [9. 配置规范](#9-配置规范)
|
||||
|
||||
---
|
||||
|
||||
## 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[_<Ie>].h 应是 SOME/IP 转换器的主头文件,应包含 TransformerTypes.h 和模块互连头文件 SchM_<bsnp>_[<vi>_<ai>].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_<transformerId>
|
||||
|
||||
```c
|
||||
uint8 SomeIpXf_<transformerId>(
|
||||
uint8* buffer,
|
||||
uint32* bufferLength,
|
||||
const <DataType>* dataElement
|
||||
)
|
||||
```
|
||||
|
||||
| 描述 | 序列化 SWC 数据为 SOME/IP 字节序列 |
|
||||
| --- | --- |
|
||||
|
||||
#### 8.1.2 SomeIpXf_Inv_<transformerId>
|
||||
|
||||
```c
|
||||
uint8 SomeIpXf_Inv_<transformerId>(
|
||||
const uint8* buffer,
|
||||
uint32 bufferLength,
|
||||
<DataType>* dataElement
|
||||
)
|
||||
```
|
||||
|
||||
| 描述 | 反序列化 SOME/IP 字节序列为 SWC 数据 |
|
||||
| --- | --- |
|
||||
|
||||
### 8.2 版本信息
|
||||
|
||||
#### 8.2.1 SomeIpXf_GetVersionInfo
|
||||
```c
|
||||
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 章配置参数和附录
|
||||
Reference in New Issue
Block a user