第4章-S12中斷系統(tǒng)教材_第1頁
第4章-S12中斷系統(tǒng)教材_第2頁
第4章-S12中斷系統(tǒng)教材_第3頁
第4章-S12中斷系統(tǒng)教材_第4頁
第4章-S12中斷系統(tǒng)教材_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第4章

S12中斷系統(tǒng)

S12中斷系統(tǒng)概述

S12中斷優(yōu)先級

S12中斷程序設(shè)計實例

前言

中斷是用以提高計算機工作效率的一種重要技術(shù),最初它只是作為計算機與外設(shè)交換信息的一種同步控制方式而提出的,但隨著計算機技術(shù)的發(fā)展,特別是CPU速度的迅速提高,對計算機內(nèi)部機制的要求也越來越高,希望計算機能隨時發(fā)現(xiàn)各種錯誤,當系統(tǒng)出現(xiàn)意想不到的事件時,能及時妥善處理。于是,中斷的概念得以延伸,除了傳統(tǒng)的外部事件(硬件)引起的中斷事件外,還有CPU內(nèi)部軟件中斷的概念。所謂中斷,是指CPU在正常執(zhí)行程序的過程中,由于內(nèi)部/外部事件或由程序的預(yù)先安排,引起了CPU暫時中斷當前程序的運行,而轉(zhuǎn)去執(zhí)行由內(nèi)部/外部事件或預(yù)先安排的時間而需要執(zhí)行的中斷服務(wù)子程序,在中斷服務(wù)子程序執(zhí)行完畢后,CPU再重新回來執(zhí)行當前的程序。利用中斷可以大大提高CPU的工作效率。實現(xiàn)中斷功能的控制邏輯稱為中斷機構(gòu)或中斷系統(tǒng)。前言 盡管單片機或者微控制器中的中斷系統(tǒng)各不相同,但中斷系統(tǒng)的基本功能是相同的:能實現(xiàn)中斷響應(yīng)、中斷處理(服務(wù))、中斷返回和中斷屏蔽;能實現(xiàn)中斷優(yōu)先級排隊(管理);能實現(xiàn)中斷嵌套。4.1S12中斷系統(tǒng)概述

S12系列單片機的中斷屬于異常情況處理的一部分,異常情況處理還包括復(fù)位,所以本章除論述了S12系列單片機的中斷系統(tǒng),也簡要介紹了S12系列單片機的幾種復(fù)位情況。正常情況下,單片機有序的執(zhí)行相應(yīng)程序,按照明確的獲取-解碼-執(zhí)行的方式順序處理各種指令。程序計數(shù)器記錄了下一條程序指令位于內(nèi)存中的位置,即使當程序為了相應(yīng)分支或跳轉(zhuǎn)指令而偏離了正常的順序處理,但仍然是在順序事件處理的控制范圍之內(nèi)。可能發(fā)生的異常情況會打破這種事件處理的順序流,將一個正常程序流的中斷歸為一個異常情況,異常情況不一定總是和錯誤相關(guān)聯(lián)的,中斷是在一個處理器上運行多個系統(tǒng)的有效方法。通過上面的論述可以知道,S12程序運行時可能發(fā)生的異??煞譃閮深悾簭?fù)位和中斷,而中斷又進一步分為可屏蔽中斷和不可屏蔽中斷。S12系列單片機的異常分類如圖4.1所示。4.1S12中斷系統(tǒng)概述4.1S12中斷系統(tǒng)概述

4.1.1S12單片機的復(fù)位· S12系列單片機共有四種事件可以觸發(fā)系統(tǒng)復(fù)位。 (1)外部復(fù)位

S12配備一個標記為RESET的低電平有效復(fù)位引腳,當該引腳電壓為低電平時,觸發(fā)復(fù)位。 (2)上電復(fù)位 在S12的VDD引腳上的一個正向變化將觸發(fā)上電復(fù)位,這意味著當給S12上電時,它以一個已知的、確定的設(shè)置啟動。4.1S12中斷系統(tǒng)概述

4.1.1S12單片機的復(fù)位 (3)計算機工作正常(COP)復(fù)位

COP系統(tǒng)允許S12檢測軟件運行故障,通常COP在軟件開發(fā)過程中是關(guān)閉的。但是,一旦某個基于S12的系統(tǒng)完全運行后,這是一項重要的安全保障功能之一。COP系統(tǒng)包含一個用戶設(shè)置的倒計數(shù)定時器,一旦定時器過期,則觸發(fā)一個系統(tǒng)復(fù)位。為了防止定時器過期,執(zhí)行的程序必須在倒計數(shù)定時器失效之前,向ARM/RESETCOP定時器寄存器(COPRST)中寫入$55和$AA。若某個程序陷入一個死循環(huán),它將不能發(fā)送上述必須的信息,因此將產(chǎn)生COP復(fù)位。為了有效地實現(xiàn)這個功能,向COPRST寄存器中寫入$55的代碼應(yīng)該有策略的分布在程序的重要部分,寫入$AA的代碼則可以放在程序的其他部分。這樣,一旦微控制器在某代碼處運行失效,將不會產(chǎn)生需要的代碼序列($55或$AA),這樣就會觸發(fā)COP復(fù)位。可以在程序設(shè)計中設(shè)置多對$55和$AA,實現(xiàn)錯誤恢復(fù)功能。4.1S12中斷系統(tǒng)概述

4.1.1S12單片機的復(fù)位 (4)時鐘監(jiān)控復(fù)位 當系統(tǒng)時鐘頻率低于某個預(yù)設(shè)置值或停止工作時,將觸發(fā)時鐘監(jiān)控復(fù)位。 當上述事件觸發(fā)復(fù)位時,S12單片機在程序計數(shù)器中放置一個復(fù)位向量,處理器執(zhí)行啟動例程。COP復(fù)位和時鐘監(jiān)控復(fù)位具有各自的復(fù)位向量。4.1S12中斷系統(tǒng)概述

4.1.2S12單片機的中斷

S12系列單片機的中斷分為可屏蔽中斷和不可屏蔽中斷。S12的編程模型中有一個條件代碼寄存器,如圖6.2所示,其中的X位和I位與中斷相關(guān),X位是不可屏蔽中斷的屏蔽位,置為“1”則不可屏蔽中斷被關(guān)閉,置為“0”則允許不可屏蔽中斷;I位是可屏蔽中斷的屏蔽位,置為“1”則可屏蔽中斷被關(guān)閉,置為“0”則允許可屏蔽中斷。在系統(tǒng)復(fù)位時,這些中斷屏蔽位默認為“1”,所以單片機復(fù)位后,不可屏蔽中斷和可屏蔽中斷都處于關(guān)閉狀態(tài)。4.1S12中斷系統(tǒng)概述

4.1.2S12單片機的中斷

1.不可屏蔽中斷

不可屏蔽中斷包括軟件中斷、非法指令陷阱和

中斷,下面簡要介紹常用的幾個不可屏蔽中斷。 (1)軟件中斷

SWI實質(zhì)上是一條指令,但其執(zhí)行過程與中斷相同,即通過中斷矢量確定目標地址,中斷矢量為$FFF6~$FFF7,它自動保存MCU的寄存器和返回地址,最后必須通過RTI指令返回。 (2)非法指令陷阱

MCU正常工作時,每次獲得的都是由匯編或編譯程序生成的有效操作碼,MCU能夠正確解釋并執(zhí)行它們,但當受到干擾或系統(tǒng)出現(xiàn)混亂時,可能得到無法識別的操作碼,即非法指令,這時MCU自動產(chǎn)生一次中斷,中斷矢量地址為$FFF8~$FFF9。4.1S12中斷系統(tǒng)概述

4.1.2S12單片機的中斷

1.不可屏蔽中斷

(3)XIRQ XIRQ是非屏蔽中斷引腳,無論MCU處于哪種運行狀態(tài),該引腳一旦被拉成低電平,MCU執(zhí)行完當前指令后,都會響應(yīng)該中斷,中斷矢量為$FFF4~$FFF5。該中斷一般用于系統(tǒng)掉電檢測、硬件故障等重要事件處理,當MCU處于等待或暫停模式時,該中斷將喚醒MCU。4.1S12中斷系統(tǒng)概述

4.1.2S12單片機的中斷

2.可屏蔽中斷

可屏蔽中斷可以在程序控制下由用戶開啟或者關(guān)閉??善帘沃袛嗟拈_關(guān)是條件代碼寄存器(CCR)中的I位。通過清除I可以開啟可屏蔽中斷。S12系列單片機中的可屏蔽中斷數(shù)量非常多,這里僅對做簡要介紹,其他的可屏蔽中斷可參見相關(guān)功能模塊的章節(jié)。

S12系列單片機配備一個標記為的外部引腳,當該引腳出現(xiàn)低電平或者電平下降沿時,則會產(chǎn)生中斷請求,這也是S12單片機接受外部事件中斷的主要手段。有一個中斷控制寄存器(INTCR)和的設(shè)置相關(guān),如圖6.3所示。4.1S12中斷系統(tǒng)概述

4.1.2S12單片機的中斷

通過該寄存器中的IRQE位和IRQEN位對IRQ中斷進行設(shè)置。

IRQE:中斷電平/邊沿有效選擇:

0表示IRQ引腳配置為低電平有效;

1表示IRQ引腳配置為下降沿有效。

IRQEN:外部IRQ中斷請求使能:

0表示IRQ中斷關(guān)閉;

1表示IRQ中斷允許。4.1S12中斷系統(tǒng)概述

4.1.2S12單片機的中斷

3.中斷堆棧操作順序

因為中斷響應(yīng)過程中,會有隱含的堆棧操作,所以中斷響應(yīng)前,堆棧必須有效,即堆棧指針SP必須指向一個有效的RAM區(qū),而且堆棧的大小必須不少于9個字節(jié)。中斷響應(yīng)堆棧操作如表6.1所示。4.2S12中斷優(yōu)先級

S12與多個中斷源相連,所以在同一時刻可能會有兩個或兩個以上的中斷源同時請求中斷,這就要求必須根據(jù)任務(wù)的輕重緩急給每個中斷源分配不同的中斷優(yōu)先級。當兩個或兩個以上中斷源同時發(fā)生時,優(yōu)先級高的中斷將先被處理。一般來說,不可屏蔽中斷的優(yōu)先級高于可屏蔽中斷的優(yōu)先級。復(fù)位以及不可屏蔽中斷的優(yōu)先級從高到低依次為:4.2S12中斷優(yōu)先級4.2S12中斷優(yōu)先級4.2S12中斷優(yōu)先級 表6.2中的最后一列表示最高優(yōu)先級中斷設(shè)定寄存器(HPRIO)中可以設(shè)置的數(shù)值,通過設(shè)置該寄存器,可以將某個可屏蔽中斷的優(yōu)先級“推進”為可屏蔽中斷中的最高優(yōu)先級中斷。最高優(yōu)先級中斷設(shè)定寄存器(INTCR)如圖6.4所示。 復(fù)位后該寄存器默認值為$F2,表示IRQ($FFF2,$FFF3)中斷在可屏蔽中斷中的優(yōu)先級最高。4.2S12中斷優(yōu)先級 需要注意的是,通過HPRIO設(shè)定的優(yōu)先級并不表示當出現(xiàn)中斷嵌套時,高優(yōu)先級中斷可以中止低優(yōu)先級中斷的服務(wù)程序執(zhí)行,而轉(zhuǎn)向高優(yōu)先級中斷的服務(wù)程序運行。這里高優(yōu)先級作用只有當多個中斷源同時請求中斷時才能體現(xiàn),這時S12單片機將首先響應(yīng)高優(yōu)先級的中斷,低優(yōu)先級的中斷不會得到響應(yīng)。4.2S12中斷優(yōu)先級

S12單片機默認的中斷處理機制如圖6.5所示。從圖中可以看到,S12單片機默認狀態(tài)下在進入中斷服務(wù)程序時,I位自動置1,所以禁止其他可屏蔽中斷,盡管在處理中斷A的服務(wù)程序過程中又來了更高級別的中斷B的中斷請求,單片機也無法及時處理,必須等待當前中斷服務(wù)程序執(zhí)行完以后才能響應(yīng)。4.2S12中斷優(yōu)先級

如果希望在S12單片機中實現(xiàn)中斷嵌套,一個比較簡單的方法是進入中斷服務(wù)程序時,將可屏蔽中斷屏蔽位I清零。這樣可以實現(xiàn)如圖6.6所示的中斷嵌套。4.2S12中斷優(yōu)先級

從圖6.6中可以看到,這樣簡單的處理也可能會帶來問題,就是低優(yōu)先級的中斷請求會使得高優(yōu)先級中斷服務(wù)程序掛起。因為在中斷B的服務(wù)程序中清除可屏蔽中斷屏蔽位I,所以此時任何可屏蔽中斷請求都可以得到處理,出現(xiàn)了低優(yōu)先級的中斷A打斷高優(yōu)先級B中斷服務(wù)程序的情況。為了解決這個問題,可以只在中斷A的服務(wù)程序中清除可屏蔽中斷屏蔽位I,而在中斷B的服務(wù)程序中不做處理,這樣就可以得到如圖6.7所示的中斷處理機制,這樣只有高優(yōu)先級的中斷請求可以打斷低優(yōu)先級中斷的服務(wù)程序。4.3S12中斷程序設(shè)計實例

本實例硬件連接如圖6.8所示,PORTA端口連接1個8位撥碼開關(guān),PORTB端口連接8只LED,單片機IRQ引腳外接一個按鍵,按鍵按下為低電平。要求編程實現(xiàn)利用

IRQ作為中斷源,采用中斷方式,利用8位撥碼開關(guān)控制8只LED燈的循環(huán)點亮速度,撥碼開關(guān)的不同狀態(tài)設(shè)置代表燈循環(huán)點亮時點亮速度值的設(shè)定。4.3S12中斷程序設(shè)計實例 中斷服務(wù)程序可以有兩種編寫方式,一種是利用中斷編號關(guān)聯(lián)中斷服務(wù)程序;另外一種是通過在.prm文件中的聲明關(guān)聯(lián)中斷服務(wù)程序。首先介紹利用中斷編號編寫中斷服務(wù)程序。從表6.2中可以看到,中斷向量表依次自上而下從0開始編號,IRQ中斷在表格中是第7個,所以編號為6,下面是部分實例程序代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論