基于FPGA的SFP级联视频传输系统设计

基于FPGA 的SFP 级联视频传输系统设计
Design of SFP cascaded video
transmission system based on FPGA
XIONG Mudi,FAN Ting,LIU Pan,LIU Leichuan
(College of Information Science and Technology,Dalian Maritime University,Dalian Liaoning 116026,China )
Abstract:The system data transfer speed largely affects the video display of large displays.In order to effectively increase the amount of system data transmission and improve the system resource utilization,a system based on Aurora protocol for optic fiber communication to transmit video data is designed.The system combines SFP optical modules with Xilinx Spartan6series field -programmable gate array (FPGA )chips,and uses the Aurora IP core to achieve the high speed serial communication.Furthermore,by modifying the IP core,and using the two lanes in one transceiver to make the two ports of the SFP optical module work separately which achieve the effect of cascading SFP optical modules.Finally,the experimental results of real-time long-distance transmission of the vide
o data of the host computer by circuit board prove the feasibility and stability of the system.Key words:Aurora protocol;optic fiber communication;SFP optical module;FPGA;cascading
熊木地,范婷,刘盼,刘磊传
(大连海事大学信息科学技术学院,辽宁大连116026)
摘要:系统数据传输速度很大程度上影响着大型显示屏的视频显示效果。为了有效增加系统数据传输量,提高系统资源利用率,设计了一种基于Au r o r a 协议,通过光纤通信实时传输视频数据的系统,该系统由SF P 光模块与Xi l i n x 公司Sp a r -t a n 6系列现场可编程门阵列(F PGA )芯片配合使用,利用Au r o r a I P 核实现高速串行通信。进一步提出通过修改I P 核代码,充分利用同一收发器中的2条通道,使SF P 光模块2个端口单独工作的方法,从而达到SF P 光模块级联的效果。最终通过电路板实物实时观测系统远距离传输上位机视频数据的效果,实验结果证明了系统数据传输的可行性与稳定性。关键词:Au r o r a 协议;光纤通信;SF P 光模块;现场可编程门阵列;级联中图分类号:TN919文献标识码:A
文章编号:1002-5561(2019)07-0025-06
D OI :10.13921/jki.issn1002-5561.2019.07.007
开放科学(资源服务)标识码(OSID ):
引用本文:熊木地,范婷,刘盼,等:基于FPGA 的SFP 级联视频传输系统设计[J].光通信技术,2019,43(7):25-30.
0引言
随着科技的进步和娱乐方式多样化,各种显示屏产品应运而生,人们对视频清晰度要求不断提高,使得传输系统需实时稳定传输更大的数据量,传统的通信接口无法满足需求。光纤传输技术具有传输频带宽、通信容量大、传输距离远、传输速度快和抗干扰性强等诸多优点[1],已广泛应用到各个领域。同时,传输
系统涉及数据存储、格式转换等复杂处理,故选用功能强大的现场可编程门阵列(FPGA )作为处理器配合各功能模块实现。光纤传输技术与FPGA 技术相结合
是目前光纤通信系统的主流解决方案[2]。本文设计基于FPGA 芯片配合SFP 光模块和Aurora 协议,通过光纤通信实现视频数据的高速传输。并提出通过光模块级联实现大数据量传输的方法。
1系统硬件平台搭建
基于FPGA 的SFP 级联视频传输系统设计框图如图1所示。本系统重在结合硬件设计,编写FPGA 软件代码实现各模块的功能。在本设计中,控制芯片选用Xilinx Spartan6系列的XC6SLX45T FPGA 芯片[1]。
为了与其配合,更好地实现光纤传输,我们选择
收稿日期:2019-03-28。
作者简介:熊木地(1970-),男,博士,教授,光电信息工程研究所所长,大连海事大学信息科学技术学院硕士生导师,主要从事光电检测方面的研究,曾获第八届国际发明展览会发明创业项目奖银奖,中国航海学会科学技术奖二等奖,获发明专利64项
熊木地,范婷,刘盼,等:基于FPGA 的SFP 级联视频传输系统设计
了SFP 光模块作为光电信号转换的工具,并选用多模光纤作为光模块间的传输介质。SFP 光收发合一模块主要为光纤高速通信的链路提供高速稳定的光电/电光转换功能[3],最高速率可达10.3G ,是目前市场上占有率最高的一款光模块。本系统选用Eoptolink 公司生产的EOLS-8512-02型号SFP 光模块,其采用3.3V 电源供电,传输速率为1.25Gb/s ,波长为850nm ,LC 接口,传输距离最远可达550m ,满足本系统的需求。
Xilinx Spartan6系列FPGA 内部集成的高速串行收发器分配在Bank123和Bank101[4],本文选择将SFP
光模块设计在Bank101中。SFP 光模块数据采用差分传输方式,传输过程中产生的射频辐射少、传播延迟
低且吞吐量高。SFP 光模块硬件电路设计如图2所示。图中GTP_RX0_P 、GTP_RX0_N 接收差分数据引脚与FPGA 芯片的MGT_RX0_P 、MGT_RX0_N 差分引脚相连接,用于FPGA 解码处理接收数据。编码完成的待发送数据经GTP_TX0_P 和GTP_TX0_N 发送差分数据引脚传输至激光发射器。激光发射器将此电信号转换为光信号,并通过多模光纤远距离传输至下一级等待接收的光模块。本系统时钟由外部差分晶振提供,大小为
130MHz,通过FPGA 差分时钟输入引脚REFCLKP 和REFCLKN 输入。
视频处理器可分为主控制器和辅助控制器,主要数据处理过程包括上位机视频数据接收、解码、数据缓
存和数据发送等,都在主控制器中完成;辅助控制器只需通过光纤接收数据并转换成驱动系统需要的数据格式,将其摆放在离显示屏较近的地方。主控制器与辅助控制器之间利用基于FPGA 的SFP 视频光纤传输系统传输数据,极大地提高了数据
传输速度,增加了单位时间内传输的数据量,使系统显示视频画面更加流畅、分辨率更高;实现了数据的远距离传输,提高了系统的稳定性、灵活性和抗干扰性。
2光纤通信嵌入式软件设计
2.1Aurora 协议
与并行传输方式相比,串行传输方式可以在高速
传输时更好地保持信号同步和数据对齐[4]。Xilinx 公司在内嵌GTP 收发器的基础上开发了Aurora 协议来适应串行传输技术发展的趋势。Aurora 协议是开放、免费的链路层协议,用来进行点到点的串行数据传输,为物理层提供透明接口[5]。
Xilinx 公司还开发了基于Aurora 协议解决Spar ⁃tan6收发器高速串行解决方案的IP 核,利用FPGA 内部可编程资源灵活地配置使其适用于不同的需要,如以太网、SATA1.0接口等[6]。本系统使用基于Aurora 协议的Aurora 8B/10B v5.3IP 核来生成GTP 收发器模块,完成光模块之间物理层和链路层数据串行传输。
Aurora 8B/10B v5.3IP 核将复杂的Rocket IO 控制结构转化为简单的用户接口,用户可以根据不同需要,修改IP 核用户界面参数来修改收发器的结构。
Aurora 8B/10B v5.3IP 核进行数据收发的工作原理包括:①待发送的帧数据输入至Aurora 8B/10B v5.3IP 核模块,协议引擎中的发送帧将待传输的数据封装图1系统总框图
图2SFP 模块硬件电
路图
在通道协议数据单元(PDU)中;②为保证直流平衡,将帧数据进行8B/10B编码;③转换成串行数据,从发送端激光发射器通过光纤远距离差分传输;④接收端
Aurora8B/10B核接收器接收数据后先对其进行时钟数据恢复,从数据里恢复时钟去采样数据;⑤将接收的高速串行数据重新转化成多字并行;⑥按照恢复的时钟检测comma字符到字的边界将数据位对齐,检测和丢弃控制字节;⑦将数据进行8B/10B解码还原并从寄存器输出。
2.2Aurora8B/10B核实际应用
基于Aurora8B/10B IP核的GTP模块为光纤通信的核心部分,本系统在Xilinx公司开发的ISE14.2平台上
通过CORE Generator工具建立Aurora8B/10B v5.3IP核。为了提升数据传输的稳定性,选择数据帧模式作为数据的传输格式,通道线速度为1.3Gb/s,输入系统参考时钟为130MHz,用户时钟为32.5MHz,待发送和接收的数据位宽均为32bit。
当Aurora8B/10B核数据传输速率设置为1.3Gb/s 时,由于GTP模块光纤通信过程中采用了8B/10B编码方式,实际上传输有效数据的速率约为1.04Gb/s,所以本系统硬件上选用1.25G的SFP光模块仍可以满足数据传输速率的要求。
IP核相关参数设置完成后生成Aurora8B/10B v5.3IP核,同时会自动生成一个完整的实例工程,其中包括与Aurora8B/10B v5.3IP核光纤通信相关的配置模块:
①时钟配置模块(Clock_module)。根据系统时钟,由锁相环分频产生用户时钟、采样时钟和同步时钟等其它配置模块所需时钟。
②复位配置模块(Reset_logic),用于产生复位控制信号。
③时钟补偿模块(Standard_cc_module)。由于信道两端设备的参考时钟必然存在差异,时钟相位偏差不可避免,为了保证接收端正确地恢复数据,接收端根据接收数据流内嵌的时钟补偿信息对自身参考时钟进行修正,以降低误码[7]。每发送10000个字节要在每条线路上加12个字节的时钟补偿序列,此时Aurora 8B/10B核数据传输中断。
④数据帧发送配置模块(Frame_gen),用于封装生成数据帧信号并通过Aurora信道传递。
⑤数据帧接收配置模块(Frame_check)。Frame_ gen模块生成的数据帧经过信道,由接收端用户接口到达数据帧检查器,还原数据和时钟。
用户根据实际需要修改配置模块,对Aurora8B/ 10B IP核用户接口信号进行配置操作以完成目标功能。Aurora8B/10B核用户接口如图3所示。
光纤通信发送端TX_D为待发送并已封装好的帧数据;TX_REM为传送最后一个数据期间有效字节数;TX_SOF_N、TX_EOF_N分别为一帧数据的开始和结束,均为低电平有效,通过控制帧开始和结束信号,一帧数据的长度可以调整成任意大小,并可以在任意时刻被中断;TX_SRC_RDY_N低电平有效,表示在一帧数据内的有效数据段,有效数据之间自动以空闲序列信号填充,以维持通道的锁定;TX_DST_RDY_N信号低电平有效,表示接收端已准备好接收数据,时钟补偿和TX_SRC_RDY_N无效期间数据传输中断,此时TX_DST_RDY_N无效。Aurora8B/10B IP核用户接口输入端信号时序如图4所示[8]。
进行时钟补偿时数据传输线路被挂起,若在此期间仍发送有效数据会被接收端以空闲序列信号处理。本系统在GTP模块之前建立了先入先出(FIFO)数据缓冲模块,TX_DST_RDY_N信号无效时,将有效数据缓存在FIFO中,直到该信号下降沿触发FIFO模块输出使能,再将帧数据传至GTP模块处理,有效地防止
了高速串行通信过程中数据的丢失。同时,FIFO模块负责视频数据从上位机像素时钟到130M系统时钟的跨时钟域传输,由空、满信号控制数据读写过程,从而消除信号亚稳态。
熊木地,范婷,刘盼,等:基于FPGA的SFP级联视频传输系统设计
图3Aurora8B/10B核用
户接口
图4Aurora8B/10B核用户接口输入端信号时序图
熊木地,范婷,刘盼,等:基于FPGA的SFP级联视频传输系统设计
光纤通信接收端进行数据信号的处理和还原。在Frame_check模块中,数据帧起始信号RX_SOF_N有效到数据帧结束信号RX_EOF_N有效之间为包含了空闲序列的一帧接收数据段。将这一帧中RX_SRC_RD
Y_N信号低电平期间的有效数据段赋值给RX_D。RX_D处理为驱动系统所需的数据格式后即为提供给显示屏的RGB视频数据。Aurora8B/10B 核用户接口输出端信号时序如图5所示[8]。
当系统用于得到全彩实时显示上位机视频时,为了保证显示画面的流畅,系统每秒钟需要处理很大的视频数据量。本系统显示分辨率为1024×768、位宽为24bits的RGB分量数据,显示系统刷新率为60Hz,因此一秒钟需要传输的数据量为1024×768×24×60= 1132462080bits,即1s内需要处理1080Mbits的视频数据。通过设计建立IP核实现光纤传输视频数据的方式,使数据传输速率每秒达到1.3Gbits,满足系统要求,同时保证了数据传输的稳定性,对于整个显示系统的开发来说,极大地降低了光纤传输模块设计难度,缩短了系统开发时间。
3级联方案的设计和实现
3.1级联方案设计
对于Spartan6系列FPGA,1个发送器、1个接收器和1个PLL组成1个GTP通道;2个GTP通道构成1个GTP_DUAL,这2个通道可以运行不同的频率或协议。GTP模块双通道结构如图6所示。
基于节省资源的考虑,本系统将接收端级联来传输更多的数据,级联方式如图7所示。A、B端都为基于FPGA并带有SFP
光模块的控制器。数
据经过处理从控制
器A端光纤高速串
行输出,控制器B1端
将接收数据经FIFO
缓存后平分为份,
第一部分数据用于
当前控制器输出,剩余-1份数据传给第二级控制器即B2端。B2端接收数据后,在B2中留下第二份数据输出,剩余-2份数据再传给第三级控制器B3端。以此类推,直至第级控制器B端将最后一份数据接收完毕并输出。
通过SFP光模块级联,可以使个级联端控制器同时处理数据,利用光纤通信又保证了级联端传输速度。另外每个级联端控制器仅利用FPGA自带的RAM 存储空间,无需外挂存储器就能满足系统需求,结构简单节约成本。
3.2级联的实现
Aurora8B/10B IP核支持单工和全双工的通信方式。本系统在级联时发送端A仅需一根光纤用于单工发送数据,级联接收端B1,B2,…,B-1端接收的同时又要发送(即双工模式),而最后一级控制器B端为单工接收模式,无需再发送数据。经测试发现,Aurora8B/ 10B IP核设为全双工通信方式时,仅利用接收或发送的一个通道,光模块之间无法建立通信;一端单工与一端全双工IP核之间也无法正常传输。若系统直接使用Aurora8B/10B核单工收发器进行级联,则每个级联端控制器在硬件上都需由一个SFP光模块接收端输入数据,再从另一个SFP光模块发送端输出数据。
为在传输更多数据量的同时节约成本,本文利用IP核一个GTP_DUAL里的2个通道:GTP0为单工接收器,GTP1为单工发送器。这2个收发器各自单独工作,传输不同的数据,并共享复位和电源等资源。在实际应用中,Xilinx提供的Aurora IP核如果只例化一个通道,将占用整个硬核资源,造成另外一个通道不能再被使用,致使FPGA资源利用率降低[9]。故本文对IP 核模块进行修改。
首先在级联端通过ISE14.2平台建立Aurora 8B/10B v5.3IP核,参数设置为2Lane,线宽为4byte,线速为1.3G,单工接收数据模式,通道选择GTP_DU⁃AL_X0Y0的GT0。
图5Aurora8B/10B核用户接口输出端信号时序图
图6双通道结构图7级联
结构图
熊木地,范婷,刘盼,等:基于FPGA的SFP级联视频传输系统设计
建立好IP核后在实例工程中添加GTP1通道的单工数据帧发送配置模块frame_gen_ii。在Ipcore_dir 文件夹中到Aurora IP核对应的实例代码auro⁃
ra_module,aurora_module模块实现GTP_DUAL硬核模块功能,是整个逻辑程序的关键,用此部分实例代码替换建立的Aurora IP核,同时添加TX_LL模块以及单工发送相关信号端口配置。此外,将aurora_m
od⁃ule模块里第二条接收通道实例代码rx_auro⁃ra_lane_simplex_v5_ii模块替换成发送通道tx_auro⁃ra_lane_simplex_v5_ii模块。打开gtp_wrapper模块,保留GTP0的RX0相关端口封装,将GTP1的RX1相关端口改成发送通道TX1相关端口及封装。此时GTP_DUAL由2条GTP单工接收通道改成,1条GTP0单工接收通道RX0和1条GTP1单工发送通道TX1。
由于单工接收IP核的数据位宽设为4byte,通道数量为2,建立了2条用于接收的通道,接收数据总位宽为2条通道数据位宽之和(8byte),即64bits。本系统将其中一条接收通道改成发送通道后,需将发送和接收数据位宽分别改成32bits。
经过修改后的aurora_module模块包括以下模块: rx_aurora_lane_simplex_i、tx_aurora_lane_simplex_ii子模块分别处理接收和发送通道初始化、符号生成和解码、错误检测以及全局逻辑所需的一些通道绑定指示符信号的解码;Global_logic_simplex子模块处理通道绑定、通道验证、通道错误管理和空闲生成;rx_ll_i子模块从Aurora通道0接收数据,将其转换为LocalLink 并发送到用户界面;tx_ll_ii子模块将用户数据从Lo⁃calLink接口转换为Aurora数据,然后发送到Aurora 通道1进行传输。
通过修改IP核并管脚约束到SFP光模块中,使其包含2个独立的单工接口,一方面保证了每个SFP光模块接口端既可以发送又可以接收;另一方面保证了发送端口和接收端口互不影响,即使和单工发送或单工接收的光模块通信,只利用其中一个通道,也可以正确传输,不会将光纤通信通道挂起。该设计有效地节约了开发成本和资源,节省了PCB布局空间,使硬件电路设计相对简单,系统通用性更强。
4系统测试
系统测试时,使用实验室自行设计、用于点亮LED智能玻璃显示屏的控制器电路板来传输数据,每块电路板上均包含一个FPGA芯片和一个SFP光模块。我们对系统设计的光纤通信模块进行硬件上的验证和传输数据的采集,级联实物图如图8所示,采用的视频源实验数据显示分辨率为1024×768、位宽为24bits的渐变RGB数据,以每秒60帧的速度播放,在视频中观测流畅。
4.1光模块硬件链路测试
Xilinx提供了用于调试FPGA芯片内高速串行接口比特误码率性能的工具IBERT IP核[10],可以用于实时测量多通道误码率。
本系统在硬件上通过IBERT IP核测试基于FP⁃GA的SFP光模块之间链路的通信质量,误码率最终稳定在10-12左右,满足误码率低于10-10的设计要求,验证了光纤传输模块硬件设计的正确性。IBERT测试结果如图9所示。
4.2ChipScope在线测试
本系统通过ISE14.2平台建立Chipscope在线实时观测光纤通信数据。主要观测用户接口输入输出信
图8级联实物
图9IBERT测试
结果

本文发布于:2024-09-23 16:26:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/441997.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   模块   系统   传输   通道   视频
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议