64B66B编码技术

64B66B编码技术
摘要:64B/66B编码技术是IEEE 802.3⼯作组为10G以太⽹提出的,⽬的是减少编码开销,降低硬件的复杂性,并作为8B/10B编码的另⼀种选择,以⽀持新的程序和数据。在本篇⽂章中,我将从它的提出背景、编码格式、编码原理、和8B/10B⽐较它的优缺点等⽅⾯和⼤家分享⼀下,在学习过程中有关64B/66B编码的⼼得笔记。
关键字:8B/10B,64B/66B,编码,扰码
铁氧化物1、  引⾔
①  经过之前的学习,我们知道,8b/10b编码最初由IBM公司于1983年发明,并应⽤于ESCON(200M互连系统)的⼀种编码⽅式。
8B/10B编码不只应⽤于光纤通道,⽬前在许多⾼速串⾏总线。
我们知道的8b/10b编码的特性之⼀是保证DC 平衡。
采⽤8b/10b编码⽅式,可使得发送的“0”、“1”数量保持基本⼀致,连续的“1”或“0”不超过5位,即每5个连续
的“1”或“0”后必须插⼊⼀位“0”或“1”,从⽽保证信号DC平衡,也就是说,在链路超时时不致发⽣DC失调。
通过8b/10b编码,可以保证传输的数据串在接收端能够被正确复原,除此之外,利⽤⼀些特殊的代码( 在PCI-Express总线中为K码) ,可以帮助接收端进⾏还原的⼯作,并且可以在早期发现数据位的传输错误,抑制错误继续发⽣。
然⽽,将原本8位的字节⽤10位来表⽰,会使8B/10B编码的开销太⼤,带宽利⽤率并不⾼。
于是,就有了⼀系列的优化编码⽅式,其中64B/66B就是其中的⼀种。
②  64B/66B编码技术是IEEE802.3⼯作组为10G以太⽹提出的,⽬的是减少编码开销,降低硬件的复杂性,并作为8B/10B编码的另⼀种选择,以⽀持新的程序和数据。它并不是真正的编码,⽽是⼀种基于扰码机制编解码⽅式,这种编码⽅式,是IEEE推荐的10G通信的标准编码⽅式。
当前,64B/66B编码主要应⽤于FiberChannel 10GFC和16GFC、10G以太⽹、100G以太⽹、10G EPON、InfiniBand、Thunderbolt和Xilinx的Aurora协议。
2、  64B/66B编码技术
64B/66B编码将64bit“数据或控制信息”编码成66bit块来进⾏传输,这66bit中,前两位表⽰同步头(2bit Sync Header),主要⽤于接收端的数据对齐和接收数据位流的同步。
发光二极管封装
00      编码错误
01      64 bit = 纯数据
10      64 bit = 混合的数据/控制信息
11      编码错误
也就是说,在没有发⽣错误的情况下,每66位的数据,就会出现⾄少⼀个“01”或者“10”的转换。
同步头有“01”和“10”两种:
“01“表⽰后⾯的64bit都是数据。
“10”表⽰后⾯的64bit是数据和控制信息的混合,其中紧挨着同步头的8b是类型域,后⾯的56bit是控制信息或者数据或者两者的混合。
①  对于纯数据Pure data
同步头:01,后⾯的信息:8*8=64bit数据
②  对对于纯控制Pure Control (Type = 0x1E)
同步头:10,后⾯的信息:8bit类型表⽰+7*8控制信息
③  对于数据和控制信息的混合隧道烘箱验证方案
同步头:10,后⾯的信息:数据信息和控制信息的混合。
带通滤波器设计64B/66B编码格式图如下图所⽰:
其中,D表⽰数据编码,每个数据码8bit;Z表⽰控制码,每个控制码7bit;S表⽰包的开始,T表⽰包的结束。S只会出现在8字节中的第0和第4字节,T能够出现在任意的字节。
下⾯我们⼀起来看⼀个简单的例⼦,这个例⼦将帮助我们更好地理解数据帧和控制帧。
⼀个18 bytes的数据块的传输过程如下图所⽰:
这过程是怎么样的呢?我们⼀起来看⼀下,从图中我们可以直观的看到,在数据的传输过程中,我们需要⽤到两个控制帧,⼀个是开始部分的控制帧,⽤来告诉接收⽅这是某⼀个数据块的开始,还要有的是⼀个⽤来表⽰结束的控制帧,告诉接收⽅该数据块到此结束。
从图中我们可以知道,在开始和结束的控制帧之外,为纯数帧,⼀个纯数据帧,他能表⽰64bit的数据。不管是数据帧还是控制帧,每隔
64bit,就会插⼊⼀个01或者10序列来分隔,我们还知道,他的DC平衡并不是由这两位01.10来完成的,相对于64bit这么⼤的数据
块,10和01的平衡能⼒微乎其微,在学习的过程中,我们知道他⽤到的是扰码技术,这是我们下⼀个模块要讲述的内容。
3、  扰码传输技术
上⾯我们提到,除同步码外,64bit的数据必须经过扰码以后才能进⾏传输,在引⾔部分我们说过,64B/66B并不是真正的编码,⽽是⼀种基于扰码机制编解码⽅式。
我们知道8B/10B编码通过优化直流平衡,从8bit中插2个bit进去,这样能够使长0或者长1的位数不超过5位,达到很好的效果。那
64B/66B编码⽅式呢?在从64个bit中仅加⼊2个bit,能够很好的解决长0长1的问题吗?作⽤似乎只是杯⽔车薪,2个bit相对于64个bit太少了。
当然,如果仅靠这2个bit来实现8B/10B的作⽤显然不太现实。其实上,这两个bit只是起⼀个同步头的作⽤,主要⽤于接收端的数据对齐和接收数据位流的同步。
那按照上⾯说的,新加的2个bit只是作为同步,那后⾯的数据可以如何优化呢?这⾥有⼀项区别于8B/10B编码的技术——扰码。
为此,我⼜去查资料看了⼀下,有关扰码的相关知识。
通过查资料我知道,扰⼀种将数据重新排列或者进⾏编码以使其最优化的⽅法,他的作⽤是对数字信号的⽐特级进⾏随机处理,减少连0和连1的出现,从⽽减少码间⼲扰和抖动,⽅便接收端的时钟提取;同时⼜扩展了基带信号频谱,起到加密的效果。
为了保证在任何情况下进⼊传输信道的数据码流中“0”与“1”的概率都能基本相等,传输系统会⽤⼀个伪随机序列对输⼊的传送码流进⾏扰乱处理,将⼆进制数字信息做“随机化”处理,变为伪随机序列,也能限制连“0”码或连“1”码的长度,这种“随机化”处理通常称为“扰码”。
扰乱虽然改变了原始传送码流,但这种扰乱是有规律的,因⽽也是可以解除的,在接收端解除这种扰乱的过程称为解扰。完成扰码和解扰的电路相应称为扰码器和解扰器。
64B/66B⾃同步扰码实现随机化,编码所使⽤的扰码器为: X58+X39+1
扰码的数学原理使⽤了多项式,多项式的选择通常是基于扰码的特性,包括⽣成数据的随机度,以及打乱连0和连1的能⼒。⼀个简单的扰码器包含⼀组排列好的触发器,⽤于移位数据流。⼤部分的触发器只需要简单地输出下⼀个⽐特流即可,但是在复杂的扰码电路中,触发器需要与数据流中的历史⽐特进⾏逻辑运算(与和或运算)。基本的扰码电路如下所⽰:
波峰焊锡条
第39和第58位的异或运算,然后通过移位寄存器输出的码型结果。这是⼀个需要⼤量计算的过程,但对于我们的计算机来说,仅仅是异或和移位的操作是⽐较简单的,他可以很快就完成。
他的计算原理,我们通过⼀个简单的表达式的例⼦来讲解:X3+X2+1。
⾸先我们有⼀个初始状态“111”。我们就有了下⾯这么⼀个计算过程(画得不好,⼤家看内容就好)。简单说明⼀下,红⾊为异或运算过程,蓝⾊为每次移位后的bit,绿⾊为输出的数据bit,紫⾊说明绕⼀圈之后⼜回到了原先,循环了⼀次。
具体的计算过程,如下图,我们⼀起来看⼀下图。导光条
这是⼀个初始⼀直是111的例⼦,也就是说,我们的输⼊⼀直都是111.观察最终的输出结果我们可以看出,他得到了0,不再是全是1。4、  编码过程
关于编码过程,我们先⼀起来看⼀个图:
图中的CGMII是物理编码⼦层,output of  encoder function为编码器的输出结果,outputof scrambler function为扰码器的输出结果,transmit block为传输块,Gearbox为变速箱。
我们⼀起来看⼀下这个过程,我们⼀些数据块要传输,假设说从物理编码⼦层传来的这两个块每个是32bit,加在⼀起才有64bit,经过encoder编码器进⾏编码,得到编码后的数据D0-D7,⽣成同步头01或者10,然后不含同步头的D0-D7,经过扰码器,得到表达式
X58+X39+1扰码后的数据S0-S7。
在之后,将同步头和扰码后的数据S0-S7合并,⽣成⼀个传输块,将这个传输块经过GearBox处理后,完成编码。
5、  8B/10B、64B/66B简单⽐较
这⾥,我们⼀起来看⼀个⽐较的图:
在图中,我们分别从他们之中的连续的0和连续的1的个数、DC平衡能⼒、位同步时钟恢复能⼒,字同步能⼒控制块等⽅⾯进⾏了⽐较。
经过对⽐分析我们可以得知,8B/10B编码的连续0或者连续1的最⼤长度是5;8B/10B编码他有良好的DC平衡能⼒和位同步恢复能⼒,⽽64B/66B的这些能⼒都和扰码器有关,或者说他都决定于扰码所⽤的表达式。对于字同步,8B/10B编码有他⾃⼰的K码,⽽64B/66B 编码⽤的是两位表⽰的同步头。对于控制码,8B/10B编码也是使⽤K码,⽽64B/66B编码⽤的是同步头为10 的控制码。
6、  结束语

本文发布于:2024-09-21 01:22:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/327628.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:编码   数据   扰码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议