I-PDU Multiplexer(IpduM)实现 I-PDU 级别的多路复用。位于 PduR 与具体通信接口模块(CanIf/FrIf/LinIf/EthIf)之间。允许多个上层 PDU 共用一个底层 PDU 槽位(Slot),通过 Selector 字段区分。
IpduM / I-PDU / Selector / Static / Dynamic / Multiplexed PDU / Container PDU / Static Part / Dynamic Part / Mask
[1] AUTOSAR SWS PduR
[2] AUTOSAR SWS CAN Interface
[3] AUTOSAR SWS FlexRay Interface
[4] AUTOSAR SWS LIN Interface
[5] AUTOSAR SRS IPDUMultiplexer
IpduM 应:
IpduM 依赖:PduR(PDU 路由)/ CanIf / FrIf / LinIf / EthIf / Dem(错误上报)。
IpduM 位于 PduR 之下,IF 模块之上。Container PDU 包含:
IpduM 支持两种多路复用:
void IpduM_Init(const IpduM_ConfigType* ConfigPtr):初始化。
void IpduM_DeInit(void):去初始化。
Std_ReturnType IpduM_Transmit(PduIdType TxPduId, const PduInfoType* PduInfoPtr):请求传输(来自 PduR)。
Std_ReturnType IpduM_TriggerTransmit(PduIdType TxPduId, PduInfoType* PduInfoPtr):触发传输。
Std_ReturnType IpduM_CancelTransmit(PduIdType TxPduId):取消传输。
Std_ReturnType IpduM_CancelReceive(PduIdType RxPduId):取消接收。
Std_ReturnType IpduM_GetStatus(PduIdType PduId, IpduM_StatusType* StatusPtr):获取 PDU 状态。
Std_ReturnType IpduM_GetConnectionStatus(PduIdType ConnectionId, IpduM_ConnectionStatusType* StatusPtr):获取连接状态。
void IpduM_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr):接收指示。
void IpduM_TxConfirmation(PduIdType TxPduId, Std_ReturnType Result):发送确认。
void IpduM_MainFunctionRx(void):接收处理。
void IpduM_MainFunctionTx(void):发送处理。
IpduM 配置类:
IPDUM_E_UNINIT:模块未初始化。
IPDUM_E_PARAM_POINTER:参数指针为空。
IPDUM_E_PARAM:参数无效。
IPDUM_E_BUSY:模块忙。
IPDUM_E_INVALID_SELECTOR:Selector 值无效(无法匹配的 Multiplexed PDU)。
校对轮次:L1 自动校对(2026-06-13)