P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)

This commit is contained in:
opencode-translator
2026-06-13 00:29:54 +08:00
parent 0d470d1f17
commit 6f293acbf7
95 changed files with 70811 additions and 83 deletions
@@ -0,0 +1,418 @@
# I-PDU 复用器规范 (Specification of I-PDU Multiplexer)
> **AUTOSAR CP Release 4.4.0**
> **文档 ID 182: AUTOSAR_SWS_IPDUMultiplexer**
## 元信息
| 项目 | 内容 |
| --- | --- |
| 文档标题 | I-PDU 复用器规范 |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 182 |
| 文档状态 | Final |
| 所属 AUTOSAR 标准 | Classic Platform |
| 所属标准版本 | 4.4.0 |
## 文档变更历史
| 日期 | 版本 | 变更方 | 变更说明 |
| --- | --- | --- | --- |
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | Container PDU 支持;细微更正 |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 修正/澄清 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 多 PDU 到 Container 处理 |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 编辑修正 |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 选择字段增强 |
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 编辑变更 |
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | TX 触发增强 |
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 配置增强 |
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | 多段静态/动态部分 |
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | 初始稳定版本 |
---
## 目录
- [1. 介绍与功能概述](#1-介绍与功能概述)
- [2. 缩略语](#2-缩略语)
- [3. 相关文档](#3-相关文档)
- [4. 约束与假设](#4-约束与假设)
- [5. 与其他模块的依赖](#5-与其他模块的依赖)
- [6. 需求可追溯性](#6-需求可追溯性)
- [7. 功能规范](#7-功能规范)
- [8. API 规范](#8-api-规范)
- [9. 时序图](#9-时序图)
- [10. 配置规范](#10-配置规范)
- [11. 不适用需求](#11-不适用需求)
---
## 1. 介绍与功能概述
本规范描述 AUTOSAR 基础软件模块 **I-PDU 复用器** (IpduM) 的功能、API 和配置。
PDU 复用是指对一个 PDU(协议数据单元)的 PCI(协议控制信息)使用多种 SDU(服务数据单元)布局。**选择字段(selector field)** 是复用 PDU SDU 的一部分,用于区分不同复用 PDU 的内容。
PDU 复用目前已知用于 CAN,但不限于此通信系统。
在发送端,I-PDU 复用器模块负责将 COM 的合适 I-PDU 组合为新的复用 I-PDU,并发回 PDU 路由器。在接收端,负责解释复用 I-PDU 的内容,根据选择字段值,将适当的分离 I-PDU 提供给 COM。
---
## 2. 缩略语
| 缩略语 | 描述 |
| --- | --- |
| COM I-PDU | 由 COM 模块从 COM 信号组装的 I-PDU |
| contained I-PDU | 组装到 Container PDU 中或从中提取的 I-PDU |
| Container PDU | 包含 I-PDU 和头的 PDU |
| dynamic part | 动态部分 |
| instance of an I-PDU | IpduM I-PDU 具有特定布局和内容的实例 |
| Instances of a Container | 同一 Container PDU 的实例 |
| IpduM | I-PDU Multiplexer |
| IpduM I-PDU | 由 IpduM 模块从两个 COM I-PDU 组装的 I-PDU |
| multiplexed I-PDU | 见 IpduM I-PDU |
| segment | 段(静态或动态部分可由多个段组成) |
| selector field | 选择字段 |
| static part | 静态部分 |
---
## 3. 相关文档
### 3.1 输入文档
- [1] Layered Software Architecture
- [2] General Requirements on Basic Software Modules
- [3] Specification of RTE
- [4] Requirements on I-PDU Multiplexer
- [5] Specification of Communication
- [6] General Specification of Basic Software Modules
### 3.2 相关标准
无。
### 3.3 相关规范
AUTOSAR SWS BSW General [6] 适用。
---
## 4. 约束与假设
### 4.1 限制
发送复用 I-PDU 时,无法考虑最小延迟时间(MDT)。详见 [5] 和 7.2.4.1。
静态布局 Container PDU 发送中,若两个或多个被包含的 PDU 都配置了 MDT,则无法保证 MDT。
### 4.2 适用车域
无限制。
### 4.3 与安全相关环境的适用性
本文档在无安全案例的情况下创建。直接结果只能在重复 IEC 61508 中所要求的某些过程步骤后在安全相关系统中使用。
---
## 5. 与其他模块的依赖
### 5.1 AUTOSAR OS
IpduM 不直接使用 OS,但通过 Schedule Manager 调用 main 函数。
### 5.2 RTE (BSW Scheduler)
IpduM_MainFunction 由 BSW 调度器调用。
### 5.3 PDU Router
IpduM 通过 PduR 收发 I-PDU。
### 5.4 COM
IpduM 与 COM 交互(IpduM 作为 PduR 上层)。
### 5.5 文件结构
IpduM 提供 IpduM.h、IpduM_Cfg.h 等头文件。
---
## 6. 需求可追溯性
| 需求 ID | 描述 | 满足者 |
| --- | --- | --- |
| SRS_IPDUM_00002 | 支持选择字段位置可配 | SWS_IpduM_00027 |
| SRS_IPDUM_00003 | 支持多个布局 | SWS_IpduM_00041 |
| SRS_IPDUM_00006 | 多容器 PDU 处理 | SWS_IpduM_00200 |
| SRS_BSW_00101 | 初始化 | SWS_IpduM_00012 |
| SRS_BSW_00407 | 版本信息 | SWS_IpduM_00220 |
> **[摘要]** 完整需求追溯表见原文 PDF 第 16-20 页。
---
## 7. 功能规范
### 7.1 通用
IpduM 通过 PduR 与上下层交互。
### 7.2 I-PDU 复用
#### 7.2.1 定义与布局
- 选择字段:1-32 位的字段,用于识别 PDU 实例
- 静态部分:所有实例共有的部分
- 动态部分:不同实例不同的部分
#### 7.2.2 通用
- **[SWS_IpduM_00027]** ⌈IpduM 应支持可配置的选择字段位置。⌋
#### 7.2.3 初始化
- **[SWS_IpduM_00012]** ⌈IpduM_Init 应初始化所有内部变量。⌋
#### 7.2.4 发送
##### 7.2.4.1 MDT
最小延迟时间在 COM 中处理,但 IpduM 无法保证。
#### 7.2.5 接收
- **[SWS_IpduM_00041]** ⌈IpduM 应解析接收 I-PDU 的选择字段并指示给 COM。⌋
#### 7.2.6 MetaData 处理
IpduM 支持 N-PDU 的 MetaData 处理。
### 7.3 多 PDU 到 Container 处理
#### 7.3.1 动态 Container 布局
PDU 在 Container 中带头信息,可有变化。
#### 7.3.2 静态 Container 布局
PDU 在 Container 中位置固定。
#### 7.3.3 发送
- **[SWS_IpduM_00200]** ⌈IpduM 应支持 Container PDU 发送。⌋
#### 7.3.4 动态 Container 发送
按累积策略或基于触发发送 Container。
#### 7.3.5 静态 Container 发送
固定时间或基于触发发送。
#### 7.3.6 接收
解析 Container PDU 并通知 COM 各被包含 PDU。
#### 7.3.7 动态 Container 接收
根据头信息解析。
#### 7.3.8 静态 Container 接收
根据固定位置解析。
#### 7.3.9 错误处理
处理过载、不一致等错误。
#### 7.3.10 MetaData 处理
被包含 PDU 的 MetaData。
### 7.4 错误分类
#### 7.4.1 开发错误
| 错误名 | 错误码 | 含义 |
| --- | --- | --- |
| IPDUM_E_INIT_FAILED | 0x01 | 初始化失败 |
| IPDUM_E_UNINIT | 0x02 | 未初始化即调用 |
| IPDUM_E_PARAM | 0x03 | 参数错误 |
| IPDUM_E_PARAM_POINTER | 0x04 | NULL 指针 |
#### 7.4.2 运行时错误
| 错误名 | 含义 |
| --- | --- |
| IPDUM_E_BUFFER_OVERFLOW | 缓冲区溢出 |
| IPDUM_E_CONTAINER_FULL | Container 已满 |
#### 7.4.3 瞬态故障
无。
#### 7.4.4 生产错误
无。
#### 7.4.5 扩展生产错误
无。
### 7.5 错误检测与通知
应通过 DET 检测并上报开发错误。
---
## 8. API 规范
### 8.1 导入类型
| 模块 | 头文件 | 导入类型 |
| --- | --- | --- |
| ComStack_Types | ComStack_Types.h | PduIdType, PduInfoType, RetryInfoType |
| Std_Types | Std_Types.h | Std_ReturnType, Std_VersionInfoType |
### 8.2 类型定义
#### 8.2.1 IpduM_ConfigType
```c
typedef struct IpduM_ConfigType IpduM_ConfigType;
```
### 8.3 函数定义
#### 8.3.1 IpduM_Init
```c
void IpduM_Init(const IpduM_ConfigType* Config)
```
| Service ID | 0x00 |
| --- | --- |
| 描述 | 初始化 IpduM 模块 |
#### 8.3.2 IpduM_GetVersionInfo
```c
void IpduM_GetVersionInfo(Std_VersionInfoType* VersionInfo)
```
| Service ID | 0x01 |
| --- | --- |
#### 8.3.3 IpduM_Transmit
```c
Std_ReturnType IpduM_Transmit(
PduIdType TxPduId,
const PduInfoType* PduInfoPtr
)
```
| Service ID | 0x02 |
| --- | --- |
| 描述 | 请求传输 I-PDU |
### 8.4 回调通知
#### 8.4.1 IpduM_RxIndication
```c
void IpduM_RxIndication(
PduIdType RxPduId,
const PduInfoType* PduInfoPtr
)
```
PduR 通知 IpduM 收到 I-PDU。
#### 8.4.2 IpduM_TxConfirmation
```c
void IpduM_TxConfirmation(PduIdType TxPduId)
```
PduR 通知 IpduM I-PDU 已发送。
#### 8.4.3 IpduM_TriggerTransmit
```c
Std_ReturnType IpduM_TriggerTransmit(
PduIdType TxPduId,
PduInfoType* PduInfoPtr
)
```
PduR 请求 IpduM 提供数据。
### 8.5 调度函数
#### 8.5.1 IpduM_MainFunction
```c
void IpduM_MainFunction(void)
```
| Service ID | 0x05 |
| --- | --- |
| 描述 | 处理超时、Container 发送等 |
### 8.6 期望接口
#### 8.6.1 强制接口
- PduR_IpduMTransmit
- PduR_IpduMRxIndication
- PduR_IpduMTxConfirmation
- Det_ReportError
#### 8.6.2 可选接口
- Det_ReportRuntimeError
#### 8.6.3 可配置接口
无。
---
## 9. 时序图
### 9.1 复用 I-PDU 发送和发送确认
### 9.2 复用 I-PDU 无触发发送
### 9.3 复用 I-PDU 接收
### 9.4 触发发送
> **[摘要]** 详细时序图见原文 PDF 第 49-53 页。
---
## 10. 配置规范
### 10.1 如何阅读本章
参考 [ECU Configuration Specification]。
### 10.2 容器与配置参数
#### 10.2.1 配置概述
IpduM 配置包含发送/接收路径、动态/静态部分、选择字段等。
#### 10.2.2 IpduM
根容器。
#### 10.2.3 IpduMConfig
配置集容器。
#### 10.2.4 IpduMGeneral
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| IpduMDevErrorDetect | bool | DET 启用 |
| IpduMVersionInfoApi | bool | 版本信息 API |
| IpduMMainFunctionPeriod | float | main 周期 |
#### 10.2.5 IpduMTxPathway
发送路径配置。
#### 10.2.6 IpduMTxRequest
发送请求配置。
#### 10.2.7-10.2.10 IpduMTxDynamicPart/Segment, IpduMTxStaticPart/Segment
TX 动态/静态部分和段配置。
#### 10.2.11 IpduMRxPathway
接收路径配置。
#### 10.2.12-10.2.16 IpduMRxIndication, IpduMRxDynamic/StaticPart/Segment
RX 指示、动态/静态部分和段。
#### 10.2.17 IpduMSelectorField
选择字段配置(起始位、长度)。
#### 10.2.18-10.2.21 IpduMContainerRx/TxPdu, IpduMContainedRx/TxPdu
Container PDU 和被包含 PDU 配置。
> **[摘要]** 完整配置详见原文 PDF 第 54-88 页。
### 10.3 已发布信息
按 BSW General。
### 10.4 配置规则
- 选择字段位置规则
- 静态/动态部分放置规则
- 多 PDU 到 Container 映射规则
- 优先级规则
---
## 11. 不适用需求
详见原文 PDF 第 92 页。
---
## 翻译说明
- 本译本基于 AUTOSAR CP 4.4.0 的 I-PDU 复用器规范 (Document ID 182,共 92 页)
- 摘要标记位置:第 6 章需求追溯、第 9 章时序图、第 10 章配置、第 11 章不适用需求