【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通信栈的关键一步。

相关推荐
戮戮2 小时前
Spring Cloud Gateway 零拷贝参数校验:一种高性能网关架构实践
java·网络·架构·gateway
[ ]8983 小时前
Stack_MLAG_知识点梳理
网络·笔记·网络协议
上海云盾-小余3 小时前
精准抵御流量攻击:高防 IP + 游戏盾组合部署实战详解
网络·tcp/ip·游戏
盟接之桥3 小时前
盟接之桥®制造业EDI软件,打通全球供应链“最后一公里”,赋能中国制造连接世界
网络·安全·低代码·重构·汽车·制造
江畔何人初3 小时前
TCP的三次握手与四次挥手
linux·服务器·网络·网络协议·tcp/ip
志栋智能3 小时前
超自动化巡检:实现运维“事前预防”的关键拼图
大数据·运维·网络·人工智能·机器学习·自动化
七夜zippoe3 小时前
OpenClaw 技能开发实战:从零到一
运维·服务器·网络·openclaw·技能开发
oi..3 小时前
《Web 安全入门|XSS 漏洞原理、CSP 策略与 HttpOnly 防护实践》
前端·网络·测试工具·安全·web安全·xss
加勒比之杰克4 小时前
从阻塞 IO 到 epoll:把 Linux 网络 IO 一次讲透
linux·网络·windows·select·多路转接·epoll·poll