通信线路的编码就像商品的包装,商品包装的目的是使商品更适合运输,在运输过程中不受损,同样,线路编码的目的就是使编码后的二进制数据更适合线路传输。

物理层的编码可以分为两类。
一类是和物理介质相关,常用的光接口码型有NRZ、NRZI;电接口码型有HDB3、BnZS、CMI、Manchester、MLT-3。
另一类和物理介质无关,比如百兆以太网用的4B/5B编码,千兆以太网用的8B/10B编码,万兆以太网用的64B/66B编码。

(1)物理介质相关编码

NRZ码:

NRZ即Non-Return to Zero Code, 非归零码,光接口STM-NO、1000Base-SX、1000Base-LX采用此码型。NRZ是一种很简单的编码方式,用0电位和1点位分别二进制的“0”和“1”,编码后速率不变,有很明显的直流成份,不适合电接口传输。

NRZI码:

NRZI即Non-Return to Zero Inverted,非归零反转码,光接口100Base-FX使用此码型。编码不改变信号速率。
NRZI编码规则:
1).如果下一个输入二进制位是“1”,则下一个编码后的电平是当前电平跳变后的电平;
2).如果下一个输入二进制位是“0”,则编码后的电平与当前保持一致。

NRZ和NRZI都是单极性码,即都只有正电平和零电平,没有负电平,所以NRZ和NRZI码中有很多直流成份,不适合电路传输,并且NRZ和NRZI编码本身不能保证信号中不包含长连“0”或长连“1”出现,不利于时钟恢复。

MLT-3码:

MLT-3即Multi-Level Transmit -3,多电平传输码,MLT-3码跟NRZI码有点类型,其特点都是逢“1”跳变,逢“0”保持不变,并且编码后不改变信号速率。如NRZI码不同的是,MLT-3是双极性码,有”-1”、“0”、“1”三种电平,编码后直流成份大大减少,可以进行电路传输,100Base-TX采用此码型。
MLT-3编码规则:
1).如果下一输入为“0”,则电平保持不变;
2).如果下一输入为“1”,则产生跳变,此时又分两种情况。
  (a).如果前一输出是“+1”或“-1”,则下一输出为“0”;
  (b).如果前一输出非“0”,其信号极性和最近一个非“0”相反。

AMI码:

AMI即Alternate Mark Inversion,信号交替反转码,典型的双极性码,AMI类型的编码有HDB3、B3ZS、B8ZS等。
AMI编码规则:输入的“0”仍然是0,输入的“1”交替的变换为+1、-1。
AMI编码如下图所示:

AMI能保证编码后无直流分量,但AMI本身无法保长连“0”和长连“1”出现。
这就出现HDB3、B3ZS、B8ZS,这三种编码成功弥补了AMI码的这种缺陷。

HDB3码:

HDB3即High Density Bipolar of order 3 code,三阶高密度双极性码。

编码规则:
1).当原码没有四个以上连“0”串时,AMI码就是HDB3码。
2).当出现四个以上连“0”串时,将第四个“0”变成与其前面一非“0”同极性的符号,由于这个符号破坏了极性交替反转的规则,因此叫做破坏符号,用V符号表示(+1为+V,-1为-V),相邻的V符号也需要极性交替。
3).当V符号之间有奇数个非“0”时,是能满足交替的,如为偶数,则不能满足,这时再将该小段的第一个“0”变成“+B”或“-B”,B符号与前一个非“0”符号相反,并让后面的非“0”符号从V符号开始交替变化。HDB3码如下图所示:

换一种更好记的方法:两V码之间原始码非“0”个数为为奇数时,用000V代替0000,为偶数时,用B00V代替0000,B00V之后,原始极性码必须与V码极性相反。如下图所示:

B3ZS码:

B3ZS即Bipolar with three-zero substitution,三阶双极性码,T3线路用此编码。
编码规则与HDB3相同,只是编码后能允许最多连“0”的个数从HDB3的三个减小到两个。B3ZS码如下所示:

B8ZS码:
B8ZS即Bipolar with eigth-zero substitution,八阶双极性码,如果源码中没有8个或以上连“0”串时,这时AMI码就是B8ZS码,如果有8个或以上连“0”时,将8个“0”替换成“000VB0VB”,其他规则同HDB3码。T1线路采用此编码。如下所示:

CMI码:

CMI即Code Mark Inversion,信号反转码。
编码规则:输入的“1”交替用-1和+1表示,“0”用电平从-1到+1的跳变表示,也就是一个上升沿。E4和SMT-1e线路采用此编码,编码后信号速率被提高,其实是以牺牲带宽来换取传输特性。如下图所示:

Manchester码:
使用电平从+1到-1的变化表示“0”,使用电平从-1到+1的变化表示“1”,
编码效率低,只有50%,同CMI一样,是拿带宽换取传输特性,10Base-T使用此编码。

如下图所示:

各种链路与码型对应表:

原文:http://www.cnblogs.com/laojie4321/archive/2012/04/09/2439475.html

(2)物理介质无关编码

什么是4B/5B编码?

4B/5B编码是百兆以太网(即快速以太网)中线路层编码类型之一,就是用5bit的二进制数来表示4bit二进制数,映射方式如下表所示:

为什么要进行4B/5B编码?
在通信网络中,接收端需要从接收数据中恢复时钟信息来保证同步,这就需要线路中所传输的二进制码流有足够多的跳变,即不能有过多连续的高电平或低电平,否则无法提取时钟信息
Manchester(曼切斯特)编码可以保证线路中码流有充分的跳变,因为它是用电平从“-1”到“+1”的跳变来表示“1”,用电平从“+1”到“-1”的跳变来表示“0”,但是这种编码方式的效率太低,只有50%,相当于用线路的有效带宽来换取信号的跳变,十兆以太网就是使用Manchester编码,虽然线路的有效带宽只有10Mbps,但实际带宽却是20Mbps。
百兆以太网用的4B/5B编码与MLT-3编码组合方式,发送码流先进行4B/5B编码,再进行MLT-3编码,最后再上线路传输;千兆以太网用的是8B/10B编码与NRZ编码组合方式;万兆以太网用的是64B/66B编码;PCIE 3.0用的是128B/130B编码。

4B/5B编码规则有哪些?
4B/5B编码其实就是用5bit的二进制码来代表4bit二进制码。此编码的效率是80%,比Manchester码高。4B/5B编码的目的在前面已经说过了,就是让码流产生足够多的跳变。4位二进制共有16种组合,5位二进制共有32种组合,如何从32种组合种选取16种来使用呢?这里需要满足两个规则:
1). 每个5比特码组中不含多于3个“0”;
2). 或者5比特码组中包含不少于2个“1”;

此规则是怎么来的?这就要从MLT-3码的特点来解释了。MLT-3码的特点简单的说就是:逢“1”跳变,逢“0”不跳变。为了让4B/5B编码后的码流中有足够多的跳变就需要编码后的码流中有尽量多的“1”和尽量少的“0”。
这种编码的特点是将欲发送的数据流每4bit作为一个组,然后按照4B/5B编码规则将其转换成相应5bit码。5bit码共有32种组合,但只采用其中的16种对应4bit码的16种,其他的16种或者未用或者用作控制码,以表示帧的开始和结束、光纤线路的状态(静止、空闲、暂停)等。
三种应用实例是FDDI、100BASE-TX和100BASE-FX.
8B/10B编码与4B/5B的概念类似,例如在千兆以太网中就采用了8B/10B的编码方式。

在通信系统中,通信速度与线路传输中的调制速率,所谓调制速率是指单位时间内线路状态变化的数目,以波特(baud)为单位。如果采用曼彻斯特编码,在每个调制时间间隔内跳动两次,则数据传送速率是波特率将的二分之一。在快速以太网中,数据传输速率为100Mbps,如果采用曼彻斯特编码,波特率将达200Mbps,对传输介质和设备的技术要求都将提高,增大了传输成本。如果使用4B/5B编码,在传输速率为100Mbps的情况下,其调制速率为:100M÷(4/5)=125M(baud)。即波特率为125M baud,大大低于曼彻斯特编码时的200M baud,这样就在快速以太网中使用非屏蔽双绞线成为可能

通讯线路物理层编码类型总结(NRZ,MLT-3,4B/5B,8B/10B,64B/66B...)相关推荐

  1. 8b10b编码源码 matlab,8b/10b编码技术系列(一):Serdes、CDR、K码

    和大家分享一下关于8b/10b编码的知识点,如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言! 一.Serdes高速收发器 在传统的源同步传输中,数据和时钟分离,在速率较低(<100 ...

  2. 8b/10b编码技术系列(一):Serdes、CDR、K码

    和大家分享一下关于8b/10b编码的知识点,如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言! 一.Serdes高速收发器 在传统的源同步传输中,数据和时钟分离,在速率较低(<100 ...

  3. 线路编码(NRZ,NRZI,8B/10B,Manchester等)

    0.前言 编码根据作用和场景不同分为信源编码,信道编码和线路编码. 信源编码:降低信源符号之间的相关性和冗余度,通过编码提高每个符号的信息量.具体说,就是针对信源输出符号序列的统计特性来寻找某种方法, ...

  4. 高速串行通信常用的编码方式-8b/10b编码/解码

    绪论 8b/10b编码/解码是高速串行通信,如PCle SATA(串行ATA),以及Fiber Channel中常用的编解码方式.在发送端,编码电路将串行输入的8比特一组的数据转变成10比特一组的数据 ...

  5. 高速信号编码之8B/10B

    1. 线路编码技术 在高速链路中导致接收端眼图闭合的原因,很大部分并不是由于高频的损耗太大了,而是由于高低频的损耗差异过大,导致码间干扰严重,因此不能张开眼睛.针对这种情况,可以通过CTLE和FFE( ...

  6. 图解通信原理与案例分析-8:以太网通信案例及其物理层工作原理深入剖析--物理层编码

    前言: 以太网是一种计算机局域网通信技术,主要由介质访问层(MAC L2) 协议.物理层(PHY L1)协议.电子信号连接组成. MAC层主要有交换芯片实现,物理层由PHY芯片实现,电信号连接主要定义 ...

  7. USB PD物理层使用的4B/5B编码介绍

    1. 什么是4B/5B编码 就是用5bit的一个二进制数来表示一个4bit二进制数. 2. 目的 为了保证物理层通信的同步(一般数字电路实现),线路中传输的码流需要有足够多的跳变. 显然正常的方式如: ...

  8. 编码(NRZ、NRZI、曼彻斯特、4B/5B)

    将节点和链路变成可用构件的第一步,是清楚它们如何连接,以使比特从一个节点传输到另一个节点.正如在前一节中提到的,信号是在物理链路上传播的.因此,我们的任务是将源节点准备发送的二进制数据编码为链路能够传 ...

  9. FFmpeg中编码类型为rawvideo无须解码直接显示测试代码

    在 https://blog.csdn.net/fengbingchun/article/details/93975325 中介绍过通过FFmpeg可以直接获取usb视频流并解码显示的测试代码,当时通 ...

最新文章

  1. tiav15安装重启_西门子博途TIA Portal V15.1安装无限重启和.net3.5SP1错误处理
  2. SQLite中特殊的INSERT语句
  3. 用jquery调用wcf下的各种错误码的解释。
  4. winform中关于panel中滚动条和键盘事件几点体会
  5. 软件——机器学习与Python,Python3的输出与输入
  6. 华为杨超斌:5G千元机有望明年底上市
  7. RxJava2.0——从入门到放弃
  8. Dell服务器如何重装操作系统 windows server
  9. 高德地图JS-API (超简单Get新技能√)
  10. Android ProGuard 还原堆栈
  11. flutter 加载gif图片
  12. 开源LitCAD:一个使用C#编写的非常简易的CAD小程序。
  13. 提升幸福感的100件小事
  14. 最新资料!工银亚洲开户见证业务受理网点(广东地区,除了深圳)
  15. jpg转换成pdf转换器免费版
  16. java判断字符串写法_Mybatis3 if判断字符串变态写法
  17. Mac ps 2021 3D功能无法使用问题,怎么办?
  18. Kerberos认证原理与环境部署
  19. quick-and-dirty如何翻译
  20. 编译 puppy linux,Puppy Linux import gtk在Python中抛出错误

热门文章

  1. 17.C#类型判断和重载决策(九章9.4)
  2. HDOJ 3709 Balanced Number
  3. Hadoop4.2HDFS测试报告之四
  4. hdu 1789 Doing Homework again
  5. 认识httphandler
  6. UA MATH563 概率论的数学基础 中心极限定理23 概率测度族的紧性
  7. UA MATH565C 随机微分方程V Markov Family简介
  8. power designer 使用vba实现自动化操作学习
  9. 使用Bochs调试Linux内核初级入门
  10. 图解Detour安装及简单使用实例(Win7+VC6)