PDU的全称是Protocol Data Unit,也就是协议数据单元的意思,而在Autosar的规范中描述的是自动共享服务器基本软件模块I-PDU多路复用器I-PDU M的功能、api和配置。

PDU多路复用意味着使用PDU(协议数据单元)的相同PCI(协议控制信息),其SDU(服务数据单元)的多个唯一布局。选择器字段是多路PDU的SDU的一部分。它用于区分多路pdu之间的内容。

pdu的多路复用是目前已知的来自CAN的方法,但并不局限于此通信系统。(而对于CAN通信不懂的同学,可以在网上查一查看看,关于CAN的资料再网上还是蛮多的)。

在发送方端,I-PDU多路复用器模块负责将适当的I-PDU从COM组合到新的、多路复用的I-PDU,并将它们发送回PDU Router。

在接收端,它负责解释多路I-PDU的内容,并考虑到选择器字段的值,为COM提供适当的分离I-PDU。

对于多路i-pdu的传输,则是不能考虑最小的观测数值的。而对于具有静态布局的容器PDU的传输,如果两个或多个包含的PDU每个都具有MDT配置,则不能保证最小的观测数值。

而对于各个模块的依赖性,因为博主是做跟Autosar相关的技术研究,所以以下只列出跟Autosar相关的Dependencies to modules,如果如果其他人做的不属于这个方面的技术,就仅当了解好了,下面我们看一下这个图,是来自Autosar的SWS里的I-PDU Multiplexer文档。

IPDU-M被AUTOSAR中的PDU Router旁边;而IPDU-M则不能直接访问AUTOSAR OS,有的同学可能不太理解AUTOSAR OS到底是什么,在这里可以把它暂时理解成一个系统,后面我会进行一个详细的讲解。

而RTE又包含着BSW-Scheduler,这里有可能大家又不理解了,我直接上个图吧,看着图可能会好理解一些,这是AUTOSAR的基本架构,后面我有可能会说,看看时间的安排了。

IpduM模块依赖于BSW调度器,分别在IpduMRx时间库或MTx时间库中配置的时间点调用IpduM_MainFunctionRx和IpduM_MainFunctionTx。

下面总结了IpduM所需要的来自PDU Router的功能:指示输入的多路复用或包含的i-pdu;输出i-pdu的发送接口;在外部去证实来自I-PDU的发送的报文。

以下列表总结了IpduM模块为PDU Router提供的功能:可进行多路复用的输入I-pdu和待拆卸的输入容器-pdu的指示接口;发送接口为多路复用的i-pdu和i-pdu相结合,它们将被组装成一个容器PDU;对已传输的IPDU的接口进行确认。

而PDU Router模块的配置必须来自IPDU,它属于多路复用的I-pdu,通常表示为多路复用的I-PDU的静态或动态部分,都被Router到IPDUM模块。

PDU-Router(例如查找表)的配置必须能够使相关的I-PDU被Router到IPDUM。

而COM的话由于IpduM模块的配置依赖于自动共享COM模块的相应配置。对于每个多路复用的I-PDU,静态部分和动态部分的每个布局都需要有不同的i-pdu。对COM不了解的同学网上的资料也挺全的,可以去自行了解。IpduM进一步假设正确的字段选择器的值已经包含在表示动态部分的COM的模块I-PDU中。而所包含的i-pdu则不依赖于COM配置。

IPDUM 的定义和布局

多路复用的I-PDU由静态部分和一个动态部分组成,其中静态部分由零个或多个信号或信号组组成。而动态部分由选择字段和一个或多个信号或信号组组成; I-PDU的动态部分可与C语言的集合相媲美。根据I-PDU内的选择器字段的值,系统会选择I-PDU的实际布局。

静态部件和动态部件的位置可根据I-PDU进行配置。静态部分和动态部分可以被细分为不同的部分。对于每个多路复用的I-PDU,只能定义一个选择器字段。选择器字段具有1到16个连续位之间的可配置大小,其位置可以通过配置来定义,选择器字段的值解释了如何去定义I-PDU的动态部分的内容。

静态部分有一个COMI-PDU,一个复用IpduMI-PDU的动态部分的每个布局有一个COMI-PDU,因此IpduM最多组合两个COM的I-PDU。对于通过IpduM模块的I-PDU数据传输路径,在IpduM模块内分配了一个缓冲区。这个缓冲区需要初始化,因为它可能在COM模块完全填充数据之前传输。此缓冲区的初始化数据来自COM模块配置的初始值。为了进行优化,缓冲区可以在配置时计算出初始位模式,然后在运行时进行复制。

在COM内部,静态部分有独立的i-pdu,多路的I-PDU每个动态部分都有一个。静态部分和动态部分在COM中被视为单独的i-pdu,并且它们有属于自己的I-PDU ID。

IpduM模块提供了一个IpduM_Transmit功能,使PDU路由器能够启动一个I-PDU的传输;每个输出的I-PDU都有一个初始值,因此,在静态和动态部件从COM发送到IpduM之前,IpduM模块传输I-PDU,则传输由配置定义的值。如果多路I-PDU仅通过更新动态或静态部分来触发发送,那么如果在两次传输之间进行多次更新,非触发部分可能会被覆盖。

IpduM模块通过分离的两个来自PDU Router模块的两个传输请求来接收多路I-PDU的静态和动态部分。

有时,IpduM模块可能不只是发送本地存储的部分,因为这些部分可能包含过时的信息,例如update bits。因此,IpduM支持每个部分都有一个可配置的即时更新机制。

通信硬件抽象(CAN接口、Lin接口、FlexRay接口)接收的每个I-PDU都给PDU Rouer。PDU Router将i-pdu多路router到IpduM模块。IpduM模块分别将多路I-PDU的静态和动态部分路由到其目的地。在配置时就可以知道,传入的I-PDU ID对应于配置了静态部分的多路复用的I-pdu。仅通过I-PDUID就可以确定是否存在静态部件。

没有要求处理或通知配置错误的部件。因此,如果接收到的I-PDU包含未在此ECU上为接收配置的段,则将忽略它们。此外,如果I-PDU配置的PduLength为0,它也将被忽略,因为不能配置有意义的处理。

协议数据单元I-PDU Multiplexer深入理解相关推荐

  1. 协议数据单元PDU和服务数据单元SDU

    关注汽车工程师谈技术,一起学习技术 目录: 1. 协议数据单元PDU和服务数据单元SDU 2. AutoSAR中PDU和SDU的应用 3. 总结 ->返回总目录<- 协议数据单元PDU 大 ...

  2. PDU (Protocol Data Unit) - 协议数据单元

    协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位. 物理层的PDU是数据位(bit) 数据链路层的PDU是数据帧(frame) 网络层的PDU是数据包(pack ...

  3. CN_计算机网络体系结构概念@IP数据报(分组)结构@各层报文(PDU)之间的关系@PDU协议数据单元

    文章目录 计算机网络的组成 组成部分角度 工作方式角度 功能组成 计算机网络数据单元基本联系 基本概念 实体 对等层 对等实体 协议@接口@服务 协议 接口 服务访问点SAP 服务 服务原语 报文(协 ...

  4. PDU(Protocol Data Unit)协议数据单元

    协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位. 协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),数据链路层的 PD ...

  5. 传输协议数据单元TPDU的类型及英文全称

    学习过程中总是有很多英文缩写,知道了其全称之后更容易理解记忆. 传输协议数据单元TPDU:Transport Protocol Data Unit CR(Connect Request):连接请求. ...

  6. 【UDS】ISO15765-2之协议数据单元

    文章目录 简介 结构格式 分类 1.单帧SF 2.首帧FF 3.流控帧FC 4.连续帧CF 总结 ->返回总目录<- 简介 网络层协议数据单元(N_PDU,Network_Protocol ...

  7. srsLTE源码学习:协议数据单元PDU:pdu.h

    TX与RX TXD 发送数据 Transmit(tx) Data 的简写形式. RXD 接收数据 Receive(rx) Data 的简写形式. x没有特定的意思,就是一开始这么写,之后都这么用了,约 ...

  8. PDU——协议数据单元

    PDU(Protocol Data Unit)--协议数据单元 PDU指的是各层数据封装的单位. 在TCP/IP层级结构中每层都有特定的PDU,对应关系如下表: 层级 PDU 应用层 数据报文(Dat ...

  9. 黑猫带你学UFS协议第11篇:两万字详解UFS协议信息单元(UPIU)

    1 前言 本文依据UFS3.1 JEDEC协议.网络资料及个人工作经验整理而成,如有错误请留言. 文章为个人辛苦整理,付费内容,禁止私自转载. 本文结合UFS3.1 JEDEC协议手册查看效果更佳. ...

最新文章

  1. 李飞飞点赞的NeurIPS新赛道,刚刚公布了第一批数据集benchmark入围名单
  2. Javascript报错Failed to execute ‘querySelectorAll‘ on ‘Document‘: ‘#123456‘ is not a valid sele
  3. mysql自带加密解密字符集问题
  4. Pytorch 中 matmul 广播
  5. Visual C++6.0下载地址与安装步骤、使用教程
  6. vue 一直登录错误_vue中路由拦截无限循环的情况
  7. html table 转置,jQuery+CSS实现的table表格行列转置功能示例
  8. win10平板模式_电脑也能当平板用?并可以轻松实现分屏
  9. xadmin可能是帮助我完成django网站的一大助力
  10. ntfs是什么硬盘?ntfs硬盘如何在苹果电脑使用
  11. 使用福昕PDF编辑器裁剪PDF页面
  12. 什么鬼,脂肪填充脸能维持几年?这是能说的吗
  13. HDMI/DVI 显示器热插拔与检测原理(HPD)
  14. AutoCAD Civil 3D-加宽与超高
  15. 基因组dna,sm,rm序列类型说明
  16. 二 蓝牙系统架构 - 2.1 核心系统架构
  17. 小程序引入字体集方式
  18. 实验楼Linux基础挑战2答案,实验楼-Linux基础-实验二 Linux的基本概念及操作
  19. Qt数据库应用17-通用数据库请求
  20. c语言浮点数能用八进制输出不,深析C语言浮点型数据的输入输出

热门文章

  1. 打开天正显示服务器连接不可用,打开天正提示找不到可用cad版本 - 卡饭网
  2. JavaScript基本数据类型(不含Symbol类型) 思维导图
  3. mysql撤销usage_MySQL撤销权限(Revote语句)
  4. JavaScript类型检测小结-http://bbs.51js.com/viewthread.php?tid=82661
  5. 【AI in 美团】 深度学习在OCR中的应用
  6. 制定带铜衬轴套零件的加工工艺,设计铣20台面的铣床夹具(含全套CAD图纸)
  7. mysql版本:'for the right syntax to use near 'identified by 'password' with grant option'
  8. java中 jacob作用_jacob在java系统中的应用配置
  9. MacBook安装Git三种方式
  10. 为什么hp打印机一直显示正在打印_惠普打印机为什么一直打印不停