SomeIpTp

缩写词注解

缩写词

英文全称

中文解释

SOME/IP

Scalable service-Oriented MiddlewarE over IP

基于IP 的可缩放的面向服务的中间件

SOME/IP TP

SOME/IP Transport Layer

SOME/IP传输层

UDP

User Datagram Protocol

用户数据报协议

简介

SOME/IP TP为使用UDP发送长度大于1400字节的SOME/IP报文提供了可能。在发送端,SOME/IP TP将原始数据进行分段,插入TP报头后分段发送出去。在接收端,SOME/IP TP利用TP报头将接收的分段进行重组,传递给上层用户。

SomeIpTp模块通过和PduR模块进行交互,进行数据的接收和发送。

image1

图 SOME/IP-TP模块概要图

参考资料

[1] AUTOSAR_SWS_SOMEIPTransportProtocol.pdf,R19-11

功能描述

SOME/IP TP为使用UDP发送长度大于1400字节的SOME/IP报文提供了可能。在发送端,SOME/IP TP将原始数据进行分段,插入TP报头后分段发送出去。在接收端,SOME/IP TP利用TP报头将接收的分段进行重组,传递给上层用户。

image2

图 SomeIpTp模块原理示意图

SOMEIP-TP协议在原有的SOMEIP协议中改造了MessageType区域的构造(增加了TP-Flag位),并扩展了4个字节(分为Offset,Res,M区域)用于控制传输TP报文。SomeIpTp模块完成TP相关位的填充和解析,以支持大数据传输。

image3

图 SomeIpTp报文格式示意图

源文件描述

表 SomeIpTp组件文件描述

文件

说明

SomeIpTp_Cfg.h

用于定义SomeIpTp模块预编译时用到的宏。

SomeIpTp _Cfg.c

配置参数源文件,包含各个配置项的定义。

S omeIpTp_Types.h

SomeIpTp模块类型定义头文件。

Some IpTp_Internal.h

So meIpTp模块内部使用的宏,运行时变量类型定义头文件。

So meIpTp_MemMap.h

SomeIpTp模块函数和变量存储位置定义文件。

SomeIpTp.h

SomeIpTp模块头文件 ,通过加载该头文件访问SomeIpTp公开的函数和数据类型

SomeIpTp.c

SomeIpTp模块实现源文件,各API实现在该文件中

image4

图 SomeIpTp组件文件交互关系图

API接口

类型定义

SomeIpTp_ConfigType类型定义

名称

SomeIpTp_ConfigType

类型

Structure

范围

描述

SomeIpTp配置参数。

输入函数描述

输入模块

API

Det

Det_ReportError

Det_Report-RuntimeError

PduR

PduR_SomeIpTpCopyRxData

PduR_SomeIpTpCopyTxData

PduR_SomeIpTpRxIndication

PduR_SomeIpTpStartOfReception

PduR_SomeIpTpTransmit

PduR_SomeIpTpTxConfirmation

静态接口函数定义

SomeIpTp_GetVersionInfo函数定义

函数名称:

SomeIpTp_GetVersionInfo

函数原型:

void SomeIpTp_GetVersionInfo (

Std_VersionInfoType* VersionInfo

)

服务编号:

0x01

同步/异步:

同步

是 否可重入:

可重入

输入参数:

输入 输出参数:

输出参数:

versioni nfo:版本信息存储变量指针

值 域:

返回值:

功能概述:

获取SomeIpTp模块版本信息

SomeIpTp_Init函数定义

函数名称:

SomeIpTp_Init

函数原型:

void SomeIpTp_Init (

const SomeIpTp_ConfigType* config

)

服务编号:

0x02

同步/异步:

同步

是 否可重入:

不可重入

输入参数:

config指向配置数据的指针

值 域:

输入 输出参数:

输出参数:

返回值:

功能概述:

SomeIpTp模式初始化函数

SomeIpTp_Transmit函数定义

函数名称:

SomeIpTp_Transmit

函数原型:

Std_ReturnType SomeIpTp_Transmit (

PduIdType TxPduId,

const PduInfoType* PduInfoPtr

)

服务编号:

0x49

同步/异步:

非同步

是 否可重入:

不同TxPdu可重入

输入参数:

T xPduId将要被发送的Pdu的Id

值 域:

PduInfoPtr用于指示Pdu长度

值 域:

输入 输出参数:

输出参数:

返回值:

E_OK: 请求被接受

E_NOT_OK: 请求被拒绝

功能概述:

请求发送一个Pdu

SomeIpTp_TriggerTransmit函数定义

函数名称:

SomeIpTp_TriggerTransmit

函数原型:

Std_ReturnType SomeIpTp_TriggerTransmit (

PduIdType TxPduId,

PduInfoType* PduInfoPtr

)

服务编号:

0x41

同步/异步:

同步

是 否可重入:

不同PduId可重入

输入参数:

TxPduId请求发送的SDU Id

值 域:

输入 输出参数:

PduInfoPtr包含一个指向 存储SDU的buffer的地址,以 及指示该buffer大小的成员S duLengh。返回时SduLengh中 存储实际复制的SDU的长度。

值 域:

输出参数:

返回值:

E_OK: SDU被复制到buffer 中,长度存储在SduLength中

E_NOT_OK: 没 有成功将SDU复制到buffer中

功能概述:

下层模块调用 该接口获取将要发送的数据

SomeIpTp_RxIndication函数定义

函数名称:

SomeIpTp_RxIndication

函数原型:

void SomeIpTp_RxIndication (

PduIdType RxPduId,

const PduInfoType* PduInfoPtr

)

服务编号:

0x42

同步/异步:

同步

是 否可重入:

不同Pdu可重入

输入参数:

RxPduId接收Pdu Id

值 域:

PduInfoPtr包含接收Pdu的长 度(PduLength)和指向接收 数据的指针(SduDataPtr)

值 域:

输入 输出参数:

输出参数:

返回值:

功能概述:

下层模块接收到报文时通过 该接口通知SomeIpTp模块。

SomeIpTp_TxConfirmation函数定义

函数名称:

SomeIpTp_TxConfirmation

函数原型:

void SomeIpTp_TxConfirmation (

PduIdType TxPduId,

Std_ReturnType result

)

服务编号:

0x40

同步/异步:

同步

是 否可重入:

不同Pdu可重入

输入参数:

TxPduId被发送的Pdu Id

值 域:

re sult被发送的Pdu的发送结果

值 域:

输入 输出参数:

输出参数:

返回值:

功能概述:

下层模块调用该函数通知 SomeIpTp某个Pdu的发送结果

SomeIpTp_MainFunctionTx函数定义

函数名称:

SomeIpTp_MainFunctionTx

函数原型:

void SomeIpTp_MainFunctionTx (

void

)

服务编号:

0x03

同步/异步:

同步

是 否可重入:

不可重入

输入参数:

输入 输出参数:

输出参数:

返回值:

功能概述:

发送周期处理函数

SomeIpTp_MainFunctionRx函数定义

函数名称:

SomeIpTp_MainFunctionRx

函数原型:

void SomeIpTp_MainFunctionRx (

void

)

服务编号:

0x04

同步/异步:

同步

是 否可重入:

不可重入

输入参数:

输入 输出参数:

输出参数:

返回值:

功能概述:

接收周期处理函数

可配置函数定义

无。

配置

SomeIpTpGeneral

image5

图 SomeIpTpGeneral容器配置图

表 SomeIpTpGeneral容器属性描述

U I名称

描述

S omeIpTp DevErro rDetect

取 值范围

STD_ON

STD_OFF

默认取值

STD_OFF

参 数描述

是否开启DET检查

依 赖关系

SomeIpT pRxMain Functio nPeriod

取 值范围

0 .. INF

默认取值

参 数描述

Some IpTp_MainFunctionRx函 数的调用周期。单位为s

依 赖关系

SomeIpT pTxMain Functio nPeriod

取 值范围

0 .. INF

默认取值

参 数描述

Some IpTp_MainFunctionTx函 数的调用周期。单位为s

依 赖关系

S omeIpTp Version InfoApi

取 值范围

STD_ON

STD_OFF

默认取值

STD_OFF

参 数描述

是否使能版本获取接口

依 赖关系

SomeIpTpChannel

image6

图 SomeIpTpChannel容器配置图

表 SomeIpTpChannel容器属性描述

UI 名称

描述

S omeIpT pNPduS eparat ionTim

取值范围

0 .. INF

默认取值

参数描述

SomeIpTp模块以相同PduId调 用PduR_SomeIpTpTransmit() 函数 最小间隔时间(以秒为单位)

依赖关系

Som eIpTpR xTimeo utTime

取值范围

0 .. INF

默认取值

参数描述

用于监控 NPdu报文是否正确接收。该 参数等于SomeIpTpNPduSepa rationTim+补偿值,单位为s

接收到第一帧NPdu时启动;

接收到其他NPdu时重启;

接 收到最后一帧NPdu时停止;

依赖关系

Som eIpTpT xTimeo utTime

取值范围

0 .. INF

默认取值

参数描述

发送超时时间,单位为s

依赖关系

SomeIpTpRxNSdu

image7

图 SomeIpTpRxNSdu容器配置图

表 SomeIpTpRxNSdu容器属性描述

U I名称

描述

SomeIpT pRxSduH andleId

取值范围

默认取值

参数描述

接 收PDU在SomeIpTp中分配的ID

依赖关系

So meIpTpR xSduRef

取值范围

默认取值

参数描述

指向一个P DU,该PDU代表组合后的报文

依赖关系

SomeIpT pRxNPdu

取值范围

容器

默认取值

参数描述

该容器用于配置 从底层接收的PDU的相关参数

依赖关系

SomeIpTpRxNPdu

image8

图 SomeIpTpRxNPdu容器配置图

表 SomeIpTpRxNPdu容器属性描述

U I名称

描述

S omeIpTp RxNPduH andleId

取值范围

默认取值

参数描述

从底层接 收PDU在SOMEIPTP中分配的ID

依赖关系

Som eIpTpRx NPduRef

取值范围

默认取值

参数描述

指向一个PDU,该PDU表示从 底层接收的分包之后的报文

依赖关系

SomeIpTpTxNSdu

image9

图 SomeIpTpTxNSdu容器配置图

表 SomeIpTpTxNSdu容器属性描述

UI 名称

描述

Some IpTpTx NSduHa ndleId

取值范围

默认取值

参数描述

待发送的 原始PDU在SOMEIP中分配的ID

依赖关系

SomeI pTpTxN SduRef

取值范围

默认取值

参数描述

指向一个PDU,该 PDU表示要发送的原始的PDU

依赖关系

So meIpTp TxNPdu

取值范围

容器

默认取值

参数描述

该容器用于定以 发送分包后的PDU相关的参数

依赖关系

SomeIpTpTxNPdu

image10

图 SomeIpTpTxNPdu容器配置图

表 SomeIpTpTxNPdu容器属性描述

UI名称

描述

SomeIPTPTX NPduHandle Id

取值范围

默认取值

参数描述

分包后的 发送PDU在 SOMEIP中 分配的ID

依赖关系

SomeIPTPTX NPduRef

取值范围

默认取值

参数描述

指向一个 PDU,该PD U表示分包 后的报文

依赖关系