以信息高速公路為標志的信息化,已成為社會(huì )發(fā)展的大趨勢,并在逐步成為現實(shí)。信息化是數字化為背景的,而數字信號處理技術(shù)則是數字化最重要的基本技術(shù)之一。在過(guò)去短短的十幾年里,各種集成化的單片數字信號處理器(DSP)的性能得到了很大的改善,軟件開(kāi)發(fā)工具越來(lái)越多,也越來(lái)越好;而價(jià)格卻大幅度下降,從而使得數字信號處理器件及技術(shù)更容易使用,價(jià)格也能夠為廣大用戶(hù)接受。從市場(chǎng)上各種DSP產(chǎn)品來(lái)看,德州儀器公司產(chǎn)品占據半壁江山,特別是TMS320系列,本文討論的TMS320F206就是這個(gè)系列中的定點(diǎn)數字信號處理芯片。 1 TMS320F206的結構特點(diǎn) TI公司的TMS320F206芯片是采用靜態(tài)CMOS集成電路工藝制造的。結構設計建立在TMS320C20X芯片的基礎上,只需5V的低電壓就可運行。它的先進(jìn)的哈佛結構、片內外設、片上內存以及豐富的命令集使它的速度和可靠性大大提高。 TMS320F206的主要特點(diǎn)有: (1)32K%26;#215;16字的FLASH EEPROM大大降低了開(kāi)發(fā)成本; (2)采用了100線(xiàn)TQFP的封裝技術(shù); (3)64K字的程序存儲空間、64K字的數據存儲空間和64K字的I/O空間,通過(guò)三條并行總線(xiàn)(PBA、DRAB、DWAB)獨立操作。所以可以同時(shí)訪(fǎng)問(wèn)程序空間和數據空間,在一個(gè)指定機器周期內,可央算術(shù)邏輯單元可執行多達三次的并行存儲器操作; (4)片上4.5K的RAM使得芯片可以實(shí)現快速的DSP計算,并使大部分運算能夠在一個(gè)指令周期內完成; (5)豐富的指令集和靈活的尋址方式; (6)有四條流水線(xiàn)操作和九級可斷,并且大多數可斷用戶(hù)可以屏蔽,可以通過(guò)軟件的方式靈活控制。 2 TMS320F206的可斷 在TMS320F206的程序空間可,可斷向量占據了00~3fh的位置,并且中斷的優(yōu)先級也是固定的,所以在編程開(kāi)發(fā)時(shí)先要編好一個(gè)中斷向量表,對于沒(méi)有用到的中斷也應該編上,并讓它返回到一個(gè)空位置,以免發(fā)生意外情況。TMS320F206的中斷有許多特殊的地方,如HOLD和INT1共用一個(gè)中斷向量,INT2與INT3也共用一個(gè)中斷向量。如果在實(shí)際應用中用到的中斷比較多時(shí),那么控制中斷就是一件比較難的事,此時(shí)就要對它的三個(gè)中斷寄存器靈活運用。下面就來(lái)介紹這三個(gè)寄存器。 (1)16位的中斷標志寄存器(IFR),地址為0006h,各位情況如圖1所示。當有一個(gè)可并蔽中斷到達CPU時(shí),IFR的相應標志位就置1,這表明相應中斷正在被掛起或正在等待響應。將1寫(xiě)入到相應的標志位,可清除相應的位并清除其中斷請求。 在圖1中,0表示一般情況下讀的數為0,R表示讀,W1C表示寫(xiě)1時(shí)把這位清為0。-0表示復位后這位為0。 (2)16位的中斷屏蔽寄存器(IMR),地址為0004h,各位情況如圖2所示。它用來(lái)屏蔽外部和內部硬件中斷(NMI和RS除外)。當要屏蔽某硬件中斷時(shí),就把相應位清0當要開(kāi)放某硬件中斷時(shí),就把相應位置1,并且它的每一位不受硬件復位的影響。 在圖2中,0表示一般情況下讀的數為0,R表示讀,W表示寫(xiě),-0表示復位后這位為0。2位是定時(shí)器中斷,該位為1表示開(kāi)放定時(shí)器中斷。 (3)16位的中斷控制寄存器(ICR),地址為0FFECh,各位情況如圖3所示。主要用來(lái)控制HOLD/INT1和INT2/INT3。 在圖3中,0位為0時(shí)表示屏蔽中斷2(INT2),0位為1時(shí)表示開(kāi)放中斷2;1位為0時(shí)表示屏蔽中斷3(INT3),1位為1時(shí)表示開(kāi)放中斷3;2、3位分別為INT2、INT3的標志位,當其為1時(shí)表示對應的中斷有中斷請求;4位1時(shí)表示單邊沿觸發(fā)模式,INT1引腳下降沿到來(lái)時(shí),向CPU發(fā)出中斷請求,用于INT1中斷。4位為0時(shí)表示雙邊沿觸發(fā)模式,這種模式適用于HOLD操作。 此外,TMS320F206還有兩個(gè)不能由這三種寄存器來(lái)操作和控制的中斷,即: (1)RS(Reset),RS上一旦有請求,將中止程序的流程,使程序執行重新從程序存儲器地址為0000h處開(kāi)始執行。 (2)NMI,當NMI引腳激活時(shí),程序將強行轉移到中斷向量在24h的位置,并且其它可屏蔽中斷都將禁止。所以當NMI引腳不用時(shí),通常應把它到高電平,發(fā)免發(fā)生意外情況。 3 TMS320F206的中斷實(shí)現 在應用實(shí)際中,讓INT2引腳測交流電壓頻率和相位而交流電流相位則由INT3引腳來(lái)測量,并計算電壓、電流間的相位差。在本實(shí)例中,中斷信號均采用過(guò)零信號,定時(shí)器的中斷向量為timer,INT2/INT3的中斷向量為intp2(中斷向量表略)。 主程序流程圖中圖4所示。 主程序如下: start:nop setc intm ;禁止所有中斷 splk #0ffffh,ifr ;清中斷標志 splk #2h,imr ;清中斷標志 splk #2h,imr ;清INT2,INT3的屏蔽位 splk #1h,60h out 60h,0ffech ;僅開(kāi)INT2 splk #0h,61h splk #0f9fh,62h ;設置定時(shí)器 out 61h,0fffah out 62h,0fff9h clrc intm ;開(kāi)中斷 wait:idle b wait1 ;等待中斷 中斷INT2/3服務(wù)程序(intp2)流程圖如圖5所示。 中斷INT2/3服務(wù)程序(intp2)如下: Intp2: setc intm ;進(jìn)入INT2,INT3中斷服務(wù)程序。 …… ;根據控制字判斷是進(jìn)入頻率測試子程序還是進(jìn)入相位測試子程序 bond intp23,tc b intp 21 intp23: in 60h,0fffech ;讀控制字ICR bit 60h,13 sst #1h,62h bit 62h,4 ;判斷是INT2還是INT3 bcnd intp22,tc 中斷 b intp31 intp22:splk #0002h,60h ;INT2服務(wù)程序 out 60h,0ffech ;開(kāi)INT3中斷 splk #0c29h,63h out 63h,0fff8h ;啟動(dòng)定時(shí)器 splk #0002h,ifr ;清INT2/INT3的標志位 clrc intm ;開(kāi)中斷 ret intp31:setc intm ;INT3服務(wù)程序 splk #0412h,64h out 64h,0fff8h ;停止定時(shí)器 splk #0002h,ifr ;清INT2/INT3的標志位 clrc intm ret in 65h,0fffah ;讀定時(shí)器的時(shí)間 …… ;計算相位 intp21:setc intm ;判斷中斷次數,第一次開(kāi) …… ;定時(shí)器,第二次關(guān)定時(shí)器 bchd stoptimerl,ntc out 63h,0fff8h ;啟動(dòng)定時(shí)器 splk #0002h,ifr ;清除INT2/3標志 clrc intm ;開(kāi)中斷 ret stoptimer1:splk #0412h,64h out 64h,0fff8h ;關(guān)定時(shí)器 …… ;計算頻率 b $ ;等待 定時(shí)器中斷服務(wù)程序(timer)流程圖如圖6所示。 timer: lacl 73h ;定時(shí)器中斷服務(wù)程序 …… ;據控制字判斷是進(jìn)入頻率測試子程序還是進(jìn)入相位測試子程序。 cmpr 0 bcnd timer2,tc b timer1 timer1:lacl 69h ;頻率定時(shí)器服務(wù)子程序 add #1h sacl 69h splk #4h,ifr ;清除定時(shí)器標志 clrc intm ret timer2:lacl 69h ;相位定時(shí)器服務(wù)子程序 add #1h sacl 69h splk #4h,ifr ;清定時(shí)器的標志位 clrc intm ret ;中斷返回。 |