文献标识码:A
DOI:10.16157/j.issn.0258-7998.181187
中文引用格式:蒋晓东,于纪言. 基于SoC的新型通用弹载计算机系统设计[J].电子技术应用,2018,44(11):33-36.
英文引用格式:Jiang Xiaodong,Yu Jiyan. Design of a new type of general missile-borne computer based on SoC[J]. Application of Electronic Technique,2018,44(11):33-36.
0 引言
弹载计算机是导弹、制导武器等飞行控制系统的核心部件[1],其工作时不仅实时测量弹体定位和姿态信息,而且同时进行控制指令的输出,此外弹载计算机还负责弹上各部件的协调与配合[2]。随着现代制导武器的不断发展,对于弹载计算机的性能要求也不断提升,因此弹载计算机需要拥有较强的数据处理能力、逻辑运算能力,同时其应用环境的特殊性也导致弹载计算机必须满足小型化和低功耗要求[3]。
郑帅等[4]研究了基于DSP+FPGA的导航制导一体化计算机,设计了一种以DSP为核心算法处理芯片,FPGA为外围输入输出接口的一体化计算机,充分利用FPGA并行加速底层数据处理和DSP核心算法浮点运算能力较强等优势,但其没有从根本上对核心制导算法进行加速,同时多芯片组合的弹载计算机设计不利于小型化与低功耗设计。陈航[5]研究了基于系统级封装(System in a Package,SiP)技术的弹载计算机,提出了采用SiP技术将DSP、FPGA和外围电路封装成为一块系统级芯片以实现弹载计算机小型化的具体方法与思路,但是该方案无法满足通用型弹载计算机设计要求,只适用于某些拥有特定需求的场合,且SiP技术实现成本较高。潘艇[6]研究了弹道微分方程组解算的FPGA实现,提出了以多通道二级并行的方式实现算法硬件加速,但是进行硬件描述语言开发时,其开发复杂度较大,不适合对硬件知识仅稍具了解的软件开发人员。同时VHDL或者Verilog HDL可移植性较低,同时移植时受到FPGA逻辑单元阵列数量的限制。
本文提出一种基于SoC FPGA的新型通用弹载计算机设计方案,利用FPGA部分进行通用接口设计与底层数据并行处理。同时针对串行弹道微分方程求解的速度、精度等问题,提出了一种基于VivadoHLS加速的弹道微分方程计算方法,通过利用Xilinx高层次综合工具Vivado HLS,将C语言编写的弹道微分方程按照HLS处理规范进行修改,进而将代码转换为硬件描述语言,快速生成IP核,从而完成对于串行弹道微分方程的硬件加速。其与片上硬件处理器系统(Hard Processor System,HPS)部分弹道解算程序逻辑相结合,配合弹载计算机外围电路,完成对弹道方程求解的硬件加速。通过实验对比验证,结果表明,该方案提出的基于SoC FPGA通用弹载计算机硬件设计集成度显著提高,弹载程序串行运算结合方法使得程序运算下降一个数量级,得到了较好的弹载程序加速效果,满足制导武器的工作需求,具有一定应用前景。
1 基于SoC FPGA的新型弹载计算机硬件设计
弹载计算机主要功能分为导航与飞控两部分,其中导航部分功能为接收来自惯性测量单元(Inertial Measurement Unit,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语言进行数字系统的描述,并将该系统自动转换成寄存器转换级(Regisiter Transfer Level,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,但其运行是基于时钟节拍的,而非哈佛结构的指令集,同时流水线处理的加入也在一定程度上对弹道解算起到了加速作用。
本次对比实验中,弹道仿真计算的预置参数为:射点与目标相距约9 200 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] 潘艇,杨福彪,朱勇,等.基于龙格-库塔的弹道微分方程解算的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)