概念
中斷是處理器一種工作狀態的描述,因為處理器與很多外部電路相連並負責處理外部電路送來的各種信息(處在協同工作狀態),如果遇有(外部電路送來)“急件”需要優先處理,處理器則須先停下“自己手頭的工作”先去處理“急件”,這種先停下“自己手頭的工作”去處理“急件”的過程,即為——中斷。中斷源:即發出“急件”的地點(電路)。
中斷是單片機實時地處理內部或外部事件的一種內部機制。當某種內部或外部事件發生時,單片機的中斷系統將迫使CPU暫停正在執行的程式,轉而去進行中斷事件的處理,中斷處理完畢後,又返回被中斷的程式處,繼續執行下去。
引起中斷的事件是中斷源。
種類
一般來說,外部硬體中斷主要有以下幾種:
一、I/O設備:如顯示器、鍵盤、印表機等。
二、數據通道:軟碟、硬碟、光碟等。
三、實時時鐘:如外部的定時電路等。
四、用戶故障源:如掉電、奇偶校驗錯誤等。
產生於CPU內部的軟體中斷源有幾種:
一、由CPU得運行結果產生:如除數為0、結果溢出、單步執行等。
二、執行中斷指令INT:INT3
三、非法操作或指令引起異常處理。
通常中斷源有以下幾種:
(1)外部設備請求中斷。一般的外部設備(如鍵盤、印表機和A/D轉換器等)在完成自身的操作後,向CPU發出中斷請求,要求CPU為他服務。由計算機硬體異常或故障引起的中斷,也稱為內部異常中斷。
(2)故障強迫中斷。計算機在一些關鍵部位都設有故障自動檢測裝置。如運算溢出、存儲器讀出出錯、外部設備故障、電源掉電以及其他報警信號等,這些裝置的報警信號都能使CPU中斷,進行相應的中斷處理。
(3)實時時鐘請求中斷。在控制中遇到定時檢測和控制,為此常採用一個外部時鐘電路(可程式)控制其時間間隔。需要定時時,CPU發出命令使時鐘電路開始工作,一旦到達規定時間,時鐘電路發出中斷請求,由CPU轉去完成檢測和控制工作。
(4)數據通道中斷。數據通道中斷也稱直接存儲器存取(DMA)操作中斷,如磁碟、磁帶機或CRT等直接與存儲器交換數據所要求的中斷。
(5)程式自願中斷。CPU執行了特殊指令(自陷指令)或由硬體電路引起的中斷是程式自願中斷,是指當用戶調試程式時,程式自願中斷檢查中間結果或尋找錯誤所在而採用的檢查手段,如斷點中斷和單步中斷等。