图解通信原理(以太网通信及物理层工作原理)

偶尔看到一篇对phy与mac讲解清楚的优秀文章,因此记录下来,此文章转发自知乎图解通信原理(以太网通信及物理层工作原理) - 知乎

概述

以太网是一种计算机局域网通信技术,主要由介质访问层(MAC L2) 协议、物理层(PHY L1)协议、电子信号连接组成。

MAC层主要有交换芯片实现,物理层由PHY芯片实现,电信号连接主要定义电信号的接口规范。

本文以成熟的以太网的技术实现为案例,解读数字通信的部分基本原理,澄清数字通信中一些核心的概念 :时钟、4B/5B编码、曼切斯特编码、NRZI编码、符号、波特率、比特率、CRC、扰码。

并把关注的重点放在以太网物理层的协议规范。

信号发送接收流程

信源信息发送-》离散数据-》信源编码-》应用层数据处理-》网络层编码-》物理层信道编码-》电气信号符号编码-》电信号发送=》

电信号接收=》电气信号符号解码-》物理层信道解码-》网络层编码-》应用层数据处理-》信源解码-》信宿信息感知

整个过程,均为二进制离散数据处理,因此本文是一个纯数字通信的案例。

以太网串行通信与Uart串口通信、I2C串行通信、SPI串行通信等串行通信,有两个显著的差别:

(1)需要传输的物理层帧中的二进制数据与物理线路上传送的信号电平之间是不再是1对1的映射关系。

(2)不需要专门的时钟信号线在两个通信的节点之间传递时钟,而是通过特定的物理层的编码技术,实现在传输数据的同时,也同时能够传递同步时钟。

(3)支持远程传输的数字编码技术

本文将重点阐述这这三种技术方法。

———————————————————————————————————————

一、 什么是以太网数字通信

以太网是一种基带、局域网技术。

以太网通信是一种使用同轴电缆或光纤作为传输信道,采用载波多路访问和冲突检测机制的通信方式。

数据传输速率高达到10M、100M、1Gbit/s, 10Gbit/s, 25Gbit/s、100G, 可满足非持续性网络数据传输的需要。

1、标准以太网

  • 10Base-5 使用粗同轴电缆,最大网段长度为500m,基带传输方法;
  • 10Base-2 使用细同轴电缆,最大网段长度为185m,基带传输方法;
  • 10Base-T 使用双绞线电缆,最大网段长度为100m;
  • 1Base-5 使用双绞线电缆,最大网段长度为500m,传输速度为1Mbps;
  • 10Broad-36 使用同轴电缆(RG-59/U CATV),最大网段长度为3600m,是一种宽带传输方式;
  • 10Base-F 使用光纤传输介质,传输速率为10Mbps;

2、快速以太网

  • 100Base-TX 物理介质采用5类以上双绞线, 网段长度最多100米
  • 100Base-FX 物理介质采用单模光纤,网段长度可达10公里

3、千兆以太网

  • 1000Base-SX 只支持多模光纤,可以采用直径为62.5um或50um的多模光纤,工作波长为770-860nm,传输距离为220-550m。
  • 1000Base-LX 可以采用直径为62.5um或50um的多模光纤,工作波长范围为1270-1355nm,传输距离为550m。
  • 1000Base-LX 可以支持直径为9um或10um的单模光纤,工作波长范围为1270-1355nm,传输距离为5km左右。
  • 1000Base-CX 采用150欧屏蔽双绞线(STP),传输距离为25m。
  • 000Base-T 是100Base-T自然扩展,与10Base-T、100Base-T完全兼容

4、10Gbps以太网

  • 10GBASE-CX4 -- 短距离铜缆方案用于InfiniBand4x连接器和CX4电缆,最大长度15米。
  • 10GBASE-SR -- 用于短距离多模光纤,根据电缆类型能达到26-82米,使用新型2GHz多模光纤可以达到300米。
  • 10GBASE-LX4 -- 使用波分复用支持多模光纤240-300米,单模光纤超过10公里。
  • 10GBASE-LR和10GBASE-ER -- 透过单模光纤分别支持10公里和40公里
  • 10GBASE-SW、10GBASE-LW、10GBASE-EW。用于广域网PHY、OC-192 / STM-64同步光纤网/SDH设备。物理层分别对应10GBASE-SR、10GBASE-LR和10GBASE-ER,因此使用相同光纤支持距离也一致。(无广域网PHY标准)
  • 10GBASE-T-- 使用屏蔽或非屏蔽双绞线,使用CAT-6A类线至少支持100米传输。CAT-6类线也在较短的距离上支持10GBASE-T。

5、40G/100Gbps以太网

  • 40GBASE-KR4 -- 背板方案,最少距离1米。
  • 40GBASE-CR4 / 100GBASE-CR10 -- 短距离铜缆方案,最大长度大约7米。
  • 40GBASE-SR4 / 100GBASE-SR10 -- 用于短距离多模光纤,长度至少在100米以上。
  • 40GBASE-LR4 / 100GBASE-LR10 -- 使用单模光纤,距离超过10公里。
  • 100GBASE-ER4 -- 使用单模光纤,距离超过40公里。

虽然,以太网支持上述各种速率和物理层接口规范,但从通信的角度来看,基本原理是相似的,是一脉相承的。

二、以太网数字通信案例的需求架构

为重点介绍以太网物理层协议,本文的两个对等的以太网终端,跳过中间的以太网交换机,直接采用点对点连接。

帅哥A与美女B不再通过RS232串口相连,而是通过以太网相连。

目标:

帅哥A通过以太网向美女B发送一条二进制消息:0x0049 0x0020 0x004c 0x0006f 0x00076 0x0065 0x0020 0x0059 0x006f 0x0075。

对应的ASCII码字符是:I Love You

三、以太网数字通信的软硬件实现方案

1、协议栈

2、软硬件架构与软硬件分工

帅哥A发送的数据,封装(编码)过程如下:

应用层数据编码=》HTTP层数据编码=》TCP层数据编码=》IP层数据编码=》MAC层数据编码=》物理层数据编码=》物理层电信号发送=》

美女接受的数据,拆封(解码)过程如下:

物理层电信号接收=》物理层数据解码=》MAC层数据解码=》IP层数据解码=》TCP层数据解码=》HTTP层数据解码=》应用层数据解码。

至于MAC层以上(IP以及IP之上)的编码和解码过程,不在本文的讨论范围。

本文重点放在MAC+PHY+线路接口层,特别是物理层的编解码过程。

3、以太网协议规范

IEEE802.3标准给出了以太网的MAC层和物理层的协议规范

四、以太网MAC+PHY+线路层的通信模型

下面,将详细介绍上述过程的每个环节,以及每个环节中涉及到的通信原理中的关键技术。

五、信源对信息的发送过程及其关键性原理

1、信源:

这里的信源就是计算机A。

2、离散的二进制数据

信源需要发送的离散的二进制数据: 0x0049 0x0020 0x004c 0x0006f 0x00076 0x0065 0x0020 0x0059 0x006f 0x0075。

对应的ASCII码字符是:I Love You

3、网络层编码

IP以及IP之上,不在本章的讨论范围,本章讨论MAC以及MAC层之下的协议规。

(1)探讨前的概念澄清:

MAC层:称为帧(frame)

物理层:并行数据称为包(package)

物理层:串行数据称为流(stream)

(2)MAC层帧结构

LLC data:信源需要发送的离散的二进制数据。

MAC地址:也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。

MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前6位16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后6位16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是惟一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性。

目的地址:数据的接收方(信宿)的MAC地址。

源地址:数据的发送方(信源)的MAC地址。

帧定界符SFD:1个字节(8个bits:0x1010 1011),MAC层的帧同步。

由于在传输一个字节时最低位最先传输(LSB),因此其相应的16进制表示为:0xD5,这里有一个同样的问题,以太网帧的净荷正巧也有该数据怎么办呢?

同步前导码preamble:7个字节(56个bits:0x1010 1010 ......),MAC层的比特时钟同步。

由于在传输一个字节时最低位最先传输(LSB),因此其相应的16进制表示为:0x55 0x55 0x55 0x55 0x55 0x55 0x55,这个连续的56个二进制比特流,用于接收方与发送方的二进制比特时钟同步。

这里有一个问题,以太网帧的净荷真巧也有该数据怎么办呢?

解决的方法

MAC层和物理层之间通过Tx_EN和Rx_EN来传递以太网帧的开始。

两个对等的两个物理层实体之间,通过物理层的4B/5B编码表明以太网帧的开始和结束,而这两个编码,是不同于数据域中的任何数据的4B/5B编码。

FCS( Frame Check Sequence):帧检查验序列,实际上就是CRC校验。

CRC校验序列的添加是

在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。

检测的方式有多种,常见的有奇偶校验、和循环冗余校验等。

前一篇讨论过,Uart/RS232串口通信采用的就是有奇偶校验。

循环冗余校验(Cyclic Redundancy Check, CRC):是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

以太网通信采用CRC32作为以太网MAC帧数据净荷的检错码。

注意:FCS值针对以太网MAC帧的净荷部分,包括MAC地址+数据净荷,不包括以太网MAC层帧的同步字和帧定界符SFD。

4、物理层编码

简单的说,物理层编码是确保原始的MAC层数据可在多种物理媒体上、安全、可靠的传输。

(1) 以太网物理层又分为3个子层和2个接口

(2) 两个接口:

Medium Independent Interface (MII): 介质无关接口。提供公共接口,屏蔽多个物理层的不同细节。这是数字MAC层与数字物理层的接口。

Medium Dependent Interface (MDI): 介质相关接口。到传输介质的接口,如100M电口和1000M电口或1000M光口等。这是数字物理层与物理信号媒介的接口(光、电信号)。

(3) 三个子层:

Physical Coding Sublayer (PCS): 物理编码子层。完成物理层编码/解码功能

Physical Medium Attachment sublayer (PMA):物理介质连接子层。执行并串转换和串并转换功能。

Physical Medium Dependent sublayer (PMD): 物理介质相关子层。电信号转换到特定介质上或反向转换(光电转换、电电转换)

不同以太网速率,其物理层的协议规范是不一样的。

不同厂家的芯片,在实现以太网物理层协议规范时,也是有差别。

接下来,将以古老的RTL8201 10/100M PHY芯片为例,由简单到复杂,有浅入深的介绍物理层的通信原理:

  • RTL8201 10M以太网通信的原理
  • RTL8201 100M以太网通信的原理

其他更加复杂的功能实现,基本是基于此原理的升级与扩展。

(4) 802.3 物理层功能栈

(5) RTL8201功能架构

在上图中,10M和100M的功能实现是完全不同的电路。

绿色框标注的是10M的功能实现。

红色框标注的是100M的功能实现

接下来,将详解其功能。

4.1 RTL8201 10M以太网的通信原理

4.1.1 PCS子层(Physical Coding Sublayer):物理层编码子层

PCS子层的功能是物理层的编码/解码。包括三部分:

(1)与MAC层的接口

(2)物理层包的结构

(3)物理层的编码

PCS子层与MAC层的物理接口

TXD0、RXD0:是串行数据接口, 10M速率时,物理层芯片无需要进行串并转换,串并转换是MAC完成的。

TXC和RXC: 接收和发送时钟。

COL (I): 冲突检测的输入,表明MAC层检测到了冲突。

CRS(O): 载波检测,用于PHY向MAC指示,链路上是否有数据正在发送。

TXEN: MAC发送数据指示。

PCS子层的包结构

10M速率是,物理层包的结构与MAC层的帧结构是一致的

PCS子层的编码

物理层编码一个重要的功能就是把原始的物理层帧数据,编码成适合物理线路传输的二进制数据。

在10M通信的情况下,物理层芯片并没有对物理层进行某种物理层编码,比如4B/5B编码或8B/10B编码。

4.1.2 PMA子层:物理介质连接子层

PMA的功能包括

(1)发送方向是并串转换,接收方向是串并转换

(2)物理层信号编码

(3)物理链路时钟的合成/恢复。

PMA从PCS接收串行bit流,然后发送到PMD层。

PMA使用数字锁相环PLL,在发送端根据标准时钟接口发送bit流,在接收端PLL同步串行数据流并从中提取时钟。

发送方向是并串转换,接收方向是串并转换

在10M速率下,无并串转换,与MAC层的接口MAC本身就是串行数据。

物理层信号编码

物理层信号编码:即如何通过物理层的电信号传递0和1的二进制数据流。

常见的编码有两大类:不归零码和归零码。

不归零码:是信号电平在一个码元之内都要不恢复到零的编码方式。在不归零码中,高电平代表1, 0电平本身就表示0,因此不能归0.

归零码 :是信号电平在一个码元之内都要恢复到零的编码方式。在归零码中,高电平和低电平不表示任何数值,而是利用信号的上升沿或下降沿表示0或1,因此可以归零。

在SPI和I2C通信中,通过CMOS或TTL高低电平传送1和0。高电平代表1,低电平代表0,

在UART通信中,与SPI和I2C相同。

在RS232通信中,采用了反逻辑以及15V电压。+15V电信号表示0, -15V电信号表示1.

这些编码方式都称为不归零码

其中SPI, I2C, Uart串口通信的编码方式称为:单极性不归零0码,单极性指只有正(+)电平。

RS232串口通信的编码方式称为双极性不归0码。双极性是指正(+)电平与负(-)电平。

如下图所示:(a)就是单极性不归零码,(b)双极性不归零码。

相对于前面提到的几种电信号编码方式,在10M以太网中,采用了一种新的物理层信号编码方法:曼彻斯特编码!

曼彻斯特编码(Manchester)又称裂相码、同步码、相位编码,它是一种归零的编码方式, 用电平跳变来表示1或0的编码方法。

其变化规则很简单:

这里也有两种码元,但每个码元不是用简单的高电平或低电平,每个码元symbol(代表0或1的电信号)均用个不同相位的电平信号(高电平+低电平)表示。

实际上,每个码元是一个完整的方波信号(有高电平,也有低电平),这里就有两种方式来定义方波信号。

(A) G.E. Thomas曼切斯特编码(又称为标准曼切斯特编码)

0度相位的方波(类似正弦波)表示“1”,

180相位的方波(类似余弦波)表示“0”.

(B) 802.3 曼切斯特编码(简称为曼切斯特编码)

0度相位的方波(类似正弦波)表示“0”,

180相位的方波(类似余弦波)表示“1”.

正好与标准曼切斯特编码相反。

如下是用两种不同的曼彻斯特编码表示的一连串的二进制码1010 0111 001的示意图:

从上图示意可以看出:

在两种曼彻斯特编码中,每个比特位的中间都有一次跳变。差别在于上升沿和下降沿表示的数字正好相反。

并用中间的跳变表示要传输的二进制数据,同时中间的跳变又可以作为时钟信号。

(C)差分曼彻斯特编码

还有一种差分曼彻斯特编码,它是曼彻斯特编码的改进。

在差分曼彻斯特编码中,每个比特位的中间也有一跳变。

但中间的跳变不表示要传输的二进制数据,中间的跳变仅仅作为时钟信号。

差分曼彻斯特编码的特别之处在于,它不是用固定的波形标识0或1,而是使用了相邻的两个波形符号的变化来标识0或1。

不管前一个波形符号是“类正弦的方波”,还是“类余弦的方波”,

如果后一个波形符号symbol和前一个的波形符号symbol相同,则表示0,如下图所示,这样标识“0”的波形符号(symbol)就不是唯一的。

如果后一个波形符号(symbol)和前一个的波形符号(symbol)不同,则表示1,如下图所示,这样标识“1”的波形符号(symbol)就不是唯一的。

这种编码方式,规避了Thomas曼切斯特编码与802.3 曼切斯特编码,使用固定波形标识0或1的问题。

如下是三种曼切斯特编码的比较:

上述三种曼切斯特编码方式,每个时钟位都必然有一次变化,所以这三种编码的效率仅可达到50%左右,这是曼切斯特编码的缺点。

结论:

按照无论是数据0还是数据1,都是通过一个完整周期的正弦或余弦信号(当然,也可以说是方波)承载的。

物理链路时钟的合成/恢复。

如上描述的,在发送端,在时钟的驱动下,按照曼切斯特编码的数据,本身就内含的发送端的时钟频率

从上图可以看出,时钟信号是一个方波信号,在数据0或1的电平期间,包含了一个完整的时钟方波信号,一个方波信号是一个高电平,一个低电平的组合。

时钟信号的周期正好于承载数据0或数据1的类正弦与类余弦的方波信号的周期是一样的,即频率是一样的。

通过曼切斯特编码,通信的发送端接收端,即不需要专门的时钟信号线来传递时钟信息了。

接收端通过数字锁相环,从链路中恢复发送端发送二进制比特的时钟信号的频率与相位,且能够完全同步。

至此10M数据速率的通信方式下,二进制比特就可以通过物理信号进行发送了。

(2)RTL8201 100M以太网通信的原理

1)PCS子层(Physical Coding Sublayer):物理层编码子层

PCS子层的功能是物理层的编码/解码。包括三部分:

  • PCS子层与MAC层的接口
  • PCS子层的包结构
  • PCS子层的编码

(1). 与MAC层的物理接口

从上图,可看出, MII接口,物理层与MAC层之间是4比特的并行数据,而不是串行数据。

之所以是4比特的并行数据,与紧接着介绍的4B/5B编码有很大的关系。

(2)物理层帧的发送

Tx_En:启动MAC帧的发送。

TXD<3:0>:MAC层的帧,包括前导码、帧同步码、数据净荷和CRC.

(3)物理层帧的接收

RX_DV:有效数据开始

RXD<3:0>:MAC层的帧,包括前导码、帧同步码、数据净荷和CRC.

RX_ER:物理层接收出错,比如数据接收到一半异常中断,无数据。

PCS子层包的结构:物理层的包结构与MAC层的帧结构是一致的。

PCS子层的编码

物理层编码一个重要的功能就是把原始的物理层帧数据,编码成适合物理线路传输的二进制数据,主要用于链路控制、检错、纠错和差错后的重传。

相对于10M速率的物理链路,100M的速率,二进制数据的速率整整提升了10倍,导致每个通信节点之间的干扰也会增加、受到线路噪音的干扰的影响也急剧的增加,因此需要一定的数据编码,用来进行链路控制、检错、纠错和差错后的重传。

从上图中,可以看出,相对于10M速率,增加了4B/5B编码/解码、扰码/解扰

(A)4B/5B编码和解码

4B/5B编码方案是把4比特的二进制数据转换成5比特二进制数据的编码方案。

这种编码的特点是将欲发送的数据流每4比特作为一个组,然后按照4B/5B编码规则将其转换成相应5比特的编码。

5比特的码共有32种组合:

其中16种组合用于承载4比特的数据。

其他的16种组合用作链路控制码或保留使用,如表示帧的开始和结束、物理线路的状态(静止、空闲、暂停)等。

如下是以太网4B/5B数据码映射表:

4比特的0000被编码成了5比特的11110;

4比特的1111被编码成了5比特的11101;

数据的编码效率=4/5 = 80%, 即80%的编码效率。

4B/5B编码,还有一个重要的特性:即使原始的4比特的数据有4个全0或有3个0,编码后的5B特的数据中,0的个数最多也就是2个。如:

0000被编码成了11110 =》4个1,1个0

0001被编码成了10101 =》3个1, 2个0

如下是以太网4B/5B控制码编码表:

11111: 用于物理层数据流之间的填充字符,表示空闲状态,无有效数据,主要用于维持链路时钟同步。

11000/10001:物理层数据流的开始标志,MAC层帧的前导码的第一个字节被映射成此5B编码。

01101/00111:物理层数据流的结束标志。没有MAC层帧的相应比特域与之对应,与TX_EN和RX_DV对应。

发送数据时,MAC层与PHY层之间的电信号TX_EN由高电平变成低电平,则自动转换成物理层数据流的结束标志。

接收数据时,物理层收到该物理层数据流的结束标志,自动把MAC层与PHY层之间的电信号RX_DV由高电平变成低电平,通知MAC层数据传送完成。

4B/5B编码的好处:

  • 采用4B/5B编码的主要目的是为了减少传输线路上出现多个连续的0或1,有利于接受端提取时钟信号。也称为保持线路的交流(AC)平衡, 与NRZI编码配合使用。
  • 额外增加的5比特的控制码,用于通信双方,在物理层PCS子层实体之间,进行物理链路的监控和控制。
  • 额外增加的5比特的控制码,用于物理层实体PCS子层把监控到的链路状态,通过芯片的信号管脚,反馈到MAC层。

PCS子层数据流的结构(4B/5B编码后的物理层的比特流)

  • SSD(11000/10001):物理层使用该5B控制码,替换MAC层帧的前导码preamble的第一个字节。
  • ESD(01101/00111):物理层使用该5B控制码,添加到MAC层帧的尾部。
  • IDLE(11111):物理层空闲指示,用于时钟同步。

上述5B控制码,对MAC层不可见,终止于PCS子层。

(B)加码(Scrambling)和解码

加扰是数字信号的加工处理方法,就是用二进制扰码与原始二进制数据相乘,从而得到新的二进制数据。

与原始二进制相比,新的二进制在时间上被打散。

一般来说,数字通信系统的设计及其性能都与所传输的数字信号的统计特性有关。

通过加扰技术,在不增加新的数据比特的情况下,扰乱原有数据的比特顺序,改变数字信号统计特性,使其近似于白噪声统计特性。这种技术的基础是建立在反馈移存器序列(一种伪随机序列)的理论基础之上。

PMA子层:物理介质连接子层

PMA的功能包括

  • 发送方向是并串转换,接收方向是串并转换
  • 物理层信号编码
  • 物理链路时钟的合成/恢复。

PMA从PCS接收并行比特流,然后转换成串行比特流发送到PMD层。

PMA使用数字锁相环PLL,在发送端根据标准时钟接口发送二进制比特流,在接收端PLL同步串行二进制流从中提取时钟。

(1)并串转换

这个没有什么可以多说的,就是5比特的并行数据,转换成1bit的串行数据,用于线路发送。

(2)物理层信号编码

在10M速率的情况系,采用的是曼切斯特编码,即用一个完整的正弦波或余弦表示的方波信号表示0或1,这种编码方案的优点是,在传输数据的同时,也能够传递数据比特的时钟周期,不需要专门的时钟信号在收发双方传输时钟信号。

但缺点也是很明显的,编码后信号的频率是编码前的数据频率的2倍,即编码效率只有50%。

有没有一种编码方法,既能够传送时钟信号,也能够传送数据,且信号的编码效率100%呢?很显然目前没有找到。

采用归零码NRZ编码的I2C、SPI串行通信,信号的周期与二进制数据的周期是完全对应的,编码效率达到100%,然而,串行通信的两端,需要专门的时钟信号线传递时钟。

那么,有没有一种编码方式,既能够传送时钟信号,也能够传送数据,且信号的编码效率在50%~100%之间呢?

以太网100M速率的情况下,采用的4B/5B+NRZI混合编码的方式,就能够得到此效果。

NRZI编码效率为100%,且能够确保在传输数据“1”的情况下,同时能够传递时钟信息。但在传递数据“0”的情况下,无法传递时钟信息。

4B/5B编码能够确保(1)编码效率达到80%;(2)即使用户数据中包含连续的0比特,该编码可以避免连续的传输数据0比特。

NRZI + 4B/5B的组合编码,得到这样的效果:既能够传送时钟信号,也能够传送数据,且信号的编码效率在80%。

不归零码NRZ、曼切斯特编码、差分曼切斯特编码、4B/5B编码在前面已经讨论过了,在这里,探讨一下NRZI 。

NRZI(Non Return to Zero Inverted),即不归零反转编码,NRZI是结合了NRZ和差分曼切斯特编码的思想。

首先,NRZI的基础是不归零码NRZ,因此电信号的符号是高电平与低电平,周期与二进制数据的周期是一样的。

但为了传递时钟信息,该编码并没有直接使用高电平或低电平表示0或1数据,而是借助了差分曼切斯特编码的思想,即用前后两个电平信号的变化来表示1和0。

如果前后两个电平保持不变时(连续的低电平或连续的高电平),表示数据“0”;

如果前后两个电平发生变化时(一个高电平+一个低电平或者一个低电平+一个高电平),表示数据“1”。

为了更好的理解NRZI,参见如下示意图:

全“1”数据的NRZI编码:

全1的二进制比特的NRZI编码,就是一个与数据比特率等速率的方波周期信号。

全“0”数据的NRZI编码:

全0的二进制比特的NRZI编码,是一个恒低电平或恒高电平的信号,没有时钟信息。

这是NRZI编码最大的缺陷!!

好在4B/5B编码,弥补了此缺陷,4B/5B编码后,规避了全0的情况,任意4比特的数据,都会被编码成至少包含3个1的5比特数据。

并且5比特的11111被编码成了idle控制码,用于在没有数据传送时,用此编码传递时钟同步信号:

———————————————————————————————————————

PMD子层​

PMD子层位于整个网络的最底层, 且只适用于>=100M速率的情形,主要完成

(1)MDI输出信号

MDI的接口信号是差分信号,如Tx+, TX-, 就是一对差分信号。

差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相同,相位相反。在这两根线上的传输的信号就是差分信号

信号接收端比较这两个电压的差值来判断发送端发送的逻辑状态。

从严格意义上来讲,所有电压信号都是差分的,因为一个电压只能是相对于另一个电压而言的。

在非差分信号系统里,"系统地"被用作电压基准点。当'地'当作电压测量基准时,这种信号被称之为单端电压。

当两个导体上被同时加入的一个幅度相等、相位相反的电压,也就是所谓共模信号,信号值是两个导体间的电压差。

差分信号的第一个好处是,线路中传输的信号自包含了“基准信号”,因此能够很容易地识别小信号。在一个“地”做基准的单端信号方案的系统里,测量信号的精确值依赖系统内'地'的一致性。信号源和信号接收器距离越远,他们局部地的电压值之间有差异的可能性就越大,因此被传输信号的幅度就不能太低。差分信号恢复的信号值在很大程度上与双方的系统'地'信号的精确值无关,只与传输的信号的幅度差有关。

差分信号的第二个主要好处是,它对外部电磁干扰(EMI Electromagnetic Interference)是高度免疫的。一个干扰源几乎相同程度地影响差分信号对的每一端。既然电压差异决定信号值,这样将忽视在两个导体上出现的任何同样干扰。除了对干扰不大灵敏外,差分信号比单端信号生成的 EMI 还要少。

差分信号提供的第三个好处是,在一个单电源系统,能够从容精确地处理'双极'(正负)信号。为了处理单端,单电源系统的双极信号,我们必须在地和电源干线之间某任意电压处(通常是中点)建立一个虚地。用高于虚地的电压来表示正极信号,低于虚地的电压来表示负极信号。接下来,必须把虚地正确地分布到整个系统里。而对于差分信号,不需要这样一个虚地,这就使我们处理和传播双极信号有一个高真度,而无须依赖虚地的稳定性。

(2)网络变压器

在物理层芯片输出与RJ45线路信号输出之前还有一个网络变压器,进行电信号的隔离。

变压器功能

电气隔离

任何CMOS的芯片工作的时候产生的信号电平总是大于0V的,PHY输出信号送到100米甚至更长的地方会有很大的直流分量的损失。而且如果外部网线直接和芯片相连的话,电磁感应(打雷)和静电,很容易造成芯片的损坏。网络变压器本身就是设计为耐2KV~3KV的电压的。也起到了防雷保护作用。

再就是设备接地方法不同,电网环境不同会导致双方的0V电平不一致,这样信号从A传到B,由于A设备的0V电平和B点的0V电平不一样,这样可能会导致很大的电流从电势高的设备流向电势低的设备。

网络变压器把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端。这样不但使网线和PHY之间没有物理上的连接而换传递了信号,隔断了信号中的直流分量,还可以在不同0V电平的设备中传送数据。

从这个层面上看,网络变压器有点像“天线”:设备上的电信号,通过变压器“耦合”到RJ45的线路中,就像天线把电信号耦合成成电磁波信号,发送到空间中一样。

共模抑制

在双绞线中的每一对信号(如Tx+,Tx-)导线是以双螺旋形结构相互缠绕着。流过每根导线的电信幅度相同、相位差180度,因此其所产生的磁场受螺旋形的制约、抵消,防止了信号自传输过程中能量的散发损耗。

即对差模信号而言,它在每一根导线上的电流是以相反方向(幅度相等的一对正负信号)在一对导线上传送。如果这一对导线是均匀的缠绕,这些相反的电流就会产生大小相等,反向极化的磁场,使它的输出互相抵消。

在这一点上,正好与天线相反:

天线中的电流在两根导线上以相同方向流动,并经过寄生电容CP到地返回。在这种情况下,电流产生大小相等极性相同的磁场,它们的输出不能相互抵消。共模电流在对绞线的表面产生一个电磁场, 电信号就通过电磁场散发到空间中。

(3)SFP光信号接口:光纤连接、电/光转换等功能。

PMD是由电/光收发器SFP完成的,SFP光模块是光通信的核心器件,是通过光电转换来实现设备间信息传输的接口模块,由接收部分和发射部分组成。其中发送端把电信号转换成光信号,通过光纤传送后,接收端再把光信号转换成电信号,传输媒质为光纤。

SFP与物理层芯片之间的信号接口:

发射部分原理

输入一定码率的电信号经内部的驱动芯片处理后驱动半导体激光器(LD)或发光二极管(LED)发射出相应速率的调制光信号,其内部带有光功率自动控制电路(APC), 使输出的光信号功率保持稳定。

接收部分原理

一定码率的光信号输入模块后由光探测二极管转换为电信号,经前置放大器后输出相应码率的电信号。同时在输入光功率小于一定值后会输出一个告警信号。

光模块的主要参数及意义

传输速率

传输速率指每秒传输比特数,单位 Mbps 或 Gbps。

目前常用的传输速率有 155Mbps, 1.25Gbps, 2.5Gbps, 10Gbps等。

传输距离

光模块一般有多模550m, 单模15km, 40km, 80km和120km等。

光模块的传输距离分为短距、中距和长距三种。一般划分如下:

光信号在光纤中传输时会有一定的损耗和色散,这是光模块的传输距离受到限制的主要原因。

中心波长

中心波长指光信号传输所使用的光波段,单位纳米(nm), 目前主要有850nm波段、1310nm 波段以及 1550nm 波段。

至于电信号如何调制到光信号上,将单独的章节探讨。

至此,用户数据的与“I Love you”对应的二进制数据,经过以太网MAC层封装、物理层的数字编码、电信号符号编码,转成了相关的电信号,再经过网络变压器或SFP光电转换器,就可以在物理线路上发送了。

六、信道对信息的传输过程

这里的信道主要是指RJ45双绞线信道与光纤信道。

七、信宿对信息的接收过程及其关键原理

1、以太网的解码过程

2、信宿的接收过程

信宿对信息的接收过是信号的发送过程的反向过程

(1)信号的接收:

如果是10/100M电口,这里主要是RJ45口和网络变压器对物理信号的接收

如果是100M光口,这里主要是SFP光电转换器对光信号的接收,并转换成电信号。

(2)物理层电信号解码或符号解码

如果是10电口, 主要是曼切斯特编码解码。

如果是100M电/光,这里主要是NRZI解码。

(3)物理层信道解码:如果是100M电/光,主要是扰码、4B/5B编码

(4)网络解码:解码MAC层解帧与CRC校验。

(5)数据:经过CRC检查和MAC帧解码,得到“I Love You”对应的二进制ASCII编码的数据。

(6)信宿:美女B

美女B是一个程序员,通过二进制,直接翻译成“I Love You”,感受到了帅哥A的浓浓爱意。

至此,整个以太网通信案例介绍完毕。

扩展阅读:

信号波形及频谱

乐竹:网络层接收消息—分片组装

09 论数据如何被切片的-IP切片及IP首部讲解

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

采购透明拼接屏,需要注意些什么

在采购透明拼接屏时&#xff0c;需要注意以下几点&#xff1a; 尺寸和分辨率&#xff1a;根据实际应用需求选择合适的尺寸和分辨率。如果用于商业展示&#xff0c;需要选择较大的屏幕尺寸和较高的分辨率&#xff0c;以提供更好的视觉效果和观看体验。 透明度&#xff1a;透明…

企业微信配置可信域名

首先去申请一个域名&#xff0c;然后将域名绑定到有公网ip的云服务器上&#xff0c;绑定到具体的网站&#xff1b;然后再企业微信&#xff0c;管理后台&#xff0c;点击具体的应用&#xff0c;进【网页授权及JS-SDK】&#xff1b;点击底部的【申请校验域名】点击下载文件&#…

从0到1实现Flink 实战实时风控系统的经验总结

随着互联网金融的快速发展&#xff0c;实时风控系统成为保障业务安全和用户信任的关键。本文将分享从零开始构建Flink实时风控系统的经验&#xff0c;并提供相关示例代码。 一、搭建Flink环境 首先&#xff0c;我们需要搭建Flink环境。以下是一些基本步骤&#xff1a; 安装Ja…

HNU-电路与电子学-2021期末A卷(不含解析)

【写在前面】 电路与电子学好像是从2020级开设的课程&#xff0c;故实际上目前只有2020与2021两个年级考过期末考试。 本份卷子的参考性很高&#xff0c;这是2020级的期末考卷。题目都是很典型的&#xff0c;每一道题都值得仔细研究透。 特别注意&#xff1a;看得懂答案跟写得…

编译原理词法分析:NFA转DFA(原理+完整代码+可视化实现)

NFA转换为DFA 【本文内容摘要】 什么是DFA通过子集构造法将NFA转换为DFA生成DFA的dot文件并且形成可视化。 如果本文对各位看官有用的话&#xff0c;请记得给一个免费的赞哦&#xff08;收藏也不错&#xff09;&#xff01; 文章目录 NFA转换为DFA一、什么是DFA二、NFA转换为…

SSM项目实战-前端-将uid存放在pinia中

https://pinia.vuejs.org/zh/getting-started.html 1、安装pinia npm install pinia {"name": "pro20-schedule","private": true,"version": "0.0.0","type": "module","scripts": {"d…

《 金融业图数据库建设发展调研报告 》:政策技术双轮驱动 图数据库未来大有可为

加gzh“大数据食铁兽”&#xff0c;回复“20231204“&#xff0c;获取材料完整版 导读 为更好地了解我国金融业图数据库技术的应用现状及需求&#xff0c;发现行业共性问题&#xff0c;宣传成功经验&#xff0c;本报告组织了针对金融业图数据库建设发展的调研工作&#xff0…

全球与中国木质颗粒燃料市场:增长趋势、竞争格局与前景展望

木质颗粒汽油的主要优点之一是环境永续性。木质颗粒被认为是碳中立的&#xff0c;因为燃烧过程中释放的二氧化碳量大约等于木材生长过程中吸收的二氧化碳量。这种封闭的碳循环减少了温室气体净排放并减轻了气候变迁的影响。作为一种可再生资源&#xff0c;木屑颗粒还可以透过促…

win11 install oh-my-posh

安装配置 下载 Nerd Fonts 字体 oh-my-posh font installNerd Fonts 网站下载&#xff0c;解压后右击安装 为终端设置 Nerd Fonts 字体 修改 Windows 终端设置&#xff08;默认快捷方式&#xff1a;CTRL SHIFT ,&#xff09;&#xff0c;在settings.json文件defaults属性下添…

nginx对多个服务器的高可用,容易出现鉴权失败

高可用简单测试正常&#xff0c;但是出现高概率401鉴权错误 抓包发现&#xff0c;确实是401 &#xff0c; 而鉴权是两次交互&#xff1a; 抓包发现鉴权到不同服务器上了&#xff0c;导致鉴权没有完成。 此时就需要我们的ip_hash,把同一IP地址的请求,都分配给同一台后端服务器&…

Python如何从文件中读取数据

从文件中读取数据 1. 读取整个文件 要读取文件&#xff0c;首先来创建一个文件&#xff1a; 然后打开并读取这个文件&#xff0c;再将其内容显示到屏幕上&#xff1a; file_reader.py with open(pi_digits.txt) as file_object:contents file_object.read()print(contents)…

人工智能时代AIGC绘画实战

系列文章目录 送书第一期 《用户画像&#xff1a;平台构建与业务实践》 送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》 送书第二期 《Spring Cloud Alibaba核心技术与实战案例》 送书第三期 《深入浅出Java虚拟机》 送书第四期 《AI时代项目经理成长之道》 …

金和OA saveAsOtherFormatServlet接口任意文件上传漏洞复现 [附POC]

文章目录 金和OA saveAsOtherFormatServlet接口任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 金和OA saveAsOtherFormatServlet接口任意文件上传漏洞复现 [附POC] 0x01 前言 免责…

OA系统是什么,能用低代码开发吗?

OA是什么&#xff1f;管办公室活动的 OA是Office Automation&#xff08;办公自动化&#xff09;的简称&#xff0c;原是指利用电脑进行全自动的办公&#xff0c;现在基本所有和办公相关的系统都可以称作是OA。绝大部分企业将OA用于企业内部的协作沟通&#xff0c;处理企业内部…

Raspberry Pi 2, 2 of n - Pi 作为 IoT 消息代理

目录 介绍 环境 先决条件 - 设置静态 IP 地址 安装 Mosquitto 启动/停止 Mosquitto 配置先决条件 - 安装 mqtt_spy 配置 Mosquitto 配置 Mosquitto - 无安全性 测试 Mosquitto 配置 - 无安全性 配置 Mosquitto - 使用密码身份验证 Mosquitto 测试 - 带密码验证 概括 介绍 在本文…

嵌入式设备里,SOC与MCU的区别是什么?

今日话题&#xff0c;嵌入式设备里&#xff0c;SOC与MCU的区别是什么?MCU与SOC有着明显的区别。MCU是嵌入式微控制器&#xff0c;而SOC则是片上系统。虽然这两者看似只有一个"嵌入式系统"的区别&#xff0c;但实际上在软件和硬件方面存在显著差异。首先&#xff0c;…

Vue实现图片预览(Viewer.js)

摘要&#xff1a; vue项目开发中遇到一个图片预览的需求&#xff0c;可以切换下一张&#xff0c;就是花里胡哨的&#xff0c;所以找viewer.js的插件 npm install v-viewer -S在项目main.js中加入&#xff1a; Viewer.setDefaults用于更改默认配置&#xff0c;比如我不想要显示…

蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及源码

包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及原理图 链接&#xff1a;https://pan.baidu.com/s/1xm8mLotLBvOULQlg76ca7g?pwdp0mx 提取码&#xff1a;p0mx

yocto修改optee的源

基于ti j784x evm&#xff0c;有两个层&#xff0c;meta-ti和meta-arm ti-processor-sdk-linux-adas-j784s4-evm-09_00_01_03/yocto-build/sources/meta-ti/meta-ti-bsp/recipes-security/optee/ /home/ubuntu/ti-tda4-j784s4xevm/ti-processor-sdk-linux-adas-j784s4-evm-09_…

UE4 双屏分辨率设置

背景&#xff1a; 做了一个UI 应用&#xff0c;需要在双屏上进行显示。 分辨率如下&#xff1a;3840*1080&#xff1b; 各种折腾&#xff0c;其实很简单&#xff1a; 主要是在全屏模式的时候 一开始没有选对&#xff0c;双屏总是不稳定。 全屏模式改成&#xff1a;Windows 之…