微機原理:第九章 中斷_第1頁
微機原理:第九章 中斷_第2頁
微機原理:第九章 中斷_第3頁
微機原理:第九章 中斷_第4頁
微機原理:第九章 中斷_第5頁
已閱讀5頁,還剩122頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第九章中斷與中斷管理中斷原理中斷系統組織及其功能中斷源識別及中斷優先級8086中斷系統8086CPU的中斷管理可編程中斷控制器8259A第九章中斷與中斷管理快速的CPU與慢速的外設之間數據傳送查詢方式中斷方式9.1中斷原理9.1.1從無條件傳送、條件傳送到中斷傳送

條件傳送的缺點是CPU花大量的時間對狀態線進行查詢,降低了整個系統的工作效率。具有中斷功能的CPU中,有硬件部件專門用于檢測外設的狀態線。

查詢方式中斷方式INTE&STBIBFINTRRD數據A/B口1

9.1.2中斷概念

9.1.2中斷概念在中斷傳送方式下,當外部設備準備好向CPU傳送數據(或者接收CPU的數據),或者有某些緊急情況要求處理,或者是定時時間到等等,外設向CPU發出中斷請求,CPU接收到請求并在一定條件下,暫停執行原來的程序而轉去中斷處理,處理好中斷服務再返回來執行原來程序,這就是中斷。

9.1.3中斷應用一、實時故障處理存儲器出錯檢測電路二、分時操作,同時處理多個外設同時工作。CPU在不同的時間為不同的外設服務,極大地發揮了CPU高速性的特點。處理任務1處理任務2處理任務39.1.3中斷應用9.2中斷系統組成及其功能9.2.1與中斷有關的觸發器1、中斷請求觸發器兩個特點:在滿足一定條件的情況下把中斷請求信號發送給CPU,并在CPU未響應時一直保持下去;當CPU滿足一定條件下響應了該中斷請求,執行了相關的操作后,該中斷請求信號被撤銷。

中斷請求觸發器8255A工作在方式1——輸入

選通信號,有效時,外設把數據打入端口的輸入緩沖器

端口的輸入緩沖器“滿”信號。

中斷請求。有效時,8255A的向CPU申請中斷,要求CPU從端口取數

中斷允許

INTE&STBIBFINTRRD數據A/B口1STB數據鎖存INTR

9.2.1與中斷有關的觸發器2、中斷屏蔽觸發器決定中斷請求觸發器的輸出信號是否可以作為中斷請求信號發送給CPU,通過對中斷屏蔽觸發器的設置就可以控制中斷源的。中斷屏蔽觸發器8255A工作在方式1——輸入

選通信號,有效時,外設把數據打入端口的輸入緩沖器

端口的輸入緩沖器“滿”信號。

中斷請求。有效時,8255A的向CPU申請中斷,要求CPU從端口取數

中斷允許

INTE&STBIBFINTRRD數據A/B口1MOVAL,00001001;允許中斷MOV控制口,ALMOVAL,00001000;屏蔽中斷MOV控制口,AL

9.2.1與中斷有關的觸發器3、CPU內部的中斷允許觸發器IFCPU通過對它進行設置來決定是否對中斷請求信號進行響應。中斷檢測IF中斷邏輯INTRCLIIF0關中斷STIIF1

開中斷8086CPU設置了兩種中斷類型:可屏蔽中斷和不可屏蔽中斷。可屏蔽中斷受中斷允許觸發器控制,只有當IF為1時,CPU才能響應中斷請求信號。不可屏蔽中斷不受中斷允許觸發器的控制,只要中斷請求信號有效,CPU就響應。優先級高于于可屏蔽中斷。

中斷檢測IF中斷邏輯INTRNMI不可屏蔽中斷可屏蔽中斷9.2.2中斷條件外設的中斷請求信號要得到CPU的響應,必須要滿足如下兩個條件:1、中斷屏蔽觸發器處于非屏蔽狀態。2、CPU是開中斷的(IF=1)中斷響應中斷屏蔽FF中斷允許FFCPU內的中斷邏輯中斷申請信號INTR9.2.2中斷響應過程主要包括三個方面外設發中斷請求信號給CPU即中斷請求CPU對中斷請求信號所作出的反應即中斷響應CPU執行對外設操作的子程序即中斷處理。一、中斷請求中斷屏蔽觸發器狀態為1(允許),中斷請求觸發器輸出中斷請求信號。二、中斷響應CPU響應可屏蔽中斷申請必須滿足的條件:①

無總線請求;②

CPU被允許中斷(IF=1);③

CPU執行完現行指令.

三、中斷處理CPU響應中斷后要自動完成三項任務

1、關閉中斷(IF=0);

2、CS、IP以及FR的內容推入堆棧;

3、中斷服務程序段地址送CS中,偏移地址送IP中(轉入中斷服務程序)。 pushax ;1、保護現場

…… pushbx sti ;2、開中斷

…… ;3、中斷處理

cli ;4、關中斷

popbx ;5、恢復現場

…… popax sti ;6、開中斷和中斷返回

iret 中斷服務程序的結構9.3中斷源識別及中斷優先權

在中斷系統中CPU如何識別發出的中斷申請的中斷源?如何正確地轉到相應的中斷服務程序?確定中斷源的方法被稱為中斷源識別或中斷方式。

ABCCPUINTR中斷源識別包括兩個方面:

1、確定中斷源,

2、找到該中斷服務程序的首地址。9.3.1中斷源識別一、查詢中斷查詢中斷程序IN AL,IPORT ;從輸入接口取中斷信息TEST AL,80H ;是0號設備請求嗎?JNZ SEV0 ;是,轉0號設備服務程序TEST AL.40H ;否,是1號設備請求嗎?JNZ SEV1 ;是,轉1號設備服務程序TEST AL.20H ;否,是2號設備請求嗎?JNZ SEV2 ;是,轉2號設備服務程序TEST AL.10H ;否,是3號設備請求嗎?JNZ SEV3 ;是,轉3號設備服務程序條件傳送=查詢中斷?9.3.1中斷源識別二、矢量中斷中斷申請信號INTR和中斷響應信號INTA是一對握手信號。中斷請求表示外設請求CPU為之服務。中斷響應表明CPU可以為這個外設服務,同時要求外設提供中斷類型號。例:中斷類型號80H接口CSTGs中斷類型號00_07H接口

9.3.2中斷優先權一、軟件方案 軟件查詢確定優先權的缺點是,響應中斷慢二、硬件方案1、鏈形電路 利用外設在系統中的物理位置來決定其中斷優先權的中斷申請中斷申請中斷申請中斷允許入IEI=1,允許發中斷中斷允許出IEO=IEI&INTR0001易受電路延遲影響!二、硬件方案2、編碼電路

74LSl48是一個8到3線的優先權編碼器.I0I1I7000I0I1I7I0I1I7001中斷申請信號級聯控制信號I7優先級最高9.48086中斷系統8086中斷系統有兩大類型的中斷源:一類是由外部設備產生的中斷,稱為硬件中斷,又稱外中斷。硬件中斷又分為不可屏蔽中斷和可屏蔽中斷,通過CPU芯片的INTR管腳或NMI管腳從外部引入的。一類是由指令在某種運行結果時產生的中斷,稱為軟件中斷。

INT_PROCPROCFAR PUSHAX … POPAX IRET

?中斷類型號和中斷服務子程序的入口地址之間的關系是什么?根據中斷類型號查中斷矢量表即中斷服務程序首地址表9.4.1不可屏蔽中斷不可屏蔽中斷就是用戶不能通過CPU內的中斷允許觸發器IF控制的中斷。由8086CPU的NMI管腳引入。NMI中斷請求采用上升沿觸發方式,這種中斷一旦產生,在CPU內部直接生成中斷類型號02。不可屏蔽中斷響應過程9.4.2可屏蔽中斷可屏蔽中斷就是用戶可以控制的中斷,通過對CPU內的中斷允許觸發器IF的設置來禁止和允許CPU響應中斷。可屏蔽中斷由8086CPU的INTR管腳引入。這種中斷請求需要設備提供中斷類型號。可屏蔽中斷響應過程9.4.3軟件中斷軟件中斷是由8086指令系統中的某些指令產生,或由這些指令運行后某種特定的結果產生。1、除法中斷當進行除法運算時,若除數為0或除數太小,使得商數大于相應寄存器所能表示的最大值,被稱作除法出錯。這時除法指令就相當于一個中斷源,它向CPU發出類型0中斷。2、溢出中斷當算術運算產生溢出時,將在INTO指令控制下向CPU發出類型4的中斷,即溢出中斷。 例如

moval,40h addal,40h

intoDATA SEGMENTADD1 DB ?ADD2 DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX

MOVAX,0 MOVES,AX ;置附加段基地址 MOVDI,4*4 ;置附加段偏移地址 MOVAX,OFFSETINTO1;置中斷程序的偏移地址 CLD STOSW ;填偏移地址到中斷地址表 MOVAX,CS ;置中斷程序的段基地址 STOSW MOV BL,0 MOV AL,ADD1 ADD AL,ADD2 INTO MOV AX,4C00H INT 21HINTO1 PROC PUSH AX MOVBL,0FFH POP AX IRET INTO1 ENDP CODE ENDS END3、單步中斷和斷點中斷(1)單步中斷當8086CPU的標志寄存器中的TF標志為1時,8086CPU處于單步工作方式,這時CPU在每條指令執行后自動產生類型l的中斷。

(2)斷點中斷INT3指令

4、軟中斷軟中斷是由中斷指令引起的。中斷指令的指令格式為

INTn

,操作數n就是中斷類型號。當CPU執行完畢中斷指令INTn后,就會立即產生一個中斷類型號為n的中斷。

intncallfar[4*n]9.4.4中斷概念的再討論中斷與調子程序之間的關系1、類似:中斷過程也是一個調用中斷服務程序的過程。2、差別,調用子程序的過程是一個無條件過程,中斷過程的中斷服務程序的調用一般是有條件的。子程序調用在整個程序執行中的時間是確定的。但硬件中斷過程,在整個程序執行的時間是不確定的、隨機的。

……MOVAL,10MOVBX,100……MOVBL,100ADDAL,BL……INTnINTn9.58086CPU的中斷管理9.5.18086CPU的中斷處理順序8086CPU的中斷優先權排列從高到低為:1、除法出錯中斷,溢出中斷,INTn;2、NMI;3、INTR;4、單步中斷。9.5.28086CPU的中斷服務入口地址表已知中斷程序int_proc和中斷類型號n int_procfar push

… iret int_procendpCPU中斷類型號n?9.5.28086CPU的中斷服務入口地址表已知中斷程序int_proc和中斷類型號n int_procfar push

… iret int_procendpCPU中斷類型號n把地址int_proc放到4*n開始的單元9.5.28086CPU的中斷服務入口地址表9.5.3中斷入口地址設置一、用串指令

CLI ;關中斷MOVAX,0MOVES,AX ;置附加段基地址MOVDI,n*4 ;置附加段偏移地址MOVAX,OFFSETINT_VCE;置中斷程序的偏移地址CLD STOSW

;填偏移地址到中斷地址表MOVAX,SEGINT_VCE ;置中斷程序的段基地址STOSW

;填段基地址到中斷地址表STI ;開中斷

……

二、用偽指令INT-TBL SEGMENTAT0 ;定義INT-TBL段,段基地址為0 ORGn*4 ;指定偏移地址

DDINT—VCE ;存中斷程序入口地址INT-TBL ENDS

……

;其他處理

MCODE SEGMENT ;主程序

……

;其他處理

INT—VCEPROCFAR ;中斷類型n的服務程序

…… IRETINT—VCE ENDP

……

三、用系統調用 使用25H功能:

AL=中斷類型號

DS:DX=中斷服務程序首地址的段、偏移地址

注意DS保護

PUSHDS MOVDX,SEGINT60H ;段基地址送DS MOVDS,DX MOVDX,OFFSETINT60H ;偏移地址送DX MOVAL,60H ;中斷類型號送AL MOVAH,25H INT21H ;25H功能調用

POPDS四、直接裝入法若外設的中斷類型號為6BH,則此中斷類型號對應的中斷矢量表地址為從00lACH開始的四個存儲單元.設中斷服務程序段地址是1000H,偏移地址為2000H。 MOVAX,,0 MOVDS,AX ;置數據段段基地址為0 MOVAX,2000H MOV[01ACH],AX ;對偏移地址為01AC的單元

MOVAX,1000H ;送雙字

MOV[01ACH+2],AX9.6可編程中斷控制器8259外設狀態線CPUINTR發中斷申請信號中斷屏蔽觸發器發中斷矢量中斷優先權排隊中斷控制器9.6.18259A的內部結構及引腳1、8259A的內部結構單級8259級聯8259中斷服務寄存器中斷請求寄存器IR0IR1IR7IR2IR3IR4IR5IR6IR0IR1IR2IR3IR4IR5IR6IR78259邏輯圖2.8259A的引腳

CS:片選信號。

WR:寫信號。

RD:讀信號。D7D0:雙向、三態數據線。

IR7IR0:中斷請求信號。

INT:8259A向CPU發出的中斷請求信號。

INTA:中斷響應信號。CAS0CAS2:級聯總線,輸入或輸出,用于區分特定的從控制器件。8259A作為主控制器時,該總線為輸出,作為從控制器時,為輸入。

SP/EN:從片/允許緩沖信號,輸入或輸出,該引腳為雙功能引腳。9.6.28259A的中斷管理方式一、中斷優先權管理1.完全嵌套方式

8259A的中斷請求具有固定的優先權排隊順序,IR0為最高優先級,IR1為次高優先級,依次類推,IR7為最低優先級。

2.特殊全嵌套方式當處理某一級中斷時,如果有同級的中斷請求,那么,也會給予響應,從而實現一種對同級中斷請求的特殊嵌套。特殊全嵌套方式一般用在8259A級連的系統中。

3.自動循環方式IR0—IR7的中斷輪流具有最高優先權。初始優先級隊列規定為IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7如果IR0端正好有中斷請求,處理完后

IR1>IR2>IR3>IR4>IR5>IR6>IR7>IR0如果IR4端正好有中斷請求,處理完后

IR5>IR6>IR7>IR0>IR1>IR2>IR3>IR4

4.優先級特殊循環方式最低優先級是由編程確定的,從而最高優先級也由此而定。比如定IR5最低,則IR6最高

IR6>IR7>IR0>IR1>IR2>IR3>IR4>IR5

有兩種方法:

1、普通屏蔽方式。

2、特殊屏蔽方式。 系統正在處理高級中斷時,可以響應低級別中斷二、中斷屏蔽方式三、8259A中斷結束的管理方式三種中斷結束方式:自動EOI方式

/INTA清除中斷服務寄存器高級別位一般EOI方式 程序對8259發中斷結束命令,清除中斷服務寄存器高級別位特殊EOI方式

程序對8259發中斷結束命令,清除中斷服務寄存器指定位四、中斷觸發方式電平觸發方式以IR端上出現的高電平作為中斷請求信號。請求一旦被響應,該高電平信號應及時撤除。

邊沿觸發方式以IR端上出現由低電平向高電平的跳變作為中斷請求信號,跳變后高電平一直保持,直到被響應。

五、與系統總線的連接方式

1)緩沖方式主要用于多片8259A級聯的大系統中。8259A通過總線收發器(如8286)和數據總線相連。

2)非緩沖方式主要用于單片8259A或片數不多的8259A級聯的系統中。8259A直接與數據總線相連,9.6.38259A的編程與應用8259A的工作方式和操作方式由CPU發命令字進行控制。分兩類——初始化命令字ICW和操作命令字OCW。計算機啟動時,用初始化程序設定ICW,建立8259A操作的初始狀態。OCW用于動態控制中斷,是在需要改變或控制8259A操作時隨時發送的。注意,當發出ICW或OCW時,CPU中斷申請引腳INTR應關閉(使用CLI指令)。初始化命令字初始化開始級連否觸發方式用ICW4否中斷類型碼從片識別碼特殊嵌套否緩沖否自動EOI否寫ICW1寫ICW2級連嗎?需ICW4?

主片嗎?是否寫ICW3(連從片否)是寫ICW3否寫ICW4是結束否1.初始化命令字

1)?ICW1設置工作方式。

XXXX2)?ICW2

設置中斷類型號。中斷類型號T7--T38086系統中,只需設置中斷類型號的高5位,低三位由8259A根據中斷請求來自IR0IR7的哪一個輸入端,自動填充(000111)。例如,在PC/XT中ICW2為00001000B,則從IR0——IR7上引入的各中斷請求,其相應的中斷類型號為08H、09H、0AH、0BH、0CH、0DH、0EH和0FH。3)?ICW3

設置級聯

只有系統中有級聯時,才寫入ICW3。對于主片,指明了IR0IR7各引腳連接從片的情況,置1的位表示對應的引腳有從片級聯。對于從片,用D2D0表示與主片的對應引腳級聯,例如,若某從片ICW3的內容為07H,說明該從片的INT引腳與主片的IR7相連。

4)?ICW4設置8259A的工作方式。

2.操作命令字

系統初始化完成以后,可以在應用程序中隨時向8259A送操作命令字,以改變8259A的工作方式,讀出8259A內部寄存器的值等。

1)?OCW1

設置和清除中斷屏蔽寄存器的相應位。

例如,要屏蔽IR0和IR1上的中斷請求,OCW1=03H

2)?OCW2設置優先級循環方式和中斷結束方式。

3)?OCW3功能有三個方面:設置和撤消特殊屏蔽方式設置中斷查詢方式設置對8259A內部寄存器的讀出。

查詢方式下,8259A不使用INT向CPU發請求,CPU用軟件查詢的方法,確認優先級最高的中斷源,從而實現對外設的服務。中斷查詢方式工作過程:CPU關中斷(IF=0),先向259A發查詢命令,選擇查詢方式;再從同一個地址讀入查詢字,由該指令產生的RD信號使ISR的相應位置1。查詢字格式I----W2W1W0I=1,表示有中斷請求W2W1W0組成的代碼表示優先級最高的中斷請求CPU讀入查詢字后,判斷其最高位,若最高位為1,說明8259A的IR端已有中斷請求輸入,此時該查詢字的低三位組成的代碼表示了當前中斷請求的最高優先級,CPU據此轉入相應的中斷服務程序。

8259A的讀操作在PC機中8259A的端口地址為20H和21H。常用的讀操作有如下幾種。

(1)讀出IRR的值:先向20H端口寫0AH(OCW3RR=1、RIS=0),再讀20H端口。例如:

MOV AL,0AH ;OCW3=0AHOUT 20H,AL ;OCW3寫入8259AIN AL,20H ;讀出IRR內容(2)讀出ISR的值:先向20H端口寫0BH(OCW3RR=1、RIS=1),再讀20H端口。例如:

MOV AL,0BH ;OCW3=0BHOUT 20H,AL ;OCW3寫入8259AIN AL,20H ;讀出ISR內容(3)讀查詢字(讀出最高級別的中斷請求IR):先向20H端口寫0CH(OCW3P=1),再讀20H端口。例如:

MOV AL,0CH ;OCW3=0CHOUT 20H,AL ;OCW3寫入8259AIN AL,20H ;讀出查詢字內容(4)讀IMR的值。隨時可用奇地址讀IMR的值,并對其作修改。例1:IN AL,21H ;讀IMRAND AL,7FH ;開放IR7中斷OUT 21H,AL ;修改IMR

例2:IN AL,21H ;讀IMROR AL,80H ;關閉IR7中斷

OUT 21H,AL ;修改IMR3、8259應用舉例

中斷傳送方式的設計過程: 一、硬件方面: 根據硬件電路確定芯片地址,選擇中斷類型號。 二、軟件方面:分主程序和中斷子程序 中斷子程序:編寫中斷服務子程序。 主程序: 1、關中斷;

2、填寫中斷入口地址表;

3、初始化8259A及其他編程芯片;

4、開中斷;

例:初始化編程8259定義為:上升沿觸發、單片、中斷類型號C0HC7H、一般EOI方式、完全嵌套方式、屏蔽IR0——IR6;地址84H,86HINTRRUP SEGMENT AT0 ORG 0C7H*4 DD INTR_IR7MAIN SEGMENT CLI MOV AL,00010011B OUT 84H,AL MOV AL,0C0H OUT 86H,AL MOV AL,00000001B OUT 86H,AL MOV AL,01111111B OUT 86H,AL STI INTR_IR7: ……MOV AL,20HOUT 84H,ALIRET例如,PC/AT機中的8259A主片定義為:上升沿觸發、在IR2級聯從片、有ICW4、非AEOI方式、中斷類型號08H0FH、一般的中斷嵌套方式、端口地址是20H、21H;從片定義為:上升沿觸發、級聯到主片的IR2、有ICW4、非AEOI方式、中斷類型號為70H78H、一般的中斷嵌套方式、端口地址是A0H、A1H。初始化過程如下:

初始化主片

MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,04H OUT 21H,AL MOV AL,01H OUT 21H,AL

初始化從片

MOV AL,11H OUT 0A0H,AL MOV AL,70H OUT 0A1H,AL MOV AL,02H OUT 0A1H,AL MOV AL,01H OUT 0A1H,AL9.7PC機硬件中斷9.7.1中斷設置在PC/XT機中,有一片8259A中斷控制芯片,可管理8個中斷源。在PC/AT機中有兩片8259A中斷控制芯片,可管理15個中斷源。9.7PC機硬件中斷優先權

主片:IR0,IR1

從片:IR0,IR1,IR2,IR3,IR4,IR4,IR5,IR6,IR7

主片:IR3,IR4,IR5,IR5,IR7中斷類型號主片:00H-07H從片:70H-77H9.7PC機硬件中斷9.7.2PC機中斷資源的使用一、對中斷屏蔽寄存器的操作主片8259A中斷屏蔽寄存器的端口地址是21H。某位為0表示允許中斷,為1表示屏蔽(禁止)。從片8259A中斷屏蔽寄存器的端口地址是A1H例如,只允許鍵盤中斷,可設置如下中斷屏蔽字:

MOVAL,11111101B OUT21H,AL如果系統重新增設鍵盤中斷.則可用下列指令實現:

INAL,21H ANDAL,11111101B O

溫馨提示

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

評論

0/150

提交評論