微型計算機(jī)接口技術(shù):第七章 微型計算機(jī)中斷系統(tǒng)_第1頁
微型計算機(jī)接口技術(shù):第七章 微型計算機(jī)中斷系統(tǒng)_第2頁
微型計算機(jī)接口技術(shù):第七章 微型計算機(jī)中斷系統(tǒng)_第3頁
微型計算機(jī)接口技術(shù):第七章 微型計算機(jī)中斷系統(tǒng)_第4頁
微型計算機(jī)接口技術(shù):第七章 微型計算機(jī)中斷系統(tǒng)_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第七章 微型計算機(jī)中斷系統(tǒng)1 北京工業(yè)大學(xué)計算機(jī)學(xué)院中斷的功能 中斷處理的過程 中斷優(yōu)先級和中斷嵌套 可編程中斷控制器8259A主要內(nèi)容重點(diǎn)難點(diǎn): 可編程中斷控制器8259A的應(yīng)用2 北京工業(yè)大學(xué)計算機(jī)學(xué)院7-1 概述一、中斷的概念中斷中斷源中斷響應(yīng):中斷請求發(fā)生是隨機(jī)的,CPU檢測到中斷請求,IF=1時,CPU相應(yīng)中斷,發(fā)INTA中斷響應(yīng)信號。然后轉(zhuǎn)向中斷服務(wù)程序,執(zhí)行完畢后返回原執(zhí)行程序的中斷處,繼續(xù)執(zhí)行,稱為中斷返回。 中斷向量表: CPU響應(yīng)中斷后,由中斷源提供地址信息,中斷服務(wù)程序的入口地址存放在內(nèi)存中專門開辟一個區(qū)域的中斷向量表。中斷優(yōu)先級:當(dāng)有多個中斷源請求中斷時,中斷系統(tǒng)需判別

2、其優(yōu)先級,CPU響應(yīng)優(yōu)先級高的中斷,掛起低的中斷,且可實(shí)現(xiàn)中斷嵌套。中斷屏蔽:當(dāng) 中斷源申請中斷時,CPU可以通過軟件設(shè)置,使之不能響應(yīng),稱為中斷屏蔽 當(dāng)CPU正常執(zhí)行程序時,由于內(nèi)外部設(shè)備請求的原因,打斷CPU正在運(yùn)行程序而轉(zhuǎn)向執(zhí)行一段預(yù)先安排好的中斷服務(wù)程序,執(zhí)行完,再返回原來被中止的程序繼續(xù)執(zhí)行.這一過程稱為中斷. 引起中斷的事件3 北京工業(yè)大學(xué)計算機(jī)學(xué)院二、中斷的分類:見圖7-1 內(nèi)部中斷 (軟件中斷)外部中斷來自CPU外部的中斷 (硬件中斷)CPU內(nèi)部指令I(lǐng)NT引起的中斷不可屏蔽中斷NMI可屏蔽中斷 INTRRAM奇偶校驗錯I/O通道的擴(kuò)展板出現(xiàn)奇偶校驗錯8087有中斷請求外設(shè)提出請

3、求,用戶可軟件屏蔽,CPU可不予響應(yīng).1、INT n2、運(yùn)算錯誤3、debug除法錯溢出單步中斷斷點(diǎn)中斷用戶不能用軟件來屏蔽7-1 概述4 北京工業(yè)大學(xué)計算機(jī)學(xué)院可屏蔽中斷處理過程:中斷請求;中斷響應(yīng);保護(hù)現(xiàn)場;轉(zhuǎn)入執(zhí)行中斷服務(wù)子程序;恢復(fù)現(xiàn)場和中斷返回。其流程圖7-2所示一、CPU響應(yīng)中斷過程 CPU響應(yīng)中斷的三個條件:外設(shè)提出中斷申請本中斷位未被屏蔽中斷允許 CPU響應(yīng)中斷后,對外設(shè)接口發(fā)出兩個中斷響應(yīng)信號INTA,外設(shè)收到第二個INTA后給CPU送中斷類型號。并轉(zhuǎn)入響應(yīng)中斷服務(wù)子程序。7-2 中斷處理過程5 北京工業(yè)大學(xué)計算機(jī)學(xué)院響應(yīng)中斷后自動依次做以下工作:從數(shù)據(jù)總線上讀取中斷類型號,

4、將其存入內(nèi)部暫存器將標(biāo)志寄存器PSW的值入棧IF清零、單步標(biāo)志清0保護(hù)斷點(diǎn),CS,IP入棧根據(jù)中斷類型號到中斷向量表中找到中斷向量,轉(zhuǎn)入響應(yīng)的中斷服務(wù)子程序中斷處理結(jié)束,從堆棧中彈出IP,CS,PSW,返回主程序非屏蔽中斷和軟件(內(nèi)部)中斷的響應(yīng)過程與外部中斷類似,只是中斷類型碼是自動生成的, CPU在獲取了類型碼后的處理過程是一樣的。圖7-3給出中斷響應(yīng)過程。7-2 中斷處理過程6 北京工業(yè)大學(xué)計算機(jī)學(xué)院二、中斷向量表 尋找中斷源可以有查詢中斷和矢量中斷兩種方法。查詢中斷:中斷響應(yīng)后啟動中斷查詢程序,依次查詢設(shè)備中斷觸發(fā)器,轉(zhuǎn)向此設(shè)備預(yù)先設(shè)置的中斷服務(wù)程序入口地址。矢量中斷:將每個設(shè)備的中斷

5、服務(wù)程序的入口地址依次放在中斷向量表中,當(dāng)CPU響應(yīng)中斷,控制邏輯根據(jù)外設(shè)提供的中斷類型號查找中斷向量表,然后將中斷的服務(wù)程序的入口地址送到段寄存器和指令指針寄存器,CPU轉(zhuǎn)入中斷服務(wù)子程序。7-2 中斷處理過程7 北京工業(yè)大學(xué)計算機(jī)學(xué)院1、中斷向量表:又稱中斷服務(wù)程序入口地址表。 在8086系統(tǒng)中,采用的是向量中斷。系統(tǒng)規(guī)定在內(nèi)存的最低端前1K字節(jié)(00000H003FFH)存放一張中斷向量表,用于存放各個中斷源的中斷處理子程序的入口地址(稱中斷向量)。 每個向量占4個字節(jié),1K字節(jié)空間可存放256個中斷向量。 ( N=0255/00HFFH )存放規(guī)則:高2個字節(jié)存放中斷入口地址的段地址C

6、S中斷向量在表中的地址 = 類型號(n)4 低2個字節(jié)存放中斷入口地址的段內(nèi)偏移量IPCS(H)CS(L)IP(H)IP(L)4n4n+14n+24n+37-2 中斷處理過程8 北京工業(yè)大學(xué)計算機(jī)學(xué)院STIPUSH DSIRET:例:某中斷的中斷類型號為68H,中斷服務(wù)程序入口地址 的段地址為A000H,偏移量為2050H. INT 68HMOV AX,0向量地址的計算68H*4=1A0H2050HIPA000HCSA000H:2050H67H中斷向量69H中斷向量50H20H00HA0H1A0H1A1H1A2H1A3H7-2 中斷處理過程9 北京工業(yè)大學(xué)計算機(jī)學(xué)院8086/8088的中斷向量

7、表10 北京工業(yè)大學(xué)計算機(jī)學(xué)院2、中斷入口地址的設(shè)置用DOS功能來設(shè)置設(shè)置中斷向量取中斷向量預(yù)置:AL=中斷類型號 DS:DX=中斷服務(wù)程序入口地址 AH=25H執(zhí)行:INT 21H預(yù)置:AL=中斷類型號 AH=35H執(zhí)行:INT 21H 返回:ES:BX=中斷服務(wù)程序入口地址7-2 中斷處理過程11 北京工業(yè)大學(xué)計算機(jī)學(xué)院用指令來設(shè)置MOV AX,0MOV ES,AXMOV DI,N*4MOV AX,OFFSET INTRADCLDSTOSWMOV AX,CSSTOSWSTI:INTRAD:PUSH AX STI : IRETMOV AX,0MOV ES,AXMOV BX,N*4MOV AX

8、,OFFSET INTRADMOV ES:WORD PTRBX,AXMOV AX,SEG INTRADMOV ES:WORD PTRBX+2,AXSTI:方法一方法二7-2 中斷處理過程12 北京工業(yè)大學(xué)計算機(jī)學(xué)院N=68H 用DOS功能來設(shè)置MOV AX,SEG INTRAD ;段地址 DSMOV DS,AXMOV DX,OFFSET INTRADMOV AL,68HMOV AH,25HINT 21H : :例:若已知中斷服務(wù)程序的入口地址為3000H:1800H,N=90HMOV AX,3000H ;段地址 DSMOV DS,AXMOV DX,1800HMOV AL,90HMOV AH,2

9、5HINT 21H :13 北京工業(yè)大學(xué)計算機(jī)學(xué)院三、中斷服務(wù)子程序 見書上的例子四、中斷響應(yīng)時序 CPU對可屏蔽中斷請求的響應(yīng)過程要執(zhí)行兩個連續(xù)的中斷響應(yīng)INTA總線周期,每個周期包括4個時鐘周期T1-T4,第一個周期,CPU通知外設(shè)準(zhǔn)備響應(yīng)中斷,外設(shè)應(yīng)準(zhǔn)備好中斷類型號,第二個周期,CPU接收外設(shè)借口發(fā)來的中斷類型號。 見書上7-6時序圖7-2 中斷處理過程14 北京工業(yè)大學(xué)計算機(jī)學(xué)院系統(tǒng)當(dāng)有多個中斷源請求中斷時,中斷系統(tǒng)需判別其優(yōu)先級,CPU響應(yīng)優(yōu)先級高的中斷,掛起低的中斷,且可實(shí)現(xiàn)中斷嵌套。見圖7-7多中斷源流程圖一、中斷優(yōu)先級 PC機(jī)中規(guī)定的優(yōu)先級次序為7-3 中斷優(yōu)先級和中斷嵌套除法

10、錯INTO指令I(lǐng)NT n指令NMIINTR單步執(zhí)行優(yōu)先級高低15 北京工業(yè)大學(xué)計算機(jī)學(xué)院可屏蔽中斷的優(yōu)先級設(shè)定的方法軟件查詢中斷優(yōu)先級- 查詢的次序硬件查詢優(yōu)先方式-菊花鏈法 采用硬件查詢優(yōu)先的方式,它是在每個外設(shè)的對應(yīng)接口上連接一個邏輯電路構(gòu)成一個鏈,控制了中斷響應(yīng)信號的通路。圖7-8當(dāng)多個外設(shè)同時申請中斷時,最接近CPU的接口優(yōu)先得到中斷響應(yīng)。矢量中斷優(yōu)先級 采用中斷優(yōu)先級控制器設(shè)置優(yōu)先級,見圖7-9,外設(shè)可以有8個中斷源,送入中斷寄存器,中斷屏蔽寄存器可設(shè)置屏蔽中斷請求,優(yōu)先級管理邏輯判別出最高優(yōu)先級,將其中斷級轉(zhuǎn)換成3位碼,送入中斷類型寄存器和當(dāng)前服務(wù)寄存器,向CPU發(fā)中斷請求進(jìn)行中斷

11、處理,結(jié)束后將服務(wù)寄存器對應(yīng)為清0,級別較低的中斷請求得到響應(yīng)。7-3 中斷優(yōu)先級和中斷嵌套16 北京工業(yè)大學(xué)計算機(jī)學(xué)院矢量中斷優(yōu)先級17 北京工業(yè)大學(xué)計算機(jī)學(xué)院二、中斷嵌套 中斷嵌套的深度沒有限制,按的優(yōu)先級次序依次響應(yīng),見圖7-10主程序必須有開中斷指令;中斷服務(wù)程序必須有STI開中斷指令 中斷結(jié)束前要有EOI中斷結(jié)束命令,用來清除中斷服務(wù)寄存器的對應(yīng)位。中斷返回IRET,返回出棧PSW,CS,IP一個正在執(zhí)行的中斷處理程序,能夠被優(yōu)先級高于它的中斷源中斷。若過早進(jìn)行EOI,低級中斷也可中斷。7-3 中斷優(yōu)先級和中斷嵌套18 北京工業(yè)大學(xué)計算機(jī)學(xué)院.EOI.STI.主程序STI.IR2處理

12、程序STI.IR1處理程序IR3處理程序IR2中斷清除IR4中斷請求STI.EOIIRET開中斷IR3中斷清除IR1中斷請求IR2,IR4中斷請求IR3中斷請求IRETIR1中斷清除.EOIIRETIR4中斷清除.EOIIRETIR4處理程序.例.外部中斷請求IR0IR7,固定優(yōu)先級IR0最高,IR7最低。.19 北京工業(yè)大學(xué)計算機(jī)學(xué)院7-4 可編程中斷控制器8259A8259A引腳和功能內(nèi)部結(jié)構(gòu)8259A的中斷管理方式8259A的編程方法8259A的中斷級聯(lián)主要內(nèi)容20 北京工業(yè)大學(xué)計算機(jī)學(xué)院一、功能和引腳 8259A是8086/8088系列的可編程中斷控制器有如下功能: (1)一片Inte

13、l 8259可管理8個中斷請求,并把當(dāng)前優(yōu)先級最高的中斷請求送到CPU的INTR端. (2)允許9片8259級聯(lián),構(gòu)成64級可屏蔽的中斷系統(tǒng)。 (3)每一級中斷可由程序單獨(dú)屏蔽或允許 (4)當(dāng)CPU響應(yīng)中斷時,為CPU提供中斷類型碼. (5)可以通過編程選擇多種不同工作方式 8259A為28腳雙列直插式芯片,其引腳圖和內(nèi)部結(jié)構(gòu)圖見圖7-117-4 可編程中斷控制器8259A21 北京工業(yè)大學(xué)計算機(jī)學(xué)院Intel 8259A芯片引腳一、功能和引腳Intel8259的引腳: D7D0 411 三態(tài)、雙向數(shù)據(jù)線,直接或通過總線驅(qū)動器與系統(tǒng)的數(shù)據(jù)總線相連IR0IR7 1825 輸入 外設(shè)的中斷請求信號

14、輸入端,中斷請求信號可以是電平觸發(fā)或邊沿觸發(fā),中斷級聯(lián)時,連接8259A從片INT端。CS 輸入 片選信號,通過譯碼電路與高位地址總線相連 WR 輸入 寫信號 RD 輸入 讀信號22 北京工業(yè)大學(xué)計算機(jī)學(xué)院CAS0CAS2 12、13、15 雙向級聯(lián)信號線,主8259A作為輸出線,從8259A為輸入線。與SP/EN配合實(shí)現(xiàn)8259級聯(lián) SP/EN 16 編程/雙向使能緩沖, 作為輸入使用時若8259A為主片SP=1,若是從片SP=0; 作為輸出使用時,啟動8259到CPU之間的數(shù)據(jù)總線驅(qū)動器。 SP/EN作為輸入或輸出,決定8259A是否采用緩沖方式,若采用則作為輸出;非緩沖方式則為輸入。IN

15、T 17 輸出 8259A中斷申請,對CPU 提出中斷申請。該腳連到CPU的 INTR引腳。INTA 26 輸入 CPU發(fā)給8259的中斷響應(yīng)信號:二個中斷響應(yīng)脈沖,第一個INTA用來 通知8259A,中斷申請已被響應(yīng),第二個INTA作為特殊操作信號,讀取8259A提供的中斷類型號. A0 27 輸入 A0地址線(端口選擇信號):這個腳與CS、WR和RD聯(lián)合使用。以使CPU實(shí)現(xiàn)時8259A進(jìn)行讀寫操作。GND 14 輸入 地Vcc 28 輸入 +5V電源 一、功能和引腳23 北京工業(yè)大學(xué)計算機(jī)學(xué)院數(shù)據(jù)總線緩沖器讀/寫控制電路級聯(lián)緩沖器/比較器控制電路中斷屏蔽寄存器(IMR)中斷服務(wù)寄存器(IS

16、R)優(yōu)先級判別器中斷請求寄存器(IRR)D7D0CAS0CAS1CAS2SP/ENRDWRA0CSINTA INTIR0IR1IR2IR3IR4IR5IR6IR7二、8259A內(nèi)部結(jié)構(gòu)8259A內(nèi)部結(jié)構(gòu)框圖24 北京工業(yè)大學(xué)計算機(jī)學(xué)院1、數(shù)據(jù)總線緩沖器三態(tài)雙向的8位緩沖器用來把8259A接至系統(tǒng)數(shù)據(jù)總線上去。CPU編程控制字和狀態(tài)信息,都是通過數(shù)據(jù)總線緩沖器傳送。2、讀寫控制電路接收CPU送來的讀寫命令,WR、RD,片選信號CS及端口選擇信號A0 CS:片選信號。低電平有效時,啟動8259A工作。 A0:提供8259A訪問兩個不同的端口地址。 WR:寫信號。用來通知8259A從數(shù)據(jù)總線上接收數(shù)

17、據(jù)。 即CPU往8259A發(fā)送命令字。 RD:讀信號。用來通知8259A將某個內(nèi)部寄存器的內(nèi)容 送到數(shù)據(jù)總線上。見表7-28259的讀寫功能二、8259A內(nèi)部結(jié)構(gòu)25 北京工業(yè)大學(xué)計算機(jī)學(xué)院3、級聯(lián)緩沖器/比較器 8259A與系統(tǒng)總線相連有兩種方式, 緩沖方式:在多片8259A級聯(lián)的系統(tǒng)中,8259A通過總線驅(qū) 動器和數(shù)據(jù)總線相連。 非緩沖方式:可以將8259A直接和數(shù)據(jù)總線相連4、中斷請求寄存器(IRR)是一個8位寄存器,存放外部輸入的中斷請求信號IR7IR0。當(dāng)IR端有中斷請求時,IRR相應(yīng)位置1,當(dāng)中斷請求被相應(yīng)時,IRR的相應(yīng)位復(fù)位二、8259A內(nèi)部結(jié)構(gòu)26 北京工業(yè)大學(xué)計算機(jī)學(xué)院5、

18、中斷屏蔽寄存器(IMR)是8位寄存器表示要屏蔽中斷線上的哪些位。IMR對IRR起屏蔽作用。1=屏蔽,0=允許。屏蔽優(yōu)先級較高的輸入不影響優(yōu)先級較低的中斷請求線。6、優(yōu)先級判別器(PR)該邏輯部件確定IRR中置1的各位的優(yōu)先級。優(yōu)先級最高的被選出來,并用INTA脈沖選通送入ISR的對應(yīng)位。當(dāng)多重中斷時,允許優(yōu)先級高的中斷打斷優(yōu)先級低的中斷。7、中斷服務(wù)寄存器(ISR)保存正在處理的中斷請求信號,某個IR輸入線上的中斷請求信號被響應(yīng)后,CPU發(fā)第一個INTA時,ISR響應(yīng)為置1,直到中斷結(jié)束,發(fā)EOI命令相應(yīng)位清零。允許ISR多位置1。二、8259A內(nèi)部結(jié)構(gòu)27 北京工業(yè)大學(xué)計算機(jī)學(xué)院8、控制電路

19、是8259A的內(nèi)部控制器,根據(jù)中斷請求寄存器IRR的置位情況和中斷屏蔽寄存器的設(shè)置情況,通過優(yōu)先級判別器PR判斷優(yōu)先級,向8259A內(nèi)部及其他部件發(fā)出中斷控制信號。向CPU發(fā)出中斷請求信號INT和接收CPU的中斷響應(yīng)信號INTA,ISR置1,IRR請0,第二個INTA控制8259發(fā)出中斷類型號,若ICW4的中斷結(jié)束位為1,ISR相應(yīng)位清0二、8259A內(nèi)部結(jié)構(gòu)28 北京工業(yè)大學(xué)計算機(jī)學(xué)院8259A有多種工作方式,可通過編程方法來設(shè)置。1、8259A的編程結(jié)構(gòu) 如圖7-12,8259A通過初始化時寫入初始化命令字和操作命令字來設(shè)置 初始化命令字寫入ICW1ICW4,初始化命令字一經(jīng)寫入在系統(tǒng)工作

20、過程中就不再改變 操作命令字寫入OCW1OCW3,用于對中斷處理過程進(jìn)行控制,系統(tǒng)工作過程中操作命令可以重新設(shè)置。 優(yōu)先級管理方式可采用多種方式,固定方式,循環(huán)方式,還可采用中段嵌套等 三、8259A的中斷管理方式29 北京工業(yè)大學(xué)計算機(jī)學(xué)院CPU8086或8088地址總線當(dāng)前中斷服務(wù)寄存器優(yōu)先級裁決器中斷屏蔽寄存器地址譯碼中斷請求寄存器如為8086則連接總線的A1;如為8088則連接總線的A0ICW2 (類型 ) 任選請求級別ICW3 (主/從)OCW1OCW2OCW3CAS0CAS1CAS2IR0IR1IR2IR3IR4IR5IR6IR7INTAWRRDA0CSD7D0SP/ENICW1

21、(芯片控制)8259A的編程結(jié)構(gòu)ICW4 (方式)INTAD7AD0INTR30 北京工業(yè)大學(xué)計算機(jī)學(xué)院2、優(yōu)先級設(shè)置方式:完全嵌套方式;特殊全嵌套方式;優(yōu)先級自動循環(huán)方式;優(yōu)先級特殊循環(huán)方式 完全嵌套方式:未設(shè)置時,自動進(jìn)入此方式 可用初始化命令字ICW4中的SFNM=0設(shè)置此方式 。 中斷優(yōu)先級順序:固定IR0(高)IR7(低) 中斷服務(wù)寄存器ISR中的對應(yīng)位置1,且保持到中斷服務(wù)程序在返回前發(fā)中斷結(jié)束命令為止。 在ISR位置位期間,禁止同級和低級中斷請求,允許較高一級的中斷請求。即中斷嵌套。 支持兩種中斷結(jié)束方式,普通EOI結(jié)束和自動AEOI結(jié)束方式三、8259A的中斷管理方式31 北京

22、工業(yè)大學(xué)計算機(jī)學(xué)院 特殊全嵌套工作方式: 與完全嵌套方式基本相同。只是在特殊全嵌套方式下,當(dāng)處理某一級中斷時,如果有同級的中斷請求,也會給予響應(yīng)。從而實(shí)現(xiàn)一種對同級中斷請求的特殊嵌套。 特殊全嵌套方式一般用于8259A級聯(lián)的系統(tǒng)中,是專門為多片8259A系統(tǒng)提供的用來確認(rèn)從片內(nèi)部優(yōu)先級的工作方式。級聯(lián)時將主片設(shè)置為特殊全嵌套方式,從片設(shè)置為其它方式。 可用初始化命令字ICW4中的SFNM=1,設(shè)置此方式 。 同時 ICW4中的AEOI位置0,設(shè)成非自動結(jié)束方式,通常用特殊EOI結(jié)束方式三、8259A的中斷管理方式32 北京工業(yè)大學(xué)計算機(jī)學(xué)院 優(yōu)先級自動循環(huán)方式: 此方式優(yōu)先級別可以改變。初始化

23、時初始優(yōu)先級次序規(guī)定為:IR0最高、IR7最低,一個設(shè)備服務(wù)完畢,其優(yōu)先級自動排列到最后。 例如IR3進(jìn)行中斷處理,IR3處理完后,優(yōu)先級順序為IR4,IR5,IR6,IR7,IR0,IR2,IR3 可用操作命令字OCW2中的R、SL=10就可設(shè)置成此方式 。 根據(jù)結(jié)束方式不同,有兩種自動循環(huán)方式:普通EOI結(jié)束方式和自動EOI結(jié)束方式三、8259A的中斷管理方式33 北京工業(yè)大學(xué)計算機(jī)學(xué)院 優(yōu)先級特殊循環(huán)方式: 此方式和優(yōu)先級自動循環(huán)方式類似,優(yōu)先級別可以改變,不同之處為初始化時初始優(yōu)先級可由程序規(guī)定,例如規(guī)定為:IR1最低那么IR1最高。 可用操作命令字OCW2中的R、SL=11就可設(shè)置成

24、此方式 。結(jié)束方式不同通常用特殊EOI結(jié)束方式。三、8259A的中斷管理方式34 北京工業(yè)大學(xué)計算機(jī)學(xué)院3、中斷結(jié)束方式: 中斷結(jié)束方式實(shí)際上就是對中斷服務(wù)寄存器ISR中對應(yīng)位的處理。當(dāng)ISRi=1,表示正對相應(yīng)外設(shè)進(jìn)行處理;當(dāng)中斷結(jié)束時,必須使ISRi=0,什么時候使ISR對應(yīng)位置“0”,就產(chǎn)生了不同的中斷方式。包括普通EOI方式;特殊EOI方式;自動AEOI方式。 普通EOI方式:在中斷返回IRET前,發(fā)EOI結(jié)束命令字后,ISRi被清0。適用于:完全嵌套方式。 設(shè)置OCW2:R、SL、EOI=001 mov al,20h out 20h,al三、8259A的中斷管理方式35 北京工業(yè)大學(xué)

25、計算機(jī)學(xué)院 特殊SEOI方式 中斷服務(wù)寄存器無法確定哪一級中斷為最后響應(yīng)和處理的,這時采用SEOI方式向CPU發(fā)SEOI命令字,命令字中包含當(dāng)前要清除的中斷級別,同時傳遞給8259清ISRi為0適用于:非完全嵌套方式。設(shè)置OCW2:R、SL、EOI=111,L0L2三位指明中斷結(jié)束的對應(yīng)位。 自動AEOI方式 在CPU進(jìn)入中斷響應(yīng)周期,發(fā)第二個INTA脈沖后, 系統(tǒng)自動完成響應(yīng)的ISRi位清0。初始化時設(shè)置ICW4中AEOI=1問題:容易產(chǎn)生低級中斷打斷高級中斷,產(chǎn)生嵌套。 級聯(lián)方式下,采用非自動結(jié)束方式,中斷結(jié)束時要發(fā)兩次結(jié)束命令,一次是給主片的一次是給從片的。三、8259A的中斷管理方式3

26、6 北京工業(yè)大學(xué)計算機(jī)學(xué)院4、循環(huán)優(yōu)先級的循環(huán)方法 循環(huán)優(yōu)先級方式中與中斷結(jié)束有關(guān)有三種循環(huán)方式:普通EOI循環(huán)方式;特殊EOI循環(huán)方式;自動EOI循環(huán)方式 普通EOI循環(huán)方式 在主程序或中斷服務(wù)程序中設(shè)置操作命令字,當(dāng)任何一級中斷處理后,發(fā)送普通EOI命令,8259A將ISR寄存器的最高優(yōu)先級IRi置1位清0,并賦給它最低優(yōu)先級,將IRi+1賦給最高優(yōu)先級。 例子見表7-3普通EOI命令設(shè)置OCW2:R、SL、EOI=101,L0L2不起作用。 三、8259A的中斷管理方式37 北京工業(yè)大學(xué)計算機(jī)學(xué)院特殊EOI循環(huán)方式 和普通EOI循環(huán)方式類似,但需編程指定最低優(yōu)先級,中斷結(jié)束前回送特殊EO

27、I結(jié)束命令,8259A收到此命令后,指定最低優(yōu)先級,并重新排列優(yōu)先級級別。 例子見表7-4特殊EOI命令設(shè)置OCW2:R、SL、EOI=111,L0L2指定一個最低優(yōu)先級。 自動EOI循環(huán)方式 任何一級中斷被響應(yīng)后,CPU進(jìn)入中斷響應(yīng)周期,發(fā)第二個INTA信號的后沿自動將ISRi位清0,并立即改變中斷的優(yōu)先級別,改變方式與普通EOI方式相同。 特殊EOI命令設(shè)置OCW2:R、SL、EOI=100,三、8259A的中斷管理方式38 北京工業(yè)大學(xué)計算機(jī)學(xué)院5、中斷源屏蔽方式 中斷優(yōu)先級管理也可以對中斷請求單獨(dú)屏蔽,通過對中斷屏蔽寄存器的操作可以實(shí)現(xiàn)對某幾位的屏蔽 普通EOI屏蔽方式 8259A的每

28、個中斷請求都可通過對應(yīng)中斷屏蔽寄存器的屏蔽位的設(shè)置被屏蔽,從而使這個中斷請求不能從8259A送到CPU。設(shè)置通過OCW1來實(shí)現(xiàn)。 例子7-12 特殊EOI屏蔽方式 屏蔽本級中斷,而允許優(yōu)先級比它高或低的中斷進(jìn)入。三、8259A的中斷管理方式39 北京工業(yè)大學(xué)計算機(jī)學(xué)院 在中斷服務(wù)程序執(zhí)行期間,在軟件的控制下,動態(tài)地改變系統(tǒng)的優(yōu)先級結(jié)構(gòu),讓級別低的中斷源也能得到服務(wù)。特殊屏蔽方式由OCW3設(shè)定:ESMM=1,SMM=1:設(shè)定特殊屏蔽方式,設(shè)OCW1中IMRi=1 .這樣IR0-IRi-1允許,IRi+1-IR7允許.ESMM=1,SMM=0:退出特殊屏蔽方式;設(shè)OCW1中 IMRi=0三、825

29、9A的中斷管理方式40 北京工業(yè)大學(xué)計算機(jī)學(xué)院6、中斷請求引入方式 中斷請求引入有三種方式,邊沿觸發(fā)方式;電平觸發(fā)方式;中斷查詢方式。 邊沿觸發(fā)方式: 指中斷請求以正跳變(上升沿)觸發(fā),觸發(fā)后可一直保持高電平 ICW1中設(shè)定:LTIM=0 電平觸發(fā)方式: 中斷請求以高電平觸發(fā)。 一旦響應(yīng),應(yīng)該及時 撤除高電平,以免引起二次中斷。 ICW1中設(shè)定:LTIM=1三、8259A的中斷管理方式41 北京工業(yè)大學(xué)計算機(jī)學(xué)院 中斷查詢方式: 可以采用上述兩種觸發(fā)方式,但不使用INT信號向CPU發(fā)中斷請求,CPU內(nèi)部的中斷允許觸發(fā)器復(fù)位,禁止外部對CPU的中斷請求,CPU使用軟件查詢來確定中斷源,實(shí)現(xiàn)對外設(shè)

30、的中斷服務(wù)。 CPU通過操作命令字OCW3的設(shè)置來發(fā)出查詢命令, P=1,就發(fā)出查詢命令。 因為中斷請求后,中斷服務(wù)寄存器相應(yīng)位置1,所以可通過讀取中斷服務(wù)寄存器的狀態(tài),來確定中斷源 查詢程序的過程:中斷查詢方式一般用在多于64級中斷的場合,或者在一個中斷服務(wù)程序中幾個模塊分別為幾個中斷設(shè)備服務(wù)的情況下。三、8259A的中斷管理方式42 北京工業(yè)大學(xué)計算機(jī)學(xué)院CPU所執(zhí)行的查詢程序應(yīng)包括如下過程:1、系統(tǒng)關(guān)中斷2、用OUT命令向8259(偶地址端口)送OCW3命令字3、若外設(shè)已發(fā)送過中斷請求,在ISR中使對應(yīng)位 置“1”,且立即組成查詢字4、CPU用IN指令從端口(偶地址)讀取8259A查詢字

31、OCW3命令字構(gòu)成的查詢命令格式為:X 0 0 0 1 1 0 0D7 D6 D5 D4 D3 D2 D1 D0IR = 1 有中斷請求 0 無中斷請求優(yōu)先級最高的IR位IR - W2 W1 W0D7 D6 - D2 D1 D043 北京工業(yè)大學(xué)計算機(jī)學(xué)院8259A的編程有兩類命令字:初始化命令字和操作命令字。 初始化命令字(ICW):在正常操作開始之前,必須將系統(tǒng)中每個8259A預(yù)置成一個狀態(tài),且在整個工作過程中保持不變。 操作命令字(OCW):用于控制8259A以各種中斷方式進(jìn)行工作的命令字??蓪χ袛嗵幚磉^程作動態(tài)控制。經(jīng)過初始化后,任何時候都可以向8259A重復(fù)設(shè)置OCW。四、8259A

32、的編程方法44 北京工業(yè)大學(xué)計算機(jī)學(xué)院 8259A初始化命令字 完成的功能1、設(shè)定中斷請求信號觸發(fā)形式,高電平或上升沿2、設(shè)定8259的工作方式,單片或級聯(lián)3、設(shè)定中斷類型號基址,即IR0對應(yīng)的中斷類型號4、設(shè)定優(yōu)先級設(shè)置方式5、設(shè)定中斷處理結(jié)束時的結(jié)束操作方式 8259共預(yù)置4個命令字:ICW1、ICW2、ICW3、ICW4。初始化命令字必須順序填寫。 8259A有兩個端口地址,偶地址和奇地址四、8259A的編程方法45 北京工業(yè)大學(xué)計算機(jī)學(xué)院ICW1的格式:芯片控制初始化命令字 | | | 1 | LTIM | ADI | SNGL |IC4 0級聯(lián)1 單片 8086/8088系統(tǒng)不用80

33、86/8088系統(tǒng)不用0 中斷請求為邊沿觸發(fā)方式1 中斷請求為電平觸發(fā)方式 ICW1的標(biāo)識位D7 D6 D5 D4 D3 D2 D1 D08259A的初始化命令字區(qū)別OCW2和OCW3控制字的設(shè)置0A0例7-13. 系統(tǒng)中8259A為單片方式,上升沿觸發(fā),要求設(shè)置ICW4.則 ICW1=13H1:需要設(shè)置ICW4 0:不需要設(shè)置46 北京工業(yè)大學(xué)計算機(jī)學(xué)院ICW2的格式:設(shè)置中斷類型號初始化命令字 中斷類型碼的高5位保存在ICW2的高5位中;低3位由被響應(yīng)的中斷源(IR0IR7)的編碼產(chǎn)生,系統(tǒng)自動插入。8259A的初始化命令字1A00 0 0T7 T6 T5 T4 T3D7 D6 D5 D4

34、 D3 D2 D1 D0中斷類型的高5位由用戶設(shè)定(中斷類型號基址)例. 中斷類型號 n=6AH 則, D7-D3=01101 由用戶設(shè)定, D2-D0=010 自動插入,對應(yīng)IR2中斷響應(yīng),例7-1447 北京工業(yè)大學(xué)計算機(jī)學(xué)院IDi 作為一個標(biāo)識碼,指示該從片連在主片的 哪一個IRi 引腳上。ICW3的 格式:(作為從片)ICW3的格式:(作為主片)D7 D6 D5 D4 D3 D2 D1 D0 IR7 | IR6 | IR5 | IR4 | IR3 | IR2 | IR1 | IR0 IRi 如果某一引腳連有從片,則對應(yīng)位為; 如果未連從片,則對應(yīng)位為0 0 0 0 0D7 D6 D5

35、D4 D3 D2 D1 D0ID2ID1ID01A01A0例. ID2ID1ID0=010,表示從片接在主片的IR2端48 北京工業(yè)大學(xué)計算機(jī)學(xué)院 在多片8259A級聯(lián)情況下,主片與從片的CAS0-CAS2相連,主片為輸出,從片為輸入。當(dāng)CPU發(fā)第一個中斷響應(yīng)信號INTA時,主片通過CAS0-CAS2發(fā)一個編碼ID2-ID0,從片的CAS0-CAS2收到編碼后與ICW3中的ID2-ID0相比較,如果相等則在第二個INTA信號到來后,將自己的中斷類型號送到數(shù)據(jù)總線上例. 兩片級聯(lián)主片 ICW3=40H從片 ICW3=06H例如7-15 某8259A主片的IR3,IR7端連接兩個從8259A,編寫

36、初始化命令四、8259A的編程方法 主片SP/EN IR6 從片 SP/EN INT+5V地49 北京工業(yè)大學(xué)計算機(jī)學(xué)院ICW4的格式: (方式控制字) ICW1的IC4=1時要求設(shè)置ICW4,8086系統(tǒng)必須預(yù)置ICW41 工作在8086/8088系統(tǒng)0 8080/8085系統(tǒng)1 設(shè)置中斷自動結(jié)束方式當(dāng)BUF=1時:(BUF=0無效)ICW4的標(biāo)識位0 表示本片為從片1 表示本片為主片0 非緩沖方式1 緩沖方式,引腳SP/EN作為輸出1 為特殊全嵌套方式0 非特殊全嵌套方式D7 D6 D5 D4 D3 D2 D1 D00 | 0 | 0 | SFNM | BUF | M/S | AEOI |

37、 PM1A050 北京工業(yè)大學(xué)計算機(jī)學(xué)院 表7-5 BUF、M/S、SP/EN之間關(guān)系 例7-16 設(shè)置IBM PC機(jī)的ICW4命令字 圖7-13 初始化命令字設(shè)置次序 例7-17為BIOS中8259A初始化程序 8259A經(jīng)初始化命令字ICW預(yù)置后進(jìn)入初始化狀態(tài),可接收來自IRi端的中斷請求,自動進(jìn)入操作命令狀態(tài),接收CPU寫入8259A的操作命令字OCW。四、8259A的編程方法51 北京工業(yè)大學(xué)計算機(jī)學(xué)院用ICW1設(shè)置是否級連請求信號格式后面是否用ICW4用ICW2設(shè)置中斷類型碼級連方式主片嗎?是是是否否否設(shè)ICW3,高五位為0,設(shè)ICW3,各位對應(yīng)IR0IR7的連接情況需要用ICW4嗎

38、?用ICW4設(shè)置是否為特殊全嵌套方式是否為緩沖方式是否為自動結(jié)束中斷方式是否為8086/8088系統(tǒng)結(jié)束8259A的初始化流程低三位為標(biāo)識 碼 對ICW的寫入由系統(tǒng)的初始化程序完成。寫入時,必須連續(xù)地寫入各個ICW,首先對偶地址寫入ICW1,然后對奇地址寫入其它的初始化字。52 北京工業(yè)大學(xué)計算機(jī)學(xué)院 對8259A設(shè)置初始化命令字的例子,請分析MOV AL,13HOUT 80H,ALMOV AL,18HOUT 81H,ALMOV AL,0DHOUT 81H,AL單8259A、邊沿觸發(fā)、中斷類型碼基值為18H,要ICW4;一般優(yōu)先級方式、非自動結(jié)束中斷方式。端口地址為80H,81H.8259A的

39、編程方法53 北京工業(yè)大學(xué)計算機(jī)學(xué)院8259A的操作命令字 操作命令字決定:中斷屏蔽、中斷優(yōu)先次序、中斷結(jié)束方式等。設(shè)置時,次序沒有嚴(yán)格要求,但端口地址有嚴(yán)格規(guī)定,OCW1必須寫入奇地址端口(A0=1) ,OCW2、OCW3必須寫入偶地址端口(A0=0) 。四、8259A的編程方法54 北京工業(yè)大學(xué)計算機(jī)學(xué)院OCW1的格式:中斷屏蔽操作命令字1 屏蔽該位中斷請求0 允許該位中斷請求D7 D6 D5 D4 D3 D2 D1 D0 M7 | M6 | M5 | M4 | M3 | M2 | M1 | M0 M i =1A0直接對應(yīng)IMR中斷屏蔽寄存器的各位OCW1=IMR例7-18 設(shè)某中斷系統(tǒng)要

40、求屏蔽IR3,IR5四、8259A的編程方法55 北京工業(yè)大學(xué)計算機(jī)學(xué)院OCW2的格式:優(yōu)先權(quán)循環(huán)方式和中斷結(jié)束方式,見表7-6OCW2的標(biāo)識位指出IR的級別(000-111)0 0 0 自動EOI循環(huán)方式(復(fù)位)0 0 1 普通EOI方式0 1 0 無操作0 1 1 特殊EOI方式.清除2L0所指的ISR位級別碼1 0 0 自動EOI循環(huán)方式(置位)使優(yōu)先級自動循環(huán)1 0 1 普通EOI循環(huán)方式.結(jié)束中斷并使優(yōu)先級循環(huán)左移一位1 1 0 置位優(yōu)先級命令,最低優(yōu)先級由L2L0規(guī)定1 1 1 特殊EOI循環(huán)方式,指定L2L0規(guī)定的碼為最低D7 D6 D5 D4 D3 D2 D1 D0 R | S

41、L | EOI | 0 | 0 | L2 | L1 | L0 0A056 北京工業(yè)大學(xué)計算機(jī)學(xué)院OCW3的格式:特殊屏蔽方式和查詢方式操作字0 讀IRR寄存器的值1 讀ISR寄存器的值0 不讀1 讀或的內(nèi)容OCW3的標(biāo)識位查詢方式位:0 置RR位 = 11 使8259A進(jìn)入中斷查詢方式, 并將查詢字送到CPUD7 D6 D5 D4 D3 D2 D1 D0 0 | ESMM | SMM | 0 | 1 | P | RR | RIS 0A00 無效非特殊屏蔽方式特殊屏蔽方式四、8259A的編程方法57 北京工業(yè)大學(xué)計算機(jī)學(xué)院可用OCW3命令設(shè)定,讀取IRR、ISR和IMR的狀態(tài)。CPU先送操作命令

42、OCW3(P=1)給8259A,再讀8259的偶地址,得到查詢字格式為 W2-W0為當(dāng)前級別最高的中斷請求,見例題7-19P=0、RR=1、RIS=0可讀取IRRP=0、RR=1、RIS=1可讀取 ISRA0=1 可讀取IMR操作控制字OCW0-OCW3的設(shè)置,在初始化命令字之后,用戶可根據(jù)需要在程序的任何位置去設(shè)置。命令字和操作字的設(shè)置系統(tǒng)不會混淆D7 D6 D5 D4 D3 D2 D1 D0 IR | X | X | X | X | W2 | W1 | W0 0A0四、8259A的編程方法58 北京工業(yè)大學(xué)計算機(jī)學(xué)院 編程舉例例1:試為8086系統(tǒng)編寫一段封鎖8259A中的IR3、IR4和

43、IR6中斷請求的程序。8259A的偶地址為1208H。MOV AL,58HMOV DX,120AHOUT DX,AL59 北京工業(yè)大學(xué)計算機(jī)學(xué)院例2:試為8086系統(tǒng)編寫一段使8259A的優(yōu)先級順序為 IR4、IR5、IR6、IR7、IR0、IR1、IR2、IR3 的程序。8259A的偶地址為1038H。MOV AL,0C3HMOV DX,1038HOUT DX,AL 編程舉例60 北京工業(yè)大學(xué)計算機(jī)學(xué)院例3:試為8086系統(tǒng)編寫一段清除8259A中ISR第三位IR3的程序。8259A的偶地址為1228H。MOV AL,63H 或 0E3HMOV DX,1228HOUT DX,AL 編程舉例6

44、1 北京工業(yè)大學(xué)計算機(jī)學(xué)院例4:試為8086系統(tǒng)編寫一段程序,將IRR、ISR和IMR的內(nèi)容傳送到內(nèi)存2060H開始的單元中去。8259A的偶地址為0500H。程序:MOV DX,0500HMOV AL,0AH;讀IRROUT DX,ALIN AL,DXMOV 2060H,ALMOV AL,0BH;讀ISROUT DX,ALIN AL,DXMOV 2061H,ALMOV DX,0502HIN AL,DX;讀IMRMOV 2062H,AL 編程舉例分析:OCW3:0 0 0 0 1 0 1 00 0 0 0 1 0 1 162 北京工業(yè)大學(xué)計算機(jī)學(xué)院例5: 假設(shè)8259A的IR4上有中斷請求,但此時8086CPU內(nèi)部的IF=0,試設(shè)法使8086CPU能知道8259A的IR4上有中斷請求。8259A的偶地址為1208H。MOV AL,0CH;設(shè)查詢字,令P=1MOV DX,1208HOUT DX,ALIN AL,DX;讀查詢字;判斷、處理 編程舉例分析:OCW3:0 0 0 0 1 1 0 063 北京工業(yè)大學(xué)計算機(jī)學(xué)院例6:假定8088CPU正在為IR3中斷請求服務(wù),現(xiàn)在要使8259A能開放IR4、IR5、IR6、IR7的中斷請求,試編寫能實(shí)現(xiàn)這一要求的程序段。8259A的偶地址為20H。MOV AL,68H;發(fā)特殊屏蔽命令MOV DX,20HOU

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論