基于ARM和FPGA的靶場破片測速系統的設計
為了便于交互,系統配置了一塊5.7英寸帶觸摸屏的LCD顯示屏作為顯示控制設備,并且提供了USB口實現與主機通信。
通過試驗測試,本系統能夠充分發揮ARM的強大處理能力和FPGA的并行處理能力,成功達到試驗目的。
2 系統軟件設計
系統軟件結構圖如圖3所示。
圖3 系統軟件結構圖
在設計具體應用程序前首先要對操作系統進行裁減。嵌入式Linux內核,是一種完全開源、功能強大的操作系統內核,與時下流行的Wi-nce等嵌入式操作系統相比,其優點之一就在于內核的可裁減性,使用者完全能夠根據自己的需要對內核進行裁減,刪減去不必要的功能,完成自定義設計。本文經過裁減后的內核大小僅有1.2 MB,大大減少了對系統存儲空間的占用。
GUI為用戶提供了與應用系統交互的可視化通道,在嵌入式軟件系統中占據重要地位。針對嵌入式設備資源有限的特點,嵌入式GUI要求提供這樣一種交互接口,即它占用資源少且反應迅速,具備高度的可移植性和可裁減性。目前國內主流的嵌入式GUI系統有MINIGUI,MICRO WINDOW,Qt/Embedded等幾種,各有優缺點。綜合比較各種GUI系統的優劣,從GUI系統的封裝性、可移植性和系統設計的便捷性考慮,最終選取Qt/Embedded進行GUI的設計。
Qt/Embedded(以下簡稱Qt/E)是由著名的Trolltech公司專門針對pda等嵌入式移動手持設備開發的開放源碼的一套應用程序包和開發庫,具有可視化強,界面美觀,類庫完善豐富,封裝性好的優點。與其他嵌入式GUI系統相比,Qt/E開發方便,尤其是Qt/E提供了一種類型安全的基于signal和slot的真正組件化編程機制,簡化了編寫過程,有助于開發人員把握核心功能,使程序編寫更加靈活;Qt/E程序可移植性強,具有極好的跨平臺特性,完全可以“一處編寫,處處編譯”。許多基于計算機Qt的X Window程序在交叉編譯后都可以非常方便地移植為Qt/E版本,這樣完全可以在主機上完成程序開發,查看效果后經交叉編譯直接在嵌入式設備上運行,大大簡化了開發流程,節約了開發時間。
3 嵌入式GUI程序實現
3.1 Qt/E具體程序設計
系統在試驗前需要根據現場情況進行參數設置,尤為重要的是完成標靶的分組設置:在同一方向上的兩個或多個標靶分為一組,靶間距事先確定,同一破片將先后通過同組標靶,產生觸發信號,控制對應通道計數器的計數起停。破片測速完成后,FPGA獲得的通道觸發計數值除以FPGA計數頻率即為通道的觸發時刻值。用同一標靶組內兩個相鄰標靶之間的間距除以相鄰標靶之間觸發時刻值的差值,即可得到破片在兩個標靶之間的平均飛行速度。每個標靶組可測得一組破片穿過本標靶組時的速度值,通過進一步的計算,可獲得破片的速度分布、速度降等參數。
根據系統測速過程,系統軟件的工作流程如圖4所示。
圖4 系統軟件流程圖
按照系統應用要求,將GUI設計分為:參數設置模塊、系統測試模塊、結果查看模塊和存儲管理模塊四個模塊。參數設置模塊負責對破片測速系統所需要的各種參數進行設置,主要包括標靶分組、標靶間距、標靶類型、最長計數時間。在設置過程中,GUI自動對所設置的參數進行檢測,如果參數設置不正確,將產生錯誤提示。系統測試模塊負責在試驗前對整個系統進行測試。通過人為給出觸發信號可在LCD上可視化的查看系統是否正常工作,通道可否正常觸發,FPGA可否正常計數等。結果查看模塊負責對測試結果進行顯示。在試驗完成,獲得測試數據后,經過運算,就可以表格和分布圖兩種方式給出破片的觸發時刻值和速度值,快速直觀。存儲管理模塊負責系統參數及測試數據的保存和
讀取,以進行試驗數據的進一步分析。系統擁有脫機設置功能,即可在試驗前未連接標靶的情況下,脫機進行參數設置,設置完畢后可保存所有設置參數。試驗時,只要選擇保存的參數就可直接載入脫機設置的參數,極大增強了系統工作的靈活性。
評論