單片機中斷的基本概念

單片機中斷系統的優勢:
  一、實現實時處理。
  二、實現分時操做。
  三、進行故障處理。
  四、待機狀態的喚醒。單片機嵌入式系統的應用中,爲了減小電源的功耗,當系統不處理任何事物,處於待機狀態時,可讓單片機工做在休眠的低功耗方式。一般,恢復到正常工做方式每每也是利用中斷信號來喚醒。

中斷處理過程:
   中斷系統中,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的優先級來肯定)。
相關文章
相關標籤/搜索