【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)– RTECAN 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)– DCMCanTp遵循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-PDUData Link Layer PDU数据链路层PDU含ID、DLC、DataN-PDUNetWork Layer PDU网络层PDU含N-PCI(单帧、首帧、连续帧、流控帧)I-PDUInteraction Layer PDU数据交互层PDU包含真正要发的数据单帧传输时I-PDU为L-PDU的Data多帧传输时I-PDU由多个 N_PDU 重组五、总结1、定位AUTOSAR BSW层通信模块的“中枢路由器”串联上层COM、DCM与下层CanIf、CanTp、CAN driver核心是路由转发不修改任何数据2. 核心机制基于静态路由表PduR Routing Tables实现I-PDU的精准路由路由规则在编译期确定运行时稳定可靠适配车载通信的高安全性需求3. 关键数据流普通数据流COM信号和诊断数据流UDS是最核心的应用场景各模块分工明确PduR在其中承担“承上启下”的路由核心作用4. 层级与PDU关联AUTOSAR通信层与OSI模型存在对应关系PCI、SDU、PDU是数据传输的核心载体I-PDU、N-PDU、L-PDU分别对应交互层、网络层、数据链路层三者通过分帧/重组、封装/解封装实现数据传输PduR仅负责I-PDU的路由。PduR模块看似简单却是车载通信的“隐形基石”——没有它上层应用的信号和诊断数据无法精准传递到底层总线不同模块间的通信也会陷入混乱。掌握PduR的路由逻辑、数据流以及I-PDU/N-PDU/L-PDU的辨析是理解AUTOSAR通信栈的关键一步。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2501742.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!