线路编码(NRZ,NRZI,8B/10B,Manchester)与加扰

0.前言

编码根据作用和场景不同分为信源编码,信道编码和线路编码。

  1. 信源编码:降低信源符号之间的相关性和冗余度,通过编码提高每个符号的信息量。具体说,就是针对信源输出符号序列的统计特性来寻找某种方法,把信源输出符号序列变换为最短的码字序列。比如各种压缩算法,音视频编码,Huffman编码算术编码、L-Z编码

  2. 信道编码:增加信号间的冗余度,用冗余信息对抗信道中的各种干扰。比如奇偶校验,线性分组码、卷积码、级联码、Turbo码和LDPC码
  3. 线路编码:信号在实际物理信道上传输,需要根据信道特性和正确接收采样的需求做的一些编码。比如归零码,非归零码,曼彻斯特编码,各种phy(hdmi,serdes,csi/dsi,etherNet)的8B/10B, 4B/5B,64B/66B编码等

本篇主要介绍传输编码。

1. 线路编码

(以下内容摘自https://www.cnblogs.com/laojie4321/archive/2012/04/09/2439475.html)

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

物理层的编码可以分为两类。

一类是和物理介质相关,常用的光接口码型有NRZ、NRZI;电接口码型有HDB3、BnZS、CMI、Manchester、MLT-3。

另一类和物理介质无关,比如百兆以太网用的4B/5B编码,千兆以太网用的8B/10B编码,万兆以太网用的64B/66B编码。

1.1物理介质相关编码

1.1.1 NRZ码:

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

NRZ的问题是,几个连续的1表示在一段时间内信号在链路上保持为高电平,类似地,几个连续0表示信号在一段时间内保持为低电平。一长串0和1导致两个基本问题。第一个问题是,它会导致基线漂移(baseline wander)状态。尤其是接收方保持一个它所看到的信号平均值,然后用这个平均值区分高、低电平。当收到的信号远低于这个平均值时,接收方就断定看到了0,同样,远高于这个平均值的信号被认为是1。当然,问题是太多连续的1或0会使这个平均值发生改变,使得检测信号中很难出现明显的变化。

第二个问题是,由高到低和由低到高的频繁转换必须使用时钟恢复(clock recovery)。直观地讲,时钟恢复问题就是:编码和解码过程都由一个时钟来驱动,每个时钟周期发送方发送1比特,接收方恢复1比特。为了使接收方能恢复发送方发送的比特,发送方和接收方的时钟必须精确同步。如果接收方时钟比发送方时钟稍快或稍慢,那么,接收方就不能正确地解码信号。可以采用在另一条线上发送时钟给接收方的方法,但这种方案不太可行,因为这使布线费用增加一倍,所以接收方改由收到的信号得到时钟,这就是时钟恢复过程。无论何时,只要信号有从1到0或从0到1的跳变,接收方就知道这是在时钟周期的边界上,它能够自己进行重新同步。然而,若长时间没有这样的跳变就会导致时钟漂移。所以,无论传送什么数据,时钟恢复都依赖于信号内有许多跳变。

下图以图解方式描述了一个特定的比特序列(图的上部)及其对应的NRZ编码信号(图的下部)。

1.1.2 NRZI码:

有一种方法可以解决上述问题,称为不归零反转(NonReturn to Zero Inverted,NRZI)。光接口100Base-FX使用此码型。编码不改变信号速率。发送方将当前信号的跳变编码为1,将当前信号的保持编码为0。这样就解决了连续1的问题,但是显然未解决连续0的问题。NRZI如下图所示。还有一种方法称为曼彻斯特编码(Manchester encoding),这种颇具独创性的方法通过传输NRZ编码数据与时钟的异或值使时钟与信号结合在一起。(把本地时钟看作一个从低到高变化的内部信号,一对低/高变化的电平看作一个时钟周期。)下图也给出了曼彻斯特编码。注意,曼彻斯特编码将0作为由低到高的跳变,1作为由高到低的跳变(定义也可以相反)。因为0和1都导致信号的跳变,所以接收方能有效地恢复时钟。(还有一种曼彻斯特编码的变种,称为差分曼彻斯特(differential Manchester)编码。其方法是若信号的前一半与前一比特信号的后一半信号相等则编码为1,若信号的前一半与前一比特信号的后一半信号相反则编码为0。)

曼彻斯特编码方案存在的问题是使链路上信号跳变的速率加倍,这意味着接收方有一半的时间在检测信号的每一个脉冲。信号变化的速率称为链路的波特率(baud rate)。在曼彻斯特编码中,比特率是波特率的一半,所以认为编码的效率仅为50%。记住,如果接收方保持比上图中的曼彻斯特编码要求的更快的波特率,那么在相同的时间段中,NRZ和NRZI能传输2倍的比特数。

NRZI编码规则:

1).如果下一个输入二进制位是“1”,则下一个编码后的电平是当前电平跳变后的电平;

2).如果下一个输入二进制位是“0”,则编码后的电平与当前保持一致。

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

1.1.3 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”相反。

1.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,如果采用曼彻斯特编码,波特率将达200M波特,对传输介质和设备的技术要求都将提高,增大了传输成本。如果使用4B/5B编码,在传输速率为100Mbps的情况下,其调制速率为:100M÷(4/5)=125M(baud)。即波特率为125M baud,大大低于曼彻斯特编码时的200M baud,这样就在快速以太网中使用非屏蔽双绞线成为可能

2.扰码与加扰

        Scrambling,加扰,是数字信号的加工处理方法,就是用扰码与原始信号相乘,从而得到新的信号。与原始信号相比,新的信号在时间上、频率上被打散。 因此,从广义上说,加扰也是一种调制技术。

        加扰技术:不用增加多余度而搅乱信号,改变数字信号统计特性,使其近似于白噪声统计特性【白噪声是一种宽带信号的一种技术。这种技术的基础是建立在反馈移存器序列(或伪随机序列)理论之上的。

        加扰也有一个逆操作,就是解扰。
  

  1.   为了原始信号避免连‘0’、‘1’,从而方便同步。
  2.   加密,在PHS、GSM、WCDMA乃至LTE,通信加密都是通过加扰实现的。
  3.   扩频,在CDMA技术中,加扰用于将原始信号扩频。
  4.   区分,在CDMA技术中,扰码用于区分不同的设备。

        对于高速串口来说,如果有CDR需求,加扰是为了避免连0和连1,同时也是为了扩频,以降低EMI和RF自干扰。

        像HDMI和DPHY这种没有CDR需求的,加扰主要为了降干扰。其中CSI2的V3.0 spec也明确说明加扰是为了降干扰。

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值