APP下载

基于FPGA和NiosⅡ的船用雷达数据采集存储与验证

2016-01-29陆海林唐伟伟葛俊祥

关键词:数据存储

陆海林, 唐伟伟, 葛俊祥

(南京信息工程大学 江苏省气象传感网技术工程中心,江苏 南京 210044)



基于FPGA和NiosⅡ的船用雷达数据采集存储与验证

陆海林,唐伟伟,葛俊祥

(南京信息工程大学 江苏省气象传感网技术工程中心,江苏 南京210044)

摘要:在雷达系统开发初期阶段,需要验证整个系统中采用的各种数据处理算法的可行性和正确性,在该过程中,由雷达采集的原始数据是必不可少的重要条件。文章研究了基于现场可编程门阵列(field-programmable gate array, FPGA)和NiosⅡ的船用雷达的数据采集存储与验证,利用已有的A/D采样电路和Verilog硬件描述语言(hardware description language,HDL),通过编写相关功能模块实现对数据采集的控制,同时结合NiosⅡ实现了数据的存储与提取,并对数据进行了验证。仿真结果表明,采集的数据能够实现正确的缓存与输出;测试结果表明,该数据存储系统可应用于对实际的雷达采集数据的正确存储。

关键词:数据存储;现场可编程门阵列;NiosⅡ软核处理器;Verilog 硬件描述语言

船舶导航雷达用于航行避让、定位及引航等,在能见度较低时,能够提供必要的观察手段,是航海技术发展的重要里程碑。目前,国际上生产小型船舶导航雷达的公司很多,如日本Furuno公司、英国Kelvin Hughes公司、美国Raytheon公司和德国STN Atlas Elektronik公司[1]。国内许多厂家也在积极开展小型船舶导航雷达的研制,如上海广电通信技术有限公司、大连辽无二电器有限公司、上海智森航海电子科技有限公司等,但由于系统设计、器件加工工艺以及算法实现等方面还存在问题,最终推出的产品基本都是日本产品的模仿机或国内组装机,无法替代国外产品,导致市场占有率很低,因此,推出具有自主知识产权的雷达很有必要。

雷达性能的好坏是自主研发的雷达能否取代国外产品的关键因素之一。雷达性能优良最主要的体现是对目标清晰准确的反馈,从而实现避让、定位与引航,这不仅取决于雷达的各部分硬件的设计,同时由于杂波噪声的存在,雷达系统中的各种数据处理算法也是非常重要的。就船舶导航雷达而言,除了必要的累积对消等算法外,海杂波对消算法、同频干扰抑制算法等的正确使用对于雷达性能的提高起到非常关键的作用。只有验证了数据处理算法的正确性,才能将该算法应用于实际的系统中,因此,采集存储原始数据用于算法的验证已成为新型雷达研制中一项必不可少的工作。

近年来,现场可编程门阵列(field-programmable gate array, FPGA)以器件速度快、密度高、功耗低及可配置性强等优点被广泛应用,包括数据存储。硬件描述语言(hardware description language, HDL)的出现使基于FPGA的电路设计更加方便、快捷,能够在很大程度上缩短产品开发周期和成本。目前,国内外有关FPGA在数据存储方面的研究已有很多,如使用FPGA控制先入先出队列(first input first output, FIFO),使数据流匹配电子集成驱动器(integrated drive electronics,IDE)硬盘的存储速率,从而实现数据实时存储到硬盘[2],或者是以FPGA作为控制器,Flash Memory作为主存储器的大容量高速存储系统方案[3]等,这些方案虽然能够满足数据存储的要求,但并不能完全应用在各种情况下,如在雷达内部有限的空间中加入外部扩展的IDE硬盘进行实时存储是不可行的,因此,需要设计新的方案以满足实际应用的要求。

为了正确采集和存储算法验证所需的原始数据,同时不改动雷达内部硬件,笔者参考相关文献的设计方法,并结合自主研发雷达的实际情况,提出了基于Verilog HDL[4]语言、FPGA芯片以及FPGA开发板自带的同步动态随机存储器(synchronous dynamic random access memory, SDRAM)芯片,结合NiosⅡ原始数据的采集与存储方案,用于实现数据的正确存储,并将最终的模块整合到雷达系统中,应用于研发中的小型船舶导航雷达。

1系统结构设计

数据存储系统的结构如图1所示。

图1 数据存储系统结构图

船舶雷达在发射脉冲后,经过一段时间,接收机采集数据,经过A/D转换电路,将采集到的模拟信号数据转换成8位二进制数字信号,通过A/D数据格式转换模块,加入方位、距离等信息,输出32位二进制数据,进入到FIFO缓存模块中,然后通过FIFO控制器将数据存入软核内定义的FIFO中,在信号处理机工作时间内,由NiosⅡ嵌入式处理器控制软核,将数据存入SDRAM中,同时由于软核的控制程序也在SDRAM中运行,因此,在数据存储过程中不能进行对雷达的控制,必须等到SDRAM设定的存储空间存满后,才能通过用户数据报协议(user datagram protocol,UDP),利用以太网接口,将数据发送到PC机上的终端控制部分,在传输过程中加入循环冗余码校验(cyclical redundancy check,CRC)以保证数据的正确性,最终保存为txt数据文件。该数据存储系统解决了FPGA与网卡数据通信时传输速度慢的情况下,数据直接上传过程中,传输数据量大引起的FIFO溢出会导致大量回波数据丢失。利用SDRAM作为缓冲,在存满后完整将数据上传,可以避免上述问题。

2各功能模块的设计

2.1 A/D转换电路

本团队自主研发的船用雷达原理性样机采用单脉冲、非相参体制。在雷达脉冲发射完成后,间隔一段时间进行采样,回波数据为模拟信号,而后续的数据处理在FPGA中进行,因此需要通过A/D转换模块将模拟信号变成数字信号[5]。该模块为前期自主设计,其电路原理见文献[6]。

2.2 A/D数据格式转换模块设计

作为海杂波对消算法验证的原始数据,不仅仅是回波数据本身,还需要加入诸如方位、距离等信息,因此在回波数据输入到FIFO缓存模块之前,需要对数据做预处理,进行数据格式的转换。

A/D数据格式转换模块的主要功能在于为数据的解读提供固定的数据格式,因此在8位回波数据进入该模块后,生成32位的预处理数据,预处理数据格式为:方位12 bit, 距离12 bit,回波8 bit。

2.3 FIFO控制器设计

FIFO是一种先进先出的数据缓存器,一般用于不同时钟域之间的数据传输。本文采用数据缓存的目的是实现数据传输速率的匹配,提高传输速度,同时实现数据格式的正确转换。

本模块所使用的FIFO是由ALTERA公司开发的Quartus Ⅱ软件直接生成的,本文的主要工作在于设计FIFO模块的控制器。

为了有效地控制FIFO的写入与读出操作以及数据能够正确地存储和传输到FPGA软核部分,本文参考相关文献,并结合实际的需要,最终设计FIFO控制器[7-8],控制器的实际工作流程如图2所示。

图2中的船首信号主要是用于确定起始方位,发射完成信号用于计数1圈内的脉冲个数,从而得到每个脉冲发射所对应的方位角,ADC使能就是AD采样是否开始的标志。图2中,读取FIFO中的数据时还需要判断FIFO是否为空,若为空,则读使能信号输入低电平。

图2 FIFO控制器工作流程图

2.4 NiosⅡ软核处理器设计

2.4.1软核处理器简介

ALTERA推出的NiosⅡ软核处理器是一款通用精简指令集计算机(reduced instruction set computer,RISC)结构的CPU,定位于广泛的嵌入式应用。NiosⅡ系列处理器包括快速的(NiosⅡ/F)、经济的(Nios/E)和标准的(Nios/S)内核,每种处理器都针对不同的性能范围和成本进行优化。这3种处理器的核均采用相同的32位指令集架构(instruction set arithitecture,ISA),100%的二进制代码兼容;使用业界领先的设计软件——ALTERA的QuartusⅡ软件SOPC Bulider工具,可以将NiosⅡ处理器嵌入到系统中,从而设计出专用的处理器系统。

2.4.2软核处理器具体设计

为了完成数据的存储与读取,在NiosⅡ软核处理器设计部分,首先通过SOPC Bulider构建系统的软核部分[9],然后以C语言作为基础语言,在NiosⅡ设计软件中实现软核部分的控制功能。

系统等待软核初始化完成后,判断软核外部FIFO的读使能信号是否为高电平。若为高电平,则将数据输入软核内部的FIFO中,反之,无数据进入;然后系统判断内部FIFO是否为空,若非空,则将数据输入到SDRAM中,反之,则无数据存入;不断重复上述过程直至SDRAM设定存储空间存满,系统处于等待状态,此时,通过UDP利用以太网接口,将数据上传至PC机上,并保存为txt数据文件,同时在下次存储数据之前将SDRAM清空。传输过程之所以采用UDP是为了满足雷达显示的及时性要求,同时也是由于丢失少量数据包对实际的算法验证影响不大。

3结果与分析

3.1 Modelsim仿真结果

通过Modelsim仿真软件对FIFO缓存模块进行了功能仿真,其仿真结果如图3所示。

Range设置为11,表示远量程。Rec表示ADC使能阶段,该过程用于采集数据,将数据写入FIFO内。AD-in模拟的是8位回波数据,进过预处理后产生AD-out,由于实际读取数据和仿真有所不同,因此,AD-out的数据应该由低位向高位解读,以A5A34200为例,正确的解读方式是0042A3A5,其中,004表示方位;2A3表示采样点数;A5表示模拟的回波数据,这些数均为16进制数。

从图3可以看出,在单次采样过程中,方位不变,采样个数递增,而且因为模拟产生的是递增数据,所以回波数据也是递增;另外Done信号表示发射完成信号,会产生55AADDFF的十六进制数作为标志用于解读,该结果表明,采集的数据能够实现正确的缓存与输出。

图3 Modelsim局部放大仿真结果

3.2 实际测试结果

将数据存储系统完整地加入到船舶雷达中进行外场数据采集测试,其实际结果如图4所示。

图4 外场测试结果

从图4可看出,每圈的起始位(即船首信号的标志位FFFFFFFF)可以正常产生,同时发射完成的标志位55AADDFF也能够正常导入采集的数据中间,之后的数据可按照A/D数据格式转换模块所设计的数据格式进行解读,完全符合海杂波对消的数据要求。

3.3 数据验证

对于存储的数据,需要进行正确性验证才能用于实际的算法验证。最佳的验证方法是将采集的数据进行成像处理,然后与古野船舶导航雷达实测采集的图像进行对比。因此,通过修改软核与界面终端的程序,将采集的数据进行处理,提取其中的回波数据,并通过修改门限,去除部分噪声,然后,以船首信号的标志位FFFFFFFF作为画图的开始,以发射完成的标志位55AADDFF作为每一帧数据的帧头,将采集的数据生成一幅BMP位图上传到终端进行显示。

本文研发的雷达采集存储的数据成像图以及古野船舶导航雷达图像对比如图5、图6所示。

从图5、图6可看出,2种成像都能够正确获取到实际的目标位置,但相比之下,国外雷达所获取的目标较为清晰,由于硬件指标基本相同,因此主要的原因是国外成品雷达中的数据处理算法含有海杂波对消和增益控制等,能够有效地抑制各种杂波及噪声的干扰,而本文的雷达目前只有简单的门限控制系统,数据处理算法还处于研究阶段,需要数据验证其可行性与正确性,因此尚未加入海杂波对消、同频干扰抑制、增益控制等数据处理算法,仍受到杂波、噪声等的影响。主要的解决方法是在今后的雷达系统中加入以上数据处理算法,进一步提高雷达对噪声、干扰和杂波的抑制能力。本实验中存储的数据正是为此而准备的。

图5 存储数据的成像图

图6 古野雷达成像图

4结束语

本文提出了一种在不改动内部硬件的情况下,利用FPGA开发板现有资源,实现数据正确存储的方案,并予以验证。解决了由于FPGA与网卡通信时传输速度慢、数据传输量大而导致的大量回波数据丢失的问题。该方案设计成本低、易实现,同时在不同情况下易于修改并应用。由仿真结果及实际外场测试采集的数据可以看出,本文所设计的数据存储系统存储的数据满足用于解读的数据格式,并且数据并未有大量的丢失,连续性和总体完整性符合要求,同时对2部雷达的实际成像图进行对比与分析,可以看出本文存储的数据总体上是正确的,能够用于实际的算法验证。本文所设计的系统可根据不同的发射时序和采样周期做调整,修改程序,移植到不同的脉冲雷达系统中。

[参考文献]

[1]大卫.小型船用雷达[J].航海科技动态,1996(7):3-15.

[2]于祥凤,刘学斌,胡炳樑,等.基于FPGA的高速数据存储系统中FIFO控制的设计[J].核电子学与探测技术,2010,30(1):59-62.

[3]蒲南江,张娟娟,吴黎慧,等.基于SOPC的大容量高速数据存储系统设计[J].电子测试,2011,7(7):86-89.

[4]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2011:10-145.

[5]万智萍.基于FPGA的数据采集及传输系统的设计[J].计算机与现代化,2012,38(5):134-136.

[6]葛俊祥,潘安,马志强,等.船舶导航雷达大动态范围中频数字化模块:中国,201320044573[P].2013-09-04.

[7]陈立万,黄青龙,刘万里.基于FPGA的数据采集系统的设计[J].合肥工业大学学报:自然科学版,2011,34(3):359-362.

[8]夏传红,王祖强,李秀娟. 基于Verilog HDL语言的32X8 FIFO设计[J].计算机技术与应用,2005(2):54-56.

[9]马建国,孟宪元.FPGA现代数字系统设计[M].北京:清华大学出版社,2010:291-330.

(责任编辑闫杏丽)

钱德玲(1956-),女,安徽安庆人,博士, 合肥工业大学教授,博士生导师.

Data collection and storage and validation of marine

navigation radar based on FPGA and NiosⅡ

LU Hai-lin,TANG Wei-wei, GE Jun-xiang

(Jiangsu Technology and Engineering Center of Meteorological Sensor Network, Nanjing University of Information Science and Technology, Nanjing 210044, China)

Abstract:In the early stages of the radar system development, the feasibility and correctness of a variety of data processing algorithms used in the whole system should be verified. The indispensable important condition in this process is the original data gathered by the radar. This paper mainly focuses on the data collection and storage and validation of marine navigation radar based on field-programmable gate array(FPGA) and NiosⅡ. Based on the existing A/D sampling circuit and taking Verilog hardware description language(HDL) as hardware description language, the control of data acquisition is implemented by writing the function modules. And the data storage and extraction are made based on NiosⅡ, and the data are verified. The simulation results show that the cache and output of the data gathered by radar can be realized correctly. The test results indicate that this data storage system can be applied to the actual storage of the data collected by radar.

Key words:data storage; field-programmable gate array(FPGA); NiosⅡ; Verilog hardware description language(HDL)

doi:10.3969/j.issn.1003-5060.2015.11.015

作者简介:张波(1990-),男,河南信阳人,合肥工业大学硕士生;

基金项目:国家自然科学基金资助项目(51378168); 中央高校基本科研业务费专项资金资助项目(2012HGZY0024)

收稿日期:2014-10-23;修回日期:2014-11-30

中图分类号:TN959

文献标识码:A

文章编号:1003-5060(2015)11-1508-05

猜你喜欢

数据存储
简单的数据修复
大数据时代档案信息建设的认识和实践
开源数据库数据存储的实现路径分析
基于Android开发的APP数据存储研究
哈希算法在物联网数据存储中的应用
空难事故跨媒体信息采集与检索方法的研究
基于STM32的AD采集与SD卡数据存储
浅谈信息系统工程和POJO模型组件开发
基于MongoDB的调查决策系统数据存储方案设计
大型在线式UPS及监控系统在中控机房的应用