文献标识码:A
文章编号: 0258-7998(2014)09-0072-03
相控阵雷达是一种多功能、高性能的雷达,具有多功能、多目标、远距离、高数据率、高可靠性及自适应能力强等优点[1]。随着计算机和集成电路等相关技术的发展,相控阵雷达在地基、海基、空基以及天基得到了广泛的应用。随之而来的是,数据记录的速率和容量也需要相应提升。
而近年来存储技术发展得很快,自2001年SATA1.0标准提出,如今SATA接口协议第三代已经达到了6.0 Gb/s[2]。新一代的SSD(Solid State Disk)基于Nand Flash存储技术提供了超过了200 MB/s传输带宽以及更低的功耗[3]。这些都为相控阵雷达的数据高速大容量存储提供了支持。本文针对传统记录回放系统的两种架构,设计并实现了一种通用的记录回放系统,由FPGA控制SATA IP核实现相控阵雷达天线阵面数据的高速存储。
1 问题的提出
传统典型的高速数据记录回放系统一般采用两种架构,即PCIE总线和自定义Flash存储阵列架构。PCIE总线架构框图如图1所示。
CPU模块通过PCIE总线接收采集模块的数据放入内存,然后再经由PCIE总线将内存中的数据送给RAID控制模块,完成一次记录操作。在操作过程中,数据流两次经过内存,采集模块和RAID控制模块共享PCIE总线,两个模块分时通过PCIE总线传输数据。这种架构的记录回放系统有以下缺陷:(1)PCIE对于系统来说,只用到了50%效率;(2)系统记录回放速度受限于PCIE总线的传输速度。
自定义Flash存储阵列架构框图如图2所示。该系统为一个独立模块,把Flash芯片分成多个组,通过扩展Flash的位宽、深度提高记录速度和存储容量。FPGA将数据通过Flash的数据线、地址线存到Flash阵列里。这种架构的记录回放系统有以下缺陷:(1)存储接口不是基于标准的传输存储协议,而且受限于Flash芯片类型,使得系统的通用性与扩展性受限;(2)一般自定义接口规范用于满足某种特定雷达的指标,一旦指标发生变化,或者不能满足雷达系统性能提升的要求,硬件就需要重新设计,造成一定的资源浪费。
2 问题的解决思路
根据以上的对比,可以将两者优点结合起来,提出一种新的记录回放系统结构。最直接的方式就是在自定义Flash存储阵列系统中,选用标准的存储协议接口代替自定义接口。目前,主流的存储协议有IDE、SCSI、SATA等。IDE和SCSI属于并行接口,在高速的数据传输存储中,并行传输的码间串扰等问题会使误码率大大提高,而串行接口协议就很好地解决了这些问题,该协议已经相对成熟;SATA二代支持3 Gb/s的传输带宽,并且其结构简单,易于开发[2]。图3为SATA阵列记录回放系统框图。
本设计中,在FPGA内部实现SATA硬盘的读写操作。为了提高记录回放速度,在FPGA里还实现了RAID0功能,对多个硬盘并行读写。系统的存储容量和记录速度可根据配置硬盘的数量灵活调整,大大增强了通用性和可扩展性。
3 实现
FPGA内部的SATA硬盘控制设计是记录回放系统的核心。系统选用Xilinx公司的Viretx-5的FPGA芯片,芯片型号为XC5VSX50T。芯片内部集成的GTP可以满足SATA2.0协议中要求的3.0 Gb/s的数据传输速率。本系统实现了两路SATA硬盘的并行读写,下面对该设计进行详细阐述。
3.1 SATA硬盘控制
使用SATA IP核实现硬盘的读写操作。IP符合SATA协议要求,采用3层设计,即物理层、链路层和传输层。应用层逻辑开发基于传输层。传输层包含两个接口,控制接口和数据接口。控制接口实现对IP内部的寄存器操作;数据接口采用FIFO技术,为用户提供读写数据通道。应用层对IP核的寄存器进行控制,实现对硬盘的DMA数据传输,表1列出了寄存器的详细信息。
系统采用DMA传输对硬盘进行数据读写。图4给出了应用层中一次DMA操作的流程图。图5和图6分别为在DMA操作过程中寄存器读写和数据传输时序图。
3.2 RAID0控制
为了提高记录回放速度,需要使用多个硬盘组成阵列。本系统在FPGA内部开发了两个硬盘并行读写的RAID0控制功能模块,设计原理如图7所示。通过扩展位宽的方式实现两个硬盘的同步读写。
3.3 数据管理
传统的数据记录回放系统直接以文件形式记录数据,文件形式的数据可以在操作系统下方便灵活地访问,但受到文件系统对文件的管理约束,记录过程中的数据不一定连续存储在硬盘的连续逻辑块地址上[7]。在该记录系统中,数据是顺序存储到硬盘中的,可以在一定程度上提高记录系统的带宽。因此采用了自定义的文件系统,将磁盘的存储空间分为管理区、标识区和数据区。数据区存放实际的数据;管理区存放的是记录的文件的信息,一般包括数据的存储位置信息、长度信息及数据到文件的映射信息;标识区是标记磁盘的空间使用情况。图8为自定义文件系统结构示意图。
该记录回放系统的数据管理可以分为三个步骤,首先要划分好硬盘中管理区、标识区和数据区的容量,构建好文件系统的框架;然后把经过记录的数据顺序地存放在数据区;最后在一个文件记录结束后,把文件的位置、大小、文件的标识符等相关信息添加到管理区和标识区。
在每次记录开始前要先遍历管理区中的标识区,根据标识区的值来获得记录的起始地址。根据系统的设计,记录的数据都是放在数据区的,如果标识区表明数据区为空,那这次记录的起始地址就是数据区的起始地址,一般情况下是要紧接着上一个文件的结束地址来存储。如果数据区被写满,会提示是否要清空磁盘的数据,包括数据区中存储的数据和管理区中存储的文件的相关信息。记录时,数据被顺序存放到数据区。记录结束时,要将文件的信息写到管理区相应的位置,当然管理区也是顺序读写的,同时要更新标识区的标识,以便下次记录时计算数据记录的起始地址。
4 系统性能测试
在对该记录回放系统进行测试时,选用两块Intel 公司的固态硬盘作为存储介质,型号为SSDSA2SH064G1GC,单盘标称的读速率为250 MB/s,写速率为170 MB/s,容量为64 GB,在Xilinx ISE 14.6中的Chip Scope来观察波形。在实际测试中,每个盘一次读写256个扇区,最后测得平均记录速率为292 MB/s,回放速率为340 MB/s。同时经过数据比对,记录回放的数据没有出现错误。图9和图10分别为读写硬盘时的波形图。
针对相控阵雷达天线阵面传统记录回放系统的不足,实现了一种通用性好、集成度高的SATA阵列记录回放系统。系统基于FPGA实现对SATA硬盘的读写,既满足了对数据存储速率带宽的要求,而且不用重新绘制电路板,就可以应用在不同型号的雷达上。本系统实现了RAID0功能,两个硬盘并行读写,平均记录速率为292 MB/s,回放速率为340 MB/s。同时,采用自定义的文件管理系统,结构简单,便于管理。为了实现更高的速率,可以在目前实现的两路硬盘并行读写扩展为8路硬盘同时读写,这也是本文的下一步工作。
参考文献
[1] 胡善清,刘峰,龙腾.相控阵雷达光纤传输系统的设计与实现[J].光通信技术,2006(5):27-30.
[2] 唐纯杰.SATA协议分析及其FPGA实现[D].长沙:湖南大学,2009.
[3] 王超,刘伟,张德聪.基于SATA的嵌入式直接存储系统[J].计算机工程,2012,38(12):232-235.
[4] 王超,刘伟.基于文件系统的高速数据记录系统[J].北京理工大学学报,2010,30(5):543-547.
[5] 张乐峰,徐安林,胡卫东.一种通用的雷达回波记录系统设计方法[J].数据采集与处理,2009(24):272-276.
[6] Xilinx,Inc..Virtex-5 FPGA serial ATA generation 2 protocol standard[Z].2007.
[7] 张昆帆.高速数据采集和存储[J].现代雷达,2004,26(4):14-16.
[8] 周双喜.基于FPGA的高速数据记录系统的研究[D].成都电子科技大学,2010.