0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

FPGA设计论坛 ? 来源:未知 ? 2023-09-21 11:05 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

35a75fa0-582b-11ee-939d-92fbcf53809c.png35af34fa-582b-11ee-939d-92fbcf53809c.png

点击上方蓝字关注我们

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

目前,高速串行接口取代并行拓扑结构已经是大势所趋。当今很多公用互连标准(如USB,PCI-Express)都是基于串行连接来实现高速传输的。相比于并行总线,串行连接的物理紧密度和链路韧性具有很多优势。因此,很多传输领域都转向了串行传输,如笔记本电脑显示互连、高速背板互连和存储器内部互连。该系统涉及到的技术主要包括:光纤传输、PCIE(PCI-Express)传输和DDR缓存技术,以及这几种技术在FPGA中融合为一个完整的串行传输链路,并实现了在两台服务器之间的高速数据传输测试,这对于实际工程应用具有重要的现实意义。

1 系统结构

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

35bad65c-582b-11ee-939d-92fbcf53809c.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的编程,使其能够产生所需要的时钟信号。

35c6da88-582b-11ee-939d-92fbcf53809c.jpg

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的输出频率为:

35e2e0fc-582b-11ee-939d-92fbcf53809c.jpg

35f21e3c-582b-11ee-939d-92fbcf53809c.jpg

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

36086e6c-582b-11ee-939d-92fbcf53809c.jpg

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

362bf972-582b-11ee-939d-92fbcf53809c.jpg

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

363b76ea-582b-11ee-939d-92fbcf53809c.jpg

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

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

364ed41a-582b-11ee-939d-92fbcf53809c.jpg

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

36608502-582b-11ee-939d-92fbcf53809c.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级模型图。

36791a68-582b-11ee-939d-92fbcf53809c.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做缓冲时也应该遵循这样的协议。

36855a44-582b-11ee-939d-92fbcf53809c.jpg

发送端的FIFO模块分别包括FIFO的复位信号、FIFO空、FIFO满、以及读/写时钟、使能和数据信号线。因此应该根据FIFO的标志位empty和full来产生AURORA的发送时序,参考模型如图8所示:当RESET信号到来之时,首先将S0置为高电平,将S1置为低电平,同时根据FULL和EM-PTY的状态确定接下来的S0和S1的状态,进而根据以上逻辑关系得到TX_SOF_N,TX_EOF_N,TX_SRC_RDY_N等逻辑信号,并且根据数据X_DST_RDY_N和TX_SRC_RDY_N生成FIFO的读使能。由以上逻辑可以看出,只有在FULL为1,EMPTY为0时,FIFO的读使能才能被打开。TX_SOF_N为数据包的帧头标志,TX_EOF_N为数据包的帧尾标志,TX_STC_RDY_N为低时代表数据有效,TX_DST_RDY_N为输入信号,根据此输入信号确定FIFO的读写时序。

369ec98e-582b-11ee-939d-92fbcf53809c.jpg

对FIFO时序操作需要根据上述电路图所产生。在上述电路图中,有一个D触发器,其RESET信号是复位信号,复位既是将触发器输出端口清零,即将S0置1,将S1置0。在之前的程序中误将这里写反,即RESET信号到来之后,将S0置0,S1置1。这样导致的结果是在最开始输入的一段数据丢失,之后的结果输出正常。经过仿真分析之后检查出问题并已改正。

2.3 AURORA接收模块

同样在AURORA协议模块中,要实现对数据的接收,只需在frame_check模块中对接收的代码加以修改,增加自己所需要的内容,完成对数据的解码提取,剔除冗余信息,并完成数据的缓存。

接收模块frame_check的RTL级模型图如图9所示:其中,RX_D为接收端接收的缓存于FIFO的数据,REsET为复位信号,RX_EOF_N为数据包帧尾的标志,RX_SOF_N为数据包帧头的标志,TX_SRC_RDY_N为低时代表数据有效,USER_CLK为系统时钟。fifo_out为数据缓存的输出,ERROR _COUNT为系统检错输出结果。因此在接收端接收模块的时序图如图10所示。根据该时序图可以确定接收时序,同样,在AURORA协议末端,由于与下一级系统的速率可能不匹配,因此需要在接收末端加上一个FIFO做缓存,同样其电路图如图11所示:根据RX_SRC_RDY_N生成FIFO的写使能信号,该发送模块设计完毕。

36aef8d6-582b-11ee-939d-92fbcf53809c.jpg

36be11a4-582b-11ee-939d-92fbcf53809c.jpg

36f9ba4c-582b-11ee-939d-92fbcf53809c.jpg

3 测试分析

3.1 功能测试

在基本功能测试中,主要测试光纤模块传输是否正确。由于光纤模块共有A,B,C,D四个通道,对每个通道都要进行读/写测试。将通道A作为数据发送端,通道B作为数据接收端,应用光纤将A,B两端进行联通,然后将应用程序数据写入A通道FIFO中,当FPGA接收到到数据后,将A通道数据通过光纤传输到通道B接收缓存中,然后通道B将数据发送到上位机,从而形成一个环路。比较发送和接受端的数据,可以验证数据传输的正确性。同理可以将此方法应用于四个通道中的任意两个作为发送端和接收端,从而验证并测试传输功能。

3.2 性能测试

性能主要对其传输速度和传输误码率进行测试。就传输速度而言,主要由FPGA控制,在其内部设置了两个初始值为0的计数器,在PCI-Express开始传输数据时,FPGA开始计数读/写数据包和发送数据包的个数,然后每隔一段时间将计数值写入两个计数寄存器中,并将原有值替换,为了精确速率,可以缩短计数时间,并多次测试取平均值,就可得到传输瞬时速度。经测试:PCI-Express接口的传输速度在600MB/ s,光纤传输在850 MB/s,满足设计要求。对于误码率的测试,主要使用误码分析软件对其误码性能进行测量,设计由上位机和PCI-Express接口,光纤通道组成数据传输环路,通过不同的指令和要求验证传输正确性,当数据包大小在4 Kb,8 Kb,16 Kb,32 Kb,测试数据长度分别为1 000 Kb,1 000 000 Kb,100000 000 Kb时,错误率都为0 b,误码率满足设计要求。

4 结语

该设计系统以Virtex-5为核心构建的平台,对AURORA协议下串行传输系统进行了设计与实现。通过对核心问题的解决,将计算机与外部扩展很好的结合,达到信号传输的高速、稳定的目的。实验证明,板卡设计的整体思路和核心方法的解决是完备的,并使得板卡的传输速率和稳定性的到了较大的提高。

371052b6-582b-11ee-939d-92fbcf53809c.png

有你想看的精彩 至芯科技FPGA就业培训班——助你步入成功之路、9月23号北京中心开课、欢迎咨询! CMOS图像传感器的FPGA逻辑设计解析 FPGA学习-数字分频器设计

371c1eb6-582b-11ee-939d-92fbcf53809c.jpg

扫码加微信邀请您加入FPGA学习交流群

3723c850-582b-11ee-939d-92fbcf53809c.jpg372eb42c-582b-11ee-939d-92fbcf53809c.png

欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!

点个在看你最好看

374da486-582b-11ee-939d-92fbcf53809c.png


原文标题:基于FPGA的高速串行传输系统设计

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1648

    文章

    22117

    浏览量

    621556

原文标题:基于FPGA的高速串行传输系统设计

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高速信号传输为什么要用极细同轴线束?

    高速信号传输之所以选择极细同轴线束,核心原因在于它兼顾了信号完整性、抗干扰能力、柔性布线和高速特性。它既能满足现有的高速接口需求,又具备良好的扩展性和可靠性,是现代电子
    的头像 发表于 08-22 18:19 ?227次阅读
    <b class='flag-5'>高速</b>信号<b class='flag-5'>传输</b>为什么要用极细同轴线束?

    友思特方案 | FPGA 加持,友思特图像采集卡高速预处理助力视觉系统运行提速增效

    图像预处理是图像处理关键中间环节,通过优化传感器到主机的数据传输处理为后续减负。其算法依托硬件执行,搭载?FPGA?的友思特图像采集卡以高速运算和并行特性缩短处理时间、降低延迟并提升吞吐量,助力
    的头像 发表于 08-20 09:18 ?148次阅读
    友思特方案 | <b class='flag-5'>FPGA</b> 加持,友思特图像采集卡<b class='flag-5'>高速</b>预处理助力视觉<b class='flag-5'>系统</b>运行提速增效

    FPGA 加持,友思特图像采集卡高速预处理助力视觉系统运行提速增效

    图像预处理是图像处理关键环节,可优化数据传输、减轻主机负担,其算法可在FPGA等硬件上执行。友思特FPGA图像采集卡凭借FPGA特性,能缩短处理时间、降低延迟,适用于
    的头像 发表于 08-13 17:41 ?262次阅读
    <b class='flag-5'>FPGA</b> 加持,友思特图像采集卡<b class='flag-5'>高速</b>预处理助力视觉<b class='flag-5'>系统</b>运行提速增效

    高速总线接口的类型介绍

    串行RapidIO,高速串行通信协议,旨在链接DSP、FPGA、网络处理器等芯片,具有低延迟、高带宽(支持25Gbps、2.5Gbps、3.125Gbps的数据
    的头像 发表于 08-06 14:50 ?848次阅读

    智多晶多分辨率HDMI传输Demo概述

    FPGA在图像传输领域扮演着非常重要的角色,FPGA的SerDes在图像传输领域是实现高速串行
    的头像 发表于 07-22 11:37 ?411次阅读
    智多晶多分辨率HDMI<b class='flag-5'>传输</b>Demo概述

    全面了解串行通信

    、核心概念 数据传输方式 : 串行通信 :数据在单条线路上依次传输,每个时钟周期传输1位(0或1)。 并行通信 :数据通过多条线路同时传输
    的头像 发表于 07-19 14:13 ?238次阅读

    如何用普源DHO924示波器构建高速串行信号分析系统

    高速数字通信领域,如USB、PCIe、以太网等协议的测试与调试中,准确分析串行信号的时序、抖动、眼图等参数是确保系统稳定性和数据传输可靠性的关键。普源DHO924示波器凭借其200M
    的头像 发表于 06-23 14:15 ?289次阅读
    如何用普源DHO924示波器构建<b class='flag-5'>高速</b><b class='flag-5'>串行</b>信号分析<b class='flag-5'>系统</b>

    FPGA高速ADC接口简介

    本文介绍FPGA高速ADC接口方式和标准以及JESD204与FPGA高速串行接口。
    的头像 发表于 06-12 14:18 ?2062次阅读
    <b class='flag-5'>FPGA</b>与<b class='flag-5'>高速</b>ADC接口简介

    工业高速相机远距离无线传输,无线组网传输系统

    当现场环境满足无线网桥传输的条件,视野开阔、无遮挡、安装高度达到传输需求。无线网桥所具备的安装灵活、快速构建、低功能、高速率满足数据传输的特点融合进了现场的
    的头像 发表于 06-06 09:44 ?261次阅读

    MAX9249多媒体串行链路串行器,带有LVDS系统接口技术手册

    MAX9249串行器带有LVDS系统接口,采用Maxim吉比特多媒体串行链路(GMSL)技术。MAX9249串行器与GMSL解串器配合使用,构成完整的数字
    的头像 发表于 05-28 16:43 ?380次阅读
    MAX9249多媒体<b class='flag-5'>串行</b>链路<b class='flag-5'>串行</b>器,带有LVDS<b class='flag-5'>系统</b>接口技术手册

    MAX9268多媒体串行链路解串器,具有LVDS系统接口技术手册

    MAX9268解串器采用Maxim吉比特多媒体串行链路(GMSL)技术,具有LVDS系统接口,可有效减少引脚数、缩小封装面积,器件可以与任意一款GMSL串行器配合使用,构成完整的数字串行
    的头像 发表于 05-28 16:38 ?404次阅读
    MAX9268多媒体<b class='flag-5'>串行</b>链路解串器,具有LVDS<b class='flag-5'>系统</b>接口技术手册

    是德S系列示波器如何应对高速串行测试

    高速数字通信时代,串行数据速率不断提升,USB、PCIe、SerDes等接口的传输速率已突破数十Gbps。这对测试设备提出了更高要求:不仅需要足够高的带宽捕捉信号细节,还要具备精准的抖动分析、眼图
    的头像 发表于 04-16 15:48 ?303次阅读
    是德S系列示波器如何应对<b class='flag-5'>高速</b><b class='flag-5'>串行</b>测试

    FPGA的多通道数据采集传输系统

    一、系统总体方案设计 为了满足油田增压站对数据采集的需求,我们设计了一套基于FPGA的多通道数据采集与传输系统系统
    的头像 发表于 12-09 10:45 ?900次阅读
    <b class='flag-5'>FPGA</b>的多通道数据采集<b class='flag-5'>传输</b><b class='flag-5'>系统</b>

    PCIe数据传输协议详解

    、网卡和声卡等,以实现高效的数据传输。以下是对PCIe数据传输协议的介绍: 一、PCIe协议的基本概念 PCIe协议定义了一系列规范和要求,以实现在主机系统和外围设备之间高效、可靠地进行数据通信。它采用了
    的头像 发表于 11-26 16:12 ?4130次阅读

    FPGA在数据处理中的应用实例

    广泛应用于以太网、USB、PCI Express、SATA、HDMI等通信协议的处理。它们通过高速串行接口实现数据传输,并利用硬件加速技术进行协议解析和数据处理,从而提高系统性能。例如
    的头像 发表于 10-25 09:21 ?1566次阅读