當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于ARM和FPGA的靶場破片測速系統(tǒng)的設(shè)計

破片速度是戰(zhàn)斗部爆炸效能*估的一個重要參數(shù)。傳統(tǒng)的靶場破片測速系統(tǒng)多使用多路數(shù)據(jù)采集卡設(shè)置好的參數(shù)現(xiàn)場采集標(biāo)靶的試驗波形,試驗完成后再交由計算機進行后期處理和解讀以獲取破片速度等參數(shù)。但隨著軍事科技的日新月異,靶場破片測速系統(tǒng)需要根據(jù)實際情況現(xiàn)場設(shè)置的參數(shù)越來越多,參數(shù)設(shè)置的靈活性越來越強,對系統(tǒng)工作的實時性要求越來越高;另一方面,戰(zhàn)斗部爆炸試驗在野外進行,條件惡劣,大型設(shè)備攜帶不便,以往的PC機+數(shù)據(jù)采集卡設(shè)計已經(jīng)越來越不能滿足靶場試驗的要求。嵌入式系統(tǒng)具有功耗小、便攜性好、穩(wěn)定性高、實時性強的特點,近年來隨著嵌入式技術(shù)的不斷發(fā)展,把嵌入式技術(shù)引入靶場破片測速系統(tǒng)設(shè)計中,為靶場破片測速系統(tǒng)設(shè)計提供了一個新的思路。

本文設(shè)計的靶場破片測速系統(tǒng)以ARM處理器為控制核心,利用了FPGA強大的多路并行處理能力進行數(shù)據(jù)處理,在基于嵌入式Linux的平臺上采用Qt/Embedded設(shè)計了友好的人機交互界面。系統(tǒng)功能完善,操作直觀簡單,攜行方便,能夠滿足在野外進行破片測速的大多數(shù)需要。

1 系統(tǒng)硬件設(shè)計

系統(tǒng)使用ARM+FPGA的設(shè)計方式。

ARM處理器選用SAMSUNG公司推出的基于ARM920T內(nèi)核的S3C2440。S3C2440主頻高達400 MHz,完全能夠勝任系統(tǒng)工作要求。S3C2440集成了SDRAM和FLASH控制器,提供了串口,觸摸屏接口,USB接口等多種接口,接口豐富、功能強大,是一款高性能,低價格的處理器,在嵌入式設(shè)備中獲得了廣泛的應(yīng)用。

FPGA(現(xiàn)場可編程門陣列)選用了Altera公司StratixⅡ系列的EP2S15芯片,該芯片器件密度可達到15600等效邏輯元(LE),能提供419Kb片內(nèi)TriMatrix存儲器,多達12個DSP區(qū)塊共有48個(18×18 b)乘法器,用來實現(xiàn)高性能濾波器和其他DSP功能。支持多種高速外接存儲器接口,支持各種標(biāo)準(zhǔn)的I/O,高速差分I/O,具有強大的高速多通道并行處理能力。

系統(tǒng)使用該芯片64 MB SDRAM作為系統(tǒng)內(nèi)存,64 MB FLASH用于Linux內(nèi)核、文件系統(tǒng)、應(yīng)用程序和試驗數(shù)據(jù)的存儲,為系統(tǒng)運行提供了充足的存儲空間。

系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。


圖1 系統(tǒng)硬件結(jié)構(gòu)圖

在圖1中,系統(tǒng)采用了32個標(biāo)靶用于破片測速,一個標(biāo)靶對應(yīng)FPGA的一個通道,每個通道對應(yīng)一個32 b計數(shù)器。戰(zhàn)斗部爆炸后,破片擊穿標(biāo)靶時產(chǎn)生的脈沖將作為起停信號,控制FPGA中相應(yīng)通道的計數(shù)。所有通道中最早觸發(fā)的通道為基準(zhǔn)通道,相應(yīng)通道計數(shù)器值為0。從基準(zhǔn)通道被觸發(fā)時刻起,除基準(zhǔn)通道外所有通道計數(shù)器開始計數(shù),直到本通道收到觸發(fā)信號或者最長計數(shù)時間時停止計數(shù)。停止計數(shù)時的通道計數(shù)值即為本通道的觸發(fā)計數(shù)值。

FPGA設(shè)置了32通道通斷寄存器、32通道輸入觸發(fā)器、通道觸發(fā)計數(shù)器等多個數(shù)據(jù)寄存器,用于保存標(biāo)靶的通斷、觸發(fā)狀態(tài)及各個通道的觸發(fā)計數(shù)值;設(shè)置了最長記錄時間寄存器等多個控制寄存器用于控制FPGA的動作。經(jīng)過處理,F(xiàn)PGA將標(biāo)靶的通斷、觸發(fā)狀態(tài)及最終觸發(fā)計數(shù)值寫入相應(yīng)數(shù)據(jù)寄存器中。

ARM處理器與FPGA通過總線方式實現(xiàn)通信。FPGA作為一個外部存儲器掛載在ARM的存儲器總線上,這樣ARM處理器通過存儲器指令可直接訪問FPGA,從而通過讀寫FPGA的數(shù)據(jù)和控制寄存器實現(xiàn)對FPGA的控制和對數(shù)據(jù)的讀取。

ARM與FPGA接口如圖2所示。


圖2 ARM與FPGA接口

[!--empirenews.page--]

為了便于交互,系統(tǒng)配置了一塊5.7英寸帶觸摸屏的LCD顯示屏作為顯示控制設(shè)備,并且提供了USB口實現(xiàn)與主機通信。

通過試驗測試,本系統(tǒng)能夠充分發(fā)揮ARM的強大處理能力和FPGA的并行處理能力,成功達到試驗?zāi)康摹?/p>

2 系統(tǒng)軟件設(shè)計

系統(tǒng)軟件結(jié)構(gòu)圖如圖3所示。


圖3 系統(tǒng)軟件結(jié)構(gòu)圖

在設(shè)計具體應(yīng)用程序前首先要對操作系統(tǒng)進行裁減。嵌入式Linux內(nèi)核,是一種完全開源、功能強大的操作系統(tǒng)內(nèi)核,與時下流行的Wi-nce等嵌入式操作系統(tǒng)相比,其優(yōu)點之一就在于內(nèi)核的可裁減性,使用者完全能夠根據(jù)自己的需要對內(nèi)核進行裁減,刪減去不必要的功能,完成自定義設(shè)計。本文經(jīng)過裁減后的內(nèi)核大小僅有1.2 MB,大大減少了對系統(tǒng)存儲空間的占用。

GUI為用戶提供了與應(yīng)用系統(tǒng)交互的可視化通道,在嵌入式軟件系統(tǒng)中占據(jù)重要地位。針對嵌入式設(shè)備資源有限的特點,嵌入式GUI要求提供這樣一種交互接口,即它占用資源少且反應(yīng)迅速,具備高度的可移植性和可裁減性。目前國內(nèi)主流的嵌入式GUI系統(tǒng)有MINIGUI,MICRO WINDOW,Qt/Embedded等幾種,各有優(yōu)缺點。綜合比較各種GUI系統(tǒng)的優(yōu)劣,從GUI系統(tǒng)的封裝性、可移植性和系統(tǒng)設(shè)計的便捷性考慮,最終選取Qt/Embedded進行GUI的設(shè)計。

Qt/Embedded(以下簡稱Qt/E)是由著名的Trolltech公司專門針對pda等嵌入式移動手持設(shè)備開發(fā)的開放源碼的一套應(yīng)用程序包和開發(fā)庫,具有可視化強,界面美觀,類庫完善豐富,封裝性好的優(yōu)點。與其他嵌入式GUI系統(tǒng)相比,Qt/E開發(fā)方便,尤其是Qt/E提供了一種類型安全的基于signal和slot的真正組件化編程機制,簡化了編寫過程,有助于開發(fā)人員把握核心功能,使程序編寫更加靈活;Qt/E程序可移植性強,具有極好的跨平臺特性,完全可以“一處編寫,處處編譯”。許多基于計算機Qt的X Window程序在交叉編譯后都可以非常方便地移植為Qt/E版本,這樣完全可以在主機上完成程序開發(fā),查看效果后經(jīng)交叉編譯直接在嵌入式設(shè)備上運行,大大簡化了開發(fā)流程,節(jié)約了開發(fā)時間。

3 嵌入式GUI程序?qū)崿F(xiàn)

3.1 Qt/E具體程序設(shè)計

系統(tǒng)在試驗前需要根據(jù)現(xiàn)場情況進行參數(shù)設(shè)置,尤為重要的是完成標(biāo)靶的分組設(shè)置:在同一方向上的兩個或多個標(biāo)靶分為一組,靶間距事先確定,同一破片將先后通過同組標(biāo)靶,產(chǎn)生觸發(fā)信號,控制對應(yīng)通道計數(shù)器的計數(shù)起停。破片測速完成后,F(xiàn)PGA獲得的通道觸發(fā)計數(shù)值除以FPGA計數(shù)頻率即為通道的觸發(fā)時刻值。用同一標(biāo)靶組內(nèi)兩個相鄰標(biāo)靶之間的間距除以相鄰標(biāo)靶之間觸發(fā)時刻值的差值,即可得到破片在兩個標(biāo)靶之間的平均飛行速度。每個標(biāo)靶組可測得一組破片穿過本標(biāo)靶組時的速度值,通過進一步的計算,可獲得破片的速度分布、速度降等參數(shù)。

根據(jù)系統(tǒng)測速過程,系統(tǒng)軟件的工作流程如圖4所示。


圖4 系統(tǒng)軟件流程圖

按照系統(tǒng)應(yīng)用要求,將GUI設(shè)計分為:參數(shù)設(shè)置模塊、系統(tǒng)測試模塊、結(jié)果查看模塊和存儲管理模塊四個模塊。參數(shù)設(shè)置模塊負責(zé)對破片測速系統(tǒng)所需要的各種參數(shù)進行設(shè)置,主要包括標(biāo)靶分組、標(biāo)靶間距、標(biāo)靶類型、最長計數(shù)時間。在設(shè)置過程中,GUI自動對所設(shè)置的參數(shù)進行檢測,如果參數(shù)設(shè)置不正確,將產(chǎn)生錯誤提示。系統(tǒng)測試模塊負責(zé)在試驗前對整個系統(tǒng)進行測試。通過人為給出觸發(fā)信號可在LCD上可視化的查看系統(tǒng)是否正常工作,通道可否正常觸發(fā),F(xiàn)PGA可否正常計數(shù)等。結(jié)果查看模塊負責(zé)對測試結(jié)果進行顯示。在試驗完成,獲得測試數(shù)據(jù)后,經(jīng)過運算,就可以表格和分布圖兩種方式給出破片的觸發(fā)時刻值和速度值,快速直觀。存儲管理模塊負責(zé)系統(tǒng)參數(shù)及測試數(shù)據(jù)的保存和

讀取,以進行試驗數(shù)據(jù)的進一步分析。系統(tǒng)擁有脫機設(shè)置功能,即可在試驗前未連接標(biāo)靶的情況下,脫機進行參數(shù)設(shè)置,設(shè)置完畢后可保存所有設(shè)置參數(shù)。試驗時,只要選擇保存的參數(shù)就可直接載入脫機設(shè)置的參數(shù),極大增強了系統(tǒng)工作的靈活性。

[!--empirenews.page--]

3.2 Qt/E程序優(yōu)化

嵌入式設(shè)備的顯著特點是CPU主頻不高,資源有限。因為這個局限性,許多在計算機上運行流暢的Qt/E程序在嵌入式設(shè)備上反應(yīng)滯后,在極端情況下甚至?xí)霈F(xiàn)短暫的界面凍結(jié)現(xiàn)象。為了提高嵌入式GUI的反應(yīng)速度,對Qt/E應(yīng)用程序設(shè)計就提出了更高的要求。本文在界面設(shè)計中,針對GUI運行中出現(xiàn)的問題,對Qt/E程序進行了一些優(yōu)化,經(jīng)過優(yōu)化后,界面的反應(yīng)速度明顯改善。

3.2.1 采用靜態(tài)鏈接代替動態(tài)鏈接

與靜態(tài)鏈接相比,動態(tài)鏈接的優(yōu)勢在于動態(tài)庫可被多個進程復(fù)用,從而減少了對系統(tǒng)內(nèi)存的使用。但是動態(tài)鏈接的這種優(yōu)越性是有代價的,由于進程在初始化時要加載并且初始化大量的動態(tài)庫,當(dāng)需要加載的動態(tài)庫比較多或者動態(tài)庫比較龐大時,直接的影響就是降低進程啟動速度;另外一個影響是系統(tǒng)運行時因為函數(shù)的鏈接也要耗費一些時間。

嵌入式Qt/E程序如果使用動態(tài)鏈接就面臨這個問題。一般來說,為了保證程序的基本功能,即使經(jīng)過裁減后,Qt/E動態(tài)庫也有將近10 MB大小,這些動態(tài)庫在嵌入式平臺上的加載將耗費大量時間。針對這個問題,一種解決方法是采用prelink預(yù)鏈接的方法先確定每一個動態(tài)庫在內(nèi)存的加載位置,從而省去動態(tài)庫重定位這一過程。但是這種方法的步驟比較繁瑣,使用上存在一些限定要求,在這里并不推薦。

由于本系統(tǒng)設(shè)計為專用系統(tǒng),僅有一個GUI程序,可采取對Qt/E庫靜態(tài)鏈接的方式來提高啟動和運行速度。具體過程是,在用configure配置Qt/E庫編譯選項時使用-static選項把Qt/E庫源文件編譯成靜態(tài)庫,在編譯Qt/E程序時選擇鏈接庫為靜態(tài)庫。經(jīng)過測試,采用靜態(tài)鏈接的方式,由于在進程初始化時不用再去加載Qt/E的動態(tài)庫,極大提高了進程的啟動速度;在運行過程中,由于節(jié)省了函數(shù)鏈接時間,程序的運行速度有所提高;同時雖然Qt/E程序本身變得龐大,但是由于不用再安裝Qt/E動態(tài)庫,故占用的FLASH空間有限。

3.2.2 使用基礎(chǔ)控件代替復(fù)合控件

加快界面反應(yīng)速度最直接有效的方法就是減少界面中的控件數(shù),這里的控件數(shù),準(zhǔn)確地說,指的是QWidget等基礎(chǔ)控件的數(shù)量。在實際程序設(shè)計過程中,一個有效設(shè)計方法是對一些復(fù)合控件盡可能使用基礎(chǔ)控件代替。Qt/E中提供了許多功能強大的復(fù)合控件,這些復(fù)合控件通常是由多個基礎(chǔ)控件復(fù)合而成的,雖然操作方便,但是資源消耗也比較多,從而影響了整個界面的運行。以表格的繪制為例,如果表格使用復(fù)合控件QTableWidget實現(xiàn),表格的每一個表項都作為一個子控件存在。每一次刷新表格都需要調(diào)用每個子控件的paintEvent()函數(shù),子控件越多,函數(shù)調(diào)用次數(shù)相應(yīng)的也越多,極大地占用了CPU時間,極端情況下甚至?xí)捎趐aintEvent事件過多而堵塞事件隊列,影響界面的正常運行。而如果用基礎(chǔ)控件QWidget實現(xiàn)表格,只需調(diào)用一次基礎(chǔ)控件的paintEvent()就可以在paintEvent()函數(shù)中自定義實現(xiàn)表格的繪制,雖然書寫代碼量可能會大一些,但是函數(shù)調(diào)用次數(shù)少,并且可以做到對表格每一個局部刷新區(qū)域的有效控制,避免許多無用操作,在嵌入式平臺上,反應(yīng)速度明顯加快。

3.2.3 采用延遲刷新方法

當(dāng)不可避免要用到復(fù)合控件時,如果用到的復(fù)合控件構(gòu)成復(fù)雜、刷新耗時,為了盡可能降低這些復(fù)合控件對整體界面運行的影響,可借鑒雙緩沖繪圖的思想,用延遲刷新的方法來控制這些復(fù)合控件的刷新。

傳統(tǒng)的雙緩沖繪圖是在內(nèi)存中開辟一塊緩沖區(qū),將緩沖區(qū)看作一幅位圖,先用背景色填充這幅位圖,然后在這幅位圖上繪制用戶圖形,最后顯示這幅位圖到窗口中。

由于在后臺已完成了界面繪制,采用雙緩沖繪圖,可有效消除閃爍。參考雙緩沖繪圖的做法,為了解決耗時復(fù)合控件和整個界面在刷新時的矛盾,本文的思路是當(dāng)界面,需要刷新時先不刷新復(fù)合控件,而是在背景上用一幅畫布替代復(fù)合控件區(qū)域,當(dāng)界面刷新完畢后,再進行復(fù)合控件的刷新。經(jīng)過測試,這種方法特別適合于復(fù)合控件變化較小而整個界面需要刷新的情況。具體做法是在確定了耗時復(fù)合控件后,當(dāng)需要刷新界面時,構(gòu)造一幅畫布QPixmap,利用QPixmap::grabWindow()函數(shù)在畫布上繪制出該復(fù)合控件所占區(qū)域圖形,由于這個函數(shù)只是對窗口像素點進行繪制,并不調(diào)用控件的paintEvent()函數(shù),而嵌入式設(shè)備的分辨率一般不高,因而花費時間有限;對復(fù)合控件利用setUp-dateEnable(false)函數(shù)禁用復(fù)合控件刷新功能后,調(diào)用QApplieation::proeessEvent()完成界面除復(fù)合控件外所有控件的刷新繪制,并且為了消除閃爍,在父窗口的paintEvent()函數(shù)中調(diào)用QPainter::drawPixmap()函數(shù)將畫布QPixmap繪制于背景的復(fù)合控件區(qū)域上。這時,就可看到界面的刷新效果。由于耗時復(fù)合控件的禁止刷新,整個刷新過程將會快速完成;最后再調(diào)用復(fù)合控件的setUpdateEnable(true)重新使能復(fù)合控件的刷新功能。更進一步的方法是,只有當(dāng)耗時復(fù)合控件變化時才調(diào)用復(fù)合控件的setUpdateEnable(true)允許刷新操作,其余時刻均在背景上使用QPixmap繪制代替。采用這種方法相當(dāng)于把耗時復(fù)合控件的刷新延遲,而先讓界面其他控件完成刷新操作,從而快速顯示界面的刷新效果。

4 結(jié)語

系統(tǒng)綜合利用了ARM和FPGA的優(yōu)點,在基于ARM+FPGA的平臺上設(shè)計出靶場破片測速系統(tǒng);在架構(gòu)于Linux的平臺上設(shè)計了基于Qt/E的嵌入式交互程序,并且針對嵌入式設(shè)備的不足,提出Qt/E程序的優(yōu)化意見和方法。系統(tǒng)經(jīng)過試驗檢測,能夠順利完成靶場測速任務(wù)。系統(tǒng)設(shè)計結(jié)構(gòu)清晰、條理嚴(yán)整、程序健壯,這種系統(tǒng)設(shè)計結(jié)構(gòu)和對Qt/E程序的優(yōu)化思想對同類設(shè)計具有較大的參考意義。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉