这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 实现千兆位高速串行I/O的相关技术

共7条 1/1 1 跳转至

实现千兆位高速串行I/O的相关技术

高工
2013-10-14 16:24:46     打赏

1.优点

 速度高。高速串行I/O的线速可超过千兆位,甚至数十吉位。而并行传输线速不可能超越千兆位。千兆位串行I/O的主要优势是速度。在从片内/片外、板内/板外或盒内/盒外获取数据时,没有任何技术可以超越高速串行链路。高速串行链路的线速范围为1Gb/s~12Gb/s,有效负载范围为0.8Gb~10Gb。

 节省管脚数。将大量数据传入或传出芯片或电路板时所遇到的第一个问题是引脚数,电路板设计时间和成本会随着管脚数的增加而急剧增加。在大数据量应用下,串行I/O可节省大量的管脚(在低速以及小数据量应用中,MGT比传统并行模式需要更多的电源和接地引脚)。

 简化同步转换输出。采用单端并行总线时,设计者应考虑同步转换输出(SSO)。不过,其中的某些输出会在同一时间翻转。如果出现太多的同步转换,触地反弹会产生大量噪声。设计者还可以在所有I/O上都使用差分信号处理技术,以此来消除SSO问题,但是,这样做就会使引脚数翻倍。如果数据流需求比较适中,设计者可以使用具有适当引脚数的并行接口。

 EMI指标优。经验表明:时钟越快,放射测试就越难进行,因此,千兆位设计看起来近乎不可能。但是,通常高速串行链路的辐射量比以较低速度工作的大型总线低。这是因为运行时的千兆位链路需要出色的信号完整性。正如经典论断 “辐射问题实际上就是信号完整性问题。”所言。

 成本低。采用MGT通常会降低系统总成本。连接器采用较小、较经济的封装时,引脚数较少,电路板设计也更简单。

 预设协议。采用MGT的另一个好处是可以使用预先定义好的协议和接口标准。从Aurora到XAUI,满足多种需求的设计已经存在。

2.缺点

千兆位高速串行I/O的最大缺点在于对信号完整性的严格要求。而且,阻抗控制的PC(印刷电路)板、高速连接器和电缆的费用较高。我们必须处理数字仿真中的复杂性和时基较小的问题。并且,在利用预设协议的时候,必须为集成过程计划时间,并且为协议的开销安排额外的逻辑电路或CPU 时钟周期。

3.应用范围

起初,千兆位级串行器/解串器(SERDES)仅局限于用在电信行业和少数缝隙市场(如广播视频)。如今,MGT应用出现在电子行业的各个角落——军事、医疗、网络、视频、通信等等。MGT也可以用于背板或机箱之间的PCB上。对于电子行业的发展前景而言,MGT至关重要。下面是采用千兆位级SERDES的行业标准示例。

 光纤通道(FC)

 PCI Express

 RapidIO串行

 先进交换互连(Advanced Switching Interface)

 串行ATA

 1Gb以太网

 10Gb以太网(XAUI)

 Infiniband 1X、4X、12X

千兆位级通信似乎强加了一些苛刻限制。串行设计者必须考虑信号完整性、较小的时基以及可能出现的对额外的门电路和CPU周期的需求。但是,在盒间以及芯片间通信中采用千兆位级技术的优势远远超过了那些可以察觉到的缺点。例如:高速、引脚数少、低EMI 和低成本等,这些都使它成为了众多通信设计的理想之选,并保证了其在未来的通信应用中仍能继续得到广泛使用。




关键词: 实现     兆位     高速     串行     相关     技术    

高工
2013-10-14 16:25:58     打赏
2楼

10.2.2 千兆位高速串行I/O系统的组成

1.系统整体结构



M 千兆位高速串行I/O的系统结构示意图


l 串行器:将速率为yn位宽并行数据转变成速率为n*y的串行数据。


l 解串器:将速率为n*y的串行数据转变成速率为yn位宽并行数据。


l Rx(接收)对齐:将接收的数据对齐到合适的字边界。可以使用不同的方法,从自动检测和对齐特殊的预留比特序列(通常也称作comma字符),到用户控制的比特调整。


l 时钟管理器:管理各种时钟操作,包括时钟倍频,时钟分频,时钟恢复。



高工
2013-10-14 16:26:46     打赏
3楼

l 发送FIFO(先进先出):在输入数据发送之前,暂时保存数据。

l 接收FIFO:在接收数据被提取之前,暂时保存数据。在需要时钟修正的系统中,接收FIFO是必须的。

l 接收线路接口:模拟接收电路,包括差分接收器,还可能包括有源或者无源均衡电路。

l 发送线路接口:模拟发送电路,可以支持多种驱动负荷。通常还带有转换的预加重部分。

l线路编码器:将数据编码成适应不同线路的格式。编码器通常会消除长的无转变位的序列,同时还可以平衡数据中0、1的出现次数。需要注意的是,线路编码器是一个可选模块,某些SERDES可能没有。

l线路译码器:将线路上的编码数据分解成原始数据。(这是一个可选模块,编码可能在SERDES外完成。)

l时钟修正和通道绑定:修正发送时钟和接收时钟之间的偏差,同时也可实现多通道间的歪斜修正。(通道绑定是可选的,并不一定包含在SERDES中。)

其他可能包括的功能模块有:循环冗余检测(CRC)码生成器、CRC检测器、多种编码和解码(4b/5b,8b/10b,64b/66b)、可调的扰码器、各种对齐和菊花链选项、可配置的时钟前端和后端以及不同等级的自环。

2.参考时钟的要求

l 时钟精度

千兆位级收发器的输入时钟、或是参考时钟的规格定义是非常严格的。其中包含非常严格的频率要求,通常用每百万次容许频率错误的单位PPM来定义。抖动要求也是十分严格的,通常用时间(皮秒)或者时间间隔(UI)定义。

PPM:百万分之一;用来描述非常小的比率。

UI:时间间隔;等价于一个符号的时间长度,例如:0.2UI = 20%的符号时间。

抖动:理想传输位置的偏差。

如此严格的规定才使得PLL和时钟提取电路能够正常工作。通常系统的每一个印刷电路板都需要有一个精确石英晶体振荡器供MGT使用。这些晶体振荡器的精确度比大多数用在数字系统中的晶体振荡器要高一个级别,而且价格也要高出一截。很多情况下,一般的时钟发生芯片和PLL因为带有很大的抖动,而不能用于MGT。

l 时钟修正策略

传输时钟有非常严格的抖动要求,所以千兆位SERDES通常不能将恢复时钟作为传输时钟。每一个PCB集合都有唯一的振荡器和唯一的频率。如果两个1GHz的振荡器仅仅有1PPM的频差,同时我们提供1/20的参考时钟,则数据流的时钟每秒钟可能会增加或者缺失20,000个周期。因此,在8b/10b编码的系统中,每秒将会额外增加或者损失2万个符号。

大多数的SERDES都有时钟修正选项。时钟修正需要使用唯一的符号或者符号序列,它们在数据流中是不会出现的。因为时钟修正是对齐的后续处理,所以可以比较容易地通过保留一个K字符、或者一组有序的K字符、或者一个时钟修正数据序列来实现。时钟修正进行的频数必须足够多,从而可以通过丢弃或者重复来补偿时钟的差异。当然,有些系统并不需要时钟修正。例如,相同的参考时钟和相同的速率意味着不需要进行时钟修正。同样,如果所有接收电路的时钟都来自恢复时钟,那么时钟修正也是不需要的。如果FIFO的写入速率和读出速率相等,也没有必要进行时钟修正。如果所有的传输参考时钟都是通过一个外部的PLL锁定在一个公共的参考频率上,那么也不需要时钟修正。

3.线路编码机制

线路编码机制将输入的原始数据转变成接收器可以接收的格式。同时,线路编码机制还必须保证有足够的切换提供给时钟恢复电路。编码器还提供一种将数据对齐到字的方法,同时线路可以保持良好的直流平衡。线路编码机制也可选择用来实现时钟修正、块同步、通道绑定和将带宽划分到子通道。线路编码机制主要有两种-数值查找机制和自修改数据流或扰码器机制。

l 8b/10b编码

8b/10b编码机制是由IBM开发的,已经被广泛采用。8b/10b编码机制是Infiniband,千兆位以太网,FiberChannel以及XAUI 10G以太网接口采用的编码机制。它是一种数值查找类型的编码机制,可将8位的字转化为10位符号。这些符号可以保证有足够的跳变用于时钟恢复。

8b/10b编码具有良好的直流平衡特性,通过“运行不一致性”的方法来实现,即只使用有相同个数0和1的符号,但这会限制符号的数量。同时,8b/10b 中的comma字符(用于表示对齐序列的一个或两个符号)可辅助数据对齐。

8b/10b机制能带来字对齐、时钟修正机制、通道绑定机制和子通道生成等功能,其唯一的缺陷是开销。为了获得2.5Gbit的带宽,需要3.125Gb/s的线路速率。从减小开销的角度讲,扰码技术可以很容易地解决时钟发送和直流偏置问题,并且不需要额外的带宽。


高工
2013-10-14 16:27:05     打赏
4楼

l 4b/5b编码

4b/5b和8b/10b是类似的,但是要简单些,将4个比特编码成5个比特。4b/5b的控制字符要少一些,但不能处理直流平衡和不一致性问题。由于编码开销相同但是功能却比较少,4b/5b编码机制并不经常使用。它的最大优势是设计的尺寸,不过随着逻辑门价格的降低这个优势也不再明显。目前,4b/5b仍用在各种低速标准中,包括低速率版本的光纤通路、音频标准AES-10以及多通道数字音频复接标准MADI接口中。

4.接收和发送缓冲器

l 扰码。扰码是一种将数据重新排列或者进行编码以使其随机化的方法,但要求必须能够通过解扰恢复。加扰的目的就是打乱长的连0和长的连1序列,将数据随机化。一般将解扰时不需要额外的对齐信息的扰码称作自同步码。扰码发生器通常由移位寄存器组成,所占用的硬件资源很少。

接收和发送缓冲器,是千兆位级收发器的主要数字接口,通常是高速FIFO。发送端通常有一个小型的FIFO,它要求读取和写入的时钟是等时同步的(频率匹配但相位不一定匹配)。如果接收和发送的选通信号不是工作在精确相同的频率,则通常需要使用一个较大的FIFO,并持续检测FIFO的当前状态。如果FIFO被不断地填充,将最终导致溢出。在这种情况下,必须在输入数据流中检测idle符号。如果检测到idle符号,则不把idle符号写入FIFO。反过来,如果FIFO运行较慢则在输出数据流会出现idle符号,数据被传送给用户。此时写指针保持不动,不断重复idle符号。使用idle符号而不使用字节对齐、comma字符、时钟修正序列或者通道绑定序列,这一点是非常重要的。为了保证一定的发送速率,所有这些序列都是必需的。

相对于发送缓冲器而言,MGT内建的接收FIFO通常需要有更深层次的考虑。它的主要目的是为了实现时钟修正和通道绑定。

5.预加重和去加重

6.线路均衡

线路均衡主要用于补偿由频率不同而引起的阻抗/衰减差异。均衡器有很多种形式,但总体上可以分为有源和无源两种。均衡器通常包含在SERDES 的模拟前端,或者作为系统的一个独立部分。

无源均衡器是无源电路,其频率响应可以补偿传输衰减,可以看作一个滤波器,将传输线所使用的各频率通过,而将传输线没有使用的其他频率滤除,那么整体的频率响应就会变得平坦许多。有源均衡器可以认为是依赖频率的放大器/衰减器。

有源均衡器主要有两种:固定形式有源均衡器和自适应有源均衡器。对于任意的输入数据流,固定形式有源均衡器的频率响应都是一样的。自适应均衡器要复杂的多,自适应均衡器需要分析输入信号并检测哪些频率在传输通道中被削弱。测量和调节是以闭环形式实现的。自适应均衡器的频率响应取决于输入的比特流自适应均衡器通常和特殊形式的线路编码机制协同工作。自适应均衡器对于可变通道的链路来说是最合适的,可变通道可以是可变的电缆长度,或是显著的位置依赖的背板系统。固定形式均衡器比较适合于不变系统中,例如:芯片到芯片,平衡化的背板系统以及固定长度电缆的系统。

7. 数据包的概念

通过千兆位串行链路传输的数据大都是嵌入在某种类型的数据包中的。SERDES需要一种将输入的数据流对齐成字的方法。如果系统需要时钟修正,还必须发送特殊的比特序列或者comma字符。comma字符是指示帧的开始和结束的天然标识。如果需要时钟修正,时钟修正序列常常是比较理想的字符。加入有序集合用于指示包的开始、结束以及包的特殊类型之后,我们就有了一个简单而又强大的传输通道。

包是一种确切定义的字节集合,包括头部、数据和尾部。如果系统通过包来完成时钟修正,发送特殊的比特序列或者comma字符。时钟修正序列常常是比较理想的字符,comma字符是指示帧的开始和结束的天然标识。在数据中加入有序集合用于指示包的开始、结束以及包的特殊类型之后,就构成了简单而高速的传输通道。其中,空闲符号(Idle)或序列是包的概念的另一要点。如果没有信息需要发送,则发送idle符号,从而保证数据的连续传输并使其保持对齐。


菜鸟
2013-10-14 16:36:46     打赏
5楼
好高端大气

菜鸟
2013-10-14 16:39:02     打赏
6楼
顶LZ,不容易啊

菜鸟
2013-10-14 16:56:10     打赏
7楼
谢谢楼主的分享

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]