基于DSP的红外搜索跟踪系统软件设计
2021-12-07黄成章李万崇李凯峰
黄成章,李万崇,李凯峰
(华北光电技术研究所,北京 100015)
1 引 言
现代战争中,“先敌发现,先敌打击”是提升战场生存能力的必要手段,红外技术是一种被动式、可全天时工作的探测技术,它可以弥补常规雷达四抗(抗反辐射导弹、抗电子战、抗低空超低空突防、抗隐身目标)能力不足的缺点[1],因此,采用该项技术的红外搜索跟踪系统成为军事预警探测、目标识别、制导等系统中可或缺的装备力量,最早的红外搜索跟踪系统技术始于20世纪60年代,经过几十年的发展,红外搜索跟踪系统性能及各项指标得到了极大提升,从最初的单元传感器发展为至今的具有分辨率的线列、面阵传感器,同时为提升不同战场条件下对各类目标的探测能力,越来越多的具有双波段探测能力的红外搜索跟踪系统被开发出来。
作为红外搜索跟踪系统的“大脑”,高性能的信号处理技术是红外搜索跟踪系统永远追求的目标。而随着红外图像分辨率的提升及双波段探测技术的广泛应用,此外受限于一些装备对体积、功耗的特殊要求,这些对信号处理技术都提出了更高的要求。
针对当前及未来红外搜索跟踪系统对高性能信号处理技术的任务需求,本文基于多核DSP的通用信号处理硬件平台,结合系统功能需求、算法需求及多核DSP硬件特征,设计了一种基于主从架构的多核DSP软件架构,完成了红外搜索与跟踪算法的硬件移植与应用验证。
2 硬件平台
文中采用的硬件平台基于当前主流的FPGA+DSP架构,在设计时,考虑到后续军事装备对国产化任务的应用要求,文中硬件平台选用了Xilinx公司和TI公司的高端主流芯片,一方面这些芯片有国产化对标的解决方案,另一方面考虑了后续装备升级对芯片的资源要求。信号处理板卡采用3UVPX标准架构,单个板卡基于一片Xilinx公司的V7690T和TI公司的TMS320C6678多核处理芯片,板卡的对内对外的指令与数据通路均采用SRIO通路,传输带宽为3.125Gbps。为了实现对双波段的处理,需要采用两块信号处理板卡。
单个TMS320C6678处理器具有8个DSP内核,该芯片是基于TI的C66x DSP内核的KeyStone构架创建的。其运行速度最高可达1.25GHz。单个核心运算能力可高达40 GMACS和20 GFLOPS,每个核心具有32 kB L1P、32 kB L1D、512 kB L2,4 MB多核共享内存,具有PCle、Serial RapidIO、Gigabit Ethernet以及TI的HyperLink等多种高速接口,广泛应用于通信、雷达等高速信号处理领域。
3 软件设计
红外搜索跟踪系统软件作为一种军用嵌入式软件,需要具备良好的可靠性,嵌入式软件的可靠性是关系到武器装备可靠性的重要环节,也是当前武器装备可靠性研究的所面临的一个重要的课题[2]。实际开发过程中,除了要严格进行软件工程化管理、健全软件文档及增加软件产品的可靠性度量,更重要的是要在设计阶段增加软件的容错设计、冗余设计,通过简化设计,提升软件产品的模块化程度,同时尽量降低软件的模块复杂性,此外要尽可能的重用现有的成熟软件资源,在软件设计中也要增加关键环节的故障上报机制。
3.1 功能设计
双波段红外搜索跟踪系统软件,除了要实现针对中、长波两个波段图像的实时处理,实现目标检测与跟踪的业务逻辑功能,还要实现硬件接口的初始化、通信协议、健康管理及模拟训练功能,实际设计中,采用模块化分层设计思想对这些关键功能进行组织,其组成框图如图1所示。
图1 红外搜索跟踪软件功能构成Fig.1 Composition of infrared search and tracking software
图1中个功能模块实现的具体功能描述如下:
(1)目标检测:该功能属于系统业务逻辑的一部分,主要接收来自FPGA的中/长波红外图像及预处理结果,在系统的控制流程下,实现目标检测算法的核心逻辑,完成兴趣目标的检测。
(2)目标跟踪:该功能同样属于系统核心业务逻辑的一部分,接收来自目标检测算法提取的兴趣目标,对跟踪波门的兴趣目标进行目标跟踪算法的处理,并输出目标的脱靶量信息控制伺服运动,将目标锁定在视野中心,实现对目标的跟踪。
(3)模拟训练:该部分功能主要是系统的辅助功能,主要用于对操作人员的虚拟作战训练,在前端探测器关闭的情况下,通过生成模拟的目标信息输出,实现目标检测、目标跟踪的模拟功能验证,减少设备的使用寿命,提升设备的使用效率,同时可以使作战人员快速熟悉系统的操作流程及特性。
(4)通信协议:其主要实现信号处理板对内对外的指令及数据交互协议,进而为后续的系统流程模块提供信息,并将来自流程控制的信息下发到下一层模块。
(5)执行环境:执行环境模块是整个软件的核心,其基于高内聚、低耦合的设计思想,对系统关键功能进行抽象,最大限度的减少顶层应用对底层模块的依赖及耦合性,提升应用软件的可移植性。其核心功能包括:
1) 实现通信中间件的功能,降低对不同应用场景的通信协议的依赖性;
2) 负责根据接收的指令及数据信息调度目标检测、目标跟踪及模拟训练模块;
3) 向下一层提供系统业务逻辑的处理结果(如目标位置信息及控制伺服的脱靶量信息等)。
(6)故障管理:该模块的引入参考了机载预测与健康管理模块的功能,机载设备中的预测与健康管理(Prognostics and Health Management,PHM)作为实现视情维修(Condition Based Maintenance,CBM)的关键使能技术,利用飞机已有的传感器、数据源和少量的专用传感器,通过综合采样来自飞机各部件、子系统的基础数据,应用智能计算技术和诊断方法,充分利用各方面、各层次的状态信息,实现综合诊断与测试,提高故障检测率、隔离率,滤除虚警[3]。本设计中的故障管理模块旨在监测并提供信号处理软件关键位置的健康状态,对关键故障按等级进行上报,提供信号处理系统的健康状态信息,从而提高信号处理系统的安全性、可靠性及可测试性。
(7)硬件驱动:该模块位于整个设计的最底层,主要提供软件中个硬件资源的调用接口,实现对各个硬件资源(如PLL、内存、SRIO及EDMA等)的初始化及应用。
3.2 架构设计
红外搜索跟踪系统的软件架构设计,要充分考虑TMS320C6678硬件平台的特点及应用本身的任务需求,从而设计一款既满足应用需求、能够充分发挥硬件性能,又能保持一定的简洁性及可扩展能力。
针对 TMS320C6678多核 DSP 芯片的应用开发,TI允许开发人员采用两种方式开发,一种是在 SYS/BIOS[4]操作系统环境下进行应用开发,另一种是基于前后台应用模式进行开发设计。前者操作系统为多核DSP的开发提供了多种系统调用接口,方便开发者构建多核应用程序,但存在一定的资源消耗,同时其性能有一定损失,因此本文采用基于裸机的前后台程序进行多核应用程序设计。
针对双波段红外搜索跟踪系统,需要采用两块相同架构的信号处理板卡(下文简称处理板A和处理板B)进行软件实现,实际工程实现时,采用处理板A完成长波图像的任务处理,采用处理板B完成中波图像的任务处理,除了输入图像的分辨率、处理帧频及算法有些许不同外,两种板卡的程序结构完全一致。
多核程序设计模型常用的方案有主从模型、数据流模型以及OpenMP 模型。
主从模型是一种控制集中,执行分布的方案。在多核DSP 上core0 为主核,负责调度任务到从核,同时控制每个核的负载,实现负载均衡化。从处理器之间的任务彼此独立,任务的执行只受主处理器的控制。
数据流模型是一种分布式控制和执行的方案。多核DSP下,每个核运行不同的功能处理数据,借助共享内存,数据由一个核传输给另一个核。利用该种模型处理时,难点在于如何将程序映射到不同的核上以及确保核间数据传输时的低延迟。
OpenMP 是为多处理器上编写并行程序而设计,指导共享内存、多线程并行的编译制导指令和应用程序编程接口,是一种基于共享存储体系结构的可移植编程模型[5]。
由于需求的复杂性,单一的模式很难实现实时的处理,通过采用混合处理模式,可以进一步提升软件的实时性,同时也能减少一定的资源消耗,文中综合应用了主从模型和数据流模型实现多核DSP应用设计。
3.3 软件实现
3.3.1 工程设计
对于多核DSP的应用程序实现方式可以分为两种,一种方式为所有核心使用统一的工程,另一种方式为每一个核心建立独立的工程,这两种方式各有利弊,前者的好处在于当使用过的核心多时,开发人员仅维护一个工程即可,方便管理,其不足是,程序设计过程中要充分考虑不同核心的功能差异,进行差异化处理设计,此外还会存在一定程度的资源浪费,例如对于某些核心独享的全局变量,即使本核心未使用,程序编译时也会为期分配存储空间;后者的好处在于可以针对性额对每个核心进行单独设计优化,最大限度的提升资源利用率,其缺点是随着核心的增加,开发人员需要管理的工程数量也会线性增加;综合考虑实际应用需求,文中采用独立工程的方式实现,实际过程中对各个功能模块进行合理划分抽象,对公用的源文件采取多工程共享的方式,减少后续的维护难度。
3.3.2 数据结构设计
红外搜索跟踪软件中核心数据结构按功能划分,主要分为两类,一类为存储系统状态及流程控制的状态控制信息,一类为算法内部业务逻辑信息;按分配区域划分,可以分为共享数据存储区和独立存储区,前者为多个核心之间共享访问维护,后者为单个核心独立控制维护,一般为了提升DDR的访存速度,会使能Cache功能,此时对于共享存储区的访问维护由于涉及多个主设备的同时访问,因此要注意缓存一致性维护。
软件中的一个关键数据结构为程序中用于记录系统参数状态的数据结构,其定义如下:
typedef struct _SysInfo_t{
//帧号
Uint16 frameNumber;
//光轴方位
float position;
//光轴俯仰
float pitch;
//图像垂直分辨率
Uint16 rows;
//图像水平分辨率
Uint16 cols;
//瞬时视场
float ifov;
//时间信息
Uint64 timeVal;
}SysInfo_t;
该数据结构主要由Core0进行维护,其他处理核心知识读取访问里面的信息,用于后续算法处理,因此其分配在共享数据存储区。另外一个比较重要的两个数据结构分别为core0与core1及core2交互的目标检测数据结构和目标跟踪数据结构,为了方便主从模式的处理架构的流程控制,除了必要的上报信息,该数据结构还加入了一些反馈控制信息,以方便core0获取core1及core2的处理状态。
/** 检测信息**/
typedef struct _ProtDetectorInfo_t {
//命令执行对象
Uint32 cmdExeObj;
//目标个数
Uint8 count;
//帧号
Uint16 frameNumber;
//反馈工作状态
Uint8 response;
//目标信息
ProtDResults_t result[DETECT_NUM];
//故障信息
Uint8 malfunctionInfo;
} ProtDetectorInfo_t;
/** 跟踪信息**/
typedef struct _ProtTrackerInfo_t {
//命令执行对象
Uint32 cmdExeObj;
//帧号
Uint16 frameNumber;
//反馈工作状态
Uint8 response;
//目标方位偏差
float rowOffset;
//目标俯仰偏差
float colOffset;
//目标方位角
float position;
//目标俯仰角
float pitch;
//故障信息
Uint8 malfunctionInfo;
} ProtTrackerInfo_t,*pProtTrackerInfo_t;
3.3.3 软件流程
针对文中的应用场景,单个波段的软件流程设计如图2所示,该流程中同样表明了各个处理核心的功能分配。
图2中展示了单个波段下红外搜索跟踪系统软件的数据流图及相应的DSP核心功能分配。从上图可以发现,文中采用了具有两级主从模式+流水模式的混合处理架构。FPGA实现对中/长波图像的传输及预处理,并负责完成处理结果的上报,中/长波图像及预处理数据传输至DSP的DDR3空间。core0作为一级主处理核心,负责完成硬件的初始化及对外的交互及对内的同步控制,为了方便后续不同功能核心的访问,core0在中断服务程序中将收到的数据及处理结果搬移至处理缓存区,并设置数据接收到同步标志,触发core1和core2的处理流程;core1和core2作为二级主处理核心,其中core1实现目标检测功能,负责管理控制core3-core7的实际目标检测算法的运行,并对这些核心的处理结果进行合并,一方面将处理结果作为上报信息反馈给core0,另一方面将目标信息传递给core2,由core2对波门内的兴趣目标进行跟踪处理。从处理器core3-core7负责对不同图像块的处理,这里的图像分块指将输入图像从上到下等分成6块,由不同处理核心进行并行处理。
图2 处理核心功能分配及流程框图Fig.2 Processing core function allocation and flow chart
4 实验验证
在某型红外搜索跟踪系统中,对该信号处理软件进行了应用验证,该红外搜索跟踪系统的探测部分由中、长波两个探测器构成,实现对不同应用场景的有效探测。系统的中、长波两个波段的红外视频主要参数如表1所示。
表1 红外视频主要参数Tab.1 Main parameters of infrared video
从表1可知,为了满足系统的实时处理要求,红外搜索跟踪系统软件自接收到来自FPGA的图像及预处理数据到输出最终的检测及告警信息,应控制在10 ms以内,两个波段,由于中波的分辨率更大一些,因此其实时处理能力更加严格。软件中的核心耗时代码主要为目标检测及目标跟踪的核心业务代码。
为了满足系统的实时处理要求,文中对算法逻辑进行了优化,结合文献[6]中的DSP硬件优化方法,综合运用编译器优化选项-O3及编程中的优化预处理宏,提升了算法的实时处理能力,使得算法的最终处理时间满足中长波的实时处理要求,其中中波峰值处理时间在8.3 ms左右,长波峰值处理在4.2 ms左右。实际的搜索跟踪告警效果如图3所示。
图3中,左侧为长波图像,右侧为中波图像,以上为采用长波图像对目标进行跟踪的效果,中波和长波的检测功能同时打开。
图3 中长波红外搜索跟踪效果Fig.3 The effect of infrared search and tracking of medium and long wave
5 结 论
文中采用基于混合模式的并行处理架构,设计了基于多核DSP处理芯片设计了红外搜索跟踪信号处理软件,对核心业务逻辑代码进行了优化处理,实现了对中长波双波段两个图像的实时处理,实践证明,该软件满足系统的实际作战使用要求,此外,该硬件系统设计之初考虑了国产化的替换选型方案,这位后续将该软件适配到国产多核DSP处理架构上提供了便利。