AUTOSAT-PDUR模块
PDUR
文章目录
- PDUR
- 一. PDUR 简介
- 二. PDUR 规范
- 三 . 协议数据
- 3.1 PDU 构成
- 3.2 PDU 类型
一. 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-CSDN博客