AUTOSAT-PDUR模块

PDUR

一. PDUR 简介

  • PDUR 示意图

在这里插入图片描述

  • PduR提供路I-PDU(Interaction LayerE Protocol Data Units)的路由服务。

  • PduR基于静态定义的I-PDU标识符来执行I-PDU的路由,在运行期间没有I-PDU被动态路由,即PduR的路由表是静态配置,配置完成后在运行时不支持更改。

  • PduR模块主要有两部分组成:

    • PduR路由路径:静态路由路径,描述的是每个被路由I-PDU的路由属性。

    • PduR引擎:根据PduR路由路径执行路由功能的代码,PduR引擎要处理。

      • 将I-PDU从Source路由到Destination;

      • 将Source的I-PDU的ID转换为Destination的I-PDU的ID(如:PduR_ComTransmit()到Canlf_Transmit(),PduR_CanlfTxConfirmation()到 Com_TxConfirmation());

二. PDUR 规范

  • 一些名词概念

    • Upper Layer Modulses(Up): PDU Router之上的模块。通常指是COM和DCM模块。
    • Lower Layer Modulse(Lo): PDU Router之下的模块。包括CanIf, LinIf, FlexRayIf, EthIf以及这几个模块对应的TP传输层模块。
    • PDU Router: PDUR模块将I-PDUs从一个模块传输到另一个模块。
  • PDUR模块在AUTOSAR架构中属于通信服务模块。PDU路由模块使用以下模块类型为I-PDU(交互协议数据单元)的路由提供服务。

​ (1)通讯接口模块,即使用Provider:Up或Provider:LoAPI的模块,如Com, IpduM, LinIf, CanIf, CanNm, Frlf, FrNm

​ (2)传输协议模块,即使用Provider:Up或Provider:LoAPI的模块,如j1939Tp, LinTp(part of LinIf), CanTp, FrTp, COM, DCM

  • PDU路由器模块依赖于使用的通信硬件抽象层模块和使用的通信服务层模块的API和能力。PDU Router模块基本需要的API功能有:

    • 通信接口模块:

      Transmit (e.g. CanIf_Transmit, FrIf_Transmit, LinIf_Transmit)

      ​ __CancelTransmit (e.g. CanIf_CancelTransmit, FrIf_CancelTransmit,LinIf_CancelTransmi)

    • 传输层模块:

      ​ _Transmit (e.g. CanTp_Transmit, FrTp_Transmit, LinTp_Transmit)

      ​ _CancelTransmit(e.g.CanTp_CancelTransmit,FrTp_CancelTransmit,LinTp_CancelTransmit)

      ​ _CancelReceive(e.g.CanTp_CancelReceive,FrTp_CancelReceive,LinTp_CancelReceive)

    • 使用TP传输层的上层模块:

      ​ · _StartOfReception (e.g. Dcm_StartOfReception)

      ​ · _CopyRxData (e.g. Dcm_CopyRxData)

      ​ · _CopyTxData (e.g. Dcm_CopyTxData)

      ​ · _TpRxIndication (e.g. Dcm_TpRxIndication)

      ​ · _TpTxConfirmation (e.g. Dcm_TpTxConfirmation)

    • 处理通信接口模块产生的I-PDU的上层模块:

      ​ · _RxIndication (e.g. Com_RxIndication),

      ​ · _TxConfirmation (e.g. Com_TxConfirmation),

      ​ · _TriggerTransmit (e.g. Com_TriggerTransmit)

  • I-PDU handling

    PDU Router模块不修改I-PDU,以一致的方式从源模块发送到目的模块。

    I-PDU ID Example :

在这里插入图片描述

三 . 协议数据

3.1 PDU 构成

  • PCI : Protocol Control Information
  • SDU: Service Data Unit (data Structure)
  • PDU : Protocol Data Unit

PDU = PCI + SDU

PCI 可以理解为头部信息,如 CanTp,在发送数据的时候,会添加 SF,CF,FF,FC信息等;data Structure 就是要发送的信息,用一个结构体表示,会有数据存储起始位置(指针),数据长度。

3.2 PDU 类型

  • L-PDU :对应链路层的PDU,一般来说,我们称接口层为链路层,如CanIf。
  • N-PDU: 网络层对应的PDU,一般来说。我们称传输层(xx_Tp)为网络层,如 Can_Tp
  • I-PDU:交互层(表示层)对应的PDU.

在这里插入图片描述

  • XX_If以上模块信息交互依赖I-PDU,注意:XX_If 和 XX_Tp模块的交互依赖N-PDU,一般来说,小数据传输时。用XX_If;大数据传输时,用XX_Tp。所以,在诊断的多帧传输时,XX_Tp层会将多个N-PDU缓存,直到一个完整的I-PDU接受完,之后通过PduR送给DCM. 即: I-PDU = n * N-PDU (n > 1)

参考文档 :

Specification of PDU Router

ication of PDU Router](https://www.autosar.org/fileadmin/standards/R23-11/CP/AUTOSAR_CP_SWS_PDURouter.pdf)

AUTOSAR通信篇-CAN网络通信(三:PduR)_autosar pdur-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VersionGod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值