文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181187
中文引用格式: 蔣曉東,于紀言. 基于SoC的新型通用彈載計算機系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,,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 引言
彈載計算機是導(dǎo)彈,、制導(dǎo)武器等飛行控制系統(tǒng)的核心部件[1],其工作時不僅實時測量彈體定位和姿態(tài)信息,,而且同時進行控制指令的輸出,,此外彈載計算機還負責(zé)彈上各部件的協(xié)調(diào)與配合[2]。隨著現(xiàn)代制導(dǎo)武器的不斷發(fā)展,,對于彈載計算機的性能要求也不斷提升,,因此彈載計算機需要擁有較強的數(shù)據(jù)處理能力、邏輯運算能力,,同時其應(yīng)用環(huán)境的特殊性也導(dǎo)致彈載計算機必須滿足小型化和低功耗要求[3],。
鄭帥等[4]研究了基于DSP+FPGA的導(dǎo)航制導(dǎo)一體化計算機,設(shè)計了一種以DSP為核心算法處理芯片,,F(xiàn)PGA為外圍輸入輸出接口的一體化計算機,,充分利用FPGA并行加速底層數(shù)據(jù)處理和DSP核心算法浮點運算能力較強等優(yōu)勢,但其沒有從根本上對核心制導(dǎo)算法進行加速,,同時多芯片組合的彈載計算機設(shè)計不利于小型化與低功耗設(shè)計,。陳航[5]研究了基于系統(tǒng)級封裝(System in a Package,SiP)技術(shù)的彈載計算機,,提出了采用SiP技術(shù)將DSP、FPGA和外圍電路封裝成為一塊系統(tǒng)級芯片以實現(xiàn)彈載計算機小型化的具體方法與思路,,但是該方案無法滿足通用型彈載計算機設(shè)計要求,,只適用于某些擁有特定需求的場合,且SiP技術(shù)實現(xiàn)成本較高,。潘艇[6]研究了彈道微分方程組解算的FPGA實現(xiàn),,提出了以多通道二級并行的方式實現(xiàn)算法硬件加速,但是進行硬件描述語言開發(fā)時,,其開發(fā)復(fù)雜度較大,,不適合對硬件知識僅稍具了解的軟件開發(fā)人員。同時VHDL或者Verilog HDL可移植性較低,,同時移植時受到FPGA邏輯單元陣列數(shù)量的限制,。
本文提出一種基于SoC FPGA的新型通用彈載計算機設(shè)計方案,利用FPGA部分進行通用接口設(shè)計與底層數(shù)據(jù)并行處理,。同時針對串行彈道微分方程求解的速度,、精度等問題,提出了一種基于Vivado HLS加速的彈道微分方程計算方法,通過利用Xilinx高層次綜合工具Vivado HLS,,將C語言編寫的彈道微分方程按照HLS處理規(guī)范進行修改,,進而將代碼轉(zhuǎn)換為硬件描述語言,快速生成IP核,,從而完成對于串行彈道微分方程的硬件加速,。其與片上硬件處理器系統(tǒng)(Hard Processor System,HPS)部分彈道解算程序邏輯相結(jié)合,,配合彈載計算機外圍電路,,完成對彈道方程求解的硬件加速。通過實驗對比驗證,,結(jié)果表明,,該方案提出的基于SoC FPGA通用彈載計算機硬件設(shè)計集成度顯著提高,彈載程序串行運算結(jié)合方法使得程序運算下降一個數(shù)量級,,得到了較好的彈載程序加速效果,,滿足制導(dǎo)武器的工作需求,具有一定應(yīng)用前景,。
1 基于SoC FPGA的新型彈載計算機硬件設(shè)計
彈載計算機主要功能分為導(dǎo)航與飛控兩部分,,其中導(dǎo)航部分功能為接收來自慣性測量單元(Inertial Measurement Unit,IMU),、衛(wèi)星定位,、磁強計等導(dǎo)航設(shè)備的信息,并進行彈道解算與預(yù)測,;飛控部分則主要根據(jù)導(dǎo)航處理所得結(jié)果進行飛行控制工作,,以完成最終的制導(dǎo)目的[7]。以某型簡易制導(dǎo)彈丸為例,,本文提出的基于SoC FPGA的新型通用彈載計算機總體功能結(jié)構(gòu)示意圖如圖1所示,,包含IMU、衛(wèi)星定位模塊,、地磁測量模塊等,。其中SoC的FPGA部分完成通用接口與彈道微分方程求解器設(shè)計,HPS部分完成對衛(wèi)星定位信號,、IMU信號,、磁強信號等組合解算程序設(shè)計,同時將工作數(shù)據(jù)進行實時存儲,,并提供測試接口,。
在接口資源設(shè)計過程中,充分利用FPGA硬件并行的特點,,進行通用接口設(shè)計,,以避免串行處理器與外部設(shè)備交互數(shù)據(jù)時因中斷,、采集與通信所導(dǎo)致的速度較慢、資源調(diào)用紊亂等問題,。因此在彈載計算機工作過程中,,設(shè)計FPGA通過SPI接口或者IIC接口實時接收來自于IMU的信號,通過RS232串行通信接口以一定頻率實時采樣衛(wèi)星定位信息,,同時還通過AD采樣等方式采集來自地磁傳感器的數(shù)據(jù)等,。FPGA部分還通過對霍爾傳感器AD采樣,實時監(jiān)控執(zhí)行機構(gòu)運行狀態(tài),,并通過PWM輸出接口將控制指令傳輸給執(zhí)行機構(gòu),。
2 基于SoC FPGA串并行彈載程序設(shè)計
2.1 彈載程序整體設(shè)計
彈載程序計算的核心是實時測量導(dǎo)航數(shù)據(jù),利用外部導(dǎo)航信息,,快速地進行彈道諸元的求解,,并得到修正指令,輸出至舵機進行控制導(dǎo)航,。如前文所述,,本文新型彈載計算機方案采用FPGA部分進行外部數(shù)據(jù)接口通用設(shè)計,進行底層的采集與處理,。待底層數(shù)據(jù)處理完畢后,,HPS部分運行彈載程序邏輯,進行預(yù)定策略的執(zhí)行與運算,。當系統(tǒng)進行彈道微分方程求解彈道諸元時,,HPS將數(shù)據(jù)通過AXI總線傳輸至FPGA部分,利用其中的彈道微分方程硬件求解器進行求解計算,。當計算完畢后,,一方面FPGA部分將結(jié)果返回至HPS,HPS進行進一步處理與存儲記錄,;另一方面,,F(xiàn)PGA部分綜合計算計算結(jié)果與當前舵機狀態(tài),通過預(yù)定策略求得修正指令,,實時發(fā)送至外部舵機執(zhí)行機構(gòu)進行控制,。SoC FPGA內(nèi)部彈載程序整體流程如圖2所示,。
2.2 彈載程序的SoC硬件加速設(shè)計
本文設(shè)計中,,底層數(shù)據(jù)采集與處理全部由FPGA完成,因此大大簡化了HPS部分的軟件執(zhí)行流程,。利用FPGA硬件并行的特點,,把大量的底層數(shù)據(jù)交互與處理工作交于其執(zhí)行,極大地提高了彈載計算機的數(shù)據(jù)采集通信效率,,降低了HPS軟件部分軟件執(zhí)行負擔(dān),,可以有效提高數(shù)據(jù)處理的魯棒性,,具有一定的軟件程序運算加速效果。但是彈載程序在執(zhí)行過程中主要耗時部分為求解彈道微分方程部分,,因此僅僅利用FPGA設(shè)計通用接口,,而降低HPS部分的底層數(shù)據(jù)處理量并不能有效降低彈道求解時間。同樣,,針對串行彈道解算過程,,降低迭代次數(shù)與步長、提高軟件代碼的優(yōu)化程度[8]均只能在一定程度上改善計算耗時過大的問題,。
因此本文提出對于彈道微分方程求解利用Vivado HLS軟件進行硬件加速,,實現(xiàn)彈道方程硬件求解器,同時配合HPS軟件部分實現(xiàn)彈載程序串并行處理結(jié)合的執(zhí)行方式,,以完成對彈載計算機軟件整體的加速,。
2.2.1 Zynq SoC FPGA與Vivado HLS[9-10]
Vivado HLS是Xilinx推出的一款高層次綜合工具,其使用C,、C++或SystemC語言進行數(shù)字系統(tǒng)的描述,,并將該系統(tǒng)自動轉(zhuǎn)換成寄存器轉(zhuǎn)換級(Regisiter Transfer Level,RTL)代碼,,即生成硬件IP核,,以完成對串行程序的并行加速。其設(shè)計模式如圖3所示,。
利用Vivado HLS進行算法硬件并行加速的優(yōu)點有:
(1)使用高級代碼編程,,有利于降低開發(fā)難度,提高開發(fā)效率,。HLS進行代碼硬件轉(zhuǎn)換時,,用戶只需要將C語言程序安裝規(guī)范進行修改便可生成硬件描述語言,有利于邏輯與處理過程復(fù)雜的彈道解算程序開發(fā)與修改維護效率的提高,。
(2)移植性較高,。因為HLS使用的是高級語言編程輸入,不涉及硬件描述,,而且軟件提供了標準的總線接口,,因此源碼的移植性較高。
(3)易于仿真,。HLS可以對C語言直接進行仿真,,并且直接進行仿真結(jié)果與CPU執(zhí)行比較,可以有效提升仿真效率,。
2.2.2 彈道微分求解加速與SoC系統(tǒng)設(shè)計
針對彈道微分方程,,其軟件串行執(zhí)行時的主要耗時在迭代計算過程當中,其中每一步迭代均包含多次乘除法,、三角函數(shù)和開平方運算,。同時在運算過程中,,前后兩次的數(shù)據(jù)是相互關(guān)聯(lián)的,該種結(jié)構(gòu)無法完全進行并行硬件算法的改寫,。因此運用硬件描述語言執(zhí)行這一過程時,,主要加速思想體現(xiàn)在各同優(yōu)先級運算之間。將每一次迭代運算過程中的同級運算構(gòu)建同步流水線,,進行同步運行,,因此將串行運行的耗時大大降低。當系統(tǒng)彈道微分方程的同級運算越多,、每一級內(nèi)部運算越多時,,硬件同步加速效果越明顯。
彈道微分方程求解軟件設(shè)計即是將計算方法利用C語言編寫函數(shù),;而對其進行硬件并行加速設(shè)計則是利用HLS將軟件代碼轉(zhuǎn)換為RTL電路,。最終HLS將串行軟件生成IP核,應(yīng)用到實際的工程綜合當中,,完成SoC系統(tǒng)設(shè)計,。由此利用HLS進行對彈道方程求解進行硬件加速的流程如圖4所示。本文設(shè)計的彈載計算機SoC系統(tǒng)如圖5所示,。
3 實驗結(jié)果與分析
為了與運行串行彈道解算程序的常規(guī)彈載計算機進行計算能力對比,,本文以某型制導(dǎo)彈藥為研究對象,設(shè)計了三組參數(shù)相同的彈道飛行仿真實驗,,實驗中彈道方程求解迭代步長均設(shè)為0.5,,同時在ARM+FPGA、DSP+FPGA與SoC FPGA三個平臺上分別進行彈載程序的編寫與實現(xiàn),,以對比三者在彈道解算上單次計算的耗時情況,。其中ARM+FPGA、DSP+FPGA對比實驗中,,彈道解算程序均完全由ARM或DSP串行執(zhí)行,,F(xiàn)PGA均只負責(zé)外圍數(shù)據(jù)的采集過程。
實驗結(jié)果如表1所示,。由表分析可知,,ARM+FPGA平臺在該次仿真實驗中耗時最長,其計算能力最弱,,DSP+FPGA平臺的計算能力次之,。而對于本文提出的基于SoC FPGA的新型彈載計算機平臺,其對于步長為0.5的彈道飛行仿真實驗的單次最長計算時間僅為3.9 ms,,這主要是因為在最為耗時的彈道方程求解過程中利用FPGA的并行處理特點將串行計算轉(zhuǎn)換為硬件并行加速,。同時雖然FPGA的主頻僅有100 MHz,,但其運行是基于時鐘節(jié)拍的,,而非哈佛結(jié)構(gòu)的指令集,,同時流水線處理的加入也在一定程度上對彈道解算起到了加速作用。
本次對比實驗中,,彈道仿真計算的預(yù)置參數(shù)為:射點與目標相距約9 200 m,,橫偏約600 m,彈藥總計飛行約51 s,。根據(jù)基于SoC FPGA的新型通用彈載計算機得到的結(jié)果繪制彈道仿真曲線如圖6~圖8所示,。對于實時性要求較高的武器制導(dǎo)領(lǐng)域,本文提出的基于SoC FPGA新型通用彈載計算機完全滿足計算性能要求,。
4 結(jié)論
通過分析現(xiàn)有常規(guī)彈載計算機與串行彈道程序的特征,,利用具有并行和多核處理架構(gòu)的SoC FPGA和Vicado HLS高層次綜合工具,提出了新型通用彈載計算機硬件設(shè)計與串并行彈載程序設(shè)計,,并且利用HLS的軟件開發(fā)特性大大縮短了彈載計算機系統(tǒng)的開發(fā)周期,。通過實驗驗證,在保證可以有效完成功能指標與精確解算彈道諸元的前提下,,該新型彈載計算機實現(xiàn)了對硬件結(jié)構(gòu)的小型化與彈道解算方程的硬件并行加速,,取得了較好的實驗效果,具有較高的工程實踐價值,。
參考文獻
[1] 孫玉環(huán),,李永紅,岳鳳英,,等.基于LabVIEW的彈載計算機測試系統(tǒng)[J].電子技術(shù)應(yīng)用,,2015,41(6):55-58.
[2] 孔得鵬.基于多核DSP的導(dǎo)控一體化彈載計算機設(shè)計[D].北京:北京理工大學(xué),,2016.
[3] 高敏,,任海龍,楊芳,,等.基于DSP+FPGA的彈載計算機設(shè)計[J].計算機測量與控制,,2014,22(12):3995-3997.
[4] 鄭帥,,張唏,,孫昌軍.基于DSP+FPGA的導(dǎo)航制導(dǎo)一體化計算機設(shè)計[J].計算機測量與控制,2016,,24(12):100-102,,121.
[5] 陳航.基于SiP技術(shù)彈載計算機的研究[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2016,,29(4):14-16.
[6] 潘艇,,楊福彪,朱勇,,等.基于龍格-庫塔的彈道微分方程解算的FPGA實現(xiàn)[J].計算機測量與控制,,2015,,23(12):4217-4220.
[7] 李翠娟,緱麗敏,,賀瑩,,等.基于雙DSP的某彈載計算機的設(shè)計與實現(xiàn)[J].電子技術(shù),2016(6):46-47,,45.
[8] 李洋.彈載計算機程序優(yōu)化研究[J].航空兵器,,2014(5):37-40.
[9] 張俊濤,王園偉,,龐多.一種硬件加速OpenCV的圖像處理方法研究[J].電子技術(shù)應(yīng)用,,2015,34(22):41-43.
[10] 彭習(xí)武,,張濤.基于Vivado HLS的邊緣檢測硬件加速應(yīng)用[J].電子技術(shù)應(yīng)用,,2017,43(5):70-73.
作者信息:
蔣曉東,,于紀言
(南京理工大學(xué) 智能彈藥國防重點學(xué)科實驗室,,江蘇 南京210094)