# 转换器需求规范
## 元信息
| 项目 | 内容 |
|------|------|
| 文档标题(中文) | 转换器需求规范 |
| 文档标题(英文) | Requirements on Transformer |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 657 |
| 文档状态 | Final(最终) |
| 所属 AUTOSAR 标准 | Classic Platform(经典平台) |
| 所属标准发布版本 | 4.4.0 |
| 对应原文 PDF | `AUTOSAR_SRS_Transformer.pdf` |
| 翻译状态 | 已完成 |
| 翻译日期 | 2026-06-12 |
## 文档标识
| 字段 | 值 |
|------|----|
| Document Title(文档标题) | Requirements on Transformer |
| Document Owner(文档所有者) | AUTOSAR |
| Document Responsibility(文档责任方) | AUTOSAR |
| Document Identification No(文档标识号) | 657 |
| Document Status(文档状态) | Final |
| Part of AUTOSAR Standard(所属 AUTOSAR 标准) | Classic Platform |
| Part of Standard Release(所属标准发布版本) | 4.4.0 |
## 文档变更历史
| 日期 | 发布版本 | 变更人 | 变更说明 |
|------|----------|--------|----------|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | - 在 SOME/IP 中使用 tag/length/value 编码扩展数据结构序列化
- 次要更正/澄清/编辑性修改;有关详细信息,请参阅 ChangeDocumentation |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | - 次要更正/澄清/编辑性修改;有关详细信息,请参阅 ChangeDocumentation |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | - 次要更正/澄清/编辑性修改;有关详细信息,请参阅 ChangeDocumentation |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | - 次要更正/澄清/编辑性修改;有关详细信息,请参阅 ChangeDocumentation |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | - 初始发布 |
## 目录
1. [Scope of this document(本文档的范围)](#1-scope-of-this-document)
- 1.1 [Document Conventions(文档约定)](#11-document-conventions)
2. [Acronyms and Abbreviations(缩略语和缩写)](#2-acronyms-and-abbreviations)
3. [Requirements Tracing(需求追踪)](#3-requirements-tracing)
4. [Requirements(需求)](#4-requirements)
- 4.1 [General Requirements on Transformers(转换器的一般需求)](#41-general-requirements-on-transformers)
- 4.2 [SOME/IP Transformer Requirements(SOME/IP 转换器需求)](#42-someip-transformer-requirements)
- 4.3 [COM Based Transformer Requirements(基于 COM 的转换器需求)](#43-com-based-transformer-requirements)
5. [References(参考资料)](#5-references)
## 1 Scope of this document
本文档的目标是定义适用于 AUTOSAR 中所有转换器的一组通用基本需求。
为简单起见,所有转换器需求都保存在这一份文档中。
本文档中定义的功能需求应在每个具体转换器的软件规范(SWS)文档中被引用。
### 1.1 Document Conventions
AUTOSAR 文档中需求的表示遵循 [TPS_STDT_00078] 中指定的表格,参见标准化模板的"支持可追溯性"章节([1])。
[TPS_STDT_00053] 中规定的用于表示义务的动词形式应用于指示需求,参见标准化模板的"支持可追溯性"章节([1])。
## 2 Acronyms and Abbreviations
本文档中没有相关的、未包含在 [2, AUTOSAR glossary] 中的缩略语和缩写。
## 3 Requirements Tracing
下表引用了 [3] 中指定的功能,并链接到这些功能的实现。
| 功能 | 描述 | 由以下需求满足 |
|------|------|----------------|
| [RS_BRF_01056] | AUTOSAR BSW 模块应提供标准化接口 | [SRS_Xfrm_00002] |
| [RS_BRF_01316] | AUTOSAR RTE 应支持对软件组件透明的数据转换 | [SRS_Xfrm_00001], [SRS_Xfrm_00002], [SRS_Xfrm_00003], [SRS_Xfrm_00004], [SRS_Xfrm_00005], [SRS_Xfrm_00006], [SRS_Xfrm_00007], [SRS_Xfrm_00008], [SRS_Xfrm_00009], [SRS_Xfrm_00010], [SRS_Xfrm_00011], [SRS_Xfrm_00101], [SRS_Xfrm_00102], [SRS_Xfrm_00103], [SRS_Xfrm_00105], [SRS_Xfrm_00201], [SRS_Xfrm_00202] |
| [RS_BRF_01424] | AUTOSAR 服务应支持通信服务 | [SRS_Xfrm_00001] |
| [RS_BRF_01544] | AUTOSAR 通信应定义通信数据的发送和接收 | [SRS_Xfrm_00201], [SRS_Xfrm_00202] |
| [RS_BRF_01560] | AUTOSAR 通信应支持将信号映射到可传输的协议数据单元 | [SRS_Xfrm_00201], [SRS_Xfrm_00202] |
| [RS_BRF_01592] | AUTOSAR 通信应提供基于用户请求、基于时间和通过底层总线请求的数据传输 | [SRS_Xfrm_00201], [SRS_Xfrm_00202] |
| [RS_Main_00280] | AUTOSAR 应支持标准化汽车通信协议 | [SRS_Xfrm_00106] |
## 4 Requirements
### 4.1 General Requirements on Transformers
转换器从 RTE 获取数据,对其进行处理,并将输出返回给 RTE。它既可以序列化/线性化数据(将它们从结构化形式转换为线性形式),也可以转换(修改或扩展线性数据)(例如添加校验和)。转换器是系统服务集群中的 BSW 模块,为 RTE 提供服务。RTE 在需要转换器提供的服务时执行转换器。
转换器不是库,因为转换器可以保持内部状态,但它们也可以无状态地工作。
可以将一组转换器连接在一起形成转换器链。RTE 协调转换器链的执行,并按指定的确切顺序调用链中的转换器。使用该机制,如果相应配置,ECU 间通信将被转换。此配置在 [4, System Template] 中完成。转换器链的最大长度限制为 255 个转换器。
在 [4, System Template] 中配置的转换器顺序表示发送方的顺序。接收方的顺序是发送方的逆序。
#### [SRS_Xfrm_00001] 转换器应处理 Rte 给出的数据
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 转换器应处理 Rte 给出的数据,并将结果输出回 Rte。 |
| Rationale(原理) | 转换器由 Rte 用输入数据调用,它处理数据并产生结果。此结果返回给 Rte。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 转换器接受复杂数据元素,对其进行序列化,并将线性字节数组返回给 Rte。Rte 将这些数据移交给 Com 栈用于 ECU 间通信。
转换器对数据计算校验和并将其附加为头或尾。 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316, RS_BRF_01424)
#### [SRS_Xfrm_00002] 转换器应提供固定接口
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 转换器应向 Rte 提供固定接口,Rte 使用这些接口调用转换器。 |
| Rationale(原理) | 转换器需要向 Rte 提供某些接口,以使 Rte 能够在没有进一步特殊信息的情况下调用转换器。
接口的签名取决于转换器在转换器链中的位置以及要转换的数据元素。 |
| Dependencies(依赖) | [SRS_Xfrm_00001] |
| Use Case(用例) | 在多个系统中可使用提供特定转换功能的转换器,如果系统上的输入、输出数据和功能要求相同。 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316, RS_BRF_01056)
#### [SRS_Xfrm_00003] 转换器应支持就地缓冲和复制缓冲
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 转换器应支持就地和复制缓冲机制,允许配置存储转换器结果的位置。 |
| Rationale(原理) | 根据转换器的功能(例如复杂数据的序列化或添加校验和),不同的缓冲机制比其他机制更高效。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 复杂数据的序列化需要输入和输出缓冲区。
在同一个缓冲区中有效地追加校验和。 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00004] 转换器应支持错误处理
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 转换器应将其错误返回给 RTE。 |
| Rationale(原理) | 作为转换器执行的协调者,RTE 必须被告知转换器执行期间发生的错误。 |
| Dependencies(依赖) | [SRS_Xfrm_00001] |
| Use Case(用例) | RTE 在错误之后中止转换器链的执行。
RTE 向 SWC 通知不会导致转换器链中止的转换器错误。 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00005] 转换器应能处理超出预期的数据
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 转换器应能处理比预期更长的输入数据。转换器应丢弃意外的数据,但应容忍预期的部分。 |
| Rationale(原理) | 当现有 ECU 用于较新的系统时,较新的系统可能需要传输额外的数据。这些可以附加到网络上已存在的数据的末尾。现有 ECU 必须能够应对并忽略末尾新添加的部分。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 通过附加额外元素来扩展总线上的数据。 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00006] 转换器应支持并发执行
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 转换器应支持并发执行。 |
| Rationale(原理) | RTE 协调转换器的执行。如果相同的数据元素被并发访问(例如由两个 runnable)或相同的转换器用于多个转换器链,RTE 可能并发执行它。 |
| Dependencies(依赖) | [SRS_Xfrm_00001] |
| Use Case(用例) | 在多个转换器链中使用一个转换器。
从两个 runnable 访问同一端口的同一数据元素。 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00007] 反序列化转换器应支持数据提取
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 位于接收方并向 RTE 输出 ImplementationDataType 的转换器应支持输出仅包含输入中所包含数据的子集的数据元素。 |
| Rationale(原理) | 位于接收方并实现序列化转换器的反序列化功能的转换器应能够输出一个复杂数据结构,该结构仅包含用作产生待重新转换数据的序列化转换器输入的数据结构子集。 |
| Dependencies(依赖) | – |
| Use Case(用例) | PortInterfaceMapping,其中接收方仅读取发送方发送的数据结构的子集。 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00008] 转换器应指定其输出格式
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 转换器应清楚指定其输出数据的格式。 |
| Rationale(原理) | 转换器的输出应被明确指定,以使远程 ECU 上相应转换器的实现能够使用这些数据。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 发送方和接收方 ECU 上的转换器由不同的参与方/供应商实现。
发送方和接收方 ECU 的处理器架构不同(例如小端和大端)。 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00009] 应存在一组固定的转换器类
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | AUTOSAR 中应存在一组固定的转换器类。 |
| Rationale(原理) | 这使得可以按功能对转换器进行分组,并定义它们的共同属性和功能。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 共同功能
共同抽象错误集 |
| Supporting Material(支持材料) | Further Supporting Material |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00010] 每个转换器类应提供一组固定的抽象错误
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 每个转换器类应提供一组固定的抽象错误。 |
| Rationale(原理) | 类的每个转换器都可以返回为该类定义的错误。这使 SWC 能够在不知道是否使用转换器以及使用何种转换器的情况下检查抽象转换器错误的存在。 |
| Dependencies(依赖) | [SRS_Xfrm_00009] |
| Use Case(用例) | SWC 使用的转换器的抽象 |
| Supporting Material(支持材料) | Further Supporting Material |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00011] 转换器应属于特定的转换器类
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 转换器应属于特定的转换器类。 |
| Rationale(原理) | 这指定了转换器必须提供哪些功能和哪些错误。 |
| Dependencies(依赖) | [SRS_Xfrm_00009] |
| Use Case(用例) | SWC 使用的转换器的抽象 |
| Supporting Material(支持材料) | Further Supporting Material |
⌋(RS_BRF_01316)
### 4.2 SOME/IP Transformer Requirements
可扩展面向服务的中间件 over IP(SOME/IP)转换器使用 SOME/IP on-the-wire 格式对数据进行线性化,并为 ECU 间客户端/服务器通信规定了一种汽车/嵌入式 RPC 机制。
指定"另一种 RPC 机制"而不是使用现有基础设施/技术的基本动机是拥有一种技术:
- 满足嵌入式环境中资源消耗的硬性要求
- 通过尽可能多的用例和通信伙伴兼容
- 提供汽车用例所需的功能
- 从小型到大型平台可扩展
- 可以在不同的操作系统(即 AUTOSAR、GENIVI 和 OSEK)甚至没有操作系统的嵌入式设备上实现
#### [SRS_Xfrm_00101] SOME/IP 转换器应定义原子和结构化数据元素到线性数组的序列化
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | SOME/IP 转换器应定义原子和结构化数据元素到线性数组的序列化。 |
| Rationale(原理) | 如果使用不同供应商/实现者的 SOME/IP 转换器在不同 ECU 中相互通信,则需要数据线性化算法。 |
| Dependencies(依赖) | – |
| Use Case(用例) | ECU 间发送方/接收方通信
ECU 间客户端/服务器通信 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00102] SOME/IP 转换器应定义 ECU 间客户端/服务器通信的协议
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | SOME/IP 转换器应定义 ECU 间客户端/服务器通信的协议。 |
| Rationale(原理) | 满足 RTE 和 SWC 关于客户端/服务器通信的功能和需求需要协议。 |
| Dependencies(依赖) | – |
| Use Case(用例) | ECU 间客户端/服务器通信 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00103] SOME/IP 转换器应支持应用程序的异常通知
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | SOME/IP 转换器应支持应用程序的异常通知。 |
| Rationale(原理) | 非 AUTOSR ECU 可以抛出可由 SOME/IP 传输的应用程序异常。是否发生此类异常的访问应在 AUTOSAR 的 SWC 中受支持。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 与非 AUTOSAR ECU 通信 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00105] SOME/IP 转换器应支持服务器端客户端/服务器通信的自主错误反应
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | SOME/IP 转换器应支持服务器端客户端/服务器通信的自主错误反应。 |
| Rationale(原理) | 许多对客户端/服务器通信请求的错误反应不需要应用程序的主动贡献。对于这些,错误处理应是透明的,这意味着错误消息由 BSW 直接生成。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 透明错误处理 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316)
#### [SRS_Xfrm_00106]{DRAFT} SOME/IP 转换器应支持可扩展数据结构和方法序列化
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | SOME/IP 转换器应支持具有标记成员/参数的结构和方法的序列化。这些标记用作各个成员/参数的标识符。这允许在反序列化期间跳过未知成员/参数,并且不需要序列化不可用的可选成员。 |
| Rationale(原理) | 此机制是实现可选成员所必需的。此外,它允许在保持向后/向前兼容性的同时轻松扩展接口定义。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 接口中的结构/方法可以在发送方的任意位置通过成员/参数进行扩展。如果不需要新成员/参数,则不需要调整接收方。发送方不需要发送结构成员,因为它们是可选的且当前不可用。 |
| Supporting Material(支持材料) | – |
⌋(RS_Main_00280)
### 4.3 COM Based Transformer Requirements
转换器功能提供了在 RTE 中发送和接收数据时链接任意转换器的功能。当目标总线系统使用具有打包数据表示的固定通信矩阵时,此功能也应可用。
#### [SRS_Xfrm_00201] 基于 COM 的转换器应定义基于固定数据映射的原子和结构化数据元素到线性数组的序列化
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 基于 COM 的转换器应定义基于固定数据映射的原子和结构化数据元素到线性数组的序列化。 |
| Rationale(原理) | 为了支持与静态定义的通信矩阵的交互,基于 COM 的转换器从系统描述的固定数据映射中获取如何序列化数据的信息。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 基于固定通信矩阵的 ECU 间发送方/接收方通信 |
| Supporting Material(支持材料) | – |
⌋(RS_BRF_01316, RS_BRF_01544, RS_BRF_01560, RS_BRF_01592)
#### [SRS_Xfrm_00202] 基于 COM 的转换器应从 COM 模块获取其配置
⌈
| 字段 | 内容 |
|------|------|
| Type(类型) | valid |
| Description(描述) | 基于 COM 的转换器应从 COM 模块 [5] 获取其配置。 |
| Rationale(原理) | COM 模块已处理通信矩阵的处理。该信息取自系统描述并放置在 COM 模块的 ECU 配置中。可以根据 COM 模块 ECU 配置中的信息配置基于 COM 的转换器。 |
| Dependencies(依赖) | – |
| Use Case(用例) | 基于固定通信矩阵的 ECU 间发送方/接收方通信
ECU 间客户端/服务器通信 |
| Supporting Material(支持材料) | [5] |
⌋(RS_BRF_01316, RS_BRF_01544, RS_BRF_01560, RS_BRF_01592)
## 5 References
[1] Standardization Template
AUTOSAR_TPS_StandardizationTemplate
[2] Glossary
AUTOSAR_TR_Glossary
[3] Requirements on AUTOSAR Features
AUTOSAR_RS_Features
[4] System Template
AUTOSAR_TPS_SystemTemplate
[5] Specification of Communication
AUTOSAR_SWS_COM
## 翻译说明
本文档为 AUTOSAR Classic Platform Release 4.4.0 中关于 Transformer(转换器)的软件需求规范(SRS),对应英文文档 `AUTOSAR_SRS_Transformer.pdf`。
翻译过程中遵循以下原则:
1. 保留了所有 API 标识符、模块缩写、协议名(如 SOME/IP、COM、RPC、SWC、RTE、ECU、TLV 等)
2. 保留了所有需求 ID(如 `SRS_Xfrm_00xxx`)
3. 保留了 AUTOSAR 方框符 `⌈⌋`
4. 保留了所有文档间交叉引用
5. 表格内容、章节描述、需求说明均已翻译为中文