第二节——计算机网络(四)物理层

  • 车载以太网采用差分双绞线
  • 车载以太网并未指定特定的连接器,连接方式更为灵活小巧,能够大大减轻线束重量。传统以太网一般使用RJ45连接器连接。
  • 车载以太网物理层需满足车载环境下更为严格的EMC要求,100BASE-T1\1000BASE-T1对于非屏蔽双绞线的传输距离可达15m(屏蔽双绞线可达40m)
  • 车载以太网(如100BASE-T1)可以通过回音消除技术实现在一对双绞线上进行全双工通信。回音消除技术的主要过程:作为发送方时,节点会将自己的差分电压施加到双绞线上;而作为接收方时,节点会从总电压中减去自己施加的电压,从而得到对方节点发送的电压。此机制属于回音消除技术,也应用在其它以太网系统中。所以在全双工通讯的情况下,示波器是无法读取有效的波形,在单向发送或接收时就可以通过示波器测量相应的数据。

  • 车载以太网通信架构的每一条链路都是点对点连接,即每根电缆只连接2个节点。

  • CAN总线中,波特率=比特率。但在以太网中,波特率≠比特率。 这是因为以太网使用了不同的编码方案来传输数据。波特率是指每秒钟传输的符号数(symbols per second),而比特率是指每秒钟传输的比特数(bits per second)。编码方案决定了每个符号代表多少个比特。所以100BASE-T1中的100Mbps指的是比特率为100Mbps,而不是波特率。

  •  汽车以太网,涵盖了ISO/OSI分层模型的所有层

        

1、车载以太网诞生背景

        汽车以太网源于刷写时间的要求,当时BMW需要将1GB的数据在15min内刷完,使用CAN总线大概需要16h,而使用快速以太网100Base-TX可以达到目标。

        于是BMW在2008年将100Base-TX应用到OBD口。也就有了我们现在常听到的DoIP!

        而100Base-TX是基于两对双绞线的以太网,CAN等传统总线技术是基于一对双绞线,100Base-TX以太网相对于CAN来说,在总线上是没有优势的。

        因此BMW通过与Broadcom等公司合作,发明了基于一对双绞线的BroadR-Reach汽车以太网,这也就是后来被IEEE规范化的100Base-T1的以太网技术!

        当然,现在大多数厂商除了100Base-T1以外,也已经使用了1000Base-T1。现在可能1Gbps也都无法解决带宽需求。

2、车载以太网与其他总线对比 

3、车载以太网分类

汽车上使用的以太网分为两种,

 一个是车外:OBD对外的通信:一般通过100BASE-Tx技术。OBD对外通信是两对双绞线。在ISO13400-3中有一些描述,常规使用的是3、11、12、13 这四个引脚,当然还要外加一个8引脚的激活(Activation)线。这是一个通过OBD的对外的DoIP的诊断。

100BASE-TX,加激活线的原因(减少电磁干扰):100BASE-TX如果在车辆运行时使用,会对EMC的辐射干扰很大,辐射干扰超出限值限,并将在调频广播中引起声音接受失真。为了确保100BASE-TX的UTP以太网连接不会在运行时造成失真,所以添加了“激活线”,这种激活线可确保只有当外部的测试仪被连接时,车内100BASE-TX的UTP以太网连接才会被激活

标准:车载诊断标准ISO+13400-3中文 - 百度文库

一个是车内:ECU之间的通信:一般通过 100BASE-T1 或 1000BASE-T1 两种技术,具体使用哪种看ECU对通信速率的需求。出于对EMC干扰的考虑,我们选择使用1000BASE-T1的时候,会选择使用一对屏蔽双绞线。  

T1(1对双绞线,通过回音消除在一对双绞线上实现发送和接收):用于车内节点的通信

Tx(2对双绞线,一对专门用于发送数据TX±,另一对专门用于接收数据RX±):用于车内节点与车外节点的通信,常用于诊断

100BASE-T1:1对非屏蔽双绞线,最大传输距离为 15米。不支持自动协商机制。

1000BASE-T1(1G):1对屏蔽双绞线,最大传输距离为 15米

100BASE-TX:2对非屏蔽双绞线,最大传输距离为 100米。在汽车以太网中,100BASE-TX 标准本身并不强制要求使用激活线(Wake-up Line),但为了适应汽车环境的特殊需求,很多系统会添加激活线。

这个XXBASE的XX指的是比特率,不是波特率。

4、车载以太网应用的网络拓扑(域控制器)

车载以太网典型的网络拓扑是基于Domain架构的,在这种架构里,按逻辑功能将整车功能分为几个功能域,各家的分法可能有些差异,但大致上分为如信息娱乐域,自动驾驶域,车身域,动力域等;各个控制器通过以太网主干网连接,各子网节点通过CAN/LIN/ETH等连接到域控制器。  

在上图所示的以太网典型拓扑图里,OBD端通过快速以太网100BASE-TX连接(DoIP,一般做诊断的时候会用到快速以太网),车内主干网/子网通过T1以太网连接,根据带宽需求不同,可以选择100BASE-T1/1000BASE-T1。

 5、以太网命名规则

6、主流车载以太网 

        当下主流的车载以太网协议主要为IEEE 100BASE-T1以及IEEE 1000BASE-T1,常规使用可采用100BASE-T1,如果需要更高带宽,可选择1000BASE-T1。 

100Mbps或者1000Mbps并不是Ethernet的全双工模式,仅仅是它的半双工通信速率,如果全双工,按照CAN总线通信速率计算方式,Ethernet的通信速率翻倍。(指的是收和发均为100/1000Mbps,而不是收和发加起来才100/1000Mbps)

 100BASE-TX"带宽不共享" 意味着在全双工模式下,100BASE-TX的100Mbps带宽在每个方向上都是独立的,每个方向都可以达到100Mbps的带宽。这种模式下,数据传输效率更高,不存在数据冲突的问题。(100BASE-T1通常工作在全双工模式下,这意味着带宽是不共享的,每个方向都有独立的100Mbps带宽。1000BASE-T1同理。)

100BASE-T1、1000BASE-T1、100BASE-Tx,这三个都是同时收发,收支持100/1000,发支持1000,数据的发送和接收是同时进行的,并且不共享带宽。

100BASE-T1在物理连接上使用了一对双绞线实现全双工的信息传输(回音消除技术),而100BASE-TX则使用了两对双绞线实现全双工,一对用于收,另一对用于发。

同步方式:同步符号流。利用主节点和从节点可以解决此问题:主节点生成一个连续符号流,从节点与之同步。(100BASE-T1:微控制器的基础软件将PHY配置为主节点或从节点;1000BASE-T1:主/从节点不是固定的,而是使用自动协商机制进行协商)

100 BASE-T1相比100BASE-Tx具有更好的抗电磁干扰和抗噪声性能,以便于车辆可以在雷雨等恶劣天气中稳定通信。

6.1 100BASE-T1

"

7、100/1000BASE-T1编码规则

PHY模块结构:我们这里需要注意的是RXD 和TXD都是4个bit。

  • 物理层编码规则(以100BASE-T1、1000BASE-T1为例):首先,总线上的电平信号有三种:-1、0、1。数据和电平的编码转换关系如下表:(即2根线的电平即可表示3位bit
  • 主要数据到电平转换过程为以下四步:
  1. 首先从MII接收到数据(4bit 4bit...)
  2. (4B→3B时钟转换)接下来分割成(3bit3bit...)进行处理;接收MII传递的数据后,PHY层首先进行4B/3B转换。这种转换不是分块编码,仅是一种时钟转换,25MHz传输的4bit数据块(4B)转换成时钟频率为33.33MHz的3bit数据块(3B)(100/3=33.33)
  3. (3B→2T编码)根据上表,电平与数据编码的关系,转换为申平信号。即每3bit数据(3B)编码成一对三进制符号(2T),标称值分别为-1,0和+1。
  4. (2T→PAM3)完成了3B/2T编码的一对三进制符号(2T)后,为了能在双绞线上传输,需要将2T中的-1,0,+1对应成低电平,0或高电平,这种三电平脉冲幅度调制方式即PAM3。对应的电平值分别是-1V、0V、1V。

注:1)上面步骤的2、3是PCS子层。4是PMA层。

2)4B->3B时钟转换时,当输入数据位数不是3的倍数则必须插入1或2个填充位。填充位的值并不重要,因为他们将在接收端被移除,因而标准中没有规定填充位的值

总结一下,100BASE-T1物理层的工作原理就是通过4B/3B转换,3B/2T编码,PAM3调制,最终通过一对双绞线上的差分信号以及回音消除技术实现100Mb/s的全双工通信。

    

  

100Mbps 速度的由来:

在微控制器的每个时钟周期中,MII接口到来的数据是4个bit,PHY从MII接口收到数据后,会首先进行一个4B3B的转换,为了匹配25MHz*4bit=100Mbit/s的速率,PHY的MI接口时钟周期应该是33.3333M每次接收3bit,也实现了33.3333M*3bit=100Mbi t/s的速率。之后PHY要再进行3B2T的操作,将每次接收到的3个bit转化为2个申平值(取值范围是-1,01),具体的对应关系如上图中的表所示。3个bit有8种组合(即2的三次方),两个电平值有9种组成(即3的平方),所以后者可以覆盖前者。此时时钟周期仍然是33.333M,但是每个时钟周期中的两个电平就能够表示3个bit了,所以此时的数据速率仍然是100Mb it/s,每个电平实际上包含了1.5bit信息。最后一步是 PAM3,将逻辑的-1,0,1转化为在双绞线上的电压,所以,最终在总线上信号的波特率(每秒传输的符号数量)是66.666MH z,但是它实现了100Mbit/s的通信速率(每秒传输的比特数量)(66.66*1.5=100)即:66.6MHz的电压频率即可完成100Mbps数字信号的模拟传输

8、物理层

物理层主要作用:1)定义硬件接口;2)定义信号与编码;3)定义数据与信号之间的转换收发;4)确保发送方和接收方的时钟同步,以便正确接收数据。

 以太网设计的硬件主要由三个部分组成:

  • Processor:常见的MCU,MPU,SoC等
  • MAC:Media Access Control。介质访问控制,是典型的数字电路。
  • PHY:physical layer。物理层收发器,包含大量模拟器件。

        如下图所示,Processor通过DMA直接存储访问与MAC之间进行数据的交互,MAC通过MII介质无关接口与PHY之间进行数据的交互,考虑到芯片面积,以及数模电路混合架构等原因,常见的以太网硬件结构是:将MAC集成进Processor芯片,将PHY留在Processor片外,做成单独的收发器芯片。这也是为什么目前我们在市场看到不同的独立的PHY芯片。

MAC:将数字信号发送给PHY,又能接收PHY转换好的数字信号。

8.1 PHY模块

 对于其他总线(egCANLINFlexray),我们习惯简称TransceiverTrcv对于Ethernet,我们称对应Transceiver芯片为PHY芯片(Physical Layer,物理接口层)。PHY的主要作用是进行数/模转换,而软件处理中,只关注数字信号。

以太网所有物理层的功能全部集中在一个称为PHY的模块中,它将以太网控制器以及物理介质连接在一起,并且通过一个标准化接口MII连接,同时PHY模块与底层介质通过MDI接口连接,以100BSASE-T1所示,如下图所示:

PHY是IEEE802.3定义的标准模块,主要结构组成如下图所示。在发送数据时,PHY接收从MAC过来的数据,将并行的数据转化为串行流数据,按照物理层的编码规则把数据编码,再变为模拟信号把数据发出去。接收数据时的流程则相反。 

Process通过MII接口与PHY进行数据的交互,通过MIIM接口(MDIO/MDC)使用管理帧对PHY进行管理/控制。

1) 100BASE-TX PHY结构

PHY的内部分为了三个子层

PCS:Physical coding Sublayer编码子层,主要进行初始编码,实现特定于以太网速度和传输介质要求的子层中的一部分。

PMA:Physical Medium Attachment介质连接层,结余PMA和PCS之间,其中PM D是按照bit串行处理方式,而PCS则是按照数据块处理方式,因此PMA则是起到中间转换的作用,此外还起到数据冲突检测的功能。

PMD:Physical Medium Dependent介质依赖层,主要职责是转换PMA的数据与实际网络上的信号。发送时,它从PMA读取数据并执行实现该功能所需的必需的低级行编码功能设计的媒介。接收时,它会读取并解释这些内容编码信号,然后将它们转换回位以发送到PMA。

2) 100BASE-T1 PHY结构

PHY的内部分为了两个子层:

PCS物理编码子层:实现MII接口和PMA的数据收发,进行4B/3B和3B/2T编码,

PMA物理介质连接子层:实现PCS和物理介质之间的收发,并且提供连接管理和PHY控制功能。

同样​以信号发送为例,100BASE-T1在进行信号传输时,主要进行了以下几个过程处理。

1. PHY的PCS物理编码子层以25MHz的速率从MII接收数据位宽为4bit的数据,然后使用4B/3B分块编解码技术进行编码,把4Bit的数据转换为3bit的code-Group,如果数据长度不是3bit的整数倍,在帧结束时还需要插入1或2bit的填充位。

2. PCS进一步会把3bit的比特字映射到三级符号,即3B/2T映射。把经过扰码后的3比特字Sdn[2:0]映射到三级符号向量(An,Bn)。当PHY处于不同的模式(空闲模式,数据模式)时,有不同的映射关系。

3. PCS转换后的数据以33.3MHz(25MHz*4bit/3bit = 33.3MHz)的速率传递给PMA物理介质连接子层,接着PMA将2D的三级符号向量转换为1D,然后使用PAM3三级脉冲幅度调制发送信号。

4. 经过上述处理后,PHY以66.7MBaud(100/3*2)波特率将数据传输到双绞线上。

常见的100BASE-T1车规级的物理层(PHY)有以下几种,

博通:BCM89810、BCM89811;

恩智浦:TJA1100、TJA1102。

使用不同的速率的Ethernet,对应的PHY芯片不同。不同通信速率的以太网标准有不同的物理层要求,因此需要不同的PHY芯片来实现这些要求。

虽然不同速率的以太网通常需要不同的PHY芯片,但市场上也存在一些多速率PHY芯片,它们可以支持多种速率。例如,有些PHY芯片可以同时支持10/100/1000 Mbps的速率,或者支持1000BASE-T和10GBASE-T。这些多速率PHY芯片通常用于需要灵活适应不同网络环境的设备,如交换机、路由器和网络适配器

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

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

相关文章

电脑还原重置Windows系统不同操作模式

电脑有问题,遇事不决就重启,一切都不是问题!是真的这样吗。其实不然,主机系统重启确实可以自动修复一些文件错误,或者是设置问题,但是,当你由于安装了错误的驱动或者中毒严重,亦或是蓝屏,那么重启这个方子可能就治不了你的电脑了。 那么,除了当主机出现异常故障现象…

Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组

一、回顾统计函数 1、使用SUMIF函数 sumif(条件区域,求和条件,求和区域) 2、使用SUMIFS函数 SUMIFS(求和范围, 条件范围1, 条件1, 条件范围2, 条件2, ...) 二、认识数组 1、数组生成原理 所谓数组,是有序的元素序列。组成数组的各个变量称为数组的元素。对于Ex…

JVM知识点学习-1

学习视频:狂神说Java 类加载器和双亲委派机制 类加载器 作用:加载Class文件 流程:这里的名字car1。。在栈里面,但是数据在堆里面 类加载器的几个类型: 虚拟机自带的类加载器;启动类(根Boot…

Spring源码的分析之启动流程

一.前言 这篇文章的话就是我个人通过一些技术博客以及自己写一些Demo测试获得的一些感悟但是 由于本人的技术水平有限所以肯定就是会出现一些问题所以希望看这篇文章的时候如果发现错误的时候可以提出来然后我个人的话进行修改 二.SpringApplication 的构造函数 创建的一个简单…

Scala学习记录,全文单词统计

package test32 import java.io.PrintWriter import scala.io.Source //知识点 // 字符串.split("分隔符":把字符串用指定的分隔符,拆分成多个部分,保存在数组中) object test {def main(args: Array[String]): Unit {//从文件1.t…

Linux下的三种 IO 复用

目录 一、Select 1、函数 API 2、使用限制 3、使用 Demo 二、Poll 三、epoll 0、 实现原理 1、函数 API 2、简单代码模板 3、LT/ET 使用过程 (1)LT 水平触发 (2)ET边沿触发 4、使用 Demo 四、参考链接 一、Select 在…

LeetCode 3208.交替组 II:滑动窗口

【LetMeFly】3208.交替组 II:滑动窗口 力扣题目链接:https://leetcode.cn/problems/alternating-groups-ii/ 给你一个整数数组 colors 和一个整数 k ,colors表示一个由红色和蓝色瓷砖组成的环,第 i 块瓷砖的颜色为 colors[i] &a…

与7无关的数

与7无关的数 C语言代码C 语言代码Java语言代码Python语言代码 💐The Begin💐点点关注,收藏不迷路💐 一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数。现求所有小…

07.ES11 08.ES12

7.1、Promise.allSettled 调用 allsettled 方法&#xff0c;返回的结果始终是成功的&#xff0c;返回的是promise结果值 <script>//声明两个promise对象const p1 new Promise((resolve, reject) > {setTimeout(() > {resolve("商品数据 - 1");}, 1000)…

git 上传代码时报错

在上传代码时&#xff0c;显示无法上传 PS E:\JavaWeb\vue3-project> git push To https://gitee.com/evening-breeze-2003/vue3.git! [rejected] master -> master (non-fast-forward) error: failed to push some refs to https://gitee.com/evening-breeze-20…

视觉语言模型(VLM)学习笔记

目录 应用场景举例 VLM 的总体架构包括&#xff1a; 深度解析&#xff1a;图像编码器的实现 图像编码器&#xff1a;视觉 Transformer 注意力机制 视觉-语言投影器 综合实现 训练及注意事项 总结 应用场景举例 基于文本的图像生成或编辑&#xff1a;你输入 “生成一张…

digit_eye开发记录(3): C语言读取MNIST数据集

在前两篇&#xff0c;我们解读了 MNIST 数据集的 IDX 文件格式&#xff0c;并分别用 C 和 Python 做了 读取 MNIST 数据集的实现。 基于 C 的代码稍长&#xff0c;基于 Python 的代码则明显更短&#xff0c;然而它们的共同特点是&#xff1a;依赖了外部库&#xff1a; 基于 C …

C#窗体小程序计算器

使其能完成2个数的加、减、乘、除基本运算。界面如下图&#xff0c;单击相应的运算符按钮&#xff0c;则完成相应的运算&#xff0c;并将结果显示出来&#xff0c;同时不允许在结果栏中输入内容 代码如下&#xff1a; private void button1_Click(object sender, EventArgs e)…

Linux命令进阶·如何切换root以及回退、sudo命令、用户/用户组管理,以及解决创建用户不显示问题和Ubuntu不显示用户名只显示“$“符号问题

目录 1. root用户&#xff08;超级管理员&#xff09; 1.1 用于账户切换的系统命令——su 1.2 退回上一个用户命令——exit 1.3 普通命令临时授权root身份执行——sudo 1.3.1 为普通用户配置sudo认证 2. 用户/用户组管理 2.1 用户组管理 2.2 用户管理 2.2.1 …

【JavaEE】JavaEE、web 开发、框架(Spring) 、Maven

文章目录 一、JavaEE 发展历程二、什么是 web 开发1、什么是 web 开发&#xff1f;2、web 网站的工作流程 三、框架1、什么是框架&#xff1f;2、为什么要学框架&#xff1f;3、框架的优点&#xff08;Spring Boot VS Servlet&#xff09; 四、Maven 一、JavaEE 发展历程 Java…

虚拟机玩游戏,轻松实现多开不同IP

嘿&#xff0c;亲爱的游戏小伙伴们&#xff01;今天要和大家分享一个超级实用的技巧&#xff0c;让你在游戏中轻松多开不同IP&#xff0c;享受开挂的乐趣&#xff01; 第一步&#xff1a;准备虚拟机 首先&#xff0c;你需要下载一个虚拟机软件&#xff0c;比如VMware或者Virt…

MySQL常用语句整理

《SQL必知必会》(第3版)SQL是目前使用最为广泛的数据库语言之一。本书没有涉及理论&#xff0c;而是从实践出发&#xff0c;由浅入深地讲解了广大读者所必需的SQL知识&#xff0c;适用于各种主流数据库。实例丰富&#xff0c;便于查阅。本书涉及不同平台上数据的排序、过滤和分…

【MATLAB】基于RSSI的蓝牙定位与例程,设置4个基站、二维定位

目录 ​编辑 商品描述 主要功能 技术细节 适用场景 下载链接 商品描述 这款基于接收信号强度指示&#xff08;RSSI&#xff09;原理的蓝牙定位程序&#xff0c;专为需要高效、可靠定位解决方案的开发者和研究人员设计。它能够在二维平面内&#xff0c;通过4个锚点实现对未…

DreamCamera2相机预览变形的处理

最近遇到一个问题&#xff0c;相机更换了摄像头后&#xff0c;发现人像角度顺时针旋转了90度&#xff0c;待人像角度正常后&#xff0c;发现 预览时图像有挤压变形&#xff0c;最终解决。在此记录 一人像角度的修改 先放示意图 设备预览人像角度如图1所示&#xff0c;顺时针旋…

鸿蒙修饰符

文章目录 一、引言1.1 什么是修饰符1.2 修饰符在鸿蒙开发中的重要性1.3 修饰符的作用机制 二、UI装饰类修饰符2.1 Styles修饰符2.1.1 基本概念和使用场景2.1.2 使用示例2.1.3 最佳实践 2.2 Extend修饰符2.2.1 基本概念2.2.2 使用示例2.2.3 Extend vs Styles 对比2.2.4 使用建议…