IpduM产品参考手册

缩写词注解

缩写词

英文全称

中文解释

Container PDU

PDU containing I-PDUs and headers

包含 N个I-PDU及其各自Header的PDU

Contained I-PDU

I-PDU assembled into or extracted from a Container PDU

封装在container PDU中的I-PDU

I-PDU

Interaction Layer Protocol Data Unit

交互层协议数据单元

DET

Default Error Tracer

开发错误检测

IpduM

I-PDU Multiplexer

I-PDU多路复用

Multiplexed I-PDU

I-PDU assembled in the IpduM module out of two COM I-PDUs

将1-2帧COM I-PDU 在IpduM中经过组装而成的I-PDU

SF

selector field

IpduMSelectorField选择字段

简介

IpduM实现I-PDU的多路复用功能。发送时,将Com层需要发送的多帧I-PDU进行重新封装,将重新封装得到的新I-PDU进行统一发送。接收时将接收到的I-PDU解析成Com层的多帧I-PDU,分别传递给Com模块(通过PduR传递)。IpduM层I-PDU的封装存在两种方式:(1)Multiplex方式:将Static Pdu和某一Dynamic Pdu按配置Segement段进行重组,新I-PDU的部分数据段来自Static Pdu,部分数据段来自Dynamic Pdu;(2)Container方式:将与Com层Ref的多个Contained Pdus(及其Header),封装到同一个IpduM层I-PDU中进行统一发送。IpduM层I-PDU的解析,与封装相反。

image1图1-1 IpduM模块层次图

IpduM模块处于通信服务层,既属于PduR模块的上层,又属于PduR模块的下层,与PduR模块实现IF Pdu的收发。发送时,将Com层IPdu通过PduR路由到IpduM,IpduM将其重新组装,组装完毕调用PduR模块发送接口进行发送。接收时,从PduR接收来自底层的IPdu报文,将其进行解析,并调用PduR模块接收接口进行接收传递。

参考资料

[1] AUTOSAR_SWS_IPDUMultiplexer.pdf,R19-11和4.2.2

[2] AUTOSAR_SWS_PDURouter.pdf,R19-11和4.2.2

功能描述

I-PDU Multiplexing功能

I-PDU Multiplexing功能介绍

IpduM模块中MultiplexedIPdu关联0-1个StaticPart PDU(关联Com层PDU),1-N个DynamicPart PDU(关联Com层PDU)。发送时,IpduM将Com层PDUs的某些Segment段更新到MultiplexedIPdu中,调用下层模块的发送函数发送该MultiplexedIPdu;接收时,IpduM将接收到的MultiplexedIPdu分别传递给Com层关联的StaticPart PDU和DynamicPart PDU。

I-PDU Multiplexing功能实现

1.MultiplexedIPdu发送:

上层模块调用IpduM_Transmit请求StaticPart PDU/DynamicPart PDU进行发送,IpduM将更新MultiplexedIPdu中相应Segement段数据,以及SF(更新DynamicPart时)。IpduM模块根据MultiplexedIPdu的触发发送条件满足时,调用PduR_IpduMTransmit进行发送,当MultiplexedIPdu发送成功后调用上层模块TxConfirmation通知当前StaticPart PDU/DynamicPart PDU发送成功。

2.MultiplexedIPdu接收:

当下层调用IpduM_RxIndication接收到MultiplexedIPdu时,解析MultiplexedIPdu中当前包含的StaticPart PDU/DynamicPart PDU(通过解析SF字段识别),并将接收MultiplexedIPdu数据分别通过上层RxIndication传递给StaticPart PDU/DynamicPart PDU关联的上层Pdu。

Multiple-PDU-to-Container handling功能

Multiple-PDU-to-Container handling功能介绍

IpduM中Container PDU,包含N个Contained PDUs(与Com层PDU关联)。发送时,IpduM将Com层1-N个PDU封装到同一个Container PDU中,通过下层的发送接口进行整体发送;接收时,IpduM将接收到的Container PDU解析成各个Contained PDUs,分别调用上层的RxIndication函数传递给上层。

Multiple-PDU-to-Container handling功能实现

  1. ContainerIPdu发送:

上层模块调用IpduM_Transmit请求ContainedPdu发送,IpduM将该ContainedPdu及其Header信息封装到ContainerPdu中,当ContainerPdu满足触发条件时,IpduM通过调用PduR_IpduMTransmit进行发送。当ContainerPdu发送成功后调用上层模块TxConfirmation通知当前该ContainerPdu封装的所有ContainedPdu。

  1. ContainerIPdu接收:

当下层调用IpduM_RxIndication接收到ContainerIPdu时,解析ContainerIPdu中当前包含的所有ContainedPdu(通过解析Header信息识别),并将解析出每个ContainedPdu数据通过上层RxIndication传递给上层关联Pdu。

源文件描述

表3-1 IpduM组件文件描述

文件

说明

IpduM_Cfg.h

定义IpduM模块PC配置的宏定义。

IpduM_Cfg.c

定义IpduM模块PC/PB配置的结构体参数。

IpduM.h

实现IpduM模块全部外部接口的声明 (除了回调函数),以及配置文件中全局变量的声明。

IpduM.c

作为IpduM模块的核心文件 ,实现IpduM模块全部对外接口,以及实现IpduM模块功 能所必须的local函数,local宏定义,local变量定义。

IpduM_MemMap.h

实现IpduM模块内存布局。

IpduM_Internal.h

实现IpduM模块内部类型定义。

IpduM_Cbk.h

实现IpduM模块全部回调函数的声明。

image2

图3-1 IpduM组件文件交互关系图

API接口

类型定义

IpduM_ConfigType类型定义

名称

IpduM_ConfigType

类型

struct

范围

描述

IpduM模块的PB配置结构体

输入函数描述

输入模块

API

Det

Det_ReportRuntimeError

Det_ReportError

PduR

PduR_IpduMRxIndication

PduR_IpduMTransmit

PduR_IpduMTriggerTransmit

PduR_IpduMTxConfirmation

静态接口函数定义

IpduM_Init函数定义

函数名称:

IpduM_Init

函数原型:

void IpduM_Init(const IpduM_ConfigType* config)

服务编号:

0x00

同步/异步:

同步

是 否可重入:

输入参数:

config

值 域:

输入 输出参数:

输出参数:

返回值:

功能概述:

模块初始化函数

IpduM_GetVersionInfo函数定义

函数名称:

Ipd uM_GetVersionInfo

函数原型:

void Ipdu M_GetVersionInfo(

Std_ VersionInfoType* versioninfo)

服务编号:

0x01

同步/异步:

同步

是 否可重入:

输入参数:

值 域:

输入 输出参数:

输出参数:

versioninfo

返回值:

功能概述:

获取软件版本信息

IpduM_Transmit函数定义

函数名称:

IpduM_Transmit

函数原型:

Std_ReturnType IpduM_Transmit(

PduIdType PdumTxPduId,

const PduInfoType* PduInfoPtr)

服务编号:

0x03

同步/异步:

同步

是 否可重入:

不同 的PduId可重入,相 同的PduId不可重入

输入参数:

PdumTxPduId

PduInfoPtr

值域:

输入 输出参数:

输出参数:

返回值:

Std_ReturnType

功能概述:

请求IPdu发送

IpduM_RxIndication函数定义

函数名称:

I pduM_RxIndication

函数原型:

void Ip duM_RxIndication(

PduIdType RxPduId,

const PduInfoType* PduInfoPtr)

服务编号:

0x42

同步/异步:

同步

是 否可重入:

相同Pdu不可重 入,不同Pdu可重入

输入参数:

RxPduId

PduInfoPtr

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

IPdu接收

IpduM_TxConfirmation函数定义

函数名称:

Ipd uM_TxConfirmation

函数原型:

void Ipdu M_TxConfirmation(

PduIdType TxPduId)

服务编号:

0x40

同步/异步:

同步

是 否可重入:

相同Pdu不可重 入,不同Pdu可重入

输入参数:

TxPduId

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

TxPdu发送确认

IpduM_TriggerTransmit函数定义

函数名称:

Ipdu M_TriggerTransmit

函数原型:

Std_ReturnType IpduM _TriggerTransmit(

PduIdType TxPduId,

PduInfoType* PduInfoPtr)

服务编号:

0x41

同步/异步:

同步

是 否可重入:

相同Pdu不可重 入,不同Pdu可重入

输入参数:

TxPduId

值域:

输入 输出参数:

PduInfoPtr

输出参数:

返回值:

Std_ReturnType

功能概述:

IPdu数据请求

IpduM_MainFunction函数定义

函数名称:

I pduM_MainFunction

函数原型:

void IpduM_M ainFunction(void)

服务编号:

0x10

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

模块主函数

可配置函数定义

无。

配置

IpduMGeneral

image3

图5-1 IpduMGeneral

表5-1 IpduMGeneral

UI名称

描述

IpduMConfigu rationTimeBase

取值范围

0 .. 3600

默 认取值

0.01

参数描述

IpduM_Mai nFunction的调用周期

依赖关系

IpduMConfiguration TimeBase不能配置为0

IpduM DevErrorDetect

取值范围

true/false

默 认取值

false

参数描述

是否 使能Det开发错误检测

依赖关系

依赖于Det模块支持

IpduMH eaderByteOrder

取值范围

IPDUM_BIG_ENDIAN/

IPDUM_LITTLE_ENDIAN

默 认取值

IPD UM_LITTL E_ENDIAN

参数描述

Container I- PDU中header的字节序

依赖关系

IpduMSt aticPartExists

取值范围

true/false

默 认取值

false

参数描述

Multiplexed I-PDU是否支持static part

依赖关系

IpduM VersionInfoApi

取值范围

true/false

默 认取值

false

参数描述

是否支持Ip duM模块软件版本获取

依赖关系

IpduMPublishedInformation

image4

图5-2 IpduMPublishedInformation

表5-2 IpduMPublishedInformation

UI名称

描述

IpduMRxDirec tComInvocation

取值范围

true/false

默认取值

false

参数描述

RxIndicatio n/TxConfirmation直接 跳过PduR调用Com接口

依赖关系

该模式 使能会增加架构的复杂 度,通常配置为false

IpduMContainedRxPdu

image5

图5-3 IpduMContainedRxPdu

表5-3 IpduMContainedRxPdu

UI名称

描述

IpduMContai nedPduHeaderId

取值范围

1 .. 4294967295

默 认取值

参数描述

ContainedPdu封装在C ontainerPdu中的Header Id

依赖关系

IpduM ContainedRxInC ontainerPduRef

取值范围

索引

[IpduMContainerRxPdu]

默 认取值

参数描述

表示该Contained Pdu关联的ContainerPdu

依赖关系

IpduMCon tainedRxPduRef

取值范围

索引[Pdu]

默 认取值

参数描述

关联EcuC中Pdu

依赖关系

依赖于 EcuC中Pdu的配置; IPDU MPduRef关联的ECUC中Pd u必须要被别的模块关联

IpduMContainerRxPdu

image6

图5-4 IpduMContainerRxPdu

表5-4 IpduMContainerRxPdu

UI名称

描述

IpduMConta inerHeaderSize

取值范围

IPDU M_HEADERTYPE_LONG/IP DUM_HEADERTYPE_SHORT

默认取值

参数描述

表示Header长 度(32bit/64bit)信 息(header+length)

依赖关系

IpduMContaine rPduProcessing

取值范围

IPDUM_PROCES SING_DEFERRED/IPDUM_ PROCESSING_IMMEDIATE

默认取值

参数描述

表示 ContainerPdu的解析是 立即处理还是延迟处理

依赖关系

IpduMCont ainerQueueSize

取值范围

1 .. 255

默认取值

1

参数描述

表示接收Cont ainerPdu最大缓存帧数

依赖关系

只有IpduMContainer PduProcessing配置为I PDUM_PROCESSING_DEFE RRED时才支持配置该项

IpduMC ontainerRxAcce ptContainedPdu

取值范围

IPDUM_ACCEPT_ALL

/IPD UM_ACCEPT_CONFIGURED

默认取值

参数描述

表示该Containe rPdu是否允许接收非配 置关联的ContainedPdu

依赖关系

IpduMConta inerRxHandleId

取值范围

string

默认取值

参数描述

IpduM层RxPdu的Id号

依赖关系

根据I pduMContainerRxPduRe f关联的Pdu名自动生成

IpduMCon tainerRxPduRef

取值范围

索引[Pdu]

默认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中Pdu的配置; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMContainedTxPdu

image7

图5-5 IpduMContainedTxPdu

表5-5 IpduMContainedTxPdu

UI名称

描述

IpduMContai nedPduHeaderId

取值范围

1 .. 4294967295

默认取值

参数描述

ContainedPdu在Co ntainerPdu中的Header Id

依赖关系

IpduMConta inedTxPduColle ctionSemantics

取值范围

IPDUM_C OLLECT_LAST_IS_BEST/ IPDUM_COLLECT_QUEUED

默认取值

参数描述

表示ContainedPdu 报文数据是否取最新值

依赖关系

Ipd uMContainedTxP duConfirmation

取值范围

true/false

默认取值

false

参数描述

表示ContainedTxPdu是 否使能TxConfirmation

依赖关系

依赖于ContainedTxPd u关联的上层模块Pdu支 持TxConfirmation机制

IpduMContaine dTxPduHandleId

取值范围

string

默认取值

参数描述

Containe dTxPdu在IpduM层的PDU Id值

依赖关系

工具根据I pduMContainedTxPduRe f关联的Pdu名自动生成

Ip duMContainedTx PduSendTimeout

取值范围

0 .. 65.535

默认取值

参数描述

Contai nedTxPdu超时发送时间

依赖关系

IpduMContained TxPduTrigger配置为AL WAYS时不需要配置该项

IpduMContain edTxPduTrigger

取值范围

I PDUM_TRIGGER_ALWAYS/ IPDUM_TRIGGER_NEVER

默认取值

参数描述

ContainedTxPdu是否 触发ContainerPdu发送

依赖关系

IpduM ContainedTxInC ontainerPduRef

取值范围

索引

[ IpduMContainerTxPdu]

默认取值

参数描述

表示ContainedTxPdu 关联的ContainerTxPdu

依赖关系

IpduMCon tainedTxPduRef

取值范围

索引[Pdu]

默认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中配置的Pdu; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMContainerTxPdu

image8

图5-6 IpduMContainerTxPdu

表5-6 IpduMContainerTxPdu

UI名称

描述

IpduMConta inerHeaderSize

取值范围

IPDU M_HEADERTYPE_LONG/IP DUM_HEADERTYPE_SHORT

默认取值

参数描述

表示Header长 度(32bit/64bit)信 息(header+length)

依赖关系

IpduMCont ainerQueueSize

取值范围

1 .. 255

默认取值

1

参数描述

Cont ainerPdu的发送队列数

依赖关系

IpduMCo ntainerTxConfi rmationTimeout

取值范围

0 .. 65.535

默认取值

参数描述

Containe rPdu发送确认超时时间

依赖关系

IpduMContain erTxFirstConta inedPduTrigger

取值范围

true/false

默认取值

false

参数描述

封装第一个Co ntainedTxPdu是否触发 该ContainerTxPdu发送

依赖关系

IpduMConta inerTxHandleId

取值范围

string

默认取值

参数描述

Containe rTxPdu在IpduM层的PDU Id值

依赖关系

根据I pduMContainerTxPduRe f关联的Pdu名自动生成

IpduMContaine rTxSendTimeout

取值范围

0 .. 65.535

默认取值

参数描述

Contai nerPdu的超时发送时间

依赖关系

I pduMContainerT xSizeThreshold

取值范围

0 .. 4294967295

默认取值

参数描述

ContainerP du触发发送的长度阈值

依赖关系

IpduMContaine rTxTriggerMode

取值范围

IPDUM_DIRECT/ I PDUM_TRIGGERTRANSMIT

默认取值

参数描述

Co ntainerPdu的发送方式

依赖关系

IpduMCon tainerTxPduRef

取值范围

索引[Pdu]

默认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中Pdu的配置; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMRxIndication

image9

图5-7 IpduMRxIndication

表5-7 IpduMRxIndication

UI名称

描述

Ip duMByteOrder

取值范围

BIG_ENDIAN/ LITTLE_ENDIAN

默 | 认 | 取 | 值 |

无 |



参数描述

Multipl exedIPdu中字节序类型

依赖关系

Ipd uMRxHandleId

取值范围

string

默 | 认 | 取 | 值 |

无 |



参数描述

Multiplex edIPdu在IpduM层的PDU Id值

依赖关系

根据Ip duMRxIndicationPduRe f关联的Pdu名自动生成

IpduMRxIndi cationPduRef

取值范围

索引[Pdu]

默 认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中Pdu的配置; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMRxDynamicPart

image10

图5-8 IpduMRxDynamicPart

表5-8 IpduMRxDynamicPart

UI名称

描述

IpduMR xSelectorValue

取值范围

0 .. 65535

默认取值

参数描述

dynamic part的选择位数据值

依赖关系

IpduMOutgoin gDynamicPduRef

取值范围

索引[Pdu]

默认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中Pdu的配置; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMRxDynamicSegment

image11

图5-9 IpduMRxDynamicSegment

表5-9 IpduMRxDynamicSegment

UI名称

描述

Ipdu MSegmentLength

取值范围

1 .. 2032

默认取值

参数描述

数据段的长度(bits)

依赖关系

IpduMS egmentPosition

取值范围

0 .. 2031

默认取值

参数描述

数据 段的起始位置(bit)

依赖关系

IpduMRxStaticPart

image12

图5-10 IpduMRxStaticPart

表5-10 IpduMRxStaticPart

UI名称

描述

IpduMOutgoi ngStaticPduRef

取值范围

索引[Pdu]

默认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中Pdu的配置; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMRxStaticSegment

image13

图5-11 IpduMRxStaticSegment

表5-11 IpduMRxStaticSegment

UI名称

描述

Ipdu MSegmentLength

取值范围

1 .. 2032

默认取值

参数描述

数据段的长度(bits)

依赖关系

IpduMS egmentPosition

取值范围

0 .. 2031

默认取值

参数描述

数据 段的起始位置(bit)

依赖关系

IpduMSelectorField

image14

图5-12 IpduMSelectorField

表5-12 IpduMSelectorField

UI名称

描述

IpduMSelec torFieldLength

取值范围

1 .. 16

默认取值

参数描述

Multiplexed Pdu选择字段长度(bits)

依赖关系

IpduMSelecto rFieldPosition

取值范围

0 .. 2031

默认取值

参数描述

Multiplexed Pd u选择字段起始位置(bit)

依赖关系

IpduMTxRequest

image15

图5-13 IpduMTxRequest

表5-13 IpduMTxRequest

UI名称

描述

IpduMByteOrder

取值范围

BIG_ENDIAN/ LITTLE_ENDIAN

默认取值

参数描述

Multipl exedIPdu中字节序类型

依赖关系

IpduMIPduUnus edAreasDefault

取值范围

0 .. 255

默认取值

0x0

参数描述

Multiplexed IPdu未使用字段默认值

依赖关系

IpduMTxCon firmationPduId

取值范围

string

默认取值

参数描述

Multiplex edIPdu在IpduM中的PDU Id值

依赖关系

根据IpduMOutgoingPdu Ref关联Pdu名自动生成

IpduMTxConfi rmationTimeout

取值范围

0 .. 3600

默认取值

参数描述

Multiplexed IPdu发送确认超时时间

依赖关系

Ipdu MTxTriggerMode

取值范围

D YNAMIC_PART_TRIGGER/ NONE/STATIC_OR_ DYNAMIC_PART_TRIGGER /STATIC_PART_TRIGGER

默认取值

参数描述

Mul tiplexedIPdu触发方式

依赖关系

IpduMInit ialDynamicPart

取值范围

索引

[IpduMTxDynamicPart]

默认取值

参数描述

MultiplexedIPd u初始默认DynamicPart

依赖关系

IpduM OutgoingPduRef

取值范围

索引[Pdu]

默认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中Pdu的配置; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMTxDynamicPart

image16

图5-14 IpduMTxDynamicPart

表5-14 IpduMTxDynamicPart

UI名称

描述

IpduMJitUpdate

取值范围

true/false

默认取值

false

参数描述

Multiplexed IPdu发送前是否需要更 新该DynamicPart数据

依赖关系

IpduMTxDynam icConfirmation

取值范围

true/false

默认取值

false

参数描述

该DynamicPart是 否使能TxConfirmation

依赖关系

IpduMTxD ynamicHandleId

取值范围

string

默认取值

参数描述

DynamicPart Pdu在IpduM中的PDU Id值

依赖关系

根 据IpduMTxDynamicPdu Ref关联Pdu名自动生成

IpduMT xDynamicPduRef

取值范围

索引[Pdu]

默认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中Pdu的配置; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMTxDynamicSegment

image17

图5-15 IpduMTxDynamicSegment

表5-15 IpduMTxDynamicSegment

UI名称

描述

Ipdu MSegmentLength

取值范围

1 .. 2032

默认取值

参数描述

数据段的长度(bits)

依赖关系

IpduMS egmentPosition

取值范围

0 .. 2031

默认取值

参数描述

数据 段的起始位置(bit)

依赖关系

IpduMTxStaticPart

image18

图5-16 IpduMTxStaticPart

表5-16 IpduMTxStaticPart

UI名称

描述

IpduMJitUpdate

取值范围

true/false

默认取值

false

参数描述

Multiplex edIPdu发送前是否需要 更新该StaticPart数据

依赖关系

IpduMTxStat icConfirmation

取值范围

true/false

默认取值

false

参数描述

该StaticPart是 否使能TxConfirmation

依赖关系

IpduMTx StaticHandleId

取值范围

string

默认取值

参数描述

StaticPart Pdu在IpduM中的PDU Id值

依赖关系

根据IpduMTxStaticPdu Ref关联Pdu名自动生成

IpduM TxStaticPduRef

取值范围

索引[Pdu]

默认取值

参数描述

关联EcuC中Pdu

依赖关系

依 赖于EcuC中Pdu的配置; IPDUMP duRef关联的ECUC中Pdu 必须要被别的模块关联

IpduMTxStaticSegment

image19

图5-17 IpduMTxStaticSegment

表5-17 IpduMTxStaticSegment

UI名称

描述

Ipdu MSegmentLength

取值范围

1 .. 2032

默认取值

参数描述

数据段的长度(bits)

依赖关系

IpduMS egmentPosition

取值范围

0 .. 2031

默认取值

参数描述

数据 段的起始位置(bit)

依赖关系

IpduMConfig

image20

图5-18 IpduMConfig

表5-18 IpduMConfig

UI名称

描述

IpduMM axTxBufferSize

取值范围

0 .. 65535

默认取值

参数描述

IpduM 最大发送Buffer的大小

依赖关系

用于计算PB配置 地址大小,当前不支持

IpduMM axTxPathwayCnt

取值范围

0 .. 65535

默认取值

参数描述

最大发送IPdu的数目

依赖关系

用于计算 PB配置地址大小,当前 不支持;配置的IpduMT xPathway数目不能超过 IpduMMaxTxPathwayCnt