第7章中斷系統_第1頁
第7章中斷系統_第2頁
第7章中斷系統_第3頁
第7章中斷系統_第4頁
免費預覽已結束,剩余103頁可下載查看

下載本文檔

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

文檔簡介

1、u7.1 概述概述u7.2 可編程中斷控制器可編程中斷控制器8259Au7.3 PCI中斷中斷u7.4 串行中斷串行中斷7.1u7.1.1 中斷的基本概念中斷的基本概念u7.1.2 現代微機中的中斷類型現代微機中的中斷類型u7.1.3 現代微機中的中斷處理現代微機中的中斷處理u7.1.4 中斷向量的修改與設置中斷向量的修改與設置7.1.1CPU運行程序期間,遇到某些特殊情況運行程序期間,遇到某些特殊情況(內部或外部事件),暫時中止原先程序的執(內部或外部事件),暫時中止原先程序的執行,而轉去執行一段特定的處理程序,服行,而轉去執行一段特定的處理程序,服務完務完畢,再返回去繼續執行被暫時中斷的程

2、序。畢,再返回去繼續執行被暫時中斷的程序。這這一過程就叫中斷。一過程就叫中斷。術語術語1、中斷、中斷引起中斷的事件稱為中斷源。引起中斷的事件稱為中斷源。中斷源有外部中斷和內部中斷,內部中斷由程序中斷源有外部中斷和內部中斷,內部中斷由程序預先安排的中斷指令(預先安排的中斷指令(INT n)引起,或由于)引起,或由于 CPU運運算中產生某種錯誤(如除法出錯、運算溢出)引起。算中產生某種錯誤(如除法出錯、運算溢出)引起。外部中斷是外部設備或協處理器向外部中斷是外部設備或協處理器向CPU發出中斷發出中斷申請引起的。申請引起的。 2、中斷源、中斷源中斷向量表:中斷向量表:把系統中所有的中斷向量集中起來放

3、到存儲器把系統中所有的中斷向量集中起來放到存儲器的某一個區域內,這個存放中斷向量的存儲區就叫的某一個區域內,這個存放中斷向量的存儲區就叫中斷向量表或中斷服務程序入口地址表。放在內存中斷向量表或中斷服務程序入口地址表。放在內存最低最低1K字節(字節(00000H0003FFH)中斷向量表中斷向量表3、 中斷向量與中斷向量表中斷向量與中斷向量表中斷向量:是中斷服務程序的入口地址。中斷向量:是中斷服務程序的入口地址。它包括中斷服務程序的段地址它包括中斷服務程序的段地址CS和偏移地址和偏移地址IP(共占(共占4個字節地址)。個字節地址)。CSIP用戶可用用戶可用 中斷向量中斷向量(224224個)個)

4、系統保留系統保留 中斷向量中斷向量(2727個)個)專用專用 中斷向量中斷向量 (5 5個)個) 00080H00080H003FCH003FCH003FFH003FFH0007CH0007CH 00014H00014H 00000H00000H00004H00004H00008H00008H0000CH0000CH00010H00010H255255號向量號向量 3232號向量號向量 3131號向量號向量 5 5號向量號向量 4 4號向量(溢出中斷)號向量(溢出中斷)3 3號向量號向量( (斷點中斷)斷點中斷) 2 2號向量(非屏蔽)號向量(非屏蔽) 1 1號向量(單步)號向量(單步)0 0

5、號向量(除法錯)號向量(除法錯) 2.N和指針和指針1 1、外部硬件可屏蔽中斷、外部硬件可屏蔽中斷 由外部設備產生的中斷請求都屬于外部硬由外部設備產生的中斷請求都屬于外部硬件中斷。如鍵盤、鼠標、掃描儀及打印機等產生件中斷。如鍵盤、鼠標、掃描儀及打印機等產生的中斷就屬此類。的中斷就屬此類。由由INTR引腳引入這些中斷請求,需要使用引腳引入這些中斷請求,需要使用可編程中斷控制器如可編程中斷控制器如8259A等對多個外部設備同時等對多個外部設備同時或先后產生的中斷請求按優先級排隊,選取一個或先后產生的中斷請求按優先級排隊,選取一個當前具有最高優先級的中斷請求送往當前具有最高優先級的中斷請求送往INT

6、R引腳。引腳。 NMINMI往往用于處理必須立即響應的外部事往往用于處理必須立即響應的外部事件或重要的外部事件,比如電源故障和存儲器件或重要的外部事件,比如電源故障和存儲器讀數據出現奇偶錯等。讀數據出現奇偶錯等。這種中斷不受這種中斷不受 IF標志位影響,它是不可標志位影響,它是不可屏蔽的屏蔽的 2 2、外部硬件不可屏蔽中斷、外部硬件不可屏蔽中斷 3 3、軟件中斷、軟件中斷 軟件中斷指令如軟件中斷指令如INT 3,INT n,INTO和和BOUND等引起的中斷等引起的中斷。這些軟件中斷指令在執行時,不需要中斷這些軟件中斷指令在執行時,不需要中斷識別總線周期,它們的中斷類型號是固定的,可識別總線周

7、期,它們的中斷類型號是固定的,可以立即啟動相應的中斷處理程序。以立即啟動相應的中斷處理程序。 u2.中斷識別中斷識別CPU響應中斷后,響應中斷后,CPU要設法尋找中斷源,即找到是要設法尋找中斷源,即找到是哪一個中斷源發出的中斷請求,這就是所謂的中斷識別。哪一個中斷源發出的中斷請求,這就是所謂的中斷識別。中斷識別的主要目的是要形成該中斷服務程序的入口地中斷識別的主要目的是要形成該中斷服務程序的入口地址,以便址,以便CPU將此地址置入將此地址置入CS:IP寄存器,從而實現程寄存器,從而實現程序的轉移。序的轉移。識別方法識別方法CPU識別中斷或獲取中斷服務程序入口地址的方法有兩識別中斷或獲取中斷服務

8、程序入口地址的方法有兩種:種:向量中斷:向量中斷: 是由中斷向量來指示中斷服務程序的入口地址。例是由中斷向量來指示中斷服務程序的入口地址。例如,對可屏蔽中斷是在如,對可屏蔽中斷是在CPU響應中斷后,發出中斷響應中斷后,發出中斷應答應答INTA時,由中斷控制器通過數據總線返回到時,由中斷控制器通過數據總線返回到CPU的中斷類型號來確定中斷源的。的中斷類型號來確定中斷源的。查詢中斷:查詢中斷: 是采用軟件或硬件(串行順序鏈電路)查詢技術來是采用軟件或硬件(串行順序鏈電路)查詢技術來確定發出中斷請求的中斷源。確定發出中斷請求的中斷源。7.1.3現代微機中的中斷處理現代微機中的中斷處理雖然不同的微型計

9、算機的中斷系統有所不同,但實雖然不同的微型計算機的中斷系統有所不同,但實現中斷時都有一個相同的中斷處理過程。它包括:現中斷時都有一個相同的中斷處理過程。它包括:中斷請求中斷請求中斷判優中斷判優中斷響應中斷響應中斷服務中斷服務中斷返回中斷返回依次介紹此過程依次介紹此過程1、中斷處理過程、中斷處理過程(1) 中斷請求中斷請求當外部設備要求當外部設備要求CPU為它服務時,都要發送一為它服務時,都要發送一個個“中斷請求中斷請求”信號給信號給CPU進行中斷請求;進行中斷請求;CPU在執行完每條指令后去檢查在執行完每條指令后去檢查“中斷請求中斷請求”輸入線,看是否有外部發來的輸入線,看是否有外部發來的“中

10、斷請求中斷請求”。中斷判優中斷判優A)可屏蔽中斷請求由接口電路向可屏蔽中斷請求由接口電路向8259A發中斷請發中斷請求,經求,經8259A處理之后通過處理之后通過INTR引腳向引腳向CPU發請求發請求信號,并且還要提供中斷類型號。信號,并且還要提供中斷類型號。 對外部的中斷申請有權決定是否予以響應:對外部的中斷申請有權決定是否予以響應:若允許申請,中斷程序開始處用若允許申請,中斷程序開始處用STI指令打指令打開中斷;開中斷;若不允許,則用若不允許,則用CLI指令關閉中斷。指令關閉中斷。B)非屏蔽中斷通過非屏蔽中斷通過NMI引腳提出請求;引腳提出請求;C)內部中斷根據指令的執行情況而定。內部中斷

11、根據指令的執行情況而定。中斷判優中斷判優(2)中斷判優)中斷判優要求設計者根據中斷源的緊急情況,給每個中斷源一個要求設計者根據中斷源的緊急情況,給每個中斷源一個中斷級別,即中斷優先權,根據中斷優先權進行判優。中斷級別,即中斷優先權,根據中斷優先權進行判優。作用(作用(2個)個):A)解決同時出現兩個或兩個以上的中斷源產生請求)解決同時出現兩個或兩個以上的中斷源產生請求的情況。的情況。B)實現中斷嵌套。)實現中斷嵌套。排優方法排優方法軟件排優軟件排優硬件排優(如:可編程中斷控制器)硬件排優(如:可編程中斷控制器)中斷響應中斷響應(3)中斷響應)中斷響應CPU響應中斷時,最重要的是要獲得對應的中斷

12、類型號,響應中斷時,最重要的是要獲得對應的中斷類型號,之后,完成如下操作:之后,完成如下操作: A)將標志寄存器)將標志寄存器PSW的內容壓入堆棧的內容壓入堆棧 B)將)將TF和和IF清清0 C)保護斷點,即將斷點處)保護斷點,即將斷點處CS和和IP的內容壓入堆棧;的內容壓入堆棧; D)將中斷類型號)將中斷類型號4,找到被響應的中斷源的服務程,找到被響應的中斷源的服務程序的入口地址(包括中斷服務程序的段地址和偏移地序的入口地址(包括中斷服務程序的段地址和偏移地址),再分別將它們裝入址),再分別將它們裝入CPU的的CS和和IP寄存器,一旦寄存器,一旦裝入完畢,就進入中斷服務程序并開始執行。裝入完

13、畢,就進入中斷服務程序并開始執行。中斷服務中斷服務(4) 中斷服務中斷服務中斷服務:由中斷服務子程序來完成。子程序中必須作以中斷服務:由中斷服務子程序來完成。子程序中必須作以下工作:下工作: A)保護現場:把中斷服務子程序中用到的寄存器的)保護現場:把中斷服務子程序中用到的寄存器的內容入棧,以防影響主程序的運行;內容入棧,以防影響主程序的運行; B)開中斷:以便在此子程序中允許中斷嵌套;)開中斷:以便在此子程序中允許中斷嵌套; C)執行中斷處理程序:完成相應的任務;)執行中斷處理程序:完成相應的任務; D)關中斷:確保有效的恢復現場)關中斷:確保有效的恢復現場 E)恢復現場。)恢復現場。中斷返

14、回中斷返回(5)中斷返回)中斷返回中斷服務程序結束,執行中斷服務程序結束,執行“中斷返回中斷返回”: 會自動將保存在堆棧中的被中斷的程序的斷點及標志會自動將保存在堆棧中的被中斷的程序的斷點及標志寄存器的內容彈出(依次彈出寄存器的內容彈出(依次彈出6個字節為個字節為IP,CS和和PSW);); 并將彈出的斷點裝入代碼段寄存器(并將彈出的斷點裝入代碼段寄存器(CS)和指令指針)和指令指針寄存器(寄存器(IP) ,使程序又回到中斷前的地址繼續執行。,使程序又回到中斷前的地址繼續執行。說明說明不同類型中斷的處理過程都要經過以上不同類型中斷的處理過程都要經過以上5步,但存在細微差別,其主要區別在于獲取步

15、,但存在細微差別,其主要區別在于獲取中斷號的方法不同。因此,在中斷響應這一中斷號的方法不同。因此,在中斷響應這一步有差別。步有差別。4.中斷響應周期中斷響應周期2. 中斷響應周期中斷響應周期(1)內部中斷:)內部中斷:由指令或在執行指令過程中提供中斷類型號,獲得類型號由指令或在執行指令過程中提供中斷類型號,獲得類型號之后執行:之后執行:A)將標志寄存器)將標志寄存器PSW的內容壓入堆棧的內容壓入堆棧B)將)將TF和和IF清清0C)保護斷點,即將斷點處)保護斷點,即將斷點處CS和和IP的內容壓入堆棧;的內容壓入堆棧;D)將中斷類型號)將中斷類型號4,從向量表中取入口地址送,從向量表中取入口地址送

16、CS、IP中,執行相應的中斷程序。中,執行相應的中斷程序。(2)外部中斷)外部中斷(2)外部中斷:)外部中斷:非屏蔽中斷響應:非屏蔽中斷響應:NMI引腳有請求,則自動引腳有請求,則自動產生中斷類型碼產生中斷類型碼2,其后的處理與內部中斷相同。,其后的處理與內部中斷相同??善帘沃袛囗憫嚎善帘沃袛囗憫褐袛囗憫芷谟袃蓚€:中斷響應周期有兩個:第一個第一個#INTA:通知中斷源提供中斷類型號;:通知中斷源提供中斷類型號;第二個第二個#INTA:T4狀態的前沿獲得中斷類型號。狀態的前沿獲得中斷類型號。獲得類型號之后處理與內部中斷相同。獲得類型號之后處理與內部中斷相同。7.1.4 中斷向量的中斷向量的

17、修改與設置修改與設置開機上電時,系統配置和使用的中斷所對應的中開機上電時,系統配置和使用的中斷所對應的中斷向量由斷向量由BIOS負責裝入,負責裝入,BIOS將中斷服務程序的入將中斷服務程序的入口地址直接寫入中斷向量表。口地址直接寫入中斷向量表。用戶自己編寫的中斷處理程序須由用戶把中用戶自己編寫的中斷處理程序須由用戶把中斷向量放入中斷向量表。可以直接寫入也可以斷向量放入中斷向量表??梢灾苯訉懭胍部梢酝ㄟ^通過DOS功能調用實現。功能調用實現。例子例子1.中斷向量的設置中斷向量的設置 例例1:假設:假設中斷類型號為中斷類型號為60H;中斷服務程序的段基址是中斷服務程序的段基址是SEG_INTR(03

18、00H););偏移地址是偏移地址是OFFSET_INTR(006DH););則填寫中斷向量表的程序段為:則填寫中斷向量表的程序段為:提示:中斷向量表存放在內存的最低端。提示:中斷向量表存放在內存的最低端。(1)用)用MOV指令設置(直接寫入)指令設置(直接寫入)(2)中斷向量修改)中斷向量修改MOV AX,0MOV ES,AXMOV BX,4*60H;中斷;中斷類型類型號號*4BXMOV AX,006DH;中斷服務程序偏移地址;中斷服務程序偏移地址MOV ES:BX, AX;裝入偏移地址;裝入偏移地址MOV AX,0300HMOV ES:BX+2,AX;裝入段基址;裝入段基址AH=25H入口參

19、數:入口參數:DS:DX=中斷子程序入口地址中斷子程序入口地址AL=中斷類型號中斷類型號(2)利用)利用DOS功能設置中斷向量功能設置中斷向量 例例1:假設:假設中斷類型號為中斷類型號為60H;中斷服務程序的段基址是中斷服務程序的段基址是SEG_INTR(0300H););偏移地址是偏移地址是OFFSET_INTR(006DH););則填寫中斷向量表的程序段為:則填寫中斷向量表的程序段為:MOV AH,25H ;設置新中斷向量;設置新中斷向量MOV AL,60HMOV BX,0300HMOV DS,BX;送送中斷服務程序入口段地址中斷服務程序入口段地址到到DSMOV DX,006DH;DX為為

20、中斷服務程序偏移地址中斷服務程序偏移地址INT 21H用戶在使用中斷時,通常是采用中斷向用戶在使用中斷時,通常是采用中斷向量修改的辦法來使用系統的中斷資源。量修改的辦法來使用系統的中斷資源。中斷向量的修改方法是利用中斷向量的修改方法是利用DOS功能調功能調用用INT 21H中的中的35H號和號和25H號功能。號功能。2.中斷向量的修改中斷向量的修改例子例子修改中斷向量的步驟有修改中斷向量的步驟有3步:步: 用用35H號功能,獲取原中斷向量,并保存號功能,獲取原中斷向量,并保存在字變量中。在字變量中。 用用25H號功能,設置新中斷向量,取代原號功能,設置新中斷向量,取代原中斷向量,以便當中斷發生

21、后,轉移到新中斷中斷向量,以便當中斷發生后,轉移到新中斷服務程序中去。服務程序中去。 新中斷服務程序完畢后,利用新中斷服務程序完畢后,利用25H號功能號功能恢復原中斷向量?;謴驮袛嘞蛄?。AH=35H:取中斷向量:取中斷向量入口參數:入口參數:AL=中斷類型號中斷類型號出口參數:出口參數:ES:BX=中斷子程序入口地址中斷子程序入口地址修改步驟修改步驟例例2:假設原中斷程序的中斷類型號是假設原中斷程序的中斷類型號是n;新中斷程序入口地址的段基址為新中斷程序入口地址的段基址為SEG_NTR;偏移地址是偏移地址是OFFSET_INTR;中斷向量修改的程序段為:中斷向量修改的程序段為:MOV AH,

22、35H ;取原中斷向量;取原中斷向量MOV AL,nHINT 21HMOV AX,ESMOV OLD_SEG,AX ;保存原中斷向量;保存原中斷向量MOV OLD_OFF,BXMOV AH,25H ;設置新中斷向量;設置新中斷向量MOV AL,nHMOV DX,SEG_INTRMOV DS,DX;送送中斷服務程序入口段地址中斷服務程序入口段地址到到DSMOV DX,OFF_INTR;DX為為中斷服務程序偏移地址中斷服務程序偏移地址INT 21HMOV AH,25H ;恢復原中斷向量;恢復原中斷向量MOV AL,nHMOV DX,OLD_SEGMOV DS,DXMOV DX,OLD_OFFINT

23、 21H(1) 接受和擴充外部設備的中斷請求接受和擴充外部設備的中斷請求一片一片8259A可以接受可以接受8個中斷請求,經過級聯可擴個中斷請求,經過級聯可擴展至展至8片片8259A,實現,實現64級中斷。級中斷。(2)優先級排隊管理)優先級排隊管理8259A具有完全嵌套、循環優先級、特定屏蔽等多具有完全嵌套、循環優先級、特定屏蔽等多種方式的優先級排隊管理。種方式的優先級排隊管理。(3)提供中斷類型號)提供中斷類型號 8259A在微機系統中的主要作用在微機系統中的主要作用3、47.2.1 8259A的外部引腳和內部結構的外部引腳和內部結構一、一、8259A的外部引腳的外部引腳1. 與外設連接的引

24、腳與外設連接的引腳:IR0IR72. 與與CPU連接的引腳:連接的引腳:(1)D0D7:雙向、三態:雙向、三態(2)INT:中斷請求輸出信號,單片情況下接:中斷請求輸出信號,單片情況下接CPU的的INTR端端(3)#INTA:中斷允許,接到:中斷允許,接到CPU的的#INTA端;接收到此信號,端;接收到此信號,就要把中斷類型號準備好,送到就要把中斷類型號準備好,送到DB上去。上去。(4)#WR:寫命令信號引腳,允許:寫命令信號引腳,允許CPU將將ICW和和OCW分別寫入分別寫入初始化命令寄存器和操作命令寄存器。初始化命令寄存器和操作命令寄存器。(5)#RD:讀命令信號引腳,可對:讀命令信號引腳

25、,可對8259A的的IRR、ISR、IMR的的內容及中斷級編碼進行讀出操作。內容及中斷級編碼進行讀出操作。3.用于級聯的引腳用于級聯的引腳3. 用于級聯的引腳:用于級聯的引腳:說明:對于主片,要知道在哪個引腳上連有從片對于從說明:對于主片,要知道在哪個引腳上連有從片對于從片,要知道本片連到主片的哪個引腳上。片,要知道本片連到主片的哪個引腳上。(1)CAS0CAS2:級聯信號線:級聯信號線 主片:輸出;主片:輸出;從片:輸入從片:輸入(2)#SP/#EN:從片編程:從片編程/緩沖器允許信號,雙功緩沖器允許信號,雙功能引腳能引腳 8259A工作于非緩沖方式下,工作于非緩沖方式下,#SP,輸入信號;

26、,輸入信號; 為為1,表示:主片,表示:主片 為為0,表示:從片,表示:從片 8259A工作于緩沖方式下,工作于緩沖方式下,#EN,輸出信號,控制緩沖器,輸出信號,控制緩沖器的傳送方向;的傳送方向; 為為0,控制數據由,控制數據由8259ACPU 為為1,控制數據由,控制數據由CPU8259A4.端口地址選擇端口地址選擇4. 端口地址選擇信號引腳:端口地址選擇信號引腳:(1)#CS:片選信號,該引腳為低電平時,:片選信號,該引腳為低電平時,8259A才被選中。才被選中。(2)A0:選內部端口,直接接地址總線中的:選內部端口,直接接地址總線中的某一位。某一位。A0有兩個狀態(有兩個狀態(0、1)

27、,因此它將),因此它將8259A的編程地址分為兩種:的編程地址分為兩種:A01為奇地址,為奇地址, A00為偶地址為偶地址二、二、8259A的內部結構的內部結構1.中斷請求寄存器(中斷請求寄存器(IRR)是一個是一個8位寄存器;位寄存器;存放從存放從IR線上提出中斷請求的中斷源的狀態;線上提出中斷請求的中斷源的狀態;該寄存器該寄存器8位(位(D0D7)對應于連接在)對應于連接在IR0IR7線上的外設所產生的中斷請求:線上的外設所產生的中斷請求:哪一根輸入線有請求(為高電平),對應位就置哪一根輸入線有請求(為高電平),對應位就置“1”否則為否則為0;具有鎖存功能,其內容可用具有鎖存功能,其內容可

28、用OCW3命令讀出。命令讀出。2.中斷服務寄存器中斷服務寄存器ISR2. 中斷服務寄存器(中斷服務寄存器(ISR)是一個是一個8位寄存器;位寄存器;記錄目前正在服務的中斷;記錄目前正在服務的中斷;在中斷響應之后,在第一個中斷周期(在中斷響應之后,在第一個中斷周期(#INTA1)將)將獲準中斷請求的中斷級在相應的獲準中斷請求的中斷級在相應的ISR位置位,表明位置位,表明IR3正處于被服務中;正處于被服務中;因此,因此,ISR被用來存放正在被服務的所有中斷級;被用來存放正在被服務的所有中斷級; ISR中某一位置中某一位置1,可阻止與它同級以及比它優先級低的請求,可阻止與它同級以及比它優先級低的請求

29、被響應;被響應; 但不阻止比它優先級高的中斷請求被響應;但不阻止比它優先級高的中斷請求被響應; 包括尚未服務完而中途被別的中斷所打斷了的中斷級。包括尚未服務完而中途被別的中斷所打斷了的中斷級。其內容可用其內容可用OCW3命令讀出。命令讀出。3.優先級分析器優先級分析器3. 優先級分析器(優先級分析器(PR)作用作用1:當輸入端當輸入端IR0IR7中有多個中斷請求信號中有多個中斷請求信號同時產生時;優先級分析器對保存在同時產生時;優先級分析器對保存在IRR中的各中斷中的各中斷請求進行判優,判別出優先級最高的中斷請求,并在請求進行判優,判別出優先級最高的中斷請求,并在第一個中斷響應周期(第一個中斷

30、響應周期(INTA)將其送至)將其送至ISR(即將(即將響應位置響應位置1)。)。作用作用2:負責檢查中斷源中斷請求的優先級并和負責檢查中斷源中斷請求的優先級并和“正正在服務中的中斷在服務中的中斷”進行比較,確定是否讓這個中斷請進行比較,確定是否讓這個中斷請求送給處理器。求送給處理器。 假定中斷源的中斷比正在服務中的中斷有更高假定中斷源的中斷比正在服務中的中斷有更高的優先級,則優先級分析器就使的優先級,則優先級分析器就使INT線變為高電平,線變為高電平,送給送給CPU,為它提出申請,并且在中斷響應時將它,為它提出申請,并且在中斷響應時將它記入記入ISR的對應位中。的對應位中。 若中斷源的中斷等

31、級等于或低于正在服務中的若中斷源的中斷等級等于或低于正在服務中的中斷等級,則優先級分析器不為其提出申請。中斷等級,則優先級分析器不為其提出申請。4.中斷屏蔽寄存器中斷屏蔽寄存器4. 中斷屏蔽寄存器(中斷屏蔽寄存器(IMR)是一個是一個8位寄存器位寄存器對中斷請求寄存器對中斷請求寄存器IRR起屏蔽作用。起屏蔽作用。寄存器寄存器8位(位(D0D7)對應)對應IR0IR7 8級中斷。級中斷。哪一級中斷被屏蔽,就將哪一級中斷被屏蔽,就將IMR哪位寫哪位寫1,即禁止相,即禁止相應應IR端提出的中斷請求;端提出的中斷請求;反之,寫反之,寫0,就開放響應的中斷,即允許相應,就開放響應的中斷,即允許相應IR端

32、端提出中斷請求。提出中斷請求。屏蔽操作由屏蔽命令屏蔽操作由屏蔽命令OCW1執行執行。5.數據總線緩沖器數據總線緩沖器5. 數據總線緩沖器數據總線緩沖器數據總線緩沖器是一個三態、雙向數據總線緩沖器是一個三態、雙向8位緩沖存儲器。它位緩沖存儲器。它被用來作為被用來作為8259A與與CPU的接口。的接口。在編程時,對數據總線緩沖器有兩種操作:在編程時,對數據總線緩沖器有兩種操作:CPU可以對可以對8259A寫入控制字;寫入控制字;CPU可從可從8259A中讀出狀態信息。中讀出狀態信息。6.讀寫邏輯讀寫邏輯#CS#WR#RDA0讀寫操作讀寫操作0010寫寫ICW1,OCW2,OCW30011寫寫ICW

33、2ICW4,OCW10100讀讀IRR,ISR,查詢字,查詢字0101讀讀IMR8259A8259A的讀的讀/ /寫操作命令寫操作命令6. 讀讀/寫邏輯寫邏輯作用:控制通過數據總線緩沖器數據的傳送方向(讀作用:控制通過數據總線緩沖器數據的傳送方向(讀/寫)。寫)。7.級連緩沖比較器級連緩沖比較器7. 級聯緩沖器級聯緩沖器/比較器比較器它們用于多片級聯及數據緩沖方式,提供了主、從片之它們用于多片級聯及數據緩沖方式,提供了主、從片之間的接口。間的接口。級聯方式中,主片和從片之間將級聯方式中,主片和從片之間將3個引腳個引腳CAS0CAS2相互連接成為專用總線。相互連接成為專用總線。主片將中斷申請被響

34、應的從片的標志號主片將中斷申請被響應的從片的標志號ID通過通過CAS0CAS2 線送到從片,通知中斷被響應。線送到從片,通知中斷被響應。從片收到標志號后,與自身的標識號比較,若相符,從片收到標志號后,與自身的標識號比較,若相符,則在第二個則在第二個#INTA2脈沖到來時,從片將中斷號送脈沖到來時,從片將中斷號送到數據總線上。到數據總線上。8.控制邏輯控制邏輯8. 控制邏輯控制邏輯根據中斷請求寄存器根據中斷請求寄存器IRR的置位情況和優先級分析器的置位情況和優先級分析器的判定結果,向的判定結果,向8259A其他部分發出控制信號;其他部分發出控制信號;同時向同時向CPU發中斷請求信號(發中斷請求信

35、號(INT););并接收來自并接收來自CPU的中斷響應(的中斷響應(#INTA),控制),控制8259A進行中斷服務狀態。進行中斷服務狀態。u三、三、8259A的工作方式(的工作方式(5類)類)1. 引入中斷請求(中斷觸發)的方式(引入中斷請求(中斷觸發)的方式(3種)種) 邊沿觸發方式。邊沿觸發方式。 在某個中斷請求引腳上(在某個中斷請求引腳上(IRi)有上升沿出現,表示有中斷請)有上升沿出現,表示有中斷請求產生,上升沿后可一直維持高電平,不會再產生中斷。求產生,上升沿后可一直維持高電平,不會再產生中斷。 電平觸發方式。電平觸發方式。 在某個中斷請求引腳上(在某個中斷請求引腳上(IRi)出現

36、高電平表示有中斷請求;)出現高電平表示有中斷請求; 但在響應中斷后必須及時清除高電平,以免引起第二次誤中斷。但在響應中斷后必須及時清除高電平,以免引起第二次誤中斷。中斷查詢方式。中斷查詢方式。 CPU用軟件查詢確定中斷源,并為其服務;此時用軟件查詢確定中斷源,并為其服務;此時8259A不使不使用用INT信號向信號向CPU申請中斷,申請中斷,2.連接系統總線的方式連接系統總線的方式2. 連接系統總線的方式(連接系統總線的方式(2種)種) 緩沖器方式緩沖器方式 要求要求8259A通過總線緩沖器接到數據總線上;通過總線緩沖器接到數據總線上; 適用于多片級聯方式的大系統中;適用于多片級聯方式的大系統中

37、; 此時的此時的#SP/#EN的的#EN有效,用于啟動緩沖器工作,控有效,用于啟動緩沖器工作,控制數據傳送方向。制數據傳送方向。 非緩沖器方式非緩沖器方式 8259A不需要總線緩沖器而是將其直接接至數據總線;不需要總線緩沖器而是將其直接接至數據總線; 適用于小系統中;適用于小系統中; 此時此時#SP/#EN的的#SP有效,用于表示主有效,用于表示主/從芯片。從芯片。3.屏蔽中斷源的方式屏蔽中斷源的方式3. 屏蔽中斷源的方式(屏蔽中斷源的方式(2種)種) 通常屏蔽方式通常屏蔽方式利用操作命令字利用操作命令字OCW1對中斷屏蔽寄存器對中斷屏蔽寄存器IMR相應相應位進行操作;位進行操作;對相應位置對

38、相應位置1,表示此位對應的中斷請求被屏蔽;,表示此位對應的中斷請求被屏蔽;對相應位置對相應位置0,表示此位對應的中斷請求被開放;,表示此位對應的中斷請求被開放; 特殊屏蔽方式特殊屏蔽方式在某些場合,在執行某一個中斷服務程序時,要求允在某些場合,在執行某一個中斷服務程序時,要求允許另一個優先級比它低的中斷請求被響應,此時可采許另一個優先級比它低的中斷請求被響應,此時可采用特殊屏蔽方式。它可通過用特殊屏蔽方式。它可通過OCW3的的D6D511來來設定。設定。4.優先級排隊的方式優先級排隊的方式4. 優先級排隊的方式(優先級排隊的方式(4種)種) 全嵌套方式。全嵌套方式。特點:優先級固定不變;特點:

39、優先級固定不變;規定:中斷優先級按規定:中斷優先級按IR0IR7的順序由高到低的順序由高到低進行排隊;進行排隊;只允許中斷級別高的中斷源去中斷中斷級別低的只允許中斷級別高的中斷源去中斷中斷級別低的中斷服務程序,而不能相反。中斷服務程序,而不能相反。若在對若在對8259A進行初始化以后,沒有設置其它優進行初始化以后,沒有設置其它優先級方式,則自動按此方式工作。先級方式,則自動按此方式工作。 特殊全嵌套方式。特殊全嵌套方式。特點:它和全嵌套方式基本相同,所不同的是在特點:它和全嵌套方式基本相同,所不同的是在特殊嵌套方式下,當執行某一級中斷服務程序時,特殊嵌套方式下,當執行某一級中斷服務程序時,可響

40、應同級的中斷請求,從而實現對同級中斷請可響應同級的中斷請求,從而實現對同級中斷請求的特殊嵌套。求的特殊嵌套。用于多片級聯的情況下。用于多片級聯的情況下。3 優先級自動輪換方式。優先級自動輪換方式。特點:優先級順序不是固定不變的,當一個設備受特點:優先級順序不是固定不變的,當一個設備受到中斷服務后,其優先級自動降為最低,它的下一到中斷服務后,其優先級自動降為最低,它的下一級變為最高級,依次進行排列;級變為最高級,依次進行排列;其初始的優先級順序規定:由高到低為其初始的優先級順序規定:由高到低為IR0,IR1,IR7;各優先級的相對位置未發生變化;各優先級的相對位置未發生變化;該方式用在系統中多個

41、中斷源優先級相等的場合。該方式用在系統中多個中斷源優先級相等的場合。 優先級指定輪換方式。優先級指定輪換方式。特點:此方式與優先級自動輪換方式唯一的區別特點:此方式與優先級自動輪換方式唯一的區別是,其初始的優先級順序不是固定是,其初始的優先級順序不是固定IR0位最高,位最高,然后開始輪換,而是通過程序規定中斷優先級的然后開始輪換,而是通過程序規定中斷優先級的順序;順序;通過一個寫命令(寫通過一個寫命令(寫OCW2)指定)指定IR0IR7中任意一個為最低優先級,然后再按順序自動輪中任意一個為最低優先級,然后再按順序自動輪換,決定優先級。換,決定優先級。5.結束中斷的處理方式結束中斷的處理方式5.

42、 結束中斷的處理方式(結束中斷的處理方式(2種)種) 自動中斷結束方式自動中斷結束方式在中斷服務程序中,中斷返回之前,不需發中斷在中斷服務程序中,中斷返回之前,不需發中斷結束命令就會自動清除該中斷服務程序所對應的結束命令就會自動清除該中斷服務程序所對應的ISR位;位;這種方式用在多個中斷不會嵌套的系統中。這種方式用在多個中斷不會嵌套的系統中。 非自動中斷結束方式非自動中斷結束方式在中斷服務程序返回之前,必須發中斷結束命在中斷服務程序返回之前,必須發中斷結束命令才能使令才能使ISR中的當前服務位清除。中的當前服務位清除。u四、四、8259A命令字命令字對對8259A的編程分為兩部分:的編程分為兩

43、部分:1.初始化編程初始化編程CPU向向8259A寫入寫入24個初始化命令字個初始化命令字ICW;其中其中ICW1、ICW2必須寫入,是否寫入必須寫入,是否寫入ICW3、ICW4取決于取決于ICW1的內容。的內容。2.操作方式編程操作方式編程 CPU向向8259A寫入寫入3個操作命令字個操作命令字OCW;根據需要,根據需要,OCW可在初始化之后的任何時間寫入可在初始化之后的任何時間寫入; 8259A有兩類命令字有兩類命令字1.初始化命令字(初始化命令字(ICW),有四個:),有四個: ICW1ICW4;對對8259A工作方式和工作條件進行設置。工作方式和工作條件進行設置。2. 操作命令字(操作

44、命令字(OCW),有三個:),有三個:OCW1OCW3;對中斷處理過程實現動態控制的操作。對中斷處理過程實現動態控制的操作。問題問題問題?:問題?:CPU向向8259A寫入的命令字有寫入的命令字有7個,但個,但8259A的端口地址只有兩個,命令字多,端口地址少,的端口地址只有兩個,命令字多,端口地址少,怎樣來解決此問題?怎樣來解決此問題?1.從順序上區分;從順序上區分;2.從標志位上區分。從標志位上區分。初始化命令字初始化命令字初始化命令字(初始化命令字(ICW1ICW4)寫寫ICW1寫寫ICW2寫寫ICW4寫寫ICW3級聯?級聯?需需ICW4?初始化完成初始化完成是是否否是是否否通過偶地址寫

45、入,通過偶地址寫入,A0=0通過奇地址寫入,通過奇地址寫入,A0=18259A內部自動進行如下初始化:內部自動進行如下初始化:(1)順序邏輯復位,準備按順序邏輯復位,準備按ICW2、ICW3、ICW4的順序接的順序接收收(2)清除清除ISR和和IMR(3)指定指定IR0優先級最高,依次為優先級最高,依次為IR1IR7(4)設定為普通屏蔽方式設定為普通屏蔽方式(5)設置為非自動中斷結束方式設置為非自動中斷結束方式(6)狀態讀出電路預置為狀態讀出電路預置為IRRICW1當當D41時,表示寫入的是時,表示寫入的是ICW1 ,寫入時,寫入時A00;D0(IC4)位:決定是否需要寫初始命令字)位:決定是

46、否需要寫初始命令字ICW4; D0=1,需要,需要ICW4;D0=0,不需要,不需要ICW4。D1 (SNGL)位:決定是否單片使用;)位:決定是否單片使用; D1=1,為單片使用,不需要寫,為單片使用,不需要寫ICW3; D1=0,為多片級聯方式,需要寫,為多片級聯方式,需要寫ICW3。D3 (LTIM)位:決定電平觸發方式;)位:決定電平觸發方式; D3=1,為電平觸發;,為電平觸發; D3=0,為邊沿觸發。,為邊沿觸發。D4:ICW1的特征位。的特征位。D7 D6 D5D4D3D2D1D00001LTIMADISNGLIC416位機無效特征位電平觸發無效 單片使用 需要ICW4ICW21

47、. ICW1(初始化字)(初始化字)寫入時,寫入時,A01對于對于8086/8088來說,來說,T7T3由用戶來設置,表由用戶來設置,表示中斷類型碼的高五位,示中斷類型碼的高五位,T2T0在響應中斷時,由中斷請求線在響應中斷時,由中斷請求線IRi的二進制編的二進制編碼(碼(IR4的編碼為的編碼為100)決定,由)決定,由8259A系統自動產系統自動產生,在第一個生,在第一個#INTA到來時,將這個編碼寫入低到來時,將這個編碼寫入低3位。位。D7D6D5D4D3D2D1D0T7T6T5T4T3000中斷類型號的高5位自動產生ICW32. ICW2(中斷類型號的設置字)(中斷類型號的設置字)3.

48、ICW3(中斷級聯方式的設置字)(中斷級聯方式的設置字)若若ICW1的的D1=0,則需要寫,則需要寫ICW3,寫入時,寫入時A01,對主、從片,對主、從片分開寫入;分開寫入;主片的格式:主片的格式: D7D0表示對應中斷請求引腳表示對應中斷請求引腳IR7IR0有無從片接入有無從片接入 當主片輸入端當主片輸入端IRi上連接有從片的中斷請求上連接有從片的中斷請求INT時,則設置時,則設置Si=1; 否則否則Si為為0D7D6D5D4D3D2D1D0S7S6S5S4S3S2S1S0從片格式從片格式從片的格式如下:從片的格式如下: 只用到低三位只用到低三位D2D0(從片標志碼),有(從片標志碼),有8

49、種編碼,其值表示種編碼,其值表示本從片的中斷請求線本從片的中斷請求線INT接到主片的輸入端接到主片的輸入端IRi ; 若若D2D0為為010,表示接到主片的,表示接到主片的IR2引腳;引腳; 第一個中斷請求回答信號第一個中斷請求回答信號#INTA1脈沖使所有的脈沖使所有的8259A得到通得到通知:中斷申請已被允許。在此同時,作為主片的知:中斷申請已被允許。在此同時,作為主片的8259A要在要在CAS0CAS2總線上發出被響應的從片的總線上發出被響應的從片的ID碼;從片接到此碼,碼;從片接到此碼,和自己的和自己的ID比較,如果相等,則在下一個中斷應答信號比較,如果相等,則在下一個中斷應答信號#I

50、NTA2時,將中斷類型號送到數據總線上,這樣就完成了中斷響應。時,將中斷類型號送到數據總線上,這樣就完成了中斷響應。D7D6D5D4D3D2D1D0XXXXXID2ID1ID0從片標志碼ICW44. ICW4D0(PMPM):選用):選用CPU的類型的類型D01 選用選用8086/8088D00 選用選用8080/8085D1(AEOI):中斷結束方式):中斷結束方式 D1=1,自動結束方式,即,自動結束方式,即ISR有自動復位功能,無須有自動復位功能,無須發送中斷結束命令發送中斷結束命令EOI;D1=0,為非自動結束方式,則在中斷服務程序完畢后,為非自動結束方式,則在中斷服務程序完畢后,CP

51、U要向其發送要向其發送EOI命令。命令。D7D6D5D4D3D2D1D0000SFNMBUFM/#SAEOIPM續續D3(BUF):規定了與總線的連接方式):規定了與總線的連接方式 D3=1,為緩沖器方式,此時,為緩沖器方式,此時#SP/#EN引腳為輸出線,引腳為輸出線,用作控制緩沖器的數據傳送方向;用作控制緩沖器的數據傳送方向; D3=0,為非緩沖器方式,此時,為非緩沖器方式,此時#SP/#EN為輸入線,用為輸入線,用作主作主/從控制。從控制。D2(M/#S):當):當D3=1時,時,D2為主、從片標志為主、從片標志D2=1,此片為主片;,此片為主片;D2=0,此片為從片;,此片為從片;若在

52、非緩沖方式(若在非緩沖方式(D3=0)時,)時,D2無意義,此時主無意義,此時主/從標志從標志由由#SP決定。決定。D4=1(SFNM):規定采用的嵌套方式):規定采用的嵌套方式 D4=1,主片采用特殊完全嵌套方式;,主片采用特殊完全嵌套方式; D4=0,主片采用一般全嵌套方式。,主片采用一般全嵌套方式。操作命令字操作命令字操作命令字(操作命令字(OCW1OCW3)初始化命令字之后,初始化命令字之后,8259A就準備就緒了(即:可以接就準備就緒了(即:可以接收外部中斷請求信號了);收外部中斷請求信號了);此時,此時, 8259A工作在全嵌套工作方式(優先級固定不工作在全嵌套工作方式(優先級固定

53、不變);變);若想改變中斷控制方式、屏蔽某些中斷、讀出若想改變中斷控制方式、屏蔽某些中斷、讀出8259A內內部的狀態信息;就要寫入操作命令字。部的狀態信息;就要寫入操作命令字。操作命令字的寫入無順序上的要求,但有地址上的要求。操作命令字的寫入無順序上的要求,但有地址上的要求。OCW1(1) OCW1(中斷屏蔽操作)(中斷屏蔽操作)作用:用來設置或清除中斷源的屏蔽;作用:用來設置或清除中斷源的屏蔽;其屏蔽命令其屏蔽命令OCW1的格式如下:的格式如下:Mi1 屏蔽此位對應的中斷請求端的設備;屏蔽此位對應的中斷請求端的設備;Mi0 開放此位對應的中斷請求端的設備;開放此位對應的中斷請求端的設備;此命

54、令字通過此命令字通過A01的端口地址寫入的端口地址寫入8259A內部。內部。D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1M0OCW2(2) OCW2(非自動中斷結束方式的操作字)(非自動中斷結束方式的操作字)在非自動中斷結束方式下,當中斷服務程序完畢在非自動中斷結束方式下,當中斷服務程序完畢時,時,8259A需要得到一個通知,以便將該服務程需要得到一個通知,以便將該服務程序在序在ISR寄存器中對應位清除,讓寄存器中對應位清除,讓ISR寄存器只記寄存器只記錄著那些正在被服務而未服務完畢的中斷。錄著那些正在被服務而未服務完畢的中斷。非自動中斷結束(非自動中斷結束(EOI)有)有2種

55、格式:不指定的種格式:不指定的EOI方式和指定的方式和指定的EOI方式。方式。續續 不指定的不指定的EOI方式方式當當8259A接收到一個不指定的接收到一個不指定的EOI命令時,它就直命令時,它就直接將最高優先級(在被置位的接將最高優先級(在被置位的ISR中最高)的中最高)的ISR位位復位。復位。 指定的指定的EOI方式方式需要指出一個確切要被復位的需要指出一個確切要被復位的ISR位,可以指定位,可以指定8259A的的8個個IR等級中的任何一個。等級中的任何一個。續續以上兩種中斷結束方式由命令字以上兩種中斷結束方式由命令字OCW2來執行;來執行;OCW2的格式為:的格式為:此命令字通過此命令字

56、通過A00的端口寫入到的端口寫入到8259A內部;內部;其中其中D4、D3為特征位,為為特征位,為0、0;D7位:位:R用來控制用來控制8259A中斷優先級的輪換操作中斷優先級的輪換操作R位置位置1,則采用輪換優先級方式;,則采用輪換優先級方式;R為為0:優先級固定不變。:優先級固定不變。D7D6D5D4D3D2D1D0RSLEOI00L2L1L0優先級輪換指定中斷等級中斷結束特征位中斷等級編碼續續D6位:位:SL用來設置需要指定的操作。用來設置需要指定的操作。D6=0,普通方式,不用對,普通方式,不用對L2 L1 L0這三位賦值;這三位賦值;D6=1,特殊方式,表明需要指出一個確切的被復位,

57、特殊方式,表明需要指出一個確切的被復位的的ISR位(具體哪一位通過對低位(具體哪一位通過對低3位位L2 L1 L0進行賦進行賦值指出,用來指明是值指出,用來指明是8級中斷源中的哪一個中斷被結級中斷源中的哪一個中斷被結束)。束)。D5位:位:EOI用于所有需要使用中斷結束命令的情況。用于所有需要使用中斷結束命令的情況。若置若置1,則在中斷服務完畢之后需要發送中斷結束命,則在中斷服務完畢之后需要發送中斷結束命令,使現行中斷級的令,使現行中斷級的ISR中相應位復位。中相應位復位。OCW2作用作用D2D0位:位:L2L0這這3位編碼是用來指定中斷等級位編碼是用來指定中斷等級(07)。作用()。作用(2

58、個):個):(1)特殊循環方式中,指定系統中)特殊循環方式中,指定系統中最低優先級最低優先級的編的編碼;碼;(2)當)當OCW2給出特殊的中斷結束命令時,指明要給出特殊的中斷結束命令時,指明要對中斷服務寄存器對中斷服務寄存器ISR中哪一位復位,此時,它和中哪一位復位,此時,它和D6位位SL配合使用。配合使用。OCW2作用作用OCW2的作用(的作用(2個):個): OCW2作中斷結束操作:作中斷結束操作: 當在初始化命令當在初始化命令ICW4選用非自動結束方式時,選用非自動結束方式時,就利用就利用OCW2來控制中斷結束。來控制中斷結束。此時此時EOI(D5)=1。其中又分兩種情況:。其中又分兩種

59、情況:OCW2作用作用2若采用不指定中斷結束方式,則若采用不指定中斷結束方式,則SL=0,L2L0=000,OCW2=00100000B;若采用指定中斷結束方式,則若采用指定中斷結束方式,則SL=1,L2L0編碼是編碼是被指定的的中斷等級,被指定的的中斷等級,OCW201100L2 L1 L0,其含,其含義是將義是將L2L0編碼所對應的編碼所對應的ISR位復位;位復位;例如:指定例如:指定IR5上的中斷結束,則上的中斷結束,則OCW201100101B=65H。OCW2作用作用2D7D6D5D4D3D2D1D0RSLEOI00L2L1L0優先級輪換指定中斷等級中斷結束特征位中斷等級編碼 OCW

60、2作中斷優先級排隊操作:作中斷優先級排隊操作:當采用中斷優先級輪換方式時(當采用中斷優先級輪換方式時(R=1),其中又分兩種),其中又分兩種情況:情況:l若若SL=1時,則為優先級指定輪換,由時,則為優先級指定輪換,由L2 L1 L0指定系指定系統中最低優先級統中最低優先級的編碼;最高優先賦給它的下一級。的編碼;最高優先賦給它的下一級。 l若若SL=0時,則為優先級自動輪換。時,則為優先級自動輪換。當采用中斷優先權固定方式時(當采用中斷優先權固定方式時(R0),則為完全嵌套),則為完全嵌套方式。方式。OCW2命令的功能如表命令的功能如表3所示:所示:功能表功能表R SL EOIR SL EOI

溫馨提示

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

評論

0/150

提交評論