摘要:采用服务器作为采集主控设备,利用多个硬盘组成磁 盘阵列作为存储设备,并制作了一块基于FPGA的超高速雷达信号采集PCI卡。系统以FPGA为采集的核心控制芯片,并在FPGA内部实现了64位/66MHz的PCI接口逻辑,无需专用接口芯片,简化了电路板设计,提高了系统的灵活性。该系统数据传输总速率可高达528MB/s,实时流盘速度可达150MB/s,存储容量可扩展至1000GB以上。
关键词:FPGA 超高速 实时 数据采集 数据存储
在超高速数据采集方面,FPGA(现场可编程门阵列)有着单片机和DSP所无法比拟的优势。FPGA时钟频率高,内部时延小,目前器件的最高工作频率可达300MHz;硬件资源丰富,单片集成的可用门数达1000万门;全部控制逻辑由硬件资源完成,速度快,效率高;组成形式灵活,可以集成外围控制、译码和接口电路。
实时流盘一直是数据采集技术的最大瓶颈,它直接制约了采集存储设备的实时存储能力。为此,可考虑利用多个硬盘组成RAID阵列(廉价冗余磁盘阵列)[1-2]。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%26;#215;16bits SRAM芯片CY7C1041。
设计中利用FPGA实现64位/MHz的PCI接口逻辑,进行实时信号采集和传输控制。由于FPGA具有层次化的存储器系统,其基本逻辑功能埠可以配置成16%26;#215;1、16%26;#215;2或32%26;#215;1的同步RAM,或16%26;#215;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乒乓切换的方式进行数据传输[3]。具体方法为:在FGPA内部配置两片8K%26;#215;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]总线上的数据进行锁存,从而完成整个交易[4]。此交易的状态图如图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总线高速传输到计算机内存中,同时利用高速、大容量磁盘阵列进行实时的海量数据存盘。
引用地址:基于FPGA的超高速雷达住处实时采集存储系统
上一篇:基于CPLD的三相多波形函数发生器设计
下一篇:某探测器测试与信号处理系统的PCM信息采集
- 热门资源推荐
- 热门放大器推荐
小广播
热门活动
换一批
更多
最新应用文章
更多精选电路图
更多热门文章
更多每日新闻
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况
更多往期活动
- 【赠书100%有礼】一本书教你如何开发测试系统,深入了解数据采集系统
- 学C2000精品课程,低价抢购 C2000 LaunchPad!
- ADI有奖下载活动之9 电机控制解决方案—伺服控制
- 畅游安富利人工智能云会展,挑战60天打卡学习养成记!冲击华为Mate40 Pro、Apple iPad Air等豪礼啦!
- 【投票跟帖有礼】原厂的翻新仪器怼市场上的二手仪器,你顶谁?
- 2009 EEWORLD 年度人物大评选活动评奖揭晓
- 答题抽奖:Mentor Tessent Automotive相关测试解决方案(奖品池还剩不少奖品哟)
- 有奖直播|罗彻斯特电子半导体全周期解决方案 助您应对供应链中断和元器件停产的挑战
11月17日历史上的今天
厂商技术中心