CH9 微型計算機中斷系統(tǒng)_第1頁
CH9 微型計算機中斷系統(tǒng)_第2頁
CH9 微型計算機中斷系統(tǒng)_第3頁
CH9 微型計算機中斷系統(tǒng)_第4頁
CH9 微型計算機中斷系統(tǒng)_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1第九章 第九章 微型計算機中斷系統(tǒng)9-1 概述9-2 中斷處理過程9-3 中斷優(yōu)先級和中斷嵌套9-4 可編程中斷控制器8259A教材第七章內(nèi)容2第九章9-1 概述 一、中斷概念1、中斷思想的提出uCPU與外設(shè)數(shù)據(jù)傳送時的矛盾:高速CPU與慢速外設(shè);u數(shù)據(jù)傳送方式:無條件方式、查詢方式 缺點: 外設(shè)有限制或處理器運行時間極大浪費,工作效率低。 解決辦法: 一方面設(shè)法提高外設(shè)的工作速度; 另一方面提出設(shè)想: 外設(shè)主動提出請求,處理器響應(yīng)處理中斷思想3第九章2、中斷的定義uCPU正常運行程序時,由于CPU的內(nèi)部事件或外設(shè)請求,引起CPU暫時中斷正在運行的程序,轉(zhuǎn)去執(zhí)行相應(yīng)的外設(shè)(或內(nèi)部事件)的服務(wù)

2、程序,程序執(zhí)行完后又返回到原先的程序繼續(xù)執(zhí)行,這一過程稱為中斷。u中斷流程如下頁圖所示4第九章5第九章3、使用中斷的好處u分時操作 提高效率 CPU在啟動外設(shè)后與外設(shè)同時工作。當(dāng)外設(shè)的數(shù)據(jù)準(zhǔn)備好向CPU發(fā)中斷請求,CPU響應(yīng)處理。CPU可讓多個外設(shè)同時工作,這將加快數(shù)據(jù)傳送速度、提高CPU的效率。u實現(xiàn)實時處理 實時控制時,現(xiàn)場各種信息可隨時發(fā)出中斷請求u故障自行處理 將計算機在運行的過程中常遇到的意外情況,如:電源突跳,存儲器出錯,運算溢出等設(shè)計成中斷,計算機可利用中斷系統(tǒng)自行處理或告警。6第九章4、與中斷相關(guān)的基本概念u中斷源u中斷類型號u中斷請求u中斷響應(yīng)u中斷服務(wù)程序u中斷返回u中斷向

3、量u中斷向量表u中斷優(yōu)先級u中斷嵌套u中斷屏蔽7第九章5、中斷系統(tǒng)的基本功能(1)中斷響應(yīng),中斷服務(wù),中斷返回,中斷屏蔽;(2)中斷優(yōu)先級排隊;(3)中斷嵌套。注意:u 這些功能是由軟件與硬件共同構(gòu)成的系統(tǒng)完成的。u 本章討論與8086/8088CPU相配合的中斷系統(tǒng)8第九章 二、中斷的分類(中斷源的分類)u8086/8088可以處理256種不同的中斷。u兩類:內(nèi)部中斷和外部中斷。u中斷源示意圖如下圖:8259A可屏蔽可屏蔽中斷請求中斷請求中斷邏輯中斷邏輯INTO指令指令I(lǐng)NT n指令指令除法除法出錯出錯單步單步(TF=1)非屏蔽中斷請求非屏蔽中斷請求8086/8088CPUNMIINTR內(nèi)部

4、中斷內(nèi)部中斷外部中斷外部中斷可屏蔽中斷可屏蔽中斷非屏蔽中斷非屏蔽中斷9第九章 1、外部中斷(硬件中斷)u不可屏蔽中斷NMI 不能用軟件屏蔽,CPU必須響應(yīng); 上升沿觸發(fā); 中斷的類型號為2。u可屏蔽中斷INTR IF=1,CPU響應(yīng)中斷;IF=0,CPU不響應(yīng); 高電平觸發(fā),高電平維持到CPU響應(yīng)中斷時結(jié)束; 中斷類型號由中斷控制器8259A或硬件電路提供。10第九章2、內(nèi)部中斷(軟件中斷) 由三種情況引起:u由軟中斷指令I(lǐng)NT n引起 INT n指令,類型號n(0-255)。u由CPU運算錯誤引起 除法錯中斷:類型號0 溢出中斷:類型號4,由INTO指令引起的中斷;11第九章2、內(nèi)部中斷(軟

5、件中斷)(續(xù))u由調(diào)試程序debug設(shè)置的中斷單步中斷: 類型號1,TF=1時產(chǎn)生(當(dāng)前指令需執(zhí)行完); Debug狀態(tài)下的T命令執(zhí)行時產(chǎn)生;斷點中斷: 類型號3,INT 3指令引起的中斷,屬于軟件中斷 Debug狀態(tài)下由G命令設(shè)置,相當(dāng)于是在程序的某個位置設(shè)置了一條INT 3 。12第九章u引腳 INTR、INTA#、NMIu指令 INT n、INTO、IRET三、與中斷有關(guān)的引腳和指令13第九章 不同類型的中斷處理過程略有不同,本節(jié)所介紹的內(nèi)容主要針對可屏蔽中斷的處理過程。 可屏蔽中斷處理過程步驟:u中斷請求u中斷響應(yīng)u保護現(xiàn)場u轉(zhuǎn)入執(zhí)行中斷服務(wù)子程序u恢復(fù)現(xiàn)場u中斷返回9-2 中斷處理過

6、程14第九章NY保護現(xiàn)場保護現(xiàn)場中斷服務(wù)中斷服務(wù)恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場返回返回取下一條指令取下一條指令執(zhí)行指令執(zhí)行指令轉(zhuǎn)中斷服務(wù)程序轉(zhuǎn)中斷服務(wù)程序響應(yīng)中斷響應(yīng)中斷關(guān)中斷關(guān)中斷保護斷點保護斷點尋找中斷源尋找中斷源指令結(jié)束指令結(jié)束有中斷請求有中斷請求NY可屏蔽中斷處理流程圖可屏蔽中斷處理流程圖15第九章 1、CPU響應(yīng)可屏蔽中斷的條件 (1)外設(shè)提出中斷申請; (2)本中斷未被中斷控制器屏蔽; (3)本中斷優(yōu)先級最高; (4)CPU允許中斷;一、CPU響應(yīng)可屏蔽中斷過程16第九章2、CPU響應(yīng)可屏蔽中斷的過程uCPU在每條指令的最后一個T周期,檢測INTR,若為高電平,且IF=1,則CPU響應(yīng)中斷。u響

7、應(yīng)過程中自動依次完成以下工作:CPU向外設(shè)發(fā)兩個/INTA ,外設(shè)收到第2個/INTA 后,立即往數(shù)據(jù)線上給CPU送中斷類型號。CPU從數(shù)據(jù)線上讀取中斷類型號;將flags入棧; 保護現(xiàn)行程序運行結(jié)果產(chǎn)生的狀態(tài)和控制標(biāo)志。CPU響應(yīng)中斷的過程17第九章關(guān)中斷(清IF和TF) 為了防止在進(jìn)入中斷處理,但并未執(zhí)行中斷程序這段時間內(nèi)又響應(yīng)新的中斷。保護斷點 將當(dāng)前指令的下一條指令的CS和IP壓入堆棧,使中斷處理完成后能正確的回到原程序繼續(xù)執(zhí)行。轉(zhuǎn)入相應(yīng)的中斷服務(wù)子程序;中斷返回 從堆棧中彈出斷點的地址和flags的內(nèi)容,返回主程序的斷點處,繼續(xù)執(zhí)行主程序。CPU響應(yīng)中斷的過程18第九章19第九章u確

8、定中斷源的方法:查詢中斷和矢量中斷。查詢中斷:一種軟件查詢法,中斷響應(yīng)后,啟動中斷查詢程序,依次查詢哪個外設(shè)申請了中斷,檢測以后,轉(zhuǎn)到此設(shè)備預(yù)先設(shè)置的中斷服務(wù)程序處執(zhí)行。這種中斷處理過程稱為查詢中斷。 特點:速度慢,且后檢測的設(shè)備服務(wù)機會少。矢量中斷:中斷響應(yīng)后,外設(shè)中斷接口電路將中斷類型號送給CPU,CPU根據(jù)中斷類型號找到對應(yīng)的中斷服務(wù)程序的入口地址送入CS或IP,然后轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序處執(zhí)行。這種中斷處理過程稱為矢量中斷,也叫向量中斷。 特點:速度快。二、中斷向量表20第九章 1、中斷向量表 又稱:中斷服務(wù)程序的入口地址表。 中斷服務(wù)程序的入口地址又稱中斷向量u8086在存儲器最低的

9、1KB(00000H003FFH)空間內(nèi),存放256個中斷的中斷向量。u每個類型號的中斷向量占4字節(jié),高2字節(jié)存放段基址,低2字節(jié)存放偏移地址;u按照中斷類型號的順序依次將其中斷向量存在1K的內(nèi)存表中,格式如下: 21第九章u中斷類型號n與中斷向量的地址關(guān)系:n4中斷向量地址u(4n 和4n+1)IP (4n+2和4n+3)CS22第九章【例】某中斷的類型號為68H,中斷的操作過程如下: 步驟分析:取中斷類型號68H;計算中斷向量地址68H*4=1A0H;取中斷入口地址的偏移地址送入IP,段地址送入CS;轉(zhuǎn)向中斷服務(wù)程序;中斷返回到INT 68H指令的下一條指令。23第九章類型類型69H中斷向

10、量中斷向量A0002050類型類型67H中斷向量中斷向量中斷處理程序中斷處理程序STIPUSH DS.IRET2050INT 68HMOV AX,00:19C0:1A00:1A20:1A4A000IPCSA000:2050向量地址向量地址=68H4=1A0H中斷操作過程圖示24第九章 2、中斷向量(中斷入口地址)的設(shè)置 IBM PC對256種中斷類型已經(jīng)進(jìn)行地址分配,附錄D中給出中斷向量表。u概念:將中斷服務(wù)程序的入口地址置入中斷類型號所對應(yīng)的中斷向量表中。u兩種方法:用指令設(shè)置;用DOS功能調(diào)用設(shè)置。25第九章 用指令設(shè)置中斷服務(wù)程序的入口地址表MOV AX,0MOV ES,AXMOV BX

11、,N*4MOV AX,OFFSET INTRADMOV ES:BX,AXMOV AX,SEG INTRADMOV ES:BX+2,AX STI .INTRAD:PUSH AX . IRETPUSH DSMOV AX,0MOV DS,AXMOV BX,N*4MOV AX,OFFSET INTRADMOV BX,AXMOV AX,SEG INTRADMOV BX+2,AXPOP DS STI .INTRAD:PUSH AX . IRET26第九章 利用DOS功能調(diào)用設(shè)置中斷服務(wù)程序的入口地址表 27第九章 PUSH DS MOV AX,SEG INTRAD; MOV DS,AX MOV DX,OF

12、FSET INTRAD MOV AL,N MOV AH,25H INT 21H POP DS 利用DOS功能調(diào)用設(shè)置中斷服務(wù)程序的入口地址表 28第九章 注意:u為了避免直接使用中斷向量的絕對地址,一般利用DOS功能調(diào)用INT 21H設(shè)置或取出中斷向量。u應(yīng)用時一般在設(shè)置自己的中斷向量時,應(yīng)先保存原中斷向量,再設(shè)置新的中斷向量,在程序結(jié)束前恢復(fù)原中斷向量。 29第九章【例】利用利用DOS功能設(shè)置中斷向量和取中斷向量。功能設(shè)置中斷向量和取中斷向量。 MOV AL,N ;取中斷向量取中斷向量,并存中斷向量并存中斷向量 MOV AH,35H INT 21H PUSH ES PUSH BX PUSH

13、DS MOV AX,SEG INTRAD;設(shè)中斷向量設(shè)中斷向量 MOV DS,AX MOV DX,OFFSET INTRAD MOV AL,N MOV AH,25H INT 21H POP DS POP DX;恢復(fù)原中斷恢復(fù)原中斷 POP DS MOV AL,N MOV AH,25H INT 21H INTRAD: IRET 30第九章 3、中斷類型號的獲取 矢量中斷中,中斷入口地址依賴中斷類型號,中斷型號獲取方法:u對于專用中斷:除法出錯、單步中斷、不可屏蔽中斷、斷點中斷和溢出中斷,由CPU分別提供中斷類型號04;u對于用戶自己確定的軟件中斷INT n,類型號由n決定;u對于INTR引腳上的

14、中斷:由硬件電路設(shè)計產(chǎn)生中斷類型號??捎?259A獲取中斷類型號。31第九章三、中斷服務(wù)子程序1、中斷服務(wù)子程序特點為”遠(yuǎn)”過程(類型為FAR) 要用IRET指令返回2、中斷服務(wù)子程序一般結(jié)構(gòu)形式保護現(xiàn)場(PUSH regs) 開中斷(STI) 進(jìn)行中斷處理 關(guān)中斷(CLI) 恢復(fù)現(xiàn)場(POP regs) 中斷返回(IRET) 32第九章【總結(jié)】中斷處理過程中軟件及硬件各自完成的功能歸納1.主程序中的初始化 (1)設(shè)置中斷向量; (2)設(shè)置8259的中斷屏蔽寄存器的中斷屏蔽位; (3)設(shè)置CPU中斷允許標(biāo)志位IF(開中斷STI);2.硬件(外設(shè)接口)和CPU自動完成 (1)外設(shè)向CPU INT

15、R端發(fā)出請求; (2)CPU發(fā)兩個/INTA給外設(shè); (3)CPU取中斷類型號 n; (4)CPU自動將flags,CS,IP內(nèi)容壓入堆棧;33第九章 (5)清除IF,TF,禁止外部中斷和單步中斷; (6)從中斷向量表中取(4n)地址中內(nèi)容IP,取(4n+2)地址中內(nèi)容CS; (7)轉(zhuǎn)向中斷服務(wù)子程序。3.中斷服務(wù)子程序【注意】 (1)對重復(fù)前綴的指令作為一條處理; (2)遇到STI和IRET,要執(zhí)行兩條后,再響應(yīng)中斷; (3)CPU自動清除IF,TF位,在中斷服務(wù)程序不允許產(chǎn)生中斷,如需要則必須開中斷。34第九章設(shè)計一個能接收一個中斷源的中斷系統(tǒng),用8088CPU。【例】35第九章 主程序初

16、始化將中斷服務(wù)程序的入口地址裝入中斷向量表 PUSH DSMOV DX,OFFSET INTER1 MOV AX,SEG INTER1 MOV DS,AXMOV AL,80HMOV AH,25HINT 21HPOP DSSTI可屏蔽中斷處理程序INTER1 PROC FARPUSH AX ;保護現(xiàn)場STI ;開中斷以便允許 ;多重中斷 . . ;中斷處理CLI ;關(guān)中斷POP AX ;恢復(fù)現(xiàn)場 IRET ;返回主程序INTER1 ENDP 36第九章 CPU處理中斷的一般原則:u多個中斷源同時向CPU請求中斷,CPU由中斷優(yōu)先級排隊決定,先響應(yīng)優(yōu)先級高的中斷請求。 級別不同的中斷同時發(fā)生時,由

17、高到低依次處理。 級別相同的中斷同時發(fā)生時,按事先設(shè)定的次序處理u當(dāng)CPU正在處理中斷時,有更高優(yōu)先級別的中斷請求,并且IF1,CPU能響應(yīng)更高級別的中斷請求,而屏蔽掉低級的中斷請求,形成中斷嵌套,或稱為多重中斷。9-3 中斷優(yōu)先級和中斷嵌套37第九章 1、不同級別中斷優(yōu)先級順序 計算機中的中斷源,優(yōu)先級從高到低的順序如下: (1)內(nèi)部中斷(除法錯,INTO,INT n) (2)NMI (3)INTR (4)單步中斷一、中斷優(yōu)先級38第九章 2、可屏蔽中斷的優(yōu)先級設(shè)定方法u軟件查詢中斷優(yōu)先級 查詢程序的次序,決定了外設(shè)優(yōu)先級別的高低,先測試的中斷源優(yōu)先級別最高,依次下降。u硬件查詢優(yōu)先方式菊花

18、鏈法 u矢量中斷優(yōu)先級 設(shè)置一般是采用中斷優(yōu)先級控制器(如8259A)。 39第九章可屏蔽中斷的優(yōu)先級設(shè)定軟件查詢中斷優(yōu)先級1中斷請求寄存器PORTINTR0INTR1INTR2INTR3INTR4INTR5INTR6INTR7CPUINTR緩沖器.D7D0譯碼40第九章軟件查詢中斷優(yōu)先級 0號申請中斷 1號申請中斷保護現(xiàn)場中斷處理程序.恢復(fù)現(xiàn)場中斷返回0號外設(shè)服務(wù)程序1號外設(shè)服務(wù)程序YYNN中斷服務(wù)子程序處理流程41第九章u移位法 XOR AL,AL IN AL,PORT RCR AL,1 JC INTR0 RCR AL,1 JC INTR1 INTR0: INTR1:軟件查詢中斷優(yōu)先級中斷

19、服務(wù)子程序片斷u測試法 XOR AL,AL IN AL,PORT TEST AL,01H JNZ INTR0 TEST AL,02H JNZ INTR1 INTR0: INTR1:42第九章可屏蔽中斷的優(yōu)先級設(shè)定硬件查詢優(yōu)先方式(菊花鏈法)43第九章矢量中斷優(yōu)先權(quán)控制器的原理圖可屏蔽中斷的優(yōu)先級設(shè)定矢量中斷優(yōu)先級中斷服務(wù)寄存器 中斷類型寄存器優(yōu)先級管理邏輯 中斷請求寄存器 中斷屏蔽寄存器 由中斷請求決定IR0IR1IR2IR744第九章u中斷嵌套:當(dāng)CPU正在處理中斷時,有更高優(yōu)先級別的中斷請求,并且IF1,CPU能響應(yīng)更高級別的中斷請求,而屏蔽掉低級的中斷請求u以8259A為例介紹,8259

20、A在完全嵌套優(yōu)先級工作方式下,中斷優(yōu)先級的順序為:IR0、IR1IR7。 二、中斷嵌套45第九章下面是一個中斷嵌套的例子46第九章【說明】u主程序必須有開中斷指令,使IF1,才能響應(yīng)中斷。進(jìn)入中斷處理程序時,系統(tǒng)自動關(guān)中斷,在中斷服務(wù)程序中必須有STI開中斷指令,這樣才可以允許其它中斷進(jìn)入實現(xiàn)中斷嵌套。u中斷結(jié)束返回前要有EOI中斷結(jié)束命令,用來清除中斷服務(wù)寄存器中的對應(yīng)位,允許低級中斷進(jìn)入。最后有中斷返回指令I(lǐng)RET,使程序返回到被中斷的程序的斷點處。47第九章u中斷處理程序中如果沒有STI指令,中斷處理中不會受其它中斷影響,在執(zhí)行IRET指令后,因為自動返回中斷斷點及中斷標(biāo)志寄存器PSW的

21、內(nèi)容,當(dāng)IF的值為1,系統(tǒng)便能開放中斷。u一個正在執(zhí)行的中斷處理程序,中斷服務(wù)寄存器相應(yīng)位置“1”,在開中斷(IF1)的情況下,能夠被優(yōu)先級高于它的中斷源中斷。但如果中斷處理中提前發(fā)出了EOI命令,則清除了正在執(zhí)行的中斷服務(wù),中斷服務(wù)寄存器置“1”位被清0,允許響應(yīng)同級或低級的中斷申請。但這種情況要盡量避免,防止重復(fù)嵌套,使優(yōu)先級高的中斷不能及時服務(wù),因此一般EOI結(jié)束命令放在中斷返回指令I(lǐng)RET前面。48第九章 設(shè)系統(tǒng)有兩個外部中斷源,類型號分別是40H、41H。試用鏈?zhǔn)浇Y(jié)構(gòu)實現(xiàn)8086中斷系統(tǒng)的擴展。要求: a.畫出實際電路。 b.編寫程序,實現(xiàn)不同的中斷能轉(zhuǎn)入相應(yīng)的服務(wù)程序入口處?!纠?/p>

22、49第九章解:a.畫出實際電路50第九章. MOV DX,0FFSET INTER1 MOV AX,SEG INTER1 MOV DS,AX MOV AL,40H MOV AH,25H INT 21H.b.主程序 MOV DX,0FFSET INTER2 MOV AX,SEG INTER2 MOV DS,AX MOV AL,41H MOV AH,25H INT 21H 51第九章 中斷服務(wù)程序 INTER1 PROC FAR PUSH AX ;保護現(xiàn)場 STI ;開中斷,以實現(xiàn)多重中斷 . POP AX ;恢復(fù)現(xiàn)場 IRET INTER1 ENDP INTER2 PROC FAR PUSH A

23、X ;保護現(xiàn)場 STI ;開中斷,以實現(xiàn)多重中斷 . POP AX ;恢復(fù)現(xiàn)場 IRET INTER2 ENDP52第九章 主要內(nèi)容: 功能和引腳 內(nèi)部結(jié)構(gòu) 8259A的中斷管理方式 8259A的編程方式 8259A的中斷級聯(lián)及舉例9-4 可編程中斷控制器8259A53第九章 1、主要功能 (1)具有8優(yōu)先級控制,通過級聯(lián)可以擴展到64級 優(yōu)先級控制; (2)每一級中斷可由程序單獨屏蔽或允許; (3)可提供中斷類型號傳送給CPU; (4)可以通過編程選擇多種不同工作方式。一、功能和引腳54第九章 2、引腳55第九章 D7D0:雙向數(shù)據(jù)線,三態(tài),與系統(tǒng)的 數(shù)據(jù)總線相連。 IR7IR0:外設(shè)的中斷

24、請求信號輸入端,輸入; 中斷級聯(lián)時,連接8259A從片INT端。 RD#:讀命令信號,輸入,低電平有效,用來控制 數(shù)據(jù)由8259A讀到CPU。 WR#:寫命令信號,輸入,低電平有效,用來控制 數(shù)據(jù)由CPU寫到8259A。 CS#: 片選信號,輸入,連譯碼器輸出。RDRD56第九章 A0:選擇8259A的兩個端口,輸入,連低位地址線。 INT:向CPU發(fā)出的中斷請求信號,輸出 與CPU的INTR端相連。 INTA#:CPU給8259A的中斷響應(yīng)信號,輸入; 8259A要求兩個負(fù)脈沖的中斷響應(yīng)信號; 第1個是CPU響應(yīng)中斷的信號; 第2個結(jié)束后,CPU讀取8259送的中斷類型號57第九章 CAS2

25、CAS0:雙向級聯(lián)信號線 作主片時,為輸出;作從片時,為輸入 與SP#/EN#配合實現(xiàn)8259A級聯(lián) SP#/EN#: 編程/雙向使能緩沖 輸入時:決定本片8259A是主片還是從片: =1,則為主片; =0 ,則為從片。 輸出時:啟動8259A到CPU之間的數(shù)據(jù)總線驅(qū)動器 輸入還是輸出,由 8259A的工作方式?jīng)Q定: 緩沖方式:SP#/EN#為輸出; 非緩沖方式:SP#/EN#為輸入。58第九章二、內(nèi)部結(jié)構(gòu)級聯(lián)級聯(lián)緩沖器緩沖器/比較器比較器 控制電路控制電路數(shù)據(jù)總線數(shù)據(jù)總線緩沖器緩沖器 讀讀/寫寫控制電路控制電路 中斷服務(wù)中斷服務(wù)寄存器寄存器(ISR) 優(yōu)先級優(yōu)先級管理邏輯管理邏輯(PR) 中

26、斷請求中斷請求寄存器寄存器(IRR) 中斷屏蔽寄存器中斷屏蔽寄存器(IMR) IR0IR1IR7RDINTWRSP/ENCSA0D7D0CAS0CAS1CAS2INTA59第九章 1、數(shù)據(jù)總線緩沖器 8259A與系統(tǒng)數(shù)據(jù)總線的接口,8位、雙向、三態(tài) 傳送信息種類: (1)控制字 (2)狀態(tài)信息 (3)中斷類型號 2、讀/寫控制電路 讀寫控制電路接收CPU送來的讀/寫命令RD#、 WR#,片選信號CS#及端口選擇信號A0,用于 控制8259A與CPU之間的信息傳送。60第九章8259A的讀寫功能61第九章 3、級聯(lián)緩沖/比較器 8259A和系統(tǒng)的連接有兩種方式: (1)緩沖方式 多片8259A級

27、聯(lián)的系統(tǒng)中使用,作為輸出端 當(dāng)EN#0時,控制數(shù)據(jù)從8259A送到CPU 當(dāng)EN#1時,控制數(shù)據(jù)從CPU送到8259A (2)非緩沖方式 單片8259A或少量8259A級聯(lián)時使用,作為輸入端 控制8259A作為主片還是從片: SP#1,為主片;SP#0,為從片 單片單片8259A8259A時,時, SP#SP#接高電平接高電平62第九章 4、中斷請求寄存器IRR 8位寄存器,存放外部輸入的中斷請求信號IR7IR0; 當(dāng)某個IR端有中斷請求時,IRR相應(yīng)的某位置1; 當(dāng)中斷請求被響應(yīng)時,IRR的相應(yīng)位清0。 5、中斷屏蔽寄存器IMR 8位寄存器,用來存放各級中斷請求的屏蔽信息。 若IMR第i位為

28、1,則IRi中斷申請被屏蔽 若IMR第i位為0,則IRi中斷申請被允許 6、優(yōu)先級判別器PR 對保存在IRR中的中斷請求進(jìn)行優(yōu)先級識別,送出最高 優(yōu)先級的中斷請求到CPU和ISR中去。63第九章 7、中斷服務(wù)寄存器ISRu8位寄存器,保存正處理的中斷請求信號;uCPU響應(yīng)后,由第一個 信號將ISR寄存器中的相應(yīng)位置“1”; 中斷返回前,由中斷結(jié)束命令EOI將其清0。u沒進(jìn)行中斷服務(wù)的ISR各位為0。INTA64第九章8、控制電路u根據(jù)IRR和IMR的情況,根據(jù)PR判定優(yōu)先級,控制8259A內(nèi)部各部分協(xié)調(diào)工作,主要功能如下:u控制8259A向CPU發(fā)INT信號和接收 ;u控制ISR相應(yīng)位置1,I

29、RR相應(yīng)位清0;u控制8259A送中斷類型號。INTA65第九章 三、8259A的中斷管理方式 8259A有多種工作方式,是通過編程來設(shè)置的。 1、8259A的編程結(jié)構(gòu)u 8259A的中斷管理方式是通過控制字來設(shè)置的。u 初始化命令字寫入寄存器ICW1ICW4,只能設(shè)定1次。u 操作命令字寫入寄存器OCW1OCW3,用來對中斷處理過程進(jìn)行控制,在系統(tǒng)運行過程中,操作命令字可進(jìn)行多次設(shè)置。66第九章譯譯碼碼器器 IR0IR1IR2IR3IR4IR5IR6IR7當(dāng)前中當(dāng)前中斷服務(wù)斷服務(wù)寄存器寄存器 優(yōu)先級優(yōu)先級裁決器裁決器 中斷請中斷請求寄存求寄存器器 中斷屏蔽寄存器中斷屏蔽寄存器ICW1 (芯片

30、控制芯片控制)ICW2 (類型類型)ICW3 (主主/從從)ICW4 (方式控制方式控制)OCW3OCW1OCW2D0D7AD0AD7CAS2CAS0CAS1A08088連連A08086連連A1地址地址總線總線INTRINTWRINTARDCSSP/NE67第九章2、優(yōu)先級設(shè)置方式(1)完全嵌套方式u默認(rèn)方式;u中斷優(yōu)先級固定,分07級,其中IR0最高,IR7最低;u允許中斷嵌套(只允許高級中斷低級);u可用普通EOI、自動AEOI結(jié)束中斷,一般用普通EOI。(2)特殊全嵌套方式u與(1)基本相同,區(qū)別在于允許同級中斷請求進(jìn)入;u主要用于8259A級聯(lián)時,主片的優(yōu)先級設(shè)定;68第九章 (3)優(yōu)

31、先級自動循環(huán)方式 (4)優(yōu)先級特殊循環(huán)方式 3、中斷結(jié)束方式 中斷處理結(jié)束時,發(fā)送中斷的結(jié)束命令EOI,使ISR寄存器中對應(yīng)位清“0”。不同時刻使ISR中對應(yīng)位清“0”,對應(yīng)著不同的中斷結(jié)束方式。 (1)普通EOI結(jié)束方式u中斷返回前,CPU向8259A傳送EOI結(jié)束命令,將ISR中優(yōu)先級最高位清0,用于完全嵌套工作方式;u EOI結(jié)束命令要放在IRET前;69第九章(2)特殊EOI結(jié)束方式uCPU向8259A發(fā)特殊EOI結(jié)束命令,命令中將當(dāng)前要清除的中斷級別也傳給8259A。此時,8259A將ISR寄存器中指定級別的對應(yīng)位清“0”。(3)自動EOI結(jié)束方式u CPU發(fā)第二個INTA脈沖后,8

32、259A自動將ISR寄存器中對應(yīng)位清“0”;容易引起重復(fù)嵌套,不建議用。70第九章 4、循環(huán)優(yōu)先級的循環(huán)方法 根據(jù)中斷結(jié)束方式不同,優(yōu)先級循環(huán)又分為三種: (1)普通EOI循環(huán)方式 中斷結(jié)束后,將ISR中優(yōu)先級最高的位清0,此級賦予最低級,最高級為其下一級,其余類推。 (2)特殊EOI循環(huán)方式 中斷結(jié)束后,將ISR中由L2L0給定級別相應(yīng)的位清0,此級賦予最低級,最高級為其下一級,其余類推。 (3)自動EOI循環(huán)方式 CPU發(fā)第二個INTA脈沖后,將ISR寄存器中對應(yīng)位清“0”;并按照普通EOI循環(huán)方式改變優(yōu)先級。71第九章 5、中斷源屏蔽方式 可以對中斷請求單獨屏蔽,有兩種方式: (1)普通

33、屏蔽方式 通過操作命令字OCW1將IMR中某一位或某幾位置“1”,可將對應(yīng)位的中斷請求屏蔽掉。 (2)特殊屏蔽方式 屏蔽本級中斷,允許高級或低級中斷進(jìn)入,通過OCW3進(jìn)行設(shè)置。72第九章 6、中斷請求引入方式 (1)邊沿觸發(fā)方式 8259A的IRi端以上升沿作為中斷請求信號。 (2)電平觸發(fā)方式 8259A的IRi端以高電平作為中斷請求信號。 注意: 當(dāng)中斷響應(yīng)后,中斷輸入端的高電平必須及時撤出。 (3)中斷查詢方式73第九章 四、8259A的編程方法 分為兩步:u初始化編程: 由CPU向8259A送初始化命令字ICW。在8259A開始正常工作前,必須寫初始化命令字使其處于開始狀態(tài)。u操作命令

34、編程: 由CPU向8259A送操作命令字OCW,可以在8259A初始化后,根據(jù)需要在程序的任何地方寫入。 74第九章 1、初始化命令字 (1)ICW1 芯片控制初始化命令字IC4SNGL0LTIM1A5A6A70D0D1D2D3D4D5D6D7A0ICW1的地址的地址 1:需要:需要ICW4 0:不設(shè)不設(shè)ICW4 1: 8259A單片方式單片方式 0: 8259A級聯(lián)方式級聯(lián)方式ICW1 的標(biāo)志位的標(biāo)志位8080/8085用用觸發(fā)方式觸發(fā)方式 1:高電平觸發(fā):高電平觸發(fā) 0:上跳沿觸發(fā):上跳沿觸發(fā) 例7-13 IBM PC/XT系統(tǒng)初始化中,設(shè)ICW1=13H,表示系統(tǒng)中8259A為單片方式,

35、上升沿觸發(fā),要求設(shè)置ICW4。指令為: MOV AL,13H OUT 20H,AL75第九章 (2)ICW2設(shè)置中斷類型號初始化命令字 中斷類型號基值,即IR0的類型號。其中低3位初始時為0,高5位由用戶設(shè)定。工作過程中,低3位值由IR0IR7中響應(yīng)哪級中斷(對應(yīng)000111)來確定。000T3T4T5T6T71D0D1D2D3D4D5D6D7A0中斷類型的高中斷類型的高5位位例7-14 在IBM PC/XT系統(tǒng)中,T7T3=00001,所以對應(yīng)8個中斷的類型號為08H0FH。端口地址為21H。設(shè)置ICW2的指令為: MOV AL,8 OUT 21H,AL76第九章 (3)ICW3標(biāo)識主片/從

36、片初始化命令字 8259A主片格式:S0S1S2S3S4S5S6S71D0D1D2D3D4D5D6D7A00:表示:表示IRi端上未接端上未接8259A從片從片1:表示:表示IRi端上接有端上接有8259A從片從片Si=ID0ID1ID2000001D0D1D2D3D4D5D6D7A08259A從片格式:從片格式:從片從片8259A的識別地址的識別地址77第九章8259ACPU00-從片CPU8259A1EN輸出1-主片1從片0主片1SP輸入0SP/ENM/SBUF1:8086/8088方式方式0: 8080/8085方式方式1:中斷自動結(jié)束:中斷自動結(jié)束0:非自動結(jié)束:非自動結(jié)束1 :特殊全

37、嵌套方式:特殊全嵌套方式0:完全嵌套方式:完全嵌套方式 PMAEOIM/SBUFSFNM0001D0D1D2D3D4D5D6D7A0非緩沖方式非緩沖方式 0 緩沖方式緩沖方式/從片從片 1 0緩沖方式緩沖方式/主片主片 1 1(4) ICW4方式控制初始化命令字78第九章 ICW設(shè)置的順序:寫寫ICW1寫寫ICW2SNGL=1?寫寫ICW3IC4=1?寫寫ICW4YNNY地址地址A0=0A0=1A0=1A0=179第九章 ICW功能:u設(shè)定觸發(fā)形式:電平、上升沿;u設(shè)定工作方式:單片、級聯(lián);u設(shè)定中斷類型號基值;u設(shè)定優(yōu)先級方式;u設(shè)定中斷結(jié)束方式。80第九章 2、8259A的操作命令字及編程

38、 (1)OCW1中斷屏蔽操作命令字 用于設(shè)置和讀出中斷屏蔽寄存器的內(nèi)容,必須在ICW之后寫入 M0M1M2M3M4M5M6M71D0D1D2D3D4D5D6D7A01:屏蔽由:屏蔽由IRi引入的中斷請求引入的中斷請求0:允許:允許IRi端中斷請求引入端中斷請求引入Mi= 例7-18 設(shè)某中斷系統(tǒng)要求屏蔽IR3,IR5,8259A編程指令為: MOV AL,00101000B OUT 21H,AL81第九章R SL EOI操 作 功 能001一般EOI結(jié)束命令 011特殊EOI結(jié)束命令101自動循環(huán)優(yōu)先級的一般結(jié)束命令 100設(shè)置優(yōu)先級自動循環(huán)方式命令 000結(jié)束優(yōu)先級自動循環(huán)方式的命令 111

39、設(shè)置特殊優(yōu)先級循環(huán)的EOI結(jié)束命令110設(shè)置特殊優(yōu)先級循環(huán)方式命令 010無效 優(yōu)先級固定優(yōu)先級固定0優(yōu)先級循環(huán)優(yōu)先級循環(huán)1不發(fā)不發(fā)結(jié)束命令結(jié)束命令0發(fā)發(fā)結(jié)束命令結(jié)束命令1L2L1L0無效無效0L2L1L0有效有效1L1L0L200EOISLRA0 0標(biāo)志位標(biāo)志位 111IR7110IR6101IR5100IR4011IR3010IR2001IR1000IR0L2 L1 L0最低最低優(yōu)先級優(yōu)先級編碼編碼(2)OCW2 設(shè)置8259A的優(yōu)先權(quán)循環(huán)方式和中斷結(jié)束方式。82第九章 (3)OCW3特殊屏蔽方式和查詢方式命令字 設(shè)定特殊屏蔽方式和中斷查詢的工作方式; 設(shè)置讀取8259A的IRR和ISR寄

40、存器的內(nèi)容。83第九章 3、編程小結(jié)uICW在程序初始化時寫入,要按順序且只能設(shè)定1次uOCW在初始化命令字之后,可根據(jù)需要在程序的任何位置去設(shè)置,可設(shè)置多次。uICW1、OCW2、OCW3寫入8259A偶地址端口,用D4D3位區(qū)分;uICW2、ICW3、ICW4和OCW1寫入8259A奇地址端口,用順序區(qū)分。84第九章五、8259A的中斷級聯(lián)思考:最多級聯(lián)64級,需要幾片8259A? 如果4片8259A,可管理多少級中斷? 一片8259A管理8級中斷,當(dāng)申請中斷的外設(shè)多于8級時,可以將8259A級聯(lián)使用,圖7-14給出了兩級級聯(lián)的例子,第一級為8259A主片,第二級為8259A從片,主片可接

41、18片從片,這樣最多可以管理64級中斷源。(9片)(29級)85第九章外部中斷請求外部中斷請求+5VCAS2CAS0CAS1A0RDSP/NEIR7IR6IR5IR4IR3IR2IR1IR0 INTWRINTAD0D7CS從從8259ACAS2CAS0CAS1A0RDSP/NE IR7IR6IR5IR4IR3IR2IR1IR0 INTWRINTA D0D7CS主主8259A外部中斷請求外部中斷請求例例7-21 某系統(tǒng)中兩片某系統(tǒng)中兩片8259A采用中斷級聯(lián)方式組成中斷系統(tǒng),采用中斷級聯(lián)方式組成中斷系統(tǒng),從片的從片的INT端連主片的端連主片的IR3端,若當(dāng)前主片從端,若當(dāng)前主片從IR1,IR5端

42、引入端引入兩個中斷請求,中斷類型號為兩個中斷請求,中斷類型號為31H,35H。中斷服務(wù)程序的。中斷服務(wù)程序的段基址為段基址為1000H,偏移地址分別為,偏移地址分別為2000H及及3000H。從片。從片IR4,IR5端引入中斷請求,類型號為端引入中斷請求,類型號為44H和和45H。中斷服務(wù)程序基。中斷服務(wù)程序基址址2000H,偏移地址為,偏移地址為3600H和和4500H。86第九章(1)設(shè)置中斷向量)設(shè)置中斷向量 將將4個中斷源的入口地址寫入中斷向量表個中斷源的入口地址寫入中斷向量表 MOV AX,1000H;送段地址;送段地址 MOV DS,AX MOV DX,2000H;送偏移地址;送偏

43、移地址 MOV AL,31H;中斷類型號;中斷類型號 MOV AH,25H INT 21H MOV DX,3000H ;送偏移地址;送偏移地址 MOV AL,35H ;中斷類型號;中斷類型號 INT 21H87第九章 MOV AX,2000H;送段地址;送段地址 MOV DS,AX MOV DX,3600H;送偏移地址;送偏移地址 MOV AL,44H;中斷類型號;中斷類型號 MOV AH,25H INT 21H MOV DX,4500H;送偏移地址;送偏移地址 MOV AL,45H;中斷類型號;中斷類型號 INT 21H88第九章(2 2)主片主片8259A初始化編程初始化編程 8259A主

44、片端口地址為主片端口地址為FFC8H和和FFC9H MOV AL,11H ;定義;定義ICW1,主片級聯(lián)使用,邊沿觸發(fā),主片級聯(lián)使用,邊沿觸發(fā) ;要設(shè)要設(shè)ICW4 MOV DX,0FFC8H OUT DX,AL MOV AL,30H ;定義;定義ICW2,中斷類型號,中斷類型號30H37H MOV DX,0FFC9H OUT DX,AL MOV AL,08H ;定義;定義ICW3,IR3端接從片的端接從片的INT端端 OUT DX,AL MOV AL,11H ;定義;定義ICW4,特殊全嵌套方式,非緩沖方式,特殊全嵌套方式,非緩沖方式 OUT DX,AL ;非自動;非自動EOI結(jié)束方式結(jié)束方式

45、 MOV AL,0D5H ;定義;定義OCW1,允許,允許IR1,IR3,IR5中斷,其余屏蔽中斷,其余屏蔽 OUT DX,AL89第九章(3 3)從片從片8259A初始化編程初始化編程 8259A從片端口地址為從片端口地址為FFCAH和和FFCBH MOV AL,11H ;定義;定義ICW1,級聯(lián)使用邊沿觸發(fā)級聯(lián)使用邊沿觸發(fā),要設(shè)要設(shè)ICW4 MOV DX,0FFCAH OUT DX,AL MOV AL,40H ;定義;定義ICW2,引入中斷類型號,引入中斷類型號40H47H MOV DX,0FFCBH OUT DX,AL MOV AL,03H ;定義;定義ICW3,從片接在主片的,從片接在

46、主片的IR3端端 OUT DX,AL MOV AL,01H ;定義;定義ICW4,完全嵌套方式,非緩沖方式,完全嵌套方式,非緩沖方式 OUT DX,AL ;非自動;非自動EOI結(jié)束方式結(jié)束方式 MOV AL,0CFH ;定義;定義OCW1,允許,允許IR4,IR5中斷,其余屏蔽中斷,其余屏蔽 OUT DX,AL90第九章(4)中斷的結(jié)束編程)中斷的結(jié)束編程 無論對主片無論對主片8259A或從片或從片8259A,操作命令字可根據(jù),操作命令字可根據(jù)需要在操作過程中設(shè)置,需要在操作過程中設(shè)置,OCW2命令字定義中斷結(jié)束方命令字定義中斷結(jié)束方式時,通常式時,通常放在中斷服務(wù)子程序中放在中斷服務(wù)子程序中

47、。主片的中斷結(jié)束命令為:主片的中斷結(jié)束命令為: MOV AL,20H ;定義;定義OCW2,普通普通EOI結(jié)束方式結(jié)束方式 MOV DX,0FFC8H OUT DX,AL從片的中斷結(jié)束命令為:從片的中斷結(jié)束命令為: MOV AL,20H ;定義;定義OCW2,普通普通EOI結(jié)束方式結(jié)束方式 MOV DX,0FFCAH OUT DX,AL91第九章 例例7-9 編寫中斷處理程序,要求主程序運行時,每編寫中斷處理程序,要求主程序運行時,每10秒秒響鈴一次,同時屏幕上顯示信息響鈴一次,同時屏幕上顯示信息“The bell is ring!” 可以利用中斷類型可以利用中斷類型1CH進(jìn)行處理,因為系統(tǒng)定時器進(jìn)行處理,因為系統(tǒng)定時器(中斷中斷類型類型8)的中斷處理程序中,時鐘中斷一次的中斷處理程序中,時鐘中斷一次(約約18.2次次/秒秒)要調(diào)要調(diào)用一次用一次INT 1CH。在。在R

溫馨提示

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

評論

0/150

提交評論