0 前言
弹载计算机是导弹、制导武器等飞行控制系统的核心部件[1]。 工作时,它不仅实时测量导弹的定位和姿态信息,同时输出控制指令。 此外,弹载计算机还负责导弹上的各个部件。 协调与合作[2]。 随着现代制导武器的不断发展,对弹载计算机的性能要求也不断提高。 因此,弹载计算机需要具备较强的数据处理能力和逻辑计算能力。 同时,其应用环境的特殊性也要求弹载计算机满足小型化和低功耗的要求[3]。
郑帅等. 文献[4]研究了基于DSP+FPGA的导航制导一体化计算机,设计了一种以DSP为核心算法处理芯片、FPGA作为外围输入输出接口的一体化计算机。 他们充分利用FPGA来并行加速底层数据处理。 它具有强大的浮点计算能力和DSP核心算法的优点,但并没有从根本上加速核心制导算法。 同时,弹载计算机采用多芯片组合的设计,不利于小型化和低功耗设计。 陈航[5]研究了基于系统级封装(SiP)技术的弹载计算机,提出利用SiP技术将DSP、FPGA及外围电路封装成片上系统,实现弹载计算机的小型化电脑。 具体方法和思路,但该方案无法满足通用弹载计算机的设计要求,仅适用于某些有特定需求的场合,且SiP技术的实现成本较高。 潘婷[6]研究了弹道微分方程求解的FPGA实现,提出了一种多通道两级并行的方法来实现算法硬件加速。 然而,在开发硬件描述语言时,其开发复杂度较大,不适合只有很少硬件知识的软件开发人员。 同时,VHDL或Verilog HDL可移植性较低,移植时受到FPGA逻辑单元阵列数量的限制。
本文提出一种基于SoC FPGA的新型通用弹载计算机设计方案,利用FPGA部分进行通用接口设计和底层数据并行处理。 同时,为了解决序列弹道微分方程的速度和精度问题,提出了一种基于VivadoHLS加速的弹道微分方程计算方法。 利用Xilinx高级综合工具Vivado HLS,根据HLS对用C语言编写的弹道微分方程进行处理。 修改规范,将代码转换为硬件描述语言,快速生成IP核,完成串行弹道微分方程的硬件加速。 它与片上硬核处理器系统(HPS)的部分弹道计算程序逻辑相结合,配合弹载计算机的外围电路,完成求解弹道方程的硬件加速。 通过实验对比验证,结果表明,本方案提出的基于SoC FPGA的通用弹载计算机硬件设计的集成度得到了显着提高。 弹载程序的串行运算方法将程序运算减少了一个数量级,实现了更好的弹载程序加速。 效果满足制导武器的工作要求,具有一定的应用前景。
1 基于SoC FPGA的新型弹载计算机硬件设计
弹载计算机的主要功能分为导航和飞行控制两部分。 导航部分的功能是接收惯性测量单元(IMU)、卫星定位、磁力计等导航设备的信息,并进行弹道计算和预测; 飞行控制部分主要根据导航处理的结果进行飞行控制工作,完成最终的制导目的[7]。 以某型简易制导导弹为例,本文提出的基于SoC FPGA的新型通用弹载计算机整体功能结构图如图1所示,包括IMU、卫星定位模块、地磁测量等SoC的FPGA部分完成通用接口和弹道微分方程求解器的设计,HPS部分完成卫星定位信号、IMU信号、磁强度信号等组合求解程序的设计,同时实时存储工作数据并提供测试接口。
在接口资源设计过程中,我们充分利用FPGA硬件的并行特性,进行通用接口设计,避免串行处理器与外部交互时,因中断、采集、通信而导致速度慢、资源调用混乱等问题。设备。 。 因此,弹载计算机工作过程中,设计FPGA通过SPI接口或IIC接口实时接收IMU传来的信号,通过RS232以一定频率实时采样卫星定位信息。串行通讯接口。 同时,它还通过AD采样等方式收集地磁场数据。 传感器数据等。FPGA部分还通过采样霍尔传感器AD实时监控执行器的运行状态,并通过PWM输出接口向执行器传输控制指令。
2 基于SoC FPGA的串并行导弹装载程序设计
2.1 导弹装载方案总体设计
弹载程序计算的核心是实时测量导航数据,利用外部导航信息快速求解弹道要素,获得修正指令,输出至舵机进行控制导航。 如上所述,这种新型弹载计算机解决方案采用FPGA部分进行外部数据接口的总体设计,进行底层采集和处理。 底层数据处理完毕后,HPS部分运行导弹装载程序逻辑,执行并计算预定策略。 当系统进行弹道微分方程求解弹道单元时,HPS通过AXI总线将数据传输到FPGA部分,利用其中的弹道微分方程硬件求解器进行求解计算。 当计算完成后,一方面FPGA部分将结果返回给HPS,HPS进行进一步处理并存储记录; 另一方面,FPGA部分综合计算计算结果和当前舵机状态,通过预定策略得到修正指令,发送给外部伺服执行器进行控制。 SoC FPGA内部装弹程序整体流程如图2所示。
2.2 导弹装载程序SoC硬件加速设计
在本文的设计中并行计算机体系结构:硬件软件结合的设计与分析,底层数据采集和处理全部由FPGA完成,从而大大简化了HPS部分的软件执行流程。 利用FPGA硬件的并行特性,将大量的底层数据交互和处理工作交给其执行,大大提高了弹载计算机的数据采集和通信效率,减轻了弹载计算机的软件执行负担。 HPS软件的一部分,可以有效提高数据处理的速度。 非常棒,对软件程序运行有一定的加速作用。 然而,导弹计划执行过程中主要耗时的部分是求解弹道微分方程。 因此,仅仅利用FPGA设计通用接口,减少HPS部分底层数据处理量并不能有效减少弹道求解时间。 同样,对于串行弹道计算过程,减少迭代次数和步长、提高软件代码的优化程度[8]只能在一定程度上改善计算时间过长的问题。
因此,本文提出利用Vivado HLS软件进行硬件加速来求解弹道微分方程,实现一个弹道方程硬件求解器,同时配合HPS软件部分实现导弹串行与并行处理相结合的方式——弹载程序是完成弹载整体加速的计算机软件。 。
2.2.1 Zynq SoC FPGA 和 Vivado HLS[9-10]
Vivado HLS是Xilinx推出的高级综合工具。 它采用C、C++或SystemC语言来描述数字系统,并自动将系统转换为寄存器传输级(RTL)代码,即生成硬件IP核来完成串行程序的并行加速。 其设计模式如图3所示。
使用Vivado HLS进行算法硬件并行加速的优点是:
(1)采用高级代码编程有助于降低开发难度,提高开发效率。 HLS进行代码硬件转换时,用户只需修改C语言程序安装规范即可生成硬件描述语言,有利于提高逻辑和处理过程复杂的弹道计算程序的开发、修改和维护效率。
(2)可移植性高。 由于HLS采用高级语言编程输入,不涉及硬件描述,且软件提供标准总线接口,因此源代码可移植性强。
(3)易于模拟。 HLS可以直接模拟C语言,并直接将模拟结果与CPU执行进行比较,可以有效提高模拟效率。
2.2.2 弹道差分解加速和SoC系统设计
对于弹道微分方程,软件串行执行的主要耗时过程是迭代计算过程,其中每次迭代都包含多次乘法和除法、三角函数和平方根运算。 同时,在运行过程中,前后两个数据是相互关联的。 这种结构并不能完全重写并行硬件算法。 因此,在使用硬件描述语言来执行该过程时,主要的加速思想体现在不同优先级的操作上。 每个迭代操作过程中的同级操作被构造成同步流水线并同步运行,从而大大减少了串行操作的耗时。 当系统的弹道微分方程同级运算较多、各级内部运算较多时,硬件同步加速效果更加明显。
弹道微分方程求解软件的设计是采用C语言编写函数的计算方法; 而硬件并行加速的设计就是利用HLS将软件代码转换成RTL电路。 最后,HLS从串行软件生成IP核,并将其应用到实际的工程综合中,完成SoC系统设计。 利用HLS进行硬件加速求解弹道方程的流程如图4所示。本文设计的弹载计算机SoC系统如图5所示。
3 实验结果与分析
为了与运行串行弹道计算程序的常规弹载计算机的计算能力进行比较,本文以某型制导弹药为研究对象,设计了三组相同参数的弹道飞行模拟实验。 实验中求解弹道方程的迭代步骤都是相同的。 设置为0.5,分别在ARM+FPGA、DSP+FPGA和SoC FPGA三个平台上编写并实现导弹装载程序,比较三个平台弹道计算单次计算的耗时情况。 其中,在ARM+FPGA和DSP+FPGA的对比实验中,弹道计算程序完全由ARM或DSP串行执行,FPGA仅负责外围数据采集过程。
实验结果如表1所示。从表分析可以看出,本次仿真实验中ARM+FPGA平台耗时最长,计算能力最弱,DSP+FPGA平台次之。 对于本文提出的基于SoC FPGA的新型弹载计算机平台,步长为0.5的弹道飞行模拟实验最大单次计算时间仅为3.9 ms。 这主要是因为求解了最耗时的弹道方程。 在此过程中,利用FPGA的并行处理特性,将串行计算转化为硬件并行加速。 同时,虽然FPGA的主频只有100 MHz,但其运行是基于时钟节拍而非哈佛结构指令集。 同时,流水线处理的加入也在一定程度上加速了弹道计算。
本次对比实验中,弹道模拟计算预设参数为:射击点距目标距离约9200 m,横向偏转约600 m,弹药总飞行时间约51 s。 根据基于SoC FPGA的新型通用弹载计算机得到的结果绘制弹道仿真曲线,如图6至图8所示。针对实时性要求较高的武器制导领域,新型通用弹载计算机本文提出的基于SoC FPGA的专用弹载计算机完全满足计算性能要求。
4。结论
通过分析现有常规弹载计算机和串行弹道程序的特点,采用并行和多核处理架构的SoC FPGA和Vicado HLS高级综合工具,设计了一种新型通用弹载计算机硬件和串并行程序。提出了导弹方案设计,并利用HLS的软件开发特点并行计算机体系结构:硬件软件结合的设计与分析,大大缩短了弹载计算机系统的研制周期。 经过实验验证,新型弹载计算机在保证有效完成功能指标、精确求解弹道要素的前提下,实现了硬件结构的小型化和弹道解方程的硬件并行加速,取得了良好的成绩。 实验结果具有较高的工程实用价值。
参考
[1] 孙玉环,李永红,岳凤英,等。 基于LabVIEW的弹载计算机测试系统[J]. 电子技术应用,2015,41(6):55-58。
[2] 孔德崩. 基于多核DSP的综合制导控弹载计算机设计[D]. 北京:北京理工大学,2016。
[3] 高敏,任海龙,杨芳,等。 基于DSP+FPGA的弹载计算机设计[J]. 计算机测量与控制, 2014, 22(12): 3995-3997.
[4] 郑帅,张曦,孙长军. 基于DSP+FPGA的导航制导一体化计算机设计[J]. 计算机测量与控制, 2016, 24(12): 100-102, 121.
[5] 陈航. 基于SiP技术的弹载计算机研究[J]. 机电产品开发与创新,2016, 29(4): 14-16.
[6] 潘婷,杨福标,朱勇,等。 基于Runge-Kutta的弹道微分方程求解的FPGA实现[J]. 计算机测量与控制, 2015, 23(12): 4217-4220.
[7] 李翠娟,苟利民,何英,等。 基于双DSP的弹载计算机设计与实现[J]. 电子技术, 2016(6): 46-47, 45.
[8] 李阳. 弹载计算机程序优化研究[J]. 航空武器,2014(5):37-40。
[9] 张俊涛,王元伟,庞铎。 一种硬件加速OpenCV图像处理方法研究[J]. 电子技术应用,2015,34(22):41-43。
[10] 彭锡武,张涛。 基于Vivado HLS的边缘检测硬件加速应用[J]. 电子技术应用,2017,43(5):70-73。
作者信息:
蒋晓东、于继言
(南京理工大学智能弹药国防重点学科实验室,江苏南京 210094)