跳至内容

【autosar】Classic PduR 模块详解

AUTOSAR Classic PduR 模块详解:作用、路由原理、典型配置项,以及与 COM 和 CanIf 的关系。

AUTOSAR Classic PduR 模块详解:路由中枢、配置与使用场景

PduR(PDU Router) 是 AUTOSAR Classic 通信栈中的路由中枢,负责把一个模块发来的 PDU 转发到另一个模块。它不解析信号,也不直接控制硬件,而是完成通信路径的“接力”。

1. PduR 的作用

  • 统一路由上层与下层模块之间的 PDU
  • 解耦 COM、CanIf、CanTp、Dcm 等模块
  • 支持网关转发
  • 支持路由组控制和部分高级缓存场景

2. PduR 的工作原理

PduR 的本质是“运行时按静态路由表转发 PDU”。发送路径上,它把 COM 发来的 I-PDU 转给 CanIf;接收路径上,它把 CanIf 收到的 PDU 分发给 COM 或其他上层模块。

flowchart LR
    COM[COM] --> PDUR[PduR]
    PDUR --> CANIF[CanIf]
    CANIF --> CAN[CAN Driver]
    CAN --> BUS[(CAN Bus)]
    BUS --> CAN
    CAN --> CANIF
    CANIF --> PDUR
    PDUR --> COM

3. 典型配置项及作用

常见/典型名称 作用
PduRDevErrorDetect 开发错误检测
PduRVersionInfoApi 版本信息接口
PduRConfigurationId 配置版本标识
PduRRoutingPathList 路由路径列表
PduRSrcPduRef 源 PDU 引用
PduRDestPduRef 目的 PDU 引用
PduRSrcModuleRef 源模块引用
PduRDestModuleRef 目的模块引用
PduRRoutingPathGroup 路由组
PduRRoutingType 路由类型/方向
PduRBufferLength 缓冲区长度
PduRTpBuffer 传输层缓冲
PduRMetaDataLength 元数据长度

4. 常见使用场景

  • COM 与 CanIf 之间的普通通信
  • UDS 诊断链路:CanIf ↔ PduR ↔ CanTp ↔ Dcm
  • CAN/CAN、CAN/LIN 等网关转发
  • 按条件启停部分通信路径
  • 多车型配置复用

5. 与 COM、CanIf 的关系

COM 负责“内容”,PduR 负责“路径”,CanIf 负责“接口适配”。因此,PduR 是 AUTOSAR Classic 里把各类通信模块连接起来的关键路由层。

sequenceDiagram
    participant App as Application
    participant COM as COM
    participant PduR as PduR
    participant CanIf as CanIf

    App->>COM: 更新信号
    COM->>PduR: 发送 I-PDU
    PduR->>CanIf: 路由转发
    CanIf-->>PduR: TxConfirmation / RxIndication
    PduR-->>COM: 上报结果

 

7. 小结

PduR 是 AUTOSAR Classic 的“PDU 路由中心”,不负责信号语义,但负责把通信模块之间的路径打通。

发送评论