读书频道 > 系统 > 其他综合 > 计算机网络系:统集成技术基础与解决方案
2.9.3 8B/10B码的特性、符号、术语、直流平衡和行程偏差
2013-07-01 11:20:15     我来说两句 
收藏    我要投稿   
本书从一线系统集成工程技术人员和管理人员的实际工作角度出发,介绍系统集成实际要掌握的四个方面的知识:系统集成基础、系统集成环境、前端(广域网)集成技术和用户端(设备系统)集成技术,主要包括网络系统...  立即去当当网订购

1.8B/10B码具有以下特性:

1)确保在接收器恢复时钟时有充足的信号转换。

2)编码空间允许将控制信号编到码数据流中。

3)在代码出错时,对代码映射指定选择功能显著地提高了检测出单个和多个比特的概率(不需要以太网的32位CRC校验)。

4)某些编码(用于控制信号)包含一个唯一的、易识别的代码位模式,它有助于快速同步和接收器位对齐。

2.8B/10B的符号和术语

每个传送的字节有256 (28)种可能的数据值,而代码字理论上具有1024(210)种可能的值。为简化对它们的处理,开发了一种8B/10B编码的简写符号:

1)D分组,用于数据字节编码。

2)K分组,用于特殊控制符号编号。

我们已经在图2-33中讨论了8B/10B译码图和标记法,下面介绍数据字节8B到代码字(10B)的映射,如图2-34所示。


 

8位的数据字节用A、B、C、D、E、F、G、H表示(从最低位到最高位)。编码器将这8位数据译成10位代码,用a、b、c、d、e、i、f、g、h、j表示。代码字分为两个子分组,一组包括6个代码位(a,b,c,d,e,i),另一组包括4个代码位(f,g,h,j)。一个给定的代码用简写形式/Dx.y/(数据编码)或/Kx.y(特殊编码)表示,其中x是EDCBA的十进制值(E是串的最高有效位),y是HGF的十进制值(H是串的最高有效位)。

表2-9给出了几个例子。具体编码我们用编码后的10B代码字按abcdeifghj的顺序连续传送。

表2-9 8B/10B编码举例
代码名 字节值
(8B空间) 8B比特 10B代码字
  HGF EDCBA abcdei fghj
/D3.1/ 0x23 001 00011 110001 1001
/D25.2/ 0x59 010 11001 100110 0101
/D21.5/ 0xB5 101 10101 101010 1010
/D28.5/ 0xBC 101 11100 001110 1010
/K28.5/ 0xBC 101 11100 001111 1010

3.直流平衡和行程偏差

为了确保10B编码信号在不失真并且不使用大带宽线路编码的情况下,能正确地交流耦合到介质上(例如,通过变压器或电容器),长时间数据传送的代码流中0和1的数量应相等。同时,连续0或1的最大数量应尽可能最小(虽然长期的平均数量可能相等)以避免短时间的直流偏差。这称为最小化代码行程长度(run length)。

因此,代码字是从210种可能的编码分组中仔细选出的。用于数据的代码字不能:产生多于4个连续的1或0,或0和1的数量的不平衡度超过1,即10位编码总是由5个1、5个0,或6个1、4个0,或4个1、6个0组成。

那些连续0或1过多的代码和那些不平衡度过高的代码一般不用于数据编码而用于特殊的编码。这是使用大代码空间的一个优点:对于256种可能的数据值有1024个可用的编码,因此可以把那些不符合要求的代码“扔到一边去”。

除了只选择最平衡的代码外,为每个8B分组定义了两个10B编码。如果为给定值所选的10B编码的0和1数量相等(各5个),那么这两个10B编码可能相同。这就是一个完美的平衡代码点,无须补偿。如果10B编码的1比0多(或0比1多),就会出现不平衡,那么第二种编码在子分组[abcdei]或[fghj](或同时两个子分组)中使用其反码。因此/D23.2/有两个不同的有效编码,如表2-10所示。

表2-10 多重8B/10B编码代码名 字节值
(8B空间) 8B比特 10B代码字
  HGF EDCBA abcdei fghj
/D23.2/ 0x57 010 10111 111010 0101
    000101 0101

由于[abcdei]子分组中1比0多,所以第二种编码是将这个子分组(1比0多的子分组)取反而得到。

发送器逐个对代码字进行行程记数,检查是否传送了更多的1或更多的0。因为代码字(最多)只多出一个1或0,所以行程记数只需要1个信息位即可。这称为行程偏差(RD),用于测量传送模式是否过于“偏向”1(RD为正或正偏差)或0(RD为负或负偏差)。RD通过测量行程偏差为正或负来为每个传送的字节选择两种可能编码中的一种。由此产生的结果是,发送给定的代码字,行程偏差在0~1之间翻转或保持不变。这样整个帧的传送就可保持直流平衡。

另外,接收器通过对接收到的代码字进行行程偏差的检测,可以发现许多错误。由于发送器不会发送直流平衡超过1比特的代码字,如果接收到这样的代码字,就可以认为出现了错误。

4.有序集合

控制信息(与数据相反)通过传送有序集合(ordered set)进行通信。有序集合是由一个或多个代码字组成的字符串,它总是以特殊分组的代码起始。使用特殊代码使有序集合很容易从数据中区别出来。这种区别可使系统在同一条通信信道上无歧义地传送数据和控制信息;就是说,有序集合提供了一种“带外”信令方法。

千兆以太网使用了8个这样的有序集合,如表2-11所示。
表2-11 千兆以太网使用的有序集合
集合名 描述 集合中的代码字个数 编码
/C1/ 配置结构1 4 /K28.5/D21.5/配置信息
/C2/ 配置结构2 4 /K28.5/D2.2/配置信息
/I1/ 空闲1 2 /K28.5/D5.6/
/I2/ 空闲2 1 /K28.5/D16.2/
/R/ 载波扩展 1 /K23.7/
/S/ 报文开始 1 /K27.7/
/T/ 报文结束 1 /K29.7/
/V/ 错误转播 4 /K30.7/

其中:

1)配置集合用于自动协商链路特性(配置集合指配置结构1和配置结构2)。

2)空闲集合在传送间隙(帧或突发性帧)使用。在下一帧开始时首先传送/I1/(如果需要)来恢复已知的(负)行程偏差。其他的空闲时间传送/I2/。

3)/S/集合、/T/集合用作分隔符,分别指示每个传送帧的开始和结束。在半双工系统中,载波扩展期间(以及突发帧的帧间隙期间),把/R/集合作为“填充”符传送,这时不使用空闲集合。这种帧间隔使得接收方MAC不会认为信道已成空闲状态了,而认为其已成功地获得了信道。

4)中继器使用/V/集合向所有接入站广播,它在接收的比特流中检测出错误。

5.逗号

特殊的10B编码/K28.5/包含了位模式b’0011111’(或它的反码,b’1100000’),称为逗号(commas)。逗号是唯一的,因为它包含连续5个1或0。千兆以太网使用的8B/10B编码方案保证,除非出错,否则逗号模式对/K28.5/是唯一的。它不能出现在数据流的其他任何地方,即使流入的代码出现了未对齐情况。

/K28.5/的编码包含一个逗号,其后跟着一个交替的0、1序列(即‘b 001111010或b’1100000101),有意选择它用于配置有序集合和空闲有序集合。在链路启动及帧间使用这种位模式是对流入比特流位同步和对齐的一种简单方法。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.9.2 组编码方法
下一篇:2.10 常用术语
相关文章
图文推荐
2.7.12 使用仿真器查
2.7.11 栈和寄存器组
2.7.8 出栈
2.7.7 压栈
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站