详解Xilinx FPGA高速串行收发器GTX/GTP(5)--详解8B10B编解码
1、8B/10B编码是什么?
简单来说,8B/10B编码就是将原本是8bits的数据,按照一定的规则扩展编码到10bits。8B10B编码是1983年由IBM公司提出的传输编码标准,通常用于高速收发器中,以太网、JESD204B、SATA等接口协议都使用了这个编码规则。
原本用8bits就能表示的数据现在要用10bits来表示,那肯定就会造成一定程度的浪费,也就是我们所说的 “编码开销” ,对接收端来说,它接收的10位数据只有8位是有效的,2位是相对无效的,所以它的编码开销是 2/10*100% = 20% 。存在编码开销也就是意味着传输带宽的浪费,那么8B/10B编码究竟有什么好处,以至于我们能容忍20%的编码开销也要使用它呢?
8B/10B编码最大的好处是直流平衡(DC平衡),8B/10B编码可以保证编码后的数据在一定时间内0的个数与1的个数保持相等。
对于高速信号的处理,可以使用直流耦合和交流耦合,若要实现远距离通讯或者光通讯,则只能使用交流耦合的方式。在交流耦合电路中的信号线会接电容(隔直通交),电容特性是 “隔直通交” ,如果数据流中长时间没有电平翻转,那么必然会将其视为直流被阻断造成极性偏差,也就是电势差不满足高低电平的判断阈值,进而造成对接收电平信号的误判,进而导致接收数据出错,如下图所示。