DSP中斷向量表和中斷子向量表
本案例在介紹數(shù)字pid控制器和模糊pl控制器的dsp應(yīng)用程序設(shè)計(jì)的同時(shí),還介紹ti公司c2000系列dsp芯片開(kāi)發(fā)時(shí),中斷向量表和中斷子向量表的編寫和配置方法?! ∫粋€(gè)實(shí)用dsp程序除包括主程序和系統(tǒng)初始化程序以及存儲(chǔ)器配置文件之外,還需要有中斷向量表和中斷子向量表程序,對(duì)于一個(gè)dsp控制器來(lái)說(shuō),中斷的使用和管理是不可缺少的。在系統(tǒng)中,控制器的作用就是控制整個(gè)系統(tǒng)實(shí)時(shí)、有序地按照程序的要求運(yùn)行,而dsp只有一個(gè)cpu,所以只有l(wèi)個(gè)進(jìn)程,當(dāng)外部設(shè)各要求dsp控制時(shí),就采用中斷的方式,dsp根據(jù)中斷的優(yōu)先級(jí),通過(guò)響應(yīng)中斷并執(zhí)行中斷服務(wù)子程序(isr)來(lái)對(duì)外部設(shè)各進(jìn)行控制。一個(gè)正確的中斷向量表和中斷子向量表程序能夠使系統(tǒng)正常運(yùn)行,并能保證在系統(tǒng)不正常時(shí)自動(dòng)恢復(fù)到程序初始化的狀態(tài),防止系統(tǒng)崩潰,提高工業(yè)控制的魯棒性?! sp lf2407有兩級(jí)中斷,第一級(jí)中斷是cpu中斷,共6個(gè);第二級(jí)中斷是外圍設(shè)各中斷,共46個(gè)。由外設(shè)中斷擴(kuò)展控制器(pie)和中斷子向量表把外圍設(shè)備中斷映射到cpu中斷,然后等待cpu的響應(yīng)。此外cpu中斷向量表還包括19個(gè)軟件中斷和硬件復(fù)位中斷(reset)以及一個(gè)不可屏蔽申斷(nmi)。這種兩級(jí)中斷是采用集中化的中斷擴(kuò)展設(shè)計(jì)方法,特別適合有大量外設(shè)中斷的工業(yè)控制系統(tǒng)。 以下就是采用通用定時(shí)器gpti的比較操作來(lái)產(chǎn)生中斷時(shí),lf2407的中斷向量表和申斷子向量表程序。當(dāng)需要采用其他中斷時(shí),可以直接在此程序中根據(jù)需要修改。該程序?qū)f2407來(lái)說(shuō)是通用的,只是發(fā)生中斷時(shí),cpu要跳轉(zhuǎn)的地址不一樣而已?! ?duì)于一個(gè)實(shí)際的dsp系統(tǒng)來(lái)說(shuō),系統(tǒng)的中斷管理是不可缺少的,因?yàn)槟壳叭魏蝑sp實(shí)時(shí)系統(tǒng)都具有中斷,中斷是dsp系統(tǒng)和外部世界發(fā)生實(shí)時(shí)聯(lián)系的一個(gè)重要手段。作為ti公司的c2000系列dsp,它是偏向于控制的dsp芯片,因此它的中斷管理更豐富和先進(jìn),讀者理解起來(lái)也較困難。lf2407支持6個(gè)一級(jí)可屏蔽中斷,采用集中化的中斷擴(kuò)展設(shè)計(jì)來(lái)滿足大量的外設(shè)中斷請(qǐng)求,所以每一級(jí)中斷又有多個(gè)中斷源,例如一級(jí)中斷int2包含的中斷源有比較器1、2、3、4、5、6中斷,定時(shí)器1、3的周期、比較、下溢、上溢中斷等。為了正確地響應(yīng)外設(shè)中斷,應(yīng)該分兩步來(lái)完成中斷服務(wù)子程序。在本案例的程序中,采用通用定時(shí)器1的比較匹配中斷,當(dāng)cpu響應(yīng)該中斷時(shí),首先轉(zhuǎn)移到一級(jí)中斷int2中,也即gisr2處執(zhí)行,在一級(jí)中斷int2中讀取外設(shè)中斷向量寄存器(pivr)的值,它是個(gè)偏移量,再加上中斷子向量的首地址,程序就可以轉(zhuǎn)移到二級(jí)中斷子向量t1cint_isr(定時(shí)器1比較中斷)子程序中,執(zhí)行相應(yīng)的操作后即完成了一次中斷調(diào)用?! f2407通過(guò)外設(shè)中斷擴(kuò)展控制器(pie)來(lái)實(shí)現(xiàn)集中化的中斷擴(kuò)展管理,這可以實(shí)現(xiàn)在占用極少資源的情況下,大大擴(kuò)展可用的中斷源。因此在實(shí)際的dsp程序中,中斷向量表和中斷子向量表程序是不可缺少的,讀者在自行編寫程序時(shí)一定要在主程序中用。include匯編偽指令把本實(shí)例介紹的向量表文件pid_generate_vec.asm包括進(jìn)來(lái)?! ×硗?,假中斷向量是lf2407的一個(gè)特有的概念,它是保持中斷系統(tǒng)完整性的一個(gè)特性。在向量表文件pid generate_voc.asm中可以發(fā)現(xiàn),中斷子向量表的地址是從00h到42h,而中斷源卻沒(méi)有那么多,并且其入口地址叉是固定的,所以在中斷子向量表的沒(méi)有中斷源的地方就要插人假中斷向量以保證中斷系統(tǒng)的完整性。當(dāng)一個(gè)中斷已經(jīng)被響應(yīng),但卻沒(méi)有外設(shè)將中斷向量的地址偏移量裝入中斷向量寄存器(pivr)中時(shí),假中斷向量的地址就被裝人pivr中,這種缺省保證了系統(tǒng)按照可以控制的方式進(jìn)行處理。假中斷向量的子程序如下所示,一股都是復(fù)位看門狗電路?! g迎轉(zhuǎn)載,信息來(lái)源維庫(kù)電子市場(chǎng)網(wǎng)()





