10 KiB
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. 介绍与功能概述
- 2. 缩略语
- 3. 相关文档
- 4. 约束与假设
- 5. 与其他模块的依赖
- 6. 需求可追溯性
- 7. 功能规范
- 8. API 规范
- 9. 时序图
- 10. 配置规范
- 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
typedef struct IpduM_ConfigType IpduM_ConfigType;
8.3 函数定义
8.3.1 IpduM_Init
void IpduM_Init(const IpduM_ConfigType* Config)
| Service ID | 0x00 |
|---|---|
| 描述 | 初始化 IpduM 模块 |
8.3.2 IpduM_GetVersionInfo
void IpduM_GetVersionInfo(Std_VersionInfoType* VersionInfo)
| Service ID | 0x01 |
|---|
8.3.3 IpduM_Transmit
Std_ReturnType IpduM_Transmit(
PduIdType TxPduId,
const PduInfoType* PduInfoPtr
)
| Service ID | 0x02 |
|---|---|
| 描述 | 请求传输 I-PDU |
8.4 回调通知
8.4.1 IpduM_RxIndication
void IpduM_RxIndication(
PduIdType RxPduId,
const PduInfoType* PduInfoPtr
)
PduR 通知 IpduM 收到 I-PDU。
8.4.2 IpduM_TxConfirmation
void IpduM_TxConfirmation(PduIdType TxPduId)
PduR 通知 IpduM I-PDU 已发送。
8.4.3 IpduM_TriggerTransmit
Std_ReturnType IpduM_TriggerTransmit(
PduIdType TxPduId,
PduInfoType* PduInfoPtr
)
PduR 请求 IpduM 提供数据。
8.5 调度函数
8.5.1 IpduM_MainFunction
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 章不适用需求