基于SoC的新型通用弹载计算机系统设计-AET
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)
工程师:电子产品项目,如何从零到一开始设计电路项目方案?
工程师,在电子产品项目开发领域,从事的工作可以细分为两类
类别一:硬件工程师,也叫电子工程师,主要负责处理电子产品项目的硬件电路原理图方案设计以及PCB Layout的布线设计;类别二:软件工程师,主要负责处理电子产品项目的代码程序方案设计,通过汇编语言、C语言或者VHDL语言开发编写相应的功能软件;之所以划分这么细致,主要是因为“术业有专攻 ”,尤其是在大公司更能体现出,分成硬件研发小组与软件研发小组。
电子产品项目
硬件工程师,在研发项目设计,更多关注的是如何根据项目的功能要求,开发出相应的电路方案;对于一个新的电子产品项目,工程师该如何从零到一开始去展开设计它的电路方案呢?有没有什么好的研发经验可以借鉴呢?
电子产品项目,电路方案到底该如何去开发设计?相信这是工程师非常希望了解的内容,一般可以总结为4点
项目功能需求分析硬件电路框图方案设计详细电路原理图设计电路功能测试验证RKE电路板
为了更好的描述电路方案是如何从零开始,通过这4点完成项目的开发设计,芯片哥以RKE电路项目开发案例 说明
项目功能需求分析
工程师,在面对一个新的电路研发项目,首先需要处理的工作是分析项目的功能需求,也就是确定电路方案设计需要实现的目标;只有瞄准项目功能需求目标,才能找准电路方案设计的方向,才可避免一些不必要的方案讨论。
RKE电路项目,也叫做汽车遥控门禁项目,主要是通过遥控器控制汽车的解锁与关锁,实现汽车防盗的功能;工程师在电路开发设计时,可以分析出它实现的功能包含
1)汽车喇叭的控制
喇叭的作用主要是用于声音的提示,在汽车被盗时,RKE可以通过控制喇叭发出鸣笛声,用以警告。
2)汽车大灯的控制
大灯的作用主要是用于晚间的照明以及提示,在汽车被盗时,RKE可以通过控制大灯的闪烁亮灭,用以警告。
3)汽车门禁的控制
门禁的作用主要是用于栓锁汽车,在没有遥控器的条件下,防止其他人轻易地打开汽车。
4)汽车车窗的控制(可选项)
车窗的作用类似于门禁,主要是用于栓锁汽车;在停车时,通过RKE,可以遥控控制车窗的紧闭。
车窗功能有可能是由BCM控制,也有可能是由RKE控制,在此项目案例中省略
5)汽车遥控器的信号接收
遥控器的作用主要是实现RKE的无线控制,远程操作即可完成汽车的解锁与上锁等功能;
RKE项目需求分析
为了更清楚地描述RKE项目的功能,工程师可以用流程图的形式呈现出,以便直观地做出电路分析。
硬件电路框图方案设计
工程师在分析完项目的功能需求后,接下来需要做的工作是将抽象的功能流程图转换成具体的硬件电路方案。以RKE电路项目案例为说明,讲述具体的设计过程是如何展开的
(a)喇叭电路
喇叭,作为一个发声电子元器件;它的电路工作原理是只需接通电源,使电流流过,喇叭便会发出声音。
工程师,设计电路控制喇叭的电源,即可实现控制喇叭的作用;具体的电路设计方案是使用达林顿管ULN2003,因为达林顿管的驱动电流相比较普通三极管要大。
(b)大灯电路
一个大灯使用常识:在开启左转向灯或者右转向灯时,会伴随发出“滴答滴答”的声音。
基于此要求,工程师会使用继电器驱动大灯,主要是因为继电器在开启或者关断时会产生类似于“滴答滴答”的声音,正好符合大灯的设计功能。
(c)门禁电路
通过分析门禁的控制原理得知,其主要是利用电机带动杆杠实现栓锁与解锁功能;工程师设计电路控制电机的正反转,就可以实现门禁的栓锁与解锁。
电机的正反转,实现的途径是控制电机的电源A与B两端的极性;电源A极性为正﹢,电源B极为负﹣,电机正转;电源A极为负﹣,电源B极性为正﹢,电机反转。
双刀双掷继电器 就能很好地解决输出不同极性的电源;同时在门禁电路中采用继电器控制电机,也是由于在大灯电路中采用了继电器;同一类型器件的大批量采购,可以节约采购的成本。
(d)遥控电路
对于RKE项目,遥控电路主要是遥控器信号的射频接收电路;为了节约项目的开发时间,加快项目研发进度,此处的射频接收电路则直接采用433MHz的射频接收模块电路,用于处理遥控器的信号。
(e)开关量电路
开关量电路,包含按键输入信号处理电路与车速信号、碰撞信号以及发动机转速信号电路等等;由于这些信号是属于数字信号,本质上是同一类型,工程师可以将其统一设计电路处理;具体可以采用数字三极管DTA114为核心器件来设计。
(f)电源电路
RKE电路项目控制器,其工作的电源是由车载电瓶12V与发电机电源12V提供;显然12V不能直接被其他电路系统处理,例如射频接收模块电路的工作电压是5.0V。工程师需要设计电源电路,将12V电压转换成5.0V电压,用以提供其他功能电路工作。典型的设计方案是采用NCV4264,不是采用常用的78M05,主要是因为静态功耗因素。
(g)单片机电路
单片机作为整个RKE电路项目的控制运算芯片,它的选型一般是首先确定外围电路的特性,比如
根据外围开关量信号的输入与输出电路,确定单片机IO引脚的数量;根据外围通信接口的方式,确定单片机SPI与IIC以及UART接口的数量;根据外围电路的信号最大频率,确定单片机运行的主频;根据外围电路的逻辑运算数据量,确定单片机的RAM与Flash大小;通过上述的分析方法以及结合稳定可靠性因素,工程师可以确定RKE电路项目的单片机具体型号,选择为PIC16F1936。
工程师分析完喇叭电路、大灯电路、门禁电路、遥控电路、开关量电路、电源电路以及单片机电路,能较好地整理设计出RKE项目的硬件电路框图的方案
RKE硬件电路框图
在硬件电路框图中,电源电路是负责提供整个项目的工作电压,开关量电路是处理各种数字输入输出信号的电路,单片机是负责电路的逻辑与数据运算,433MHz遥控接收电路是作为遥控器信号的解码电路,继电器是负责驱动大灯与门禁的电机,达林顿管是驱动喇叭以及继电器。
详细电路原理图设计
确定完硬件电路框图方案,工程师就可以设计出项目的完整电路图了;在此过程中,工程师主要的工作包含三部分
01 部分
在每个功能模块电路中添加相应的保护器件;如
在电源电路中,添加压敏电阻220KD14保护器件,保护电源芯片不被过压损坏。在电源电路中,添加防反接二极管1N4007保护器件,保护电源极性接反带来的损害。在开关量信号电路中,添加滤波电容104或者102保护器件,保护其他滤波信号不会影响电路。在电机驱动电路中,添加压敏电阻330KD07保护器件,保护电机不被高压脉冲击伤。02 部分
将不同功能的模块电路接口连接到单片机引脚;如
电源电路的输出5V引脚,连接到单片机的电源VCC引脚;开关量输出信号处理电路,连接到单片机的IO引脚;射频模块接收电路,连接到单片机的中断引脚;达林顿管的驱动电路,连接到单片机的IO引脚;03 部分
把电路图中的所有电子元器件与芯片,它的每一个详细参数都准确计算出;如
贴片电阻的阻值、精度、封装以及类型;贴片电容的容值、耐压值、封装、材质以及精度;二极管的型号与封装;三极管的型号与封装;芯片的型号与封装;在做完这三部分工作后,工程师就基本完成了整个RKE电路项目的原理图设计;具体的详细电路图参考如下
RKE电路原理图----内容较多,图片可能不清晰
RKE电路原理图,详细体现了项目的电路设计方案,包含具体的功能以及参数;
电路功能测试验证
也许工程师会认为,开发设计完项目的电路方案之后,项目基本上就已经可以结束了;实则不然,项目的电路方案设计只是理论的验证,方案设计只有通过实际的功能测试验证才能得到认可;
一般而言,电路功能测试验证的检测标准是判断能否实现项目的全部功能, 以RKE电路项目为例说明
按下遥控器的开锁与关锁按键,RKE电路能否实现电机的正转与反转;拨动左右转向灯开关,RKE电路能否实现左右转向灯的开启;按下喇叭开关,RKE电路能否实现喇叭发出声音;输入碰撞信号,RKE电路能否实现自动解锁功能;按下大灯开关,RKE电路能否实现大灯的开启;RKE电路功能测试验证OK
通过对照项目需要实现的功能,工程师逐一地去测试验证设计的电路方案是否可行;如果测试发现问题,则需要不断地去优化设计,改良方案,升级版本,直至最后通过所有的功能测试验证;
最后的结语
电子产品项目,工程师在开发电路方案,本质上是利用各种不同类型电子元器件与芯片的特性来设计各种不同功能的电路 。依据产品项目需要实现的功能,设计出硬件电路的整体框图方案,然后具体设计出详细的电路原理图,最后进行方案电路的功能测试验证,判断设计的电路方案是否存在不足之处,若没有达到项目功能设计要求,则通过不断地优化升级电路方案,直至完成项目的所有功能,这就是电子产品项目电路方案开发设计的方法 。
工程师,现在你会了吗?
本文由【芯片哥】原创撰写,一个做电子元器件与芯片技术开发与销售的工程师,喜欢就关注芯片哥,和芯片哥一起加油吧!
相关问答
电子 证照 应用 实施 方案 ?(一)政务服务领域。全省各级各类政务服务办事机构、服务窗口和网办平台在办理依申请政务服务事项时,居民身份证电子证照均可代替实体居民身份证使用。对有存档...
电子 白板 方案 到底解决了哪些教学中的 应用 问题?对于电子白板技术在教育场景中应用场景有很多。首先来看一下,电子白板技术的基本点。一般情况下,电子白板包括硬件,软件,系统三个部分。硬件上,电子白板包...
童鞋们!麻烦回答一下!!简单易用的 电子 白板软件 解决方案 ,电...[回答]电子白板实质上是电脑的一个触控输入设备,其显示的就是电脑桌面上的内容,所以,让音乐不停播放,要看您的播放环境是怎样的,如果是直接使用电脑系统的...
十万火急!香港 电子 行业智能制造 解决方案 ,智能制造 解决方案 ...[回答]现在很多企业都已经开始使用MES和WMS系统,星网元智MES系统功能全面,实用、易操作,比较推荐这个。星网元智算是国内智能制造整体解决方案服务商中报...
优质液晶 电子 桌牌 方案 建议有哪些?[回答]华会通始终坚持自主研发,目前有发明专利、软件著作权、实用新型专利、外观专利近百项,产品布局涵盖升降、翻转、台式、平板、电子桌牌等各类无纸化...
帮个忙在座的大佬谁知道!!正规的射频美容仪线路开发 方案设计 ...[回答]1、用户需求调研、负责系统体系结构、功能、性能的分析和总体设计工作;2、项目的开发流程管理,进行项目的计划、管理、跟进工作;3、指导开发工程师...
在座的同志!请问大家 长沙 电子 行业智能制造 解决方案 大概多少...[回答]殊的界面。虽然互联网信息亭试图尽可能少地显示信息,但为了不让数量和按钮过多的工人淹没,它包含执行任务所需的全部内...虽然互联网信息亭试图尽...
电子商务 在软件行业的发展背景现状和前景怎么样啊?中国电子商务发展与现状中国电子商务始于1997年。中国商品订货系统(CGOS)、中国商品交易中心(CCEC)、虚拟"广交会"等大型电子商务项目在1997年相继...
工厂 电子围栏 防盗 解决方案[回答]先来说下前端电子围栏,前端围栏包括终端杆、承立杆还有挂线杆,三种杆子的固定底座以及避雷器和合金线等。这部分的价格是根据具体周界有多少米,然后...
电子 商务沙盘运营攻略?第一步,我们首先需要知道我们这个大赛运营评分的关键,目前我们评分是点击量占20分,转换量占30分,标题优化占50分。那么可以看的出来我们标题优化非常重要,我...