第3章中斷接口技術_第1頁
第3章中斷接口技術_第2頁
第3章中斷接口技術_第3頁
第3章中斷接口技術_第4頁
第3章中斷接口技術_第5頁
已閱讀5頁,還剩81頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、本章重點:掌握中斷的基本概念、中斷的識別與中斷源優先級的判定了解8259A可編程控制器的結構及工作過程掌握8259A初始化編程。3.1 中斷概述3.1.13.1.1基本概念基本概念1、中斷:、中斷:在程序運行時,系統外部、內部或現行程序本身若出在程序運行時,系統外部、內部或現行程序本身若出現緊急事件,處理器必須立即強行中止現行程序的運現緊急事件,處理器必須立即強行中止現行程序的運行,改變機器的工作狀態并啟動相應的程序來處理這行,改變機器的工作狀態并啟動相應的程序來處理這些事件,然后再恢復原來的程序運行,這一過程稱為些事件,然后再恢復原來的程序運行,這一過程稱為中斷。中斷。2、中斷系統:、中斷系

2、統:為了實現中斷功能而設置的各種硬件和軟件統稱為中斷為了實現中斷功能而設置的各種硬件和軟件統稱為中斷系統。系統。3、中斷源:、中斷源:引起中斷的原因或發出中斷申請的來源,稱為中斷引起中斷的原因或發出中斷申請的來源,稱為中斷源。有以下幾種:源。有以下幾種:(1)一般的輸入)一般的輸入/輸出設備,如鍵盤,打印機輸出設備,如鍵盤,打印機(2)數據通道中斷源,如磁盤)數據通道中斷源,如磁盤(3)軟件設置的中斷源,如程序中的中斷指令)軟件設置的中斷源,如程序中的中斷指令INT n(4)故障請求中斷源,如電源掉電、運算溢出)故障請求中斷源,如電源掉電、運算溢出(5)為調試程序而設置的中斷源,如斷點或單步執

3、)為調試程序而設置的中斷源,如斷點或單步執行方式行方式.4.中斷分類中斷分類中斷分外部中斷和內部中斷兩大類;中斷分外部中斷和內部中斷兩大類;其中外部中斷分為兩類:其中外部中斷分為兩類: 可屏蔽中斷可屏蔽中斷INTR,由標志寄存器中的,由標志寄存器中的IF位控制;位控制; 不可屏蔽中斷不可屏蔽中斷NMI,不受,不受IF位控制位控制3.1.2 中斷及中斷的處理過程 微機系統引入中斷機微機系統引入中斷機制后,使制后,使CPU與外設與外設(甚甚至多個外設至多個外設)處于處于并行工并行工作狀態作狀態,便于實現信息,便于實現信息的實時處理和系統的故的實時處理和系統的故障處理。中斷方式的原障處理。中斷方式的

4、原理示意圖如圖理示意圖如圖4-1所示。所示。 雖然不同的微機中斷系統有所不同,但實現中斷雖然不同的微機中斷系統有所不同,但實現中斷時都有一個相同的時都有一個相同的中斷過程中斷過程,包括中斷請求、中包括中斷請求、中斷判優排隊、中斷響應、中斷服務、中斷返回共斷判優排隊、中斷響應、中斷服務、中斷返回共5個階段個階段。1. 1. 中斷的處理過程中斷的處理過程1) 1) 中斷請求中斷請求中斷請求是由中斷源向中斷請求是由中斷源向CPUCPU發出中斷請求信號。外發出中斷請求信號。外部設備發出中斷請求信號要具備以下兩個條件:部設備發出中斷請求信號要具備以下兩個條件: 外部設備的工作已經告一段落外部設備的工作已

5、經告一段落。例如輸入設。例如輸入設備只有在啟動后,在將要輸入的數據送到接口電備只有在啟動后,在將要輸入的數據送到接口電路的數據寄存器之后,才可以向路的數據寄存器之后,才可以向CPUCPU發出中斷請求。發出中斷請求。 系統允許該外設發出中斷請求系統允許該外設發出中斷請求。如果系統不允。如果系統不允許該外設發出中斷請求,可以將這個外設的請求許該外設發出中斷請求,可以將這個外設的請求屏蔽。如果這個外設的中斷請求被屏蔽,那么即屏蔽。如果這個外設的中斷請求被屏蔽,那么即使這個外設的準備工作已經完成,也不能發出中使這個外設的準備工作已經完成,也不能發出中斷請求。斷請求。2) 2) 中斷判優排隊中斷判優排隊

6、當多個中斷源同時申請中斷時,按此優先級順序當多個中斷源同時申請中斷時,按此優先級順序進行排隊,等候進行排隊,等候CPUCPU處理。一般是把最緊迫和速度處理。一般是把最緊迫和速度最高的設備的優先級設為較高。最高的設備的優先級設為較高。CPUCPU首先響應優先首先響應優先級別最高的中斷源。當中斷處理完畢時,再響應級別最高的中斷源。當中斷處理完畢時,再響應低級別的中斷申請。低級別的中斷申請。中斷判優排隊可以采用中斷判優排隊可以采用硬件硬件的方法,也可以采用的方法,也可以采用軟件軟件的方法。前者速度快,但需要增加硬件設備;的方法。前者速度快,但需要增加硬件設備;后者無須增加硬件設備,但速度慢,特別是中

7、斷后者無須增加硬件設備,但速度慢,特別是中斷源很多時尤為突出。源很多時尤為突出。3) 3) 中斷響應中斷響應經中斷排隊后,經中斷排隊后,CPUCPU收到一個優先級別最高的中斷收到一個優先級別最高的中斷請求信號,如果允許請求信號,如果允許CPUCPU響應中斷響應中斷(IF(IF1)1),就在,就在執行完一條指令后,中止執行現行程序,響應中執行完一條指令后,中止執行現行程序,響應中斷申請。斷申請。 首先由硬件電路保護斷點首先由硬件電路保護斷點( (即將當前正在執行的程即將當前正在執行的程序的段地址序的段地址(CS)(CS)和偏移地址和偏移地址(IP)(IP)以及標志寄存器以及標志寄存器(FR)(F

8、R)壓入堆棧壓入堆棧) ),然后關閉,然后關閉CPUCPU內的允許中斷觸發內的允許中斷觸發器器IF(IF(可屏蔽中斷時可屏蔽中斷時) ),接下來就是尋找中斷服務,接下來就是尋找中斷服務程序的入口地址。程序的入口地址。尋找中斷服務程序入口地址的方法有軟件方法和尋找中斷服務程序入口地址的方法有軟件方法和硬件方法兩種。硬件方法兩種。軟件方法也就是查詢方式。軟件方法也就是查詢方式。硬件方式目前均采用矢量中斷方式。所謂矢量中硬件方式目前均采用矢量中斷方式。所謂矢量中斷,即當斷,即當CPUCPU響應中斷后,由提出中斷請求的中斷響應中斷后,由提出中斷請求的中斷源向源向CPUCPU發出一個中斷矢量,發出一個中

9、斷矢量,CPUCPU根據這個中斷矢根據這個中斷矢量找到中斷程序的入口地址,轉到相應的中斷服量找到中斷程序的入口地址,轉到相應的中斷服務程序。使用務程序。使用Intel CPUIntel CPU的的PCPC系列微機系統采用的系列微機系統采用的就是矢量中斷方式。就是矢量中斷方式。概括來說,概括來說,CPUCPU響應中斷的整個過程中要自動完成響應中斷的整個過程中要自動完成三項任務:三項任務: 關閉中斷關閉中斷( (禁止禁止CPUCPU響應其他中斷申請響應其他中斷申請) )。 保護斷點現場信息保護斷點現場信息( (將斷點和標志寄存器的內將斷點和標志寄存器的內容入棧容入棧) )。 獲得中斷服務入口地址,

10、轉到中斷服務程序。獲得中斷服務入口地址,轉到中斷服務程序。一旦一旦CPU響應中斷,就可轉入中斷服務程序,中斷響應中斷,就可轉入中斷服務程序,中斷處理要做好如圖處理要做好如圖4-2所示的所示的6件事。件事。 保護現場保護現場把斷點處的指令指針把斷點處的指令指針IP值和值和CS值壓入堆棧,以使中斷值壓入堆棧,以使中斷處理完后能正確地返回主程序斷點。處理完后能正確地返回主程序斷點。實質上是實質上是執行執行PUSH指令指令,將需要保護的寄存器的內容,將需要保護的寄存器的內容推入堆棧。推入堆棧。 開中斷開中斷CPU接收并響應一個中斷后會接收并響應一個中斷后會自動關閉中斷自動關閉中斷,以防止,以防止其他的

11、中斷打斷它。但在某些情況下,有比該中斷更其他的中斷打斷它。但在某些情況下,有比該中斷更優先的情況要處理,此時,應停止對該中斷的服務而優先的情況要處理,此時,應停止對該中斷的服務而轉入優先級更高的中斷處理,故需要再開中斷。轉入優先級更高的中斷處理,故需要再開中斷。 提供中斷服務提供中斷服務中斷服務的核心就是對某些中斷的處理,比如傳中斷服務的核心就是對某些中斷的處理,比如傳送數據、處理掉電緊急保護、各種報警狀態的控送數據、處理掉電緊急保護、各種報警狀態的控制處理等。制處理等。 關中斷關中斷由于開中斷,因此這里對應一個關中斷過程,以由于開中斷,因此這里對應一個關中斷過程,以便恢復現場的工作能順利進行

12、而不被中斷。便恢復現場的工作能順利進行而不被中斷。 恢復現場恢復現場在返回主程序前,要將用戶保護的寄存器內容從堆棧在返回主程序前,要將用戶保護的寄存器內容從堆棧中彈出,以便返回主程序后繼續正確執行主程序,恢中彈出,以便返回主程序后繼續正確執行主程序,恢復現場用復現場用POP指令。恢復現場是與保護現場對應的。指令。恢復現場是與保護現場對應的。 返回返回(使用中斷返回指令使用中斷返回指令IRET)。不能使用一般的子程序返回指令不能使用一般的子程序返回指令RET,因為因為IRET指令指令除了能恢復斷點地址外,還能恢復中斷響應時標志寄除了能恢復斷點地址外,還能恢復中斷響應時標志寄存器的值,存器的值,而

13、這后一個動作是而這后一個動作是RET指令不能完成的。指令不能完成的。2. 中斷優先級的管理中斷優先級的管理1) 中斷源的識別中斷源的識別確定中斷源,找到該中斷服務程序的首地址。確定中斷源,找到該中斷服務程序的首地址。識別中斷源通常有兩種方法:識別中斷源通常有兩種方法: 查詢中斷查詢中斷查詢中斷利用一段查詢程序,不查詢中斷利用一段查詢程序,不但可以確定請求服務的設備,同時還可以轉至相但可以確定請求服務的設備,同時還可以轉至相應的服務程序。服務程序是預先編好存放在內存應的服務程序。服務程序是預先編好存放在內存區的,可以存放在內存的任意區域中。區的,可以存放在內存的任意區域中。 矢量中斷矢量中斷矢量

14、中斷就是矢量中斷就是CPU通過外設提通過外設提供的中斷申請信號和中斷矢量標志,獲得中斷服供的中斷申請信號和中斷矢量標志,獲得中斷服務程序的入口地址。務程序的入口地址。當當CPU響應某個外設的中斷請求時,中斷源提供響應某個外設的中斷請求時,中斷源提供一個地址信息,由該地址信息對程序的執行進行一個地址信息,由該地址信息對程序的執行進行導向,將程序引導至中斷服務程序。該地址信息導向,將程序引導至中斷服務程序。該地址信息稱為稱為中斷矢量中斷矢量。2) 2) 中斷優先級待解決的問題中斷優先級待解決的問題第一,多個中斷源同時請求中斷,系統先響應優第一,多個中斷源同時請求中斷,系統先響應優先級高的中斷源。先

15、級高的中斷源。第二,當系統正在為某個中斷源服務時,有新的第二,當系統正在為某個中斷源服務時,有新的中斷源提出中斷請求,只有優先級高的中斷源的中斷源提出中斷請求,只有優先級高的中斷源的中斷請求才能打斷優先級低的中斷源的服務。中斷請求才能打斷優先級低的中斷源的服務。3) CPU3) CPU實現中斷優先級排隊的方法實現中斷優先級排隊的方法分為軟件查詢法和硬件中斷法。分為軟件查詢法和硬件中斷法。(1) 軟件查尋法確定中斷優先級軟件查尋法確定中斷優先級采用軟件查詢法解決中斷優先級只需要少量硬件采用軟件查詢法解決中斷優先級只需要少量硬件電路。如下圖所示電路。如下圖所示:磁磁盤盤磁磁帶帶CRT顯顯示示鍵鍵盤

16、盤輸輸入入打打印印輸輸出出電電源源故故障障紙紙帶帶輸輸入入保保留留INTR當當CPU響應中斷請求進入中斷處理程序后,響應中斷請求進入中斷處理程序后,必須在中斷處理程序的開始部分安排一段帶優必須在中斷處理程序的開始部分安排一段帶優先級的查詢程序,先級的查詢程序,查詢的先后順序就體現了不查詢的先后順序就體現了不同設備的中斷優先級,同設備的中斷優先級,即先查的設備具有較高即先查的設備具有較高的優先級,后查的設備具有較低的優先級。的優先級,后查的設備具有較低的優先級。 一般來說總是先查速度較快或是實時性較高一般來說總是先查速度較快或是實時性較高的設備。的設備。 軟件查詢的流程如圖所示。軟件查詢的流程如

17、圖所示。保護現場保護現場恢復現場恢復現場A申請服務?申請服務?B申請服務?申請服務?C申請服務?申請服務?外設外設A中斷服務程序中斷服務程序NNN外設外設B中斷服務程序中斷服務程序外設外設C中斷服務程序中斷服務程序YYY圖圖2 軟件查詢流程圖軟件查詢流程圖(2) 菊花鏈優先級排隊電路菊花鏈優先級排隊電路菊花鏈菊花鏈(Daisy Chain)優先級排隊電路是一種優先級排隊電路是一種優先級管理的簡單硬件方案。優先級管理的簡單硬件方案。這種方法利用這種方法利用外設在系統中的物理位置來決定中斷優先級,外設在系統中的物理位置來決定中斷優先級,主要是利用硬件排隊電路主要是利用硬件排隊電路(菊花鏈電路菊花鏈

18、電路)對中斷對中斷源進行優先級排隊,并將程序引導到相關中源進行優先級排隊,并將程序引導到相關中斷服務程序的入口。斷服務程序的入口。典型的菊花鏈優先級結構如圖所示。典型的菊花鏈優先級結構如圖所示。圖3 菊花鏈中斷優先級排隊電路位置決位置決定中斷定中斷優先級優先級2. 中斷嵌套中斷嵌套當當CPU正在執行優先級較低的中斷服務程序時,正在執行優先級較低的中斷服務程序時,允許響應比它優先級高的中斷請求,而將正在處允許響應比它優先級高的中斷請求,而將正在處理的中斷暫時掛起,這就是理的中斷暫時掛起,這就是中斷嵌套中斷嵌套。如圖如圖4所示所示圖圖4 中斷嵌套示意圖中斷嵌套示意圖STIIRETSTIIRET.3

19、.2 8086中斷系統3.2.1 中斷的分類中斷的分類中斷分類的方式很多。中斷分類的方式很多。根據根據進入中斷進入中斷的方式可分為的方式可分為自愿中斷和強迫中自愿中斷和強迫中斷斷。根據其重要性可分為根據其重要性可分為可屏蔽中斷和不可屏蔽中斷。可屏蔽中斷和不可屏蔽中斷。根據中斷源的位置可分為根據中斷源的位置可分為內部中斷和外部中斷內部中斷和外部中斷等等等等。3.2.28086中斷類型中斷類型8086 CPU有一個簡單而靈活的中斷處理系統,能有一個簡單而靈活的中斷處理系統,能夠處理夠處理256種不同種不同的中斷類型,而且處理方法簡便的中斷類型,而且處理方法簡便靈活。根據中斷源類型的不同,中斷類型如

20、圖所示。靈活。根據中斷源類型的不同,中斷類型如圖所示。1. 外部中斷外部中斷由外部硬件產生的。可分為由外部硬件產生的。可分為非屏蔽中斷和可屏蔽中非屏蔽中斷和可屏蔽中斷兩種斷兩種,由,由CPU外部中斷請求引腳外部中斷請求引腳(兩條引線兩條引線)NMI和和INTR輸入,如圖輸入,如圖4-7所示。所示。 不可屏蔽中斷不可屏蔽中斷(中斷類型號中斷類型號2)主要用于對外部緊急事件的處理,如電源掉電、主要用于對外部緊急事件的處理,如電源掉電、存儲器故障等,因而不受中斷允許標志存儲器故障等,因而不受中斷允許標志(IF)的控制的控制,也不能用軟件進行屏蔽。即使在關中斷,也不能用軟件進行屏蔽。即使在關中斷(IF

21、=0)的的情況下,只要有中斷請求,情況下,只要有中斷請求, CPU就必須在當前指就必須在當前指令執行完后立即響應。令執行完后立即響應。 可屏蔽中斷可屏蔽中斷(中斷類型中斷類型08H0FH)可屏蔽中斷可屏蔽中斷是可受軟件屏蔽的外部硬件中斷,有中斷請求時,是可受軟件屏蔽的外部硬件中斷,有中斷請求時,CPU是否響應由用戶軟件決定。當一個高電平信號是否響應由用戶軟件決定。當一個高電平信號加到加到CPU的的INTR引腳,并且中斷允許標志引腳,并且中斷允許標志IF=1時時,產生一次可屏蔽中斷。當,產生一次可屏蔽中斷。當IF=0時,時,INTR的中斷的中斷請求被屏蔽。請求被屏蔽。 2.內部(軟件)中斷內部(

22、軟件)中斷內部中斷是指通過內部中斷是指通過指令來調用中斷服務子程序指令來調用中斷服務子程序。軟件中斷主要包括以下情況:軟件中斷主要包括以下情況: 除法出錯中斷(除法出錯中斷(中斷類型號為中斷類型號為0)除法出錯中斷是指當除法出錯中斷是指當CPU做除法運算時,如果除做除法運算時,如果除數為零或者商超出了有關寄存器所能表示值的范數為零或者商超出了有關寄存器所能表示值的范圍,就產生除法出錯中斷。圍,就產生除法出錯中斷。 單步中斷單步中斷(單步中斷的類型號是單步中斷的類型號是1)單步中斷是指當標志寄存器單步中斷是指當標志寄存器FLAGE中的跟蹤標志中的跟蹤標志TF=1并且中斷允許標志并且中斷允許標志I

23、F=1時,每執行一條指令就時,每執行一條指令就引起一次中斷。引起一次中斷。CPU響應中斷后,自動把狀態標志響應中斷后,自動把狀態標志位壓入堆棧,然后清位壓入堆棧,然后清TF和和IF。中斷返回時出棧,。中斷返回時出棧,TF=1,因而在單步調試程序時可連續執行。,因而在單步調試程序時可連續執行。 溢出中斷溢出中斷(INTO)(中斷類型號為(中斷類型號為4的中斷)的中斷)溢出中斷是通過溢出中斷是通過INTO中斷指令實現的。該指令跟中斷指令實現的。該指令跟在有符號數的算術運算指令之后,在程序執行過程在有符號數的算術運算指令之后,在程序執行過程中,當遇到中,當遇到INTO指令并且此時溢出標志指令并且此時

24、溢出標志OF=1時,時,將產生一個溢出中斷,并轉入溢出中斷處理。將產生一個溢出中斷,并轉入溢出中斷處理。 軟中斷軟中斷INT nn為中斷類型號為中斷類型號0255。PC機中機中0H7H被定義為處理器內部中斷的類型號,被定義為處理器內部中斷的類型號,08H0FH被定義為可屏蔽中斷,所以被定義為可屏蔽中斷,所以n的取值可為的取值可為10H0FFH。(5) 斷點中斷斷點中斷 (類型號類型號3)與單步中斷類似,斷點中斷也是一種調試程與單步中斷類似,斷點中斷也是一種調試程序的手段,并且常常和單步中斷結合使用。序的手段,并且常常和單步中斷結合使用。對一個大的程序,不可能對整個程序全部用對一個大的程序,不可

25、能對整個程序全部用單步方式來調試,而只能先將程序中的某一錯單步方式來調試,而只能先將程序中的某一錯誤確定在程序中的一小段中,再對這一小段程誤確定在程序中的一小段中,再對這一小段程序用單步方式跟蹤調試。序用單步方式跟蹤調試。斷點中斷就是用來達到這個目的的。斷點中斷就是用來達到這個目的的。3.2.2 中斷向量表中斷向量表所謂所謂中斷向量中斷向量(interrupt vector),實際上就是),實際上就是中中斷服務程序的入口地址斷服務程序的入口地址,每個中斷類型對應一個中,每個中斷類型對應一個中斷向量。斷向量。每個中斷向量占每個中斷向量占4字節字節的存儲單元。的存儲單元。其中其中:前兩個字節單元存

26、放中斷服務程序入口地址的偏移前兩個字節單元存放中斷服務程序入口地址的偏移量量(IP),低字節在前,高字節在后;低字節在前,高字節在后;后兩個字節單元存放中斷服務程序入口地址的段基后兩個字節單元存放中斷服務程序入口地址的段基值值(CS),也是,也是低字節在前,高字節在后低字節在前,高字節在后。003FF8086為每個中斷源分配了一個中斷類型碼,取值范圍為為每個中斷源分配了一個中斷類型碼,取值范圍為0255,即可處理,即可處理256種中斷。其中包括軟件中斷、系統占用的種中斷。其中包括軟件中斷、系統占用的中斷以及開放給用戶使用的中斷。中斷以及開放給用戶使用的中斷。第第1部分是類型部分是類型0到類型到

27、類型4,共,共5種類型,定義為專用中斷,它種類型,定義為專用中斷,它們占據表中的們占據表中的000013H,共,共20個字節。這個字節。這5種中斷類型的種中斷類型的入口已由系統定義,不允許用戶做任何修改。它們分別是:入口已由系統定義,不允許用戶做任何修改。它們分別是:INT 0除法出錯中斷除法出錯中斷INT 1單步中斷單步中斷INT 2外部引入不可屏蔽中斷外部引入不可屏蔽中斷INT 3斷點中斷斷點中斷INT 4/INT 0溢出中斷溢出中斷PC 機系統中產生的中斷類型號為機系統中產生的中斷類型號為n,則該中斷服務程序的入則該中斷服務程序的入口地址為口地址為4 n。例:例: 中斷類型碼為中斷類型碼

28、為20H,則中斷服務程序的,則中斷服務程序的入口地址存放在中斷向量表從入口地址存放在中斷向量表從0000:0080H開開始的始的4個字節單元中。若這個字節單元中。若這4個字節單元的內容個字節單元的內容分別為:分別為:(0000:0080H)= 10H(0000:0081H)= 20H(0000:0082H)= 30H(0000:0083H)= 40H試指出相應的中斷服務程序的入口地址。試指出相應的中斷服務程序的入口地址。解解: 中斷服務程序的入口地址為中斷服務程序的入口地址為 4030:2010 。8086/8088中斷的響應過程中斷中斷優先級優先級除法錯,除法錯,INT n,INTO最高最高

29、NMIINTR單步單步最低最低80 x86實模式中斷優先級實模式中斷優先級結束當前指令結束當前指令除法錯,除法錯,INTO,INT n?NMIINTR?TF=1?執行下一條指令執行下一條指令NNNNIF=1?NYYYYY內部自動形成中斷類型碼內部自動形成中斷類型碼N讀中斷類型碼讀中斷類型碼N標志壓入堆棧標志壓入堆棧令令TEMPTF清除清除IF和和TFCS和和IP壓入堆棧壓入堆棧(4N,4N+1)IP(4N+2,4N+3)CS執行中斷處理程序執行中斷處理程序IP、CS出棧出棧標志寄存器出棧返回被中斷的主程序有有NMI?TEMP=1?YYNN執行執行IRET指令指令3.3 8259A中斷控制器中斷

30、控制器就是在有多個中斷源的系統中,當中斷中斷控制器就是在有多個中斷源的系統中,當中斷源發出中斷請求時接收它們,并對這些中斷請求進行源發出中斷請求時接收它們,并對這些中斷請求進行判斷,選中當前優先級最高的中斷請求,再將此請求判斷,選中當前優先級最高的中斷請求,再將此請求送到送到CPUCPU的的INTRINTR端,在端,在CPUCPU響應中斷并進入中斷子程序響應中斷并進入中斷子程序之后,中斷控制器依舊負責對外部中斷請求的管理。之后,中斷控制器依舊負責對外部中斷請求的管理。8259A8259A是是IntelIntel公司設計的可編程的中斷控制邏輯芯片,公司設計的可編程的中斷控制邏輯芯片,具有對外設中

31、斷源進行管理并向具有對外設中斷源進行管理并向CPUCPU轉達中斷請求的轉達中斷請求的能力。能力。3.3.1 8259A的內部結構和引腳信號1.8259A1.8259A的內部結構的內部結構數據總線數據總線緩沖器緩沖器讀讀/寫寫邏輯邏輯級級 連連緩沖器緩沖器/比較器比較器中斷服務中斷服務寄存器寄存器(ISR)中斷請求中斷請求寄存器寄存器(IRR)優先權優先權判別器判別器(PR)中斷屏蔽寄存器中斷屏蔽寄存器(IMR)控制邏輯控制邏輯 SP/EN。IR0IR1IR2IR6IR7內部總線內部總線CAS0CAS1CAS2_ INTA INT WR RDCSA0D7D01) 中斷請求寄存器(IRR)中斷請求

32、寄存器(IRR)是一個具有鎖存功能的8位寄存器,該寄存器用來存放由外部輸入的中斷請求信號 IR7IR0,可邊沿觸發,也可電平觸發。2) 中斷服務寄存器(ISR)中斷服務寄存器(ISR)是一個8位寄存器,與8 級中斷IR7IR0相對應,用來記錄正在處理的中斷請求,包括正在被服務的以及被更高級中斷申請打斷的中斷請求。3) 優先權分析器(PR)優先權分析器(PR)也叫優先級判別器,用來管理和識別各中斷申請信號的優先級別。它主要由優先級編碼器和比較器組成,可對輸入的中斷按優先級進行排隊,當輸入端IR7IR0中有多個中斷請求信號同時產生時,由PR判定哪個中斷請求具有最高優先級,并在INTA脈沖期間把它置

33、入中斷服務寄存器(ISR)的相應位。4) 中斷屏蔽寄存器(IMR)中斷屏蔽寄存器(IMR)是一個8位寄存器,與8259A處理的8級中斷IR7IR0相對應,該寄存器可對各個中斷源進行屏蔽或開放。當某位置為1時,表示相應中斷源被屏蔽,為0則表示允許中斷。屏蔽操作由寫命令字OCW1到IMR執行,IMR也可以讀回備查并保護某些屏蔽位。5) 級聯緩沖器/比較器級聯緩沖器/比較器用于存儲并比較系統中所用的全部8259A的輸入信號,以實現多達8片的8259A級聯。6) 控制電路8259A內部的控制電路,根據中斷請求寄存器IRR的位置情況和優先級判別器PR 的判定結果,向8259A內部的其他部件發出控制信號,

34、并向CPU發出中斷請求信號INT和接收來自CPU的中斷響應信號INTA,控制8259A進入中斷服務狀態。 2. 8259A2. 8259A引腳分配引腳分配8259A是一個采用NMOS工藝制造、使用單一5V電源、具有28個引腳的雙列直插式芯片,具體引腳如圖4-14所示。D7D0:雙向數據輸入雙向數據輸入/ /輸出引腳輸出引腳,用于與CPU進行信息交換。(2) IR7IR0:8級中斷請求信號輸入引腳,規定的優先級為優先級為IRIR0 0IRIR1 1IRIR7 7。當有多片8259A形成級聯時,從片的INT與主片的IRi相連。(3) INT:中斷請求信號輸出引腳,高電平有效。當8259A收到從外設

35、經IR引腳送來的中斷請求時,由它輸出高電平,向CPU發出中斷請求,應接在CPU的INTR輸入端。123456789101112131428272625242322212019181716158259ACS WR RDD7D6D4D5D2D3D0D1CAS0CAS1GNDINTAIR7IR6IR4IR5IR2IR3IR0IR1INTCAS2 SP/ENVCCA0INTAINTAINTARDWRCS(4) :中斷響應應答信號輸入引腳,低電平有效。在CPU發出第二個 時,8259A將其中級別最高的中斷請求的中斷類型碼送出;接在CPU的 中斷應答信號輸出端。(5) :讀控制信號輸入引腳,低電平有效,用

36、來實現對8259A內部有關寄存器內容的讀操作。(6) :寫控制信號輸入引腳,低電平有效,用來實現對8259A內部有關寄存器的寫操作。(7) :片選信號輸入引腳,低電平有效。一般由系統地址總線的高位、經譯碼后形成,決定了8259A的端口地址范圍。(8) A0:地址選擇信號,用于對8259A內部的兩個可編程寄存器進行選擇。 (9) CAS2CAS0:級聯信號引腳,當8259A為主片時,為輸出;否則為輸入,與 信號配合,實現芯片的級聯,這三個引腳信號的不同組合000111,剛好對應于8個從片。(10) : 為級聯管理信號輸入引腳,在非緩沖方式下,若8259A在系統中作從片使用,則 =1;否則 =0。

37、在緩沖方式下, 用作8259A外部數據總線緩沖器的啟動信號。(11) +5V、GND:電源和接地引腳。EN/SPEN/SPSPSPSPEN3. 8259A3. 8259A的工作過程的工作過程第第1 1步步:當中斷請求線:當中斷請求線(IR(IR0 0IRIR7 7) )上有信號輸入時,上有信號輸入時,就把中斷請求寄存器就把中斷請求寄存器(IRR)(IRR)相應的位置相應的位置1 1。第第2 2步步:當:當IRRIRR的一位置的一位置1 1后,就與后,就與IMRIMR中相應的屏蔽中相應的屏蔽位進行比較,如果該屏蔽位為位進行比較,如果該屏蔽位為0 0,就請求發送給優先,就請求發送給優先權分析器;如

38、果該屏蔽位為權分析器;如果該屏蔽位為1 1,就封鎖此請求。,就封鎖此請求。第第3 3步步:當一個中斷請求被輸入優先權分析器后,將:當一個中斷請求被輸入優先權分析器后,將由優先權分析器判定其優先級,然后向由優先權分析器判定其優先級,然后向CPUCPU發出中斷發出中斷申請,申請,INTINT引腳變高引腳變高(INT(INT連接到連接到80868086的的INTR)INTR)。INTAINTAINTA第第4 4步步:CPUCPU的的INTRINTR引腳為引腳為異步狀態接收異步狀態接收,也就是可以在,也就是可以在任何任何時間時間接收中斷。在接收中斷。在 軟件控制下,利用軟件控制下,利用STISTI指令

39、指令( (中斷置位中斷置位) )或或CLI(CLI(中斷復位中斷復位) )指令可分別將指令可分別將CPUCPU的的“中斷開放標志位中斷開放標志位”IFIF置置位或復位,可以做到接收或不理睬位或復位,可以做到接收或不理睬INTRINTR上的中斷申請。上的中斷申請。第第5 5步步:假定:假定CPUCPU中的中的IFIF標志為標志為1 1,那么,那么CPUCPU在完成當前指令的在完成當前指令的執行后進入中斷響應周期,這個中斷響應周期將標志寄存器執行后進入中斷響應周期,這個中斷響應周期將標志寄存器入棧,然后清除入棧,然后清除IFIF標志,關閉中斷。再將代碼段寄存器和指標志,關閉中斷。再將代碼段寄存器和

40、指令指針也入棧令指針也入棧( (這是為了從中斷服務程序返回這是為了從中斷服務程序返回) ),然后,然后CPUCPU發發出第二個出第二個 脈沖以通知脈沖以通知8259A8259A,說明,說明80868086已經允許了它的已經允許了它的中斷請求。如果中斷請求。如果80868086工作于工作于“最小方式最小方式”,那么,那么 脈沖信脈沖信號為號為8086 8086 引腳上的信號。引腳上的信號。第第6 6步步:8259A8259A收到第一個收到第一個 負脈沖后,將禁止負脈沖后,將禁止IRRIRR鎖存器,使鎖存器,使IRRIRR不受不受IRIR7 7IRIR0 0進一步變化的影響,這進一步變化的影響,這

41、種狀態一直保持到第二個種狀態一直保持到第二個 脈沖結束。第一個脈沖結束。第一個 脈沖還使脈沖還使ISRISR的某一位置位,并清除相應的的某一位置位,并清除相應的IRRIRR位。位。第二個第二個 脈沖使脈沖使ICWICW2 2的當前內容被放到的當前內容被放到D D7 7D D0 0上,上,CPUCPU用該字節確定中斷類型號。此后,用該字節確定中斷類型號。此后,CPUCPU將按照這將按照這個指定中斷類型號中的內容去執行相應的中斷程序。個指定中斷類型號中的內容去執行相應的中斷程序。注意:如果注意:如果ICWICW4 4的中斷自動結束位的中斷自動結束位(AEOI)(AEOI)為為1 1,那么,那么第二

42、個第二個 脈沖結束時,脈沖結束時,ISRISR中被第一個中被第一個 脈沖置脈沖置位的位被清除,否則要等到發送內含中斷結束位的位被清除,否則要等到發送內含中斷結束(EOI)(EOI)命令的命令的OCWOCW2 2后方能清除后方能清除ISRISR中的這個位。中的這個位。INTAINTAINTAINTAINTAINTA第7步:當進入中斷服務程序時,主程序和子程序都要用到的那些寄存器應當保存入棧,最好的方法是立刻“PUSH”每個用到的寄存器入棧。當中斷服務程序完成后,再以相反的次序“POP”每個寄存器出棧。第8步:一旦中斷服務程序完成,就應用IRET(中斷返回)指令使CPU再次回到主程序。IRET指令

43、就會自動彈出中斷前的指令指針,使主程序恢復到被中斷之處,并且恢復中斷前與中斷服務變化無關的標志狀態(包括IF標志的狀態)。而中斷也將自動放開T1 T2 T3 T4 TI TI TI T1 T2 T3 T4第一個總線周期第一個總線周期第二個總線周期第二個總線周期三個空閑狀態三個空閑狀態中斷類型碼中斷類型碼CLK_INTAAD7AD04.2.2 8259A4.2.2 8259A的工作方式的工作方式1. 1. 中斷優先級的設置方式中斷優先級的設置方式8259A8259A對中斷優先級的管理可分為對中斷優先級的管理可分為4 4種情況:種情況:全嵌套方式、自全嵌套方式、自動循環方式、特殊自動循環方式和特殊

44、全嵌套方式。動循環方式、特殊自動循環方式和特殊全嵌套方式。(1) (1) 全嵌套方式全嵌套方式也稱固定優先級方式。在這種方式下,由也稱固定優先級方式。在這種方式下,由IRi引入的中斷引入的中斷請求具有固定的優先級請求具有固定的優先級IR0(最高最高)IR7(最低最低).當一個中斷請求被響應時,當一個中斷請求被響應時,ISR中的對應位中的對應位ISn被置被置“1”,8259A把中斷類型碼放到數據總線上,然后,進入中斷服把中斷類型碼放到數據總線上,然后,進入中斷服務程序。務程序。一般情況下一般情況下(除了除了“中斷自動結束中斷自動結束”方式方式外外),在,在CPU發發出中斷結束命令出中斷結束命令(

45、EOI)前,此對應位一直保持為前,此對應位一直保持為“1”封封鎖同級或低級鎖同級或低級的中斷響應,但并不禁止比本級優先級高的中斷響應,但并不禁止比本級優先級高的中斷響應的中斷響應實現中斷實現中斷“嵌套嵌套”。(2) 特殊全嵌套方式特殊全嵌套方式 在處理某一級中斷時,不但允許優先級更高的中斷請求進入,也允許在處理某一級中斷時,不但允許優先級更高的中斷請求進入,也允許同級的中斷請求進入。同級的中斷請求進入。用于主從結構的用于主從結構的8259系統中,將主片設置為系統中,將主片設置為“特殊全嵌套方式特殊全嵌套方式”. 通過通過ICW4的的“SFNM”位可以設置此種方式。位可以設置此種方式。CPUIR

46、0IR1IR7IR0IR1IR78259(主片主片)8259(從片從片) (3) 優先級自動循環方式優先級自動循環方式 優先級是循環變化的優先級是循環變化的(不希望有固定的優先級差別不希望有固定的優先級差別)一個設備的中斷一個設備的中斷服務完成后,其優先級自動降為最低,而將最高優先級賦給原來比它低服務完成后,其優先級自動降為最低,而將最高優先級賦給原來比它低一級的中斷請求。一級的中斷請求。開始時,優先級隊列還是:開始時,優先級隊列還是:IR0-IR7,若此時出現了,若此時出現了IR0請求,響應請求,響應IR0并處理完成后,隊列變為:并處理完成后,隊列變為:IR1,IR2,IR3,IR4 ,IR

47、5 ,IR6 ,IR7,IR0。若又出現了若又出現了IR4請求,處理完請求,處理完IR4后,隊列變為:后,隊列變為:_系統中是否采用系統中是否采用“自動循環優先級自動循環優先級”,由,由操作命令字操作命令字OCW2來設定。來設定。(4)優先級特殊循環方式優先級特殊循環方式與與“優先級自動循環方式優先級自動循環方式”相比,只有一點不同,即可以相比,只有一點不同,即可以設置開始的最低優先級。設置開始的最低優先級。例如,設定例如,設定IR4為最低優先級,那么為最低優先級,那么IR5就是最高優先級,就是最高優先級,其余各級按循環方法類推。其余各級按循環方法類推。2.8259A2.8259A結束方式結束

48、方式(1) 中斷自動結束方式中斷自動結束方式(AEOI方式方式)在第二個在第二個 后沿,即完成把對應的后沿,即完成把對應的ISR位復位復位。位。注意:注意:AEOI方式是在中斷響應后,而不是在方式是在中斷響應后,而不是在中斷處理程序結束后將中斷處理程序結束后將ISR位清位清0。這樣,在中斷處理過程中,這樣,在中斷處理過程中,8259A中就沒有中就沒有“正在處理正在處理”的標識。此時,若有中斷請求的標識。此時,若有中斷請求出現,且出現,且IF1,則無論其優先級如何,則無論其優先級如何(比本比本級高、低或相同級高、低或相同),都將得到響應。,都將得到響應。尤其是當某一中斷請求信號被尤其是當某一中斷

49、請求信號被CPU響應后,響應后,如不及時撤銷,就會再次被響應如不及時撤銷,就會再次被響應“二次中二次中斷斷”。INTA 所以,所以,AEOI方式方式適合于中斷請求信號的持續適合于中斷請求信號的持續時間有一定限制以及不出現中斷嵌套的場合。時間有一定限制以及不出現中斷嵌套的場合。通過通過ICW4可以設置可以設置AEOI方式方式(AEOI=1)。(2)一般一般(常規常規)中斷結束方式(中斷結束方式(EOI)適合于適合于全嵌套方式全嵌套方式。實現:在中斷服務程序結束時,向實現:在中斷服務程序結束時,向8259A發常規中斷發常規中斷結束命令結束命令(OCW2:EOI=1,SL=0,R=0)例:例:MOV

50、 AL , 20H ;OCW2=20H OUT 20H , AL ; 端口地址端口地址=20H(偶地址偶地址)在全嵌套方式下,在全嵌套方式下,ISR中最高優先級的置中最高優先級的置“1”位,正位,正對應于當前正在處理的中斷,將其清對應于當前正在處理的中斷,將其清“0”,就完成,就完成了當前正在處理中斷的結束操作。了當前正在處理中斷的結束操作。(3)特殊中斷結束方式特殊中斷結束方式(SPECIFIC EOISEOI)在非全嵌套方式下,無固定的優先級序列在非全嵌套方式下,無固定的優先級序列(使用使用設置優先權命令或特殊屏蔽方式設置優先權命令或特殊屏蔽方式),此時,根據,此時,根據ISR的內容的內容

51、就無法確定剛剛所響應就無法確定剛剛所響應(處理處理)的中斷。的中斷。這種情況下,就不能用上述的這種情況下,就不能用上述的EOI方式方式進行中斷進行中斷結束處理,而必須用特殊的中斷結束命令結束處理,而必須用特殊的中斷結束命令SEOI用用OCW2:EOI=1,SL=1,R=0,L2L0.由由L2L0指定清除指定清除ISR中的哪一位。中的哪一位。3. 3. 屏蔽中斷源的方式屏蔽中斷源的方式CPUCPU可用可用CLICLI指令將指令將IFIF清清“0 0”,禁止所有可屏蔽,禁止所有可屏蔽中斷的進入。但是要想屏蔽某個或某幾個中斷中斷的進入。但是要想屏蔽某個或某幾個中斷源,就得用源,就得用8259A825

52、9A的中斷優先級管理的屏蔽方的中斷優先級管理的屏蔽方式來實現。式來實現。8259A8259A對中斷源的屏蔽方式有以下對中斷源的屏蔽方式有以下兩種:兩種:普通屏蔽方式普通屏蔽方式通過對中斷屏蔽寄存器通過對中斷屏蔽寄存器(IMR)(IMR)的設定,實現對相的設定,實現對相應位為應位為“1”1”的中斷請求的屏蔽。的中斷請求的屏蔽。可通過可通過OCW1OCW1使使IMRIMR的一位或幾位置的一位或幾位置“1”1”。2) 2) 特殊屏蔽方式特殊屏蔽方式 特殊屏蔽方式允許低優先級中斷請求中斷正在服務的特殊屏蔽方式允許低優先級中斷請求中斷正在服務的高優先級中斷。這種屏蔽方式通常用于級聯方式中的主片,高優先級

53、中斷。這種屏蔽方式通常用于級聯方式中的主片,對于同一個請求對于同一個請求IRi上連接有多個中斷源的場合,可以通過上連接有多個中斷源的場合,可以通過編程寫入操作命令字編程寫入操作命令字OCW3來設置或取消。來設置或取消。 在特殊屏蔽方式中可在中斷服務子程序中用中斷屏蔽在特殊屏蔽方式中可在中斷服務子程序中用中斷屏蔽命令來屏蔽當前正在處理的中斷,同時可使命令來屏蔽當前正在處理的中斷,同時可使ISR中的對應中的對應當前中斷的相應位清當前中斷的相應位清.這樣一來不僅屏蔽了當前正在處理的這樣一來不僅屏蔽了當前正在處理的中斷,而且也真正開放了較低級別的中斷請求。中斷,而且也真正開放了較低級別的中斷請求。在這

54、種情況下,雖然在這種情況下,雖然CPU仍然繼續執行較高級別的中仍然繼續執行較高級別的中斷服務子程序,但由于斷服務子程序,但由于ISR中對應當前中斷的相應位已經中對應當前中斷的相應位已經清清0,如同沒有響應該中斷一樣。所以,此時對于較低級,如同沒有響應該中斷一樣。所以,此時對于較低級別的中斷請求,別的中斷請求,8259A仍然能產生仍然能產生INT中斷請求,中斷請求,CPU也也會響應較低級別的中斷請求。會響應較低級別的中斷請求。 4. 4. 系統總線的連接方式系統總線的連接方式8259A8259A與系統總線的連接方式有下列兩種:與系統總線的連接方式有下列兩種:1) 1) 緩沖方式緩沖方式緩沖方式是

55、指在多片緩沖方式是指在多片8259A8259A級聯的大系統中,級聯的大系統中,8259A8259A通過外部總線驅動器和數據總線相連。在緩沖方式通過外部總線驅動器和數據總線相連。在緩沖方式下,下,8259A8259A的的 輸出信號作為緩沖器的啟動信號,用輸出信號作為緩沖器的啟動信號,用來啟動總線驅動器,在來啟動總線驅動器,在8259A8259A與與CPUCPU之間進行信息交之間進行信息交換。換。2) 2) 非緩沖方式非緩沖方式當系統中只有一片或幾片8259A芯片時,可以將數據總線直接與系統數據總線相連,這時8259A處于非緩沖方式。在這種方式下,8259A的 SP/EN的SP作為輸入端設置,主片

56、應接高電平,從片應接低電平。 5. 5. 引入中斷請求的方式引入中斷請求的方式8259A引入中斷請求的方式有下列幾種:1) 1) 邊沿觸發方式邊沿觸發方式8259A將中斷請求輸入端出現的上升沿作為中斷請求信號,上升沿之后,相應引腳可以一直保持高電平2) 2) 電平觸發方式電平觸發方式 8259A將中斷請求輸入端出現的高電平作為中斷請求信號,在這種方式下,中斷響應之后,高電平必須及時撤除。否則,在CPU響應中斷、開中斷之后,會引起第二次不應該有的中斷。3) 3) 中斷查詢方式中斷查詢方式特點:a.既有中斷的特點,又有查詢(Polling)的特點。b.外設仍然向8259A發中斷請求信號,要求CPU

57、服務。 c. CPU的IF=0,不響應外部的中斷請求(對CPU的中斷請求信號不起作用)此時,CPU需要用軟件查詢方法來確認中斷源,從而實現對設備的服務,先向8259A發查詢命令OCW3:0 0 0 0 110 0P緊接著執行一條讀指令緊接著執行一條讀指令(IN(IN指令指令) ),讀出專門,讀出專門的的“中斷狀態字中斷狀態字”:當當8259A8259A收到收到P=1P=1的查詢命令后,在下一個的查詢命令后,在下一個RDRD信號將使信號將使ISRISR的相應位置的相應位置“1”1”,就像收,就像收到了到了INTAINTA一樣,并把上述的一樣,并把上述的“中斷狀態字中斷狀態字”送到數據總線上,由送

58、到數據總線上,由CPUCPU讀入讀入ALAL。0A0IR W2 W1 W0D7D01:有設備請求服務;0:無設備請求服務。當前最高優先級的中斷請求4.2.3 8259A的初始化編程8259A的控制寄存器可分為兩組,一組是的控制寄存器可分為兩組,一組是初始化命令字初始化命令字ICWICW4,另一組是,另一組是操作命令字操作命令字OCWOCW3。每片每片8259A具有兩個內部端口地址,一個具有兩個內部端口地址,一個偶地址端口偶地址端口(A0 = 0),一個奇地址端口,一個奇地址端口(A0 = 1),其他高位地址碼由用戶定義,用來,其他高位地址碼由用戶定義,用來產生產生8259A的片選信號。的片選信

59、號。1. 初始化命令字初始化命令字初始化命令字用來對初始化命令字用來對8259A初始化,包括初始化,包括ICWICW4 4個初始化命令字。個初始化命令字。(1) ICW1ICW1 使用偶地址端口使用偶地址端口(A0 = 0),其中,其中D4 位位為特征位(標志位),此時該位固定為為特征位(標志位),此時該位固定為1,表示當前寫入的是表示當前寫入的是ICW (OCW1 也用偶也用偶地址端口寫入,但地址端口寫入,但OCW1 的的D4 位為位為0)。)。ICW 的格式如下:的格式如下:(2) ICW(設定中斷類型號設定中斷類型號)ICW2 使用奇地址端口使用奇地址端口(A0 = 1),緊跟在,緊跟在

60、ICW之后設置。之后設置。ICW 的格式如下:的格式如下:低三位的值由低三位的值由中斷請求輸中斷請求輸入引腳決定入引腳決定3) ICWICW 只在級聯方式中使用,端口地址為奇地址,只在級聯方式中使用,端口地址為奇地址,其格式如下:其格式如下:從片的中斷請求線在主片的哪個IRi引進(4) ICW4在在80 x86系統中必須設置系統中必須設置ICW4,端口地址為奇地址,端口地址為奇地址,其格式如下:其格式如下:2.8259A的初始化流程的初始化流程8259A的初始化命令字(的初始化命令字(ICW)是在加電之后由)是在加電之后由CPU按特定的順序寫入的。也就是說,各初始化命令字的按特定的順序寫入的。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論