DSP中斷向量表和中斷子向量表
發布時間:2008/12/17 0:00:00 訪問次數:1189
本案例在介紹數字pid控制器和模糊pl控制器的dsp應用程序設計的同時,還介紹ti公司c2000系列dsp芯片開發時,中斷向量表和中斷子向量表的編寫和配置方法。
一個實用dsp程序除包括主程序和系統初始化程序以及存儲器配置文件之外,還需要有中斷向量表和中斷子向量表程序,對于一個dsp控制器來說,中斷的使用和管理是不可缺少的。在系統中,控制器的作用就是控制整個系統實時、有序地按照程序的要求運行,而dsp只有一個cpu,所以只有l個進程,當外部設各要求dsp控制時,就采用中斷的方式,dsp根據中斷的優先級,通過響應中斷并執行中斷服務子程序(isr)來對外部設各進行控制。一個正確的中斷向量表和中斷子向量表程序能夠使系統正常運行,并能保證在系統不正常時自動恢復到程序初始化的狀態,防止系統崩潰,提高工業控制的魯棒性。
dsp lf2407有兩級中斷,第一級中斷是cpu中斷,共6個;第二級中斷是外圍設各中斷,共46個。由外設中斷擴展控制器(pie)和中斷子向量表把外圍設備中斷映射到cpu中斷,然后等待cpu的響應。此外cpu中斷向量表還包括19個軟件中斷和硬件復位中斷(reset)以及一個不可屏蔽申斷(nmi)。這種兩級中斷是采用集中化的中斷擴展設計方法,特別適合有大量外設中斷的工業控制系統。
以下就是采用通用定時器gpti的比較操作來產生中斷時,lf2407的中斷向量表和申斷子向量表程序。當需要采用其他中斷時,可以直接在此程序中根據需要修改。該程序對lf2407來說是通用的,只是發生中斷時,cpu要跳轉的地址不一樣而已。
對于一個實際的dsp系統來說,系統的中斷管理是不可缺少的,因為目前任何dsp實時系統都具有中斷,中斷是dsp系統和外部世界發生實時聯系的一個重要手段。作為ti公司的c2000系列dsp,它是偏向于控制的dsp芯片,因此它的中斷管理更豐富和先進,讀者理解起來也較困難。lf2407支持6個一級可屏蔽中斷,采用集中化的中斷擴展設計來滿足大量的外設中斷請求,所以每一級中斷又有多個中斷源,例如一級中斷int2包含的中斷源有比較器1、2、3、4、5、6中斷,定時器1、3的周期、比較、下溢、上溢中斷等。為了正確地響應外設中斷,應該分兩步來完成中斷服務子程序。在本案例的程序中,采用通用定時器1的比較匹配中斷,當cpu響應該中斷時,首先轉移到一級中斷int2中,也即gisr2處執行,在一級中斷int2中讀取外設中斷向量寄存器(pivr)的值,它是個偏移量,再加上中斷子向量的首地址,程序就可以轉移到二級中斷子向量t1cint_isr(定時器1比較中斷)子程序中,執行相應的操作后即完成了一次中斷調用。
lf2407通過外設中斷擴展控制器(pie)來實現集中化的中斷擴展管理,這可以實現在占用極少資源的情況下,大大擴展可用的中斷源。因此在實際的dsp程序中,中斷向量表和中斷子向量表程序是不可缺少的,讀者在自行編寫程序時一定要在主程序中用。include匯編偽指令把本實例介紹的向量表文件pid_generate_vec.asm包括進來。
另外,假中斷向量是lf2407的一個特有的概念,它是保持中斷系統完整性的一個特性。在向量表文件pid generate_voc.asm中可以發現,中斷子向量表的地址是從00h到42h,而中斷源卻沒有那么多,并且其入口地址叉是固定的,所以在中斷子向量表的沒有中斷源的地方就要插人假中斷向量以保證中斷系統的完整性。當一個中斷已經被響應,但卻沒有外設將中斷向量的地址偏移量裝入中斷向量寄存器(pivr)中時,假中斷向量的地址就被裝人pivr中,這種缺省保證了系統按照可以控制的方式進行處理。假中斷向量的子程序如下所示,一股都是復位看門狗電路。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)
本案例在介紹數字pid控制器和模糊pl控制器的dsp應用程序設計的同時,還介紹ti公司c2000系列dsp芯片開發時,中斷向量表和中斷子向量表的編寫和配置方法。
一個實用dsp程序除包括主程序和系統初始化程序以及存儲器配置文件之外,還需要有中斷向量表和中斷子向量表程序,對于一個dsp控制器來說,中斷的使用和管理是不可缺少的。在系統中,控制器的作用就是控制整個系統實時、有序地按照程序的要求運行,而dsp只有一個cpu,所以只有l個進程,當外部設各要求dsp控制時,就采用中斷的方式,dsp根據中斷的優先級,通過響應中斷并執行中斷服務子程序(isr)來對外部設各進行控制。一個正確的中斷向量表和中斷子向量表程序能夠使系統正常運行,并能保證在系統不正常時自動恢復到程序初始化的狀態,防止系統崩潰,提高工業控制的魯棒性。
dsp lf2407有兩級中斷,第一級中斷是cpu中斷,共6個;第二級中斷是外圍設各中斷,共46個。由外設中斷擴展控制器(pie)和中斷子向量表把外圍設備中斷映射到cpu中斷,然后等待cpu的響應。此外cpu中斷向量表還包括19個軟件中斷和硬件復位中斷(reset)以及一個不可屏蔽申斷(nmi)。這種兩級中斷是采用集中化的中斷擴展設計方法,特別適合有大量外設中斷的工業控制系統。
以下就是采用通用定時器gpti的比較操作來產生中斷時,lf2407的中斷向量表和申斷子向量表程序。當需要采用其他中斷時,可以直接在此程序中根據需要修改。該程序對lf2407來說是通用的,只是發生中斷時,cpu要跳轉的地址不一樣而已。
對于一個實際的dsp系統來說,系統的中斷管理是不可缺少的,因為目前任何dsp實時系統都具有中斷,中斷是dsp系統和外部世界發生實時聯系的一個重要手段。作為ti公司的c2000系列dsp,它是偏向于控制的dsp芯片,因此它的中斷管理更豐富和先進,讀者理解起來也較困難。lf2407支持6個一級可屏蔽中斷,采用集中化的中斷擴展設計來滿足大量的外設中斷請求,所以每一級中斷又有多個中斷源,例如一級中斷int2包含的中斷源有比較器1、2、3、4、5、6中斷,定時器1、3的周期、比較、下溢、上溢中斷等。為了正確地響應外設中斷,應該分兩步來完成中斷服務子程序。在本案例的程序中,采用通用定時器1的比較匹配中斷,當cpu響應該中斷時,首先轉移到一級中斷int2中,也即gisr2處執行,在一級中斷int2中讀取外設中斷向量寄存器(pivr)的值,它是個偏移量,再加上中斷子向量的首地址,程序就可以轉移到二級中斷子向量t1cint_isr(定時器1比較中斷)子程序中,執行相應的操作后即完成了一次中斷調用。
lf2407通過外設中斷擴展控制器(pie)來實現集中化的中斷擴展管理,這可以實現在占用極少資源的情況下,大大擴展可用的中斷源。因此在實際的dsp程序中,中斷向量表和中斷子向量表程序是不可缺少的,讀者在自行編寫程序時一定要在主程序中用。include匯編偽指令把本實例介紹的向量表文件pid_generate_vec.asm包括進來。
另外,假中斷向量是lf2407的一個特有的概念,它是保持中斷系統完整性的一個特性。在向量表文件pid generate_voc.asm中可以發現,中斷子向量表的地址是從00h到42h,而中斷源卻沒有那么多,并且其入口地址叉是固定的,所以在中斷子向量表的沒有中斷源的地方就要插人假中斷向量以保證中斷系統的完整性。當一個中斷已經被響應,但卻沒有外設將中斷向量的地址偏移量裝入中斷向量寄存器(pivr)中時,假中斷向量的地址就被裝人pivr中,這種缺省保證了系統按照可以控制的方式進行處理。假中斷向量的子程序如下所示,一股都是復位看門狗電路。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)
上一篇:數字PID控制器的DSP應用程序
上一篇:DSP的系統配置命令文件
熱門點擊
- FPGA技術按顆粒度分類
- DDS各部分的具體參數
- DSP的系統配置命令文件
- DSP配置頭文件
- DSP中斷向量表和中斷子向量表
- 非均勻采樣理論概述
- DSP和音頻AD/DA的硬件設計
- 數字信號處理FPGA的結構
- DSP軟件設計
- 模糊PI控制器的DSP應用程序
推薦技術資料
- 業余條件下PCM2702
- PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細]