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模块进行交互,进行数据的接收和发送。
图 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报头将接收的分段进行重组,传递给上层用户。
图 SomeIpTp模块原理示意图
SOMEIP-TP协议在原有的SOMEIP协议中改造了MessageType区域的构造(增加了TP-Flag位),并扩展了4个字节(分为Offset,Res,M区域)用于控制传输TP报文。SomeIpTp模块完成TP相关位的填充和解析,以支持大数据传输。
图 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实现在该文件中 |
图 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¶
图 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¶
图 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¶
图 SomeIpTpRxNSdu容器配置图
表 SomeIpTpRxNSdu容器属性描述
U I名称 |
描述 |
|||
SomeIpT pRxSduH andleId |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
接 收PDU在SomeIpTp中分配的ID |
|||
依赖关系 |
无 |
|||
So meIpTpR xSduRef |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
指向一个P DU,该PDU代表组合后的报文 |
|||
依赖关系 |
无 |
|||
SomeIpT pRxNPdu |
取值范围 |
容器 |
默认取值 |
无 |
参数描述 |
该容器用于配置 从底层接收的PDU的相关参数 |
|||
依赖关系 |
无 |
SomeIpTpRxNPdu¶
图 SomeIpTpRxNPdu容器配置图
表 SomeIpTpRxNPdu容器属性描述
U I名称 |
描述 |
|||
S omeIpTp RxNPduH andleId |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
从底层接 收PDU在SOMEIPTP中分配的ID |
|||
依赖关系 |
无 |
|||
Som eIpTpRx NPduRef |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
指向一个PDU,该PDU表示从 底层接收的分包之后的报文 |
|||
依赖关系 |
无 |
SomeIpTpTxNSdu¶
图 SomeIpTpTxNSdu容器配置图
表 SomeIpTpTxNSdu容器属性描述
UI 名称 |
描述 |
|||
Some IpTpTx NSduHa ndleId |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
待发送的 原始PDU在SOMEIP中分配的ID |
|||
依赖关系 |
无 |
|||
SomeI pTpTxN SduRef |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
指向一个PDU,该 PDU表示要发送的原始的PDU |
|||
依赖关系 |
无 |
|||
So meIpTp TxNPdu |
取值范围 |
容器 |
默认取值 |
无 |
参数描述 |
该容器用于定以 发送分包后的PDU相关的参数 |
|||
依赖关系 |
无 |
SomeIpTpTxNPdu¶
图 SomeIpTpTxNPdu容器配置图
表 SomeIpTpTxNPdu容器属性描述
UI名称 |
描述 |
|||
SomeIPTPTX NPduHandle Id |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
分包后的 发送PDU在 SOMEIP中 分配的ID |
|||
依赖关系 |
无 |
|||
SomeIPTPTX NPduRef |
取值范围 |
无 |
默认取值 |
无 |
参数描述 |
指向一个 PDU,该PD U表示分包 后的报文 |
|||
依赖关系 |
无 |