版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第7章 中斷系統(tǒng)和中斷控制器8259A,一、中斷的基本概念 二、8086/8088的中斷系統(tǒng) 三、中斷控制器8259A,一、中斷的基本概念,1、中斷及中斷源 2、中斷處理過程 3、中斷優(yōu)先權管理,1、中斷及中斷源,中斷:是一種讓CPU掛起正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作。 中斷過程 :CPU暫時停止執(zhí)行原來的程序而轉(zhuǎn)去中斷處理,處理好中斷服務后再返回繼續(xù)執(zhí)行原來的程序,這樣一個過程就是一個中斷過程 。 中斷源:能夠引起CPU中斷的事件稱為中斷源 。,中斷源及分類,根據(jù)中斷與CPU的相對關系,中斷分為內(nèi)部中斷和外部中斷。 外部中斷(硬中斷)則是由直接連到CPU引腳上的信號引起的中斷,如外部
2、設備請求服務中斷,實時時鐘定時到中斷,電源掉電等等。 內(nèi)部中斷(軟中斷)可以是中斷指令設置的中斷,調(diào)試程序時設置的中斷,或是程序運行過程中發(fā)生的非預期情況而產(chǎn)生的中斷;,可屏蔽中斷 不可屏蔽中斷,外部中斷 (硬中斷) 內(nèi)部中斷 (軟中斷),(因執(zhí)行指令而引起),2、中斷處理過程,一個中斷過程應該包含以下五個過程: (1)中斷請求 (2)中斷排隊 (3)中斷響應-中斷處理-中斷返回,(1)中斷請求,當中斷源需要CPU為其服務時,首先送出中斷請求信號。 中斷信號可以由中斷指令或是某些特定條件產(chǎn)生,也可以是通過CPU引腳向CPU發(fā)出中斷請求信號而產(chǎn)生。 實際系統(tǒng)中一般都有多個中斷源, 為了增加控制的
3、靈活性,每個中斷源接口電路中,設置一個中斷請求觸發(fā)器和一個中斷屏蔽觸發(fā)器。,(1)中斷請求,當中斷源有請求時,將中斷請求觸發(fā)器置1: * 若中斷屏蔽觸發(fā)器為“0”狀態(tài),表示允許該中斷源向CPU發(fā)出中斷請求“信號”; * 若中斷屏蔽觸發(fā)器為“1”狀態(tài),表示禁止該中斷源向CPU發(fā)出中斷請求“信號”。盡管該中斷源有中斷請求,也不能被送出,該中斷請求被屏蔽了。,(2)中斷排隊,中斷排隊是確定當前所有中斷請求中優(yōu)先級最高的那個中斷源。 因為CPU一次只能響應一個中斷,所以必須首先處理最緊急最重要的中斷。 根據(jù)中斷源的輕重緩急給予一個中斷優(yōu)先權級別,優(yōu)先權級別最高的中斷源將首先得到響應。 中斷一般劃分為四
4、級,以0級為最高,依次降低: 0級-1級-2級-3級,(3)中斷響應-中斷處理-中斷返回,CPU通過中斷排隊確定了要響應的中斷源后,進入中斷響應,完成以下步驟: (1)關中斷并保護斷點。這一步為隱操作。 (2)標志寄存器FR自動入棧。 (3)中斷處理。形成中斷服務程序入口地址,執(zhí)行中斷服務程序。 保護現(xiàn)場。在中斷服務程序中可能要用到某些寄存器,而這些寄存器在主程序被中斷打斷時存放著有用的信息,為了不破壞主程序在斷點處的信息,應將這些要用到的寄存器的內(nèi)容壓棧,這個過程稱為現(xiàn)場保護。 開中斷(STI指令)。由于CPU響應中斷時會自動關閉中斷,因此為了響應更高級別的中斷請求,往往要根據(jù)中斷系統(tǒng)的實際
5、情況,在中斷服務程序的適當位置要開中斷。 中斷服務程序 關中斷。為了安全起見,在保護現(xiàn)場和恢復現(xiàn)場時都應關中斷。 恢復現(xiàn)場。 用一系列的出棧指令使保護現(xiàn)場時被保護的那些寄存器的內(nèi)容還原。 (4)中斷返回(IRET指令)。從堆棧彈出斷點,返回主程序。,3、中斷優(yōu)先權管理,中斷優(yōu)先權是事先根據(jù)中斷源的重要性給每個中斷源確定一個中斷優(yōu)先級別優(yōu)先權。 中斷優(yōu)先權管理就是判別和確定各個中斷源的中斷優(yōu)先權。 中斷優(yōu)先權判別方法有軟件和硬件兩種方法。,(1)軟件確定中斷優(yōu)先權 軟件法是在CPU響應中斷后,用軟件查詢確定哪個中斷源申請中斷,先被查詢的先響應。 查詢次序決定了中斷優(yōu)先權次序,最先被查詢的中斷源具
6、有最高的優(yōu)先權。,如圖,8個外設只要有中斷請求,CPU檢測到中斷請求信號,響應中斷;,讀入端口80H的內(nèi)容,逐位判別確定當前申請中斷的優(yōu)先權最高的中斷源,從而進入相應的中斷服務程序。,3、中斷優(yōu)先權管理,(1)軟件確定中斷優(yōu)先權,軟件查詢流程圖,軟件查詢程序: IN AL,80H ;端口讀入狀態(tài) TEST AL,80H; JNZ SERVE_A TEST AL,40H JNZ SERVE_B TEST AL,01H JNZ SERVE_H HLT,* 軟件查詢次序就是優(yōu)先權高低的次序; * 軟件確定中斷優(yōu)先權不需復雜的硬件電路,簡單易實現(xiàn); * 中斷源較多時,查詢時間較長,中斷響應較慢。,3、
7、中斷優(yōu)先權管理,(2)硬件確定中斷優(yōu)先權 由硬件實現(xiàn)中斷優(yōu)先權的判別。 * 常用的硬件電路有:中斷優(yōu)先權編碼電路,鏈式優(yōu)先權排隊電路及專用硬件電路等。,鏈式優(yōu)先權排隊電路,專用硬件方式,采用可編程的中斷控制器芯片,如Intel 8259A,中斷控制器的系統(tǒng)連接,* 利用中斷控制器8259A,它具有8個優(yōu)先權控制,可以通過級聯(lián),擴展至64級優(yōu)先權控制,且每級中斷都可設置為允許或屏蔽 。,二、8086/8088的中斷系統(tǒng),8086/8088CPU具有一個功能很強、管理高效且簡便靈活的中斷系統(tǒng),可以處理多達256種中斷源。 8086/8088CPU有兩類中斷: * 內(nèi)部中斷 由執(zhí)行中斷指令或特殊事件
8、引起; * 外部中斷 由外圍設備接口向CPU的中斷請求引腳INTR和NMI發(fā)出中斷請求信號而引起的。,二、8086/8088的中斷系統(tǒng),1、 8086/8088的中斷分類 2、8086/8088的中斷指令 3、 中斷向量表 4、 8086/8088中斷處理過程,1、8086/8088的中斷分類,8086/8088的中斷系統(tǒng)可以處理256種不同的中斷。 所有可能產(chǎn)生的中斷源有:可屏蔽中斷INTR、非屏蔽中斷NMI、指令中斷INT n和特定條件下的中斷,分為兩類:,內(nèi)部中斷,外部中斷,1、8086/8088的中斷分類,內(nèi)部中斷 CPU不是通過外部中斷請求而是通過內(nèi)部邏輯進入中斷,調(diào)用相應的中斷服務
9、程序,是CPU自啟動的中斷。 除單步中斷外,所有內(nèi)部中斷為非屏蔽型的。 內(nèi)部中斷主要用于解決程序運行中發(fā)生的一些意外情況、程序調(diào)試、用戶定義的中斷或者調(diào)用系統(tǒng)提供的一些標準中斷服務程序。 (1)除法出錯中斷 (類型0) ; (2)單步中斷(類型1); (3)斷點中斷(類型3); (4)溢出中斷(類型4); (5)指令中斷,1、8086/8088的中斷分類,內(nèi)部中斷,(1)除法出錯中斷 (類型0) CPU在執(zhí)行除法指令DIV和IDIV時,若發(fā)現(xiàn)除數(shù)為0,或商超過了寄存器所能表達的范圍,就立即產(chǎn)生一個類型為0的內(nèi)部中斷,CPU轉(zhuǎn)入除法錯誤中斷處理程序。 注意:此中斷是由CPU自身產(chǎn)生,并沒有對應的
10、中斷指令。,1、8086/8088的中斷分類,內(nèi)部中斷,(2)單步中斷 (類型1) 此中斷也是由CPU自身產(chǎn)生,沒有對應的中斷指令,它是由CPU對狀態(tài)標志寄存器中的陷阱標志TF的測試而引起的。 TF1,自動單步中斷,用于程序調(diào)試。,1、8086/8088的中斷分類,內(nèi)部中斷,(3)斷點中斷 (類型3) 用DEBUG調(diào)試程序時,可G命令設置斷點。當CPU執(zhí)行到斷點時便產(chǎn)生中斷,同時顯示相關內(nèi)容 。 和單步中斷類似,用于程序調(diào)試。,1、8086/8088的中斷分類,內(nèi)部中斷,(4)溢出中斷 (類型4) 溢出中斷是由CPU執(zhí)行一條INTO指令實現(xiàn)的: 當OF1時,執(zhí)行INTO就會進入類型碼為4的內(nèi)部
11、中斷; 否則,按順序執(zhí)行。,1、8086/8088的中斷分類,內(nèi)部中斷,(5)指令中斷 當執(zhí)行INT n指令時,形成中斷,類型碼由指令提供。 從功能上來說,類似于調(diào)用子程序,但入口地址在中斷向量表里。,1、8086/8088的中斷分類,外部中斷 通過外部的硬件產(chǎn)生,由送至CPU引腳NMI和INTR上的信號引起中斷。 分為兩類: (1)非屏蔽中斷(n=2) 一旦在NMI引腳有中斷請求,CPU立即響應。,1、8086/8088的中斷分類,(2)可屏蔽中斷, 從INTR腳引入,必須滿足IF=1,且沒有非屏蔽中斷,CPU可以響應中斷。 中斷請求信號是由電平觸發(fā),必須保存到CPU響應中斷請求后才能撤除。
12、 中斷允許標志IF的標志,可由指令設置: STI 開中斷,將IF置1; CLI 關中斷,將IF置0 。 當系統(tǒng)復位,或CPU響應中斷后,都使IF置0。,2、8086/8088的中斷指令,(1)中斷指令 指令格式: INT n ;n=0255,中斷類型碼 指令操作: SP2 SP(修改堆棧指針), FR入棧, IF=0(中斷標志置0,關中斷,CPU不響應可屏蔽中斷) , TF=0(陷阱標志,TF0,CPU正常執(zhí)行程序) , SP2 SP (修改堆棧指針), CS入棧 SP2 SP (修改堆棧指針),IP入棧 n4 IP n4+2 CS,2、8086/8088的中斷指令,中斷向量就是中斷服務程序的
13、入口地址; 中斷類型碼 n4 即為該中斷向量的存放地址; 中斷向量占用4個單元: 低字是IP,高字是CS,CPU取出CS和IP,轉(zhuǎn)去執(zhí)行中斷服務程序。 INT n 指令除了使IF0和TF0,對其他標志位沒有影響; INT 與INT 3等同,稱為斷點中斷指令,用于軟件調(diào)試。,2、8086/8088的中斷指令,(2)溢出中斷指令 指令格式:INTO;與INT 4等價 指令操作: 溢出中斷指令用于帶符號數(shù)加減法運算后,由于運算溢出而產(chǎn)生中斷。 通常,寫在一條算術運算指令后: 若運算結(jié)果使OF=1,進入中斷類型碼為4的中斷; 否則,按順序執(zhí)行下一條指令。,n4 0010H,中斷向量存放地址為:,2、8
14、086/8088的中斷指令,(3)中斷返回指令 指令格式:IRET 指令操作:IP,CS,F(xiàn)R依此出棧,SP+6SP 所有中斷服務程序,無論是軟件中斷,還是硬件中斷,最后執(zhí)行的指令一定是IRET,用以退出中斷,返回斷點。,3、中斷向量表,中斷向量即中斷服務程序的入口地址,用兩個字表示,低字是IP,高字是CS。 將所有中斷源的中斷向量集中存儲在內(nèi)存的指定空間內(nèi),這樣一個指定的存儲區(qū)稱為中斷向量表; 8086/8088的中斷類型碼用8位二進制表示,共有從n=00HFFH, 256個中斷向量; 中斷向量表建立在內(nèi)存空間最低1K地址; 地址范圍:00000H 003FFH。 注意:中斷類型碼只能決定存
15、放中斷向量的地址,并不能決定中斷向量本身和中斷服務程序的功能。,中斷向量和中斷向量表,3、中斷向量表,向中斷向量表中寫入中斷向量,就是中斷向量表的設置。 (1)使用INT 21H (2)用傳送指令,(1)使用INT 21H,設置中斷向量,操作: AL中預置要設置的中斷類型碼; DS:DX中預置中斷服務程序的入口地址; (DS內(nèi)是段地址,DX內(nèi)是偏移地址) MOV AH, 25H ;送功能號 INT 21H ;系統(tǒng)功能調(diào)用,使用INT 21H,設置中斷向量,設中斷服務程序的入口地址標號為INTSUB,中斷類型碼為40H, 編寫程序段設置中斷向量。 解: PUSH DS ;將DS入棧,保存DS M
16、OV DX, OFFSET INTSUB;取INTSUB的偏移地址 MOV AX,SEG INTSUB ;取INTSUB的段基址 MOV DS,AX ;段基址送DS MOV AL, 40H ;送中斷類型碼 MOV AH, 25H ;送功能號 INT 21H ;系統(tǒng)功能調(diào)用 POP DS ;恢復DS ,(2)用傳送指令設置中斷向量,設中斷服務程序的入口地址標號為INTSUB,中斷類型碼為40H, 編寫程序段設置中斷向量。 解: 數(shù)據(jù)段 DATA SEGMENT AT 0000 ;設置數(shù)據(jù)段DATA段 ;從最低內(nèi)存開始 ORG 100H ;確定中斷向量的位置;在40H4=100H NT_SUB D
17、W 2DUP(?) ;預留兩字內(nèi)存 DATA ENDS,用傳送指令設置中斷向量代碼段,CODE SEGMENT CLI ;設置IF=0, 關中斷 PUSH DS ;DS入棧 MOV AX, DATA MOV DS, AX ;取DATA的段基址 MOV INT_SUB ,OFFSET INTSUB ;取INTSUB的偏移 ;地址送到INT_SUB MOV INT_SUB+2,SEG INTSUB ;取INTSUB的段基址 ;送到INT_SUB+2 POP DS ;恢復DS STI ;設置IF=1, 開中斷 CODE ENDS,4、8086/8088的中斷處理過程,8086/8088中斷處理過程包
18、含: 中斷請求、中斷排隊、中斷響應、中斷服務和中斷返回。,(1)中斷響應條件,任何一種中斷,都要待CPU執(zhí)行完當前指令后方能響應中斷。 當CPU執(zhí)行LOCK(總線鎖定指令)時,要等后面的指令完成后才能響應中斷; 設置段寄存器內(nèi)容的指令和下條指令之間不允許中斷; 在等待指令和重復串操作指令執(zhí)行過程中,可響應中斷,但必須在一個基本操作完成以后。 當上述情況滿足后,有內(nèi)部中斷、NMI、INTR(且IF1),CPU將暫時終止現(xiàn)行程序,進入中斷響應。,(2)中斷處理順序,中斷處理順序即按中斷優(yōu)先權從高到低的排隊順序?qū)χ袛嘣催M行響應。 8086/8088系統(tǒng)的中斷處理次序如下: 除法錯誤中斷、溢出中斷、I
19、NT n; NMI(非屏蔽中斷); INTR(可屏蔽中斷,需判斷IF1?); 單步中斷。,說明:,當CPU進入中斷響應時,保護FR,然后清除IF和TF,以保護本中斷服務不被可屏蔽中斷打斷;中斷返回時,F(xiàn)R恢復,IF和TF 恢復; NMI的請求擁有最高優(yōu)先權,需要立即處理; 一個中斷被響應,CPU進入中斷服務程序; 在中斷服務程序中,設置了開中斷,即設置IF1,則不但可以響應NMI,也可響應優(yōu)先權更高的INTR; 多個中斷同時發(fā)生,按優(yōu)先權從高到低響應。,(3)中斷類型碼的獲取,8086/8088的中斷系統(tǒng)是根據(jù)中斷類型碼從中斷向量表中取得中斷服務程序的入口地址的。 除法錯誤、單步中斷、非屏蔽中
20、斷、斷點中斷和溢出中斷由硬件邏輯電路自動提供中斷類型碼0 4; INT n指令的第二字節(jié)為中斷類型碼,因而指令中斷是從指令中直接獲得; 外部可屏蔽中斷由外部硬件電路在中斷響應時向CPU提供中斷類型碼。,(4)中斷響應過程,硬件中斷響應過程:,(4)中斷響應過程,INTR被響應時,CPU實際執(zhí)行的過程如下: CPU取得中斷類型碼后,左移兩位(4),存入內(nèi)部暫存器; FR入棧; IF置零,TF置零; CS入棧; IP入棧; 中斷向量低字送IP; 中斷向量高字送CS。,說明: 1、非屏蔽中斷和軟件中斷不需要從數(shù)據(jù)線上取類型碼,中斷響應過程從第二步開始。 2、非屏蔽中斷可打斷可屏蔽中斷。打斷點:可屏蔽
21、中斷執(zhí)行中斷處理程序前再次檢測是否有NMI中斷請求,如果有請求,進入NMI響應周期,否則,執(zhí)行中斷處理程序 。 3、中斷程序執(zhí)行后執(zhí)行:IP、 CS出棧-標志寄存器出棧,然后返回斷點繼續(xù)執(zhí)行原來程序。,三、中斷控制器8259A對外部中斷進行控制與管理的芯片,1、 8259A主要功能 2、 8259A基本構(gòu)成與引腳信號 3、 8259A工作過程 4、 8259A的工作方式 5、 8259A編程方法,三、中斷控制器8259A1、 8259A主要功能,(1)接受外部的中斷請求;,(2)管理外部的中斷請求(排隊、判優(yōu)、屏蔽、嵌套);,(3)向CPU產(chǎn)生中斷請求INTR及提供中斷類型號;,(4)進行中斷
22、結(jié)束處理;,(5)接受CPU命令。,2、8259A基本構(gòu)成與引腳信號,CPU側(cè):,DB0DB7;,外設側(cè):,IR0IR7;,級聯(lián):,8259A的基本構(gòu)成,中斷請求寄存器IRR:是一個8位寄存器,用于鎖存所有從IRi引腳輸入的中斷請求信號。 輸入線IR7IR0 分別連接8個中斷源的中斷請求信號,當中斷源有中斷請求時,在相應的IR引腳上送入有效信號,IRR中相應的位就置位,以鎖存該中斷請求信號。,中斷源,8259A的基本構(gòu)成,中斷屏蔽寄存器IMR:也是8位寄存器,用于存放對中斷請求的屏蔽信息,其內(nèi)容可編程設定。 IMR中的8個位對應IR7IR0這8個中斷請求,當IMR中某位被置位,對應的中斷請求就
23、被屏蔽,即IRR對應的位雖被置位,但不能送出它的中斷請求信號給CPU,由此實現(xiàn)對各中斷有選擇的屏蔽。,8259A的基本構(gòu)成,優(yōu)先權判別器PR:用于識別各中斷請求的優(yōu)先權級別,并進行優(yōu)先權管理。 各中斷請求的優(yōu)先權級別可以由CPU定義或修改。 若IRR有幾位被置位,且未被屏蔽,表明有多個中斷源同時申請中斷。則由PR經(jīng)過判斷確定最高優(yōu)先權的中斷請求,并在CPU響應周期內(nèi),將它送入ISR中相應的位。,中斷源,優(yōu)先權 判別器PR,8259A的基本構(gòu)成,中斷服務寄存器ISR:為8位寄存器,用于記錄已被CPU響應的中斷。 在中斷響應周期里,由PR根據(jù)IRR和IMR的狀態(tài),確定先被響應的中斷請求,送至ISR
24、,使相應的位被置位。,若ISR中有多個位被置位,是什么原因?,8259A的基本構(gòu)成,數(shù)據(jù)總線緩沖器:為8位雙向三態(tài)緩沖器,是8259A與CPU間數(shù)據(jù)傳輸?shù)耐ǖ馈?CPU通過數(shù)據(jù)總線緩沖器向8259A送初始化命令和操作命令字,或是讀取狀態(tài)信息。 在中斷響應周期,8259A通過數(shù)據(jù)總線緩沖器向CPU送出中斷類型碼。,8259A 基本構(gòu)成,讀/寫控制電路:其邏輯功能就是負責接收CPU發(fā)來的控制信號,完成規(guī)定的寫入命令操作以及讀IRR、ISR和IMR的操作。該片8259A的操作過程中,片選CS必須有效。,8259A的基本構(gòu)成,級聯(lián)緩沖/比較器:用于實現(xiàn)8259A的級聯(lián),構(gòu)成主從式中斷管理系統(tǒng),使中斷源
25、由8級擴展到64級。,8259A 的基本構(gòu)成,控制電路邏輯: 根據(jù)CPU編程設定的工作方式產(chǎn)生片內(nèi)控制信號,控制片內(nèi)的工作; 根據(jù)IRR、IMR的內(nèi)容和PR判斷結(jié)果,向CPU發(fā)出中斷請求; 接受來自CPU的中斷響應信號。,引腳功能,中斷請求輸入線IR7IR0接受來自外設或8259A從片的中斷請求信號。 可設置為上升沿觸發(fā)或高電平觸發(fā)。,引腳功能,雙向三態(tài)數(shù)據(jù)線D7D0 可與系統(tǒng)數(shù)據(jù)總線直接相連,稱為非緩沖方式工作; 也可通過總線緩沖器與系統(tǒng)數(shù)據(jù)總線相連,稱為緩沖方式工作。,引腳功能,中斷請求線INT,輸出信號,通常與CPU的可屏蔽中斷輸入端INTR相連,向CPU發(fā)送中斷請求信號。,引腳功能,接
26、收CPU在中斷響應周期發(fā)來的中斷響應信號,8259A接到此信號后,送上中斷類型碼; 中斷類型碼由編程設定。,中斷響應線,引腳功能,由CPU的高位地址線控制,低電平時,表示8259A被選中,允許CPU對8259A進行讀或?qū)懖僮鳎?高電平時,表示未選中該片。,片選線,引腳功能,地址線A0用以選擇8259A內(nèi)部不同寄存器。,引腳功能,當讀信號低電平時,允許8259A將中斷請求寄存器IRR、中斷服務寄存器ISR、中斷屏蔽寄存器IMR的內(nèi)容送上數(shù)據(jù)總線,供CPU讀取。,讀信號,引腳功能,寫信號低電平時,允許CPU將命令字寫入8259A。,寫信號,引腳功能,級聯(lián)線CAS2CAS0 在主從式中斷管理系統(tǒng)中,
27、全部8259A的CAS2CAS0與對應端相連。 作為主片的8259A,其CAS2CAS0為輸出線,在CPU響應中斷時,用來輸出級聯(lián)設備編碼,選中對應的從片; 作為從片的8259A,其CAS2CAS0為輸入線,接收來自主片的設備編碼。,引腳功能,非緩沖方式工作時,作為輸入線, *高電平時,表示該8259A為主片; *低電平時,表示該8259A為從片。 緩沖方式下工作時,作為輸出線,用于控制緩沖器接收和發(fā)送。,3、8259A工作過程,當有外部中斷請求時,8259A處理過程: (1)中斷請求寄存器IRR接受外部中斷請求并鎖存,當中斷屏蔽寄存器IMR為0時,則中斷請求進入優(yōu)先權判別器PR,由PR判斷是
28、否當前優(yōu)先權最高? 如果是,則8259A的INT為1,向CPU的INTR發(fā)出中斷請求;,3、8259A工作過程,8259A使中斷服務寄存器ISR的相應位置1,并將中斷請求寄存器IRR的相應位清零,再送出中斷類型碼到數(shù)據(jù)總線供CPU讀取,CPU讀取中斷類型號,轉(zhuǎn)移到到相應的中斷處理程序;,2)當CPU的中斷允許標志IF=1,CPU響應中斷, 發(fā)回中斷響應信號;,3、8259A工作過程,(3)若允許中斷嵌套,則由8259A的優(yōu)先權判別器PR依據(jù)中斷服務寄存器ISR中的狀態(tài),判斷新的中斷請求優(yōu)先權是否高于正在服務的中斷。 若是,則送出INT=1,向CPU的INTR發(fā)中斷請求信號,從而實現(xiàn)中斷嵌套。
29、(4)當中斷服務結(jié)束時,中斷處理程序向8259A送出中斷結(jié)束命令,使8259A清除ISR的相應位,從而結(jié)束一個中斷服務。,4、8259A的工作方式,8259A具有十分靈活的運行方式,可以通過編程設定工作方式,滿足用戶對中斷管理的不同要求。 主要工作方式: (1)中斷請求觸發(fā)方式 (2)屏蔽中斷源方式 (3)中斷優(yōu)先權設置方式 (4)中斷結(jié)束(EOI)方式 (5)連接系統(tǒng)總線方式 (6)中斷查詢方式 (7)級聯(lián)方式,(1)中斷請求觸發(fā)方式,電平觸發(fā) 邊沿觸發(fā),電平觸發(fā),8259A將中斷請求輸入線上出現(xiàn)高電平作為有效的中斷請求信號。 注意:當中斷請求輸入端出現(xiàn)一個高電平并得到CPU響應時,應及時撤
30、消信號。 否則,在CPU進入中斷處理過程,開放中斷后,會引起錯誤的第二次中斷。,邊沿觸發(fā),8259A將中斷請求輸入線出現(xiàn)的上升沿作為中斷請求信號。上升沿觸發(fā)后,可一直保持高電平,而不會產(chǎn)生重復觸發(fā)。,(2)屏蔽中斷源方式,普通屏蔽方式 特殊屏蔽方式,普通屏蔽方式,CPU對8259A的中斷屏蔽寄存器IMR寫入命令字OCW1,使IMR中的某個位或幾個位置1,對應的中斷請求就被屏蔽,從而不能被8259A送到CPU。 而IMR中被置0的那些位對應的中斷請求允許從8259A送到CPU。 對中斷屏蔽可以隨時修改,即通過對命令字OCW1的重新設置,實現(xiàn)對某些中斷的屏蔽。,特殊屏蔽方式,在中斷服務程序中,用命
31、令字OCW1對中斷屏蔽寄存器IMR中相應的位置1(對應CPU相應的中斷源位),且清除當前中斷服務寄存器ISR對應的位,屏蔽了本級中斷,從而開放低優(yōu)先權的中斷請求。 該方式在中斷服務程序中使用,用于中斷嵌套,實現(xiàn)在高優(yōu)先權的中斷服務程序中開放低優(yōu)先權的中斷請求。,(3)中斷優(yōu)先權設置方式,固定優(yōu)先級: 普通全嵌套方式 特殊全嵌套方式 循環(huán)優(yōu)先級: 優(yōu)先權自動循環(huán)方式 優(yōu)先權特殊循環(huán)方式,固定優(yōu)先級: 普通全嵌套方式,這是8259A最基本、最常用的工作方式,若對8259A初始化后沒有設置其它優(yōu)先權方式,則默認為此方式。 普通全嵌套方式中,8259A的8個中斷源請求的優(yōu)先權級別,按照IR0優(yōu)先權最高
32、、IR7優(yōu)先權最低的固定優(yōu)先權順序。 當一個中斷被響應后,只有比它高優(yōu)先權的中斷請求才會被響應。,固定優(yōu)先級:特殊全嵌套方式,與普通全嵌套方式基本相同:優(yōu)先權順序按照IR0優(yōu)先權最高、IR7優(yōu)先權最低的固定順序。 唯一不同在于:若CPU正在處理某一級中斷時,如果有同級的中斷請求,8259A也會送出中斷請求給CPU。 特殊全嵌套方式是對同級中斷的一種中斷嵌套。 一般用在8259A級聯(lián)的系統(tǒng)中,設定主片為特殊全嵌套方式。當從片的某中斷請求正在被處理時,如果同一從片又進入更高優(yōu)先級的中斷請求,主片仍然響應。 既開放主片上其他優(yōu)先權高的中斷請求,同時也開放了同一從片上的較高優(yōu)先權的中斷請求。,循環(huán)優(yōu)先
33、級:優(yōu)先權自動循環(huán)方式,一個系統(tǒng)的幾個中斷源的重要性差別不大,因而希望它的優(yōu)先權不是固定不變的。 優(yōu)先權自動循環(huán)方式下,優(yōu)先權順序是在變化的: 初始時,IR0為最高優(yōu)先權,IR7為最低優(yōu)先權; 當一個中斷被CPU響應后,它的優(yōu)先權自動降為最低的; 原在其下一級的中斷升為最高優(yōu)先權,其余循環(huán)類推。 假設,初始時有IR3中斷請求,且被CPU響應,當IR3的中斷服務結(jié)束后,IR3降為最低優(yōu)先權。 此時的優(yōu)先權順序變?yōu)椋篒R4、IR5、IR6、IR7、IR0、IRl、IR2、IR3。,循環(huán)優(yōu)先級:優(yōu)先權特殊循環(huán)方式,與優(yōu)先權自動循環(huán)方式相似:優(yōu)先權的順序是變化的,當一個中斷被CPU響應,它的優(yōu)先權自動
34、降為最低。 優(yōu)先權特殊循環(huán)方式中,初始最低優(yōu)先權是由編程設定的。 設編程時設定IR4為最低,則初始優(yōu)先權順序由高至低為:IR5、IR6、IR7、IR0、IRl、IR2、IR3、IR4。,(4)中斷結(jié)束方式(EOI,End of Interrupt ),當一個中斷請求被響應,8259A在中斷服務寄存器ISR的相應位置1。 當中斷服務結(jié)束時,必須將ISR中相應的位清0,進行中斷結(jié)束操作。 自動中斷結(jié)束方式(AEOI) 非自動結(jié)束方式(EOI): 普通中斷結(jié)束方式 特殊中斷結(jié)束方式,自動中斷結(jié)束方式,CPU一旦進入中斷響應周期,8259A就自動將當前中斷服務寄存器ISR中相應的位清0。 自動中斷結(jié)束
35、方式通常用在無中斷嵌套的場合。這時,盡管CPU正在為某個中斷源服務,但在8259A的ISR中沒有對應位置1,就會出現(xiàn)低優(yōu)先權中斷打斷高優(yōu)先權中斷的情況。,非自動結(jié)束方式(EOI):普通中斷結(jié)束方式,普通中斷結(jié)束方式用在普通全嵌套情況下。 在中斷服務結(jié)束時,必須由CPU用OUT指令發(fā)來一個普通EOI命令,8259A收到后,將當前中斷服務寄存器ISR中的已置1的最高優(yōu)先權的位復位。,非自動結(jié)束方式(EOI):特殊中斷結(jié)束方式,特殊中斷結(jié)束方式多用于優(yōu)先權循環(huán)情況下。 由CPU在中斷服務結(jié)束時,發(fā)出一條特殊EOI命令,指明要清除ISR中的哪一位。 注意:在級聯(lián)方式下,一般不用自動EOI方式,而用普通
36、中斷結(jié)束或特殊中斷結(jié)束方式。,(5)連接系統(tǒng)總線方式,非緩沖方式用于一片或幾片較小系統(tǒng),緩沖方式用于多片級聯(lián)大系統(tǒng)。,(6)中斷查詢方式,8259A提供了中斷查詢方式。 這種方式下,外設仍然靠中斷請求要求服務,但CPU不是通過對中斷請求的響應,而是靠主動查詢實現(xiàn)對外設的服務。 在CPU為關中斷情況下,外設的中斷請求信號不被響應,但CPU可以通過查詢方式檢查請求中斷的外設,獲取中斷請求信號,從而進入中斷服務。,查詢過程:用輸出指令把“查詢方式命令字”送到8259A,然后對8259A執(zhí)行一條輸入指令,8259A便將一個8位查詢字送到數(shù)據(jù)總線上。CPU讀取查詢字,利用程序判斷有無中斷請求。若有,便根
37、據(jù)查詢字低三位數(shù)據(jù)值轉(zhuǎn)移到對應的中斷服務程序去。 查詢字格式:IW2W1W0 I=1表示有中斷請求,I=0表示有無中斷請求。 W2W1W0表示8259A請求服務的最高優(yōu)先級編碼。,(7)級聯(lián)方式,8259A可以級聯(lián)使用,一個主8259A可以最多帶8個從8259A,將中斷源擴展到64級。,5、8259A編程方法,8259A為可編程的中斷控制器,它的工作狀態(tài)和操作方式是由接收CPU的命令而確定的。,命令有兩類:,初始化命令字: 8259A的啟動必須先通過編程(初始化程序)寫入初始化命令字,使它處于工作起始狀態(tài);初始化命令字設定后,在整個系統(tǒng)工作過程中保持不變;,操作命令字用來控制8259A執(zhí)行不同
38、的操作方式。由應用程序設定的,用來對中斷處理過程實現(xiàn)動態(tài)控制。在8259A工作期間的任何時刻都可設置操作命令字,允許重置操作命令字動態(tài)地改變8259A的操作方式。,8259A 有兩個端口地址, 是2個連續(xù)端口地址,其中一個奇地址,一個偶地址,且偶地址較低,奇地址較高。 A0為端口選擇引腳,用于指示8259A的哪個端口被訪問。,I,A,初始化命令字,8259A在使用前首先必須對它進行初始化,使其處于預定的初始狀態(tài), 初始化過程:按照固定的順序進行。ICW1、ICW2必須寫,ICW3、ICW4視具體情況而定。,ICW1寫入8259A的偶地址中(A0=0)。,ICW2 ICW4寫入8259A的奇地址
39、中(A0=1)。,ICW1格式:芯片控制初始化,D41特征位,表示設置的是ICW1 A00,表示輸入8259A低地址端口;,ICW2格式:設置中斷類型號基值,ICW2用于設置中斷類型碼。 A01,表示輸入8259A高地址端口。,例: ICW2寫入20H,中斷類型碼為20H27H; ICW2寫入40H,中斷類型碼為40H47H; ICW2 寫入45H,中斷類型碼仍為40H47H.,中斷類型碼=(T7T3)+ 中斷源引入管腳編號,ICW3格式:主從片標志(級聯(lián)方式結(jié)構(gòu)設置),需要分別對主片和從片進行設置。,主片:S7S0分別對應相應的IR號的引腳,為1的位對應的引腳接有從片;,從片:ID2ID1的
40、編號是該從片接到主片的IR引腳的IR號。,當ICW1中D11,單片使用,不需要ICW3; 當ICW1中D10 ,表示8259A工作于級聯(lián)方式,必須設置ICW3。,級聯(lián)方式結(jié)構(gòu):,8259主從級聯(lián),主 片ICW3:14H,從片1 ICW3 :04H,從片2 ICW3 :02H,ICW4格式:方式控制,當ICW1的D0 =1,需要設置ICW4。,D3:BUF,若BUF1,則8259A在緩沖方式下工作;若BUF 0,則8259A在非緩沖方式工作下。D2:M/S,當BUF1,且M/S1時,此8259為主片;當BUF 1,但M/S0時,此8259為從片。若BUF0, M/S 無效。,初始化命令字(總結(jié))
41、,ICW1必須寫入8259A的偶地址端口; ICW2ICW4必須寫入8259A的奇地址端口; ICW1ICW4的初始化順序是固定的,不可顛倒; ICW1和ICW2對每個8259A是必須設置的,而ICW3和ICW4是可選的,由ICW1預先指明;,在級聯(lián)情況下,不管是主片還是從片,都需設置ICW3。,主片的ICW3每一位指明IR0IR7管腳的連接情況; 從片的ICW3高五位為“0”,低三位是該從片的標示碼。,例題,單片8259A的端口地址是80H和81H,采用邊沿觸發(fā),普通嵌套方式,緩沖方式,非自動中斷結(jié)束方式,需要ICW4,中斷類型碼是18H1FH,請對8259A進行初始化。,例題,解:其初始化
42、程序如下: MOV AL,13H;設置ICW1=0001 0011,即采用邊沿 ;觸發(fā),單片,需要ICW4 OUT 80H,AL;ICW1寫入地址A0=0 MOV AL,18H;ICW2=0001 1000,確定ICW2的高5位 OUT 81H,AL;ICW2寫入地址A0 =1 MOV AL,0DH;ICW4=0000 1101,即普通嵌套方式, ;緩沖方式,非自動中斷結(jié)束方式,用 ;于8086/8088 OUT 81H,AL;ICW4寫入地址A0 =1 ,單片8259A的端口地址是80H和81H,采用邊沿觸發(fā),普通嵌套方式,緩沖方式,非自動中斷結(jié)束方式,需要ICW4,中斷類型碼是18H1FH
43、,請對8259A進行初始化。,單片不需ICW3,需要ICW4,操作命令字,向8259A寫入初始化命令字后,8259A就處于設定的工作狀態(tài),隨時準備接受中斷請求信號,按要求管理中斷。并自動進入操作命令狀態(tài),在任何時刻都可以設置操作命令字,選擇其不同的操作方式; 操作命令字用于規(guī)定中斷屏蔽、中斷結(jié)束、優(yōu)先權循環(huán)和中斷狀態(tài)的讀出和查詢等等。 操作命令字有三個,根據(jù)需要輸入,無需按順序,但是對端口地址有嚴格要求,即OCW1必須寫入8259的奇地址端口,OCW2和OCW3必須寫入8259的偶地址端口。 OCW1 OCW2 OCW3,OCW1:設置和清除中斷屏蔽寄存器,OCW1的功能用來動態(tài)地設置中斷源的屏蔽狀態(tài)。,假設,OCW133H, 表示IR5、 IR4、 IR1、 IR0引腳上的中斷被屏蔽,其余中斷請求允許;,OCW2:設置優(yōu)先級循環(huán)方式和中斷結(jié)束方式,A0=0,表示必須寫入的偶地址。 D4D3=00是OCW2特征位。,R、S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實木及實木復合地板備料工安全生產(chǎn)能力知識考核試卷含答案
- 加氣混凝土制品工崗前基礎應用考核試卷含答案
- 水力發(fā)電運行值班員安全風險知識考核試卷含答案
- 2025年空氣和廢氣監(jiān)測儀器項目發(fā)展計劃
- 2025年水分濕度傳感器合作協(xié)議書
- 2025年射頻同軸電纜組件項目合作計劃書
- 2025年光學纖維面板系列項目發(fā)展計劃
- 2025 小學一年級科學下冊認識水果的種子課件
- 狍子介紹教學課件
- 2026年航空發(fā)動機高溫合金項目建議書
- 2025年國防科工局機關公開遴選公務員筆試模擬題及答案
- 2024-2025學年山東省濟南市天橋區(qū)八年級(上)期末語文試卷(含答案解析)
- (高清版)DB44∕T 724-2010 《廣州市房屋安全鑒定操作技術規(guī)程》
- 2025職業(yè)健康培訓測試題(+答案)
- 供貨流程管控方案
- 《實踐論》《矛盾論》導讀課件
- 中試基地運營管理制度
- 老年病康復訓練治療講課件
- DB4201-T 617-2020 武漢市架空管線容貌管理技術規(guī)范
- 藥品追溯碼管理制度
- 腳手架國際化標準下的發(fā)展趨勢
評論
0/150
提交評論