线路/信道编码技术(1)——8B/10B编码

原创 2015年12月25日 14:59:33

1. 线路编码技术

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


2.8B/10B编码原理

        8B/10B编码是1983年由IBM公司的Al Widmer和PeterFranaszek所提出的数据传输编码标准,目前已经被广泛应用到高速串行总线,如IEEE1394b、SATA、PCI-Express、Infini-band、FiberChannel、XAUI、RapidIO、USB 3.0的美好。8B/10B编码将待发送的8位数据转换成10位代码组,其目的是保证直流平衡,以及足够密集的电平转换。

        8bit原始数据可以分成两部分:低位的5bit EDCBA(设其十进制数值为X)和高位的3bit HGF(设其十进制数值为Y),则该8bit数据可以记为D.X.Y。另外,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码在发送时,按照先发送低位在发送高位的顺序发送。


        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。Next RD值依赖于Current RD以及当前6B码或者4B码的Disparity。根据Current RD的值,决定5B/4B和 3B/4B编码映射方式,如下图所示。




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

        当Current RD=-1时,表示之前传输的数据中"0"的个数多于"1"的个数,若6B或4B编码的Disparity=0,则NextRD=-1;若6B或4B编码的Disparity=+2,则Next RD=+1。同样,当Current RD=+1时,表示之前传输的数据中"0"的个数多于"1"的个数,若6B或4B编码的Disparity=0,则NextRD=+1;若6B或4B编码的Disparity=-2,则Next RD=-1。




        这样,经过8B/10B编码以后,连续的“1”和“0”基本上不会超过5bit,只有在使用comma时,才会出现连续的5个0或1。接收端的数据解码过程如下图所示:


USB3.0中的8/10b编码技术详细解释

USB3.0在Physical layer中定义了超速USB的信号传输技术,在其中最关键的就是引入了8/10b编码技术,如下图中的红色部分。 8/10b编码和解码的的流程如下图所示,在编码时将A...
  • liulu19861110
  • liulu19861110
  • 2012年10月11日 11:04
  • 3805

SDI为什么不用8B/10B编码

SDI为什么不用8B/10B编码?     8B/10B编码实际传送的数据带宽会损失20%左右,而SDI采用NRZ/NRZI基本可以达到接近100%的带宽。     关于误码率,看用在什么地方,以...
  • charleslei
  • charleslei
  • 2016年06月12日 11:02
  • 1032

查表法8b10b编解码

  • 2014年11月01日 21:37
  • 1.46MB
  • 下载

8b10编码表

  • 2016年05月22日 10:27
  • 1KB
  • 下载

PCIE_GT/S 8b/10b

GT/s —— Gigatransation per second (千兆传输/秒),即每一秒内传输的次数。重点在于描述物理层通信协议的速率。GT/s着重描述端口的速率属性 PCIe总线物理...
  • lin200753
  • lin200753
  • 2015年01月16日 22:46
  • 1033

8b/10b SERDES的接口设计

8b/10b SERDES的接口设计 摘要 串行接口常用于芯片至芯片和电路板至电路板之间的数据传输。随着系统带宽不断增加至多吉比特范围,并行接口已经被高速串行链接,或SERDES (串化器/ 解串...
  • yijingjijng
  • yijingjijng
  • 2015年07月31日 12:43
  • 1687

查表法8b10b编解码,第二版本

  • 2018年01月20日 17:06
  • 201KB
  • 下载

Verilog8b10b编码

  • 2017年10月29日 16:33
  • 2KB
  • 下载

8B10B编码与解码以及原理和方法;

  • 2011年04月24日 15:53
  • 334KB
  • 下载

8B/10B编码

8B/10B,也叫做8字节/10字节或8B10B。8B/10B方式最初由IBM公司于1983年发明并应用于ESCON(200M互连系统),由Al Widmer和Peter Franaszek在IBM的...
  • Rhasta2009
  • Rhasta2009
  • 2009年10月16日 15:35
  • 4624
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:线路/信道编码技术(1)——8B/10B编码
举报原因:
原因补充:

(最多只允许输入30个字)