8B/10B编码的特性之一是保证DC平衡,使得发送的0 、1数量保持基本一致,连续的1或0不超过5位,即每5个连续的1或0后必须插入一位0或1,从而保证信号DC平衡。 通过0 、1 数据的跳变,接收端可以用来恢复时钟,同样可以在早期发现数据位的传输错误,抑制错误继续发生。
8B/10B编码是将一组连续的8位数据分解成两组数据,一组3位,一组5位,经过编码后分别成为一组4位和一组6位,从而组成一组10位的数据发送出去。数据值可以统一的表示为DX.Y或KX.Y,其中D表示为数据代码,K表示为特殊的命令代码,X表示输入的原始数据的低5位,Y 表示输入的原始数据的高3位。
8B/10B编码中可以用到12个控制字符,他们可以作为传输中帧起始、帧结束、传输空闲等状态标识,与数据字符的写法类似,控制字符一般记为K.X.Y。8bit数据有256种,加上12中控制字符,总共268种。
8B/10B编码中将K28.1 , K28.5, K28.7作为K码的控制字符,称为comma。在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,因此控制字符指示帧 的开始和结束标志,或者修正和数据流对齐的。
将8bit编码成10bit后,10B中0和1的位数只能出现3种情况:
1、有5个0和5个1
2、有6个0和4个1
3、有4个0和6个1
这样引出了一个新的术语“不均等(Disparity)”,就是1的位数和0的位数的差值,根据上面3中情况就有对应的3个Disparity 0 、-2 、+2 。
8bit原始数据在编码的时候会被分为两部分,低