實(shí)時(shí)操作系統在雷達信號處理中的應用
DSP平臺的信號處理機一般只是整個(gè)系統的一個(gè)專(zhuān)用于信號處理算法的子部分,不需要控制太多的外設,而且為了滿(mǎn)足實(shí)時(shí)信號處理,盡量采用前后臺式的線(xiàn)性程序結構。
本設計的信號處理機是希望以他為主體構成一個(gè)完整的便攜式雷達系統,除了信號處理的任務(wù)之外,采樣、顯示、通信等多種任務(wù)也必須由他來(lái)完成,需要滿(mǎn)足實(shí)時(shí)多任務(wù)的要求,所以必須使用嵌入式實(shí)時(shí)操作系統。本文主要介紹了為什么使用實(shí)時(shí)操作系統以及基于DSP/BIOSⅡ實(shí)時(shí)操作系統的總體軟件設計思想和方案。
1、總體硬件方案設計
本信號處理機以TMS320C5509作為整個(gè)系統的核心,由于考慮到圖像的緩存需要較大的存儲空間,所以擴展了三星公司的16 Mb的SDRAM――KM416S1020C作 為擴展存儲器。整個(gè)系統的工作流程是由控制器和D/A提供給前端采樣頭所需的信號,并啟動(dòng)A/D對采樣頭傳來(lái)的模擬信號進(jìn)行采樣,DSP接收之后做相應的信號處理,根據鍵盤(pán)的設定將圖像按照一定的要求顯示到彩色圖形液晶上,并通過(guò)USB接口將數據傳送到PC機存儲以便做進(jìn)一步的處理和顯示??傮w硬件框圖如圖1所示。
TMS320C5509數字信號處理器是德州儀器公司(TI)TMS320C5000系列中新推出的一種,極大降低了功耗,達到了每個(gè)MIPS只需0.05 mW的水平,與市場(chǎng)上的主流產(chǎn)品TMS320C54x相比,功耗降低了6倍。TMS320C5509的內核是從TMS320C54x上發(fā)展而來(lái)的,所以可以完全兼容現在市場(chǎng)主流的TMS320C54x系列處理器的指令,既保護了用戶(hù)在軟件方面的投資,又使得熟悉TMS320C54x編程的軟件人員幾乎不用再學(xué)習就可以編寫(xiě)他的軟件。同時(shí),TMS320C5509中還集成了大量諸如AD,USB控制器之類(lèi)的片內外設,使其成為了一款具有SOC(片上系統)性質(zhì)處理器,用戶(hù)只需外加很少的輔助器件就可以構成一個(gè)較完整的DSP系統。從以上特點(diǎn)可以看出,TMS320C5509非常適合于應用在便攜式系統中。
2、實(shí)時(shí)操作系統DSP/BIOSⅡ的簡(jiǎn)介
TI公司的DSP/BIOSⅡ是一種專(zhuān)門(mén)為T(mén)I公司的TMS320系列DSP芯片設計的嵌入式實(shí)時(shí)多任務(wù)操作系統。主要由5個(gè)部分組成:
?。?)線(xiàn)程和調度(Procedure and Scheduling)
DSP/BIOSⅡ提供了4種不同的執行線(xiàn)程,包括HWI(硬中斷任務(wù))、SWI(軟中斷任務(wù))和TSK(任務(wù))等,每一類(lèi)線(xiàn)程又具有不同的執行、掛起、休眠等特性。DSP/BIOSⅡ支持基于靜態(tài)優(yōu)先級的調度方法,又可以通過(guò)修改內核提供搶先式多任務(wù)服務(wù)。
?。?)硬件抽象(Hardware Abstraction)
他提供了PIP和SIO兩種數據傳輸模式,可以方便DSP與外設之間的數據交換。Pipe(數據管道)使用了較少的內存,并且傳輸的速度快、效率高。SIO(流)對內存有了更高的抽象,便于創(chuàng )建設備驅動(dòng)程序更加結構化的方法。
?。?)資源管理(Resoure Management)
利用DSP/BIOSⅡ的邏輯接口可以對特定的硬件部分進(jìn)行訪(fǎng)問(wèn)和配置。DSP/BIOSⅡ不僅可以通過(guò)其設置工具來(lái)定義內存映射、中斷向量表而且還可以設置定時(shí)器、串行口等硬件設備。
?。?)通信和同步(Communication and Synchronization)
DSP/BIOSⅡ支持旗語(yǔ)(Semaphores)、郵箱(Mailbox)和數據隊列(Queue)等多種內部線(xiàn)程通信和同步的方式。旗語(yǔ)是最主要的同步方式,可以使任務(wù)通過(guò)旗語(yǔ)來(lái)運行和掛起,還可以用互斥旗語(yǔ)來(lái)管理緩沖區和設備。
?。?)實(shí)時(shí)分析(Real-Time Analysis)
實(shí)時(shí)分析工具能夠讓開(kāi)發(fā)者在程序執行期間對DSP進(jìn)行交互和診斷。DSP/BIOSⅡ不僅提供了常用的日志(LOG),STS,TRC模塊,還提供了CPU負載圖(CPULoad Graph)、執行圖(Execution Graph)等多種更方便的調試和觀(guān)察工具。
3、基于DSP/BIOSⅡ實(shí)時(shí)操作系統的軟件結構設計
使用DSP/BIOSⅡ來(lái)做項目的第一步就是模塊劃分,即把項目所要完成的功能拆分成幾個(gè)相對獨立的線(xiàn)程來(lái)完成(可以認為線(xiàn)程在運行時(shí)是獨占DSP的),根據線(xiàn)程中使用硬件資源的情況考慮用什么類(lèi)型的線(xiàn)程來(lái)完成。一般來(lái)說(shuō),用到硬中斷的任務(wù)放到HWI來(lái)完成,用到定時(shí)器的任務(wù)可以放到PRD(周期任務(wù))中完成。然后是確定線(xiàn)程之間的關(guān)系,根據他來(lái)設定各個(gè)線(xiàn)程的優(yōu)先級,以及用 什么方式通訊和交換數據。旗語(yǔ)是最便于使用的通訊方式。
探地雷達信號處理機的信號處理過(guò)程:A/D每采來(lái)一列數據之后給DSP發(fā)一個(gè)硬中斷信號,每接收到一列數據之后,DSP對這列數據分別進(jìn)行平均濾波和自適應濾波,同時(shí)進(jìn)行列計數;當列計數到達一幀時(shí),對這一幀圖像信號進(jìn)行小波去噪處理和脈沖壓縮,最后根據鍵盤(pán)的設定把圖像顯示到圖形液晶上,并通過(guò)USB接口送到PC主機,以便下一步的處理。
根據以上的執行過(guò)程,整個(gè)軟件分解為12個(gè)獨立的任務(wù),其中列中斷、USB數據傳送這2個(gè)模塊是HWI(硬中斷)類(lèi)型的任務(wù),鍵盤(pán)模塊屬于PRD(周期性)任務(wù)(完成對鍵盤(pán)定期掃描),其余模塊是SWI(軟中斷)類(lèi)型的任務(wù)。初始化任務(wù)完成對DSP的初始設定后就刪除;列中斷任務(wù)負責給DSP發(fā)送列數據來(lái)臨信息,觸發(fā)列平均、列自適應任務(wù),完成對一列數據的去噪處理;列計數模塊完成對列中斷的計數,當到達一幀時(shí),發(fā)送幀中斷,觸發(fā)一系列針對幀的數據處理任務(wù);整個(gè)軟件系統的執行流程如圖2所示。
DSP/BIOSⅡ作為一種商用的操作系統,提供給便于使用的圖形配置界面。使用圖形界面可以幫助開(kāi)發(fā)者快速開(kāi)發(fā)程序,不必寫(xiě)繁瑣的初始化程序,而可以用圖形界面配置后讓編譯器自動(dòng)生成。比如對于串行口(MCBSP)的設置就需要配置中斷源、數據格式、收發(fā)頻率等十幾個(gè)寄存器,麻煩而且容易出錯,但是如果使用圖形界面來(lái)設置,一切就容易多了。圖形配置界面不僅可以完成對硬件資源的設置,還可以對任務(wù)、信號量進(jìn)行初始化,完成了他,也就完成了使用DSP/BIOSⅡ的第二步工作。完成各個(gè)線(xiàn)程程序的編寫(xiě)之后,編譯并載入DSP中運行。DSP首先初始化,然后從MAIN()函數跳入任務(wù)循環(huán)隊列,按照優(yōu)先級執行隊列中的任務(wù),而任務(wù)一般都是無(wú)限循環(huán)的,只被特定的信號量掛起。
DSP/BIOSⅡ提供了強大的分析調試工具。除了常用的方法之外,CPU負載圖和執行圖是兩種非常有效的方法。CPU負載圖提供的是目標CPU的負載曲線(xiàn)。CPU負載的定義是除去執行最低優(yōu)先級任務(wù)以外的時(shí)間量。最低優(yōu)先級任務(wù)是只在其他線(xiàn)程都不運行時(shí)才執行的任務(wù)。因此,CPU負載圖包括從目標向主機傳送數據和執行附加后臺任務(wù)所需的時(shí)間。在執行圖中,可以看到各個(gè)線(xiàn)程的活動(dòng)方式。圖形中還包括了信號量的活動(dòng),周期性函數標記(tick)和時(shí)鐘模塊標記。執行圖能從整體上看到項目所有線(xiàn)程的活動(dòng)狀態(tài)。根據調試得到的信息可以評估線(xiàn)程的執行情況和CPU的負荷情況,配合其他調試工具,修改設計直到完成項目的功能需要。
CPU負載圖反映的是軟件系統所需要的性能和CPU實(shí)際最大性能的比值,像PC機上性能統計圖,如果所需的性能大于DSP的實(shí)際性能,就必須修改設計、優(yōu)化算法、加快時(shí)鐘頻率,甚至更換性能更高的DSP芯片。
執行圖顯示了各個(gè)任務(wù)執行過(guò)程中的細節信息,對于嵌入式應用而言,實(shí)時(shí)性是非常重要甚至是必須滿(mǎn)足的條件,操作系統按很小的間隔進(jìn)行調度就是力圖保證系統響應的實(shí)時(shí)性。但是在實(shí)際中,如果任務(wù)分配不好,使得任務(wù)不能在調度間隔內完成,就會(huì )影響整個(gè)系統的實(shí)時(shí)性,這時(shí),必須對任務(wù)劃分作合理的修改。比如本系統中對一列數據的去噪處理,原先是等到一幀數據來(lái)到后再做的,仿真中發(fā)現這樣使得一幀間隔內所要執行的任務(wù)過(guò)多,DSP無(wú)法完成,所以將數據的預處理改到每一列去做,保證系統的實(shí)時(shí)性。
4、DSP/BIOSⅡ操作系統使用中要注意的問(wèn)題
?。?)很好地使用DSP/BIOSⅡ的關(guān)鍵在于很好地理解操作系統,這有點(diǎn)像算法理論和應用算法的關(guān)系。操作系統凝聚了軟件領(lǐng)域幾十年發(fā)展中的精華,有很多概念和結構是需要很深入的理解和思考的,所以,初學(xué)者一定得反復看看一些專(zhuān)門(mén)講操作系統的書(shū)籍。
?。?)任務(wù)必須寫(xiě)成下面2種形式之一。
在DSP/BIOSⅡ開(kāi)發(fā)環(huán)境里沒(méi)有要求顯示調用OSTaskDel(),這是因為開(kāi)發(fā)環(huán)境自動(dòng)做了處理,實(shí)際原理都是一樣的。
5、結束語(yǔ)
本文對探地雷達信號處理機的硬件結構和軟件設計都做了介紹,重點(diǎn)介紹了如何在項目應用中使用DSP/BIOSⅡ實(shí)時(shí)嵌入式操作系統。實(shí)時(shí)嵌入式操作系統在國外得到廣泛的應用,已成為嵌入式系統設計中必不可少的一部分,但是在國內高校,以DSP為核心的嵌入式平臺中,嵌入式操作系統的應用很有限。所以快速利用這方面的最新技術(shù),提高嵌入式系統開(kāi)發(fā)的層次和深度是刻不容緩的。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論