【AutoSAR】详解PDUR模块

所谓梦想,就是让你感到痛苦的事情不再发生。

一、前言

在学习AUTOSAR通信栈时,我们会遇到多种PDU相关的缩写,如L-PDU、N-PDU、I-PDU等。理解这些缩写及其相互关系、以及它们与OSI七层模型的对应关系,对于掌握通信部分至关重要。接下来,我们结合OSI模型、PCI/SDU/PDU定义、PduR模块核心逻辑及数据流,带大家彻底搞懂AUTOSAR通信栈的核心原理。

PduR的全称为Pdu Router。 PduR模块属于BSW组件的一个模块,模块提供基于通讯接口(Com、LinIf、CanIf、CanNm)或传输协议(J1939Tp、CanTp、Com、DCM)的I-PDUS的传输、转发、路由功能。PduR模块处于通信模块的中心,提供基于接口模块的通用方法。

二、数据流

PduR位于通信模块的核心位置,为通信模块的PDU数据提供静态路由功能。PduR Routing Tables是静态路由表,是关于所有I-PDU的路由配置。

2.1、COM数据流

COM模块负责将上层RTE传递的应用信号打包成I-PDU,再通过PduR路由到底层,最终通过CAN总线发送;反之,底层接收的信号也通过PduR路由到COM,解包后传递给上层应用。完整数据流如下:

CAN driver <--(LPDU)--> CanIf <--(IPDU)--> PDU Router <--(IPDU)--> COM <--(Signals)--> RTE

  • CAN driver:负责接收、发送CAN信号;配置CAN通道、波特率、端口等硬件相关参数,直接与物理总线交互。

  • CanIf:对CAN驱动层进行封装,向上层提供统一接口和通知函数;实现DLC、ID到PDU的转换,完成L-PDU与I-PDU的封装/解封装。

  • PDU Router:核心是传递数据到对应的上层模块;通过预配置的路由表,实现I-PDU的精准转发,不参与数据修改。

  • COM:将上层RTE传递的Signals(信号)打包成I-PDU,或将接收的I-PDU解包为Signals;向上层提供接收、发送信号/帧的接口。

  • RTE:运行时环境,负责上层应用与COM模块之间的信号传递,是上层应用与BSW层的交互桥梁。

2.2、诊断数据流

诊断数据流主要用于ECU的诊断、刷写、故障检测等场景,PduR负责DCM与CanTp之间的I-PDU路由,完整数据流如下:

CAN driver <--(LPDU)--> CanIf <--(NPDU)--> CanTp <--(IPDU)--> PDU Router <--(IPDU)--> DCM

  • CanTp:遵循ISO15765协议,负责长I-PDU的拆包、组包;配置时间参数、回调函数等,实现N-PDU的生成与重组。

  • DCM:为上层应用提供UDS服务、OBD服务;生成诊断相关的I-PDU(如诊断请求/响应),解析接收的诊断I-PDU并执行对应逻辑。

三、AutoSAR与OSI模型对应关系

AUTOSAR的通信分层架构简化了OSI模型,核心层级与OSI模型的对应关系如下,每个层级均包含PCI(协议控制信息)和数据结构(data Structure),且遵循"PDU = PCI + data Structure""SDU = data Structure"的核心规则。

AUTOSAR层级 对应OSI模型层级 核心模块/PDU类型
交互层 会话层、表示层 COM、DCM,对应I-PDU
网络层(传输层) 网络层、传输层 CanTp、J1939Tp,对应N-PDU
数据链路层 数据链路层、物理层 CanIf、CAN Driver,对应L-PDU
应用层(逻辑) 应用层 上层应用,对应SDU(业务数据)

四、协议数据单元PDU

在上述数据流中,出现了三种协议数据单元:L-PDU、N-PDU、I-PDU,本章来讲解这些PDU的含义。

L-PDU:Data Link Layer PDU,数据链路层PDU,含ID、DLC、Data;

N-PDU:NetWork Layer PDU,网络层PDU,含N-PCI(单帧、首帧、连续帧、流控帧);

I-PDU:Interaction Layer PDU,数据交互层PDU,包含真正要发的数据,单帧传输时,I-PDU为L-PDU的Data,多帧传输时,I-PDU由多个 N_PDU 重组;

五、总结

1、定位:AUTOSAR BSW层通信模块的"中枢路由器",串联上层(COM、DCM)与下层(CanIf、CanTp、CAN driver),核心是路由转发,不修改任何数据;

  1. 核心机制:基于静态路由表(PduR Routing Tables)实现I-PDU的精准路由,路由规则在编译期确定,运行时稳定可靠,适配车载通信的高安全性需求;

  2. 关键数据流:普通数据流(COM信号)和诊断数据流(UDS)是最核心的应用场景,各模块分工明确,PduR在其中承担"承上启下"的路由核心作用;

  3. 层级与PDU关联:AUTOSAR通信层与OSI模型存在对应关系,PCI、SDU、PDU是数据传输的核心载体;I-PDU、N-PDU、L-PDU分别对应交互层、网络层、数据链路层,三者通过分帧/重组、封装/解封装实现数据传输,PduR仅负责I-PDU的路由。

PduR模块看似简单,却是车载通信的"隐形基石"------没有它,上层应用的信号和诊断数据无法精准传递到底层总线,不同模块间的通信也会陷入混乱。掌握PduR的路由逻辑、数据流,以及I-PDU/N-PDU/L-PDU的辨析,是理解AUTOSAR通信栈的关键一步。

相关推荐
星寂樱易李6 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
随身数智备忘录9 小时前
什么是设备管理体系?设备管理体系包含哪些核心模块?
网络·数据库·人工智能
第五文修10 小时前
手机OTG转TTL网口实现ping功能
网络·智能手机
云边云科技_云网融合10 小时前
企业大模型时代的网络架构五层演进:从连接到智能的范式重构
网络·重构·架构
xhbh66612 小时前
代理ARP (Proxy ARP) 是如何实现跨网段通信的?在Linux下如何配置?
服务器·网络·智能路由器·端口映射·映射
数智化管理手记13 小时前
精益生产3步实操,让现场从混乱变标杆
大数据·运维·网络·人工智能·精益工程
XiYang-DING13 小时前
【Java EE】TCP—可靠传输
网络·tcp/ip·java-ee
沃虎电子14 小时前
片式网络变压器:从“手工品”到“SMD元件”的产业跨越
网络·片式网络变压器
神奇小梵14 小时前
关于finalshell的使用
linux·服务器·网络
上海云盾-小余14 小时前
恶意爬虫精准拦截:网站流量净化与资源守护方案
网络·爬虫·web安全