有的字符在编码以后有两个码组与之对应,一个码组叫 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-,至此可见,得到了同样的编码结果。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务