Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_SOMEIPTransportProtocol.md
T

6.9 KiB

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. 介绍

本规范规定了 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

typedef struct SomeIpTp_ConfigType SomeIpTp_ConfigType;

8.3 函数定义

8.3.1 SomeIpTp_Init

void SomeIpTp_Init(const SomeIpTp_ConfigType* config)
Service ID 0x01

8.3.2 SomeIpTp_GetVersionInfo

void SomeIpTp_GetVersionInfo(Std_VersionInfoType* versioninfo)
Service ID 0x02

8.3.3 SomeIpTp_Transmit

Std_ReturnType SomeIpTp_Transmit(
    PduIdType TxPduId,
    const PduInfoType* PduInfoPtr
)
Service ID 0x05

8.4 回调通知

8.4.1 SomeIpTp_RxIndication

void SomeIpTp_RxIndication(
    PduIdType RxPduId,
    const PduInfoType* PduInfoPtr
)

SoAd 通知 SomeIpTp 收到 PDU。

8.4.2 SomeIpTp_TxConfirmation

void SomeIpTp_TxConfirmation(PduIdType TxPduId)

SoAd 通知段已发送。

8.5 调度函数

8.5.1 SomeIpTp_MainFunctionRx

void SomeIpTp_MainFunctionRx(void)

处理接收超时。

8.5.2 SomeIpTp_MainFunctionTx

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 章配置参数