單片機中斷系統(tǒng)介紹
簡介
中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。
中斷系統(tǒng)是計算機的重要組成部分。實時控制、故障自動處理、計算機與外圍設備間的數(shù)據(jù)傳送往往采用中斷系統(tǒng)。中斷系統(tǒng)的應用大大提高了計算機效率。
不同的計算機其硬件結(jié)構(gòu)和軟件指令是不完全相同的,因此,中斷系統(tǒng)也是不相同的。計算機的中斷系統(tǒng)能夠加強CPU對多任務事件的處理能力。中斷機制是現(xiàn)代計算機系統(tǒng)中的基礎(chǔ)設施之一,它在系統(tǒng)中起著通信網(wǎng)絡作用,以協(xié)調(diào)系統(tǒng)對各種外部事件的響應和處理。中斷是實現(xiàn)多道程序設計的必要條件。 中斷是CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應。 引起中斷的事件稱為中斷源。中斷源向CPU提出處理的請求稱為中斷請求。發(fā)生中斷時被打斷程序的暫停點成為斷點。CPU暫?,F(xiàn)行程序而轉(zhuǎn)為響應中斷請求的過程稱為中斷響應。處理中斷源的程序稱為中斷處理程序。CPU執(zhí)行有關(guān)的中斷處理程序稱為中斷處理。而返回斷點的過程稱為中斷返回。中斷的實現(xiàn)實行軟件和硬件綜合完成,硬件部分叫做硬件裝置,軟件部分成為軟件處理程序。
中斷系統(tǒng)的功能
1)實現(xiàn)中斷響應和中斷返回
當CPU收到中斷請求后,能根據(jù)具體情況決定是否響應中斷,如果CPU沒有更急、更重要的工作,則在執(zhí)行完當前指令后響應這一中斷請求。CPU中斷響應過程如下:首先,將斷點處的PC值(即下一條應執(zhí)行指令的地址)推入堆棧保留下來,這稱為保護斷點,由硬件自動執(zhí)行。然后,將有關(guān)的寄存器內(nèi)容和標志位狀態(tài)推入堆棧保留下來,這稱為保護現(xiàn)場,由用戶自己編程完成。保護斷點和現(xiàn)場后即可執(zhí)行中斷服務程序,執(zhí)行完畢,CPU由中斷服務程序返回主程序,中斷返回過程如下:首先恢復原保留寄存器的內(nèi)容和標志位的狀態(tài),這稱為恢復現(xiàn)場,由用戶編程完成。然后,再加返回指令RETI,RETI指令的功能是恢復PC值,使CPU返回斷點,這稱為恢復斷點?;謴同F(xiàn)場和斷點后,CPU將繼續(xù)執(zhí)行原主程序,中斷響應過程到此為止。
2)實現(xiàn)優(yōu)先權(quán)排隊
通常,系統(tǒng)中有多個中斷源,當有多個中斷源同時發(fā)出中斷請求時,要求計算機能確定哪個中斷更緊迫,以便首先響應。為此,計算機給每個中斷源規(guī)定了優(yōu)先級別,稱為優(yōu)先權(quán)。這樣,當多個中斷源同時發(fā)出中斷請求時,優(yōu)先權(quán)高的中斷能先被響應,只有優(yōu)先權(quán)高的中斷處理結(jié)束后才能響應優(yōu)先權(quán)低的中斷。計算機按中斷源優(yōu)先權(quán)高低逐次響應的過程稱優(yōu)先權(quán)排隊,這個過程可通過硬件電路來實現(xiàn),亦可通過軟件查詢來實現(xiàn)。
3)實現(xiàn)中斷嵌套
當CPU響應某一中斷時,若有優(yōu)先權(quán)高的中斷源發(fā)出中斷請求,則CPU能中斷正在進行的中斷服務程序,并保留這個程序的斷點(類似于子程序嵌套),響應高級中斷,高級中斷處理結(jié)束以后,再繼續(xù)進行被中斷的中斷服務程序,這個過程稱為中斷嵌套。如果發(fā)出新的中斷請求的中斷源的優(yōu)先權(quán)級別與正在處理的中斷源同級或更低時,CPU不會響應這個中斷請求,直至正在處理的中斷服務程序執(zhí)行完以后才能去處理新的中斷請求。
中斷源分類
中斷源是指能夠引起中斷的原因。一臺處理機可能有很多中斷源,但按其性質(zhì)和處理方法,大致可分為如下五類。
① 機器故障中斷。
?、凇〕绦蛐灾袛唷,F(xiàn)行程序本身的異常事件引起的,可分為以下三種:一是程序性錯誤,例如指令或操作數(shù)的地址邊界錯,非法操作碼和除數(shù)為零等;二是產(chǎn)生特殊的運算結(jié)果,例如定點溢出;三是程序出現(xiàn)某些預先確定要跟蹤的事件,跟蹤操作主要用于程序調(diào)試。有些機器把程序性中斷稱為“異?!保环Q為中斷。
?、邸≥斎耄敵鲈O備中斷。
?、堋⊥庵袛?。來自控制臺中斷開關(guān)、計時器、時鐘或其他設備,這類中斷的處理較簡單,實時性強。
?、荨≌{(diào)用管理程序。用戶程序利用專用指令“調(diào)用管理程序”發(fā)中斷請求,是用戶程序和操作系統(tǒng)之間的聯(lián)系橋梁。
中斷優(yōu)先權(quán)
幾個中斷請求可能同時出現(xiàn),但中斷系統(tǒng)只能按一定的次序來響應和處理??勺钕缺豁憫闹袛嗑哂凶罡邇?yōu)先權(quán),按優(yōu)先級別順序進行處理。優(yōu)先權(quán)高低是由中斷部件的中斷排隊線路確定的。
中斷級
當機器設置很多中斷源時,為了簡化設計,對中斷源分組管理。具有相同中斷優(yōu)先權(quán)的中斷源構(gòu)成一個中斷級。同一級中斷使用同一個中斷控制程序起點。
中斷屏蔽
對應于各中斷級設置相應的屏蔽位。只有屏蔽位為1時,該中斷級才能參加中斷優(yōu)先權(quán)排隊。中斷屏蔽位可由專用指令建立,因而可以靈活地調(diào)整中斷優(yōu)先權(quán)。有些機器針對某些中斷源也設置屏蔽位,只有屏蔽位為1時,相應的中斷源才起作用。
中斷響應和處理
大多數(shù)中斷系統(tǒng)都具有如下幾方面的操作,這些操作是按照中斷的執(zhí)行先后次序排列的。①接收中斷請求。②查看本級中斷屏蔽位,若該位為1則本級中斷源參加優(yōu)先權(quán)排隊。③中斷優(yōu)先權(quán)選擇。④處理機執(zhí)行完一條指令后或者這條指令已無法執(zhí)行完,則立即中止現(xiàn)行程序。接著,中斷部件根據(jù)中斷級去指定相應的主存單元,并把被中斷的指令地址和處理機當前的主要狀態(tài)信息存放在此單元中。⑤中斷部件根據(jù)中斷級又指定另外的主存單元,從這些單元中取出處理機新的狀態(tài)信息和該級中斷控制程序的起始地址。⑥執(zhí)行中斷控制程序和相應的中斷服務程序。⑦執(zhí)行完中斷服務程序后,利用專用指令使處理機返回被中斷的程序或轉(zhuǎn)向其他程序。
程序狀態(tài)字和向量中斷
這是兩個與中斷響應和處理有密切關(guān)系的概念。
?、佟〕绦驙顟B(tài)字:每個程序均有自己的程序狀態(tài)字?,F(xiàn)行程序的程序狀態(tài)字放在處理機的程序狀態(tài)字寄存器中。程序狀態(tài)字中最主要的內(nèi)容有指令地址、條件碼、地址保護鍵,中斷屏蔽和中斷響應時的中斷源記錄等。中斷響應和處理操作的第④步和第⑤步就是交換程序狀態(tài)字操作。
?、凇∠蛄恐袛?對應每一級中斷都有一個向量,這些向量順序存放在主存的指定單元中。向量的內(nèi)容是:相應的中斷服務程序起始地址和處理機狀態(tài)字(主要是指令地址)。在中斷響應時,由中斷部件提供中斷向量的地址,就可取出該向量。中斷響應和處理操作的第⑤步就是取中斷向量操作。在采用向量中斷的機器中一般不再使用程序狀態(tài)字。
評論