嵌入式软件-8b/10b编码原理
- 将低5位EDCBA按其十进制数值记为x,将高3位按其十进制数值记为y,将原始8bit数据记为D.x.y。举个例子:8bit数“100 11001”,即十进制数181,按照3/5的划分原则x=11001(25),y=100(4),所示这个数被表示为D.25.4,所以上面的表中最大是D.31,下面的表中最大是D.x.7。
- RD:running disparity 直译“运行不一致性”,也翻译成“极性偏差”(running disparity,RD),RD是对编码后的数据流Disparity的一个统计,+1用来表示0比1多,-1用来表示1比0多,-1是它的初始化状态。
- 那定义±RD有什么意义呢?+/-RD代表着同一个码型的两种编码方式。再举个例子比如:对于D.x.4(100),其对应的4B码字有两种:1101和0010,若此时RD为负,则取1101作为其对应的4B码字作为输出,同时检验此时的编码是否为完美编码,如果是完美编码,则保持RD的极性不变;否则改变RD的极性。通过控制RD的极性,同时在编码时根据RD的极性选择相对应的编码值,使得编码后的数据流有更好的直流平衡特性,达到我们的缓解长“0”或长“1”的目的。
- 将8bin编码成10bit后,连续的1或者0不能超过5位。10bit中,只可能有三种情况,5个0和5个1,6个0和4个1,4个0和6个1。