国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

TMS320F24x的實時多中斷任務處理

發布時間:2010-4-2 07:19    發布者:蹦蹦
關鍵詞: 任務 , 實時
引言

TMS320F240內部集成了完善的外圍設備,包括2個10位的A/D轉換器和1個串口通信接口模塊(SCI),以及其獨有的、可提供3個 16位的定時器,3個單比較單元和3個全比較單元的事件管理器(event manager)單元。F240芯片采用多個中斷源共享DSP內核同一中斷級的中斷結構,與常用的數學控制芯片相比,它提供了更多的中斷源,可以滿足對復雜控制對象的實時多中斷任務處理要求,使得用戶能更加方便、靈活地編寫中斷處理程序。

1 TMS320F240中斷系統的特點及中斷響應過程

1.1 TMS320F240的中斷系統的特點

TMS320F240芯片中斷系統的基本特點是:通過賦予每個中斷源以不同的優先級,使多個中斷源可以共享DSP內核中同一中斷級,從而提供更多的中斷源和更靈活的中斷處理方法。具體而言,在F240器件中,所有的中斷請求都是送至DSP內核進行處理的。對可屏蔽中斷,DSP內核只提供了6個可屏蔽的中斷級(INT1~INT6)。而F240的可屏蔽中斷源大大超過了6個(例如:僅F240器件的3個通用定時器就有12個可屏蔽中斷源,用戶可使用的中斷源則多達36個)。所以,在F240中,這6個中斷級中的每一個都會被多個中斷源共享,即F240在實現多中斷任務時,基本上都會出現多中斷源共享DSP內核同一中斷的情況。當多于一個的硬件中斷被觸發掛起時,F240將根據優先級別的高低順序執行相應的中斷服務子程序。F240器件可以識別下列 4種類型的中斷源:

①復位中斷;
②由6個外部引腳(XINT1、XINT2、XINT3、PDPINT、RS以及NMI引腳)產生的外部中斷;
③由片內外設模塊,包括事件管理模塊(EV)、A/D轉換模塊(ADC)、串行通信模塊(SCI)等產生的外設中斷;
④由INTR指令、NMI指令或TRAP指令等引起的軟件中斷等。

其中,除了軟件中斷、兩個外部硬件中斷RS和NMI是不可屏蔽中斷之外,其余的都是可屏蔽中斷。相對于可屏蔽中斷而言,不可屏蔽中斷涉及的寄存器較少,處理方法較為簡便。文中主要對可屏蔽中斷的多中斷任務處理進行詳細分析。

1.2 TMS320F240多級中斷寄存器的結構

在TMS320F240的程序空間中,中斷向量占據了0000h~0003fh的地址空間。中斷向量地址被分為兩個地址單元,從而雙字的轉移指令可存放在這些單元中。為了處理多中斷源共享DSP內核同一中斷級的問題,DSP內部提供了多級中斷控制寄存器以滿足需要。

(1)CPU總中斷級寄存器

①中斷屏蔽寄存器(IMR)。它包含用于使能或禁止每一中斷級(INT1~INT6)的屏蔽位,地址為0004h,各位情況如圖1所示。它用來屏蔽外部和內部硬件中斷(NMI和RS除外)。當要屏蔽某硬件中斷時,就把相應位清0;當要開放某硬件中斷時,就把相應位置1,并且它的每一位不受硬件復位的影響。在圖1中,0表示一般情況下讀的數為0,R表示讀,W表示寫,-0表示復位后這位為0。



②中斷標志寄存器(IFR)。它包含用以指示INT1~INT6中斷級中,已經發送至CPU的可屏蔽中斷請求的標志位,地址為0006h,各位情況如圖2 所示。當有一個可屏蔽中斷到達CPU時,IFR的相應標志位就置1,表明相應中斷(INT1~INT6)正在被掛起或正在等待響應。將1寫入到相應的標志位,可清除相應位,并清除其中斷請求。在圖2中,0表示一般情況下讀的數為0,R表示讀,W1C表示寫1時把這位清為0,-0表示復位后這位為0。



(2)外設備中斷源分級控制寄存器

由外設產生的每一個特定中斷源,DSP都提供兩個相應的分級控制寄存器,包括一個子標志位中斷控制寄存器和一個子屏蔽位中斷控制寄存器。對于由事件管理器產生的中斷事件,每個中斷源都有相應的中斷控制寄存器,如圖3所示。



①三組事件中斷子屏蔽寄存器(EVIMRA/EVIMRB/EVIMRC),用以屏蔽對應的事件管理器中斷。EVIMRi(i=A,B,C)各位的意義基本與IMR  
一致。

②三組事件中斷子標志寄存器(EVIFRA/EVIFRB/EVIFRC),用以指示對應的事件管理器中斷。EVIFRi(i=A,B,C)各位的意義基本與IFR一致。

對于系統模塊中斷,其各個中斷事件的中斷屏蔽位和中斷標志位由各個專用的分級模塊寄存器提供。如SCI中斷,其掃收中斷RXINT的屏蔽與使能由SCI模塊內的控制寄存器SCICLT2的中斷位RX/BKEN設置。當接收中斷產生后,SCI的接收狀態寄存器SCIRXST的RXRDY位置1,以表示接收中斷產生。

另外,值得注意的是,DSP內核的ST0狀態寄存器中還有一個中斷總屏蔽位-INTM。INTM為0時,開中斷,允許沒有被屏蔽的中斷使能;INTM為1 時,則禁止所有可屏蔽中斷。

1.3 TMS320F240的中斷響應過程

(1)TMS320F240中斷響應過程
當有中斷事件發生時,F240器件分三個階段進行中斷處理。
①接收中斷請求。由軟件中斷(來自程序代碼)或硬件中斷(來自引腳或片內外設)提出中斷請求,將主程序掛起。
②響應中斷。如果中斷是可屏蔽的,當這些可屏蔽中斷的應用條件滿足時,F240器件響應中斷;對于不可屏蔽的硬件中斷和軟件中斷,F240器件將立即作出響應。
③執行中斷服務子程序。一時中斷被響應,F240器件便轉移到其相應的中斷子程序ISR(Interrupt Service Routine)。F240按用戶放置在預定地址(向量存儲單元)處的轉移指令,執行用戶寫好的中斷服務程序。

在完成對多中斷任務的實時處理時,對不同級別的中斷源響應,直接進入相應的ISR進行處理即可。對共享DSP內核中同一中斷優先級的多中斷源,DSP則利用內部的多級中斷控制寄存器,對每一個中斷源發出的中斷請求都用多個中斷標志進行標識。圖4是一個多中斷源共享INT3級中斷的多中斷任務請求響應處理過程示意圖。



當接收到一個中斷信號(TPINT2/TOFINT3)時,相應的中斷源子標志寄存器(EVIFRB)中的標志位被置位,用以指示中斷已被請求。如果中斷源子屏蔽寄存器(EVIMRB)中的屏蔽位也被設置為開中斷,則該信號被送至仲裁邏輯器,仲裁邏輯可能同時從一個或多個中斷控制寄存器接收到類似的多中斷任務信號。仲裁邏輯通過比較這些競爭中斷請求的優先級,將具有最高優先級的中斷送至CPU。CPU的總中斷級標志寄存器IFR中與所接收的中斷優先級相對應的中斷標志位將被置位,指示中斷被掛起。如果總中斷級屏蔽寄存器IMR中相應的屏蔽位為1,并且DSP中斷總屏蔽位INTM為 0,則CPU響應該中斷并執行相應的中斷服務子程序。

(2)中斷向量偏移地址
為了更好地處理多中斷源復用的問題,DSP采用了向量偏移地址的方法。因為采用中斷標志分辨的方法需要進行多次條件判斷才能把涉及到的具體中斷源分辨出來;而采用中斷向量偏移地址的方法,只需兩條指令即可完成分辨任務,減少了程序存儲器的存儲開銷,節約了CPU的時鐘開銷。

DSP控制器為事件管理模塊的每一個中斷都分配了一個不同的中斷向量偏移地址。當某個事件管理模塊發出了請求信號,分自動地將該中斷的向量偏地址寫入到對應的事件管理中斷向量寄存器(EVIVRA/EVIVRB/EVIVRC)中。而對于由系統外設模塊產生的中斷,DSP控制器將分配的中斷向量偏移地址寫入到系統中斷向量寄存器(SYSIVR)中。用戶可以通過讀取該寄存器來取得外設中斷的中斷向量偏移地址。所以在編程開發時,先要編好一個中斷向量表,對于沒有用到的中斷也應該編上,并讓它返回到一個空位置,以免發生意外情況。這里,給出事件管理器B組的INT3級中斷向量寄存器的結構示意圖,如表1所列。關于每一個中斷級的中斷向量寄存器(IVR)單元和每一中斷事件的偏移量的詳細信息,見F240的數據手冊。

表1 TMS320F240 INT3級中斷控制向量表
中斷源名稱DSP內核中斷級向量地址外設向量寄存器地址外設向量偏移地址是否可屏蔽控制器模塊中斷功能
TPINT2INT3(0006H)

事件管理器中斷組B
EVIVRB(7433H)002AHEV.GPT2定時器2周期中斷
TCINT2002CHEV.GPT2定時器2比較中斷
TUFINT2002DHEV.GPT2定時器2下溢中斷
TOFINT2002EHEV.GPT2定時器2上溢中斷
TPINT3002FHEV.GPT3定時器3周期中斷
TCINT30030HEV.GPT3定時器3比較中斷
TUFINT30031HEV.GPT3定時器3下溢中斷
TOFINT30032HEV.GPT3定時器3上溢中斷

2 TMS320F240實時多中斷任務處理的軟件實現

由于F240器件采用了多個中斷源共享內核同一中斷級的中斷方式,不僅提供了更多的中斷源,而且使得用戶能方便地處理各種中斷源的中斷請求。

如圖5所示,當系統有多中斷任務產生時,一旦有中斷任務被響應,則CPU終止當前正在執行的程序代碼,轉移至中斷服務子程序并執行。中斷服務子程序主要分兩個步驟完成。



①轉移至通用中斷服務子程序(GISR-G功Interrupt Service Routine)。當中斷級中的某一個中斷被響應時,CPU將轉移至相應的向量地址,并根據該地址轉移至GISR。例如,若INT3中的一個中斷被響應,則程序計數器(PC)值被存入棧頂,然后PC機中裝入程序寄存器地址0006h。地址0006h和0007h中包含一條轉移指令。該指令使CPU轉移至 GISR。

②轉移至特定中斷服務子程序(SISR-Special Interrupt Service Routine)。當一個外設中斷請求被響應時,外設產生一個相應于該特定中斷事件的向量地址偏移量。該偏移量通常被鎖存在系統中斷向量寄存器(SYSIVR)或事件管理中斷向量寄存器(EVIVRA/EVIVRB/EVIVRC)中。GISR必須讀取存儲在IVR中的值,確定具體的子中斷源,并據此產生轉移至SISR的轉移目標地址,然后進行特定的中斷處理。

在對SISR進行處理完畢之后,ISR以一條返回指令RET結束。該指令將把返回地址從堆棧彈出。然后,CPU繼續執行被中斷的代碼序列。
如果對于某一中斷級,并沒有多中斷源共享的情況,則直接在GISR中進行中斷處理即可。此時,沒有必要進入SISR進行子中斷源的判斷。另外,進入中斷后,INTM位自動置1,以防止其它的可屏蔽中斷。若想允許中斷嵌套,則要在ISR中清除INTM位(CLRC INTM),在全局上重新使能可屏蔽中斷,使得新的ISR得以嵌套。

下面結合一個具體的機器人DSP控制程序,給出DSP實時多中斷任務處理的實例。在本機器人DSP控制程序中,一共要完成四個中斷實時處理任務,并且涉及到了多個中斷源共享DSP內核同一中斷級的中斷方式。中斷服務程序結構框圖如圖6所示。



串行中斷SCI占用了INT1第一級中斷,完成DSP與上位機的通信任務。定時器T1中斷占用了INT2第二級中斷,完成傳感器的位置信息采集和PID控制任務。而定時器T2中斷和定時器T3中斷則共用了INT3第三級中斷,完成產生兩路PWM波形的任務。定時器T2和定時器T3各自周期中斷的向量偏移地址分別為002BH和002FH。當有INT3級中斷申請時,在對應的中斷服務程序(ISR)中判斷中斷的向量偏移地址,以此來確定具體是產生了定時器T2中斷還是定時器T3中斷,再轉入定時器T2/T3相應的子中斷服務程序。在中斷服務程序中,需要根據在中斷程序中對各種寄存器的使用情況,編寫中斷保護和中斷恢復代碼,即在進入ISR時,要對這些寄存器變量進行堆棧保護;在ISR完成時,要對這些寄存器變量進行堆;謴。另外,在編寫中斷服務程序時,要注意對各寄存器的中斷標志位和中斷屏蔽位進行適當的處理,為進入下一次中斷做準備。以下即為給出的機器人中斷服務程序的核心代碼,主要對兩個定時器中斷源共享INT3中斷級的中斷處理進行詳盡地闡述。對于INT1和 INT2這兩個中斷任務,由于無多中斷源共享的問題,在進行中斷處理時比較簡單,直接進入相應的ISR即可。相應的中斷處理程序請見網絡補充版。

結語

在利用DSP進行數字化控制的過程中,必然要使用到較多的中斷才能圓滿完成對復雜控制系統的控制任務。F240作為DSP TMS320F24x系列的典型代表,掌握F240的中斷處理方法,對TMS320F24x系列的TMS320F241/F243/C242以及 TMS320LF2406/LF2407等芯片同樣具有參考意義。因此,這種處理方法還具有一定的通用性。筆者將該處理方法應用到基于 TMS320F240的主從遙控作業機器人控制系統的軟件開發中。經實踐證明,這能夠滿足機器人的實時多中斷任務處理的要求,并取得了良好的實際效果。

參考文獻

1. TMS320F/C24x DSP Controllers Reference Guide-CPU and Instruction Set 1999
2. 武漢力源電子股份有限公司 TMS320C2XX 數字信號處理器用戶指南 2000
3. 章云.謝莉萍.熊紅艷 DSP 控制器及其應用 2001
4. 張雄偉 DSP 芯片的原理與開發應用 1997


作 者:武漢化工學院 張琴 華中科技大學 向先波  
來 源:單片機嵌入式系統應用 2003(12)
本文地址:http://m.qingdxww.cn/thread-10109-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区久久久 | 99久久免费午夜国产精品 | 中文字幕avv | 99热日韩| 欧美性生交xxxxx久久久 | 四虎影视站长工具 | 成人激情综合 | 欧美三级一区二区 | 欧美日韩精品免费一区二区三区 | 97视频网站| 日本精品99 | 久热热热 | 免费99精品国产自在现线 | 亚洲激情综合 | 一级黄色免费毛片 | 手机看片1204日韩一区二区 | 国精品日韩欧美一区二区三区 | 伊人热人久久中文字幕 | 天天在线干 | 黄色日韩网站 | 日本天堂网在线 | 国产青青在线 | 国产精品理论片在线观看 | 黄视频免费在线看 | 九九热免费在线视频 | 欧美高清hd视频免费播放 | 日本大片免费观看 | 日本www在线观看 | 好吊在线 | 92精品国产自产在线 | 国产精品久久久久久 | 麻豆视屏 | 99久久影视 | 欧美激情黑人 | 天堂中文在线观看 | 国产精品亚洲精品 | 夜夜夜噜噜噜 | 在线精品视频播放 | 久久青草精品免费资源站 | 2020国产麻豆剧传媒 | 无限看片动漫的视频在线观看免费 |