大容量高速回放系统设计与实现
扫描二维码
随时随地手机看文章
引 言
在过去的几十年里伴随着信息化的推进与无线通信技术的飞速发展,很多新的算法不断被提出。但采用新算法的无线通信设备通常需要消耗大量资源进行外场调试和验证,如果可以获得大量原始数据,那么在实验室环境就可以通过原理样机对算法进行较好的验证和优化。数据回放系统是获取真实环境中不易得到的信号的重要手段,根据文献[1-3] 可知, 回放系统已经在雷达、医疗、电力等领域被大量运用。一般情况下,设备将采集的数据存储于数据回放系统中,然后利用数据回放系统中的数据进行数据分析、算法验证和优化等。为了使无线通信系统的算法能够方便验证和优化,本文设计了一种大容量高速数据回放系统,首先分析了系统的整体架构和工作原理,然后对数据回放系统的硬件和软件进行设计, 最后对系统做出性能评估。
1 系统总体方案
回放系统整机设备示意如图 1 所示。整机设备主要由信号处理系统和数据回放系统组成。数据回放系统和信号处理系统通过 Aurora 高速串行总线和 I2C 总线连接,同时数据回放系统预留以太网接口用于与计算机通信。数据存储和回放指令通过 I2C 总线或者以太网下发给数据回放系统,信号处理系统和计算机分别通过 Aurora 总线和以太网与数据回放系统进行数据传输。
本文设计的数据回放系统硬件架构如图 2 所示,主要由 FPGA单元、存储单元、高速缓存单元、以太网单元等组成。项目选择 XC7K325T-2FFG900 型号的 FPGA芯片作为数据回放系统的核心主控单元,其他高速总线、第三代双倍数据速率同步动态随机存储器(DDR3)和固态硬盘(SSD) 等器件外挂在 FPGA芯片上。对于数据存储过程,外部数据通过 Aurora总线传输到数据回放系统,数据进入接收缓存FIFO,然后被搬移至 DDR3,最后通过 SATA控制器将数据存入 SSD中。数据回放过程 :SATA控制器从 SSD中取数据,将数据缓存到 DDR3,再将数据存入发送缓存 FIFO中,最后通过 Aurora总线回放至信号处理系统或通过以太网回放至本地计算机。
图 2 数据回放系统硬件架构
2 数据回放系统设计
2.1 硬件设计
2.1.1 Aurora接口电路设计
Aurora 总线是 Xilinx 公司开发的一种轻量级点对点链路层协议 [4],与 SRIO和 PCle高速串行总线相比,它具有简洁、开销小、链路数量和速率选择灵活等特点。因此,本文采用一路双向 AuroraX4 总线实现数据回放系统和信号处理系统之间的数据传输。对于系统内部,Aurora总线挂接在FPGA 的 GTX口上 ;对于系统外部,VPX 连接器很好地支持 Aurora 高速串行总线。XC7K325T 型号的 FPGA 的 GTX 接口支持最大速率达 12.5Gbps,VPX 连接器传输速率高达6.25Gbps,单 lane的 Aurora总线速率配置为 5Gbps,因此系统可以适应高速数据的传输。
Rocket I/O 是一种内嵌在 FPGA 内部的高速串行收发器, 可以支持 Aurora,PCIe 等多种通信协议 [5]。本文采用基于高速串行收发器 Rocket I/O 的 Aurora IP 核实现 Aurora 通信。Aurora 传输数据过程如图 3 所示,其中 IP 核配置为流模式传输,通信模式为全双工,单通道速率为 5 Gb/s,输入系统的参考时钟为 125 MHz,用户时钟为 250 MHz,发送和接收数据位宽为 64 bit。物理层进行了 8 B/10 B 编码,因此单通道速率可达 4 Gbps。
2.1.2 以太网接口电路设计
数据回放系统要求通过计算机实现数据导入、导出以及发送控制命令。采用以太网技术的设备可通过 TCP/IP 协议进行数据传输,无需进行传输协议转换,使用和维护设备简单 [6]。系统采用 FPGA 外挂千兆以太网的方案实现计算机和数据回放系统之间的通信。千兆以太网采用全双工模式,传输速率可选 10 Mbps/100 Mbps/1 000 Mbps,接口电气特性遵循 IEEE802.3 标准。
通常,网络传输协议包含 TCP 和 UDP 两种 [7]。为保证数据的高可靠性,系统采用 TCP 协议传输数据。以太网实现框图如图 4 所示,其中网络 PHY 芯片选用 MARVELL 的88E1111 芯片,TCP/IP IP 核通过 Verilog 硬件描述语言实现TCP/IP 协议栈。
2.1.3 高速缓存电路设计
为防止接收的数据丢失,采用 DDR3 对接收的数据进行缓存。本文选用的 DDR3 芯片型号为 MT41K256M16HA- 125IT :E。两片 DDR3 数据位拼接成 32 位用于数据缓存,拼接的 DDR3 接到 FPGA 的高性能 I/O 口 HP 上,最高带宽可达 6 400 MB/s。
FPGA 和 DDR3 的通信通过 Xilinx 公司的 MIG IP 实现。DDR3 的 MIG IP 核包含用户接口模块、存储控制模块和物理层模块 [8]。MIG IP 核通过物理层接口与 DDR3 连接,用户接口与 FPGA 用户逻辑连接,从而实现用户逻辑与 DDR3 的桥接功能。
2.1.4 存储电路设计
SSD 是以 FLASH 代替传统硬盘盘片作为存储介质,使用SATA 系列类型接口的新型存储设备 [9]。SSD 在访问速度、功耗和可靠性等方面相比传统硬盘有着明显优势,因此文本采用 SSD 作为数据存储介质。存储单元采用 4 个标称容量为1 TB 的 mini-SATA(mSATA)接口的固态硬盘来存储信号处理系统采集的数据。mSATA SSD 全部外挂在 FPGA 的 GTX 高速接口上,且 mSATA SSD 与 FPGA 之间的通信采用标准的 SATA3.0 通信协议 [10]。
本文采用图 5 所示的基于 SATA 的存储方案,方案的核心是实现 SATA 3.0 协议。SATA 协议由应用层、传输层、链路层和物理层组成 [11]。应用层主要完成命令的设置 ;传输层将命令层数据封装成 FIS 帧格式的数据帧 ;链路层主要完成数据的 CRC 校验和加解扰处理 ;物理层负责将上层并行数据转换成串行码流并传输出去。本项目首先通过硬核 GTX 构建物理层高速串行收发器和 OOB 信号的检测来实现物理层,然后利用 Verilog 硬件描述语言实现 SATA 3.0 协议的链路层和传输层,最后将上述三层协议封装成 SATA IP 核。项目利用 Xilinx 的 Vivado 软件内建一个 MicroBlaze 软核,将SATA IP 核作为 MicroBlaze 的外设。系统利用 Xilinx 公司提供的 EDK 开发环境将 SATA IP 核挂载到 AXI 总线上,通过这种方式 EDK 便可以灵活定制 MicroBlaze 的外设。
图 5 基于 SATA 的存储方案图
2.2 软件设计
上位 PC 机软件主要包含显示控制程序和通信管理程序。显示控制程序实现人机交互界面,而通信管理程序则负责完成与数据回放系统之间的 TCP/IP 协议通信。本文设计的上位 PC 机软件界面如图 6 所示。
图 6 上位 PC 机软件界面
用户通过上位机软件完成对数据回放系统的管理,具体功能实现如下 :
(1) 显示数据回放系统的硬件状态 ;
(2) 显示实时存储和回放数据的信息状态 ;
(3) 下发存储、回放等指令给数据回放系统 ;
(4) 下发导出、导入数据操作。
3 性能评估
在实验室环境下,回放系统设备上电后实测结果如下 :
(1) 数据回放系统最大存储速度为 1200MB/s,最大回放速度达 1 800 MB/s。根据信号处理系统的 A/D 采样速率和后续基带信号处理的时钟速率,数据回放系统可以自适应降速存储和回放。
(2) 千兆以太网最大导入数据速度约为 98MB/s,最大导出数据速度约为 70 MB/s。
(3) 如果按照 600MB/s的速率存储数据,数据回放系统可以连续存储 2 h 以上。
4 结 语
本文设计了一种大容量高速率的数据回放系统。采用mSATA SSD 盘作为存储介质,Aurora 总线作为数据传输总线,千兆以太网作为数据导入、导出接口。该回放系统体积小、存储容量大、存储和回放速度高、稳定性好。经工程验证, 该系统可以较好地满足整机设备对数据回放的要求。