




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《MC9S12XS單片機原理及嵌入式系統開發》MC9S12XS單片機原理
及嵌入式系統開發合肥工業大學張陽,吳曄,滕勤Email:yzhang0615@163.com,wuye@,tengqin7348@126.com
TEL13505612773第6章
MC9S12系列中斷系統MC9S12系列中斷系統概述
MC9S12系列中斷優先級
MC9S12系列中斷程序應用實例
前言 中斷是用以提高計算機工作效率的一種重要技術,最初它只是作為計算機與外設交換信息的一種同步控制方式而提出的,但隨著計算機技術的發展,特別是CPU速度的迅速提高,對計算機內部機制的要求也越來越高,希望計算機能隨時發現各種錯誤,當系統出現意想不到的事件時,能及時妥善處理。于是,中斷的概念得以延伸,除了傳統的外部事件(硬件)引起的中斷事件外,還有CPU內部軟件中斷的概念。所謂中斷,是指CPU在正常執行程序的過程中,由于內部/外部事件或由程序的預先安排,引起了CPU暫時中斷當前程序的運行,而轉去執行由內部/外部事件或預先安排的時間而需要執行的中斷服務子程序,在中斷服務子程序執行完畢后,CPU再重新回來執行當前的程序。利用中斷可以大大提高CPU的工作效率。實現中斷功能的控制邏輯稱為中斷機構或中斷系統。前言 盡管單片機或者微控制器中的中斷系統各不相同,但中斷系統的基本功能是相同的:能實現中斷響應、中斷處理(服務)、中斷返回和中斷屏蔽;能實現中斷優先級排隊(管理);能實現中斷嵌套。6.1MC9S12系列中斷系統概述 MC9S12系列MCU的中斷屬于異常情況處理的一部分,異常情況處理還包括復位,所以本章除論述MC9S12系列MCU的中斷系統,也簡要介紹MC9S12系列MCU的幾種復位情況。正常情況下,MCU有序的執行相應程序,按照明確的獲取-解碼-執行的方式順序處理各種指令。程序計數器記錄了下一條程序指令位于內存中的位置,即使當程序為了相應分支或跳轉指令而偏離了正常的順序處理,但仍然是在順序事件處理的控制范圍之內??赡馨l生的異常情況會打破這種事件處理的順序流,將一個正常程序流的中斷歸為一個異常情況,異常情況不一定總是和錯誤相關聯的,中斷是在一個MCU上實現多個任務的有效方法。通過上面的論述可以知道,MC9S12系列程序運行時可能發生的異??煞譃閮深悾簭臀缓椭袛?,而中斷又進一步分為可屏蔽中斷和不可屏蔽中斷。MC9S12系列MCU的異常情況分類如圖6.1所示。6.1MC9S12系列中斷系統概述6.1MC9S12系列中斷系統概述
6.1.1復位· S12系列單片機共有四種事件可以觸發系統復位。 (1)外部復位
S12配備一個標記為RESET的低電平有效復位引腳,當該引腳電壓為低電平時,觸發復位。 (2)上電復位 在S12的VDD引腳上的一個正向變化將觸發上電復位,這意味著當給S12上電時,它以一個已知的、確定的設置啟動。6.1MC9S12系列中斷系統概述
6.1.1復位
(3)計算機工作正常(COP)復位
COP系統允許MCU檢測軟件運行故障,通常COP在軟件開發設計過程中是關閉的。但是,當基于MC9S12系列的系統完全運行后,這是一項重要的安全保障功能之一。COP系統包含一個用戶設置的定時器,一旦定時器超時,則觸發系統復位。為了防止定時器超時,執行的程序必須在定時器超時之前,向ARMCOP寄存器中依次寫入$55和$AA。若某個程序陷入一個死循環,它將不能按照上述要求對ARMCOP寄存器進行操作,因此將會產生COP復位。為了有效地實現這個功能,向ARMCOP寄存器中寫入$55的代碼應該有策略的分布在程序的重要部分,寫入$AA的代碼則可以放在程序的其他部分。這樣,一旦MCU在某代碼處運行失效,將不會產生需要的代碼序列($55或$AA),這樣就會觸發COP復位。可以在程序設計中設置多對$55和$AA,實現錯誤恢復功能。6.1MC9S12系列中斷系統概述
6.1.1復位
(4)時鐘監控復位 當系統時鐘頻率低于某個預設置值或停止工作時,將觸發時鐘監控復位。 當上述事件觸發復位時,S12單片機在程序計數器中放置一個復位向量,處理器執行啟動例程。COP復位和時鐘監控復位具有各自的復位向量。6.1MC9S12系列中斷系統概述
6.1.2中斷 MC9S12系列MCU的中斷分為可屏蔽中斷和不可屏蔽中斷。MCU有一個條件代碼寄存器(CCR),如圖6.2所示,其中的X位和I位與中斷相關,X位是不可屏蔽中斷的屏蔽位,置為“1”則關閉不可屏蔽中斷,置為“0”則允許不可屏蔽中斷;I位是可屏蔽中斷的屏蔽位,置為“1”則關閉可屏蔽中斷,置為“0”則允許可屏蔽中斷。在系統復位時,CCR這些中斷屏蔽位默認為“1”,所以MCU復位后,不可屏蔽中斷和可屏蔽中斷都處于關閉狀態。6.1MC9S12系列中斷系統概述
6.1.2中斷 1.不可屏蔽中斷 不可屏蔽中斷包括軟件中斷、非法指令陷阱和XIRQ中斷,下面簡要介紹常用的幾個不可屏蔽中斷。 (1)軟件中斷
SWI實質上是一條指令,但其執行過程與中斷相同,即通過中斷矢量確定目標地址,中斷矢量為$FFF6~$FFF7,它自動保存MCU的寄存器和返回地址,最后必須通過RTI指令返回。 (2)非法指令陷阱
MCU正常工作時,每次獲得的都是由匯編或編譯程序生成的有效操作碼,MCU能夠正確解釋并執行它們,但當受到干擾或系統出現混亂時,可能得到無法識別的操作碼,即非法指令,這時MCU自動產生一次中斷,中斷矢量地址為$FFF8~$FFF9。6.1MC9S12系列中斷系統概述
6.1.2中斷 1.不可屏蔽中斷 (3)XIRQ XIRQ是非屏蔽中斷引腳,無論MCU處于哪種運行狀態,該引腳一旦被拉成低電平,MCU執行完當前指令后,都會響應該中斷,中斷矢量為$FFF4~$FFF5。該中斷一般用于系統掉電檢測、硬件故障等重要事件處理,當MCU處于等待或暫停模式時,該中斷將喚醒MCU。6.1MC9S12系列中斷系統概述
6.1.2中斷 2.可屏蔽中斷 可屏蔽中斷可以在程序控制下由用戶開啟或者關閉??善帘沃袛嗟拈_關是條件代碼寄存器(CCR)中的I位。通過清除I可以開啟可屏蔽中斷。S12系列單片機中的可屏蔽中斷數量非常多,這里僅對IRQ做簡要介紹,其他的可屏蔽中斷可參見相關功能模塊的章節。
MC9S12系列MCU有一個標記為IRQ引腳,當該引腳出現低電平或者下降沿時,則會產生中斷請求信號,這也是MCU接受外部事件中斷的主要手段。IRQ控制寄存器(IRQCR)和IRQ的中斷設置相關,如圖6.3所示。6.1MC9S12系列中斷系統概述
6.1.2中斷
通過該寄存器中的IRQE位和IRQEN位對IRQ中斷進行設置。 IRQE:中斷電平/邊沿有效選擇: 0表示IRQ引腳配置為低電平有效; 1表示IRQ引腳配置為下降沿有效。 IRQEN:外部IRQ中斷請求使能: 0表示IRQ中斷關閉; 1表示IRQ中斷允許。6.1MC9S12系列中斷系統概述
6.1.2中斷 3.中斷堆棧操作順序 因為中斷響應過程中,會有隱含的堆棧操作,所以中斷響應前,堆棧必須有效,即堆棧指針SP必須指向一個有效的RAM區,而且堆棧的大小必須不少于9個字節。中斷響應堆棧操作如表6-1所示。6.2MC9S12系列中斷優先級 MC9S12系列有多個中斷源,所以在同一時刻可能會有兩個或兩個以上的中斷源同時請求中斷,這就要求必須根據任務的輕重緩急給每個中斷源分配不同的中斷優先級。當兩個或兩個以上中斷源同時發生時,優先級高的中斷將先被處理。一般來說,不可屏蔽中斷的優先級高于可屏蔽中斷的優先級。復位以及不可屏蔽中斷的優先級從高到低依次為:6.2MC9S12系列中斷優先級6.2MC9S12系列中斷優先級6.2MC9S12系列中斷優先級6.2MC9S12系列中斷優先級 MC9S12系列默認的中斷處理機制如圖6.4所示。從圖中可以看到,MC9S12系列默認狀態下在進入中斷服務程序時,CCR中的I位自動置1,所以禁止響應其他可屏蔽中斷,盡管在處理中斷A的服務程序過程中又來了更高級別的中斷B的中斷請求,MCU也無法及時處理高優先級B中斷,必須等待當前A中斷服務程序執行完以后才能響應高優先級B中斷6.2MC9S12系列中斷優先級
如果希望在MC9S12系列中實現中斷嵌套,一個比較簡單的方法是進入中斷服務程序時,將CCR中的可屏蔽中斷屏蔽位I清零。這樣可以實現如圖6.5所示的中斷嵌套。6.2MC9S12系列中斷優先級
從圖6.5中可以看到,這樣簡單的CCR中的I位處理也可能會帶來問題,就是會出現低優先級的中斷請求也可以掛起高優先級中斷服務程序。因為在首先響應B中斷服務程序中已經清除了可屏蔽中斷屏蔽位I,所以此時任何可屏蔽中斷請求都能夠得到響應,這樣就出現了低優先級的中斷A打斷高優先級B中斷服務程序的情況。為了解決這個問題,可以只在A中斷服務程序中清除可屏蔽中斷屏蔽位I,而在B中斷服務程序中對CCR中的I位不做處理,這樣就可以得到如圖6.6所示的中斷處理機制,即只存在高優先級的中斷請求打斷低優先級中斷服務程序的情況。6.3MC9S12系列中斷程序應用實例
本實例硬件連接如圖6.7所示,PORTA端口與1個8位撥碼開關連接,PORTB端口與8只LED連接,IRQ引腳與一個按鍵連接,按鍵按下為低電平。要求編程實現IRQ作為中斷源,采用中斷方式,利用8位撥碼開關控制8只LED燈的循環點亮速度,撥碼開關的不同狀態設置了燈的循環點亮速度值。6.3MC9S12系列中斷程序應用實例
本實例中關于流水燈的實現已經在第5章中介紹過,本章著重介紹中斷服務程序的編寫。中斷服務程序可以有兩種編寫方式:一種是利用中斷編號關聯中斷服務程序;另一種是通過在.prm文件中的聲明關聯中斷服務程序。首先介紹利用中斷編號編寫中斷服務程序。從表6.2中可以看到,中斷向量表依次自上而下從0開始編號,中斷在表格中是第7個,所以編號為“6”。另外一種比較方便確定編號的方法是,可以打開工程中“Includes”文件夾下的“MC9S12XS128.h”文件,頭文件的開始處對所有中斷向量地址和中斷標號都做了宏定義,中斷的中斷向量入口地址的宏定義語句為“#defineVirq0xFFF2U”,中斷的中斷標號的宏定義語句為“#defineVectorNumber_Virq6U”,所以也可以用“VectorNumber_Virq”代替前文中提到的編號“6”。下面是部分實例程序代碼。6.3MC9S12系列中斷程序應用實例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人與企業的承包合同模板
- 二人股權轉讓合同書
- 二手手機買賣合同樣本
- 合作伙伴銷售代理合同范本
- 專家課件視頻職業
- 人才交流合同
- 高速公路標志牌工程承包合同
- 不玩火安全教育課件
- 煙臺汽車工程職業學院《材料結構基礎與應用B》2023-2024學年第二學期期末試卷
- 長沙師范學院《人體形態與結構》2023-2024學年第二學期期末試卷
- 2025年中考語文一輪專題復習:古詩詞曲梳理復習重點整合
- 2025年中學教師資格考試《綜合素質》教育教學能力提升教育政策分析試題(含答案)
- 2025-2030中國氯堿行業市場發展分析及發展趨勢預測研究報告
- 2025-2030中國建筑智能化工程行業市場發展分析及發展趨勢前景研究報告
- 呵護地球家園點亮綠色希望-2025年4月22日第56個世界地球日主題教育班會 高中主題班會優 質課件
- 網絡安全問題及其防范措施(基礎篇)-國家計算機網絡應急中心
- 橋隧工技能鑒定理論資源高級技師模擬考試題含答案
- 2025-2030中國5G基站建設情況及前景趨勢與投資研究報告
- 話題10 AI人工智能-2025年中考《英語》高頻熱點話題寫作通關攻略
- 2024年上海市工業技術學校招聘筆試真題
- 2025年中國智能可穿戴設備市場深度調研分析及投資前景研究預測報告
評論
0/150
提交評論