文獻(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ì)算方法,,通過(guò)利用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ì)彈道方程求解的硬件加速,。通過(guò)實(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)航部分功能為接收來(lái)自慣性測(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ì)過(guò)程中,充分利用FPGA硬件并行的特點(diǎn),,進(jìn)行通用接口設(shè)計(jì),,以避免串行處理器與外部設(shè)備交互數(shù)據(jù)時(shí)因中斷、采集與通信所導(dǎo)致的速度較慢,、資源調(diào)用紊亂等問題,。因此在彈載計(jì)算機(jī)工作過(guò)程中,設(shè)計(jì)FPGA通過(guò)SPI接口或者IIC接口實(shí)時(shí)接收來(lái)自于IMU的信號(hào),,通過(guò)RS232串行通信接口以一定頻率實(shí)時(shí)采樣衛(wèi)星定位信息,,同時(shí)還通過(guò)AD采樣等方式采集來(lái)自地磁傳感器的數(shù)據(jù)等。FPGA部分還通過(guò)對(duì)霍爾傳感器AD采樣,,實(shí)時(shí)監(jiān)控執(zhí)行機(jī)構(gòu)運(yùn)行狀態(tài),,并通過(guò)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ù)通過(guò)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),通過(guò)預(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í)行過(guò)程中主要耗時(shí)部分為求解彈道微分方程部分,,因此僅僅利用FPGA設(shè)計(jì)通用接口,,而降低HPS部分的底層數(shù)據(jù)處理量并不能有效降低彈道求解時(shí)間。同樣,,針對(duì)串行彈道解算過(guò)程,,降低迭代次數(shù)與步長(zhǎng),、提高軟件代碼的優(yōu)化程度[8]均只能在一定程度上改善計(jì)算耗時(shí)過(guò)大的問題,。
因此本文提出對(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ǔ)言,,有利于邏輯與處理過(guò)程復(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ì)算過(guò)程當(dāng)中,其中每一步迭代均包含多次乘除法,、三角函數(shù)和開平方運(yùn)算,。同時(shí)在運(yùn)算過(guò)程中,前后兩次的數(shù)據(jù)是相互關(guān)聯(lián)的,,該種結(jié)構(gòu)無(wú)法完全進(jìn)行并行硬件算法的改寫,。因此運(yùn)用硬件描述語(yǔ)言執(zhí)行這一過(guò)程時(shí),主要加速思想體現(xiàn)在各同優(yōu)先級(jí)運(yùn)算之間,。將每一次迭代運(yùn)算過(guò)程中的同級(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ù)的采集過(guò)程。
實(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í)的彈道方程求解過(guò)程中利用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é)論
通過(guò)分析現(xiàn)有常規(guī)彈載計(jì)算機(jī)與串行彈道程序的特征,,利用具有并行和多核處理架構(gòu)的SoC FPGA和Vicado HLS高層次綜合工具,提出了新型通用彈載計(jì)算機(jī)硬件設(shè)計(jì)與串并行彈載程序設(shè)計(jì),,并且利用HLS的軟件開發(fā)特性大大縮短了彈載計(jì)算機(jī)系統(tǒng)的開發(fā)周期,。通過(guò)實(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)