Aurora协议的高速传输系统的研究与FPGA实现

2023-07-10 13:21李运袁行猛徐兰天
电子产品世界 2023年6期
关键词:高速率

李运 袁行猛 徐兰天

关键词:Aurora协议;高速率;FPCJA

随着5G技术的不断发展,新一代的通信技术也迎来了发展的高潮。此外,随着智能设备的普及,对数据流量也带来了较大的激增。SG技术的发展对数据传输的实时性要求很苛刻。新一代的通信技术存在大量的研究难题,除了大带宽、高速率以及sub6G数据分析之外,还有微波和毫米波信号分析。SG技术最大的挑战就是随着SG高速率数据传输会导致信号带宽以及基带处理速度都将大幅度的提升,因此对高速的数据实时处理分析就变得越来越有难度[1]。

Xilinx公司的FPGA内部镶嵌了Rocket IO高速串行收发器,从而能够简化光口传输的硬件电路。Aurora协议是Xilinx公司对外免费开放的一个高速光口传输协议,不仅方便了设计者自行添加上层应用,而且能够适配大多数嵌有Rocket IO高速串行收发器的FPGA。FPGA内部携带的IP核可以提供用户接口方便与FIFO接口对接,其他的传输协议需要设计者自行设计GTP接口的逻辑,端口的逻辑设计复杂;与此同时,Aurora IP核在初始化时形成的Aurora传输通道能够满足任何大小的数据帧,并且当传输通道被随意打断时,打断空缺的地方能够自动进行填充,从而达到满足传输过来的不连续信号的要求。本文利用FPGA自带的Aurora协议进行高速光口传输协议设计与实现,并对此方案进行测试。

1系统架构

基于Aurora协议的高速传输系统的结构图如图1所示,该系统主要是实现射频单元与基带处理单元之间的Aurora协议的数据传输链路。结构图中Aurora传输协议是通过Xilinx公司的FPGA自带的IP核实现的,为了能够满足Aurora协议传输的数据要求,设计了数据转换模块,此模块主要作用是传输速率的匹配。在信号的发射端将采集的IQ数据通过数据转换模块将数据转换成满足Aurora协议传输的帧结构和速率;在接收端通过数据转换模块将Aurora协议传输过来的数据恢复成规定的采样速率的连续IQ数据。

2 Aurora协议

2.1 Aurora协议简介

Xilinx公司为了实现高速传输开发了Aurora协议,它是一种可裁剪的轻量级链路层协议,实现方式是通过在相应的器件内部制定相应的IP核。在物理层方面,它提供了透明的接口,将Rocket IO硬核封装到了协议的内部,通过Rocket的并行绑定,从而能够实现数据传输带宽的完美升级。与此同时,Rocket IO硬核不仅能进行上层自定义,还能被工业标准协议采用。Aurora协议运用的是有线连接的通信模式,协议中不仅仅是将物理层接口和数据格式都定义好了,还将时钟校准、初始化等内容也进行了相应的定义。Aurora协议传输方式包括流和帧两种,能满足不同用户的使用。Aurora协议传输结构图如图2所示。

Aurora协议内部有多种不同的编码方式,其中8B/10B和64B/66B两种编码方式最为常用。本文设计主要采用的是64B/66B编码方式。FPGA内部自带的Aurora IP核模块主要功能有:①通道的传输逻辑,主要是负责模块的初始化、GTX和GTH收发器的驱动、错误检测以及处理控制字符的编解码;②提供用户接收接口,将通道传输过来的数据送到用户程序中,从而执行控制能力;⑧提供用户发射接口,将用户程序发送过来的数据传输到通道中,从而执行发送功能。

本设计Aurora数据传输方式选择的为流模式接口设计。该模式接口主要包括复位接口、接收数据信号接口、发送数据信号接口、接收数据信号使能接口、发送数据信号使能接口以及数据准备接口。

2.2 Aurora协议数据传输流程

Aurora协议数据传输方式选择为Streaming模式,在该模式中,Aurora64B/66B通道采用流水线方式处理。此时接口的数据会传输到发射数据接口s_ax_tx_tdata端口,在发送数据有效位s_ax_tx_tvalid无效时,除了数据传输的时钟外,缓存的word之间会产生间隙。当传输数据到达接口的接收端时,需要将数据立刻读取,否则会造成数据丢失。

图3为发送数据传输逻辑图,从图中可以看出在第1个周期时s axi tx tvalid和s_axi_tx_tready均为0,此时表示Aurora IP核和用户逻辑数据传输均没有准备好;等到第2个周期时s_axi_tx_tvalid=0和s axi txtready=1,表示Aurora IP核已经做好了传输数据的准备,等待用户逻辑传输数据;等到第3个周期时s axitx_tvalid=l和s_axi_tx_tready=1,表示用户逻辑传输数据,并且会将需要传输的数据放到了s_axi_tx_tdata总线上,此时数据会从用户逻辑端传输到Aurora IP核端;在位置1的周期内,s_axi_tx_tready信号被拉低,此时的数据是无效的,在位置2的周期内s_axi_tx_tready信号又被拉高,此时的数据是有效的;在位置1的周期内,s_axi_tx_tready信号被拉低,此时的数据是无效的;在位置3的周期内s_axi_tx_tready=1和s_axi_tx_valid=0,此时无数据传输。

图4为接收数据传输逻辑图,从图中可以看出在接收数据时,只要m_axi_rx_tvalid信号有效时,就开始接收数据,当m_axi_rx_tvalid信号无效时,不接收信号。

3数据转换设计

为了满足SG数据传输中30 kHz和60 kHz两种载波间隔的基带数据传输,在接收端和发射端采用了两种采样率即122.88 MHz和245,76 MHz,但是AuroraIP核使用的是245.76 MHz固定的频率进行数据的读入与输出。因此在对于122.88 MHz采样率的数据输入就需要将两个帧的数据进行缓存,然后通过一个245.76MHz的帧时间读出,随之输出一个无效的帧数据,等待下一帧数据的到来。接收端与之一样,等到2个122.88 MHz的有效数据缓存之后再用245.76 MHz的频率输出。

4 Aurora协议JFPGA实现及验证

本研究将对Aurora协议高速传输功能通过FPGA进行实现,并且通过硬件平台来进行功能验证。图5是FPGA硬件开发板,首先介绍一下开发板的性能参数以及它的开发能力,开发板参数如表1所示,开发板的硬件结构图如图5所示。

4.1顶层模块设计

图6和图7给出了设计的顶层核Aurora协议模块的结构,Aurora IP核设置如图8所示。

top:设计的顶层文件;

rxjesd204_Ol_interface_u1:采集模块,将采集到的射频信号转换成245.76 MHz的时钟速率;

rx_sfp_01_interface u1: Aurora协议实现的顶层模块。

4.2测试验证

本设计采用Vivad02018.3软件进行代码编写、编译及上板验证,该开发软件内部集成了大量的RAM、乘法器以及FIFO等常用的IP核,从而能够大大降低了功能的开发难度。数据速率转换模块是将外部的异步速率的信号转换成Aurora核数据时钟的信号。采用Xilinx ku060开发板进行功能仿真验证,使用的FPGA芯片型号为xcku060-ffva1156。通过ILA监测器来观察Aurora协议信号传输功能是否正常。最后通过DSP識别CCCC CCCC数据头将IQ数据传输给算法库进行解调,软件将解调结果显示出来。测试结果如图9和图10所示。

5结束语

本研究主要完成了Aurora协议高速传输系统研究和FPGA实现验证。为了实现射频RF单元和基带BU单元之间的Aurora协议的数据链路,需要将发送和接收的数据格式匹配到Aurora协议的数据格式。数据传输的速率匹配难点主要在于高速处理硬件的实现。为了匹配不同采样率的数据Aurora传输,设计了数据转换模块。经过在Xilinx ku060开发板测试,验证了Aurora协议高速数据传输的正确性,确定了本实现方案的可行性。

猜你喜欢
高速率
LTE技术在城市轨道交通信号系统中的应用探讨
我首次自主研发全套E波段毫米波通信芯片
一种高速背板连接器的设计
一种基于FPGA+DSP的高速串口通信设计
船舶通信导航技术及发展趋势研究
超宽带通信技术及其军事应用前景*
用于数据存储的高速率LDPC码
用于数据存储的高速率LDPC码
基于Chirp扩频的超宽带信号传输性能分析