一种基于FPGA+多核DSP的PD雷达信号处理系统及其并行实现方法技术领域
本发明为一种基于FPGA+多核DSP的PD雷达信号处理系统及其并行实现方法,它是基于
FPGA+多核DSP的硬件平台,实现多核DSP的雷达信号处理,属于数字信号处理领域。
背景技术
多普勒雷达是指利用多普勒效应对目标的信息进行提取和处理的雷达。如果雷达发射的是
脉冲调制的射频信号,即称之为脉冲多普勒雷达,简称PD雷达。为了得到大时宽带宽积信号,
提高雷达速度和距离的分辨率,雷达通常发射线性调频信号,基于线性调频的PD雷达结合脉
冲多普勒和脉冲压缩的特点。在信号处理时还采用了相参积累提高检测的信噪比,工程实现时
常用对同一个距离门的数据进行FFT的方法实现多普勒滤波器组滤波的方法,输出信号经过求
模后到恒虚警率检测(CFAR)系统中,根据检测单元是否超过门限来判断距离门内是否存在目
标。雷达通过提高目标的信噪比、信杂比来对目标进行检测。
在对雷达信号进行检测处理的过程中,主要分为脉冲压缩、相参积累、恒虚警率(CFAR)检
测等模块,虽然对提高目标信号检测有显著帮助,但是也同时增加了处理的运算量,如计算大
数点的FFT等,对处理器的实时计算要求大大提升。此外,新雷达技术的提出和应用使雷达的
功能越来越强大,但同时对雷达信号处理器提出了更高要求。
随着半导体技术和存储技术的快速发展,超高速集成电路(VHSIC)和超大规模集成电路
(VLSI)技术得到了大幅度提高,TI公司推出了多核DSP芯片,提出了新型的处理器架构,运
算性能大幅度提升,这使得快速实现各种算法成为可能。
针对上面提到的处理器性能提升的需求,本发明人设计了一种基于FPGA+多核DSP的PD雷
达信号处理系统,该系统采用FPGA+多核DSP架构,外围除了FPGA,DSP工作所需的最小系统
电路外,还有两个网口芯片,雷达信号处理在FPGA和多核DSP中编程实现,能够满足复杂雷
达信号处理的实时性需求。
发明内容
1、目的:本发明的目的在于提供一种基于FPGA+多核DSP的PD雷达信号处理系统及其并
行实现方法,其目的在于通过硬件语言、C语言编程和多核DSP程序设计实现PD雷达信号处
理系统。
2、技术方案:本发明的目的通过以下技术方案来实现。
(1)本发明一种基于FPGA+多核DSP的PD雷达信号处理系统,它包括FPGA核心芯片及其
外围最小系统电路、DSP芯片及其外围最小系统电路、千兆网络接口芯片、电源芯片和电平转
换芯片。其系统结构如图1所示,它们之间的位置连接关系及信号走向是:FPGA核心芯片接
收数据采集芯片采集到的雷达直波和回波信号,进行下变频处理后存在内存中,接收完一帧的
数据之后通过FPGA核心芯片与DSP芯片之间的SRIO接口将数据传输到DSP芯片中的DDR3,
然后DSP芯片进行脉冲压缩、相参积累和恒虚警率(CFAR)检测,得到目标点的信息,最后通过
网口将目标信息上传到上位机。
该FPGA核心芯片选择XC6VSX315T,属于Xilinx公司的Virtex-6系列,采用第三代Xilinx
ASMBL架构的40nm制造工艺,具有高效双寄存器6输入LUT(查找表)逻辑,具有丰富的IO
资源,大量的片内存储器资源,支持DDR3。与前一代产品相比功耗降低50%,成本降低20%。
此外,该芯片具有强大的信号处理能力并具有基于低功耗GTX6.5Gbps收发器的串行连接能力,
保证FPGA核心芯片与DSP芯片之间的高速串行传输。FPGA核心芯片在接收到数据采集芯片采
样得到的数据之后,经过数字下变频后将数据存在内存中,得到一帧的数据之后通过SRIO传
输到DSP芯片中。
该FPGA核心芯片外围最小系统电路,包括时钟源和程序加载FLASH,它们负责辅助FPGA
核心芯片完成处理功能。时钟源为FPGA核心芯片提供时钟信号;由于FPGA核心芯片中程序断
电自动被清除,所以必须将程序代码固化到一个程序加载FLASH中,每次上电后,FLASH中的
程序自动加载到FPGA核心芯片中以使其正常工作。时钟源提供FPGA核心芯片工作的系统时钟,
晶体振荡器产生所需要的频率直接传送给FPGA核心芯片。
该DSP芯片采用TI推出的TMS320C6678多核处理芯片。该芯片采用一种改进的哈佛总线
结构:一套256位的程序总线,两套64位数据总线和一套32位DMA专用总线。处理单元采用
高性能、先进的超长指令字结构,每时钟周期可并行执行8条32bit的指令。采用8个运算速
度高达1.25GHz的DSP内核构建,在单个芯片上实现了320GMAC与160GFLOP定点及浮点
性能。单核除了可配置为CACHE的32KB的L1P和L1D,还包括512KB可配置为RAM或者CACHE
的的LL2SRAM,另外还有4MB的多核共享内存,可以当做共享的L2SRAM或者共享L3SRAM
使用,内置DDR3控制器,可寻址33bit地址及8GB存储空间。TMS320C6678芯片提供了丰富
的外围接口,其中根据任务需求,信号处理组合主要用到串行RapidIO、PCIE、Hyperlink、
DDR3等接口。在本发明中利用SRIO接收到FPGA核心芯片传输到的一帧雷达脉冲串信号,进
行多核任务的设计和分配,编排脉冲压缩、相参积累和CFAR检测的多核并行实现过程,最后
得到目标点的信息,通过网口上传到上位机,实现计算过程的性能提升。
该DSP芯片最小系统外围电路,包括时钟源,程序加载FLASH,外部DDR3存储器,它们
负责辅助DSP芯片完成处理功能。由于DSP芯片程序断电后自动被清除,所以必须将程序代码
固化到一个程序加载FLASH中,每次上电后,FLASH中的程序自动加载到DSP芯片中以使其
正常工作。由于DSP芯片需要暂存和处理大量数据,所以必须在其外部扩展存储空间。DSP芯
片外挂四片DDR3存储器,将原始数据和中间处理的缓冲结果等数据存储其中。时钟源提供DSP
芯片工作的系统时钟,晶体振荡器产生所需要的频率直接传送给DSP芯片。
该千兆网络接口芯片选择Marvell公司的88E1111以太网物理层芯片,在DSP芯片的EMAC
模块的控制下,与上位机以千兆以太网络形式传输原始信息数据。
该电源芯片提供整个系统工作所需的电压。外界给系统输入+5V的隔离电压,通过电源芯
片将+5V电压转成+3.3V、+2.5V、+1.8V、+1.5V、+1.2V、+1.0V、+0.75V、CMGT_AVTT、CMGT_AVCC,
来分别提供给FPGA核心芯片(+3.3V、+2.5V、+1.8V、+1.0V)、程序加载FLASH(+3.3V、+1.8V)、
DSP芯片(+3.3V、+1.8V、+1.0V)、DDR3模块(+1.5V、+0.75V)、千兆网络接口芯片(+3.3V、
+1.2V)、时钟提供源(+3.3V),其中CMGT_AVTT和CMGT_AVCC分别为FPGA核心芯片高速接口
提供+1.2V和+1.0V电压。
该电平转换芯片是采用的是TI公司推出的SN74ALVC164245芯片。该芯片支持+2.5V到
+3.3V、+3.3V到+5V的电平转换。
(2)本发明是一种基于FPGA+多核DSP的PD雷达信号处理系统及其并行实现方法,其构建
过程概述如下:在FPGA核心芯片中接收数据采集得到的中频数据,进行数字下变频后得到基
带信号数据,并将数据送入片内RAM进行缓存;当得到一帧脉冲串数据之后,通过FPGA和DSP
的高速串口SRIO进行数据的传输;DSP芯片得到一帧下变频后的基带信号,存放在DDR3中,
设计多核并行实现一帧数据的脉冲压缩算法处理;将脉冲压缩后的数据存放在DDR3的缓存中,
然后设计多核实现并行的相参积累算法处理和CFAR检测处理,得到目标点的信息;最后通过
网口将目标点信息传送到上位机。
综上所述,本发明一种基于FPGA+多核DSP的PD雷达信号处理系统及其并行实现方法,
该方法具体步骤如下:
步骤一:在FPGA核心芯片中对中频信号进行数字下变频
该步骤由FPGA核心芯片中数字下变频模块完成,数字下变频模块由数据采集、模二抽取
逻辑、延时校正滤波器、双口RAM模块组成。数字下变频模块采用多相滤波结构,经过二倍奇
偶抽取,延时校正后将中频采样数据下变频得到基带复数据。数据采集模块将数据采集芯片采
样后得到的数据作为单端输入。模二抽取逻辑将输入数据抽取成I、Q两路数据,在每个时钟
的上升沿将标志位取反,当标志位为1时将数据取负。延时校正滤波由12阶FIR滤波器实现,
系数由Matlab生成;滤波后取I、Q两路高16位拼接成32位基带数据。
步骤二:在FPGA核心芯片中缓存数据,并配置SRIO准备传输数据
FPGA核心芯片与DSP芯片之间采用x4的SRIO互连,单通道速率为5Gbps,考虑到8b/10b
编码,有效带宽高达2Gbps。其结构图如图3所示,本发明利用了Xilinx提供的串行RapidIO
IP核,并设计了本地端和远端。包括本地数据处理、远端数据处理和IP核。本地数据处理负
责发送本地的数据请求包并接收远端发出的对本地数据响应包。远端数据处理负责接收来自远
端的数据包。IP核的主要功能是打包和解包,初始化以及协议实现。
当本地发送数据给远端时,把数据写入发送缓存,并在写完后给发送控制器启动信号。本
地数据处理端根据设置好的SRIO包头信息,包括包类型、包大小、包数目、发送地址、对方
ID等来控制产生请求模块从发送缓存中产生包。这些包经过IP核的处理传输给远端。当远端
获取数据包并发送响应包给本地时,IP核将接收到的串行比特流解出SRIO包并传递给本地数
据响应处理模块。远端数据处理控制远端数据请求处理模块将包内的数据写入接收缓存,并在
写完后发送完成信号给需要数据的模块,需要数据的模块可以从接收缓存读出数据。
步骤三:在DSP芯片中配置SRIO寄存器接收数据并存放在DDR3中
DSP芯片端的SRIO模块图如图4所示,SRIO模块中本地器件为DSP芯片,远端器件指的
是FPGA核心芯片。DSP芯片中的SRIO模块主要由载入/载出模块和物理层组成。载入/载出模
块在CPU/EDMA的控制下向DDR3存储器发送VBUSM请求、接受VBUSM响应。在载入/载出模块
内,MMR命令寄存器控制发送缓存和接收缓存,并与物理层的FIFO相连。
在DSP芯片中,通常调用CSL(片上支持库)函数实现SRIO的配置,包括使能、初始化、打
开和建立通信等函数。SRIO的实现可分为4步:地址映射;配置ID、SRIO端口、中断向量;
配置寄存器,包括传输模式和速率的配置;等待链接。在链接之后,DSP芯片能够接收和发送
SRIO包。DSP芯片和FPGA核心芯片之间需要知道对方的目的ID和起始地址才能正确传输数据。
在数据传输时选择DirectIO方式,只需要TX和RX双方的地址映射关系就可实现传输。
步骤四:在DSP芯片中实现多核处理脉冲压缩算法
该步骤在DSP芯片中完成,需要设计一套多核任务并行实现算法来进行脉冲压缩算法的数
据处理。雷达信号处理的流程如图5所示,脉冲压缩是以脉冲为单位进行计算,而相参积累和
CFAR检测是根据脉冲串的距离切片位单位进行计算的,只有脉冲串全部完成脉冲压缩之后,
才能进行相参积累和CFAR检测,所以总体上将流程分成两次任务,一次完成所有脉冲的脉冲
压缩计算,一次是相参积累和CFAR检测。由于脉冲压缩计算时脉冲之间数据关联小,相参积
累和CFAR检测计算之间的数据关联小,所以多核实现采用主从模式实现,一核负责任务的调
度和分配,其余核按任务进行并行操作。
在多核设计时需要考虑存储器系统的配置,信号处理中需要与存储器进行数据存取操作,
访问性能直接影响算法的效率。存储器访问性能和代码、数据存储的位置相关,与访问方式也
相关。通过配置各个存储器大小、cache设置的大小和数据访问方式,可以得到不同情况下的
传输速率。分析可得外部存储器的访问通常采用EDMA方式,内部存储器通过内核直接访问或
者IDMA方式;内存的内核访问性能好,拥有较宽的数据总线和指令总线,将关键的数据和变
量存放在LL2中;将L1D和L1P设为CACHE可提高内核和存储器之间的指令和数据缓存。本发
明设计的存储器系统将原始数据放在DDR3中,每个核的LL2配置为SRAM,存放脉冲压缩、相
参积累和CFAR检测过程中的数据,L1D和L1P配置为CACHE有利于提高内核的访问效率,系
统的存储器设计结构图如图6所示。
在雷达信号处理流程中,FPGA核心芯片通过SRIO接口将数据传送到DDR3,然后将脉冲串
等分为8份,每个核分别处理其中1份脉冲数据。脉冲压缩在工程上采用频域方式实现,即输
入信号的频谱与本地参考信号频谱的共轭复乘后,再逆福利叶变换得到结果。主要步骤包括输
入、FFT、复乘、IFFT、输出。输入部分通过EDMA模块将脉冲数据从DDR3传输到各个核的LL2
中,然后每个核的LL2中配置数据处理的缓冲区域,进行数据处理,最后输出时用EDMA模块
将数据传到DDR3的缓冲区,在输入和输出时需要配置EDMA模块的输出方式。FFT和IFFT计
算所需要的旋转因子在初始化时完成计算并且存在每个核的LL2中,复乘所需要的参考信号的
频谱共轭也在初始化时存在每个核的LL2中,计算时直接调用。
多核系统中内核之间相对独立,需要相互通信完成任务的调度。内核需要分配相应的子任
务以及执行的顺序。由于采用主从模式实现脉冲压缩算法,每个核完成各自的数据处理,不需
要核间的数据共享和传输,所以采用核间中断模式的通信方式,配置IPCGRx将产生核x的中
断,SRCS0~27设置中断源标志,这里采用SRCSx表示核x的中断标志。配置IPCARx的SRCC0~27
清除相应的标志。
在编排流程中需要考虑并行实现的结构,但是设计时DDR3的总线成为瓶颈,DDR3数据总
线最高只能配置64位,并且只有一套总线,各个核在访问时需要总裁,不能及时返回数据。
所以设计时核与核数据输入时错开,在前一个核完成输入后利用核间中断触发下一核的输入;
输出时采用上一轮的输出和下一轮的输入结合成一个模块整体作为下一轮的输入,这样可以避
免DDR3总线占用问题;在核7完成整个数据处理后再进行下一轮的脉冲处理直到完成每个核
所分配的脉冲处理任务。脉冲压缩的多核实现流程图如图7所示。
步骤五:在DSP芯片中实现多核处理相参积累和CFAR检测算法
脉冲压缩处理完成后数据存放在DSP芯片的DDR3缓冲区中,其中每次脉冲压缩后的输出
在DDR3中按列的方式存储,这样在相参积累和CFAR检测时就可以以行的方式进行数据处理。
通过脉冲压缩的输出完成一次二维数据的行列转置。
相参积累和CFAR检测采用频域实现的方式,每个核完成距离切片的数据输入、相参积累、
复数求模和CFAR检测。
脉冲串的距离切片作为数据,采用EDMA的方式从DDR3传输到LL2中。相参积累在工程中
采用FFT来实现,其旋转因子也在初始化时完成计算并且存放在LL2中,在FFT计算时直接在
LL2中完成。相参积累后得到的复数点数据需要进行求模计算得到幅值。常用的平方和开根号
耗时而且需要考虑数据溢出,采用线性近似的方式实现复数求模
|X|≈g(I,Q)=amax{|I|,|Q|}+bmin{|I|,|Q|}
其中a,b为加权系数,系数的值与相对误差的要求有关。采用等波纹近似的方法。选取
合适的a,b参数,使得误差在0.8%以下,其公式如下:
|X|≈max{TL+1/8TS,27/32TL+9/16TS}
CFAR检测采用常用的单元平均恒虚警率(CA-CFAR)检测的方式实现,在实际数据处理时通
常采用划窗检测的方式实现,在计算一次滑窗检测时,测试单元两侧设有保护单元用来防止目
标跨越多个单元造成干扰。为判断其中一个单元内是否存在目标,需要对左右参考单元求平均
再乘以门限因子得到检测门限,再与测试单元比较后得出是否存在目标。在工程实现时通常
CFAR检测需要消耗大量周期,TMS320C6678支持软件流水技术实现并行的操作,可以通过汇编
指令编排来优化CFAR检测的过程。具体实现过程如下:首先完成C语言代码的编写,然后将
其改写成线性汇编代码,根据代码确定迭代的周期数,之后画出相关图,即确定每条指令所用
到的功能单元,TMS320C6678单核内有8个功能单元,总线支持一个周期并行8条指令。最后
根据相关图,确定每条指令的寄存器文件,然后进行指令编排,需要考虑流水线中的循环填充、
内核循环、循环排空,还需要考虑指令的延迟、生命周期之类,最后得到并行的指令编排。
在多核实现相参积累和CFAR检测时需要考虑DDR3总线占用的问题,所以也需要错开排列,
之后每个核各自完成部分距离切片的相参积累和CFAR检测,得到一个目标点信息,最后将8
个核的目标点信息求最值后进行之心运算得到目标的信息结果。相参积累和CFAR检测的多核
实现流程图如8所示。
步骤六:通过网口将目标信息传送给上位机
通过相参积累和CFAR检测后得到目标点信息,将信息通过6678的网口传输到上位机。6678
内有网卡控制器(NETCP),主要用于处理以太网数据包。该控制器由用于控制数据包DMA传输
的PKTDMA控制器;用于数据包识别以及分类的包加速器(PA);用于数据包加密和解密的安全
加速器(SA)以及吉比特以太网转换子系统四部分组成。共同完全DSP芯片与外部设备之间数据
包的快速交换。网卡控制器的结构图如图9所示。
当DSP芯片向外部器件发送数据包时,数据经DMA进入网卡控制器,在SA中完成加密过
程,之后通过数据流开关总线进入PA,在PA中根据预先设定的描述符添加MAC帧头、IP帧头
以及UDP/TCP帧头。之后通过数据流开关总线进入吉比特以太网转换子系统,在此模块中对数
据进行识别打包并从预定的端口发送到外部设备上。
(3)优点及功效:本发明是一种基于FPGA+多核DSP的PD雷达信号处理系统及其并行实
现方法,其优点是:硬件电路简单,体积较小;处理结构采用FPGA+多核DSP架构,在FPGA
核心芯片中实现数字下变频,在DSP芯片中进行脉冲压缩、相参积累和CFAR检测,充分发挥
了系统的并行处理性能。
附图说明
图1系统结构框图。
图2FPGA实现数字下变频原理图。
图3FPGA的SRIO模块结构图。
图4DSP的SRIO模块结构图。
图5雷达信号处理流程图。
图6多核DSP存储器系统设计图。
图7多核DSP实现脉冲压缩流程图。
图8多核DSP实现相参积累和CFAR检测流程图。
图9网卡控制器结构图。
图10多核DSP实现雷达信号处理流程图。
图中符号说明如下:
图1:SRIO全称是serialrapidio,高速串行总线;PCIe全称是peripheralcomponent
interfaceexpress,快速总线和接口;EMIF全称是externalmemoryinterface,外部存储
器接口;DDR3全称是doubledatadate3sdram,八倍速率同步动态随机存储器。
图2:AD_data表示输入的14位数据;AD_data_I和AD_data_Q表示抽取后得到的I、Q两路
数据;AD_data_BB表示I、Q两路数据滤波后取16位拼接成32位数据。
图4:FIFO全称是firstinfirstout,先入先出队列;VBUSM指的是VBUS上的主设备;LSU
是DSP中的寄存器名称;MMR全称是memorymappedregister,是DSP存储器的一种。
图5:LFM指的是线性调频信号;FFT指的是快速傅里叶变换;IFFT指的是快速傅里叶逆变换。
图6:CORE0、CORE7表示核0、核7;L1D/32KBCACHE、L1P/32KBCACHE表示配置为32KB缓
存的一级数据和程序存储器;LL2/512KBSRAM表示配置为512KB内存的本地二级存储器;CACHE
表示可配置为缓存;EDMA表示增强型的直接内存存取。
图7、图8:IPCGR0~IPCGR7表示产生核0~7的核间中断。
图9:PKTDMA指的是数据包的DMA传输;SA指的是安全加速器;PA指的是包加速器;GbESwitch
SubSystem指的是吉比特以太网转换子系统;SGMII指的是串行千兆位媒质独立接口。
图10:0x90000000等指的是DSP中的逻辑地址;IPC0~7指的是核0~7的中断;CFAR指的是恒
虚警率检测。
具体实施方式
下面根据发明内容,结合说明书附图,对本发明一种基于FPGA+DSP的PD雷达信号处理系统及
其多核实现方法,进行具体说明:
本发明通过硬件编程语言、C语言编程和多核DSP编程实现基于FPGA+DSP的PD雷达信号
处理硬件系统。
(1)本发明提供一种基于FPGA+多核DSP的PD雷达信号处理系统,包括FPGA核心芯片及其
外围最小系统电路、DSP芯片及其外围最小系统电路、千兆网络接口芯片、电源芯片和电平转
换芯片。其系统结构如图1所示,它们之间的位置连接关系及信号走向是:FPGA接收数据采
集芯片采集到的雷达直波和回波信号,进行下变频处理后存在内存中,接收完一帧的数据之后
通过FPGA核心芯片与DSP芯片之间的SRIO接口将数据传输到DSP芯片中的DDR3,然后DSP
芯片进行脉冲压缩、相参积累和恒虚警率(CFAR)检测,得到目标点的信息,最后通过网口将目
标信息上传到上位机。
该FPGA核心芯片选择XC6VSX315T,属于Xilinx公司的Virtex-6系列,采用第三代Xilinx
ASMBL架构的40nm制造工艺,具有高效双寄存器6输入LUT(查找表)逻辑,具有丰富的IO
资源,大量的片内存储器资源,支持DDR3。与前一代产品相比功耗降低50%,成本降低20%。
此外,该芯片具有强大的信号处理能力并具有基于低功耗GTX6.5Gbps收发器的串行连接能力,
保证FPGA与DSP之间的高速串行传输。FPGA核心芯片在接收到数据采集芯片采样得到的数据
之后,经过数字下变频后将数据存在内存中,得到一帧的数据之后通过SRIO传输到DSP芯片
中。图2为FPGA实现数字下变频原理图。
该FPGA芯片最小系统外围电路,包括时钟源和程序加载FLASH,它们负责辅助FPGA核心
芯片完成处理功能。时钟源为FPGA提供时钟信号;由于FPGA中程序断电自动被清除,所以必
须将程序代码固化到一个程序加载FLASH中,每次上电后,FLASH中的程序自动加载到FPGA
核心芯片中以使其正常工作。时钟源提供FPGA核心芯片工作的系统时钟,晶体振荡器产生所
需要的频率直接传送给FPGA核心芯片。
该DSP芯片采用TI推出的TMS320C6678多核处理芯片。该芯片采用一种改进的哈佛总线
结构:一套256位的程序总线,两套64位数据总线和一套32位DMA专用总线。处理单元采用
高性能、先进的超长指令字结构,每时钟周期可并行执行8条32bit的指令。采用8个运算速
度高达1.25GHz的DSP内核构建,在单个芯片上实现了320GMAC与160GFLOP定点及浮点
性能。单核除了可配置为CACHE的32KB的L1P和L1D,还包括512KB可配置为RAM或者CACHE
的的LL2SRAM,另外还有4MB的多核共享内存,可以当做共享的L2SRAM或者共享L3SRAM
使用,内置DDR3控制器,可寻址33bit地址及8GB存储空间。TMS320C6678芯片提供了丰富
的外围接口,其中根据任务需求,信号处理组合主要用到串行RapidIO、PCIE、Hyperlink、
DDR3等接口。在本发明中利用SRIO接收到FPGA传输到的一帧雷达脉冲串信号,进行多核任
务的设计和分配,编排脉冲压缩、相参积累和CFAR检测的多核并行实现过程,最后得到目标
点的信息,通过网口上传到上位机,实现计算过程的性能提升。
该DSP芯片最小系统外围电路,包括时钟源,程序加载FLASH,外部DDR3存储器,它们
负责辅助DSP芯片完成处理功能。由于DSP芯片程序断电后自动被清除,所以必须将程序代码
固化到一个程序加载FLASH中,每次上电后,FLASH中的程序自动加载到DSP芯片中以使其
正常工作。由于DSP芯片需要暂存和处理大量数据,所以必须在其外部扩展存储空间。DSP芯
片外挂四片DDR3存储器,将原始数据和中间处理的缓冲结果等数据存储其中。时钟源提供DSP
核心芯片工作的系统时钟,晶体振荡器产生所需要的频率直接传送给DSP芯片。
该千兆网络接口芯片选择Marvell公司的88E1111以太网物理层芯片,在DSP芯片的EMAC
模块的控制下,与上位机以千兆以太网络形式传输原始信息数据。
该电源芯片提供整个系统工作所需的电压。外界给系统输入+5V的隔离电压,通过电源芯
片将+5V电压转成+3.3V、+2.5V、+1.8V、+1.5V、+1.2V、+1.0V、+0.75V、CMGT_AVTT、CMGT_AVCC,
来分别提供给FPGA核心芯片(+3.3V、+2.5V、+1.8V、+1.0V)、程序加载FLASH(+3.3V、+1.8V)、
DSP核心芯片(+3.3V、+1.8V、+1.0V)、DDR3模块(+1.5V、+0.75V)、千兆网络接口芯片(+3.3V、
+1.2V)、时钟提供源(+3.3V),其中CMGT_AVTT和CMGT_AVCC分别为FPGA高速接口提供+1.2V
和+1.0V电压。
该电平转换芯片是采用的是TI公司推出的SN74ALVC164245芯片。该芯片支持+2.5V到
+3.3V、+3.3V到+5V的电平转换。
(2)本发明是一种基于FPGA+多核DSP的PD雷达信号处理系统及其并行实现方法,其构建
过程概述如下:在FPGA核心芯片中接收数据采集得到的中频数据,进行数字下变频后得到基
带信号数据,并将数据送入片内RAM进行缓存;当得到一帧脉冲串数据之后,通过FPGA核心
芯片和DSP芯片的高速串口SRIO进行数据的传输;DSP芯片得到一帧下变频后的基带信号,
存放在DDR3中,设计多核并行实现一帧数据的脉冲压缩算法处理;将脉冲压缩后的数据存放
在DDR3的缓存中,然后设计多核实现并行的相参积累算法处理和CFAR检测处理,得到目标点
的信息;最后通过网口将目标点信息传送到上位机。
综上所述,本发明一种基于FPGA+多核DSP的PD雷达信号处理系统及其并行实现方法,
该方法具体步骤如下:
步骤一:在FPGA核心芯片中对中频信号进行数字下变频
该步骤由FPGA核心芯片中数字下变频模块完成,数字下变频模块由数据采集、模二抽取
逻辑、延时校正滤波器、双口RAM模块组成。数字下变频模块采用多相滤波结构,经过二倍奇
偶抽取,延时校正后将中频采样数据下变频得到基带复数据。数据采集模块将数据采集芯片采
样后得到的数据作为单端输入。模二抽取逻辑将输入数据抽取成I、Q两路数据,在每个时钟
的上升沿将标志位取反,当标志位为1时将数据取负。延时校正滤波由12阶FIR滤波器实现,
系数由Matlab生成;滤波后取I、Q两路高16位拼接成32位基带数据。
步骤二:在FPGA核心芯片中缓存数据,并配置SRIO准备传输数据
FPGA核心芯片与DSP芯片之间采用x4的SRIO互连,单通道速率为5Gbps,考虑到8b/10b
编码,有效带宽高达2Gbps。其结构图如图3所示,本发明利用了Xilinx提供的串行RapidIO
IP核,并设计了本地端和远端。包括本地数据处理、远端数据处理和IP核。本地数据处理负
责发送本地的数据请求包并接收远端发出的对本地数据响应包。远端数据处理负责接收来自远
端的数据包。IP核的主要功能是打包和解包,初始化以及协议实现。
当本地发送数据给远端时,把数据写入发送缓存,并在写完后给发送控制器启动信号。本
地数据处理端根据设置好的SRIO包头信息,包括包类型、包大小、包数目、发送地址、对方
ID等来控制产生请求模块从发送缓存中产生包。这些包经过IP核的处理传输给远端。当远端
获取数据包并发送响应包给本地时,IP核将接收到的串行比特流解出SRIO包并传递给本地数
据响应处理模块。远端数据处理控制远端数据请求处理模块将包内的数据写入接收缓存,并在
写完后发送完成信号给需要数据的模块,需要数据的模块可以从接收缓存读出数据。
步骤三:在DSP芯片中配置SRIO寄存器接收数据并存放在DDR3中
DSP芯片端的SRIO模块图如图4所示,SRIO模块中本地器件为DSP芯片,远端器件指的
是FPGA核心芯片。DSP芯片中的SRIO模块主要由载入/载出模块和物理层组成。载入/载出模
块在CPU/EDMA的控制下向DDR3存储器发送VBUSM请求、接受VBUSM响应。在载入/载出模块
内,MMR命令寄存器控制发送缓存和接收缓存,并与物理层的FIFO相连。
在DSP芯片中,通常调用CSL(片上支持库)函数实现SRIO的配置,包括使能、初始化、打
开和建立通信等函数。SRIO的实现可分为4步:地址映射;配置ID、SRIO端口、中断向量;
配置寄存器,包括传输模式和速率的配置;等待链接。在链接之后,DSP芯片能够接收和发送
SRIO包。DSP芯片和FPGA核心芯片之间需要知道对方的目的ID和起始地址才能正确传输数据。
在数据传输时选择DirectIO方式,只需要TX和RX双方的地址映射关系就可实现传输。
步骤四:在DSP芯片中实现多核处理脉冲压缩算法
该步骤在DSP芯片中完成,需要设计一套多核任务并行实现算法来进行脉冲压缩算法的数
据处理。雷达信号处理的流程如图5所示,脉冲压缩是以脉冲为单位进行计算,而相参积累和
CFAR检测是根据脉冲串的距离切片位单位进行计算的,只有脉冲串全部完成脉冲压缩之后,
才能进行相参积累和CFAR检测,所以总体上将流程分成两次任务,一次完成所有脉冲的脉冲
压缩计算,一次是相参积累和CFAR检测。由于脉冲压缩计算时脉冲之间数据关联小,相参积
累和CFAR检测计算之间的数据关联小,所以多核实现采用主从模式实现,一核负责任务的调
度和分配,其余核按任务进行并行操作。
在多核设计时需要考虑存储器系统的配置,信号处理中需要与存储器进行数据存取操作,
访问性能直接影响算法的效率。存储器访问性能和代码、数据存储的位置相关,与访问方式也
相关。通过配置各个存储器大小、cache设置的大小和数据访问方式,可以得到不同情况下的
传输速率。分析可得外部存储器的访问通常采用EDMA方式,内部存储器通过内核直接访问或
者IDMA方式;内存的内核访问性能好,拥有较宽的数据总线和指令总线,将关键的数据和变
量存放在LL2中;将L1D和L1P设为CACHE可提高内核和存储器之间的指令和数据缓存。本发
明设计的存储器系统将原始数据放在DDR3中,每个核的LL2配置为SRAM,存放脉冲压缩、相
参积累和CFAR检测过程中的数据,L1D和L1P配置为CACHE有利于提高内核的访问效率,系
统的存储器设计结构图如图6所示。
在雷达信号处理流程中,FPGA核心芯片通过SRIO接口将数据传送到DDR3,然后将脉冲串
等分为8份,每个核分别处理其中1份脉冲数据。脉冲压缩在工程上采用频域方式实现,即输
入信号的频谱与本地参考信号频谱的共轭复乘后,再逆福利叶变换得到结果。主要步骤包括输
入、FFT、复乘、IFFT、输出。输入部分通过EDMA模块将脉冲数据从DDR3传输到各个核的LL2
中,然后每个核的LL2中配置数据处理的缓冲区域,进行数据处理,最后输出时用EDMA模块
将数据传到DDR3的缓冲区,在输入和输出时需要配置EDMA模块的输出方式。FFT和IFFT计
算所需要的旋转因子在初始化时完成计算并且存在每个核的LL2中,复乘所需要的参考信号的
频谱共轭也在初始化时存在每个核的LL2中,计算时直接调用。
多核系统中内核之间相对独立,需要相互通信完成任务的调度。内核需要分配相应的子任
务以及执行的顺序。由于采用主从模式实现脉冲压缩算法,每个核完成各自的数据处理,不需
要核间的数据共享和传输,所以采用核间中断模式的通信方式,配置IPCGRx将产生核x的中
断,SRCS0~27设置中断源标志,这里采用SRCSx表示核x的中断标志。配置IPCARx的SRCC0~27
清除相应的标志。
在编排流程中需要考虑并行实现的结构,但是设计时DDR3的总线成为瓶颈,DDR3数据总
线最高只能配置64位,并且只有一套总线,各个核在访问时需要总裁,不能及时返回数据。
所以设计时核与核数据输入时错开,在前一个核完成输入后利用核间中断触发下一核的输入;
输出时采用上一轮的输出和下一轮的输入结合成一个模块整体作为下一轮的输入,这样可以避
免DDR3总线占用问题;在核7完成整个数据处理后再进行下一轮的脉冲处理直到完成每个核
所分配的脉冲处理任务。脉冲压缩的多核实现流程图如图7所示。
步骤五:在DSP芯片中实现多核处理相参积累和CFAR检测算法
脉冲压缩处理完成后数据存放在DSP芯片的DDR3缓冲区中,其中每次脉冲压缩后的输出
在DDR3中按列的方式存储,这样在相参积累和CFAR检测时就可以以行的方式进行数据处理。
通过脉冲压缩的输出完成一次二维数据的行列转置。
相参积累和CFAR检测采用频域实现的方式,每个核完成距离切片的数据输入、相参积累、
复数求模和CFAR检测。
脉冲串的距离切片作为数据,采用EDMA的方式从DDR3传输到LL2中。相参积累在工程中
采用FFT来实现,其旋转因子也在初始化时完成计算并且存放在LL2中,在FFT计算时直接在
LL2中完成。相参积累后得到的复数点数据需要进行求模计算得到幅值。常用的平方和开根号
耗时而且需要考虑数据溢出,采用线性近似的方式实现复数求模
|X|≈g(I,Q)=amax{|I|,|Q|}+bmin{|I|,|Q|}
其中a,b为加权系数,系数的值与相对误差的要求有关。采用等波纹近似的方法。选取
合适的a,b参数,使得误差在0.8%以下,其公式如下:
|X|≈max{TL+1/8TS,27/32TL+9/16TS}
CFAR检测采用常用的单元平均恒虚警率(CA-CFAR)检测的方式实现,在实际数据处理时通
常采用划窗检测的方式实现,在计算一次滑窗检测时,测试单元两侧设有保护单元用来防止目
标跨越多个单元造成干扰。为判断其中一个单元内是否存在目标,需要对左右参考单元求平均
再乘以门限因子得到检测门限,再与测试单元比较后得出是否存在目标。在工程实现时通常
CFAR检测需要消耗大量周期,TMS320C6678支持软件流水技术实现并行的操作,可以通过汇编
指令编排来优化CFAR检测的过程。具体实现过程如下:首先完成C语言代码的编写,然后将
其改写成线性汇编代码,根据代码确定迭代的周期数,之后画出相关图,即确定每条指令所用
到的功能单元,TMS320C6678单核内有8个功能单元,总线支持一个周期并行8条指令。最后
根据相关图,确定每条指令的寄存器文件,然后进行指令编排,需要考虑流水线中的循环填充、
内核循环、循环排空,还需要考虑指令的延迟、生命周期之类,最后得到并行的指令编排。
在多核实现相参积累和CFAR检测时需要考虑DDR3总线占用的问题,所以也需要错开排列,
之后每个核各自完成部分距离切片的相参积累和CFAR检测,得到一个目标点信息,最后将8
个核的目标点信息求最值后进行之心运算得到目标的信息结果。相参积累和CFAR检测的多核
实现流程图如图8所示。
步骤六:通过网口将目标信息传送给上位机
通过相参积累和CFAR检测后得到目标点信息,将信息通过6678的网口传输到上位机。6678
内有网卡控制器(NETCP),主要用于处理以太网数据包。该控制器由用于控制数据包DMA传输
的PKTDMA控制器;用于数据包识别以及分类的包加速器(PA);用于数据包加密和解密的安全
加速器(SA)以及吉比特以太网转换子系统四部分组成。共同完全DSP芯片与外部设备之间数据
包的快速交换。网卡控制器的结构图如图9所示。
当DSP芯片向外部器件发送数据包时,数据经DMA进入网卡控制器,在SA中完成加密过
程,之后通过数据流开关总线进入PA,在PA中根据预先设定的描述符添加MAC帧头、IP帧头
以及UDP/TCP帧头。之后通过数据流开关总线进入吉比特以太网转换子系统,在此模块中对数
据进行识别打包并从预定的端口发送到外部设备上。
最后DSP芯片中多核实现脉冲压缩、相参积累和CFAR检测的流程图如图10所示。
基于FPGA+DSP的PD雷达信号处理系统及其多核实现方法硬件电路的主要器件为:
FPGA核心芯片的选择:
选用Xilinx公司的Virtex-6XC6VSX315T
Virtex-6系列是Xilinx公司推出的新一代FPGA核心芯片,该系列FPGA核心芯片进行了
最合适的组合优化,包括灵活性、硬内核IP、收发器功能以及开发工具支持,能够为通信、
网络和数字信号处理领域的应用提供完整的解决方案。
Virtex-6XC6VSX315T是Virtex-6家族的一员。具有如下主要特点:
1)49200个slice;
2)12个MMCM(Mixed-ModeClockManagers)模块;
3)25344KbitsRAM;
4)720个通用I/O管脚;
5)24个GTX模块;
6)2个PCIe接口模块。
此外,Xilinx公司还提供了功能强大的开发平台(ISE),开发者可通过该平台完成全部设
计。
程序加载FLASH芯片的选择:
选用Xilinx公司的XCF16P。
XCF16P容量为16Mbit,其存储容量可以支持多种Xilinx公司的FPGA核心芯片进行上电
程序加载。
DSP芯片的选择:
选用TI公司的TMS320C6678
TMS320C6678,它采用一种改进的哈佛总线结构:一套256位的程序总线,两套32位数据
总线和一套32位DMA专用总线,其主要特点如下:
1)处理单元采用高性能、先进的超长指令字结构,每时钟周期可并行执行8条32bit的
指令;
2)TMS320C6678采用8个运算速度高达1.25GHz的DSP内核构建,在单个器件上整合了
320GMAC与160GFLOP定点及浮点性能。
3)TMS320C6678整合了大容量的片上存储器,每个核除可配置为CACHE的32KBL1P和L1D,
还包括512KB可以配置为RAM或者CACHE的L2,另外还有4MB的多核共享内存,可以当作共
享的L2SRAM或者共享L3SRAM使用。
4)TMS320C6678芯片提供了丰富的外围接口,本系统主要用到SRIO、DDR3等接口。这些
接口主要在运算DSP芯片中使用。其中SRIO用于DSP芯片与FPGA核心芯片的数据通信,DDR3
用于DSP外部存储。
此外,德州仪器公司提供的DSP芯片集成开发环境(CCS5),开发者可通过该集成开发环
境完成全部设计及调试。
电源芯片的选择:
所述电源芯片是LinearTechnology公司的LTM4616和LTM4627。
LTM4616的主要特性如下:
1)输入电压范围2.7V到5.5V;
2)输出电源范围0.6V到5V;
3)过流过热保护;
4)输出电压过压保护;
5)(15mm×15mm×2.82mm)LGA封装和(15mmx15mmx3.42mm)BGA封装。
LTM4627的主要特性如下:
1)输入电压范围4.5V到20V;
2)输出电压范围0.6V到5V;
3)用于实现精准稳压的差分远端采样放大器;
4)输出电压过压保护;
5)(15mm×15mm×4.32mm)LGA封装和15mmx15mmx4.92mmBGA封装。
千兆网络接口芯片:
千兆网络接口芯片选择Marvell公司的88E1111芯片。该芯片完整支持IEEE802.3协议簇,
内置1.25G串行解串行器,满足千兆光传输应用,使用标准数字CMOS工艺制造,具备自适应、
超低功耗模式。其支持吉比特介质网关接口(GMII)、精简的GMII(RGMII)、串行吉比特介质
网关接口(SGMII)。
电平转换芯片:
电平转换芯片采用的是TI公司推出的SN74ALVC164245芯片。该芯片属于TI的Widebus
系列,支持+2.5V和+3.3V、+3.3V和+5V之间的电平转换,用于数据总线之间的异步通信。
系统实现结果
应用VHDL硬件描述语言和定点C语言进行编程,将编写好的模块下载至XilinxVirtex-6
XC6VSX315T和TMS320C6678中。实验过程中,仿真产生一帧脉冲串数据输入到FPGA模块中作
为数据输入,通过ChipScopePro(XilinxISE软件自带的逻辑分析仪)、PC机进行观察。
在FPGA核心芯片中占用的资源如下:
表1FPGA核心芯片系统资源使用情况
在多核DSP芯片中实现200个脉冲的脉冲压缩算法与单核实现作比较,测得的消耗时钟周
期如下:
表2脉冲压缩单核与多核实现消耗时钟周期
在多核DSP芯片中实现200个脉冲的相参积累和CFAR检测算法与单核实现作比较,测得
的消耗时钟周期如下:
表3相参积累和CFAR检测单核与多核实现消耗时钟周期
一种基于FPGA+多核DSP的PD雷达信号处理系统及其并行实现方法,用VHDL语言、定点
C语言和汇编程序实现了PD雷达信号检测,并且在实际的测试中验证了多核的并行优化,证
明了多核优化设计的可行性,并且有以下特点:
硬件电路简单,体积较小,为未来系统集成提供了探索和依据。
处理结构采用FPGA+多核DSP架构,在FPGA核心芯片中实现数字下变频,在DSP芯
片中进行脉冲压缩、相参积累和CFAR检测,充分发挥了系统的并行处理性能。
通过测试实现了雷达信号检测流程的多核优化,提高性能。
可见,基于FPGA+多核DSP的PD雷达信号处理系统具有很高的应用价值,在实际应用实时
性得到提高,有很好的应用前景。