视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
8B10B编解码理解
2025-09-23 17:37:32 责编:小OO
文档
有的字符在编码以后有两个码组与之对应,一个码组叫RD+,一个码组叫RD-,其中RD+码组的1的个数比0少,RD-码组中1的个数比0多。1的个数和0的个数相等的情况,即可以归入RD+,也可以归入RD-。

    对于输入的待编码的8B码组,可以分为三类码组,一类是普通的数据码组,一类是用于控制的K控制码组,再有一类就是特殊数据码组,特殊数据码组只有六个,是10B编码在8B/10B码表的RD+列选取的D11.7、D13.7和D14.7,10B编码在8B/10B码表RD-列选取的D17.7、D18.7和D20.7。

    8B/10B的编码码表有两列,一列为RD-,一列为RD+。RD-的列的10B码组中'1'的个数比'0'多,或者'1'的个数与'0'的个数相等;RD+列的10B码组中'1'的个数比'0'的个数少,或者'1'的个数与'0'的个数相等。也就是说一个8B码组的10B编码可以有两种。RD-和RD+的码组互为取反。

    编码时也可以分两步走,先做5B/6B编码,再做3B/4B编码,注意一定要先做5B/6B编码。编码规则类似上面介绍的8B/10B规则,也是先有极性RD,根据RD选择6B码组,同时决定次态RD,再根据刚才6B决定的RD来指导3B/4B编码,编码后决定的RD去指导下一个10B编码码组中的6B编码部分。5B/6B和3B/4B的编码表也都和8B/10B的码表一样,分为RD-和RD+两列,但是3B/4B码表中3B码0111的4B编码可以有四种选择,通常情况下0111的4B编码选择为1110和0001,但是有六种情况下,4B码的选择为0111和1000,这6个8B码组就叫做特殊数据码组。选择4B码为0111和1000的规则如下:如果当前状态为RD-,且前面已编码的6B码组中e=i=1,则3B/4B编码的选择为3B/4B码表RD-列的0111;如果当前状态为RD+,且前面已编码的6B码组中e=i=0,则3B/4B编码的选择为3B/4B码表RD-列的1000。可见,3B/4B的选择是由5B/6B编码结果所决定的,这就是要先进行5B/6B编码的原因。

    编码规则是这样的,根据当前的RD极性来从两个10B中选择一个最为当前8B的编码,即先有RD极性,后对8B进行编码,再根据此10B编码决定下一个RD的极性,决定下一极性的规则如下:如果编码后的10B码组中‘1’的个数与‘0’的个数相等,则次态极性保持不变;如果‘1’的个数与‘0’的个数不等,则次态的极性为当前极性的反转。无论是普通数据码组、特殊数据码组还是K控制码组都符合以上的编码规则。  

    举个例子,当前极性为RD-,待编码的8B码组为D10.7,即111 01010,这里对8B码组的书写均是按照HGF EDCBA的顺序,即左边为高位,右边为低位。对于该8B码组,由于当前为RD-,所以其10B编码要在编码表的RD-一列进行选取,即10B编码为010101 1110,这里对10B码组的书写,都是按照abcdei fghj的顺序,左边为低位,右边为高位。再看当前编好的10B码组,其‘1’的个数比‘0’的个数要多,所以此10B码组的极性为RD-,为达支流平衡,次态极性要反转,由此决定的次态极性就为RD+。其实8B/10B编码也可以分为5B/6B和3B/4B两部分进行,先编码6B,6B编码后的极性RD决定后面4B编码的选择,然后编码4B,编码4B后的极性RD又决定下个10B码组中6B码组的选择。仍用上面的D10.7做例子,在RD-下,5B码组01010对应的6B码组为010101,该6B码组中‘1’的个数与‘0’的个数相等,所以极性状态不会改变,仍为RD-,下面再对3B进行编码,此时就相当于是在RD-下对3B码组111进行编码,前面的6B码组中不满足e=i=1,所以该码组不是特殊数据码组,所以对3B的编码就在3B/4B码表的RD-列选取,编码后的4B码组为1110,再看此4B码组中‘1’比‘0’个数多,该码组极性为RD-,所以次态极性要进行反转,所以次态的极性为RD+,最终,得到10B码组为010101 1110,次态为RD+ ,可见,分步编码与前面直接的8B/10B编码得到的结果是相同的。

    再举个例子,当前极性为RD-,待编码8B码组为D4.7,即111 00100所以其10B在RD-列选取,10B编码为110101 0001,其‘1’的个数与‘0’的个数相等,所以次态将保持极性不变,次态极性仍为RD-。用5B/6B和3B/4B两步走的方法也会得到同样结果。即,在RD-下,5B码组00100对应的6B编码为110101,此6B码组中‘1’比‘0’多,即极性为RD-,所以次态的极性就为RD+,再看3B码组111,前面6B码组不满足e=i=0,所以此8B不是特殊数据码组,所以直接从3B/4B码表的RD+列选取4B编码,为0001,此4B码组中‘1’的个数比‘0’少,即极性为RD+,所以次态极性要反转,下一个极性为RD-,至此可见,得到了同样的编码结果。下载本文

显示全文
专题