P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,298 @@
|
||||
# SOME/IP 传输协议规范 (Specification of SOME/IP Transport Protocol)
|
||||
|
||||
> **AUTOSAR CP Release 4.4.0**
|
||||
> **文档 ID 893: AUTOSAR_SWS_SOMEIPTransportProtocol**
|
||||
|
||||
## 元信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 文档标题 | SOME/IP 传输协议规范 |
|
||||
| 文档所有者 | AUTOSAR |
|
||||
| 文档责任方 | AUTOSAR |
|
||||
| 文档标识号 | 893 |
|
||||
| 文档状态 | Final |
|
||||
| 所属 AUTOSAR 标准 | Classic Platform |
|
||||
| 所属标准版本 | 4.4.0 |
|
||||
|
||||
## 文档变更历史
|
||||
|
||||
| 日期 | 版本 | 变更方 | 变更说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 引入并完善 SOME/IP-TP 分段协议 |
|
||||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 初版 |
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
- [1. 介绍](#1-介绍)
|
||||
- [2. 缩略语](#2-缩略语)
|
||||
- [3. 相关文档](#3-相关文档)
|
||||
- [4. 约束与假设](#4-约束与假设)
|
||||
- [5. 与其他模块的依赖](#5-与其他模块的依赖)
|
||||
- [6. 需求可追溯性](#6-需求可追溯性)
|
||||
- [7. 功能规范](#7-功能规范)
|
||||
- [8. API 规范](#8-api-规范)
|
||||
- [9. 时序图](#9-时序图)
|
||||
- [10. 配置规范](#10-配置规范)
|
||||
|
||||
---
|
||||
|
||||
## 1. 介绍
|
||||
|
||||
本规范规定了 AUTOSAR 基础软件模块 **SOME/IP 传输协议** (SomeIpTp) 的功能、API 和配置。
|
||||
|
||||
SOME/IP-TP 是 SOME/IP 协议的扩展,用于在 UDP 上传输超过 1400 字节(MTU 上限)的大型 SOME/IP 消息。它通过将消息分段为多个 UDP 包来实现。
|
||||
|
||||
### 1.1 角色
|
||||
|
||||
- 发送端:将大型 SOME/IP 消息分段为多个 SOME/IP-TP 段
|
||||
- 接收端:重组分段为完整 SOME/IP 消息
|
||||
|
||||
---
|
||||
|
||||
## 2. 缩略语
|
||||
|
||||
| 缩略语 | 描述 |
|
||||
| --- | --- |
|
||||
| API | Application Programming Interface |
|
||||
| BSW | Basic Software |
|
||||
| DET | Default Error Tracer |
|
||||
| ECU | Electronic Control Unit |
|
||||
| IPduM | I-PDU Multiplexer |
|
||||
| MTU | Maximum Transmission Unit |
|
||||
| PDU | Protocol Data Unit |
|
||||
| PduR | PDU Router |
|
||||
| SOME/IP | Scalable service-Oriented MiddlewarE over IP |
|
||||
| SOME/IP-TP | SOME/IP Transport Protocol |
|
||||
| TCP | Transmission Control Protocol |
|
||||
| UDP | User Datagram Protocol |
|
||||
|
||||
---
|
||||
|
||||
## 3. 相关文档
|
||||
|
||||
### 3.1 输入文档
|
||||
|
||||
- [1] List of Basic Software Modules
|
||||
- [2] Layered Software Architecture
|
||||
- [3] General Requirements on Basic Software Modules
|
||||
- [4] General Specification of Basic Software Modules
|
||||
- [5] Specification of Communication Stack Types
|
||||
- [6] Specification of PDU Router
|
||||
- [7] Specification of Socket Adaptor
|
||||
- [8] Specification of SOME/IP Transformer
|
||||
|
||||
### 3.2 相关标准
|
||||
- SOME/IP Protocol Specification
|
||||
|
||||
### 3.3 相关规范
|
||||
|
||||
AUTOSAR SWS BSW General [4] 适用。
|
||||
|
||||
---
|
||||
|
||||
## 4. 约束与假设
|
||||
|
||||
### 4.1 限制
|
||||
|
||||
SomeIpTp 仅适用于 UDP 上的 SOME/IP。TCP 不需要分段(TCP 已分段)。
|
||||
|
||||
### 4.2 适用车域
|
||||
适用于所有车域。
|
||||
|
||||
---
|
||||
|
||||
## 5. 与其他模块的依赖
|
||||
|
||||
- **PduR**:与上层 SWC/transformer 链接
|
||||
- **SoAd**:与下层 UDP 链接
|
||||
- **DET**:错误上报
|
||||
|
||||
---
|
||||
|
||||
## 6. 需求可追溯性
|
||||
|
||||
| 需求 ID | 描述 | 满足者 |
|
||||
| --- | --- | --- |
|
||||
| SRS_BSW_00101 | 初始化 | SWS_SomeIpTp_00010 |
|
||||
| SRS_BSW_00407 | 版本信息 | SWS_SomeIpTp_00020 |
|
||||
|
||||
> **[摘要]** 完整需求追溯表见原文 PDF 第 18-22 页。
|
||||
|
||||
---
|
||||
|
||||
## 7. 功能规范
|
||||
|
||||
### 7.1 SOME/IP-TP 头部
|
||||
|
||||
每个 SOME/IP-TP 段在标准 SOME/IP 头之后添加一个 32 位的 TP 头:
|
||||
|
||||
| 字段 | 大小 | 含义 |
|
||||
| --- | --- | --- |
|
||||
| Offset | 28 位 | 段在原消息中的偏移(字节,按 16 字节对齐) |
|
||||
| Reserved | 3 位 | 保留 |
|
||||
| More Segments Flag | 1 位 | 1 = 还有后续段;0 = 最后一段 |
|
||||
|
||||
### 7.2 发送(分段)
|
||||
|
||||
- **[SWS_SomeIpTp_00030]** ⌈SomeIpTp_Transmit 触发分段发送。⌋
|
||||
- 段大小由配置参数 `SomeIpTpSegmentSize` 决定(默认 1400 字节)。
|
||||
- 每段携带 SOME/IP-TP 头。
|
||||
|
||||
### 7.3 接收(重组)
|
||||
|
||||
- **[SWS_SomeIpTp_00040]** ⌈SomeIpTp 应根据 Offset 和 More Segments Flag 重组段。⌋
|
||||
- 重组失败时(超时、序列错误):丢弃 + 通知。
|
||||
|
||||
### 7.4 超时监视
|
||||
|
||||
| 定时器 | 含义 |
|
||||
| --- | --- |
|
||||
| SomeIpTpRxTimeoutTime | 接收段间最大时间 |
|
||||
| SomeIpTpTxRetryTime | 重传间隔 |
|
||||
|
||||
### 7.5 错误分类
|
||||
|
||||
#### 7.5.1 开发错误
|
||||
|
||||
| 错误名 | 错误码 | 含义 |
|
||||
| --- | --- | --- |
|
||||
| SOMEIPTP_E_UNINIT | 0x01 | 未初始化 |
|
||||
| SOMEIPTP_E_PARAM_POINTER | 0x02 | NULL 指针 |
|
||||
| SOMEIPTP_E_INVALID_PDU_ID | 0x03 | 无效 PDU ID |
|
||||
|
||||
#### 7.5.2 运行时错误
|
||||
|
||||
| 错误名 | 含义 |
|
||||
| --- | --- |
|
||||
| SOMEIPTP_E_REASSEMBLY_TIMEOUT | 重组超时 |
|
||||
|
||||
---
|
||||
|
||||
## 8. API 规范
|
||||
|
||||
### 8.1 导入类型
|
||||
|
||||
| 模块 | 头文件 | 导入类型 |
|
||||
| --- | --- | --- |
|
||||
| ComStack_Types | ComStack_Types.h | PduIdType, PduInfoType, PduLengthType, RetryInfoType, BufReq_ReturnType |
|
||||
| Std_Types | Std_Types.h | Std_ReturnType, Std_VersionInfoType |
|
||||
|
||||
### 8.2 类型定义
|
||||
|
||||
#### 8.2.1 SomeIpTp_ConfigType
|
||||
```c
|
||||
typedef struct SomeIpTp_ConfigType SomeIpTp_ConfigType;
|
||||
```
|
||||
|
||||
### 8.3 函数定义
|
||||
|
||||
#### 8.3.1 SomeIpTp_Init
|
||||
```c
|
||||
void SomeIpTp_Init(const SomeIpTp_ConfigType* config)
|
||||
```
|
||||
| Service ID | 0x01 |
|
||||
| --- | --- |
|
||||
|
||||
#### 8.3.2 SomeIpTp_GetVersionInfo
|
||||
```c
|
||||
void SomeIpTp_GetVersionInfo(Std_VersionInfoType* versioninfo)
|
||||
```
|
||||
| Service ID | 0x02 |
|
||||
| --- | --- |
|
||||
|
||||
#### 8.3.3 SomeIpTp_Transmit
|
||||
```c
|
||||
Std_ReturnType SomeIpTp_Transmit(
|
||||
PduIdType TxPduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
)
|
||||
```
|
||||
| Service ID | 0x05 |
|
||||
| --- | --- |
|
||||
|
||||
### 8.4 回调通知
|
||||
|
||||
#### 8.4.1 SomeIpTp_RxIndication
|
||||
```c
|
||||
void SomeIpTp_RxIndication(
|
||||
PduIdType RxPduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
)
|
||||
```
|
||||
SoAd 通知 SomeIpTp 收到 PDU。
|
||||
|
||||
#### 8.4.2 SomeIpTp_TxConfirmation
|
||||
```c
|
||||
void SomeIpTp_TxConfirmation(PduIdType TxPduId)
|
||||
```
|
||||
SoAd 通知段已发送。
|
||||
|
||||
### 8.5 调度函数
|
||||
|
||||
#### 8.5.1 SomeIpTp_MainFunctionRx
|
||||
```c
|
||||
void SomeIpTp_MainFunctionRx(void)
|
||||
```
|
||||
处理接收超时。
|
||||
|
||||
#### 8.5.2 SomeIpTp_MainFunctionTx
|
||||
```c
|
||||
void SomeIpTp_MainFunctionTx(void)
|
||||
```
|
||||
处理发送和重传。
|
||||
|
||||
### 8.6 期望接口
|
||||
|
||||
#### 8.6.1 强制接口
|
||||
- PduR_SomeIpTpRxIndication
|
||||
- PduR_SomeIpTpTxConfirmation
|
||||
- SoAd_IfTransmit
|
||||
- Det_ReportError
|
||||
|
||||
---
|
||||
|
||||
## 9. 时序图
|
||||
|
||||
> **[摘要]** 详细时序图见原文 PDF 第 35-45 页:分段发送、重组接收、超时处理等。
|
||||
|
||||
---
|
||||
|
||||
## 10. 配置规范
|
||||
|
||||
### 10.1 容器与配置参数
|
||||
|
||||
#### 10.1.1 SomeIpTp
|
||||
根容器。
|
||||
|
||||
#### 10.1.2 SomeIpTpGeneral
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| SomeIpTpDevErrorDetect | bool | DET 启用 |
|
||||
| SomeIpTpVersionInfoApi | bool | 版本信息 API |
|
||||
| SomeIpTpMainFunctionPeriod | float | main 周期 |
|
||||
|
||||
#### 10.1.3 SomeIpTpRxNPdu, SomeIpTpTxNPdu
|
||||
接收/发送 N-PDU 配置(PDU ID、引用 SoAd 等)。
|
||||
|
||||
#### 10.1.4 SomeIpTpRxNSdu, SomeIpTpTxNSdu
|
||||
接收/发送 N-SDU 配置(N-SDU ID、最大长度等)。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| SomeIpTpMaxSegmentSize | int | 段最大尺寸(默认 1400) |
|
||||
| SomeIpTpRxTimeoutTime | float | 接收超时 |
|
||||
|
||||
> **[摘要]** 完整配置详见原文 PDF 第 45-54 页。
|
||||
|
||||
### 10.2 已发布信息
|
||||
按 BSW General。
|
||||
|
||||
---
|
||||
|
||||
## 翻译说明
|
||||
|
||||
- 本译本基于 AUTOSAR CP 4.4.0 的 SOME/IP 传输协议规范 (Document ID 893,共 55 页)
|
||||
- 摘要标记位置:第 6 章需求追溯、第 9 章时序图、第 10 章配置参数
|
||||
Reference in New Issue
Block a user