基于RocketIO接口的高速互连应用研究与实现

时间:2022-03-27 02:50:19

基于RocketIO接口的高速互连应用研究与实现

摘要:在此立足于嵌入式应用的背景,在理解RapidIO协议和Fibre Channel协议的基础上,通过对嵌入在FPGA内的RocketIO高速串行收发器工作原理的研究,结合某信号处理接口模块的实际应用,在系统内实现RapidIO接口功能,在系统间实现Fibre Channle接口功能,总结出基于RocketIO接口的高速信号完整性设计的应用特点,并进行简单的链路传输特性的测试,为高速互连系统的设计与研究提供了可靠的技术支撑。

关键词:RocketIO; RapidIO; Fibre Channel; 嵌入式应用

中图分类号:TN91934; TP302文献标识码:A文章编号:1004373X(2012)06001104

Research and implementation on highspeed interconnection application based on RocketIO interface

LI Min1, XU Jiancheng1, LI Jian2

(1. Northwestern Polytechnical University, Xi’an 710072, China; 2. Aeronautical Computing Technique Research Insititute, Xi’an 710068, China)

Abstract: With the continuous development of highspeed interconnection technology, the highspeed interconnection processing bus has been adopted in embedded processing application domain to design the relevant systems. Under the ground of embedded processing application, the RapidIO interface function inside a system and Fibre Channel interface function between systems are realize with a certain signal processing interface module by means of the RapidIO protocol, Fibre Channel protocol and the investigation of the operating principle of RocketIO highspeed seriestransceiver embedded in FPGA. The application characteristics of the highspeed signal integraty design based on RocketIO interface are summarized. A simple test of the link transmission characteristic was performed. The research provides a reliable technical support for the design and investigation of highspeed interconnection systems.

Keywords: RocketIO; RapidIO; Fibre Channel; embedded application

收稿日期:201109130引言

近年来,多种新兴的高性能互连技术相继出现,如RapidIO,PCI Express,Fibre Channel 和InfiniBand等,它们大都采用基于报文交换的点到点互连结构替代传统并行总线结构,提供了高带宽、低延迟、可扩展的I/O互连,很大程度上克服了传统并行总线结构的种种弊端。其中RapidIO 属于系统内部互连技术,主要针对高性能嵌入式系统内部互连,它可以作为处理器总线、本地I /O 总线,还可以跨越背板连接处理器、存储器和外部设备。RapidIO 技术被定义为一种高性能,低引脚数,基于报文交换的互连体系结构,能广泛满足嵌入式系统应用的需求,支持芯片到芯片和板到板之间的互连技术[1]。光纤通道(Fiber Channel,FC)是一种高速串行传输协议,具有高带宽、高实时性、高可靠性、扩展性好、传输速率高、抗干扰性强、拓扑结构和服务类型灵活、支持多种上层协议和底层传输介质等特性,且可以在一路传输线上实现高达2.5 Gb/s的速率,具有相对于万兆以太网,PCIe更高的传输速率[2]。

在嵌入式应用方面,主流的FPGA 中都已对差分信号提供了硬件支持,并且在片上集成了固化的Rocket IO 模块,以提供高超高速的串行通信支持。RocketIO位于数据传输协议的物理层,用以实现最基本的数据通信环境。

本文从Xilinx的Virtex5系列FPGA的RocketIO高速串行收发器的工作原理入手,分别阐述了在一片FPGA上利用RapidIO 协议和Fibre Channle协议实现高速信号传输的方法,并分析了RocketIO接口在硬件设计上需要注意的问题。

1RocketIO介绍

RocketIO为FPGA中内嵌的硬核资源,是一种高速串行收发器,采用两对差分线来进行数据的发送和接收,可以实现两个单工或一对全双工的数据传输,通信码率可以达到600 Mb/s~3.125 Gb/s。RocketIO收发器发送和接收串行差分信号,工作于2.5 V的直流电压下,采用CML(Current Mode Logic)模式[3],内部带有50 Ω或75 Ω的匹配电阻,采用串行数据收发,可以在高频条件下很好地避免数据间的串扰。

RocketIO收发器结构[4]如图1所示,主要包括PMA和PCS两个子层,PMA子层中集成了SERDES,发送和接收缓冲,时钟发生器及时钟恢复电路。SERDES是一个串并转换器,负责FPGA中本地的32位并行数据(也可以是16位或8位)与Rocket IO接口的串行数据之间的转换。时钟发生器及时钟恢复电路用于将时钟与数据绑定发送及将时钟从接收到的数据流中恢复出来,从而避免了在高速传输条件下时钟与数据分开传输所带来的时钟抖动等问题。PCS子层负责8 b/10 b编码解码和CRC校验,并集成了负责通道绑定和时钟修正的弹性缓冲。8 b/10 b编码可以避免数据流中出现连0连1的情况,便于时钟的恢复。通道绑定通过在发送数据流中加入字符来将几个RocketIO通道绑定成一个一致的并行通道,从而来提高数据的吞吐率。弹性缓冲可以解决恢复的时钟与本地时钟不一致的问题,并进行数据率的匹配,从而使得通道绑定成为可能。

图1Rocket IO结构框图2RocketIO在高速信号互连中的应用

以某信号处理模块FC接口板卡为例,该模块是一种高性能、具有高速串行接口、采用统一互连网络的通用信号处理接口模块,信号传输速率达到几千兆位每秒,这时就需要具有足够高传输速率的信号传输机制对信号进行转发。实现与主机板卡通信时,采用RapidIO传输协议;实现系统网络间通信时,则可使用Fibre Channle光纤通信协议。而RocketIO对多种高速传输协议的支持,可以使得RapidIO协议、Fibre Channle协议在同一片FPGA 内实现,提高了系统的集成度,并使得信号的处理机制更加灵活。在本文的设计中,以 Xilinx的Virtex5系列FPGA为平台,采用了RapidIO传输协议来实现与主机板卡的通信,采用Fibre Channle协议来实现系统网络间通信。本文涉及的接口模块架构如图2所示。

图2接口模块架构2.1应用RapidIO协议实现板间互连

RapidIO是一种基于高性能包交换的开放式互连技术,主要功能是完成系统内部芯片到芯片和板到板之间的高速传输数据,能够提供高带宽、低时延、软件独立和高容错性的数据传输解决方案[1]。同时支持点对点或点对多点的通信、DMA操作、消息传递模式交换数据以及多种拓扑结构等功能。

RapidIO采用3层分级体系结构[1],分别为物理层、传输层、逻辑层。物理层规范在整个分级结构的底部,包括器件级接口的细节,如包传输机制、流量控制、电气特性和低级错误管理。传输层规范在中间层,定义RapidIO地址空间和在端点器件间传输包所需的路由信息。逻辑层规范定义全部协议和包的格式,它们为端点器件发起和完成事物提供必要的信息。

RapidIO串行物理层,通常称为串行RapidIO,是针对板上或通过背板的器件间的电气连接。串行物理层定义器件间的全双工串行链路,在每个方向上使用单向差分信号。RapidIO串行物理层实现链路训练、链路初始化,支持RapidIO器件间的包传送,包括包和控制符号的传送、流量控制、错误管理和其他器件到器件的功能。RapidIO 物理层核与RocketIO收发器连接逻辑结构框图如图3所示。

图3物理层核与收发器连接逻辑结构框图由于RapidIO逻辑层包被定义为一连串的比特,并且与物理层实现无关,所以RapidIO 协议在串行与并行接口,铜线与光纤介质下都能正确工作。

其中RapidIO 串行物理层有如下特征:

(1) 采用8 b/10 b编码方案将发送时钟嵌入到数据中。

(2) 在每个方向上支持一个串行差分对或支持4个并列的串行差分对。

(3) 使用专用的8 b/10 b码(称为K码)来管理链路,管理流量控制、包定界和错误报告。

(4) 支持每通道1.25 Gb/s,2.5 Gb/s和3.125 Gb/s波特率(数据速率分别为1.0 Gb/s,2.0 Gb/s和2.5 Gb/s)的传送速率。

2.2应用Fibre Channel协议实现系统间互连

光纤通道技术是综合计算机通道和数据网络概念提出的一个不同于传统的通道和网络结构的互连方案,采用通道技术控制信号传输,使用仲裁或交换方式处理共享冲突,并采用了基于信用的流量控制策略。

Fibre Channel模型分为5层[2],分别为:FC0,FC1,FC2,FC3和FC4 。FC0层定义了连接的物理端口特性,包括介质和连接器、驱动器、接收机、发射机等的物理特性、电器特性和光特性、传输速率以及其他的一些连接端口特性。在本设计中,FC0层处理由光电收发器实现光信号与电信号转换;FC1层是信号编码和解码层,FC1层处理由FPGA的RocketIO完成串并/并串转换、8 b/10 b编解码、有序集及位同步等; FC1层使用8 b/10 b编码方式,这意味着每传输10 b数据,实际得到8 b的有效数据,其他两位是冗余位。信号可以被编码成2种字符集:K字符集(特殊的控制信号和命令)和D字符集(普通数据)。FC2层是帧协议层,是FC用来识别、解释和处理FC网络信息流的核心层。FC2层规定信息单元的组成格式、原语序列协议、端口类型、服务类型、数据的分段与重组、流量控制、差错恢复策略、节点初始化、节点的注册和节点的注销等功能。FC0,FC1和FC2层这3层共同组成了FC物理层。FC3层是FC的公共服务层,定义了如带宽频率分片、搜索组和多播等通用服务。FC4:该层是FC协议模型的最高层,在本系统的设计中,使用了匿名签署消息传输协议(FCAEASM)来满足系统中数据的传输需要。

在FC核的嵌入式应用中,使用一个或2个RocketIO收发器来提供1 Gb/s,2 Gb/s或4 Gb/s的接口速率,利用FPGA中的8 b/10 b编解码器、CRC产生和校验单元以及接收弹性缓冲进行设计。FC核内部提供了32 b宽的Client接口,FC帧数据采用32 b/s访问。FC核的时钟在配置时已固定,分别可采用53.125 MHz和106.25 MHz。

FC核与RocketIO收发器连接逻辑结构框图[5]如图4所示。

图4FC核与RocketIO收发器连接逻辑结构框图3RocketIO接口的信号完整性设计

在实际应用中,参考时钟、电源供电以及高速传输线路的设计与布局是影响数据传输效果的最重要因素。为了保证Rocket IO能可靠工作,在RocketIO接口设计过程中需要注意以下的问题[6]:

(1) 电源供电。该系列FPGA器件中每个RocketIO高速串行收发器包括5类电源引脚, 分别为MGTAVCCPLL, MGTAVCC, MGTAVTTRX, MGTAVTTTX, MGTAVTTRXC,这些引脚对噪声的影响都非常敏感,为了保证高速电路能够可靠工作,RocketIO需要和周围的噪声源进行隔离。因此需要对RocketIO收发器进行专门的供电,且每个供电引脚必须有独立的LC滤波网络,其连接关系如图5所示。

图5LC滤波电路(2) 高速信号。RocketIO高速串行收发器采用高速差分信号线,由于所传输的差分信号频率很高,高速差分对走线应当有最高的优先级,两根差分信号线必须在长度上尽量匹配,长度失配会产生共模噪声和辐射,严重的失配会产生时钟抖动和不可预知的时序问题,差分线必须尽量匹配,端接电阻50 Ω和75 Ω可选,50 Ω用于芯片和芯片之间互连,75 Ω用于芯片和电缆之间互连;高速差分线不要打孔,要布在电路板中同一层。

(3) 参考时钟。RocketIO不能使用经过数字时钟管理模块(DCM)倍频的参考时钟,因为DCM倍频会引入过大的时钟抖动,在RocketIO的高速数据传输条件下会引起不必要的错误。RocketIO的时钟由差分时钟输入后,只经过一级BUFG,将时钟引入FPGA的全局时钟树,然后直接连入到RocketIO的参考时钟引脚上。

4测试验证

在完成硬件设计后,可利用ChipScope Proh分析工具测试RocketIO的工作性能,通过内置在收发器内的误码率测试器,设置RocketIO为串行闭环方式,并运行软件进行测试即可得到实时的数据传输状态。如图6所示可观察到链路上的传输特性,并可得误码率可达到10-12,符合设计指标要求。

图6通信链路误码率测试结果5结语

本文从Virtex5系列FPGA的RocketIO高速串行收发器入手,根据接口设计需要阐述了应用RapidIO 协议和FC协议实现高速传输的设计思想及工作原理。并分析了高速传输在硬件设计过程需要注意的一些问题,为高速接口设计的研究奠定了基础,具有一定的科研价值和实践意义。

参考文献

[1]王勇.RapidIO嵌入式系统互连\[M\].北京:电子工业出版社,2006.

[2]Mike Glass. Test, simulation and integration of Fiber Channel networked systems \[R\]. \[S.l.\]: Mike Glass, 2006.

[3]武荣伟,苏涛,梁中英.RocketIO在高速数据通信中的应用\[J\].通信技术,2011(9):1013.

[4]Xilinx. RocketIOTM transceiver user guide, UG024 (V3.0) \[M\]. \[S.l.\]: Xilinx, 2007.

[5]史卫民.基于FPGA的RapidIOFC转接桥设计\[J\].计算机工程,2010(3):6567.

[6]李键.新一代航空电子系统光纤通道及其节点机的研究与实现\[D\].西安:中国航空研究院631所,2008.

[7]RapidIO Trade Association. RapidIO interconnect specification Rev2.1 Part 6:1x/4x LPSerial Physical Layer Specification \[R\]. \[S.l.\]: RapidIO Trade Association, 2009.

[8]李江涛.RocketIO 高速串行传输原理与实现\[J\].雷达与对抗,2004(11):2527.

[9]骆丽.嵌入式系统设计\[M\].北京:北京航空航天大学出版社,2004.

[10]陈长林,邱兆坤.RocketIO 及其在高速数据传输中的应用\[J\].单片机与嵌入式系统应用,2010(8):1517.

[11]万翔.ChipScope Pro在FPGA调试中的应用\[J\].计算机与网络,2005(7):3842.

[12]李聪玲.液氧/煤油发动机试验控制系统软件架构与设计\[J\].火箭推进,2009,35(2):4653.

[13]李建国,施健.一种双通道接收机的设计\[J\].电子科技,2011(5):7879.

[14]应涛,吴青锋,张小苗.一种超宽带可控波束切换电路的设计\[J\].电子科技,2010(1):6870.

上一篇:基于Nois Ⅱ的程控数字信号源设计 下一篇:基于嵌入式Linux的LCD背光调节及驱动的实现