1. 程式人生 > >微控制器中斷的基本概念

微控制器中斷的基本概念

微控制器中斷系統的優點:   1、實現實時處理。   2、實現分時操作。   3、進行故障處理。   4、待機狀態的喚醒。微控制器嵌入式系統的應用中,為了減少電源的功耗,當系統不處理任何事物,處於待機狀態時,可以讓微控制器工作在休眠的低功耗方式。通常,恢復到正常工作方式往往也是利用中斷訊號來喚醒。
中斷處理過程:    中斷系統中,MCU正常情況下執行的程式稱為 主程式 ,把產生申請中斷訊號的單元和事件稱為 中斷源 ,由中斷源向MCU所發出的申請中斷訊號稱為
中斷請求 ,MCU接受中斷申請並停止現行程式的執行而轉向為中斷服務稱為 中斷響應 ,為中斷服務的程式稱為 中斷服務程式 ,現行程式打斷的地方稱為 斷點 ,執行完中斷處理程式後返回斷點處繼續執行主程式稱為 中斷返回   其中K就是斷點,由於中斷服務程式執行完後仍要返回主程式,因此,在執行中斷處理程式之前,要將主程式中斷點處的地址儲存,即中斷返回後要執行的命令地址,這個地址就是程式計數器PC的值。這個過程稱為 保護斷點 。又由於MCU在執行中斷處理程式時,可能會使用和改變主程式使用過的暫存器、標誌位、甚至記憶體單元,因此,在執行中斷服務程式前,還要把有關的資料保護起來,稱為
中斷現場保護 。在MCU執行完中斷處理程式後,又要恢復原來的資料,並返回主程式的斷點處繼續執行,稱為 恢復現場  中斷過程中,斷點的保護和恢復操作是由微控制器內部硬體自動實現,即儲存和恢復計數器PC。  中斷現場的保護和恢復,需要自己設計中斷處理程式時程式設計實現。在使用中斷時,要認真和仔細考慮中斷現場的保護和恢復。

中斷的三個概念: 中斷源、 中斷訊號、 中斷向量(中斷入口地址);系統有若干個中斷源,每個中斷源對應一箇中斷向量,中斷向量只是中斷服務程式的一個入口地址,所有中斷向量連續存放在固定區域,構成了中斷向量區。

中斷優先順序和中斷巢狀:   中斷優先順序的概念是針對有多箇中斷源同時申請中斷時,MCU如何響應中斷,以及響應哪個中斷而提出來的。 中斷優先順序的確定:    某中斷對應的中斷向量地址越小,其中斷優先順序越高(硬體確定方式)   ▋通過軟體對中斷控制器的設定,改變中斷的優先順序(使用者可設定方式,但是AVR不支援)   一些微控制器(如8051)的硬體能夠自動實現中斷巢狀的處理,即微控制器內部的硬體電路能夠識別中斷的優先順序,並根據優先順序的高低,自動完成對高優先順序中斷的優先響應,實現中斷的巢狀處理。 ** AVR微控制器,硬體系統不支援自動實現中斷巢狀的處理。如果在系統設計中,必須使用中斷巢狀處理,則需要由使用者編寫相應的程式,通過軟體設定來實現中斷巢狀的功能。

中斷的響應條件與中斷控制:   1)、中斷的遮蔽:通常存在一些特殊的標誌位用於控制開放或關閉(遮蔽)MCU對中斷響應處理,這些標誌稱為中斷遮蔽標誌位或中斷允許控制位。注意,遮蔽中斷訊號,不是取消。   中斷源分為:非遮蔽中斷、可遮蔽中斷、軟體中斷。**軟體中斷是指CPU具有相應的軟體中斷指令,當MCU執行這條指令時能進入軟體中斷服務,以完成特定的功能(通常用於除錯),但是一般的微控制器不具備軟體中斷的指令。   2)、中斷控制與終端響應條件:微控制器中,對應每一箇中斷源都有一個相應的中斷標誌位,該中斷標誌位將佔據中斷控制器中的一位。當微控制器檢測到某一中斷源產生符合條件的中斷訊號時,其硬體會自動將該中斷源對應的中斷標誌位置“1”,這就意味著有中斷訊號產生了,向MCU申請中斷。       中斷標誌位置“1”,並不代表MCU一定響應該中斷。為了合理控制中斷響應,在微控制器內部還有相關的用於中斷控制的中斷允許標誌位。 最重要的一箇中斷允許標誌位是全域性中斷允許標誌位。當該標誌位為“0”,表示禁止MCU響應所有的可遮蔽中斷的響應。此時不管是否有中斷產生,MCU不會響應任何中斷請求。只有全域性中斷允許標誌位為“1”,MCU才響應。       全域性中斷標誌位為“1”,MCU響應可遮蔽中斷,每個中斷源對應一個各自獨立的中斷允許標誌位。當某個中斷允許標誌位為“0”時,表示MCU不響應該中斷的中斷申請。    MCU響應一個可遮蔽中斷源的中斷請求的條件是:響應A中斷 = 全域性中斷允許標誌位 AND 中斷A允許標誌 AND 中斷A標誌;這些標誌位全部要置“1”。    所以,只有當全域性中斷允許標誌位為“1”(由使用者軟體設定),中斷A允許標誌位為“1”(由使用者軟體設定),中斷A標誌位為“1”(符合中斷條件時由硬體自動設定或由使用者軟體設定)時,MCU才會響應中斷A的請求訊號(如果有多箇中斷請求訊號同時存在的情況下,還要根據中斷A的優先順序來確定)。