首页 > 其他分享 >【数字通信】高速信号编码之XXB/XXB

【数字通信】高速信号编码之XXB/XXB

时间:2022-09-23 16:44:31浏览次数:53  
标签:编码 个位 数字通信 码型 RD XXB 10b 10B

  对于NRZ数据编码方式,有4B/5B,8B/10B,64B/66B,64/67B,128B/130B,128B/132B编码等等,不同的编码方式针对不同的信号协议,导致的效率也是不同的。

  什么是效率?在数据包传送的术语叫开销,意思就是除了实际需要的数据之外的一些数据bit,例如冗余校验等。如8B/10B,要把8bit的实际数据拓展为10bit,那么开销就是20%,效率就只有80%,换句话说,就是增加了20%的非实际数据的传输。

  编码方式评判标准:除本身的算法优化外,还应注重其效率。

  编码的原因:由于串行链路中会有交流耦合电容,理想电容的阻抗公式:

  线路编码机制将输入原始数据转变为接收器可接收的数据格式,同时保证数据流中有足够的时钟信息提供给接收端的时钟恢复电路。线路编码技术提供了一种将数据对齐到字节/字的方法,可以保持良好的直流平衡,增加了数据的传输距离,提供了更为有效的错误检测机制。除此之外,线路编码技术也可以用来实现时钟修正、块同步、通道绑定和将带宽划分到子信道等。线路编码技术主要有两种:数值查找表机制和自修改数据流(扰码)。目前常用的有8B/10B编码和64B/66B编码。

   接下来主要介绍8B/10B编码方式,其他均由它们拓展而来。8b/10b编码是由IBM于1983年发明的,旨在解决系统互联以及GB以太网传输的问题。 是指将8b的数据通过某种编码规则扩展成10b,保证数据流中的“0”和“1”数量基本一致,通过降低效率来增加传输的数据恢复的可靠性

一、8b/10b 主要具有以下优点:

1、保证直流(DC)平衡(重点

  直流平衡是什么意思呢?如上图所示,由于我们的串行链路中会有交流耦合电容,信号频率越高,阻抗越低,反之频率越低,阻抗越高。因此上面的情况,当码型是高频的时候(0/1切换的很快),基本上可以不损耗的传输过去,但是当码型为连续“0”或者“1”的情况时,电容的损耗就很大,导致幅度不断降低,带来的严重后果是无法识别到底是“1”还是“0”。因此编码就是为了尽量把低频的码型优化成较高频的码型,从而保证低损耗的传输过去。

  8b/10b编码方式总输出位数是10个位,其中“0”与“1”出现的次数总共也仅在三种场合存在,分别为“5个位0与5个位1”、“4个位0与6个位1”、“6个位0与4个位1”。有一个8b/10b编码的技术专用语“不均等性(Disparity)”,其涵义就是指10个位中位0与位1出现次数的差。换句话说,8b/10b编码的“Disparity”就仅有“+2”(4个位0与6个位1)、“+0”(5个位0与5个位1)以及“-2”(6个位0与4个位1)三种状况。

2、有利于提取时钟

  时钟恢复是依赖于“电平跳变沿“,所以平衡”0“和”1“,可以简化了时钟恢复,降低了接收机成本。

 3、方便错误检查

  8B/10B编码采用冗余方式,将8位的数据和一些特殊字符按照特定的规则编码成10位的数据,根据这些规则,能检测出传输过程中单个和多个比特误码。有关8b/10b编码的编码算法可以进一步查阅相关文献。在SerDes中长常用编码方式除了8b/10b编码外,还有64b/66b编码等;

 

二、编码方式

  • 8bit原始数据可以分成两部分:低位的5bit EDCBA(设其十进制数值为X)和高位的3bit HGF(设其十进制数值为Y),则该8bit数据可以记为D.X.Y;
  • 低5位(ABCDE)中间加一位,进行5B/6B编码,高三位(FGH)中间加一位,进行3B/4B编码;
  • 8B/10B编码中还用到12个控制字符,他们可以作为传输中帧起始、帧结束、传输空闲等状态标识,与数据字符的记法类似,控制字符一般记为K.X.Y。

  8bit数据有256种,加上12种控制字符,总共有268种。10bit数据有1024种,可以从中选择出一部分表示8bit数据,所选的码型中0和1的个数应尽量相等。8B/10B编码中将K28.1、K28.5和K28.7作为K码的控制字符,称为“comma”。在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,因此可以用comma字符指示帧的开始和结束标志,或始终修正和数据流对齐的控制字符。

  编码时,低5bit原数据 EDCBA经过5B/6B编码成为6bit码abcdei,高3bit原数据HGF经3B/4B成为4bit码fghj,最后再将两部分组合起来形成一个10bit码abcdeifghj。10B码在发送时,按照先发送低位在发送高位的顺序发送。【注:不均等性(Disparity)和极性偏差(Running Disparity,RD)。不均等性(Disparity):编码后的码型数据是“1”多还是“0”多;如果“1”多,则极性偏差RD为-RD,如果“0”多则是+RD】

  5B/6B编码和3B/4B编码的映射有标准化的表格,可以通过基于查找表的方式实现。使用 “不一致性(Disparity)”来描述编码中"1"的位数和"0"的位数的差值,它仅允许有"+2"( "0"比"1"多两个)、"0"( "0"与"1"个数相等)以及"-2"("1"比"0"多两个)这三种状况。 由于数据流不停地从发送端向接收端传输,前面所有已发送数据的不一致性累积产生的状态被称为“运行不一致性(Runing Disparity,RD)”。RD仅会出现+1与-1两种状态,分别代表位"1"比位"0"多或位"0"比位"1"多,其初始值是-1。

  编码的目的是为了缓解长“0”或长“1”的影响,因此在编码后如果“1”多的话,下次编码就要把这种码型做修正,从-RD码型变成+RD码型。如果“1”和“1”一样多,极性则不变,变化规则如下图所示:

 

  决定5B/4B和 3B/4B编码映射方式,如下表所示

5B/4B编码 3B/4B编码

注:当与5B/6B组合时,必须从D.x.P7和D.x.A7中选择一个来避免连续的5个0或1。

 

标签:编码,个位,数字通信,码型,RD,XXB,10b,10B
From: https://www.cnblogs.com/Ivan0506/p/16722786.html

相关文章

  • 【数字通信】编码
    在数字电路中,组成一连串信息的基元就是0和1,无论是在CPU、DSP、MCU甚至是个数字计数器中,数字电路在其中能够处理的信息也只有0和1,而对于任何外界的信息,计算机都能通过两......
  • js校验手机号、邮政编码、email、url的数据合法性
    //校验手机号/固话functioncheckPhone(mobile){mobile=mobile+'';vartel=/^0\d{2,3}-?\d{7,8}$/;varphone=/^(((13[0-9]{1})|(15[0-9]{1})|(......
  • 字符编码
    字符编码一、字符编码字符编码(英语:Characterencoding)、字集码是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机......
  • JAVA字符串转Unicode编码
    importjava.util.ArrayList;publicclassHello{publicstaticvoidmain(String[]args){Strings="我爱JAVA";System.out.println(s2uni......
  • java如何获取一个文本文件的编码(格式)信息呢?
    转自:http://www.java265.com/JavaJingYan/202110/16350332691561.html 文本文件是我们在windows平台下常用的一种文件格式,这种格式会随着操作系统的语言不同,而出现其......
  • 【前端】HTML编码效提升:快速生成HTML标签
    目录1.生成多级标签2.生成同级标签3.生成注释4.生成多个相同标签5.生成带class标签6生成带id标签.7.生成带内容标签18.生成带内容标签29.生成带属性标签GIF演示:快速生成HT......
  • url参数+,&,=,/等转义编码【转】
    问题描述在使用postman发送请求时,url出现了有+,空格,/,?,%,#,&,=等特殊符号,可能在转义之后导致服务器端无法获得正确的参数值。解决办法将这些字符转化成服务器可以识别的字符......
  • 编码在路上
    编码在路上编码是一种令人难以置信的在路上工作的方式。你选择你的时间,没有必要亲自到任何地方。这些都是很大的好处,但有时也很棘手。在移动中会遇到某些挑战。这些挑战包......
  • 字符编码笔记:ASCII,Unicode 和 UTF-8
    一、ASCII码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说......
  • 编码规范:不要用参数控制代码逻辑
    用参数控制代码逻辑可能是最经典的错误编码习惯,我在公司的项目代码中见到过好几次类似编码,包括我本人在职业生涯初期也编写过类似的代码。什么叫参数控制代码逻辑?我们可能......