对高速信号8B/10B编码的初步认识

在高速链路中导致接收端眼图闭合的原因,很大部分并不是由于高频的损耗太大了,而是由于高低频的损耗差异过大,导致码间干扰严重,因此不能张开眼睛。针对这种情况,前面有讲过可以通过ctle和ffe(包括dfe)均衡进行解决,原理无非就是衰减低频幅度或者抬高高频幅度,从而达到在接收端高低频均衡的效果。
隔了一段时间,不知道大家还记得我们这个约定吗?不管你们记不记得,本人肯定没有忘记哈。现在就把这个关子拿出来讲讲,也就是今天要说的编码方式。说到针对于nrz数据的编码方式,本人听过的有4b/5b,8b/10b,64b/66b,64/67b,128b/130b,128b/132b编码(可能各位还有其他吧),不同的编码方式针对于不同的信号协议,当然效率也是不一样的。
什么叫效率?在数据包传送的术语叫开销,意思就是除了实际需要的数据之外的一些数据bit,例如冗余校验等。那大家看上面的编码的数值比就知道了,例如8b/10b,要把8bit的实际数据扩展为10b,那开销就是20%,效率就只有80%了,更通俗来说就是增加了20%的非实际数据的传输 。所以一个好的编码方式,除了看它本身的算法优化情况外,还要注重效率高不高。
本人将用两期的篇章主要介绍下8b/10b和64/66b编码方式,其他的主要都是由他们扩展开来的。那介绍完前面总体的情况后,进入本期的主题,8b/10b编码。
首先,为什么要编码?原来的码型有什么不好的地方吗?其中最主要的原因用下面这个图来进行解释:
大家看明白了吧,由于我们的串行链路中会有交流耦合电容,我们知道理想电容的阻抗公式是zc=1/2πf*c,因此信号频率越高,阻抗越低,反之频率越低,阻抗越高。因此上面的情况,当码型是高频的时候,基本上可以不损耗的传输过去,但是当码型为连续“0”或者“1”的情况时,电容的损耗就很大,导致幅度不断降低,带来的严重后果是无法识别到底是“1”还是“0”。因此编码就是为了尽量把低频的码型优化成较高频的码型,从而保证低损耗的传输过去。
上面解释了原因,下面就介绍下这种8b/10b的编码方式的算法。
如上图,关于8b/10b编码算法有下面几点需要理解:
1, 低5位(abcde)中间加一位,进行5b/6b编码,高三位(fgh)中间加一位,进行3b/4b编码;
2, 编码后的bit仅会出现这三种情况:5个“0”与5个“1”、4个“0”与6个“1”、6个“0”与4个“1”;
3, 有两个术语要知道:不均等性(disparity)和极性偏差(running disparity,rd)。
不均等性是指编码后的码型数据是“1”多还是“0”多,如果是“1”多,则极性偏差rd为-rd,如果是“0”多则为+rd。那定义+-rd有什么意义呢?+-rd代表着同一个码型的两种编码方式。我们本身就是编码的目标就是为了缓解长“0”或长“1”的影响,因此在编码后如果“1”多的话,我们下一次的编码就要把这种码型做一个修正,因此从-rd码型变成+rd码型。如果是“0”和“1”一样多,极性则不用变,如下图:
4, 我们怎么知道编码后映射成什么码型呢?因此会有一个专门的编码表,我们只需要在上面找到我们的原始码型,然后就一目了然了。编码表如下所示(部分截图):
说了那么多,还不如举个例子更直观。
我们以上面的d3.0码型进行仿真验证:
原始的码型如下:
仿真得到8b/10b编码后的码型如下:
对照上面的编码表,结果完全相同,从rd-的模型出发,编码后rd-的码型“1”比较多,因此极性变成rd+的编码码型,接着rd+的编码码型“0”比较多,极性又变回rd-,因此码型就是rd-和rd+之间循环下去。
通过上面的介绍,大家对8b/10b编码有一个初步的认识了吧。

手持活体叶面积测量仪的功能特点是怎样的
电压比较器和运算放大器区别
中国联通推出“云光慧企”企业上云专项行动
异步电机是什么 启动和调速方法
SOURIAU面向医疗市场扩大JMX推拉式连接器规格
对高速信号8B/10B编码的初步认识
Pixel 4的真机照曝光,证实了后置的浴霸式摄像头模块真的存在
存算一体芯片面临的挑战和困难有哪些
STM32WB的双核架构及其优缺点解析
无人机航空电子设备开发商Sagetech演示NATO Mode 5
网络切片是5G走向行业应用的关键技术,5G终端也不能缺少它
关于TVS组成形式的介绍
臭氧发生器在半导体工业中的应用
机器人运动学中的非完整约束与运动模型推导
微软针对Xbox Series X/S分发视效增强补丁
斯普奥汀隔空远距离无线充电技术的应用场景多元化
基于金属和卤素的钙钛矿或将成为太阳能电池革命的关键
102050006定向耦合器介绍
三星电子将在未来十年投入巨资计划在芯片代工领域追赶台积电
PCB元件布局原则与实用有哪些小技巧