PduR(PDU Router)在 AUTOSAR 通信栈中负责 PDU 的路由,包括:
PduR / PDU / I-PDU / TP / FIFO / Fanout / Multicast / Unicast / PN / NM / CAN / FlexRay / LIN / Ethernet / J1939
[1] AUTOSAR SWS COM
[2] AUTOSAR SWS CAN Interface
[3] AUTOSAR SWS CAN Transport Layer
[4] AUTOSAR SWS FlexRay Interface
[5] AUTOSAR SWS FlexRay Transport Layer
[6] AUTOSAR SWS LIN Interface
[7] AUTOSAR SWS J1939 Transport Layer
[8] AUTOSAR SWS Socket Adaptor
[9] AUTOSAR SWS SOME/IP Transformer
[10] AUTOSAR SRS Gateway
PduR 应:
PduR 依赖:所有接口模块(CanIf/FrIf/LinIf/EthIf/J1939Tp/TcpIp/SoAd)/ COM / DCM(诊断通信管理器)/ Dem / BswM。
PduR 位于应用层 COM/DCM 与通信接口模块之间,作为 PDU 路由中心。每个路由路径由源 PDU 引用和目标 PDU 引用组成。
PduR 支持以下路由类型:
void PduR_Init(const PduR_PBConfigType* ConfigPtr):初始化。
void PduR_DeInit(void):去初始化。
void PduR_EnableRouting(PduR_RoutingPathGroupIdType RoutingPathGroupId, boolean Enable):启用/禁用路由路径组。
Std_ReturnType PduR_GwTransmit(PduIdType GwSrcPduId, const PduInfoType* PduInfoPtr):网关传输(多源/多目的)。
void PduR_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr):接收指示(来自 IF 模块)。
void PduR_TxConfirmation(PduIdType TxPduId, Std_ReturnType Result):发送确认。
BufReq_ReturnType PduR_CopyRxData(PduIdType RxPduId, const PduInfoType* PduInfoPtr, PduLengthType* RxBufferSizePtr):TP 接收数据复制。
BufReq_ReturnType PduR_StartOfReception(PduIdType RxPduId, PduLengthType SduLength, PduLengthType* RxBufferSizePtr):TP 接收开始。
BufReq_ReturnType PduR_CopyTxData(PduIdType TxPduId, PduInfoType* PduInfoPtr, RetryInfoType* RetryInfoPtr, PduLengthType* TxDataCntPtr):TP 发送数据复制。
void PduR_TpRxIndication(PduIdType RxPduId, Std_ReturnType Result):TP 接收指示。
void PduR_TpTxConfirmation(PduIdType TxPduId, Std_ReturnType Result):TP 发送确认。
Std_ReturnType PduR_Transmit(PduIdType TxPduId, const PduInfoType* PduInfoPtr):上层发送。
Std_ReturnType PduR_CancelTransmit(PduIdType TxPduId):取消发送。
Std_ReturnType PduR_CancelReceive(PduIdType RxPduId):取消接收。
BufReq_ReturnType PduR_StartOfReceptionCom(PduIdType ComRxPduId, PduLengthType SduLength, PduLengthType* BufferSizePtr):COM 接收开始。
BufReq_ReturnType PduR_CopyRxDataCom(PduIdType ComRxPduId, const PduInfoType* PduInfoPtr, PduLengthType* BufferSizePtr):COM 接收数据复制。
BufReq_ReturnType PduR_CopyTxDataCom(PduIdType ComTxPduId, PduInfoType* PduInfoPtr, RetryInfoType* RetryInfoPtr, PduLengthType* AvailableDataLengthPtr):COM 发送数据复制。
Std_ReturnType PduR_DcmTransmit(PduIdType TxPduId, const PduInfoType* PduInfoPtr):DCM 发送。
BufReq_ReturnType PduR_DcmStartOfReception(PduIdType RxPduId, PduLengthType SduLength, PduLengthType* RxBufferSizePtr):DCM 接收开始。
BufReq_ReturnType PduR_DcmCopyRxData(PduIdType RxPduId, const PduInfoType* PduInfoPtr, PduLengthType* RxBufferSizePtr):DCM 接收数据复制。
BufReq_ReturnType PduR_DcmCopyTxData(PduIdType TxPduId, PduInfoType* PduInfoPtr, RetryInfoType* RetryInfoPtr, PduLengthType* TxDataCntPtr):DCM 发送数据复制。
void PduR_DcmTxConfirmation(PduIdType TxPduId, Std_ReturnType Result):DCM 发送确认。
void PduR_DcmRxIndication(PduIdType RxPduId, Std_ReturnType Result):DCM 接收指示。
void PduR_DcmTpTxConfirmation(PduIdType TxPduId, Std_ReturnType Result):DCM TP 发送确认。
void PduR_DcmTpRxIndication(PduIdIdType RxPduId, Std_ReturnType Result):DCM TP 接收指示。
PduR 配置类:
PDUR_E_UNINIT:模块未初始化。
PDUR_E_PARAM_POINTER:参数指针为空。
PDUR_E_PARAM:参数无效。
PDUR_E_ROUTING_PATH:路由路径错误。
PDUR_E_PATH_DISABLED:路由路径已禁用。
PDUR_E_BUSY:模块忙。
PDUR_E_BUFFER_OVERFLOW:FIFO 缓冲溢出。
校对轮次:L1 自动校对(2026-06-13)