第7章 中斷技術(shù)_第1頁(yè)
第7章 中斷技術(shù)_第2頁(yè)
第7章 中斷技術(shù)_第3頁(yè)
第7章 中斷技術(shù)_第4頁(yè)
第7章 中斷技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第七章中斷技術(shù)§7.1中斷的基本概念§7.28086中斷系統(tǒng)§7.3可編程中斷控制器8259A及應(yīng)用2§7.1中斷的基本概念

中斷:CPU正常運(yùn)行時(shí),由于內(nèi)、外部事件或由程序的預(yù)先安排,而使它暫停執(zhí)行當(dāng)前程序,轉(zhuǎn)而執(zhí)行另外一段程序,完成后再返回暫停處繼續(xù)執(zhí)行原來的程序的過程。

中斷源:引起程序中斷的事件或設(shè)備

斷點(diǎn):中斷響應(yīng)時(shí)的程序暫停點(diǎn)

中斷服務(wù)程序:響應(yīng)中斷后執(zhí)行的一段程序

中斷系統(tǒng):實(shí)現(xiàn)中斷功能的控制邏輯3§7.1中斷的基本概念

中斷系統(tǒng)的基本功能:(1)實(shí)現(xiàn)中斷響應(yīng)、中斷服務(wù)、中斷返回和中斷屏蔽;(2)實(shí)現(xiàn)中斷優(yōu)先級(jí)排隊(duì);(3)實(shí)現(xiàn)中斷嵌套。4一、中斷過程(掌握)主程序中斷服務(wù)子程序中斷響應(yīng)中斷返回中斷請(qǐng)求中斷源斷點(diǎn)一個(gè)完整的中斷過程包括中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)和中斷返回四個(gè)階段。51、中斷源和中斷申請(qǐng)一般有以下幾種中斷源:(1)外設(shè)的請(qǐng)求,如I/O接口的傳送請(qǐng)求,實(shí)時(shí)時(shí)鐘中斷等。(2)由硬件故障引起的。如電源掉電、奇偶校驗(yàn)錯(cuò)誤或協(xié)處理器中斷請(qǐng)求等。(3)由程序預(yù)先安排的中斷指令(INTn)引起,或CPU內(nèi)部運(yùn)算產(chǎn)生的某些錯(cuò)誤引起的中斷。如除法出錯(cuò)、運(yùn)算溢出、程序調(diào)試中設(shè)置斷點(diǎn)等。62、中斷響應(yīng)CPU在每條指令的最后一個(gè)時(shí)鐘周期,都會(huì)自動(dòng)地檢測(cè)“中斷請(qǐng)求”線(如8086CPU的INTR引腳),若有中斷請(qǐng)求,且CPU又允許中斷,則CPU進(jìn)入中斷響應(yīng)周期,在這段時(shí)間,CPU要通過其內(nèi)部硬件自動(dòng)完成以下操作:(1)關(guān)中斷。(中斷響應(yīng)周期不被其他中斷打擾)(2)保護(hù)斷點(diǎn)。(CS:IP、FR壓入堆棧)(3)查中斷源。由硬件設(shè)計(jì)封鎖電路或軟件查詢或使用專用的接口對(duì)多個(gè)中斷源進(jìn)行排隊(duì),同時(shí)只允許一個(gè)中斷源得到響應(yīng)。(4)將中斷服務(wù)程序的入口地址送至CS:IP73、中斷服務(wù)(中斷處理)

中斷服務(wù)程序主要完成:保護(hù)現(xiàn)場(chǎng)(把需要保護(hù)的寄存器的內(nèi)容壓入堆棧)開中斷(允許CPU響應(yīng)其它中斷,實(shí)現(xiàn)中斷嵌套)中斷服務(wù)(執(zhí)行中斷服務(wù)子程序)關(guān)中斷(保證恢復(fù)現(xiàn)場(chǎng)的工作不受干擾)恢復(fù)現(xiàn)場(chǎng)(把保護(hù)在堆棧中的寄存器的內(nèi)容彈出堆棧)開中斷(允許CPU響應(yīng)其它中斷)84、中斷返回

在中斷服務(wù)子程序中通過執(zhí)行中斷返回指令I(lǐng)RET,返回到主程序,CPU自動(dòng)將堆棧中FR、CS:IP的內(nèi)容彈回。9二、中斷識(shí)別及中斷優(yōu)先級(jí)管理(了解)軟件查詢法向量中斷法1、中斷優(yōu)先級(jí)排隊(duì)2、中斷嵌套(多重中斷)硬件查詢法專用硬件方式(8259A)低級(jí)中斷服務(wù)主程序斷點(diǎn)主程序高級(jí)中斷服務(wù)10(1)軟件查詢法(程序查詢法)當(dāng)CPU響應(yīng)中斷后,在簡(jiǎn)單硬件接口電路的支持下,通過查詢程序以確定哪些外設(shè)申請(qǐng)中斷并按事先確定的優(yōu)先級(jí)別確定查詢的先后順序,最先被查詢的優(yōu)先級(jí)別最高。軟件查詢法軟件查詢法的優(yōu)點(diǎn):硬件簡(jiǎn)單、改變外設(shè)的中斷優(yōu)先級(jí)而不必變更硬件連接。軟件查詢法的缺點(diǎn):速度慢,占用CPU時(shí)間。保護(hù)現(xiàn)場(chǎng)IR0請(qǐng)求?讀中斷請(qǐng)求IR1請(qǐng)求?IR7請(qǐng)求?恢復(fù)現(xiàn)場(chǎng)0#中斷服務(wù)1#中斷服務(wù)7#中斷服務(wù)中斷返回中斷服務(wù)子程序入口D0D1D7INTRINTACPU中斷請(qǐng)求鎖存器CS譯碼ABIR0IR1IR712(2)向量中斷法

在CPU響應(yīng)中斷后,中斷源提供一個(gè)地址信息,由該地址信息對(duì)程序的執(zhí)行進(jìn)行導(dǎo)向,將程序引導(dǎo)到中斷服務(wù)程序中去,該地址信息稱為中斷向量或中斷矢量(一般為中斷服務(wù)子程序的入口地址),這種中斷稱為向量中斷。向量中斷法

簡(jiǎn)單硬件查詢法

中斷專用控制硬件法

13a.簡(jiǎn)單硬件查詢方式——菊花鏈法

菊花鏈法:是用硬件排隊(duì)電路(菊花鏈電路)對(duì)中斷源進(jìn)行優(yōu)先級(jí)排隊(duì),并將程序引導(dǎo)到相關(guān)的I/O中斷服務(wù)程序的入口。菊花鏈法中斷請(qǐng)求中斷回答

INTA

INTR接口1接口2接口3CPU及其總線控制邏輯菊花鏈邏輯電路菊花鏈邏輯電路菊花鏈邏輯電路優(yōu)點(diǎn):中斷響應(yīng)速度快。缺點(diǎn):各中斷源的優(yōu)先級(jí)因硬件連接固定而不易修改。15b.中斷控制專用硬件方式(掌握)中斷控制專用硬件方式是向量中斷的典型方法。該方法使用一個(gè)專門的中斷優(yōu)先級(jí)控制器8259A接口芯片來解決中斷優(yōu)先級(jí)的排隊(duì)管理。162.中斷嵌套(多重中斷)

當(dāng)CPU正在響應(yīng)某一中斷源的請(qǐng)求,若有優(yōu)先級(jí)更高的中斷源申請(qǐng)中斷,CPU就應(yīng)暫停當(dāng)前正在服務(wù)的級(jí)別較低的服務(wù)程序而轉(zhuǎn)入新的中斷源服務(wù),等新的級(jí)別較高的中斷服務(wù)程序執(zhí)行完后,再返回到被暫停的中斷服務(wù)程序繼續(xù)執(zhí)行,直至處理結(jié)束返回主程序。這種中斷套中斷的過程稱為中斷嵌套或多重中斷。17中斷嵌套示意圖18§7.28086中斷系統(tǒng)(掌握)一、8086中斷源分類二、中斷向量與中斷向量表三、8086各類中斷的優(yōu)先級(jí)四、8086的中斷過程五、8086中斷響應(yīng)總線周期六、8086中斷向量的裝入和取出198086微機(jī)系統(tǒng)具有一個(gè)簡(jiǎn)單靈活和功能強(qiáng)大的中斷系統(tǒng),可以處理多達(dá)256種不同類型的中斷。8086CPU與中斷有關(guān)的引腳NMI:不可屏蔽中斷請(qǐng)求INTR:可屏蔽中斷請(qǐng)求INTA:中斷響應(yīng)8086CPU的中斷指令I(lǐng)NTn中斷調(diào)用指令I(lǐng)RET可屏蔽中斷返回NRET不可屏蔽中斷返回中斷類型號(hào)00-FFH在中斷服務(wù)子程序中8086中斷硬件中斷(外部中斷)不可屏蔽中斷:(從NMI引腳進(jìn)入)可屏蔽中斷:(從INTR引腳進(jìn)入)IF=0,中斷被禁止IF=1,中斷才能被CPU響應(yīng)只要CPU的NMI引腳有申請(qǐng),CPU就響應(yīng)該中斷軟件中斷(內(nèi)部中斷)1.由中斷指令I(lǐng)NTn引起的中斷;2.由CPU的某些運(yùn)算錯(cuò)誤引起的中斷(如除法出錯(cuò)、溢出等);3.由調(diào)試程序DEBUG設(shè)置的中斷,如單步中斷(T命令)、斷點(diǎn)中斷(G命令)。*所有的軟件中斷都是不可屏蔽中斷。

一、8086中斷源分類21一、8086中斷源分類非屏蔽中斷請(qǐng)求中斷邏輯INTn指令I(lǐng)NTO指令除法出錯(cuò)單步運(yùn)行8086CPUNMI8259A可屏蔽中斷INTR22二、中斷向量與中斷向量表8086可處理256種中斷,8086對(duì)這些中斷采用中斷向量管理。中斷向量:中斷服務(wù)子程序的入口地址(段基址:偏移地址)。每一個(gè)中斷服務(wù)程序都有一個(gè)唯一確定的入口地址中斷向量表:存放中斷向量的存儲(chǔ)區(qū)。8086把所有中斷向量集中放到00000H~003FFH的區(qū)域內(nèi),每個(gè)向量占4個(gè)字節(jié)單元。中斷類型號(hào):每個(gè)中斷對(duì)應(yīng)一個(gè)中斷類型號(hào)。編號(hào)為0~255或00~FFH,中斷類型號(hào)與中斷向量表有對(duì)應(yīng)關(guān)系。中斷向量指針:任一中斷向量在向量表中的首偏移地址。中斷向量指針=4×中斷類型號(hào)

當(dāng)CPU響應(yīng)中斷時(shí),中斷源只要給出該中斷對(duì)應(yīng)的中斷類型碼n(0-255或00H-FFH),CPU自動(dòng)將中斷類型號(hào)n乘以4,就得到中斷向量指針4n。然后將IP←(4n,4n+1);CS←(4n+2,4n+3),就可進(jìn)入中斷服務(wù)?!?000:0000H0000:03FFH類型0類型1類型FEH類型FFH0000:0004H0000:03F8H0000:03FCH類型0指針類型1指針類型FEH指針類型FEH指針中斷入口偏移地址中斷入口段基址中斷向量中斷向量表8086中斷向量分配表示意圖258086中斷向量表劃分第一類是專用中斷,類型0~類型4,系統(tǒng)已有定義,用戶是不能修改的。第二類是從類型5~類型31共27個(gè)中斷,是系統(tǒng)保留的中斷,是提供給系統(tǒng)使用。第三類是從類型32~類型255共224個(gè)中斷,這類中斷原則上是可以由用戶定義。可定義為軟中斷,由INTn指令引入,也可以是通過INTR引腳直接引入,或者是通過中斷控制器8259A引入的可屏蔽中斷,使用時(shí)用戶要自行裝入相應(yīng)的中斷向量(即入口地址)。26三、8086各類中斷的優(yōu)先級(jí)中斷源中斷權(quán)級(jí)別除法出錯(cuò)中斷INT0溢出中斷INTO或INT4其它軟件中斷INTnNMI中斷(INT2)INTR中斷單步中斷INT1

高低*對(duì)同類硬件中斷,其中斷的優(yōu)先等級(jí)可根據(jù)需要由用戶自行安排27四、8086的中斷過程

8086中斷過程也分為四個(gè)部分:中斷申請(qǐng),中斷響應(yīng),中斷處理和中斷返回。28四、8086的中斷過程完成當(dāng)前指令是內(nèi)部中斷?是NMI中斷?是INTR中斷?TF=1?執(zhí)行下條指令I(lǐng)F=1?中斷響應(yīng)讀類型碼FR入棧令TEMP=TF清除IF、TFCS、IP入棧調(diào)中斷子程序執(zhí)行中斷程序彈出CS和IP彈出標(biāo)志有NMI?TEMP=1?YYYYYYNNNNN8086中斷過程YYNN暫存器主程序 ……2000:010BMOVDX,2B77H2000:010EMOVAH,09H2000:0110INT 21H ……FR2000010E2B77AX(1)外設(shè)申請(qǐng)中斷,INTR有效且IF=1(2)CPU中斷響應(yīng)周期(系統(tǒng)自動(dòng))

a.關(guān)中斷,F(xiàn)R入棧,IF、TF清零b.保護(hù)斷點(diǎn),2000H入棧,010EH入棧d.獲取中斷服務(wù)子程序入口地址(3)執(zhí)行中斷服務(wù)子程序(用戶編寫)

INTPPROC PUSH DX PUSH AX ;保護(hù)現(xiàn)場(chǎng)

STI…… CLIPOP AX POP DX ;恢復(fù)現(xiàn)場(chǎng)

STIIRETINTP ENDP堆棧中斷前SP例:00H10H40H30H00200H

IP=[1000H],CS=[3040H]c.從中斷控制器讀取中斷類型號(hào)(例80H)30五、8086中斷響應(yīng)總線周期(對(duì)可屏蔽中斷)n中斷類型號(hào)CLKALEINTAAD7~AD0T1第1個(gè)INTA周期第2個(gè)INTA周期空閑狀態(tài)T2T3T4TITIT1T2T3T4通知中斷源準(zhǔn)備類型號(hào)允許申請(qǐng)?jiān)O(shè)備將類型號(hào)送CPU31六、8086中斷向量的裝入和取出1.將中斷向量裝入向量表:把由AL中指定中斷類型號(hào)的中斷向量DS:DX,裝入中斷向量表中。

預(yù)置:AL=中斷類型號(hào)

DS:DX=中斷服務(wù)程序入口地址 AH=25H執(zhí)行:INT21H

利用DOS功能調(diào)用INT21H設(shè)置和取出中斷向量32六、8086中斷向量的裝入和取出2.將中斷向量從向量表中取出:把由AL中指定中斷類型號(hào)的中斷向量,從向量表中取到ES:BX中。

預(yù)置:AL=中斷類型號(hào) AH=35H執(zhí)行:INT21H返回:ES:BX=中斷服務(wù)程序入口地址33六、8086中斷向量的裝入和取出例:將中斷向量裝入向量表MOVAX,SEGINTPMOVDS,AXMOVDX,OFFSETINTP ;將中斷向量送DS:DXMOVAL,80H ;將中斷類型號(hào)送ALMOVAH,25HINT21H ;將中斷向量送向量表設(shè)中斷類型號(hào)為80H,中斷處理子程序名為INTP34六、8086中斷向量的裝入和取出例:將中斷向量從向量表中取出(常用于保存原中斷向量)MOVAL,80H ;將中斷類型號(hào)送ALMOVAH,35HINT21H ;將中斷向量取到ES:BX中

PUSHESPUSHBX;將中斷向量保存到堆棧設(shè)中斷類型碼為80H35§7.3可編程中斷控制器8259A及應(yīng)用一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)二、8259A的工作方式三、8259A的編程命令四、應(yīng)用舉例§7.3可編程中斷控制器8259A及應(yīng)用中斷控制器的功能就是在有多個(gè)中斷源的系統(tǒng)中,接收外部的中斷請(qǐng)求,并進(jìn)行判斷,選中當(dāng)前優(yōu)先級(jí)最高的中斷請(qǐng)求,再將此請(qǐng)求送到CPU的INTR端;當(dāng)CPU響應(yīng)中斷并進(jìn)入中斷子程序的處理過程后,中斷控制器仍負(fù)責(zé)對(duì)外部中斷請(qǐng)求的管理,如中斷嵌套等。

8259A的特點(diǎn):一片8259A可以接受8級(jí)可屏蔽中斷請(qǐng)求;通過9片8259A級(jí)聯(lián)可擴(kuò)展至64級(jí)可屏蔽中斷;對(duì)每一級(jí)中斷都可以通過程序來屏蔽或允許;為CPU提供響應(yīng)的中斷類型碼;具有多種工作方式。37一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)(1)8259ACS1WR2RD3D74D65D56D47D38D29D110D011CAS012CAS113GND1428VCC27A026INTA25IR724IR623IR522IR421IR320IR219IR118IR017INT16SP/EN15CAS2引腳作用D0~D7IR0~IR7A0CSWRRDINTINTACAS0~CAS2SP/EN雙向數(shù)據(jù)線(與CPU連接)中斷請(qǐng)求線(與外設(shè)連接)地址線(與CPU連接)片選線(與地址譯碼器連接)寫控制線(與CPU連接)讀控制線(與CPU連接)中斷申請(qǐng)(與CPU的INTR連接)中斷響應(yīng)(與CPU的INTA連接)雙向級(jí)聯(lián)(8259之間連接)編程/緩沖使能38一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)(2)39一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)(3)1.數(shù)據(jù)總線緩沖器

8259A與CPU間數(shù)據(jù)傳送的接口,CPU向8259A發(fā)送的數(shù)據(jù)、命令、控制字及8259A向CPU輸入的數(shù)據(jù),狀態(tài)信息都要經(jīng)過數(shù)據(jù)總線緩沖器。2.讀/寫控制電路

讀/寫控制電路接收CPU送來的讀/寫命令、片選信號(hào)以及端口選擇信號(hào),以實(shí)現(xiàn)CPU對(duì)8259A的讀/寫操作。40=1,數(shù)據(jù)從CPU到8259A=0,數(shù)據(jù)從8259A到CPU若不與總線驅(qū)動(dòng)器連接,則=5V,8259A為主片=0V,8259A為從片一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)(4)控制信號(hào)SP/EN為輸入控制信號(hào)SP/EN為輸出3.級(jí)聯(lián)緩沖器/比較器CAS0-CAS2引腳和控制信號(hào)SP/EN引腳共同用于8259A的級(jí)聯(lián)。CAS0-CAS2為用于級(jí)聯(lián)時(shí),主片給從片的選擇編碼信號(hào)。為增加總線的驅(qū)動(dòng)能力,8259A通過總線驅(qū)動(dòng)器與總線相連,則控制信號(hào)SP/EN控制數(shù)據(jù)的傳送方向。41從片CPU從片……IR0IR7IR2IR3IR0IR7INTINTINTCAS0~2D0~D7INTA最多可管理64個(gè)外部可屏蔽中斷SP/ENSP/ENSP/EN5V數(shù)據(jù)驅(qū)動(dòng)器一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)(5)424.中斷請(qǐng)求寄存器IRRIRR是一個(gè)具有鎖存功能的8位只讀寄存器,每一位對(duì)應(yīng)一個(gè)外部中斷請(qǐng)求信號(hào)IR,當(dāng)某個(gè)IR端有中斷請(qǐng)求,IRR中的相應(yīng)位置“1”。5.中斷屏蔽寄存器IMR

8位讀寫寄存器,與8個(gè)中斷源IR7~I(xiàn)R0相對(duì)應(yīng),通過IMR寄存器可以對(duì)各個(gè)中斷源進(jìn)行屏蔽或開放。一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)(6)IMRi=1,表示對(duì)應(yīng)的中斷被屏蔽0,表示對(duì)應(yīng)的中斷被允許43一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)(7)

6.中斷服務(wù)寄存器ISR8位只讀寄存器,與8級(jí)中斷IR7~I(xiàn)R0相對(duì)應(yīng),用來記錄正在處理中的中斷請(qǐng)求。

ISR中的相應(yīng)位置“1”,表示對(duì)應(yīng)的中斷正在處理。當(dāng)允許多重中斷時(shí),ISR中還包括中斷服務(wù)過程中被其他中斷打斷了的中斷級(jí),所以,ISR中可有多位同時(shí)被置1。

1110000044一、8259A的外部引腳和內(nèi)部結(jié)構(gòu)(8)7.優(yōu)先級(jí)判別器PR用來管理和識(shí)別各中斷申請(qǐng)信號(hào)的優(yōu)先級(jí)別;并通過控制電路向CPU發(fā)出中斷請(qǐng)求信號(hào)INT,在8259A獲得第一個(gè)中斷響應(yīng)信號(hào)時(shí)使ISR寄存器中相應(yīng)位置1

。8.控制電路該模塊是8259A的內(nèi)部控制器,控制8259A芯片的內(nèi)部工作過程,整個(gè)8259A芯片是在控制電路的控制下構(gòu)成一個(gè)有機(jī)的整體并完成中斷優(yōu)先級(jí)管理功能。46二、8259A的工作方式1、中斷優(yōu)先級(jí)設(shè)置2、中斷屏蔽方式3、中斷結(jié)束方式4、中斷觸發(fā)方式5、8259A與系統(tǒng)的連接方式471、中斷優(yōu)先級(jí)設(shè)置1)全嵌套方式(最常用方式)固定優(yōu)先級(jí)IR0(高)→IR7(低),響應(yīng)高級(jí)的中斷請(qǐng)求,同級(jí)和低級(jí)的中斷請(qǐng)求不響應(yīng)2)特殊全嵌套方式(用于多片級(jí)聯(lián)主片的設(shè)置)固定優(yōu)先級(jí)IR0(高)→IR7(低),響應(yīng)高級(jí)和同級(jí)的中斷請(qǐng)求,低級(jí)的中斷請(qǐng)求不響應(yīng)3)優(yōu)先級(jí)自動(dòng)循環(huán)方式當(dāng)中斷源被服務(wù)后優(yōu)先級(jí)自動(dòng)降為最低,它后面排列的中斷源則按順序遞升一級(jí)。如IR2被服務(wù)后,IR3的優(yōu)先級(jí)最高,其次為IR4,IR5……。一開始最低優(yōu)先級(jí)一定是IR7。4)優(yōu)先級(jí)特殊循環(huán)方式

與優(yōu)先級(jí)自動(dòng)循環(huán)方式類似,只是一開始最低優(yōu)先級(jí)由編程指定。482、中斷屏蔽方式2)特殊屏蔽方式(用于多級(jí)嵌套中斷)

當(dāng)優(yōu)先級(jí)高的中斷服務(wù)程序較長(zhǎng),而優(yōu)先級(jí)低的申請(qǐng)又急需服務(wù)時(shí),可用這種方式暫時(shí)屏蔽優(yōu)先級(jí)高的中斷,開放優(yōu)先級(jí)低的中斷。1)普通屏蔽方式

需要屏蔽哪一位,通過OUT指令將相應(yīng)的IMRi置位為1。493、中斷結(jié)束方式2)普通中斷結(jié)束方式(普通EOI,使用較多)在中斷結(jié)束之前用OUT指令向8259A發(fā)一個(gè)中斷結(jié)束命令字,將相應(yīng)ISRi位清0,必須放在IRET返回指令前。3)特殊中斷結(jié)束方式優(yōu)先級(jí)自動(dòng)循環(huán)方式和特殊循環(huán)方式無法確定當(dāng)前正在處理的是哪級(jí)中斷,需采用特殊中斷結(jié)束方式。在中斷結(jié)束之前用OUT指令向8259A發(fā)一個(gè)特殊中斷結(jié)束命令字,指明復(fù)位ISR的哪一位。1)中斷自動(dòng)結(jié)束方式(AEOI)

在第二個(gè)中斷響應(yīng)INTA到來時(shí),自動(dòng)將被置位的ISRi復(fù)位為0。常用于單片8259A且多個(gè)中斷無嵌套。504、中斷觸發(fā)方式1)電平觸發(fā)方式用高電平表示有效的中斷請(qǐng)求信號(hào),當(dāng)CPU響應(yīng)后,應(yīng)及時(shí)撤消高電平信號(hào)。2)邊沿觸發(fā)方式中斷請(qǐng)求信號(hào)以出現(xiàn)上升沿作為有效信號(hào)。3)中斷查詢方式中斷查詢即CPU不是靠中斷信號(hào)來進(jìn)入中斷處理,而是靠執(zhí)行查詢程序來確定是否有中斷及為哪個(gè)中斷服務(wù),一般用在多于64級(jí)中斷的場(chǎng)合。515、8259與系統(tǒng)的連接方式1)數(shù)據(jù)緩沖方式(接數(shù)據(jù)驅(qū)動(dòng)器)2)非緩沖方式(常用于8259單片使用)52三、8259A的編程命令優(yōu)先級(jí)判斷器ICW1ICW2ICW3ICW4OCW2OCW3IR0IR1IR2IR3IR4IR5IR6IR7SP/ENCAS2CAS1CAS0RDWRINTAD7~D0A0CSINTINTR地址譯碼AD7~AD0譯碼器OCW1(屏蔽寄存器IMR)請(qǐng)求寄存器IRR服務(wù)寄存器ISR中斷處理部件初始化命令寄存器操作命令寄存器8259A的編程結(jié)構(gòu)531、初始化命令(1)

初始化命令字ICWl~I(xiàn)CW4設(shè)定8259A的初始化狀態(tài),完成的主要功能是:1)設(shè)定中斷觸發(fā)方式,即高電平或上升沿觸發(fā);2)設(shè)定8259A的連接方式:?jiǎn)纹?、?jí)聯(lián)、緩沖方式、非緩沖方式;3)設(shè)定8259A的中斷類型號(hào)基值,即IR0對(duì)應(yīng)的中斷類型號(hào);4)設(shè)置8259A的中斷優(yōu)先級(jí)管理方式;5)設(shè)定中斷結(jié)束方式。ICWl~I(xiàn)CW4的編程必須按順序?qū)懭?,且只能寫一次,?yīng)在初始化程序中向8259A發(fā)出。541、初始化命令(2)ICW1:芯片控制初始化命令字,必須寫入8259A偶地址端口,其各位的功能及含義如下:

IC4ICW1×××10LTIMSNGL1:電平觸發(fā)0:邊沿觸發(fā)1:需要設(shè)置ICW4,0:不需要設(shè)置ICW41:?jiǎn)渭?jí)0:級(jí)聯(lián)標(biāo)志位A0=0D7D08086必須設(shè)置ICW4D4位是1表明現(xiàn)在設(shè)置ICW1而不是OCW2和OCW3551、初始化命令(3)ICW2:用來設(shè)置中斷類型碼的初始化命令字,必須寫入8259A奇地址端口。A0=1用戶編寫8259A自動(dòng)寫入××××ICW2(中斷類型號(hào))×D7D0如ICW2=20H,則IR0中斷號(hào)為20H,IR2中斷號(hào)為22H。如ICW2=45H,則IR0中斷號(hào)為40H,IR2中斷號(hào)為42H。初始化時(shí),一般將D0-D2置為0,代表IR0的中斷號(hào)。注意:ICW的高5位影響中斷類型碼,低3位由引入中斷的請(qǐng)求引腳IR0~IR7決定。561、初始化命令(4)ICW3:標(biāo)志主片/從片的初始化命令字,必須寫入8259A的奇地址端口。(多片級(jí)聯(lián)時(shí)才設(shè)置ICW3)ICW3(主片)1為對(duì)應(yīng)的IR引腳有從片,0為無從片表示輸出到主片的哪個(gè)端ICW3(從片)00000A0=1571、初始化命令(5)ICW4:方式控制初始化命令字,寫入8259A的奇地址端口。只有當(dāng)ICW1中的D0=1時(shí)才需要設(shè)置A0=1ICW4BUF000SFNMM/SAEOIPM1:特殊全嵌套0:全嵌套10緩沖從片

1緩沖主片0X非緩沖1:自動(dòng)EOI0:普通EOI1:8086/8088配置0:8位機(jī)配置582、初始化流程設(shè)置ICW1設(shè)置ICW2級(jí)聯(lián)?設(shè)置ICW3需要ICW4?設(shè)置ICW4YYNN準(zhǔn)備接收中斷申請(qǐng)注意:(1)設(shè)置初始化命令字時(shí),ICW1必須寫入偶地址端口,ICW2~ICW4必須寫入奇地址端口;(2)ICW1~ICW4的設(shè)置次序固定,不可顛倒;(3)每片8259A都必須設(shè)置ICW1和ICW2,是否需要設(shè)置ICW3和ICW4,在ICW1中已經(jīng)指明;(4)級(jí)聯(lián)方式下,主片和從片都要設(shè)置ICW3。例:設(shè)某8086系統(tǒng)中使用一片8259A,其端口地址為20H和21H。要求中斷請(qǐng)求信號(hào)為邊沿觸發(fā),其8個(gè)中斷的類型號(hào)為40H~47H,中斷優(yōu)先級(jí)為全嵌套方式,中斷結(jié)束方式為普通EOI方式,不使用緩沖器。試編寫初始化程序。解:(1)確定初始化命令字為

ICW1=00010011B=13HICW2=01000000B=40HICW4=00000001B=01H

(2)初始化程序

MOV AL,13HOUT 20H,AL;向偶端口地址20H寫ICW1MOV AL,40HOUT 21H,AL;向奇端口地址21H寫ICW2MOVAL,01HOUT 21H,AL;向奇端口地址21H寫ICW4

一般在計(jì)算機(jī)啟動(dòng)時(shí)初始化命令字就先裝入到8259A中,不需用戶再寫入。603、操作命令字(1)

在8259A工作期間,可寫入操作命令字,使8259A按照操作命令字的規(guī)定來工作。操作命令字有三個(gè)OCW1~OCW3,沒有固定順序的要求,可根據(jù)需要多次寫入,但對(duì)端口地址有嚴(yán)格的規(guī)定。613、操作命令字(2)

OCW1:中斷屏蔽字,寫入8259A的奇地址端口,實(shí)現(xiàn)對(duì)中斷源的屏蔽功能。A0=1Di=OCW1(IMR)D7D01:屏蔽由IRi進(jìn)入的中斷請(qǐng)求0:允許IRi端的中斷請(qǐng)求進(jìn)入QUESTION:如果OCW1=06H,則哪些中斷請(qǐng)求被屏蔽?623、操作命令字(3)

OCW2:優(yōu)先級(jí)循環(huán)方式和中斷結(jié)束命令字,寫入8259A的偶地址端口。A0=0OCW2SL=1時(shí)有效SLREOI00L0L1L2標(biāo)志位001——普通EOI方式011——特殊EOI方式101——普通EOI循環(huán)方式111——特殊EOI循環(huán)方式000——自動(dòng)EOI循環(huán)(復(fù)位)100——自動(dòng)EOI循環(huán)(置位)110——置位優(yōu)先權(quán)命令010——無效000——IR0001——IR1010——IR2011——IR3100——IR4101——IR5110——IR6111——IR7633、操作命令字(4)

OCW3:特殊屏蔽方式和中斷查詢方式操作命令字,寫入8259A的偶地址端口。A0=0OCW30SMM0PRRRIS0在下一個(gè)讀周期讀IRR11在下一個(gè)讀周期讀ISR0X無動(dòng)作10清除特殊屏蔽

1設(shè)置特殊屏蔽0X無效1:查詢8259狀態(tài)0:不查詢1ESMM標(biāo)志位四、應(yīng)用舉例例:在IBMPC/XT的62芯總線的IRQ2端輸入一中斷請(qǐng)求信號(hào),該信號(hào)由用戶自己定義的中斷源產(chǎn)生。要求每中斷一次,CPU響應(yīng)后在CRT上顯示一串字符‘8259AINTERUPT!’,并且中斷10次后返回DOS。IBMPC/XT中以8259A為核心的中斷邏輯如圖所示。IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ78086CPU8259A中斷控制器PC插卡槽同步通信中斷異步通信中斷硬盤驅(qū)動(dòng)器中斷軟盤驅(qū)動(dòng)器中斷打印機(jī)中斷INTR時(shí)鐘01234

5

67IRQ0鍵盤保留

已知:IBMPC/XT內(nèi)8259A的端口地址是20H和21H,并且已初始化成邊沿觸發(fā)、普通屏蔽(初始化屏蔽字為FFH)、非特殊全嵌套、正常中斷結(jié)束、固定優(yōu)先級(jí)、非緩沖方式,8259A所接的8個(gè)中斷源類型號(hào)為08H~0FH。試編寫匯編語(yǔ)言程序?qū)崿F(xiàn)題目的要求。

解:由已知條件可知IBMPC/XT系統(tǒng)內(nèi)部8259A的初始化命令字應(yīng)為:ICW1=13H(00010011B);ICW2=08H(00001000B);ICW4=01H(00000001B);IRQ2的中斷類型號(hào)就是0AH。66程序流圖:

將中斷服務(wù)子程序與主程序編在同一代碼段中斷服務(wù)子程序用DOS調(diào)用9H功能顯示字符串計(jì)數(shù)器減1中斷返回向8259A發(fā)中斷結(jié)束命令字OCW2在數(shù)據(jù)段將字符串放入數(shù)據(jù)表開始調(diào)用DOS35H和25H功能取出原中斷向量,裝入新中斷向量關(guān)中斷

置中斷次數(shù)并開中斷等待中斷主程序結(jié)束

設(shè)置中斷屏蔽字,開放IR2中斷次數(shù)到?恢復(fù)返回DOSNDATA SEGMENTMESSDB‘8259AINTERRUPT!’,0DH,0AH,‘$’

DATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATASTART:CLI;關(guān)中斷

MOV AX,350AH INT 21H ;取中斷向量到ES:BX PU

溫馨提示

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

評(píng)論

0/150

提交評(píng)論