Autosar COM通信PDU

news2025/1/18 16:57:22

文章目录

  • Autosar 中各个PDU所在示意图
  • PDU的分类
  • PDU 和 SDU 的关系
  • I-PDU
  • N-PDU
  • L-PDU
  • 相关协议
  • 其他参考

Autosar 中各个PDU所在示意图

请添加图片描述

PDU的分类

在Autosar 中,主要有 I-PDUN-PDUL-PDU 三种。

  • L-PDU:Data Link Layer PDU,数据链路层PDU
  • N-PDU:NetWork Layer PDU,网络层PDU
  • I-PDU:Interaction Layer PDU,数据交互层PDU

AUTOSAR Communication各层中对PDU的称呼如下表:
在这里插入图片描述

PDU 和 SDU 的关系

PDU:Protocal Data Unit,协议数据单元
PDU由SDU和PCI组成;
每个PDU相当于CAN协议中的一帧

SDU: Service Data Unit,服务数据单元
可以理解为CAN数据帧(报文)中的数据域。

PCI: Protocol Control Information,协议控制信息
含有源地址和目的地址信息等控制信息,可以理解为CAN数据帧中的控制域。

SDU对于该协议而言只是data(plain bytes),协议规定了PCI,供发送端和接收端进行编解码使用。

发送端使用PCI将SDU封装,就是PDU,即:PDU = PCI + SDU。
如果SDU数据超过PDU发送的最大数据,分解成几个发送。

I-PDU

交互层PDU,一般而言对于应用信号类型的通信由 xxxIf层与PduR直接交互,对于诊断大数据类型需要经过Tp层中转为N-PDU后再打包重组成I-PDU。

N-PDU

N-PDU即网络层PDU,在TP层与If层之间传输,其组成:N_AI + N_PCI + N_Data。
在这里插入图片描述

  • N_AI:Address Information,包含源地址、目标地址、寻址方式
  • N_PCI:协议控制信息,表示帧类型:SF,FF,CF,FC
  • N_Data:数据

在这里插入图片描述

L-PDU

CAN L-PDU包含CAN ID、Data Length、Data,而这三个信息就是我们常说的HOH(Hardware Object Handle),HOH又进一步地细分HRH(Hardware Receive Handle)和HTH(Hardware Transmit Handle)。

在以CAN通信为例,在CAN Driver接收总线上传来的信号电平之后生成L-PDU,L-PDU传输至CANIf

相关协议

  • ISO 11898-1(Road vehicles - Controller area network -Part1:Data link layer and physical signalling)
  • ISO 15765-2:2011 - Road vehicles – Diagnostics on Controller Area Networks (CAN) – Part 2: Transport protocol and network layer services

其他参考

  • https://blog.csdn.net/weixin_42438100/article/details/115528528
  • https://blog.csdn.net/initiallizer/article/details/130040286
  • https://blog.csdn.net/Kidwish_mini/article/details/131935005
  • https://zhuanlan.zhihu.com/p/593249302

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt/QML编程学习之心得:如何添加资源文件到QML工程(十一)

Qt作为一种GUI界面编辑工具,在嵌入式编程中也大受欢迎,而进一步QML出现了,QML我理解也是一种资源文件,因为像其他资源文件一样添加进工程的。那么一个图片如何增加进资源文件呢?这个的确很基础,就是把资源文…

JavaEE 多线程

JavaEE 多线程 文章目录 JavaEE 多线程引子多线程1. 特性2. Thread类2.1 概念2.2 Thread的常见构造方法2.3 Thread的几个常见属性2.4 启动一个线程2.5 中断一个线程2.6 等待一个线程2.7 获取当前线程引用2.8 休眠当前线程 3. 线程状态 引子 当进入多线程这一块内容时&#xff…

Redis中分布式锁的使用

在分布式系统中,如果使用JVM中的同步锁在高并发的场景下仍然会产生线程安全问题。首先我们来查看在多个服务器时为什么会产生线程安全问题,有这样一个案例,有一件商品购买规则为一个用户只能购买一次,如果使用同步锁锁住用户id&am…

vue3中自定义hook函数

使用Vue3的组合API封装的可复用的功能函数 自定义hook的作用类似于vue2中的mixin技术 自定义Hook的优势: 很清楚复用功能代码的来源, 更清楚易懂 案例: 收集用户鼠标点击的页面坐标 hooks/useMousePosition.ts文件代码: import { ref, onMounted, onUnmounted …

【读书笔记】微习惯

周日晚上尝试速读一本书《微习惯》,共七章看了下目录结构并不复杂,计划每章7-8分钟读完, 从20:15-21:00。读的时候,订下闹钟,催促着自己的进度。边读边记了一些要点和微信读书里面的划线。 第六章实践内容最为丰富&…

1949-2021年全国31省铁路里程数据

1949-2021年全国31省铁路里程数据 1、时间:1949-2021年 2、指标:时间、省份、铁路里程 3、范围:包括31省 4、数据缺失情况说明:西藏2005年之前存在缺失,其余30省份1978-2020年无缺失 5、来源:各省统计…

C++实现DFS、BFS、Kruskal算法和Prim算法、拓扑排序、Dijkstra算法

背景: 实现要求: 根据图的抽象数据类型的定义,请采用邻接矩阵来存储图1,采用邻接表来存储图2,并完成如下操作:对图1无向图进行深度优先遍历和广度优先遍历。对图1无向图采用Kruskal算法和Prim算法得出最小…

uni-app 微信小程序之自定义navigationBar顶部导航栏

文章目录 1. 实现效果2. App.vue3. pages.json 配置自定义4. 顶部导航栏 使用 微信小程序自定义 navigationBar 顶部导航栏,兼容适配所有机型 1. 实现效果 2. App.vue 在App.vue 中,设置获取的 StatusBar,CustomBar 高度(实现适配…

【云原生Prometheus篇】Prometheus PromQL语句详解 1.0

文章目录 一、前言1.1 Prometheus的时间序列1.1.1 指标名称1.1.2 标签1.1.3 使用的注意事项 1.2 样本数据格式1.3 Prometheus 的聚合函数 二 、PromQL 理论部分2.1 PromQL简介2.2 PromQL的数据类型2.3 时间序列选择器2.3.1 瞬时向量选择器 (Instant Vector Selector…

python装饰器解析(关键点:高阶函数、嵌套函数)(参数化装饰器、类装饰器)

文章目录 Python装饰器解析什么是Python装饰器基础理解 如何创建装饰器(关键点:高阶函数、嵌套函数)创建基础装饰器 使用装饰器使用示例 装饰器的返回值参数化装饰器创建参数化装饰器语法示例使用示例 类装饰器创建类装饰器语法示例使用示例 …

使用postman请求x5接口

x5接口简介 1.接口样例 {"header"{"appid":"bpmnew_fanwei","sign":"C033162E86E4CADE80C7EB44D68A5AD2","sign_type":"md5","url":"https://oa.mioffice.cn/api/bpm/xm/app/show/tod…

MySQL索引优化实战二

分页查询优化 很多时候我们业务中实现分页功能时可能会用如下SQL来实现: select * from employees LIMIT 10000,10表示从表中中区从10001行开始的10行记录,看似只查了10条记录,但是这条SQL是先读取10010条记录,然后抛弃前10000条…

【个人笔记】-python-强化学习-类-在内存中的值

{int} 数值 {int} 200 {float} 数值 {float} 0.9 {narray:维度} 数值 {narray:(1,)} [2.] {bool} True {bool} False {类名} 对象1 {类名} 对象2

LLM 开发模式 RAG,MRKL,Re-Act,Plan-Execute 模式对比

本心、输入输出、结果 文章目录 LLM 开发模式 RAG,MRKL,Re-Act,Plan-Execute 模式对比前言RAG、MRKL、Re-Act和Plan-Execute模式的一些对比花有重开日,人无再少年实践是检验真理的唯一标准 LLM 开发模式 RAG,MRKL&…

MySQL进阶_EXPLAIN重点字段解析

文章目录 第一节.准备1.1 版本信息1.2 准备 第二节.type2.1 system2.2 const2.3 eq_ref2.4 ref2.5 ref_or_null2.6 index_merge2.7 unique_subquery2.8 range2.9 index2.10 all 第三节. Extra3.1 No tables used3.2 No tables used3.3 Using where3.4 No matching min/max row3…

基于springboot实现的垃圾分类管理系统

一、系统架构 前端:html | layer | jquery | css 后端:springboot | mybatis 环境:jdk1.8 | mysql | maven 二、 代码及数据库 三、功能介绍 01. 登录页 02. 系统设置-用户管理 03. 系统设置-页面管理 04. 系统设置-角色管…

Python练习题(二)

📑前言 本文主要是【Python】——Python练习题的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&am…

三极管在数字电路中的应用

一、认识三极管 三极管拥有3个引脚,分别对应3个级:基极(Base)、发射极(Emitter)、集电极(Collector),如下图所示;下图横向左侧的是基极,带箭头的那个引脚就是发射极,另一个就是集电…

ElementPlus中 使用ElLoading.service, spinner: ‘el-icon-loading‘不生效

let downloadLoadingInstance ElLoading.service({ text: "正在下载数据,请稍候",spinner: el-icon-loading, background: "rgba(0, 0, 0, 0.7)", })使用以上代码时,加载的圆圈出不来,使用f12查看,即使能出…

代理模式介绍(静态代理、jdk动态代理、cglib代理)

一、静态代理 (一)定义 1、定义 为其他对象提供一种代理以控制对这个对象的访问; 2、涉及到的角色 (1)抽象主题角色:真实主题和代理主题的共同接口,便于在使用真实主题的地方都可以使用代理…