在超高速数据收集方面,FPGA(现场可编程门阵列)有着单片机和DSP所无法比拟的优势。FPGA时钟频率高,内部时延小,现在器材的最高作业频率可达300MHz;硬件资源丰富,单片集成的可用门数达1000万门;悉数操控逻辑由硬件资源完结,速度快,效率高;组成方法灵敏,可以集成外围操控、译码和接口电路。
实时流盘一直是数据收集技能的最大瓶颈,它直接限制了收集存储设备的实时存储才能。为此,可考虑运用多个硬盘组成RAID阵列(廉价冗余磁盘阵列)。RAID的初衷首要是为大型服务器供给高端的存储功用和冗余的数据安全。RAIID把多块独立的硬盘(物理硬盘)按不同方法组合起来构成一个硬盘组(逻辑硬盘),然后供给比单个硬盘更高的存储功用,供给冗余的技能。
1 总体计划
本文规划并完结了一种超高速的雷达信号收集存储体系,其作业原理框图如图1所示。
本体系选用服务器作为收集主控设备,运用多个硬盘组成磁盘阵列作为存储设备。从曾经的运用状况看,在一般主板上集成RAID操控器,选用IDE硬盘组成RAID0阵列状况下,硬盘阵列实测的读写速度可达40MB/s;在运用SCSI硬盘和Adaptec公司的RAID卡状况下,实测速度可达70 MB/s;在运用SATA硬盘和3WARE公司的RAID卡状况下,实测速度可达150 MB/s,且最新的SATA硬盘容量大、价格便宜;若选用12个160GB的SATA硬盘,则容量能到达惊人的1920GB。不管从仍是从价格上,选用SATA硬盘组成SATA RAID磁盘阵列都是一种比较抱负的挑选。
因为选用64位/66MHz接口的PCI卡,其总线数据传输速率为一般32位/33 MB/s接口的PCI卡的四倍,总速率可高达538 MB/s。此计划比较合适超高速雷达信号的实时收集与实时存盘,选用RAID磁盘阵列后流盘速度得到了较大的进步,显着改进了数据传输与数据存盘之间速度不匹配这一瓶颈问题。
2 硬件规划
体系硬件总体规划考虑到体系的通用性、可扩展性以及数据传输、终端处理的需求,选用经过64位/66MHz的PIC部分总线与主机(服务器)进行实时数据交换,有利于完结体系的模块化规划和集成,进步了数据的灵敏处理才能。PCI插卡实践硬件结构如图2所示。
FPGA选用Xilinx(赛灵思)公司的10万门FPGA芯片XC2S100E,其装备芯片的Xilinx公司的1Mbits容量PROM芯片XC18V01,以自动串行方法对FPGA进行上电装备。AD、DA分别为ADI(模仿仪器)公司12位高速模数转化芯片AD9224与14位高速数模转化芯片AD9764。SRAM选用Cypress Semiconductor(塞普拉斯半导体)公司的256K×16bits SRAM芯片CY7C1041。
规划中运用FPGA完结64位/MHz的PCI接口逻辑,进行实时信号收集和传输操控。因为FPGA具有层次化的存储器体系,其根本逻辑功用埠可以装备成16×1、16×2或32×1的同步RAM,或16×1的双端口同步RAM,因而可以在FPGA内部装备高双口RAM作为信号传输的数据缓冲器。一起,为了节约FPGA的内部逻辑资源,在FPGA外围装备了恰当的SRAM用来存储数据。
3 软件规划
3.1 FPGA程序规划
3.1.1 FPGA内部功用模块剖析
FPGA内置多个功用部件,首要包含雷达信号收集操控模块与PCI接口逻辑模块。FPGA内部功用组成原理图如图3所示。
FPGA作为体系总的操控纽带,参加了体系详细任务的完结。内部功用模块的作业进程为:首要收集操控模块经过对AD转化电路的时序操控将雷达视频信号转化成数字信号并暂存于FPGA内部双口RAM中,然后再将双口RAM中的数据经过PCI接口逻辑模块送往计算机。
3.1.2 收集操控模块程序规划
本体系要求可以在一般显现器上对收集的雷达视频回波信号进行长期的实时显现。一起在显现进程中,可对恣意区域设置收集方位和间隔波门,将收集的数据实时存储在磁盘阵列上。体系作业流程如图4所示。
收集卡与计算机之间的数据交换以FPGA内部装备的高速双口RAM作为数据传输的缓冲器,选用两片双口RAM乒乓切换的方法进行数据传输。详细方法为:在FGPA内部装备两片8K×32bits的双口RAM,收集开端时,将收集数据往榜首片双口RAM中写,当榜首片双口RAM写满时,收集操控模块发生乒乓切换信号,数据自动存入第二片双口RAM中,一起以DMA方法将榜首片双口RAM中的收集数据传送给计算机,如此轮换替换。这样DMA传输和接纳A/D数据可以一起进行,而DMA的速率远大于A/D收集速率,然后有用地防止数据丢掉。
3.1.3 PCI接口逻辑模块程序规划
为了完结PCI总线各操控信号间的时序联系,可以依据详细的买卖规划相应的状态机。以方针设备I/O写为例:当帧有用信号(FRAME#)有用(低电平)时标志着一次买卖的开端,C/BE#[3:0]为“0011”标明此买卖为I/O写,一起AD[63:0]上的数据为此次买卖的I/O地址。假如此I/O地址与设备装备寄存器中I/O基地址寄存器(Base Address Register)的值相同,方针设备经过使DESEL#有用来声时这次买卖。作为主设备,在FRAME#、I/O地址和C/BE#有用后在AD[63:0]上驱动要传输的数据、在C/BE#上驱动字节使能、一起使能方针准备好信号IRDY#,直到检测到方针设备有用的DRDY#信号,此次买卖中的主设备和方针设备中止驱动各种信号。而方针设备在准备好接纳数据后就可以使能DRDY#,尔后方针设备检测到IRDY#时可以依据详细的字节使能C/BE#[3:0]将AD[63:0]总线上的数据进行锁存,然后完结整个买卖。此买卖的状态图如图5所示。
本体系运用VHDL编程在FPGA中完结了64位/66MHz的PCI接口逻辑,其间完结的功用包含:装备空间读写、方针设备I/O映射与内存映射端口读写和主设备DMA操控。实践调试中,DMA传输的瞬时传输速率可达132Mbps,其接连传输速率也可达100 Mbps。
3.3 驱动程序规划
3.2.1 DriverWorks生成驱动程序结构
NuMega公司的Driver Studio是一套为简化Windows运用程序和设备驱动程序的开发、调试及测验工具包。其间有WDM和WINNT的驱动程序开发软件DriverWin9X(Windows95和Windows98)的虚拟设备驱动程序(VxD)的VtoolsD。
DriverWorks以面向方针(OOP)的方法,将编写WDM及WINNT驱动程序所需的对内核形式拜访及硬件的拜访封装成类。DriverWorks是依据VC++的,它生成规范的VC工程,只要将所建的工程在VC下编译,就可以生成终究的设备驱动程序。
3.2.2 VC++二次开发设备驱动程序
DriverWorks导游生成了两个类:一个是设备驱动程序类,另一个是设备方针类。驱动程序类首要完结WDM的DriverEntry和AddDevice例程。设备方针类便是与硬件对应的功用设备方针(FDO)类,与硬件交互的例程都是针对此类的。
DriverWorks生成驱动程序结构,依据详细功用,用户还需在VC++工程下增加自己的代码。常用的功用有:IO映射端口拜访、内存映射端口拜访和中止处理。DriverWorks将编写WDM驱动程序所需的对内核形式拜访及硬件的拜访封装成类,其间,KpciConfiguration类用于完结对PCI设备装备空间的拜访,KioRange类用于完结对I/O映射端口的拜访,KmemoryRange类用于完结对内存映射端口的拜访,KdmaAdapter、KdmaTransfer和KcommonDmaBuffer类用于完结DMA操作,Kinterrupt类用于完结中止处理操作。
3.3 运用程序规划
3.3.1 运用程序与驱动程序之间的通讯
在Windows中,运用程序完结与WDM通讯的进程是:运用程序先用CreateFile函数翻开设备,然后用DeviclIoControl与WDM两种状况,当运用程序退出时,用CloseHandle封闭设备。
驱动程序有时需求自动告诉上层运用程序履行某个操作,以完结硬件呼应的实时性。这可以经过在运用程序中创立一个事情,将该事情句柄放入输入缓冲区中,经过函数DeviceIoControl传给驱动程序,并创立一个线程来守候该事情被激活。
3.3.2用户界面程序规划
用户程序首要完结雷达视频信号的收集参数设置、收集数据的实时显现和实时存盘。收集作业进程如下:首要经过用户程序对收集参数进行设置并经过计算机PCI接口发往PCI卡的FPGA中,FPGA则依据这些参数操控雷达视频信号的收集;然后用户可以点击“开端”按钮发动收集进程,可以在P显和A显坐标下调查收集的方针回波信号,一起将收集的雷达回波数据以二进制格局实时保存在磁盘阵列上,供Matlab等软件进一步剖析运用。
现在,本体系已对某型舰载戒备查找雷达成功地进行了实践外场数据收集。图6为P显和A显坐标下收集到的实在雷达视频回波信号。试验标明这个体系彻底满意所提出的方针要求,可以做到大容量高速接连收集,且安稳牢靠,测得的数据可以实在地反映方针与环境的特性,可用于查验各种方针检测、辨认、盯梢算法。
本体系可用于超高速雷达信号处理机中,运用大容量FPGA可直接对AD转化后的雷达中频信号进行高速实时处理,处理结果可经过PCI总线高速传输到计算机内存中,一起运用高速、大容量磁盘阵列进行实时的海量数据存盘。
责任修改:gt