Communication Structure文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
Autosar的通讯相比于传统的通讯架构发生了根本性的变化。其核心模块就是多出了PDU Router。PDU Router在ECU通讯中的作用和网络里的路由器的功能很类似,就是对一个又一个I-PDUs(Interaction Layer Protocol Data Units,可以理解数据包,由数据、长度和I-PDU ID组成。)进行转发,连接通信服务层与ECU抽象层。文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
关键缩写文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
-
数据链路层:L-PDU
-
网络层(通常用的是TP层):N-PDU
-
交互层:I-PDU
PDU
文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
PDU结构文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
PDU
要了解Autosar中的通讯栈,就必须了解 PDU(Protocol Data Unit)。PDU是Autosar通讯中重要的概念,每个PDU包含着SDU和PCI,每个PDU拥有独自的ID用于互相区分。非TP层的I-PDU数据不应超过8字节的长度。这确保了可以在单个CAN消息中发送I-PDU。文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
SDU
SDU(Service Data Unit)是PDU中的一部分,SDU是上层在传输数据的请求中传递给下层的数据,同样也是下层模块收到数据经“分离”后传递给上层的数据。文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
PCI
PCI(Protocol Control Imformation)也是PDU中的一部分,PCI信息在SDU从一个协议层的实体传递到另一个协议层时,是非常必须的。因为PCI中包含着源地址与目标地址信息。文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
PDU Router
PDU Router(PduR) 模块主要由以下两部分组成:文章源自线束工程师之家-https://www.suncve.com/autosar-pdu-router/
(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
推荐阅读: