Autosar PDU Router

Communication Structure
Autosar的通讯相比于传统的通讯架构发生了根本性的变化。其核心模块就是多出了PDU Router。PDU Router在ECU通讯中的作用和网络里的路由器的功能很类似,就是对一个又一个I-PDUs(Interaction Layer Protocol Data Units,可以理解数据包,由数据、长度和I-PDU ID组成。)进行转发,连接通信服务层与ECU抽象层。

关键缩写
数据链路层:L-PDU
网络层(通常用的是TP层):N-PDU交互层:I-PDU
PDU

PDU结构
PDU
要了解Autosar中的通讯栈,就必须了解 PDU(Protocol Data Unit)。PDU是Autosar通讯中重要的概念,每个PDU包含着SDU和PCI,每个PDU拥有独自的ID用于互相区分。非TP层的I-PDU数据不应超过8字节的长度。这确保了可以在单个CAN消息中发送I-PDU。
SDU
SDU(Service Data Unit)是PDU中的一部分,SDU是上层在传输数据的请求中传递给下层的数据,同样也是下层模块收到数据经“分离”后传递给上层的数据。
PCI
PCI(Protocol Control Imformation)也是PDU中的一部分,PCI信息在SDU从一个协议层的实体传递到另一个协议层时,是非常必须的。因为PCI中包含着源地址与目标地址信息。
PDU Router
PDU Router(PduR) 模块主要由以下两部分组成:
(1)PDU Router routing paths:这里描述了每个I-PDU 的路由路径。
(2)PDU Router Engine:这部分代码用于执行路由命令,包括:
把每个I-PDU从来源送到目的地。翻 译 I-PDU ID 来 选 择 相 应 的 Action( 比 如 由 PduR_Transmit 到CanIf_Transmit , PduR_CanIfTxConfirmation 到 Com_TxConfirmation )。

PDU Router Structure showing FlexRAy, CAN and LIN
说的直白一点,就是由于COM模块调用的 Com_SendSignal 函数,只有一个有意义的Signal Id 信息。PduR需要根据这个Signal Id找到该信号所在的PDU Id,执行正确的命令。同理,信号接收也就是其逆操作。

CAN收发流程
接收与发送差不多,这边以普通的CAN信号发送为例(不需要经过CAN TP层),描述了从应用层 -> COM -> CANIF的流程图。

AUTOSAR COM

PDU Router
Autosar 通讯栈

参考资料
AUTOSAR中的CAN信息是如何转换的(曹文锋)AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf CommunicationStack_gosda.pdf AUTOSAR_SWS_COM.pdf AUTOSAR_SWS_CANInterface.pdf AUTOSAR_SWS_PDURouter.pdf
公众号:QCECUSJ

氨气“ 携手进步 共同成长 ”
Autosar · 目录
下一篇·Autosar NVM 介绍
阅读原文