[AUTOSAR通信] - PDUR模块解读

点击订阅专栏不迷路

文章目录

  • 一、 PDUR模块概述
  • 二、功能描述
    • 2.1 发送路由功能
    • 2.2 接收路由功能
    • 2.3 网关路由功能
    • 2.4 路由控制功能
  • 三、配置項介紹
    • 3.1. PduRBswModules
    • 3.2. PduRGeneral
    • 3.3. PduRRoutingTables
    • 3.4. PduRRoutingPath
    • 3.5. PduRSrcPdu
    • 3.6. PduRDestPdu
  • 四、总结

>>>>>>>>>>返回专栏总目录《AUTOSAR从入门到精通专栏》<<<<<<<<<<

一、 PDUR模块概述

在AUTOSAR(汽车开放系统架构)通信体系里,PDUR模块堪称通信服务的关键枢纽。对于想要深入了解AUTOSAR通信的工程师、学生或爱好者而言,PDUR模块是无法绕过的重要环节。

从整个通信协议栈的架构来看,PDUR模块处于承上启下的核心位置,犹如一座桥梁,紧密连接着上层模块与下层接口模块或传输层模块,负责I - PDU(接口协议数据单元)的高效传输,扮演着内部消息路由器的关键角色。

具体而言,当底层传输层或者Interface抽象层将I - PDU传输给PduR时,PduR就像一位精准的“快递员”,迅速且准确地将这些数据单元传递到对应的服务模块。而当上层服务模块有I - PDU需要发送时,PduR又能及时接手,将消息顺畅地传输到相应的传输层或Interface抽象层。

在这里插入图片描述

依据在 AUTOSAR 架构中的位置与传输 I-PDU 时的角色,通信模块可分为三类:上层模块、下层接口模块和下层传输层模块。而PduR模块则是连接这些模块的枢纽,位于上层模块和下层模块之间,充当一个消息中转站。

  • 上层模块位于 PduR 上层,一般包括 Com、 Dcm 和 Cdd。
  • 下层接口模块位于 PduR 下层,一般包括 CanIf、 LinIf、 SoAdIf、 FrIf、 CddIf 等。
  • 下层传输层模块同样位于 PduR 下层,一般包括 CanTp、 LinTp、FlexRayTp 和 J1939Tp 等。

PDUR 模块工作时通过配置维护一张路由表,这张路由表犹如城市交通地图,清晰地规划着每个 PDU(协议数据单元)的 “出行路线”。
表内的每一条路径,都精准描述了一个 PDU 的发送或接收行程。值得注意的是,每条路径都仅有一个明确的源头,但目的地却可以是一个,也可能是多个。并且,接收路径与发送路径彼此相互独立。

当系统进行 PDU 的收发操作时,就如同快递员依据包裹上的收件地址派送快递一样,它会依据 PDU ID 这个 “地址标签”,迅速找到对应的路径以及目的地。随后,系统会调用相应模块的接口来完成数据传递。倘若遇到一对多的情况,即一个源头对应多个目的地,系统便会像多次派送不同地址包裹的快递员一样,多次调用相应接口,确保每个目的地都能准确无误地收到 PDU。

二、功能描述

接下来的示例我们均已CAN总线为例

2.1 发送路由功能

TxPdu 的发送存在两种方式,即 IF 和 TP。在 PduR 模块中,能够实现 TP PDU 的 1:1 发送路由,以及 IF PDU 的 1:N 路由。借助 PduR 模块的路由配置,可向上层屏蔽网络的具体细节,让上层模块能将精力集中于 TxPdu 报文数据的封装工作。

  • IF路由的流程可以参考下图,其下层模块位CanIf(CAN总线)

在这里插入图片描述

  • TP路由的流程可以参考下图,其下层模块位CanIf(CAN总线)

在这里插入图片描述

  • 数据发送完成后,下层模块需要有发送确认来通知上层模块数据发送完成,以便于更进一步的处理,该过程自下而上
    在这里插入图片描述

2.2 接收路由功能

RxPdu 的接收也有 IF 和 TP 两种方式。当 PDU 从下层模块接收到后,会依据 PduR 配置的路由路径传递到上层模块。这样上层模块无需关注网络细节,只需专注于接收 PDU 的解析。

下图所示为数据包的接收过程,由下层CanIf模块调用PduR_RxIndication()通知到PduR模块,PduR模块根据路径进一步找到其上层模块Com,进而调用Com_RxIndication()将数据包传输至上层模块Com

在这里插入图片描述

2.3 网关路由功能

PDU 的网关同样分为 IF 和 TP 两种方式。IF 网关支持 1:N 的转发,而 TP 网关仅支持 1:1 的 PDU 网关,且在这个过程中不涉及任何报文数据的变化,收发报文速率保持一致。需要特别注意的是,PDU 的网关不能将 IF 和 TP 混淆,也就是说接收 IF PDU 只能通过发送 IF PDU 进行转发,接收 TP PDU 只能通过 TP PDU 进行转发。

如下图所示为一个PDU数据包从CAN总线1路由到CAN总线2的过程

2.4 路由控制功能

PduR 的路由控制是以 RoutingPathGroup 为单位来进行 Enable/Disable 控制的。RoutingPathGroup 关联 N 个 PduRDestPdu,从而控制这些 PduRDestPdu 的使能状态。RoutingPathGroup 通过配置项 PduRIsEnabledAtInit 来决定初始化之后其关联的所有 PduRDestPdu 处于 Enable 还是 Disable 状态。在运行时,可通过调用 PduR_EnableRouting/ PduR_DisableRouting来控制 RoutingPathGroup 及其包含的 PduRDestPdu 的使能状态。未被 RoutingPathGroup 关联的 PduRDestPdu 在初始化之后状态一直为 Enable,且不可改变。

三、配置項介紹

本章节的配置项截图均来自网页端的配置工具<<<<EasySAR>>> (点击跳转)

3.1. PduRBswModules

该容器主要用来配置PduR的上下级模块,用到哪些模块就添加哪些模块,比如Com、CanIf、CanTp、Dcm等

序号配置项配置项描述
1PduRCancelReceiveTRUE:上层模块支持取消接收
FASLE:上层模块不支持取消接收
2PduRCancelTransmitTRUE:上层模块支持取消发送
FASLE:上层模块不支持取消发送
3PduRChangeParameterApiTRUE:上层模块支持改变参数功能
FASLE:上层模块不支持改变参数功能
4PduRCommunicationInterfaceTRUE:开启通信层模块接口
FALSE:不开启通信层模块接口
5PduRLowerModuleTRUE:是 PduR 的下层模块
FALSE:不是 PduR 的下层模块
6PduRRetransmissionTRUE:上层模块支持重发功能
FALSE:上层模块不支持重发功能
7PduRTransportProtocolTRUE:上下层模块支持通信协议传输
FALSE:上下层模块不支持通信协议传输
8PduRTriggertransmitTRUE:上下层模块支持触发发送
FALSE:上下层模块不支持触发发送
9PduRTxConfirmationTRUE:上下层模块支持发送确认功能
FALSE:上下层模块不支持发送确认功能
10PduRUpperModuleTRUE:是 PduR 的上层模块
FALSE:不是 PduR 的上层模块
11PduRUseTagTRUE:开启使用标志接口
FALSE:不开启使用标志接口
12PduRBswModuleRef引用 PduR 的上下层模块

在这里插入图片描述

3.2. PduRGeneral

配置PduR模块的一些通用配置

序号配置项配置项描述
1PduRDevErrorDetectTRUE:启动错误检查报告
FALSE:不启动错误检查报告
2PduRMetaDataSupportTRUE:支持启用元数据
FALSE:不支持启动元数据
3PduRVersionInfoApiTRUE:支持获取版本信息
FALSE:不支持获取版本信息
4PduRZeroCostOperationTRUE:支持零消耗功能
FALSE:不支持零消耗功能

在这里插入图片描述

3.3. PduRRoutingTables

该项主要是创建一个路由表,其下边可以配置多条路径PduRRoutingPath

序号配置项配置项描述
1PduRConfigurationIdPduR 配置集的标识符
2PduRMaxRoutingPathCnt限制最大可配置路由路径的数量
3PduRMaxRoutingPathGroupCnt限制最大可配置路由路径组的数量
4PduRMaxRoutingTableCnt限制最大可配置路由表的数量
5PduRRoutingPathGroup子容器
6PduRRoutingTable子容器
7PduRTpBufferTable子容器
8PduRTxBufferTable子容器

在这里插入图片描述

3.4. PduRRoutingPath

该配置项主要是用于配置一条路由路径,引用一个源头,及一个(或多个)目的地,用于Pdu的转发。

序号配置项配置项描述
1PduRSrcPduPduRRoutingPath的子容器,具体见PduRSrcPdu配置
2PduRDestPduPduRRoutingPath的子容器,具体见PduRDestPdu 配置

在这里插入图片描述

3.5. PduRSrcPdu

主要用来配置某一条路径的源头,通过与其源头模块引用同一个Pdu来建设起映射关系

序号配置项配置项描述
1PduRSourcePduHandleId源 Pdu 的标识符
2PduRSrcPduUpTxConf上层模块是否支持源 Pdu 发送确认
3PduRSrcPduRef一条路径中源模块引用的 EcuC 中的 PDU

在这里插入图片描述

3.6. PduRDestPdu

主要用来配置某一条路径的目的地,通过与其目的模块引用同一个Pdu来建设起映射关系

序号配置项配置项描述
1PduRDestPduDataProvision目的 Pdu 数据的提供方式
PDUR_DIRECT:直接提供数据
PDUR_TRIGGERTANSMIT:触发方式提供数据
2PduRDestPduHandleId目的 Pdu 处理的 Id
3PduRTpThreshold仅在 Tp 网关情况下使用,设置 Tp 阈值大小相应的发送数据
4PduRTransmissionConfirmation是否启用发送确认
5PduRDestPduRef一条路径中目的模块引用的 EcuC 中的 PDU
6PduRDestTxBufferRefPduR 模块存储数据的缓冲区,仅 IF 网关需要
7PduRDefaultValue子容器

在这里插入图片描述

四、总结

总结一下,PduR的核心配置是,路由路径的配置,每条路径包含源头和目的地,通过将源头和目的地上下层模块关联到ECUC模块中配置的同一个Pdu来建立起映射关系,通过源头的Pdu Id查找到对应路径及目标模块,达到转发的效果。

因篇幅问题,关于PduR模块的主要配置就介绍到这里。毕竟,光是嘴上说,始终如同纸上谈兵。强烈建议想要了解完整的模块配置,可以前往网页端的配置工具<<<<EasySAR>>> (点击跳转),亲自上手配置一番。

参考文档:Specification of PDU Router. AUTOSAR, 4.2.2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15943.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分治下的快速排序(典型算法思想)—— OJ例题算法解析思路

目录 一、75. 颜色分类 - 力扣(LeetCode) 运行代码: 一、算法核心思想 二、指针语义与分区逻辑 三、操作流程详解 四、数学正确性证明 五、实例推演(数组[2,0,2,1,1,0]) 六、工程实践优势 七、对比传统实现 八、潜在问题与解决方案 九、性能测试数据 十、扩展…

分层耦合 - IOC详解

推荐使用下面三种, 第一种多用于其他类 声明bean的时候&#xff0c;可以通过value属性指定bean的名字&#xff0c;如果没有指定&#xff0c;默认为类名首字母小写。 使用以上四个注解都可以声明bean&#xff0c;但是在springboot集成web开发中&#xff0c;声明控制器bean只能用…

PDF Shaper:免费多功能 PDF 工具箱,一站式满足您的 PDF 需求!

​PDF Shaper 是一款功能强大且完全免费的 PDF 工具箱&#xff0c;它几乎涵盖了日常 PDF 操作的方方面面&#xff0c;无论是转换、编辑还是处理&#xff0c;都能轻松搞定。以下是这款软件的详细介绍&#xff1a; 功能丰富&#xff0c;一应俱全 PDF 转换功能强大 PDF 转 Word&am…

未来替代手机的产品,而非手机的本身

替代手机的产品包括以下几种&#xff1a; 可穿戴设备&#xff1a;智能手表、智能眼镜等可穿戴设备可以提供类似手机的功能&#xff0c;如通话、信息推送、浏览网页等。 虚拟现实&#xff08;VR&#xff09;技术&#xff1a;通过佩戴VR头显&#xff0c;用户可以进行语音通话、发…

deepseek+“D-id”或“即梦AI”快速生成短视频

1、deepseek生成视频脚本 1.1、第一步&#xff1a;使用通用模板提出需求&#xff0c;生成视频脚本 对话输入示例脚本1&#xff1a; 大年初五是迎财神的日志&#xff0c;帮我生成10秒左右的短视频&#xff0c; 体现一家3口在院子里欢庆新年&#xff0c; 孩子在院子里放鞭炮烟…

在CT107D单片机综合训练平台上实现外部中断控制LED闪烁

引言 在单片机开发中&#xff0c;外部中断是一个非常重要的功能&#xff0c;它可以让单片机在检测到外部信号变化时立即做出响应。本文将详细介绍如何在CT107D单片机综合训练平台上使用外部中断来控制LED灯的闪烁。我们将使用两种不同的方式来实现这一功能&#xff1a;一种是在…

为什么推荐使用 LabVIEW 开发

在仪器行业的软件开发中&#xff0c;LabVIEW 以其图形化编程、快速原型开发、高效硬件集成的优势&#xff0c;成为自动化测试和控制系统的理想选择。尽管一些工程师仍然坚持使用 C 语言&#xff0c;但这更多是出于习惯&#xff0c;而非技术上的必然。LabVIEW 不仅支持 NI 硬件&…

力扣1448. 统计二叉树中好节点的数目

Problem: 1448. 统计二叉树中好节点的数目 文章目录 题目描述思路复杂度Code 题目描述 思路 对二叉树进行先序遍历&#xff0c;边遍历边对比并更新当前路径上的最大值pathMax&#xff0c;若当pathMax小于等于当前节点值&#xff0c;则好节点的数目加一 复杂度 时间复杂度: O (…

DeepSeek帮助做【真】软件需求-而不是批量刷废话

尝试给DeepSeek一份系统用例规约&#xff0c;让它帮判断哪些地方还没有覆盖涉众利益。结果见以下 需求工作的重点可以放在建模精细的真实现状流程和精细的真实涉众利益上&#xff0c;AI帮助推演系统需求。

【JVM详解五】JVM性能调优

示例&#xff1a; 配置JVM参数运行 #前台运行 java -XX:MetaspaceSize-128m -XX:MaxMetaspaceSize-128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio8 - XX:UseConcMarkSweepGC -jar /jar包路径 #后台运行 nohup java -XX:MetaspaceSize-128m -XX:MaxMetaspaceS…

Qt文本处理【正则表达式】示例详解:【QRegularExpression】

在 Qt 中&#xff0c;正则表达式是处理文本的强大工具&#xff0c;它能够帮助我们匹配、搜索和替换特定的字符串模式。自 Qt 5 起&#xff0c;QRegularExpression 类提供了对 ECMAScript 标准的正则表达式支持&#xff0c;这使得它在处理各种复杂的字符串任务时变得更加高效和灵…

【算法学习】拓扑排序(Topological Sorting)

目录 定义 例子 拓扑排序的实现 核心思想 实现方法 1&#xff0c;Kahn算法&#xff08;基于贪心策略&#xff09; 步骤&#xff1a; 用二维数组存储图的例子 用哈希表存储图的例子 2&#xff0c;基于DFS的后序遍历法 总结 拓扑排序的应用场景 1&#xff0c;任务调度 …

JavaEE-前端与后台的搭建

一.idea连接数据库 在使用 IntelliJ IDEA 连接数据库时&#xff0c;可以按照以下步骤操作&#xff1a; ### 1. 打开数据库工具窗口 - 在 IntelliJ IDEA 中&#xff0c;点击右侧的 Database 工具窗口&#xff0c;或通过 View -> Tool Windows -> Database 打开。 ### 2. 添…

华为Mate 70 Pro或推出全新版本

关于华为Mate 70 Pro或推出全新版本的相关内容&#xff1a;可能的版本及命名。 据数码博主“定焦数码”爆料&#xff0c;华为Mate 70 Pro将推出新版本&#xff0c;命名为“优享版”。这一命名方式与华为Mate 60系列中的Mate 60 Pro乐臻版类似&#xff0c;预计优享版也会是一个组…

Linux 实操篇 实用指令

一、远程登录到Linux服务器 &#xff08;1&#xff09;为什么需要远程登录Linux linux服务器是开发小组共享的正式上线的项目是运行在公网因此程序员需要远程登陆到Linux进行项目管理或者开发画出简单的网络拓扑示意图远程登陆客户端有Xshell6&#xff0c;Xftp6&#xff0c;我…

SpringBoot 统一功能处理之拦截器、数据返回格式、异常处理

目录 拦截器 一、什么是拦截器 二 拦截器的使用 三 拦截路径配置 四 拦截器的执行流程 统一数据返回格式 统一异常处理 拦截器 一、什么是拦截器 拦截器是Spring框架提供的核心功能之一&#xff0c;主要用来拦截用户的请求&#xff0c;在指定方法前后&#xff0c;根据业务…

Django学习笔记(第一天:Django基本知识简介与启动)

博主毕业已经工作一年多了&#xff0c;最基本的测试工作已经完全掌握。一方面为了解决当前公司没有自动化测试平台的痛点&#xff0c;另一方面为了向更高级的测试架构师转型&#xff0c;于是重温Django的知识&#xff0c;用于后期搭建测试自动化平台。 为什么不选择Java&#x…

Spring Cloud工程完善

目录 完善订单服务 启动类 配置文件 实体类 Controller Service Mapper 测试运行 完成商品服务 启动类 配置文件 实体类 Controller Service Mapper 测试运行 远程调用 需求 实现 1.定义RestTemplate 2.修改order-service中的OrderService 测试运行 Rest…

如何将网站提交百度收录完整SEO教程

百度收录是中文网站获取流量的重要渠道。本文以我的网站&#xff0c;www.mnxz.fun&#xff08;当然现在没啥流量&#xff09; 为例&#xff0c;详细讲解从提交收录到自动化维护的全流程。 一、百度收录提交方法 1. 验证网站所有权 1、登录百度搜索资源平台 2、选择「用户中心…

Linux ftrace 内核跟踪入门

文章目录 ftrace介绍开启ftrace常用ftrace跟踪器ftrace使用ftrace跟踪指定内核函数ftrace跟踪指定pid ftrace原理ftrace与stracetrace-cmd 工具KernelShark参考 ftrace介绍 Ftrace is an internal tracer designed to help out developers and designers of systems to find wh…