中斷在TMS320C54x系列DSP中的應(yīng)用_第1頁
中斷在TMS320C54x系列DSP中的應(yīng)用_第2頁
中斷在TMS320C54x系列DSP中的應(yīng)用_第3頁
中斷在TMS320C54x系列DSP中的應(yīng)用_第4頁
中斷在TMS320C54x系列DSP中的應(yīng)用_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

/DSP技術(shù)與應(yīng)用實(shí)例結(jié)業(yè)論文------中斷在TMS320C54x系列DSP中的應(yīng)用班級(jí):電氣08-6姓名:王少農(nóng)學(xué)號(hào):20084073619中斷在TMS320C54x系列DSP中的應(yīng)用中斷是嵌入式芯片的靈魂,這是因?yàn)槎鄶?shù)嵌入式系統(tǒng)對(duì)實(shí)時(shí)性都有很高的要求,即對(duì)出現(xiàn)事件的響應(yīng)要極為迅速。中斷與軟件查詢方式相比有著更高的執(zhí)行效率.在TI公司的TMS320C54x系列(以下簡(jiǎn)稱C54x系列)DSP中,同樣也提供了很好的中斷機(jī)制。而數(shù)字信號(hào)處理器(DSP)作為一種可編程專用芯片,是數(shù)字信號(hào)處理理論實(shí)用化過程的重要技術(shù)工具,在語音處理、圖像處理等技術(shù)領(lǐng)域得到了廣泛的應(yīng)用。但對(duì)于算法設(shè)計(jì)人員來講,利用匯編語言或C語言進(jìn)行DSP功能開發(fā),具有周期長、效率低的缺點(diǎn),不利于算法驗(yàn)證和產(chǎn)品的快速開發(fā)。1.C54x中的中斷機(jī)制中斷機(jī)制包括硬件的中斷裝置和操作系統(tǒng)的中斷處理服務(wù)程序中斷信號(hào)實(shí)質(zhì)上是由硬件或者是軟件驅(qū)動(dòng)的信號(hào),它能使DSP暫停正在執(zhí)行的程序并進(jìn)入中斷服務(wù)程序(ISR).在最典型的DSP系統(tǒng)中,如果A/D轉(zhuǎn)換器需要送數(shù)據(jù)到DSP中,或者D/A轉(zhuǎn)換器需要從DSP中取走數(shù)據(jù),都是通過硬件中斷向DSP發(fā)出請(qǐng)求的.C54x系列DSP支持軟件中斷和硬件中斷。軟件中斷是由指令(INTR、TRAP、RESET)觸發(fā)的,硬件中斷是由外圍器件觸發(fā)的。硬件中斷實(shí)際上又分為兩類:一類是由DSP的片外外設(shè)(如A/D轉(zhuǎn)換器)觸發(fā)的,另外一類是由DSP的片內(nèi)外設(shè)(如定時(shí)器中斷)觸發(fā)的.硬件中斷又有優(yōu)先級(jí)的區(qū)分,這是為了處理同一時(shí)刻有多個(gè)硬件中斷源觸發(fā)中斷的情況。硬件中斷的種類和優(yōu)先級(jí)請(qǐng)參看具體使用的芯片資料。如果按照可屏蔽情況分類,中斷又可分為可屏蔽中斷(C54x至多支持16個(gè))和不可屏蔽中斷。可屏蔽中斷受ST1寄存器中的INTM位和IMR寄存器中相應(yīng)位的影響。當(dāng)INTM=0時(shí),IMR中某位為1,則開放相應(yīng)的中斷。其實(shí),在C54x中硬件中斷并不一定要由外圍器件觸發(fā),它同樣可以由指令I(lǐng)NTR、TRAP觸發(fā),并且不受INTM的限制。有一點(diǎn)需要引起注意的是:指令RESET復(fù)位和硬件RS復(fù)位對(duì)IPTR和外圍電路初始化是不相同的。硬件復(fù)位時(shí)IPTR總是被置為0x1FF,軟件復(fù)位時(shí)則不會(huì)修改當(dāng)前IPTR的值。C54x的中斷處理過程分為三個(gè)階段:①中斷請(qǐng)求??梢杂糜布骷蛘哕浖噶钫?qǐng)求中斷。如果請(qǐng)求的中斷是可屏蔽中斷,則IFR寄存器中相應(yīng)的位被置為1,而不管中斷是否會(huì)被響應(yīng).②中斷響應(yīng).對(duì)于軟件中斷和不可屏蔽中斷,CPU是立即響應(yīng)的。對(duì)于可屏蔽中斷,要滿足下列條件才能響應(yīng):·優(yōu)先級(jí)最高(同時(shí)出現(xiàn)多個(gè)中斷時(shí))·INTM位為0·IMR中相應(yīng)位為1CPU在取到軟件向量的第一個(gè)字后會(huì)產(chǎn)生IACK信號(hào),對(duì)可屏蔽中斷而言,IACK會(huì)清除IFR中相應(yīng)位。③中斷處理。保護(hù)特定的寄存器,執(zhí)行中斷服務(wù)程序,完成后恢復(fù)寄存器。保護(hù)寄存器的原則是執(zhí)行中斷服務(wù)程序后能正確返回并恢復(fù)原來運(yùn)行程序的環(huán)境。DSP中提供的中斷是以中斷向量表(VECT)的形式出現(xiàn)的(見表1)。中斷向量表的長度為128個(gè)字節(jié),每個(gè)中斷分配為4個(gè)字節(jié),一共有32個(gè)中斷,具體的中斷要看相應(yīng)的芯片.C54x中斷向量表的地址是由PMST寄存器中的IPTR構(gòu)成高9位地址形成的,所以向量表的地址必須是128的倍數(shù)。硬件復(fù)位時(shí),IPTR總是默認(rèn)置為0x1FF,所以中斷向量表地址為0xFF80。每個(gè)中斷向量的地址按如下構(gòu)成方法形成:PC=(IPTR)<〈7+(Vector[n])〈〈2(Vector[n]為中斷向量號(hào),在0~31之間),中斷向量號(hào)左移兩位是因?yàn)槊總€(gè)中斷向量占用4個(gè)字節(jié)的緣故。中斷向量表總是以匯編的形式出現(xiàn)的。2.?dāng)U展地址模式下的中斷控制早期的DSP共有192K的空間(程序、數(shù)據(jù)和I/O空間各為64K),隨著DSP處理能力越來越強(qiáng),192K的空間已經(jīng)不能滿足需要。后來的C54x均提供了擴(kuò)展地址模式,使程序空間擴(kuò)展到8M。擴(kuò)展模式下的中斷控制有自己特殊的地方,有必要進(jìn)行說明.擴(kuò)展模式下程序空間的尋址是通過寄存器PC和XPC一同進(jìn)行的。PC構(gòu)成低16位地址位,XPC構(gòu)成高7位地址位。所以保存和恢復(fù)XPC是用戶必須注意的。如果用戶使用的是FarCall指令,則XPC會(huì)自動(dòng)保存和恢復(fù)。但在進(jìn)行中斷處理的時(shí)候,只有16位的PC寄存器能夠自動(dòng)得到保存(這是由于考慮了非擴(kuò)展模式下中斷的效率問題),所以XPC必須由用戶自己來保存,否則在中斷返回的時(shí)候往往會(huì)跳到不同的頁面(由返回前后XPC值的不同引起)造成不可預(yù)測(cè)的后果.程序如表1所示。由于必須在長跳轉(zhuǎn)之前保存XPC的值,沒法使用延遲指令(如FBD),所以中斷時(shí)延會(huì)增加兩個(gè)周期.再來考慮另外一種情況:設(shè)程序運(yùn)行在XPC=2的頁面上,如果這個(gè)時(shí)候有中斷發(fā)生并得到了CPU的響應(yīng),DSP會(huì)加載PC:PC=(IPTR)<〈7+(Vector[n])<〈2,XPC的值不發(fā)生變化,于是中斷向量的地址為:0x20000+0xPC。這就明顯地說明:中斷向量表必須和應(yīng)用程序在同一64K的程序空間頁面內(nèi)。如果應(yīng)用程序不是只分布在一個(gè)程序空間頁面內(nèi),那應(yīng)該如何處理呢?可分三種類型共四種技巧來應(yīng)對(duì)這樣的情況:描述OVLY為任意的情況;描述OVLY=1的情況;描述OVLY=0的情況。有的應(yīng)用中,一些程序一旦運(yùn)行是不允許中斷的.把不允許中斷的程序部分放到擴(kuò)展空間內(nèi),而把中斷向量表和ISR以及允許中斷的程序部分都放在XPC=0的頁面。當(dāng)調(diào)用擴(kuò)展空間的程序時(shí)關(guān)閉中斷使能,而當(dāng)擴(kuò)展空間程序返回到XPC=0的頁面時(shí)再開中斷。這樣做的好處是不用關(guān)注XPC的值對(duì)中斷向量尋址的影響。中斷的時(shí)候也不需要保存XPC的值。調(diào)用過程如圖1所示,Y表示需要關(guān)注XPC的值,N表示不需要關(guān)注XPC的值,數(shù)字表示調(diào)用順序。DSP中影響存儲(chǔ)器映射的因素有三個(gè):OVLY、DROM和MP/MC.OVLY是Overlay的簡(jiǎn)寫。當(dāng)OVLY=1時(shí),數(shù)據(jù)空間里的一部分RAM變?yōu)橹丿B區(qū)域(OverlayMemory)。這部分重疊區(qū)域同時(shí)映射空間的上部。具體示例如圖2所示(MP/MC=0,C5416)??梢奜VLY=1的時(shí)候,數(shù)據(jù)空間的DARAM0~3被映射到程序空間的每一頁上?;谶@樣的特點(diǎn),可以把中斷向量表定位到數(shù)據(jù)空間的重疊區(qū)域DARAM0~3中,置OVLY為1。當(dāng)有中斷發(fā)生時(shí),不管程序運(yùn)行于DSP的哪個(gè)程序頁面空間,只用PC尋址都能夠正確地取到中斷向量表,而不會(huì)受XPC的影響。中斷程序ISR可以放到任何一個(gè)程序頁面中,但這時(shí)跳轉(zhuǎn)到ISR的指令只能用長跳轉(zhuǎn)指令(FB等),跳轉(zhuǎn)之前注意將XPC壓入堆棧,程序同表1.示意圖如圖3所示。如果片內(nèi)RAM比較大,分給數(shù)據(jù)空間的RAM也比較多(如C5416有64K的RAM可以作為數(shù)據(jù)空間),數(shù)據(jù)空間可能會(huì)有余量.這時(shí)可以把中斷向量表和ISR都全部放進(jìn)數(shù)據(jù)空間的OverlayMemory區(qū)域,并把OVLY置1。這樣不僅在任何程序頁面空間都能夠正確地取到中斷向量表,同時(shí)用短跳轉(zhuǎn)指令(BD等)就可以實(shí)現(xiàn)跳轉(zhuǎn)到ISR,不再需要對(duì)XPC進(jìn)行保存和還原。程序請(qǐng)參看表2。在擴(kuò)展模式下,雖然程序空間擴(kuò)為8M,但如果OVLY=1,則程序空間中存在大量的重疊區(qū)域,如C5416在OVLY=1的情況下真正可用的程序空間最大為4。03M.有的場(chǎng)合需要的程序空間大于4.03M,就必須使用OVLY=0的情況.這個(gè)時(shí)候程序空間不存在重疊區(qū)域,但可以模擬出來。方法是:把中斷向量表拷貝到會(huì)發(fā)生中斷的每一頁程序空間,如圖4所示。這樣,中斷的時(shí)候就能正確找到中斷向量表而實(shí)現(xiàn)中斷跳轉(zhuǎn)。比較上面的四種方法,方法(2。1)更為適應(yīng)普遍的情況。它不限制ISR的地址范圍,而中斷向量表只占0x80的空間,把它放到數(shù)據(jù)空間的重疊區(qū)域是很容易做到的。3.DSP/BIOS下中斷的管理BIOS設(shè)置程序是儲(chǔ)存在BIOS芯片中的,只有在開機(jī)時(shí)才可以進(jìn)行設(shè)置。CMOS主要用于存儲(chǔ)BIOS設(shè)置程序所設(shè)置的參數(shù)與數(shù)據(jù),而BIOS設(shè)置程序主要對(duì)計(jì)算機(jī)的基本輸入輸出系統(tǒng)進(jìn)行管理和設(shè)置,使系統(tǒng)運(yùn)行在最好狀態(tài)下,使用BIOS設(shè)置程序還可以排除系統(tǒng)故障或者診斷系統(tǒng)問題。形象地說,BIOS應(yīng)該是連接軟件程序與硬件設(shè)備的一座”橋梁",負(fù)責(zé)解決硬件的即時(shí)要求。主板上的BIOS芯片或許是主板上唯一貼有標(biāo)簽的芯片,一般它是一塊32針的雙列直插式的集成電路,上面印有”BIOS"字樣。它在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用.一塊主板性能優(yōu)越與否,很大程度上取決于主板上的BIOS管理功能是否先進(jìn)。DSP/BIOS是TI近來推出的準(zhǔn)實(shí)時(shí)操作系統(tǒng),它同樣支持?jǐn)U展地址模式,只是需要將GlobalSettings中的函數(shù)調(diào)用模式設(shè)置為Far就可以了。需要強(qiáng)調(diào)的是:BIOS只支持OVLY=1的擴(kuò)展模式,而不支持OVLY=0的擴(kuò)展模式。擴(kuò)展模式下在BIOSCode中會(huì)多出一個(gè)段“.bios:.norptb”,這個(gè)段會(huì)被自動(dòng)放入OverlayMemory之中,具體原因請(qǐng)參看參考文獻(xiàn)。BIOS管理的線程有四種類型:HWI、SWI、TSK以及IDL。上面所提到的所有中斷屬于優(yōu)先級(jí)最高的HWI線程。每個(gè)中斷向量都是以HWI模塊的Object形式存在,可以用BIOS下的ConfigurationTool來配置每個(gè)中斷向量所觸發(fā)的函數(shù)。在ConfigurationTool中,會(huì)發(fā)現(xiàn)System的MEM模塊下有一個(gè)名為VECT的Object,它實(shí)質(zhì)上是用來給中斷向量表分配存儲(chǔ)空間的,用戶可以自己配置中斷向量表的地址(必須是128的倍數(shù)).4.結(jié)論:中斷使得硬件得以與處理器進(jìn)行通信.舉個(gè)例子,在你敲打鍵盤的時(shí)候,鍵盤控制器(控制鍵盤的硬件設(shè)備)會(huì)發(fā)送一個(gè)中斷,通知操作系統(tǒng)有鍵按下。中斷本質(zhì)是一種特殊的電信號(hào),由硬件設(shè)備發(fā)向處理器。處理器接受到中斷后,會(huì)馬上向操作系統(tǒng)反映此信號(hào)的到來,然后就由os負(fù)責(zé)處理這些新到來的數(shù)據(jù)。硬件設(shè)備生成中斷的時(shí)候并不考慮與處理器的時(shí)鐘同步——換句話說就是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論