您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 8B10B编码(个人总结)
8B/10B编码的基本原理8B/10B编码是目前高速串行通信中经常用到的一种编码方式,其目的就是通过将一个字节宽度的数据经过映射机制转化为10位宽度的字符,来平衡位流中0与1的个数,也就是达到平衡直流的作用。由于直接将8bit数据编码成10bit来传输在实现上将占用芯片的大片物理面积,并且严重影响了数据的传输速率,所以目前大都采用将一串8位二进制数分为低5位和高3位,然后对低5位进行5B/6B编码,高3位进行3B/4B编码,最后再将6位和4位合在一起的编码方式。这样做不进减少了芯片占用面积,而且简化了编码,提高了数据的传输速率。通常用字符HGFEDCBA来表示编码前的8位二进制数,则低5位就是EDCBA,高3位就是HGF。5B/6B编码后6位二进制数的表示方式为abcdei,而3B/4B编码后4位二进制数的表示方式为fghj,最后合成的10位二进制数为abcdeifghj。人们喜欢把8bit数据表示成Dx.y的形式,而控制代码用Kx.y的形式,其x=5LSB(leastsignificantbit最低有效位),y=3MSB(mostsignificantbit最高有效位)。它们之间的对应关系如图1所示。8B/10B编码中有两个重要的概念,不均等性(disparity)和极性偏差(runningdisparity,RD)。前者表示‘1’和‘0’个数的差值,其有如下规律:(1)若ABCDE的Disparity值为-1,那么在‘RD-’项中生成的abcde与ABCDE有一一对应的关系,并且i=‘1’,此时除ABCDE=‘00011’外abcdei是唯一的;(2)若ABCDE的Disparity值为+1,那么在‘RD-’项中生成的abcde与ABCDE有一一对应的关系,并且i=‘0’,此时除ABCDE=‘11100’外abcdei是唯一的;(3)若ABCDE的Disparity值为+3,那么在‘RD-’项中生成的abcde与ABCDE有一一对应的关系,并且i=‘0’,此时abcdei是互为反码的两个值;(4)若ABCDE的Disparity为其他值,此时abcdei具有互为反码的两个值,对这些特殊的‘RD–’项中的值可直接用查表法实现。后者的取值分为以下三种:(1)当码字中‘1’比‘0’多,或者4B码为1100,或者6B码为111000时,该码字被定义为正极性码,这个时候RD取正;(2)当码字中‘1’比‘0’少,或者4B码为0011,或者6B码为000111时,该码字被定义为负极性码,这个时候RD取负;(3)除了上述两种情况其他码字定义为中性码,RD取其前一码字的RD游程值。为了直观fghjabcdeiLSBMSB3B/4B5B/6BfghjabcdeiLSBMSBHGFEDCBA并串转换后进行串行传输,a先传输图1编码对应关系了解这个规则,RD取值图如下:3B/4B和5B/6B是通过映射机制进行编码的,这种映射机制已经标准化成相应的映射表,如表1(略),3B/4B和5B/6B编码还需要通过映射控制模块(DisparityControl)的控制才能最终完成编码。通过表1我们可以看出,5位映射到6位可能存在两种编码,这两种编码是互为反码的。在5B/6B编码中,先预设RD为负,然后与实际的RD值进行比较,如果实际值为负,则输出RD–栏中的编码,否则,将RD–栏中的编码取反后输出,即输出RD+栏中的编码。5B/6B编码的实际流程如图3。3B/4B编码由于数据量少,可以把映射数据直接存储,然后通过查表实现。有了3B/4B和5B/6B编码,那么就可以实现8B/10B编码,其实际流程如图4所示。RD+RD-计算RD为中性计算RD为中性计算RD为负计算RD为正图2RD值计算方式输入ABCDE实际RD为–?计算Disparity5B/6B编码(RD–)按位取反输出abcdei,RDYN图35B/6B编码实际流程图数据输入(8bit)计算Disparity3B/4B编码5B/6B编码初始RD–数据输出(10bit),RD是否修正?计算RD计算RD计算最终RD按位取反YN图48B/10B编码整体流程图RD运算时基于每个子模块的Disparity属性的,所以必须首先对输入字符DX的高三位FGH和低五位ABCDE分别进行Disparity计算。通过分析总结出低五位和高三位编码前后的RD值变化情况,其中rdout表示新生成的RD值而rdin表示当前的RD值:(1)ABCDE的Disparity计算为+1时,若ABC�DE=‘00111’且控制字符K无效,则rdout=notrdin,否则rdout=rdin;(2)ABCDE的Disparity计算为-1时,若ABCDE=‘00011’则rdout=notrdin,否则rdout=rdin;(3)ABCDE的Disparity计算为其他值时,rdout=notrdin;(4)FGH的值为‘000’、‘001’或‘111’是rdout=notrdin,否则rdout=rdin。5B/6B编码中,计算实际RD值的方法也是如此。计算最终RD值的方法是,如果3B/4B编码后的RD和5B/6B编码后的RD的极性相同,那么最终要输出的RD和初始输入的RD一致,否则相反。具体如表2所示。初始输入的RD3B/4B编码后的RD5B/6B编码后的RD最终要输出的RDRD-RD-RD-RD-RD-RD-RD+RD+RD-RD+RD-RD+RD-RD+RD+RD-RD+RD-RD-RD+RD+RD-RD+RD-RD+RD+RD-RD-RD+RD+RD+RD+8B/10B标准中使用了12个特殊的控制代码,它们采用查表的方式进行编码。表2
本文标题:8B10B编码(个人总结)
链接地址:https://www.777doc.com/doc-1357713 .html