嵌入式操作系統在高速實時信號處理系統中的應用(3)
2012年05月29日 09:20 來源:互聯網 作者:秩名 我要評論(0)
3 系統軟件設計與實現
VG4軟件開發主要分為操作系統的配置生成和應用程序的開發兩部分。操作系統的生成主要是對BSP的配置和對VxWorks組件進行裁剪。在應用程序的開發中,為了滿足實時性要求,應對任務進行合理劃分,使程序達到多任務并行操作。
任務劃分需要遵循以下原則:
(1)功能內聚性。對于功能聯系比較緊密的各工作可以用一個任務來運行。如果用多個任務進行相互之間的消息通信,將會影響系統效率。
(2)時間緊迫性。對于實時性要求比較高的任務,以高優先級運行,以保證事件的實時響應。
(3)周期執行原則。對于一個需要周期性執行的工作,應作為一個獨立的模塊完成。
3.1 操作系統的配置
在嵌入式操作系統上進行開發要滿足實時性和資源有限性的要求,因此與通用操作系統存在差異。在生成操作系統時剪裁不需要的組件,添加需要的組件,使系統盡量精簡。操作系統及其應用程序主要運行在內存中,操作系統太大會占用很多的內存空間。應用程序運行時要對每個任務分配合適的內存。為了滿足實時性,內存分配要盡可能快,因此不采用通用操作系統中復雜而完善的內存分配策略,而采用簡單、快速的內存分配方案。如果系統對于實時性和可靠性的要求極高,不能容忍一點延時或者一次分配失敗,最好采用靜態分配方案,也就是在程序編譯時所需要的內存都已經分配好了。例如,火星探測器上的嵌入式系統就必須采用靜態分配方案。
雷達系統對實時性要求很高,所以本系統盡量采用靜態分配方案。但是VG4內存有限,在一些子任務中也采用動態分配方案。這里VxWorks采用First Fit的內存動態分配方式,當系統需要動態分配內存時,可以保證在很短的時間內分配。但是采用這種方式容易產生大量的內存碎片,而VxWorks沒有清除碎片的功能,因此對系統動態分配內存要非常小心。
根據本系統的實際情況,接口板傳給VG4的信處檢測結果數據量基本不變,對于這批數據可以以另一種方式存儲。通過修改BSP的配置,從RAM中分配一塊用戶保留的存儲區域。這塊存儲區是用戶專用的,不會被系統覆蓋。用戶可以通過絕對地址對其進行讀寫。具體方法是設置RAM布局中User reserved區域,系統默認為0,設置這塊RAM使之滿足原始數據的大小。
3.2 應用程序的設計
應用程序運行在VxWorks操作系統上,其功能包括對系統初始化、根據輸入命令對各模塊進行控制及實時顯示信號處理結果。存在著如下幾類數據通信:VG4向定時接口板傳送控制參數,讀取定時接口板中存儲的信處檢測結果數據,響應外部中斷,顯示目標信息以及獲得外部輸入的控制信息。考慮到C語言的平臺無關性和代碼簡介高效性,應用程序采用C語言編寫。
系統劃分為6個任務:(1)系統監控:啟動和監控其他任務。(2)數據傳輸:響應VME中斷,與定時接口板進行數據通信。(3)數據處理:對信處檢測結果數據進行處理,扣除虛假目標并轉換格式以方便顯示。(4)終端顯示:顯示檢測目標結果和系統狀態信息到屏幕。(5)指令控制:響應控制開關的命令和獲取慣導數據。(6)錯誤處理:對出現錯誤的任務做出響應的處理,并在終端顯示。
中斷服務程序響應定時VME7號中斷,程序如下:
圖4顯示了各任務的優先級。從中可以看到中斷服務程序的優先級最高,因為實時系統要及時響應外部中斷信號。
指令控制任務首先獲取外部開關命令和慣導數據,以消息的形式發送給數據傳輸任務。當中斷來臨時,中斷服務程序馬上釋放同步信號量 syncSemId。數據傳輸任務一直等待這個信號量,當獲取到這個信號量時,立即把從指令控制任務收到的消息轉換成模式字寫到接口板的雙口RAM中,接著讀取信處檢測結果數據。數據處理子任務獲取同步信號量syncSemId2后對收到的信處檢測結果數據進行處理,這一任務最耗時。終端顯示任務以消息的形式接收上一任務的處理結果,并顯示處理結果及系統目前的運行狀態信息。信號量廣泛應用于同步和對臨界資源的保護,信號量的建立如下:
系統監控任務包括初始化各任務及實時監控各任務運行是否正常。當檢測到某任務運行不正常時,啟動錯誤處理任務。錯誤處理任務根據情況給予相應處理,并在終端顯示。當系統發生嚴重錯誤時,系統會自動重啟。
本文設計的信號處理機主要應用于直升機火控系統,現已經過驗收,各項指標符合要求。隨著設計的改進,系統功能將進一步完善,結構會更加通用模塊化,從而實現不改變整個硬件系統平臺,只對程序進行相應的修改,便可應用于其他領域的信號處理系統中。
本文導航
- 第 1 頁:嵌入式操作系統在高速實時信號處理系統中的應用(1)
- 第 2 頁:嵌入式實時操作系統VxWorks
- 第 3 頁:系統軟件設計與實現
上周熱點文章排行榜
上周資料下載排行榜
論壇熱帖
熱門博文
創新實用技術專題
熱評
- LM3S9B96開發板手冊及原理圖
- STM32F103ZET6紅牛電路圖
- 高通發布全新設計DragonBoard板
- NI推出Single-Board RIO嵌入式介面
- protel99se正式漢化版免費下載
- hi3515海思原版原理圖
- matlab 7.0軟件下載(免費破解版)
- TX-1C型單片機開發板原理圖
- 三菱A500變頻器原理圖
- 三相IGBT全橋隔離驅動電源設計
博文
- 問什么郵箱激活不了
- 八成大學生認同先就業后擇業
- 我的心路
- 為什么郵箱激活不了
- 到底有多少人在校園里浪費青春
- 你是否曾這樣傷害過一個人?
- 到底有多少人在校園里浪費青春
- 小小的電阻,您真的吃透了它的用法嗎
- 2012.5.12 第一個DS18B20程序
- 寧愿睡地板,也要創業做老板!
用戶評論
查看全部 條評論
查看全部 條評論>>