基于SOPC的雷达采集和图像显示系统
扫描二维码
随时随地手机看文章
1前言
雷达数据采集及图像显示是雷达的一个基本应用,普遍应用于军事、气象预测、环境监测、船舶导航等领域。雷达数据具有实时性、高速性的特点。一般说来,对雷达信号采样的时钟频率在100MHz以上,雷达数据采集和处理单元的数据吞吐量要求在Gbits/s以上。因此,要实现一个雷达数据采集和图像显示系统,对处理器的处理速度要求很高。传统的雷达数据采集和图像显示系统采用的是微处理器+FPGA(或DSP)方案,利用微处理器实现操作系统、雷达GUI和显示器控制,利用FPGA(或DSP)实现高速雷达数据采集和处理,这种方案的缺点是要想实现雷达图像在800*600以上分辨率的大屏幕显示比较困难,要么有较高的处理器速度,要么有独立显卡的支持,这样增加了系统复杂度和成本。
SOPC 是一种特殊的片上系统,建立在可编程逻辑技术的基础上,尽可能将一个大而完整的电子系统实现在一块FPGA硅片上,具有硬件可裁剪、可扩充、可升级,软件在系统可编程的特点,使得设计的系统在规模、功能、体积、性能、上市周期、开发成本等方面有着了很大的优势。基于SOPC技术的软核处理器主频虽然不是很高,目前Xilinx公司的microblaze处理器最高主频为210MHz、240DMIPS的运算能力,Altera公司的NIOS II处理器最高主频为340MHz、290DMIPS的运算能力,但是由于其极强的灵活性,可以通过软硬件协同设计,在处理器速度不高的情况下,解决需要高速度处理器才能完成的问题。
本文基于SOPC技术,提出一种在主频较低的软核处理器上实现雷达数据采集和图像大屏幕显示的方法。
2总体方案设计
本设计采用microblaze软核处理器作为开发平台,SOPC系统框图如图1所示。
本设计通过以下办法,解决在主频较低的SOPC软核处理器上实现雷达数据采集、处理和大屏幕图像显示的问题。
首先,使用FPGA硬件逻辑设计实现雷达数据采集、处理和显示控制器。雷达数据采集、处理模块负责对雷达上单元、ADC芯片的控制和对雷达数据的处理。显示控制器模块完成显存数据的管理和显示器的驱动。
其次,使用DMA传输。DMA负责将雷达数据采集、处理后数据通过DMA通道送到内存中。
最后,根据SOPC硬件可配置、可裁剪的特性,将雷达数据采集和处理模块、显示控制模块和DMA模块作为microblaze处理器的设备挂载到外设局部总线上[4]。
由于雷达数采集、处理模块和显示控制模块的内部逻辑都由FPGA硬件逻辑完成,微处理器不需直接对雷达上单元、ADC进行控制,不需进行复杂的雷达数据处理,不用对显存数据进行管理,不用控制产生高速的信号驱动显示器,从而大大减轻了处理器的负担,加上DMA传输的使用,处理器只需要处理DMA传输的请求和传输完成中断,从而使处理器从繁重的数据传输中解脱了出来。通过以上办法,处理器的负担已经变得很轻,使得较低的处理器速度即可处理系统的任务。而且显示控制由FPGA硬件实现还有个优点是,使得显示器分辨率的大小对处理器的负担影响很小,从而在处理器较低的情况下,同样可以支持大屏幕的图像显示。
3系统硬件设计
SOPC系统的硬件设计包含两层含义,一个是SOPC所依赖的硬件平台,另一个是在FPGA内部搭建的SOPC软件所依赖的硬件环境。
本设计中,SOPC所依赖的硬件平台如图2所示:
FPGA内部搭建的SOPC硬件平台如图3所示:
其中,雷达数据采集和处理、显示控制器、DMA模块是为实现本设计而特别定制的模块。下面着重介绍以上3个模块。
3.1 雷达数据采集及处理模块设计
雷达数据采集及处理模块主要由总线接口控制、控制台、雷达上单元控制、ADC控制、雷达数据处理5部分组成,其内部框图如图4中虚线部分所示:
总线接口控制模块负责与处理器总线进行交互,它必须遵循处理器总线通信协议,包括传输请求、应答、数据传输、中断请求。这部分协议由平台产生,用户只需进行相关的配置。
控制台负责ADC控制模块、雷达上单元控制模块、雷达数据处理模块的控制。具体包括:将相关用户控制信息交给ADC控制模块,对ADC的工作状态进行控制;读取雷达上单元控制模块的信息,将它交给总线控制接口模块,并从总线接口控制模块获得雷达上单元相关的控制信息,送到雷达上单元控制模块;将雷达数据处理相关的信息交给雷达数据处理模块,作为雷达数据处理的参数。
雷达上单元控制模块负责对雷达上单元的控制,包括雷达上单元的初始化、自检,设置雷达脉冲频率、脉冲宽度、转速等,并实时地向控制台提供雷达上单元的工作状态信息。
雷达数据处理模块的内部处理流程如图5所示。雷达数据处理模块从控制台获取数据处理的相关参数,对雷达上单元的数据进行以下处理:对雷达的方位角脉冲信号进行提取,计算出雷达当前的方位角;对采样后的雷达回波信号进行内插/抽取、滤波、增益控制、极坐标到直角坐标变换处理。
3.2 显示控制器设计
显示控制器相当于一块独立显卡,其内部如图6中所示,主要由5个模块组成,分别为处理器总线接口控制模块、指令译码模块、显示接口控制模块、数据缓存模块和显存控制模块。
指令译码模块主要负责:从总线接口控制模块获得处理器指令和数据,并对指令进行译码,将译码结果和数据送给显示接口控制模块和显存控制模块;将显示接口控制模块和显存控制模块的工作状态信息送给总线接口控制模块。
显示接口控制模块受指令译码及控制模块控制,与显存控制模块进行协调,从数据缓存区获取数据,控制产生显示器接口时序,驱动显示器描绘图像。[!--empirenews.page--]
数据缓存模块实现对显存数据的预取。在每个行同步时隙,显示接口控制模块向显存控制模块发出预取显存数据的请求,显存控制模块将相应地址上的显存数据读出,放到数据缓存区。由于显示接口控制的时钟和显存控制的时钟通常不一样,设置这个数据缓存区,保证显示接口控制模块能够及时获得显存的数据。
显存控制模块负责显存数据的管理,根据指令译码结果,对显存中的数据进行清除、读写、更新等操作,并配合接口控制模块,将显存数据读出,写入显存数据缓存区。
3.3 DMA传输设计
一般说来,DMA传输相关的寄存器包括传输的源地址、目的地址、工作模式、数据长度、DMA中断模式。本设计使用Xilinx的中央DMA控制器(XPS Central DMA Controller) [5],它是一个单通道的支持外设到外设、外设到内存、内存到外设、内存到内存的DMA,其内部结构框图如图7所示。使用该DMA控制器,需要配置以下寄存器:
软件复位寄存器(RST):用于对DMA控制进行软件复位;
DMA控制寄存器(DMACR):设置DMA的工作模式;
源地址(SA):DMA传输的源地址;
目的地址(DA):DMA传输的目的地址;
长度(LENGTH):DMA传输的数据长度;
中断使能寄存器(IER):设置是否使能DMA传输错误或传输完成时产生中断。
本设计中,将DMA的工作模式设定为数据源地址固定,目的地址递增,源地址为雷达数据采集及处理模块的数据发送寄存器的地址,目的地址设置为内存的地址,长度设置为坐标变换后一条雷达扫描线上的点数1024Bytes,DMA传输完成中断使能。
4系统软件设计
软件设计主要分为三部分,linux内核的移植,模块驱动的开发,雷达GUI软件的开发和移植。
将linux系统移植到自己定制的SOPC硬件平台上包括以下几个步骤[5][6]:
设计SOPC硬件平台。使用XPS开发环境,设计自己的SOPC系统硬件平台,并导出软件开发依赖的硬件平台信息文件;
生成设备树内核编译所需的设备树信息文件(后缀名为.dts)。使用SDK开发环境,结合Xilinx的设备树(Device-tree)脚本和XPS生成的硬件平台信息,生成板级支持包和设备树信息文件;
编译内核。将设备树信息文件拷贝到linux内核源代码/arch/microblaze/boot/dts目录下,根据硬件平台信息配置并编译内核,生成内核镜像文件;
运行内核。将内核镜像文件下载到配置的硬件平台上,实现linux系统的移植。
内核移植完成之后,进行雷达数据采集和处理模块、显示控制器模块驱动的开发。Linux下设备驱动的开发包括以下步骤:
(1)设备驱动程序的注册和注销;
(2)定义file--operations结构,设计所要实现的文件操作, 实现系统调用和驱动程序的关联;
(3)实现所需的文件操作调用,如open,read,write等;
(4)如果使用中断,使用request--irq向内核注册;
(5)编译该驱动程序到内核中,或使用insmod命令加载模块。
最后是进行雷达GUI软件的开发和移植。利用QT开发环境设计雷达用户界面,并移植到SOPC系统中linux操作系统下。
5系统调试和测试
本设计中,利用FPGA硬件逻辑模拟产生雷达回波信号和方位角信号,ADC的采样速率为100MHz,采样位宽为8bits,microblaze软核处理器主频为100MHz。雷达数据采集及处理模块对模拟的雷达信号进行采集和相关处理后,由DMA通道存储到内存当中,雷达GUI软件实现雷达图像的绘制。