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