《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > TMS320F206的中斷技術(shù)及其實(shí)現(xiàn)

TMS320F206的中斷技術(shù)及其實(shí)現(xiàn)

2008-10-30
作者:周日貴1 葉水生 胡景春2

  摘? 要: TMS320F206是德州儀器公司" title="德州儀器公司">德州儀器公司定點(diǎn)DSP芯片中具有代表性的一種,在介紹其特點(diǎn)和中斷技術(shù)的基礎(chǔ)上,重點(diǎn)闡述了該芯片在軟件開發(fā)過程中中斷技術(shù)是如何實(shí)現(xiàn)的。?

  關(guān)鍵詞: TMS320F206? DSP? 中斷

?

  以信息高速公路為標(biāo)志的信息化,已成為社會發(fā)展的大趨勢,并在逐步成為現(xiàn)實(shí)。信息化是以數(shù)字化為背景的,而數(shù)字信號處理技術(shù)則是數(shù)字化最重要的基本技術(shù)之一,。在過去短短的十幾年里,各種集成化的單片數(shù)字信號處理器(DSP)的性能得到了很大的改善,軟件開發(fā)工具越來越多,也越來越好;而價(jià)格卻大幅度下降,從而使得數(shù)字信號處理器件及技術(shù)更容易使用,價(jià)格也能夠?yàn)閺V大用戶接受,。從市場上各種DSP產(chǎn)品來看,德州儀器公司產(chǎn)品占據(jù)半壁江山,特別是TMS320系列,本文討論的TMS320F206就是這個(gè)系列中的定點(diǎn)數(shù)字信號處理芯片。?

1 TMS320F206的結(jié)構(gòu)特點(diǎn)?

  TI公司的TMS320F206芯片是采用靜態(tài)CMOS集成電路工藝制造的,。結(jié)構(gòu)設(shè)計(jì)建立在TMS320C20X芯片的基礎(chǔ)上,只需5V的低電壓就可運(yùn)行。它的先進(jìn)的哈佛結(jié)構(gòu)、片內(nèi)外設(shè),、片上" title="片上">片上內(nèi)存以及豐富的命令集使它的速度和可靠性大大提高。?

  TMS320F206的主要特點(diǎn)有:?

  (1)32K×16字的FLASH EEPROM大大降低了開發(fā)成本;??? ?

  (2)采用了100線TQFP的封裝技術(shù);?

  (3)64K字的程序存儲空間,、64K字的數(shù)據(jù)存儲空間和64K字的I/O空間,通過三條并行總線(PBA,、DRAB、DWAB)獨(dú)立操作,。所以可以同時(shí)訪問程序空間和數(shù)據(jù)空間,在一個(gè)指定機(jī)器周期內(nèi),中央算術(shù)邏輯單元可執(zhí)行多達(dá)三次的并行存儲器操作;?

  (4)片上4.5K的RAM 使得芯片可以實(shí)現(xiàn)快速的DSP計(jì)算,并使大部分運(yùn)算能夠在一個(gè)指令周期內(nèi)完成;?

  (5)豐富的指令集和靈活的尋址方式;?

  (6)有四條流水線操作和九級中斷,并且大多數(shù)中斷用戶可以屏蔽,可以通過軟件的方式靈活控制,。?

2 TMS320F206的中斷?

  在TMS320F206的程序空間中,中斷向量占據(jù)了00~3fh的位置,并且中斷的優(yōu)先級也是固定的,所以在編程開發(fā)時(shí)先要編好一個(gè)中斷向量表,對于沒有用到的中斷也應(yīng)該編上,并讓它返回到一個(gè)空位置,以免發(fā)生意外情況,。TMS320F206的中斷有許多特殊的地方,如HOLD和INT1共用一個(gè)中斷向量,INT2與INT3也共用一個(gè)中斷向量。如果在實(shí)際應(yīng)用中用到的中斷比較多時(shí),那么控制中斷就是一件比較難的事,此時(shí)就要對它的三個(gè)中斷寄存器靈活運(yùn)用,。下面就來介紹這三個(gè)寄存器,。?

??? (1) 16位的中斷標(biāo)志寄存器(IFR),地址為0006h,各位情況如圖1所示。當(dāng)有一個(gè)可屏蔽中斷到達(dá)CPU時(shí),IFR的相應(yīng)標(biāo)志位就置1,這表明相應(yīng)的中斷正在被掛起或正在等待響應(yīng),。將1寫入到相應(yīng)的標(biāo)志位,可清除相應(yīng)的位并清除其中斷請求,。

?

?

??? 在圖1中,0表示一般情況下讀的數(shù)為0,R表示讀,W1C表示寫1時(shí)把這位清為0。-0表示復(fù)位后這位為0,。?

??? (2) 16位的中斷屏蔽寄存器(IMR),地址為0004h,各位情況如圖2所示,。它用來屏蔽外部和內(nèi)部硬件中斷(NMI和RS除外)。當(dāng)要屏蔽某硬件中斷時(shí),就把相應(yīng)位清0當(dāng)要開放某硬件中斷時(shí),就把相應(yīng)位置1,并且它的每一位不受硬件復(fù)位的影響,。

?

?

?

??? 在圖2中,0表示一般情況下讀的數(shù)為0,R表示讀,W表示寫,-0表示復(fù)位后這位為0,。2位是定時(shí)器中斷,該位為1表示開放定時(shí)器中斷。?

  (3) 16位的中斷控制寄存器(ICR),地址為0FFECh,各位情況如圖3所示,。主要用來控制HOLD/INT1和INT2/INT3,。

?

?

??? 在圖3中,0位為0時(shí)表示屏蔽中斷2(INT2),0位為1時(shí)表示開放中斷2;1位為0時(shí)表示屏蔽中斷3(INT3),1位為1時(shí)表示開放中斷3;2、3位分別為INT2,、INT3的標(biāo)志位,當(dāng)其為1時(shí)表示對應(yīng)的中斷有中斷請求;4位1時(shí)表示單邊沿觸發(fā)模式,,INT1引腳下降沿到來時(shí),向CPU發(fā)出中斷請求,,用于INT1中斷,。4位為0時(shí)表示雙邊沿觸發(fā)模式,這種模式適用于HOLD操作,。?

??? 此外,,TMS320F206還有兩個(gè)不能由這三種寄存器來操作和控制的中斷,即:?

  (1)RS(Reset),RS上一旦有請求,,將中止程序的流程,,使程序執(zhí)行重新從程序存儲器地址為0000h處開始執(zhí)行。?

??? (2)NMI,,當(dāng)NMI引腳激活時(shí),,程序?qū)?qiáng)行轉(zhuǎn)移到中斷向量在24h的位置,并且其它可屏蔽中斷都將禁止,。所以當(dāng)NMI引腳不用時(shí),,通常應(yīng)把它接到高電平,以免發(fā)生意外情況,。?

3 TMS320F206的中斷實(shí)現(xiàn)?

  在應(yīng)用實(shí)際中,,讓INT2引腳測交流電壓頻率和相位而交流電流相位則由INT3引腳來測量,并計(jì)算電壓、電流間的相位差,。在本實(shí)例中,中斷信號均采用過零信號,,定時(shí)器的中斷向量為timer,,INT2/INT3的中斷向量為intp2(中斷向量表略)。?

??? 主程序流程圖如圖4所示,。?

?

?

??? 主程序如下:?

start:nop?? ?

??? setc ?? intm??????? ??????? ,;禁止所有中斷?

??? splk ?? #0ffffh,ifr?? ,;清中斷標(biāo)志?

??? splk ?? #2h,,imr?? ;清INT2,,INT3的屏蔽位?

??? splk ?? #1h,,60h??? ?

??? out ??? 60h,0ffech??? ,;僅開INT2 ?

??? splk #0h,,61h?

??? splk #0f9fh,62h??? ??? ,;設(shè)置定時(shí)器?

??? out ??? 61h,0fffah??? ?

??? out ??? 62h,,0fff9h?

??? clrc ?? intm???????? ?????? ,;開中斷?

wait1: idle?

?????? b wait1????? ?????? ;等待中斷?

??? 中斷INT2/3服務(wù)程序(intp2)流程圖如圖5所示,。?

?

?

??? 中斷INT2/3服務(wù)程序(intp2)如下:?

Intp2:? setc intm ????? ,;進(jìn)入INT2,INT3中斷服務(wù)程序" title="中斷服務(wù)程序">中斷服務(wù)程序。?

??????? ……????????????;根據(jù)控制字" title="控制字">控制字判斷是進(jìn)入頻率測試子程序" title="子程序">子程序還是進(jìn)入相位測試子程序?

??????? bond intp23,,tc?

??????? b intp21?

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?? ? ,;開INT3中斷?

???? ?? splk #0c29h,,63h?

?? ???? out??? 63h,0fff8h? ?? ,;啟動定時(shí)器?

??????? splk??? #0002h,,ifr? ?? ;清INT2/INT3的標(biāo)志位?

??????? clrc?? intm?????? ? ,;開中斷?

??????? ret?

intp31:?setc??? intm??????????? ;INT3服務(wù)程序?

??? ??? splk??? #0412h,,64h?

??????? out 64h,,0fff8h ??????? ;停止定時(shí)器?

??????? splk #0002h,,ifr??????? ,;清INT2/INT3的標(biāo)志位?

??????? clrc intm?

??????? ret?

??????? in? 65h,0fffah? ?????? ,;讀定時(shí)器的時(shí)間?

??? ??? ……??????????????????? ,;計(jì)算相位?

intp21:?setc intm ????????? ;判斷中斷次數(shù),第一次開?

??????? ……?????? ???????? ;定時(shí)器,第二次關(guān)定時(shí)器?

??????? bcnd?? stoptimerl,ntc?

??????? out ? 63h,,0fff8h?????? ,;啟動定時(shí)器?

??????? splk?? #0002h,ifr? ??? ;清除INT2/3標(biāo)志?

??????? clrc?? intm ??????????? ;開中斷?

??????? ret?

stoptimer1: splk? #0412h,,64h?

????????? ? out? 64h,,0fff8h???? ;關(guān)定時(shí)器?

? ????? ??? ……??????? ????? ,;計(jì)算頻率?

??????? b?? $?????????????? ,;等待?

??? 定時(shí)器中斷服務(wù)程序(timer)流程圖如圖6所示。?

?

?

timer:? lacl??? 73h???????? ,;定時(shí)器中斷服務(wù)程序?

??????? ……??????????? ;據(jù)控制字判斷是進(jìn)入頻率測試子程序還是進(jìn)入相位測試子程序,。?

??????? cmpr??? 0?

??????? bcnd??? timer2,tc?

??? ??? b??? timer1?

timer1: lacl? 69h?????? ,;頻率定時(shí)器服務(wù)子程序?

??????? add? #1h?

??????? sacl? 69h?

??????? splk? #4h,,ifr????? ;清除定時(shí)器標(biāo)志?

??????? clrc? intm?

??????? ret?

timer2:? lacl? 69h? ??????? ;相位定時(shí)器服務(wù)子程序?

??????? add? #1h?

??????? sacl? 69h?

??????? splk #4h,,ifr? ,;清定時(shí)器的標(biāo)志位?

??????? clrc intm ?

??????? ret????? ????????;中斷返回?

參考文獻(xiàn)?

1 TMS320c1x/c2x/c2xx/c5x Assembly Language Tools User’s Guide. TEXAS INSTRUMENTS,,1999.7?

2 TMS320c2xx User’s Guide.TEXAS INSTRUMENTS,,1999.7?

3 彭啟棕,李玉柏.DSP技術(shù).成都:電子科技大學(xué)出版社,1997?

4 張雄偉,,曹鐵勇.DSP芯片的原理與開發(fā)應(yīng)用(第二版).北京:電子工業(yè)出版社,2000?

5 王念旭.DSP基礎(chǔ)與應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,,2000?

6 TMS320F/C240 DSP Controllers Reference Guide System And Peripherals. TEXAS INSTRUMENTS,1999.7?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com,。