基于DSP的便攜式雷達(dá)系統(tǒng)
使用DSP/BIOSⅡ來做項(xiàng)目的第一步就是模塊劃分,即把項(xiàng)目所要完成的功能拆分成幾個(gè)相對獨(dú)立的線程來完成(可以認(rèn)為線程在運(yùn)行時(shí)是獨(dú)占DSP的),根據(jù)線程中使用硬件資源的情況考慮用什么類型的線程來完成。一般來說,用到硬中斷的任務(wù)放到HWI來完成,用到定時(shí)器的任務(wù)可以放到PRD(周期任務(wù))中完成。然后是確定線程之間的關(guān)系,根據(jù)他來設(shè)定各個(gè)線程的優(yōu)先級,以及用 什么方式通訊和交換數(shù)據(jù)。旗語是最便于使用的通訊方式。
探地雷達(dá)信號處理機(jī)的信號處理過程:A/D每采來一列數(shù)據(jù)之后給DSP發(fā)一個(gè)硬中斷信號,每接收到一列數(shù)據(jù)之后,DSP對這列數(shù)據(jù)分別進(jìn)行平均濾波和自適應(yīng)濾波,同時(shí)進(jìn)行列計(jì)數(shù);當(dāng)列計(jì)數(shù)到達(dá)一幀時(shí),對這一幀圖像信號進(jìn)行小波去噪處理和脈沖壓縮,最后根據(jù)鍵盤的設(shè)定把圖像顯示到圖形液晶上,并通過USB接口送到PC主機(jī),以便下一步的處理。
根據(jù)以上的執(zhí)行過程,整個(gè)軟件分解為12個(gè)獨(dú)立的任務(wù),其中列中斷、USB數(shù)據(jù)傳送這2個(gè)模塊是HWI(硬中斷)類型的任務(wù),鍵盤模塊屬于PRD(周期性)任務(wù)(完成對鍵盤定期掃描),其余模塊是SWI(軟中斷)類型的任務(wù)。初始化任務(wù)完成對DSP的初始設(shè)定后就刪除;列中斷任務(wù)負(fù)責(zé)給DSP發(fā)送列數(shù)據(jù)來臨信息,觸發(fā)列平均、列自適應(yīng)任務(wù),完成對一列數(shù)據(jù)的去噪處理;列計(jì)數(shù)模塊完成對列中斷的計(jì)數(shù),當(dāng)?shù)竭_(dá)一幀時(shí),發(fā)送幀中斷,觸發(fā)一系列針對幀的數(shù)據(jù)處理任務(wù);整個(gè)軟件系統(tǒng)的執(zhí)行流程如圖2所示。
DSP/BIOSⅡ作為一種商用的操作系統(tǒng),提供給便于使用的圖形配置界面。使用圖形界面可以幫助開發(fā)者快速開發(fā)程序,不必寫繁瑣的初始化程序,而可以用圖形界面配置后讓編譯器自動生成。比如對于串行口(MCBSP)的設(shè)置就需要配置中斷源、數(shù)據(jù)格式、收發(fā)頻率等十幾個(gè)寄存器,麻煩而且容易出錯(cuò),但是如果使用圖形界面來設(shè)置,一切就容易多了。圖形配置界面不僅可以完成對硬件資源的設(shè)置,還可以對任務(wù)、信號量進(jìn)行初始化,完成了他,也就完成了使用DSP/BIOSⅡ的第二步工作。完成各個(gè)線程程序的編寫之后,編譯并載入DSP中運(yùn)行。DSP首先初始化,然后從MAIN()函數(shù)跳入任務(wù)循環(huán)隊(duì)列,按照優(yōu)先級執(zhí)行隊(duì)列中的任務(wù),而任務(wù)一般都是無限循環(huán)的,只被特定的信號量掛起。
DSP/BIOSⅡ提供了強(qiáng)大的分析調(diào)試工具。除了常用的方法之外,CPU負(fù)載圖和執(zhí)行圖是兩種非常有效的方法。CPU負(fù)載圖提供的是目標(biāo)CPU的負(fù)載曲線。CPU負(fù)載的定義是除去執(zhí)行最低優(yōu)先級任務(wù)以外的時(shí)間量。最低優(yōu)先級任務(wù)是只在其他線程都不運(yùn)行時(shí)才執(zhí)行的任務(wù)。因此,CPU負(fù)載圖包括從目標(biāo)向主機(jī)傳送數(shù)據(jù)和執(zhí)行附加后臺任務(wù)所需的時(shí)間。在執(zhí)行圖中,可以看到各個(gè)線程的活動方式。圖形中還包括了信號量的活動,周期性函數(shù)標(biāo)記(tick)和時(shí)鐘模塊標(biāo)記。執(zhí)行圖能從整體上看到項(xiàng)目所有線程的活動狀態(tài)。根據(jù)調(diào)試得到的信息可以評估線程的執(zhí)行情況和CPU的負(fù)荷情況,配合其他調(diào)試工具,修改設(shè)計(jì)直到完成項(xiàng)目的功能需要。
CPU負(fù)載圖反映的是軟件系統(tǒng)所需要的性能和CPU實(shí)際最大性能的比值,像PC機(jī)上性能統(tǒng)計(jì)圖,如果所需的性能大于DSP的實(shí)際性能,就必須修改設(shè)計(jì)、優(yōu)化算法、加快時(shí)鐘頻率,甚至更換性能更高的DSP芯片。
執(zhí)行圖顯示了各個(gè)任務(wù)執(zhí)行過程中的細(xì)節(jié)信息,對于嵌入式應(yīng)用而言,實(shí)時(shí)性是非常重要甚至是必須滿足的條件,操作系統(tǒng)按很小的間隔進(jìn)行調(diào)度就是力圖保證系統(tǒng)響應(yīng)的實(shí)時(shí)性。但是在實(shí)際中,如果任務(wù)分配不好,使得任務(wù)不能在調(diào)度間隔內(nèi)完成,就會影響整個(gè)系統(tǒng)的實(shí)時(shí)性,這時(shí),必須對任務(wù)劃分作合理的修改。比如本系統(tǒng)中對一列數(shù)據(jù)的去噪處理,原先是等到一幀數(shù)據(jù)來到后再做的,仿真中發(fā)現(xiàn)這樣使得一幀間隔內(nèi)所要執(zhí)行的任務(wù)過多,DSP無法完成,所以將數(shù)據(jù)的預(yù)處理改到每一列去做,保證系統(tǒng)的實(shí)時(shí)性。
4、DSP/BIOSⅡ操作系統(tǒng)使用中要注意的問題
(1)很好地使用DSP/BIOSⅡ的關(guān)鍵在于很好地理解操作系統(tǒng),這有點(diǎn)像算法理論和應(yīng)用算法的關(guān)系。操作系統(tǒng)凝聚了軟件領(lǐng)域幾十年發(fā)展中的精華,有很多概念和結(jié)構(gòu)是需要很深入的理解和思考的,所以,初學(xué)者一定得反復(fù)看看一些專門講操作系統(tǒng)的書籍。
(2)任務(wù)必須寫成下面2種形式之一。
在DSP/BIOSⅡ開發(fā)環(huán)境里沒有要求顯示調(diào)用OSTaskDel(),這是因?yàn)殚_發(fā)環(huán)境自動做了處理,實(shí)際原理都是一樣的。
5、結(jié)束語
本文對探地雷達(dá)信號處理機(jī)的硬件結(jié)構(gòu)和軟件設(shè)計(jì)都做了介紹,重點(diǎn)介紹了如何在項(xiàng)目應(yīng)用中使用DSP/BIOSⅡ?qū)崟r(shí)嵌入式操作系統(tǒng)。
評論