8b/10b编码技术系列(二):Disparity、RD、8b/10b编码

和大家分享一下关于8b/10b编码的知识点,如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言!

四、Disparity(极性偏差)

将8bit数据分为3bit和5bit两组,分别对应10bit数据中的4bit和6bit,直流平衡代码的不平衡度就是“0”的个数减去“1”的个数(你品,仔细的品,RD是1减去0,为什么Disparity是0减去1,interesting,就是为了直流补偿)。

如果4bit和6bit的各分组中“0”个数和“1”个数相等,就称之为“完美平衡代码”,或成为完美的直流平衡代码,无需补偿,但是这种情况并不是时时满足的,比如在4bit编码中,仅有

4’b0011;

4’b0101;

4’b0110;

4’b1001;

4’b1010;

4’b1100

}共6种情况满足,在6bit编码中也仅有20种编码是完美的。

由于4bit和6bit编码都是偶数个位数(偶数个,位数,注意断句!),而不平衡度不可能是+1或-1。因此,在8b/10b方案中还要使用不平衡度为“+2”和“-2”的值,用Disparity表示表示当前8bit数据经过编码后选择的10bit映射数据。

比如,对当前数据8bit数据进行映射,如果之前的RD值为负,那么8bit数据的映射数据选择disparity为+2的映射结果,一次来实现直流平衡调整。

   

五、RD(运行不一致)

RD的全称为RunningDisparity,简称为RD,由于数据流不断从发送端向接收端传输,前面已发送数据的不一致性累积产生的状态称为“运行不一致”,RD会出现“+1”和“-1”两种状态,“+1”表示正极性,即位“1”比位“0”多;“-1”表示负极性,即位“0”比位“1”多,当前RD计算方式为:

RD = Number(1) – Number(0) + Number(past)

RD的初始值为“-1”,下一状态RD的值依赖于当前的RD值以及当前6B或者4B码的极性,根据当前RD的值,决定5b/6b,3b/4b的映射方式。

K码映射:

六、8b/10b编码

简介

介绍了这么多,终于进入了正题!

8b/10b编码简而言之就是将8bit数据转换成10bit数据,10bit数据中1或0的数量不会超过6个,并且连续的0或者1的个数不会超过4个,本来10bit数据对应1024中可能组合,经过上述限制条件约束,一共会有256个data码和12个K码控制码,分别记为Dx.y和Kx.y,也就是说32bit数据中,只有268中组合,每个8bit的K码在32bit数据中都是独一无二的,这样数据和控制码就不会重合。

编码时,低5bit原始数据EDCBA经过5B/6B编程称为6bit码abcdei。

关于上句话如何理解?为什么EDCBA转换成abcdei而不是edcabai?个人的理解是:从数据发送的角度来看,数据的发送先发送的是低bit,也就是先对“EDCBA”的“A”进行处理,处理好后将结果左移一位得到“a_xxxx”,之后进行下一bit转换,得到“ab_xxx”,如此进行最终得到“abcdei”。

编码时,高3bit原数据HGF经3B/4B成为fghj,最后再将两部分组合起来组成10bit码“abcdeifghj”,10bit码在发送时,按照先发送低位再发送高位的顺序发送。

其过程与上述分析类似。

映射方式

还记得前面对K28.5的分析吗?此处又要见面了,K表示的Comma码,那么数据(Data)就叫做D码好了,一样的分析方法,Kxx.x的小数点前面表示的是8bit数据的后5bit,小数点后面表示的8bit数据的前3bit。D码也是一样,比如D10.0表示原数据是8’b000_01010,直接根据当前输入数据进行映射就可以了吗?非也非也,顾头的想法是对的,但是还要顾腚,

低5bit映射方式:

高3bit映射方式:

当CurrentRD==-1时,表示之前传输的数据中“0”的个数多于“1”的个数,经过8b/10b编码后,连续的“1”和“0”的个数基本上不会超过5bit,只有在使用K码时,才会出现连续的5个0或1:

七、最终模块示意图!

关注公众号,后台回复“8b10b”即可获得本系列pdf资源。

                        ~~~~感谢阅读~~~~谢谢!

  • 7
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值