文獻標識碼: 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部分進行通用接口設計與底層數據并行處理。同時針對串行彈道微分方程求解的速度、精度等問題,提出了一種基于Vivado HLS加速的彈道微分方程計算方法,通過利用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)