嵌入式操作系統在高速實(shí)時(shí)信號處理系統中的應用
任務(wù)劃分需要遵循以下原則:
本文引用地址:http://dyxdggzs.com/article/84776.htm(1)功能內聚性。對于功能聯(lián)系比較緊密的各工作可以用一個(gè)任務(wù)來(lái)運行。如果用多個(gè)任務(wù)進(jìn)行相互之間的消息通信,將會(huì )影響系統效率。
(2)時(shí)間緊迫性。對于實(shí)時(shí)性要求比較高的任務(wù),以高優(yōu)先級運行,以保證事件的實(shí)時(shí)響應。
(3)周期執行原則。對于一個(gè)需要周期性執行的工作,應作為一個(gè)獨立的模塊完成。
3.1 操作系統的配置
在嵌入式操作系統上進(jìn)行開(kāi)發(fā)要滿(mǎn)足實(shí)時(shí)性和資源有限性的要求,因此與通用操作系統存在差異。在生成操作系統時(shí)剪裁不需要的組件,添加需要的組件,使系統盡量精簡(jiǎn)。操作系統及其應用程序主要運行在內存中,操作系統太大會(huì )占用很多的內存空間。應用程序運行時(shí)要對每個(gè)任務(wù)分配合適的內存。為了滿(mǎn)足實(shí)時(shí)性,內存分配要盡可能快,因此不采用通用操作系統中復雜而完善的內存分配策略,而采用簡(jiǎn)單、快速的內存分配方案。如果系統對于實(shí)時(shí)性和可靠性的要求極高,不能容忍一點(diǎn)延時(shí)或者一次分配失敗,最好采用靜態(tài)分配方案,也就是在程序編譯時(shí)所需要的內存都已經(jīng)分配好了。例如,火星探測器上的嵌入式系統就必須采用靜態(tài)分配方案。
雷達系統對實(shí)時(shí)性要求很高,所以本系統盡量采用靜態(tài)分配方案。但是VG4內存有限,在一些子任務(wù)中也采用動(dòng)態(tài)分配方案。這里VxWorks采用First Fit的內存動(dòng)態(tài)分配方式,當系統需要動(dòng)態(tài)分配內存時(shí),可以保證在很短的時(shí)間內分配。但是采用這種方式容易產(chǎn)生大量的內存碎片,而VxWorks沒(méi)有清除碎片的功能,因此對系統動(dòng)態(tài)分配內存要非常小心。
根據本系統的實(shí)際情況,接口板傳給VG4的信處檢測結果數據量基本不變,對于這批數據可以以另一種方式存儲。通過(guò)修改BSP的配置,從RAM中分配一塊用戶(hù)保留的存儲區域。這塊存儲區是用戶(hù)專(zhuān)用的,不會(huì )被系統覆蓋。用戶(hù)可以通過(guò)絕對地址對其進(jìn)行讀寫(xiě)。具體方法是設置RAM布局中User reserved區域,系統默認為0,設置這塊RAM使之滿(mǎn)足原始數據的大小。
3.2 應用程序的設計
應用程序運行在VxWorks操作系統上,其功能包括對系統初始化、根據輸入命令對各模塊進(jìn)行控制及實(shí)時(shí)顯示信號處理結果。存在著(zhù)如下幾類(lèi)數據通信:VG4向定時(shí)接口板傳送控制參數,讀取定時(shí)接口板中存儲的信處檢測結果數據,響應外部中斷,顯示目標信息以及獲得外部輸入的控制信息??紤]到C語(yǔ)言的平臺無(wú)關(guān)性和代碼簡(jiǎn)介高效性,應用程序采用C語(yǔ)言編寫(xiě)。
系統劃分為6個(gè)任務(wù):(1)系統監控:?jiǎn)?dòng)和監控其他任務(wù)。(2)數據傳輸:響應VME中斷,與定時(shí)接口板進(jìn)行數據通信。(3)數據處理:對信處檢測結果數據進(jìn)行處理,扣除虛假目標并轉換格式以方便顯示。(4)終端顯示:顯示檢測目標結果和系統狀態(tài)信息到屏幕。(5)指令控制:響應控制開(kāi)關(guān)的命令和獲取慣導數據。(6)錯誤處理:對出現錯誤的任務(wù)做出響應的處理,并在終端顯示。
中斷服務(wù)程序響應定時(shí)VME7號中斷,程序如下:
圖4顯示了各任務(wù)的優(yōu)先級。從中可以看到中斷服務(wù)程序的優(yōu)先級最高,因為實(shí)時(shí)系統要及時(shí)響應外部中斷信號。
指令控制任務(wù)首先獲取外部開(kāi)關(guān)命令和慣導數據,以消息的形式發(fā)送給數據傳輸任務(wù)。當中斷來(lái)臨時(shí),中斷服務(wù)程序馬上釋放同步信號量syncSemId。數據傳輸任務(wù)一直等待這個(gè)信號量,當獲取到這個(gè)信號量時(shí),立即把從指令控制任務(wù)收到的消息轉換成模式字寫(xiě)到接口板的雙口RAM中,接著(zhù)讀取信處檢測結果數據。數據處理子任務(wù)獲取同步信號量syncSemId2后對收到的信處檢測結果數據進(jìn)行處理,這一任務(wù)最耗時(shí)。終端顯示任務(wù)以消息的形式接收上一任務(wù)的處理結果,并顯示處理結果及系統目前的運行狀態(tài)信息。信號量廣泛應用于同步和對臨界資源的保護,信號量的建立如下:
系統監控任務(wù)包括初始化各任務(wù)及實(shí)時(shí)監控各任務(wù)運行是否正常。當檢測到某任務(wù)運行不正常時(shí),啟動(dòng)錯誤處理任務(wù)。錯誤處理任務(wù)根據情況給予相應處理,并在終端顯示。當系統發(fā)生嚴重錯誤時(shí),系統會(huì )自動(dòng)重啟。
本文設計的信號處理機主要應用于直升機火控系統,現已經(jīng)過(guò)驗收,各項指標符合要求。隨著(zhù)設計的改進(jìn),系統功能將進(jìn)一步完善,結構會(huì )更加通用模塊化,從而實(shí)現不改變整個(gè)硬件系統平臺,只對程序進(jìn)行相應的修改,便可應用于其他領(lǐng)域的信號處理系統中。
參考文獻
1 趙樹(shù)杰,史 林.數字信號處理.西安:西安電子科技大學(xué)出版社,1997
2 WindRiver.VxWorks Programmer′s Guide 5.5.2002
3 WindRiver.VxWorks API Reference.2002
4 WindRiver.Tornado User′s Guide(Windows Version).2002
5 蘇 濤,蔡建隆,何學(xué)輝.DSP接口電路設計與編程.西安:西安電子科技大學(xué)出版社,2003
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論