您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于FPGA的高速串行传输系统的设计与实现 正文
基于FPGA的高速串行传输系统的设计与实现

基于FPGA的高速串行传输系统的设计与实现

点击数:7816 次   录入时间:03-04 11:37:22   整理:http://www.55dianzi.com   DSP/FPGA技术

    摘要:作为高传输速率和低设计成本的传输技术,串行传输技术被广泛应用于高速通信领域,并已成为业界首选。在此基于对高速串行传输系统的分析,对实例进行了总体设计验证,最终达到高速传输的目的。

关键词:FPGA;PCI-Express;时钟控制模块;Aurora模块

    引言
   
    随着网络技术的不断发展,数据交换、数据传输流量越来越大。尤其像雷达,气象、航天等领域,不仅数据运算率巨大,计算处理复杂,而且需要实时高速远程传输,需要长期稳定有效的信号加以支持,以便能够获得更加精准的数据收发信息,更好的为工程项目服务。传统的并行传输方式由于走线多、信号间串扰大等缺陷,无法突破自身的速度瓶颈。而串行传输拥有更高的传输速率但只需要少量的信号线,降低了背板开发成本和复杂度,满足高频率远距离的数据通信需求,被广泛应用到各种高速数据通信系统设计中。

   
    目前,高速串行接口取代并行拓扑结构已经是大势所趋。当今很多公用互连标准(如USB,PCI-Express)都是基于串行连接来实现高速传输的。相比于并行总线,串行连接的物理紧密度和链路韧性具有很多优势。

    因此,很多传输领域都转向了串行传输,如笔记本电脑显示互连、高速背板互连和存储器内部互连。该系统涉及到的技术主要包括:光纤传输、PCIE(PCI-Express)传输和DDR缓存技术,以及这几种技术在FPGA中融合为一个完整的串行传输链路,并实现了在两台服务器之间的高速数据传输测试,这对于实际工程应用具有重要的现实意义。

    1 系统结构
   
    高速串行传输系统作为数据采集、传输、存储中的一部分,对传输性能指标有着严格的要求。该系统要完成光信号到PCI-Express接口信号的相互转换,并在转换过程中完成数据的高速传输。信号一般可达4.25Gb/s,处理如此高的数据对硬件设计提出了很大的挑战。其中所包含的硬件有:高速光电转换电路,FPGA数据处理电路、DDRⅡ数据缓存电路、时钟管理电路、PCIE传输模块电路、电源模块电路、自定义扩展接口电路。系统框图如图1所示。

1.jpg
   
技术要求主要有以下几点:首先,传输卡中的4个光纤通道,每通道要达到2 Gb/s以上。其次,PCIE传输速率不小于6 Gb/s,支持DMA传输。再有,光纤和PCI-E传输误码率要小于1×10-10,连续传输相对稳定。

   
    图1中各个模块的功能如下:Virtex5作为传输卡的核心,用来实现数据从光纤接口到PCIE接口的高速转换。光纤传输模块的作用是将内部数据经过编码后,通过光缆传输给接收系统,以及接收外来光数据,并将光数据传送给FPGA处理电路DDR缓存模块的作用,就是将传输过程中的高速数据,进行缓存,以保持数据的完整性。PCI-Express传输模块的作用,就是与PC之间实现PCI-Express传输协议,与PC实现串行数据传输,同时与外部扩展接口,DDR缓存,光纤传输模块实现内部并行数据的交换。QTE自定义接口模块的作用,就是进行外部功能扩展。比如,可以扩展高速数据采集板卡、存储硬盘卡、图像采集卡等。时钟管理模块的作用,是给光纤传输模块提供参考时钟。时钟频率由FPGA的时钟控制模块控制。根据光模块的性能,给出指定的时钟。PCI-Express的参考时钟,是通过芯片从PC主板上提取的。电源管理模块的作用,是给整个系统提供各种不同的电压。

    2 系统模块设计与实现
   
    为了实现所要求的系统配置,更好地发挥各模块自身及相互之间的作用,必须对模块间进行系统的协议分析。该系统的数据传输是双向的,既可以传输数据,也可以接收数据。它主要由电源管理模块,时钟管理模块,PCI-Express传输模块,DDR缓存模块,光纤传输模块和外部扩展接口组成。其中,时钟控制模块和Aurora发送模块、Aurora接收模块是整个设计的重点。

    2.1 时钟控制模块
   
    时钟控制模块主要用来控制FPGA外围的时钟芯片ICS8442来产生所需要的高信噪比、低抖动的差分时钟。

    其模块电路如图2所示:输出其中的信号用来完成对ICS8442的编程,使其能够产生所需要的时钟信号。

2.jpg

2.jpg



www.55dianzi.com

 
ICS8442的性能参数如下:
输出信号频率范围为31.25~700 MHz;晶振频率范围为10~25 MHz;VCO频率范围为250~700 MHz;
ICS8442是LVDS逻辑电平,具有极低的相位噪声,这种特性使它非常适合用来为吉比特以太网或同步光纤网提供时钟信号。

ICS8442的内部结构图3所示。ICS8442内部有一个完整的PLL锁相环,其VCO的输出频率范围在250~700MHz之间,倍频系数是由M决定的,M的取值范围在10~28之间。VCO的输出频率为:

e.jpg
ICS8442最终的输出结果还要经过一个分频器N,最终输出结果的频率和晶振输入频率的关系式为:

f.jpg
中:N是一个2位的寄存器,其对应的取值如表1所示。

3.jpg

对ICS8442时钟芯片的操作主要是对寄存器M,N的写操作。ICS8442支持并行写操作和串行写操作,根据硬件电路的设计,程序采用串行的写操作时序。当ICS8442的nP_LOAD置为高电平和S_LOAD置为低电平时,芯片实现串行操作。操作时序如图4所示。

4.jpg

当S_LOAD置为低且nP_LOAD置为高之后,数据在S_CLOCK的上升沿处寄存在缓冲器中,在S_LOAD的下降沿处将数据锁存到寄存器M,N中。

   
由于AURORA光纤通信的输出时钟频率设定的是125 MHz,结合硬件电路的设计,硬件晶振的频率为20 MHz,因此选择M值为000011001(25),N的值为10(4),故时钟芯片的时钟输出频率为:

i.jpg
   
时钟控制模块的实测时钟信号如图5所示。

5.JPG

图5是用Chipscope在线逻辑分析仪得到的波形,由于Chipscope在线逻辑分析仪的触发时钟是100 MHz,因此在抓取125 MHz的时钟信号时,在图上显示的时钟信号占空比不定,若将时钟芯片产生的时钟频率降低,则此现象消失。

2.2 AURORA发送模块

在生成AURORA IP CORE时,同时生成了一个基于AURORA协议的例示程序。因此,要实现基于AURORA协议的光纤通信,在发送端只需要在frame_gen_i模块将要发送的数据打包,然后通过AURORA模块发送出去。因此该模块着重介绍如何将上一级传送过来的数据进行打包压缩,形成适合AURORA协议的数据帧,通过AURORA协议发送到接收端。图6为frame_gen_i模块的RTL级模型图。

6.jpg

考虑到上一级传输数据速率可能会与AURORA传输的时钟频率不同,因此在发送端建立一个FIFO来做缓冲器。并且AURORA协议的发送时序图如图7所示。可以看出,TX_SOF_N为数据包帧的开始标志,TX_EOF_N为数据包帧的结束.标志,TX_REM[0:r(n)]记录最后的传输数据的线程,TX_SRC_RDY_N为低代表数据有效,TX_DST_RDY_N为低代表准备好接受数据,TX_D[0:(8n-1)]是此模块的输出数据。以上信息是AURORA协议的发送时序,在使用FIFO做缓冲时也应该遵循这样的协议。

7.JPG

[1] [2]  下一页


本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术