您好,欢迎访问飞畅科技官网!
服务热线:+086 0571-87007055/56/57 EN
飞畅科技工业通信技术中心

光通信与工业互联网方案专家

EXPERT IN OPTICAL COMMUNICATION & INDUSTRIAL INTERNET SOLUTIONS

联系我们CONTACT US

全国咨询热线

0571-87007055/56/57/75

市场部直线电话:0571-87007140

手机:15306818230(微信)

QQ :2355416925

定制设计:18072828031(微信)

或给我们留言

在线留言

0和1为什么要换一种写法?百兆以太网4B/5B编码科普

浏览次数:飞畅科技原创作者:飞畅科技技术团队

FIBERIOT / 基础知识

电脑交给网口的是0和1,为什么线路内部还要把它们重新编码?因为接收器看到的是随时间变化的信号,不是一串已经分好格子的数字。它既要判断内容,也要找准每一位的位置。4B/5B就是部分百兆以太网物理层使用的一种表示规则:把四位数据换成约定好的五位码组,方便后续传输与识别。

4B/5B固定映射示例0000到11110及0001到01001
图1:两组数据码映射示例;AI辅助原创绘制,通用概念,非具体型号电路。

01先把“消息内容”和“线路表示”分开

把一段文字写成手写体或印刷体,文字意思可以相同,读法却有各自的规则。这个类比能帮助理解线路编码:它改变的是传送时的表示方式,不是把业务命令改成另一条命令。类比也有边界,真实接口必须严格按同一编码规则工作,不能像人读字那样靠猜。

以太网设备内部,MAC负责处理帧这一层的事务,PHY负责把数据送上实际介质、从介质恢复信号。这里的PHY可以理解为物理层收发部分。本文聚焦100BASE-TX电口和100BASE-FX光口涉及的4B/5B,不把它推广成所有网口、所有速率共同采用的规则。

现场用抓包软件看见的报文字节,通常已经经过接收端解码。屏幕上没有显示五位码组,并不表示网口没有进行编码;只是你观察的地点在另一层。先辨认工具看到了哪一步,才不会把软件中的数据与线上的状态直接混为一谈。

02为什么接收器需要信号中的节拍线索

发送器按自己的时钟推出一位又一位,接收器也需要知道什么时候判断这一位。虽然它知道大致速率,但真实线路中没有为每一位附上一张“现在开始”的纸条。器件时钟存在差异,信号还会受通道影响,因此物理层需要从接收到的变化中恢复合适的取样时刻。

如果某种直接表示方式让很长一段数据都没有变化,接收端就更难持续校正节拍。4B/5B的数据映射会选择适合后续线路表示的码组,避免普通数据任意产生过长的连续零序列。它与后续编码共同工作,并不是仅靠多加一位,就能单独解决所有同步、噪声和线路损耗。

这也解释了“业务没有发新消息”和“线路完全静止”并非同义。物理层还要表达空闲以及开始、结束等状态,接收器需要据此维持和识别链路。空闲码组属于物理层语义,不能当成控制程序新收到的一条应用数据。

034B/5B怎样换:是固定映射,不是补位

四个数据位共有十六种组合。发送端按约定的表,为每一种组合选出一个五位码组。例如0000对应11110,0001对应01001。接收端找到码组边界后,按同一张表反向还原。这里说的表既可以帮助人理解,也可以由芯片逻辑实现,不表示每台交换机里真的放着一张纸表。

一个常见误解,是以为保留原来四位,再在末尾添一个0或1。观察上述两组例子就能看出不是这样:输出五位是整体选出来的表示。它也不是UART奇偶校验那种按1的数量计算一个校验位的机制,两者处理对象、目的和所在位置都不同。

五位组合不只可以表达普通数据,还能安排控制码组。接收器因此要区分“这是数据”与“这是规定的控制状态”,而不是看见任何五位组合都硬拆成四位。本文只选两个数据例子解释思路,完整控制序列与状态机应查适用标准和芯片手册。

NRZI的低到高、高到低翻转与高低保持对照
图2:100BASE-FX的NRZI逻辑状态示意;高低不代表实测光功率,非所有以太网通用规则。

04为什么四位变五位,端口仍叫百兆

多出来的位置意味着线路侧需要为同样的数据安排更多编码位,而不是凭空增加用户数据。典型100BASE-X数据路径中,100Mb/s的数据流对应125Mb/s的编码位流。这个数字关系用于理解编码开销,不应再把它当作可以供应用额外使用的带宽。

文件传输速度还受帧头、帧间隔、上层协议、报文大小和设备处理等因素影响。不能用“125”直接承诺应用能达到某个字节每秒数值,也不能把编码多占的位置重复扣成另一项神秘损耗。说明性能时,应写清是在谈数据速率、编码位流,还是应用有效吞吐。

发送端与接收端配套使用这套表示方法,恢复后的原始数据位数并没有变多。它更像为了让传送可靠可辨而采用的共同书写规范,不是让一份业务消息在到达后带上额外的有效内容。

05NRZI为什么不能理解为“高就是1”

4B/5B先得到码组,后面还要把码组转换成适合接口的状态。以100BASE-FX所用的NRZI规则为例,某位为1时让信号状态翻转,为0时保持原状态。因此,同样读到1,既可能看到低变高,也可能看到高变低;判断依据是变化,不是单独一个电平的高低。

接收器先恢复比特节拍,再比较相邻状态,把翻转解释为1、保持解释为0,然后继续识别码组并还原数据。图中的高低仅是逻辑示意,不能拿它当某光模块的实测光功率,也不能据此断定光在任意数据0时一定关闭。

这里的规则有明确适用范围。其他以太网速率、其他物理接口可能使用不同编码与调制方法。只看到设备都写着“Ethernet”,便把同一套状态图套到所有端口上,会把原本不同的工作过程解释错。

100BASE-TX电口和100BASE-FX光口在4B/5B之后的不同处理路径
图3:物理层功能路径简化示意,非接线指南或特定产品结构;控制序列与实现细节已省略。

06电口与光口,后续处理为什么不同

100BASE-TX电口在4B/5B之后,还涉及扰码和MLT-3等处理。扰码用确定规则重新排列信号特征,接收端按对应方式恢复;它不是为保密而设计的加密。MLT-3使用不同电平状态构成适合双绞线传送的信号,也不能简单理解成三个电压分别代表三个业务数字。

100BASE-FX的发送路径则使用适合光接口的NRZI过程与光电发送部分。两条路径共享部分编码思想,却不意味着RJ45电口可以直接接光纤,或光电转换只需把导线换成玻璃。真正的转换设备必须处理接口、电气或光学信号以及相应收发过程。

从接收方向看,还要恢复节拍、识别码组边界、反向解码,并把数据交回MAC。图里把这些功能画成几个阶段,只是帮助读者理解先后关系,并不是任何一款飞畅产品的内部电路图,也没有列出所有芯片实现细节。

07这项知识怎样用于工业现场

飞畅官网的mini工业轨式5路百兆电交换机等真实产品,说明百兆电口仍是工业现场的一类实际接口。本文借此讨论通用物理机制,不根据产品名称推断其采用哪颗PHY,也不承诺它开放码组错误计数、特殊诊断或光口功能。具体型号能力要看对应资料。

排查时先确认端口实际工作的速率与物理标准,再记录链路、接收错误和业务异常发生的时间。若设备提供编码相关错误计数,要核实它的定义、方向和清零条件。普通抓包没有显示异常,不能单独证明物理层的每一步都无误;反过来,一项计数变化也不能直接断言一定是光纤、网线或某个芯片损坏。

最实用的理解是:编码让内容变成双方都能辨认的线路表示;接收过程把它还原;校验再从自己的范围内检查数据。编码不等于加密,也不等于纠错。把这几个任务分开,才容易读懂手册、理解诊断结果,并提出有证据的下一步检查。

资料依据

Texas Instruments DP83849I手册中的码组表与100BASE-TX功能说明;Texas Instruments DP83822手册的100BASE-FX发送与接收章节;Microchip Ethernet Overview的接口分类。真实产品依据:飞畅mini工业轨式5路百兆电交换机。芯片资料用于核对通用机制,不表示该产品使用这些芯片或具备其全部功能。

现场常见问题

4B/5B是不是给原来四位补一个校验位?

不是。它按照固定表把整个四位数据组合映射成五位码组,例如0000映射为11110。接收端反向解码;它的任务不同于奇偶校验,不负责保证所有错误都能发现。

为什么用了五位码组,端口仍然叫100Mb/s?

100Mb/s描述数据侧速率,典型100BASE-X相应编码位流为125Mb/s。多出的位置用于线路表示,不能当成应用额外可用带宽;应用吞吐还受帧和上层协议等开销影响。

所有工业交换机都用同一种线路编码吗?

不是。编码取决于具体物理标准和速率。100BASE-TX与100BASE-FX共享4B/5B思想,但后续电信号或光信号处理不同;其他以太网接口还可能采用其他方法。

适用边界与延伸阅读

通用100BASE-TX与100BASE-FX编码示意,非实测或特定型号电路;其他以太网标准可能采用不同编码。

以太网CRC与FCS原理;前导码与帧间隔