摘要:设计了一种使用FPGA和ARM计算机配合的嵌入式雷达信号处理点迹系统。详细说明了系统软硬件结构和系统软件设计。实践证明该系统能很好地完成雷达控制、点迹处理、通信等功能。
关键词:FPGA;ARM、QT、点迹处理、通信
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)07-0040-03
Abstract: This paper presents an embedded platform based on FPGA and ARM used inthe radar signal processing plot communication. The system structures are described, and the design of the system software is introduced. The practices prove the system work well in radar control、plot processing and communication.
Key words: FPGA; ARM; QT; plot processing; communication
雷达的基本组成由天馈线、发射、接收、信号处理、波控、终端等分系统构成。信号处理处于前端和后端连接的核心子系统在整个雷达系统具有非常重要的作用。主要完成目标的检测功能,包括:发射波束控制、脉冲压缩、MTD/MTI滤波、恒虚警处理、杂波图、滑窗检测、点迹处理等。
随着现代雷达数字处理能力的大幅提升,雷达信号处理需要处理的输出量日益提高,且大量数据对信息的传输实时性也有很高的要求。除此之外信号处理还要连接控制其他分系统包括时序、控制信号等等。现代雷达信号处理一般采取高速并行处理的FPGA、DSP系统和实时性很高的嵌入式计算机组成。低空预警雷达是针对国内民防领域和国际市场的需求,研制的一种战场侦察雷达。该雷达主要对半径100公里以内的低空直升机和慢速飞行器进行监视、定位,并提供目标的距离、方位和高度信息。针对系统规模较小、成本较低特点,低空预警雷达的信号处理设计了一种FPGA+ARM9架构处理平台。在正常工作模式下,雷达前端传送的和差波束数据通过线缆进入FPGA,在FPGA内完成脉冲压缩、FIR滤波、杂波图、恒虚警、滑窗检测,并将检测结果送入DSP,将得到的点迹数据送给ARM。ARM系统运行嵌入式Linux系统,完成串口连接外部设备,网络接收波控和终端系统命令,驱动FPGA实现对雷达系统的控制,并完成相应数据的通信传输。
1系统硬件平台介绍
1.1整体架构设计
对于低空预警雷达,信号处理需要处理一定量的信号和数据。基于对系统成本,成熟度,开发周期,及信号处理系统的需求考虑,信号处理分系统在可满足处理能力的情况下,通过采用模块化高可靠性插件,高速DSP处理芯片,超大规模可编程逻辑固件,高性能ARM嵌入式计算机等技术,可使系统设备量大大降低,并有效的提高了系统可靠性,降低了失效率,减少了维修时间。系统设计为由一块信号处理板完成信号处理的全部功能,信号处理板的硬件架构如图1所示。
FPGA模块采用ALTERA公司的Stratix IV 型FP4SE360模块,其处理能力等价逻辑单元353600LE,嵌入式存储器达到18Mbit,含1040个18X18乘法器,是具有大量处理能力的较高端FPGA器件,外部存储器采用了4片221x36bits SSRAM 可以满足系统存储使用。DSP使用ADI公司的TS201,主频达500Mhz。ARM采用的是盛博科技的SAM-3471计算机。整个信号处理的系统流程图如图2。
1 .2 ARM系统介绍
上图所示是SAM-3471计算机模块,它采用的是ARM9CPU运行频率208/416Mhz。配有4片 32MB SDRAM内存。具有3个UARTs口、2路232串口、1路100M网口等外部通讯接口。板上预留了音频、LCD、触摸屏等接口可供调试使用。ARM板以总线形式连接FPGA,通过驱动与FPGA通信。
2 软件系统设计
ARM计算机上运行的是嵌入式Linux实时操作系统软件。ARM软件完成的功能是系统上电后,Linux系统启动后完成驱动FPGA,对FPGA寄存器数据进行初始化。通过网络与终端分系统、波控分系统通信。接收各种操作命令控制FPGA完成功能的实现。同时将点迹、方位、系统状态信息发给终端系统显示。采集波束校正数据平发送给波控与终端显示。通过串口接收GPS授时和定北数据,获得基准时间后为整个系统对时等。软件的流程图如图3。
系统软件采用虚拟机VMware下虚拟Ubuntu10.10操作系统,在QtCreator下开发和编译程序。将编译好的程序通过FTP方式拷入ARM嵌入式系统中,通过启动脚本调用的方式调试开发和运行。
2.1嵌入式linux和开发工具QT
ARM操作系统采用的是基于2.6内核的嵌入式Linux操作系统,程序采用QT/Embedded开发。QT是Trontech公司开发的一个多平台的C++图形用户界面应用程序框架。它具有以下特点:
支持多种操作系统,程序可在不同系统下开发,并进行方便的移植。
QT使用了面向对象技术组件设计。模块化的程度非常高,可重用性较好。
QT提供了丰富的API函数和大量的技术文档方便用户开发自己的应用程序。
QT/Embedded以原始Qt为基础,并做了许多出色的调整以适用于嵌入式环境。
2.3 主任务和数据处理的实现
主任务和数据处理主要完成雷达方位的获取,雷达点迹的获取,并将获的相应数据传送到雷达终端中。数据处理主要是包括系统工作方式、雷达频点、转速、雷达工作状态等各种雷达监视和控制功能的实现。程序中创建主任务类CMainProcess,初始化时 调用语句QCoreApplication a(argc, argv)启用QT中信号/槽的机制。在主处理类的构造函数中创建QTimer定时器对象PlotTimer,并设置槽函数PlotTimeoutSlot连接(connect)到此对象上,语句PlotTimer->start启用定时器。槽函数主要完成对FPGA的读写,获得方位、点迹数据,解析处理后发送出去。在设置好的时间周期内系统会自动调用此槽函数。实现点迹、方位的不停读取和处理。
数据处理是通过创建一个QObject的派生类CDataProcess及其成员函数实现的。在主函数初始化中定义CDataProcess类对象。该类的成员函数完成的功能有:调用FPGA完成雷达系统的的控制、完成终端命令数据的处理、GPS定位数据格式的解析处理和发送、雷达天线伺服的控制等等。程序其他的对象对数据的处理均是调用该类的函数实现的。
2.4 串口通讯的实现
系统使用了一个串口,用于接收GPS时间数据,给整个雷达对时。创建一个QThread的派生类QtSerialThread完成整个串口的操作。对于函数tcgetattr、tcsetattr完成串口设备的操作
。程序初始化时通过串口设置参数、串口数据缓存操作、打开串口设备文件、配置串口的工作参数的方式初始化串口。编写串口发送和接收函数。串口接收函数用于按照协议接收GPS数据。并将此接收的数据作为参数产生一个信号和数据处理的相应处理槽函数connect连接起来。创建串口处理线程,使用QThread的start()函数运行线程。在线程运行函数run()中循环接收和处理串口数据。
2.5 网络通讯的实现
系统使用UDP的方式进行网络通信。网络通信主要实现网络的创建,并与其他的分系统进行数据交互。主要是通过创建一个UDP处理类UDPReciveUtil,创建一个类TsServerProcess和创建一个QThread的派生类ThreadOfTsData类和完成整个网络功能的实现。程序启动后产生类ThreadOfTsData的对象产生网络线程。在线程初始化时使用类UDPReciveUtil产生UDP Socket并进行ip地址和端口号的绑定。线程运行时使用QT的QUdpSocket成员函数hasPendingDatagrams和readDatagram得到网络数据。将数据通过类TsServerProcess进行网络数据协议的解析和相应处理,发送等。
2.6 程序的编译和加载
将产生的可执行程序,用FTP方式拷到目标机中,同时将QT库文件libQtNetwork.so.4、libQtCore.so.4拷入。在profile文件里添加程序运行语句,使系统程序开机后自动运行。
3 总结
本文设计了一种通过FPGA和ARM系统实现雷达通信系统的方式,通过编程工具QT使通信系统具备网络、串口等多线程处理方式。借助FPGA实现了雷达点迹、方位、系统监控等多种功能。由于采用ARM平台和Linux系统。雷达通信系统具有实时性高、开发便捷,处理功能强大的优点。目前该系统已在低空警戒雷达信号处理实际使用,取得了较好的效果。
参考文献:
[1] 丁鹭飞,耿富录.雷达原理[M].西安:西安电子科技大学出版社,2001.
[2] 魏洪星,胡亮,曲学楼.嵌入式系统设计与实例开发实验教材II [M].北京:清华大学出版社, 2005.
[3] 韦东山.嵌入式 Linux 应用开发完全手册[M].北京:人民邮电出版社,2009.
[4] 李善平,刘文峰,王焕龙,等.Linux与嵌入式系统[M].北京:清华大学出版社,2003.
[5] 何子述,夏威.现代数字信号处理及其应用[M].北京:清华大学出版社,2009.
[6] 陈馄,陈云秋,刘信新.基于Qt/Embedded的嵌入式Linux应用程序的设计[J].计算机与数字工程,2009,37(1):156-161.