首页/文章/ 详情

JESD204B之8b/10b编码

1年前浏览443

JESD204B采用8b/10b编码,也就是通过某种编码方式,把原来8bit变为10bit来传输。

 

为什么要这么做?


本来传输8bit就够了,现在要传输10bit,这不是无端地增加了链路的开销么?

采用8b/10b的好处有以下几个:

(1) 可是获得DC平衡。

所谓DC平衡,就是传输的信号中,01的数量各占50%。个人理解,就是平均直流电压为0

DC平衡信号,可以使用AC耦合设计。这样,即使接收端和发射端的接口的直流偏移不一样,也可以通过电容隔离,然后直接连接。

 

如果直流不平衡,会怎么样呢?

如果传输信号中,有一串很长的1信号的直流电平就会向上偏移;相反,如果有一串很长的0,信号就会向下偏移,导致接收端接收数据错误。

 

可以极端的理解一下,如果你传输的信号都是1,或者你传输的信号都是0,然后都经过了AC电容,你还能分辨出哪个信号是1哪个信号是0么?

 

(2) 编码后提供了足够的比特转换(1转换成0以及从0转换成1),方便进行时钟恢复。

  

怎么做呢?


8b/10B,最早是由IBM1983年提出的,现在是高速串行总线的主要编码方式。


在对8bit数据进行编码时,是将8bit分为两部分:5位与高3位。对低5位数据采用5b/6b编码,高3位数据采用3b/4b编码,然后再把两者连起来,即变成10bit输出,为一个symbol当用D.x.y或者K.x.y时,x即指8位数据中的后5位,y即指8位数据中的前3位。

 

 

6位编码和4位编码中,要求10的个数差值即disparity(不均等性)2,-2或者0

具体的编码表如下图所示。

 

在表中,同一个数据,根据RD的不同,有不同的映射码,且两种映射码互为反码。RD,running disparity(极性偏差)。当码中1比0多时,则RD为正;反之,RD为负。

4b编码或者6b编码的边界处,RD+1或者-1,永远不会为0。

 

 

编码时,就是根据RD来选择映射码,选择的原则,每次码的选择都需要使RD极性翻转,或者数值保持不变。如下图所示。

 

8b/10b编码还定义了12个控制码,用来表示同步,帧的开始或者结束,或者链路的一些其他状态。


References:

[1]8b/10b编码(个人总结

https://wenku.baidu.com/view/c3280ec0b9f3f90f76c61b38.html

[2] 理清8b10b编码三大观念

https://wenku.baidu.com/view/4283bc3343323968011c9272.html?sxts=1553813781089

[3]8b/10b encoding https://en.wi kipe dia.org/wiki/8b/10b_encoding

[4]A DC-balanced,Partitioned-Block,8b/10b transmission code

https://wenku.baidu.com/view/e247dcbbfd0a79563c1e7281.html?from=search

 

来源:加油射频工程师
控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-03
最近编辑:1年前
加油射频工程师
分享所学知识
获赞 246粉丝 80文章 556课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈