【好书推荐】车载以太网权威指南

news2024/9/21 20:54:15

20年后,会令你失望的不是做过的事,而是你没做过的,所以解开帆索,从安全的港湾出发,乘风而行,去探索、去梦想、去发现!

Twenty years from now you will be more disappointed by the things that you didn’t do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover.

  • 美国文学作家 Mark Twain 马克·吐温

image-20221231165612999

推荐理由

一直以来,CAN 总线在汽车行业通信方式上一直是大哥大的存在,无人能出其右。CAN 总线的优点很多,然而缺点也很明显,就是速率太低。由于在智能驾驶、智能座舱、车联网等领域对传统汽车的改造,对速度的要求就更高了,CAN 明显心有余而力不足。

虽说汽车行业也为此弄了些协议来加速,但是多以失败告终,甚至在本文不配拥有姓名。在传统通信行业扎根多年的老巨头 以太网 看不下去了,稍加改造便在汽车通信协议里称为香饽饽。与 CAN 成为当今车载通信的 绝代双骄

以太网 甚至开始蚕食 CAN 的领地,开始在低速领域上试图取代 CAN。兴许某天,CAN 会对以太网大声惊呼: 我以为你是来辅佐我的。

关于车载以太网的书籍真是相当少,尤其这种大而全的大部头实在难得。差不多把车载以太网的知识点都讲的差不多了。唯一的不足就是这本书写于 2014 年,而车载通信在 2020 年后飞速发展,不过有些东西已经大有不同,总体还都只是那些东西罢了。

笔记

  • 以太网特色:全双工,分组交换,基于地址的消息传输。

  • DTC (读取诊断故障码)

  • CAN 由博世推出,是首个车载网络的全球行业标准。

  • 分组交换:将大的包拆分,这些可能走着不同路径,最后组装在一起。

  • 以太网一般采用的是星型拓扑结构(中间是集线器或者交换机)。多个星型拓扑结构组合,会成为更复杂的会成为树形拓扑结构

  • 性能指标

    吞吐量:用于测量单位时间内能够传输的最大潜在数据量,通常使用的单位是bps(bit每秒)

    带宽:通常指网络的数据传送量,用于表示在单位时间内从一点传输到另一点的最大数据量。
    带宽和吞吐量通常可以交换使用,但不是完全相同。

    时延:从发送到接收到的时间。

  • 通信操作方式:单工,半双工,全双工。

  • UDS:联合诊断服务。

  • DoIP :基于互联网协议的诊断。

  • 以太网相关的标准 IEEE802.3。

  • 物理层是OSI参考模型的底层,也简称为 phy

  • 博通开发的单对电缆是车载以太网能够普及的关键因素之一:boardr-reach 利用 66Mbaud 的三元信号就实现了100Mbps的速度,这样使得频率变低,布线成本也变得更低。

  • ieee802 将数据链路层(不仅仅是以太网)分为两个子层:逻辑链路控制子层(LLC,比MAC处于更高层,由802.2定义),媒体介入控制子层(MAC),LLC 层是为了让上层感觉不到各种 LAN 的存在,但是在以太网中没有被实现。

  • 不断发展成功的 DIX 以太网II 标准成为了正式的 802.3 标准。

  • XXBASE-YZ: XX为速度,base代表基带信号,Y代表介质类型,比如T代表双绞线,如果是T,那么Z代表双绞线对数。T1代表单对双绞线。

  • 一般车载以太网不支持自协商速度和半双工,因为太慢。

  • BASET1 的产生,是以太网进入汽车行业的一个关键。只有两根线让成本变低,重量低,同时让车联网的性能大大提升。与标准以太网兼容。

  • MAC 地址中的前三个字节为组织唯一标识符(OUI),通过这个可以知道是哪个厂家。
    OUI 的第一个字节中的 bit10 则为统一管理(全球唯一),为 1 则为本地管理,保证本地不冲突即可。

  • U/L标志位: OUI 的第一个字节的 bit00 时,指示单个设备,即单播报文。为 1 时,标记为组播地址(只会作为目的MAC,对于源mac没有意义)。所有 mac 全为 1 为广播 mac 地址。

  • 以太网帧格式(目前以太网II格式仍是主流)

  • 前导码和帧开始符(SFD)起到告知别的设备要做好接收准备。(ieee802.3规定,不属于以太网帧的部分,不计入帧长度)

  • 源地址以后是2个字节的类型(指明是哪些上层协议)。(在ieee802.3标准中,因为遵循的标准不一样,可以是类型或者长度,如果数值大1500,则认为是类型,作为类型也更常见,这种做法是的以太网II格式与802.3的版本得到兼容),数据区大小为 46-1500 字节。

  • 以太网扩展帧(不属于标准以太网帧)

    MAC 控制帧,目前仅有暂停帧,用于流量控制使用。暂停帧包含暂停时间,要求接受方暂停发送数据的时间。暂停时间以发送 512 比特的时间为基准值。0 代表让正在暂停的设备取消暂停时间准。

    VLAN与优先级帧
    虚拟LANVLAN)可以帮助动态构建 LAN,解决了物理构建 LAN 的麻烦。
    以太网的VLAN和帧优先级(Q标记)的具体规则在 IEEE802.1Q,后来也加入了 802.3

    VLAN帧会在原来的以太网帧中加入4个字节,前两个字节为TPID(0x8100为vlan),后两个字节,前三bit为帧优先级,7为优先级最高。bit4为丢弃指示,为1时,可在网络丢弃时被丢弃。最后12bit为vlan值,最高为4095。

    vlan id中有三个值比较特殊。0表示该帧没有被分配到一个vlan中,这个标记则只用于表示优先级。1为未划入其他 vlan 的设备的默认vlan id。4095也预留值。

    以太网帧大小扩展(巨型帧)
    巨型帧就是将MTU从常规的 1500byte 修改到 9000byte,可以大大提高传输效率。(但是种种原因,未能被802.3标准采纳2014年,不知道现在怎么样了)。ethertype 值为 0x8870

  • 目前集成MAC和独立PHY是最常见的方式。是灵活性和成本的平衡。

  • 一个未知目的 mac 地址的帧进入交换机,会被洪泛到除自身外所有的端口,类似广播帧的效果,但是其是单播帧。

  • 以太网帧的源地址是交换机地址学习的材料。

  • 动态学习的 MAC 地址表会有老化时间,过了就会删除,节省空间。

  • 交换机转发数据有三种方式:存储转发,直通式转发,自适应转发(前两者的融合)

  • 一般交换机会支持链路聚合

  • gPTP(广义时间同步协议)
    IEEE802.AS任务组、ptp模式的一个子集。gPTP的测量变差基于阿伦方差。

  • ptp 的初始时间为1970年起计的秒数
    gptpethertype 0x88F7标记的特制帧通信。属于二层协议
    domainNumber 域数量。gptp中始终为0

  • 大量模拟和实证得出结论,125ms的sync足以保证专业品质的媒体传输,又足以避免网络流量过载。所以这个周期成了约定成俗的标准

  • icmpip 协议非常重要的辅助,“每个 ip 模块必须有他”。

  • ARP地址解析协议:知道ip地址,请求其mac地址。
    改善方法:主机增加缓存去记忆,就不用每次发报文询问

  • arp报文流程:发送前,检查表有没有(有则结束),没有则发广播报文请求对方mac,对方单播回复mac

  • ieee802 组播地址的 OUI 为 01:00:5E(也就是前24bit),通过一种映射机制可以直接将组播mac和ip地址算出来。

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

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

相关文章

Linux系统 Ubuntu18.04安装的详细教程(提供18.04ubuntu镜像)

文章目录一、镜像安装二、vim更新 gcc ifconfig下载三、共享文件夹设置设置使用(测试共享文件夹是否能使用,这步可以省略)四、另外虚拟机名称全名、用户名镜像文件下载:链接:https://pan.baidu.com/s/12bEdRBwO1YbLt23…

数学杂谈:圆上随机落点问题(一)

数学杂谈:圆上随机落点问题(一) 1. 问题描述2. 问题解答 1. 解法一:递推2. 解法二:受限制的均匀分布3. 数值模拟验证 3. 讨论 & 扩展 1. 问题描述 这道题其实很早之前自己做过一遍,然后前阵子发现苏神…

【寒假每日一题】洛谷 P1079 [NOIP2012 提高组] Vigenère 密码

题目链接:P1079 [NOIP2012 提高组] Vigenre 密码 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 16 世纪法国外交家 Blaise de Vigenre 设计了一种多表密码加密算法 Vigenre 密码。Vigenre 密码的加密解密算法简单易用,且破译难度比较高&…

类、对象与接口

前言 类、对象与接口 文章目录前言一、类与对象二、源文件声明的规则三、修饰符四、继承五、多态六、接口1、定义2、接口3、实现4、接口一、类与对象 类:定义一种全新的数据类型,包含一组变量(数据)和函数(逻辑&#…

【django】各种关联关系的模型类设计

文章目录前言一、级联操作二、一对多(多对一)的关联模型类设计1、学生表模型类设计2、渠道表模型类设计三、多对多的关联模型类设计1、课程表模型类设计四、多对多的关联模型类设计(自定义中间表)1、模型类设计课程表模型类设计报…

神经网络的学习率如何选择?

文章目录学习率的概念学习率的选择方法参考资料学习率的概念 这里的学习率指的是深度学习神经网络训练过程中选取的一个超参数。 学习率作为参数更新时的一个乘数项,可以影响网络训练的速度,或者说是每次迈步的大小。 可以这样理解,如果学…

ZC706P+ADRV9009连接RADIOVERSE详解之二

上一个BLOG我们在WIN上安装了RADIOVERSE软件以及做好了SD卡映像。这篇文字我们记录ZC706ADRV9009硬件链接情况: 这里看到USB UART串口是可选的,主要是用来查看启动的系统log。 实际连接如下: 图中: 1,外接12V电源 2…

Python数据结构与算法篇(三)-- 队列的实现和应用

1 队列 1.1 简单队列 队列是一种有次序的数据集合,其特征是新数据项的添加总发生在一端(通常称为“尾rear”端);而现存数据项的移除总发生在另一端(通常称为“首front”端)。当一个元素被加入到队列之后&a…

头歌作业之排序1、2、3、4

(PS:直接拿的友友zy的) 一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055qq.com Time of completion:2023.1.1 Last edited: 2023.1.1 目录 (PS:直接拿的友友的&a…

SCI论文解读复现【NO.2】基于注意机制的YOLOv5改进算法在行星图像中的应用(代码已复现)

此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的SCI论文&am…

EMNLP22提示模板生成:GPS: Genetic Prompt Search for Efficient Few-shot Learning

GPS: Genetic Prompt Search for Efficient Few-shot Learning 1 简介 Genetic Prompt Search (GPS) 通过提示改进少样本学习,它利用遗传算法自动搜索高性能提示 遗传提示搜索 (GPS) 算法,该算法使用生成模型逐渐改变提示,并根据它们在小型…

C语言网刷题记录

作者:会敲代码的Steve 座右铭:博学笃志,切问静思。 大家好久不见啊,一看时间我已经好久没发文章了,最近在刷OJ题和学习;就没那么多心思把时间花在写文章上了,我对此感到很抱歉,本文呢…

int8,FLOPS,FLOPs,TOPS 等具体含义

1、定义 算力的计量单位FLOPS(Floating-point operations per second),FLOPS表示每秒浮点的运算次数。具体使用时,FLOPS前面还会有一个字母常量,例如TFLOPS、PFLOPS。这个字母T、P代表次数,T代表每秒一万亿…

Linux学习笔记——MySQL数据库管理系统安装部署

5.1、MySQL数据库管理系统安装部署 5.1.1、简介 1、MySQL简介 MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。 MySQL数据库可谓是软件行业的明星产品,无…

xilinx ZYNQ 7000 AXI GPIO

.0AXI GPIO 第一部分 PS 和 PL之间的通讯有一个接口称为AXI。AXI总线具体的内容这边不去深究,可以理解为一种特殊协议的通讯方式。 AXI GPIO是什么意思? PL是FPGA它可以做成任何你想要的东西,做一个GPIO外设当然是可以的。 如上图所示&…

DoIP协议从入门到精通——通信建立

在DoIP专栏中,关于DoIP文章,主要讲述从车辆物理连接、车辆声明、车辆通信激活(Routine Activation)和诊断通信几个步骤。 本文介绍了Tester与车辆获取物理连接、车辆声明自身信息后接下来需要操作的就是本文所要分享的内容:Tester与车辆控制器的通信建立。 一、通信模式…

记一次堆外内存泄漏分析

文章目录1. 背景2. JVM 内存分布与分析2.1 JVM 内存分布2.2 堆外内存泄漏分析思路2.3 服务器 JVM 参数配置及实际内存分布2.4 JVM native 内存查看2.5 手动触发 Full GC3. 问题排查经历3.1 定位内存泄漏的位置及初步猜想1)定位 RES 区域存在内存泄漏2)分…

寒假每日一题W1D1——孤独的照片

题目描述 Farmer John 最近购入了 N 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。 奶牛目前排成一排,Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。 然而&…

一本通 1267:【例9.11】01背包问题(详细代码)

经典01背包问题 这里给你3种方法 目录 DFS 思路: 代码: DFS记忆化 思路: 代码: 动态规划 思路: 代码: DFS 时间复杂度 :O(2^n) 思路: DFS求出所有选法,再用…

Maven 之 依赖管理

目录 1、依赖传递 小案例: 2、可选依赖 3、 排除依赖 4、可选依赖和排除依赖的区别 我们开发一个工程需要用到大量得jar包,而这些jar 包就是我们所说得依赖,一个项目可以配置多个依赖。 1、依赖传递 我们来看一下今天用来演示的工程。…