《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > TMS320F206的中斷技術及其實現

TMS320F206的中斷技術及其實現

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

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

  關鍵詞: TMS320F206? DSP? 中斷

?

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

1 TMS320F206的結構特點?

  TI公司的TMS320F206芯片是采用靜態CMOS集成電路工藝制造的。結構設計建立在TMS320C20X芯片的基礎上,只需5V的低電壓就可運行。它的先進的哈佛結構、片內外設、片上" title="片上">片上內存以及豐富的命令集使它的速度和可靠性大大提高。?

  TMS320F206的主要特點有:?

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

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

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

  (4)片上4.5K的RAM 使得芯片可以實現快速的DSP計算,并使大部分運算能夠在一個指令周期內完成;?

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

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

2 TMS320F206的中斷?

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

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

?

?

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

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

?

?

?

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

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

?

?

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

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

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

??? (2)NMI,當NMI引腳激活時,程序將強行轉移到中斷向量在24h的位置,并且其它可屏蔽中斷都將禁止。所以當NMI引腳不用時,通常應把它接到高電平,以免發生意外情況。?

3 TMS320F206的中斷實現?

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

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

?

?

??? 主程序如下:?

start:nop?? ?

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

??? splk ?? #0ffffh,ifr?? ;清中斷標志?

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

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

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

??? splk #0h,61h?

??? splk #0f9fh,62h??? ??? ;設置定時器?

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

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

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

wait1: idle?

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

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

?

?

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

Intp2:? setc intm ????? ;進入INT2,INT3中斷服務程序" title="中斷服務程序">中斷服務程序。?

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

??????? 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服務程序?

??????? out 60h,0ffech?? ? ;開INT3中斷?

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

?? ???? out??? 63h,0fff8h? ?? ;啟動定時器?

??????? splk??? #0002h,ifr? ?? ;清INT2/INT3的標志位?

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

??????? ret?

intp31:?setc??? intm??????????? ;INT3服務程序?

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

??????? out 64h,0fff8h ??????? ;停止定時器?

??????? splk #0002h,ifr??????? ;清INT2/INT3的標志位?

??????? clrc intm?

??????? ret?

??????? in? 65h,0fffah? ?????? ;讀定時器的時間?

??? ??? ……??????????????????? ;計算相位?

intp21:?setc intm ????????? ;判斷中斷次數,第一次開?

??????? ……?????? ???????? ;定時器,第二次關定時器?

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

??????? out ? 63h,0fff8h?????? ;啟動定時器?

??????? splk?? #0002h,ifr? ??? ;清除INT2/3標志?

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

??????? ret?

stoptimer1: splk? #0412h,64h?

????????? ? out? 64h,0fff8h???? ;關定時器?

? ????? ??? ……??????? ????? ;計算頻率?

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

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

?

?

timer:? lacl??? 73h???????? ;定時器中斷服務程序?

??????? ……??????????? ;據控制字判斷是進入頻率測試子程序還是進入相位測試子程序。?

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

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

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

timer1: lacl? 69h?????? ;頻率定時器服務子程序?

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

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

??????? splk? #4h,ifr????? ;清除定時器標志?

??????? clrc? intm?

??????? ret?

timer2:? lacl? 69h? ??????? ;相位定時器服務子程序?

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

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

??????? splk #4h,ifr? ;清定時器的標志位?

??????? clrc intm ?

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

參考文獻?

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技術.成都:電子科技大學出版社,1997?

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

5 王念旭.DSP基礎與應用系統設計.北京:北京航空航天大學出版社,2000?

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

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产亚洲高清不卡在线观看 | 久久亚洲精品中文字幕 | 国产精品视_精品国产免费 国产精品深夜福利免费观看 | 国产成人精品一区二区不卡 | 99这里只有精品6 | 国产亚洲综合视频 | gav男人天堂 | 成人看毛片| 久久精品一区二区三区不卡 | 国产精品日韩 | 国产精品视频第一区二区 | 成 人 亚洲 综合天堂 | 免费视频不卡一区二区三区 | 免费看片免费播放国产 | 福利视频免费看 | 婷婷六月激情在线综合激情 | 日本国产精品 | 亚洲午夜久久久 | 婷婷国产天堂久久综合五月 | 毛片完整版 | 极情综合网| 日韩 欧美 中文字幕 不卡 | 国内精品免费一区二区三区 | 欧美精品九九99久久在观看 | 免费a级毛片在线观看 | 国产一级小视频 | 99九九国产精品免费视频 | 九九精品久久久久久久久 | 狠狠综合久久久久尤物丿 | 丁香花在线影院观看在线播放 | 免费在线观看污视频网站 | 日韩小视频在线观看 | 四虎在线永久免费视频网站 | 五月婷婷丁香网 | 色视频在线免费观看 | 第四色电影 | 国产美女网站视频 | 欧洲精品码一区二区三区免费看 | 99久久中文字幕伊人 | 国产精品毛片无码 | 国内精品久久久久影院6 |