# COM 转换器规范 (Specification of COM Based Transformer) > **AUTOSAR CP Release 4.4.0** > **文档 ID 662: AUTOSAR_SWS_COMBasedTransformer** ## 元信息 | 项目 | 内容 | | --- | --- | | 文档标题 | COM 转换器规范 (Specification of COM Based Transformer) | | 文档所有者 | AUTOSAR | | 文档责任方 | AUTOSAR | | 文档标识号 | 662 | | 文档状态 | 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 | 编辑修正 | | 2014-10-31 | 4.2.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. 介绍 本规范规定了 **COM 转换器** 的功能、API 和配置。COM 转换器是 AUTOSAR Transformer 概念的一部分,用于将 SWC 数据序列化为 uint8 数组,以便通过 COM 模块传输。 ### 1.1 COM 转换器的角色 转换器链将 SWC 数据按需序列化: - **发送端**:RTE 调用转换器链 → 数据序列化为线性数组 → 传递给 COM - **接收端**:反向执行 → COM 反序列化 → 还原原始数据结构 从 SWC 视角看,数据是否被转换是完全透明的。 --- ## 2. 缩略语 | 缩略语 | 描述 | | --- | --- | | COM | Communication | | ComXf | COM Based Transformer | | CRC | Cyclic Redundancy Check | | DET | Default Error Tracer | | E2E | End-to-End | | IPdu | Interaction Layer PDU | | RTE | Runtime Environment | | SDU | Service Data Unit | | SWC | Software Component | | TMS | Transmission Mode Selection | --- ## 3. 相关文档 ### 3.1 输入文档 - [1] Layered Software Architecture - [2] General Requirements on Basic Software Modules - [3] Specification of RTE - [4] Specification of SW-C End-to-End Communication Protection Library - [5] Specification of Communication - [6] ASW Specification of Transformer General - [7] System Template - [8] Requirements on Communication - [9] Requirements on Transformer - [10] Specification of ECU Configuration --- ## 4. 约束与假设 ### 4.1 限制 COM 转换器仅适用于由 COM 配置的 ISignalGroup。 ### 4.2 适用车域 适用于所有车域。 --- ## 5. 与其他模块的依赖 - **RTE**:调用 COM 转换器函数 - **COM**:接收 uint8 数组并发送 --- ## 6. 需求可追溯性 | 需求 ID | 描述 | 满足者 | | --- | --- | --- | | SRS_Xfrm_00009 | 固定转换器类集 | SWS_ComXf_00003 | | SRS_Xfrm_00011 | 属于特定转换器类 | SWS_ComXf_00003, SWS_ComXf_00006 | | SRS_Xfrm_00201 | 序列化原子和结构化数据 | SWS_ComXf_00004 ~ SWS_ComXf_00036 | | SRS_Xfrm_00202 | 配置来自 COM | SWS_ComXf_00005, SWS_ComXf_00020 | | SRS_BSW_00407 | 版本信息 | SWS_ComXf_00024, SWS_ComXf_00026, SWS_ComXf_00027 | | SRS_BSW_00411 | API 启用/禁用命名 | SWS_ComXf_00024 | | SRS_BSW_00441 | 命名约定 | SWS_ComXf_00030 | > **[摘要]** 完整需求追溯表见原文 PDF 第 10-12 页。 --- ## 7. 功能规范 ### 7.1 概述 SWC 发起 inter-ECU 通信时,RTE 执行转换器链(含 COM 转换器,如配置要求)。 发送端流程: 1. SWC 调用 Rte_Write_a {x, y, z} 2. 数据基于 System Description 序列化 3. 其他 Transformer 添加信息(如头/尾、CRC) 4. 一个大的 uint8 数组 5. 一次调用 Com_SendSignalGroupArray() 6. COM 分析 uint8 数组基于 TMS(Transmission Mode Selection) 7. IPdu 通过通信栈发送 ### 7.2 数据映射 COM 转换器基于 ComSignalGroup 中的数据映射进行序列化。 - **[SWS_ComXf_00003]** ⌈COM 转换器属于 transformer class "Serializer"。⌋ - **[SWS_ComXf_00004]** ⌈COM 转换器应基于数据映射序列化。⌋ - **[SWS_ComXf_00005]** ⌈配置应来自 COM。⌋ ### 7.3 数据类型支持 #### 7.3.1 原子数据类型 - bool, uint8, uint16, uint32, uint64 - sint8, sint16, sint32, sint64 - float32, float64 #### 7.3.2 字节序处理 - **[SWS_ComXf_00011]** ⌈大端字节序数据应按大端序列化。⌋ - **[SWS_ComXf_00012]** ⌈小端字节序数据应按小端序列化。⌋ #### 7.3.3 结构化数据 - 数组、结构体 - 嵌套结构体支持 ### 7.4 错误分类 #### 7.4.1 开发错误 | 错误名 | 错误码 | 含义 | | --- | --- | --- | | COMXF_E_PARAM_POINTER | 0x01 | NULL 指针 | | COMXF_E_INVALID_BUF | 0x02 | 缓冲区无效 | #### 7.4.2 运行时错误 | 错误名 | 含义 | | --- | --- | | COMXF_E_BUFFER_TOO_SMALL | 缓冲区不足 | --- ## 8. API 规范 ### 8.1 序列化 API #### 8.1.1 Com__ ```c uint8 Com__( uint8* buffer, uint32* bufferLength, const * dataElement ) ``` | Service ID | 实现特定 | | --- | --- | | Sync/Async | Synchronous | | 描述 | 序列化 SWC 数据为 uint8 数组 | 返回: - E_OK:成功 - E_NOT_OK:失败 - E_SAFETY_*:E2E 转换器返回的码 ### 8.2 反序列化 API #### 8.2.1 Com_Inv__ ```c uint8 Com_Inv__( const uint8* buffer, uint32 bufferLength, * dataElement ) ``` | Service ID | 实现特定 | | --- | --- | | 描述 | 反序列化 uint8 数组为 SWC 数据 | ### 8.3 版本信息 #### 8.3.1 ComXf_GetVersionInfo ```c void ComXf_GetVersionInfo(Std_VersionInfoType* versioninfo) ``` --- ## 9. 时序图 > **[摘要]** 详细时序图见原文 PDF 第 35-45 页:发送和接收时序、与 E2E 转换器的协作等。 --- ## 10. 配置规范 ### 10.1 容器与配置参数 #### 10.1.1 ComXf 根容器。 #### 10.1.2 ComXfGeneral | 参数 | 类型 | 说明 | | --- | --- | --- | | ComXfDevErrorDetect | bool | DET 启用 | | ComXfVersionInfoApi | bool | 版本信息 API | | ComXfMainFunctionPeriod | float | 周期 | ### 10.2 信号组配置 由 COM 提供。每个 ISignalGroup 含 ComSignalGroupTransformation 引用 DataTransformation。 > **[摘要]** 完整配置详见原文 PDF 第 50-58 页。 --- ## 翻译说明 - 本译本基于 AUTOSAR CP 4.4.0 的 COM 转换器规范 (Document ID 662,共 59 页) - 摘要标记位置:第 6 章需求追溯、第 9 章时序图、第 10 章配置