❤️ ×
各类单机,绅士游戏不断更新:https://www.acghua.com/
网站地址

基于国产FT_M6678多核芯片的雷达信号处理设计

news 发布于 2025-09-03 阅读(286)

王晓燕

(中国电子科技集团公司第二十研究所, 陕西 西安 710068)

引言

随着雷达技术的不断发展,对雷达信号处理的实时性和数据精确性要求越来越高,这就使得雷达信号处理在处理的数据量和运算量方面压力大大增加。以前采用的多片单核DSP 实现强大的信号处理功能的方法,不但结构复杂,硬件量大,且已经不能满足一些大数据量处理的实时性要求,因此,多核DSP 的并行处理就成为发展趋势,再加上国产芯片的快速发展及我们对国产芯片的需求,使得我们对国产FT_M6678芯片的多核并行处理开发显得尤为重要。

FT_M6678 芯片不但具有高达1 GHz 处理时钟、8个核的高速处理能力;还拥有丰富的接口:srio 接口、emif 总线接口、网口,可外挂DDR 等,这让基于FT_M6678 芯片的雷达信号处理的处理能力大大提高,让自主搜索并精确跟踪目标的功能在一部雷达上实现成为可能。本文中就将对基于FT_M6678 的信号处理板卡的设计及实现进行介绍,并在该板卡上实现雷达自主搜索并精确跟踪功能。

1 雷达信号处理机的设计与实现

本文中的信号处理板卡是典型的一片FPGA+两片DSP(FT_M6678)的实时信号处理架构,每片DSP外挂DDR3 以扩展存储空间,FPGA 完成两个波束的运动补偿、脉冲压缩、相参积累,每个帧周期内,每个DSP 完成一个波束的自主搜索功能,两个DSP 均完成自主搜索后,可能会搜到若干目标,需将两个波束中的重复目标剔除,剩余目标的速度,距离解模糊后,将距离、速度及角度信息在帧周期间滑窗,满足3/5准则的目标即认为搜到的真实目标。

本文所实现的雷达信号处理机工作流程是:FPGA 通过光纤接收下变频后的基带雷达回波数据和雷达工作控制包,对宽带信号进行运动补偿、脉冲压缩、相参积累和移频处理,以提高距离速度的检测精度和目标的信噪比;然后通过SRIO 接口将数据发送给高性能DSP,即FT_M6678,DSP 再根据工作状态,将数据分配到不同的核中进行自主搜索或跟踪,将处理结果通过SRIO 接口送给中心控制系统

为了更好地监测FT_M6678 的工作状态,我们还设计了信号处理自动检测功能,将FT_M6678 的上电加载状态、通信状态,接口状态及工作温度等信息实时通过emif 总线发送给FPGA,和FPGA 的通信状态等信息一起由FPGA 通过自定义串口或I2C 总线送出,可实时检测板卡工作状态。再利用FT_M6678 的千兆以太网接口,可将目标的A 显数据送出显示,直观观测到目标的运动状态。

FT_M6678 共有8 个核[1-2],工作主频高达1 GHz,每个核都有独立的L1 和L2 缓存,8 核共享4 MB 内存空间,还可外挂64 位2 GB 的DDR3 外部缓存,且功耗较小,各核可以并行运行,也可以利用核间中断流水运行,支持定点、浮点运算,为我们的硬件设计提供了很大的灵活设计空间。本文主要的应用如下页图2,两片DSP 具有不同的ID 编号,每片DSP 根据ID号来进行不同数据和状态的处理,在自主搜索状态下两片DSP 处理过程相同,数据不同,跟踪状态只需一片DSP 处理,另一片DSP 处于待机状态。下页图2 是一片DSP 的处理过程流程图。

核0 通过SRIO 接口接收雷达回波经过脉冲压缩后的数据及控制包,将控制包和数据分别存储在MSMC 空间的自定义位置,接收完成后,等每个核都准备好,然后沿距离方向将数据分段,由核1~核7并行对各段数据进行搜索。搜索时,本文采用的是二维滑窗式的噪声基底计算方法,然后再计算信噪比,信噪比符合要求认为发现目标,对发现的目标距离速度进行解算,因为可能存在距离速度模糊,因次还要进行解模糊计算[3],得到目标的真实距离和速度,所有数据处理完成后,将每个核搜索到的全部目标数据分别存放在指定的MSMC 空间,然后核0 再对搜索到的所有目标进行数据融合,找出符合要求的一个或数个目标。

两片DSP 都处理完成后,再将两个DSP 搜到的目标的距离、速度、角度进行3/5 准则判断,符合3/5准则及认为该目标确实存在,并将两个DSP 搜到的真实目标即两个波束中的目标中重复的目标剔除,然后就可选择目标进行跟踪。

2 工程应用

在工程应用中,通过对国产FT_M6678 芯片的多核使用,发现该芯片在多核应用中,其内存空间的配置也需要特别考虑和注意,由单核应用改为多核应用时(如图4 所示),我们发现程序加载[4-5]空间与核0中全局变量空间发生冲突,具体情况如下。

设计调试完成后,都要将代码固化到FLASH 中,芯片复位或重新上电后,由核0 去执行加载程序,并负责将各个核的代码加载到合适位置(例如:EMIF RAM 空间,DDR 空间,片内共享存储,L2 SRAM 等等),运行加载程序时,还会临时占用核0 L2 SRAM和MSMC 的部分空间。

当前的雷达信号处理功能和需处理的数据量都比较大,因此,程序量也相应占用较大的空间存储,编程所需的变量会较多,这时如果还把变量空间默认放在L2 SRAM,可能会因为空间冲突而导致程序加载后不成功或加载成功后程序运行结果出错。因此,最好将代码(code memory)空间定义在L2 SRAM,变量(data memory)和堆栈(stack memory)空间定义在指定的MSMC 空间XDCADDR 中,如图3 所示。

图5 是变量和堆栈空间设置在L2 SRAM 时,目指速度为430m/s,雷达信号处理检测到的目标速度变化曲线,下页图6 是变量和堆栈空间设置在XDCADDR 时检测到的目标速度变化曲线,和单核处理结果基本一致,观察图5 和下页图6 前段数据可发现,由于空间设置的不合理,会导致目标检测结果更新不连续。

多核下用JTAG 调试时,和单核调试还有一个区别,对需要实施刷新的调试变量在程序中进行cache语句处理或缓存区的开放,否则变量显示不会进行刷新。

这个问题只影响调试时对所需观察变量的实时显示,当程序停止运行时,变量会更新为最终结果,不会影响程序的正常运行结果。多核运行时,每个核都会占用JTAG 资源,而核0 作为主核还要负责整个芯片对外的所有接口的正常输入输出及控制,也需要占用大量JTAG 资源。因此,在用多核工作时,尽量在核0 上不要进行大量的运算,在变量显示列表中尽量显示较少的核0 的变量,对必须在变量列表中显示的核0 的变量,在程序中该变量更新新值的位置加cache语句进行刷新即可。

3 结语

本文基于国产FT_M6678 芯片进行了雷达信号处理机的设计与实现,并结合工程实际,对国产FT_M6678 芯片的多核在应用出现的部分问题进行了分析,并给出了解决这些问题的基本方法,为更好地应用FT_M6678 多核芯片起到了一定的奠定了基础

标签:  多核