微機原理與接口技術(shù)(第3版)課件匯 陳逸菲 第8-14章 中斷技術(shù)與可編程中斷控制器8259A-實驗指導(dǎo)_第1頁
微機原理與接口技術(shù)(第3版)課件匯 陳逸菲 第8-14章 中斷技術(shù)與可編程中斷控制器8259A-實驗指導(dǎo)_第2頁
微機原理與接口技術(shù)(第3版)課件匯 陳逸菲 第8-14章 中斷技術(shù)與可編程中斷控制器8259A-實驗指導(dǎo)_第3頁
微機原理與接口技術(shù)(第3版)課件匯 陳逸菲 第8-14章 中斷技術(shù)與可編程中斷控制器8259A-實驗指導(dǎo)_第4頁
微機原理與接口技術(shù)(第3版)課件匯 陳逸菲 第8-14章 中斷技術(shù)與可編程中斷控制器8259A-實驗指導(dǎo)_第5頁
已閱讀5頁,還剩876頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機原理與接口技術(shù)第8章中斷技術(shù)與可編程中斷控制器8259A目錄8.1中斷的基本概念及其應(yīng)用8.2中斷系統(tǒng)的功能和中斷優(yōu)先級8.38086/8088的中斷操作與響應(yīng)8.4可編程中斷控制器8259A8.58259A的應(yīng)用舉例主要內(nèi)容問題導(dǎo)入中斷的基本概念中斷典型應(yīng)用8.1中斷的基本概念及其應(yīng)用34案例視頻1)采用何種數(shù)據(jù)傳輸方式?思考:無條件數(shù)據(jù)傳輸查詢式數(shù)據(jù)傳輸中斷式數(shù)據(jù)傳輸DMA數(shù)據(jù)傳輸只有一個輸出端口,沒有輸入端口提供按鍵狀態(tài)查詢8086的非屏蔽中斷引腳P20(7)8.1中斷的基本概念及其應(yīng)用問題導(dǎo)入5案例視頻思考:2)燈的亮滅變化和哪條語句的執(zhí)行有關(guān)?8.1中斷的基本概念及其應(yīng)用問題導(dǎo)入6看不懂?端口定義思考:2)燈的亮滅變化和哪條語句的執(zhí)行有關(guān)?8.1中斷的基本概念及其應(yīng)用問題導(dǎo)入700H00000000端口OUT373思考:2)燈的亮滅變化和哪條語句的執(zhí)行有關(guān)?向端口送出00H,點亮8個小燈8.1中斷的基本概念及其應(yīng)用問題導(dǎo)入8思考:2)燈的亮滅變化和哪條語句的執(zhí)行有關(guān)?NOTAL8.1中斷的基本概念及其應(yīng)用問題導(dǎo)入9思考:3)什么時候會執(zhí)行指令“NOTAL”呢?“死循環(huán)指令”8.1中斷的基本概念及其應(yīng)用問題導(dǎo)入10思考:3)什么時候會執(zhí)行指令“NOTAL”呢?“死循環(huán)指令”while(1);按鍵按下執(zhí)行“NOTAL”指令8.1中斷的基本概念及其應(yīng)用問題導(dǎo)入11思考:“死循環(huán)指令”4)為什么按鍵按下會使程序的執(zhí)行發(fā)生跳轉(zhuǎn)呢?8.1中斷的基本概念及其應(yīng)用問題導(dǎo)入12主要內(nèi)容問題導(dǎo)入中斷的基本概念中斷典型應(yīng)用8.1中斷的基本概念及其應(yīng)用中斷基本概念13中斷源斷點中斷服務(wù)程序中斷服務(wù)子程序中斷請求中斷響應(yīng)中斷返回斷點保護現(xiàn)場保護現(xiàn)場恢復(fù)主程序中斷請求保護斷點保護主程序現(xiàn)場,處理中斷恢復(fù)主程序現(xiàn)場從斷點處繼續(xù)執(zhí)行主程序相關(guān)概念見教材p1788.1中斷的基本概念及其應(yīng)用中斷基本概念14主程序中斷請求保護斷點保護主程序現(xiàn)場,處理中斷恢復(fù)主程序現(xiàn)場從斷點處繼續(xù)執(zhí)行主程序主程序8.1中斷的基本概念及其應(yīng)用中斷基本概念15主程序中斷請求保護斷點保護主程序現(xiàn)場,處理中斷恢復(fù)主程序現(xiàn)場從斷點處繼續(xù)執(zhí)行主程序斷點在主程序的任意位置斷點大概率在此中斷服務(wù)程序8.1中斷的基本概念及其應(yīng)用16主要內(nèi)容問題導(dǎo)入中斷的基本概念中斷典型應(yīng)用8.1中斷的基本概念及其應(yīng)用8.1中斷的基本概念及其應(yīng)用中斷典型應(yīng)用17采用中斷方式管理I/O設(shè)備實時處理故障處理系統(tǒng)調(diào)度人機對話多機通信中斷是CPU與外設(shè)交換信息的一種方式,是CPU處理隨機事件和外部請求的主要手段。按鍵的按壓就是一個隨機事件目錄8.1中斷的基本概念及其應(yīng)用8.2中斷系統(tǒng)的功能和中斷優(yōu)先級8.38086/8088的中斷操作與響應(yīng)8.4可編程中斷控制器8259A8.58259A的應(yīng)用舉例19主要內(nèi)容中斷系統(tǒng)的基本功能中斷優(yōu)先級8.2中斷系統(tǒng)的功能和中斷優(yōu)先級20中斷系統(tǒng)的功能中斷管理系統(tǒng)至少應(yīng)具有以下功能:中斷源識別

實現(xiàn)中斷優(yōu)先級排隊能夠正確處理中斷的嵌套問題接收中斷請求

主程序中斷請求1保護斷點保護主程序現(xiàn)場恢復(fù)主程序現(xiàn)場從斷點處繼續(xù)執(zhí)行主程序處理中斷1中斷請求2保護現(xiàn)場1處理中斷2恢復(fù)現(xiàn)場2返回中斷1服務(wù)程序中斷嵌套8.2中斷系統(tǒng)的功能和中斷優(yōu)先級21中斷系統(tǒng)的功能中斷管理系統(tǒng)至少應(yīng)具有以下功能:中斷源識別

實現(xiàn)中斷優(yōu)先級排隊能夠正確處理中斷的嵌套問題接收中斷請求

依靠優(yōu)先級判優(yōu)邏輯確保CPU能按優(yōu)先級響應(yīng)中斷請求軟件判優(yōu)硬件判優(yōu)中斷處理與返回8.2中斷系統(tǒng)的功能和中斷優(yōu)先級22主要內(nèi)容中斷系統(tǒng)的基本功能中斷優(yōu)先級8.2中斷系統(tǒng)的功能和中斷優(yōu)先級23軟件查詢法中斷源1#4#5#8#82H接數(shù)據(jù)總線AB去CPU的中斷請求輸入端INTR地址譯碼器74LS2441Y11A12Y41A42A11G2G2A4RDM/IOD0D71、各中斷源申請通過或門組合后與INTR連接。2、各中斷源情況通過緩沖器從DB輸入。INAL,82HP20(5)接收中斷請求

識別中斷源

8.2中斷系統(tǒng)的功能和中斷優(yōu)先級24軟件查詢法查詢程序的次序,決定了外設(shè)優(yōu)先級的高低,先測試的中斷源優(yōu)先級最高。保護現(xiàn)場1#有請求嗎?2#有請求嗎?3#有請求嗎?現(xiàn)場恢復(fù)中斷返回為1#外設(shè)服務(wù)為2#外設(shè)服務(wù)為3#外設(shè)服務(wù)NNNYYY右圖中1#,2#,3#外設(shè)的優(yōu)先級排序如何?1#>2#>3#越先被查詢的優(yōu)先級越高優(yōu)先級排隊固定優(yōu)先級8.2中斷系統(tǒng)的功能和中斷優(yōu)先級25PINTR:PUSHAX ;現(xiàn)場保護 PUSHBX IN AL,82H ;從端口讀入中斷源請求的狀態(tài)信號 MOV BL,AL ;保存在BL中FAN1: ROR BL,1 ;ROR指令把BL的最低位移入CF JC ISP1 ;CF=1表示1#中斷源有中斷請求FAN2:RORBL,1 JC ISP2 ;CF=1表示2#中斷源有中斷請求FAN3:ROR BL,1 JC ISP3 ;CF=1表示3#中斷源有中斷請求

FAN: POPBX ;現(xiàn)場恢復(fù) POPAX

IRET ;中斷返回ISP1: ;1#中斷源的處理程序 JMPFANISP2: ;2#中斷源的處理程序 JMPFANISP3: ;3#中斷源的處理程序 JMPFAN

固定優(yōu)先級26硬件判優(yōu)法0#設(shè)備INTA0INTR01#設(shè)備INTA1INTR12#設(shè)備INTA2INTR2CPUINTAINTR0314256P21(1)P20(5)串行優(yōu)先級排隊模式8.2中斷系統(tǒng)的功能和中斷優(yōu)先級27硬件判優(yōu)法串行優(yōu)先級排隊模式0#設(shè)備INTA0INTR01#設(shè)備INTA1INTR12#設(shè)備INTA2INTR2CPUINTAINTR03142560110001111111接收中斷請求

001000中斷請求被響應(yīng)11識別中斷源

圖中0#,1#,2#外設(shè)的優(yōu)先級排序如何?離CPU越近優(yōu)先級越高1封鎖了后繼設(shè)備18.2中斷系統(tǒng)的功能和中斷優(yōu)先級28硬件判優(yōu)法并行優(yōu)先級排隊模式優(yōu)點:響應(yīng)速度快缺點:擴展性不靈活。高低~74LS138Y0Y1Y2Y3Y4Y5Y6Y7G2AG2BG1CBA74LS148I7I6I5I4I3I2I1I0Y2Y1Y0STYEXYSINTR0INTR7來自CPU的INTA5VINTA0INTA7~10xxxxxx001INTA1INTR18.2中斷系統(tǒng)的功能和中斷優(yōu)先級29專用硬件法專用硬件法用可編程中斷控制器芯片來管理中斷。通過編程可以設(shè)置或改變芯片的工作方式。使用靈活。CPUD0~D7INTAINTR中斷控制器D0~D7IR0IR1IR7INTR0

設(shè)備0INTR1

設(shè)備1INTR7

設(shè)備7INTRINTA8.4節(jié)8.2中斷系統(tǒng)的功能和中斷優(yōu)先級目錄8.1中斷的基本概念及其應(yīng)用8.2中斷系統(tǒng)的功能和中斷優(yōu)先級8.38086/8088的中斷操作與響應(yīng)8.4可編程中斷控制器8259A8.58259A的應(yīng)用舉例31主要內(nèi)容中斷的分類中斷類型碼、中斷向量和中斷向量表中斷響應(yīng)過程與時序8.38086/8088的中斷操作與響應(yīng)中斷分類32CPU中斷邏輯除法錯中斷0型單步中斷1型斷點中斷3型溢出中斷4型INTn指令軟件中斷(內(nèi)部中斷)硬件中斷(外部中斷)NMI非屏蔽中斷(2型)中斷控制系統(tǒng)可屏蔽中斷INTRP18⑨DEBUG的T命令DEBUG的G命令執(zhí)行了軟中斷指令或由CPU本身引起的中斷不受IF影響P20(7)P18⑧“1”IF=1時才可能被響應(yīng)P20(5)關(guān)中斷指令:CLI(IF=0)開中斷指令:STI(IF=1)P58(表3.6-1)8.38086/8088的中斷操作與響應(yīng)中斷分類33內(nèi)部中斷不需要外部硬件支持,不受IF控制在上述內(nèi)部中斷中,除單步中斷外,其余都不可屏蔽。所有類型(內(nèi)、外)的中斷在其處理過程中,CPU會自動地把狀態(tài)標(biāo)志壓入堆棧,然后清除TF和IF。8086/8088規(guī)定這些中斷的優(yōu)先級次序(高到低)為:內(nèi)部中斷、NMI、INTR,優(yōu)先級最低的是單步中斷。受

TF

位控制P18⑨在中斷響應(yīng)過程中:禁止單步中斷和可屏蔽中斷8.38086/8088的中斷操作與響應(yīng)34主要內(nèi)容中斷的分類中斷類型碼、中斷向量和中斷向量表中斷響應(yīng)過程與時序8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表35中斷類型碼8086/8088為每個中斷源分配了一個0~255范圍內(nèi)的中斷類型碼。其中部分為專用中斷,40H~FFH號中斷原則上可以由用戶程序安排使用。中斷類型碼中斷功能中斷類型碼中斷功能00H除法錯中斷04H溢出中斷01H單步中斷05H打印中斷02HNMI中斷08H電子鐘定時中斷03H斷點中斷09H鍵盤中斷…………以上幾個應(yīng)該熟悉8.38086/8088的中斷操作與響應(yīng)36中斷向量

中斷服務(wù)程序的入口地址稱為一個中斷向量,由段基址CS和段內(nèi)偏移量IP兩部分組成。4個字節(jié)中斷服務(wù)程序要執(zhí)行的第1條指令的地址中斷向量表在8086/8088中,所有中斷服務(wù)程序的入口地址(中斷向量)集中放在內(nèi)存的最低1K區(qū)域(00000H~003FFH),構(gòu)成一個中斷向量表

8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表37中斷向量表位于內(nèi)存0段的0000H~03FFH的存儲區(qū)內(nèi)。8086/8088的中斷向量表由三個部分組成:5個專用中斷(0#~4#)27個系統(tǒng)使用或保留中斷(5#~31#)224個用戶定義中斷(32#~255#)每個中斷向量占4個內(nèi)存單元前兩個單元存放中斷向量的偏移地址(IP)后兩個單元存放中斷向量的段地址(CS)物理地址的范圍是多少?共256個8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表38類型0類型1類型2類型3類型4類型5類型63IPCS除數(shù)為零單步(TF=1)非屏蔽中斷斷點中斷溢出(OF=1)類型28000H004H008H00CH010H014H070H0FCHCPU使用(5)DOS使用(59)1/18.2S定時類型64類型65類型66類型67類型255100H104H108H10CH3FCH用戶使用(192)中斷服務(wù)程序入口地址表(中斷向量表)中斷服務(wù)程序入口地址在表中的起始地址=4×中斷類型碼中斷向量8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表這幾個應(yīng)該熟悉39類型0類型1類型2類型3類型4類型5類型63IPCS除數(shù)為零單步(TF=1)非屏蔽中斷斷點中斷溢出(OF=1)類型28000H004H008H00CH010H014H070H0FCHCPU使用(5)DOS使用(59)1/18.2S定時類型64類型65類型66類型67類型255100H104H108H10CH3FCH用戶使用(192)中斷服務(wù)程序入口地址表(中斷向量表)中斷服務(wù)程序入口地址在表中的起始地址=4×中斷類型碼中斷向量地址8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表40中斷向量的查找設(shè)某個中斷源的中斷類型碼為n。中斷向量在中斷向量表的起始位置:n×4中斷向量位于中斷向量表:n×4~n×4+3這四個單元內(nèi)CPU會自動根據(jù)n值找到這個位置取出中斷向量,依次裝入IP和CS,從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表41某中斷的中斷類型號為68H,其中斷過程為:(1)計算存放中斷服務(wù)程序入口地址的地址=68H×4=1A0H;(2)取中斷入口地址的段內(nèi)偏移量裝入IP,IP=2050H

,段碼裝入CS,CS=A000H;(3)轉(zhuǎn)向中斷服務(wù)程序;(4)中斷返回502000A0001A0H001A2H001A4H存放地址=68H×4=1A0HIP=2050

CS=A000STIPUSHDSIRET中斷服務(wù)程序A000H:2050HINT68HMOVAX,0①②③④中斷類型號→中斷向量表地址→中斷服務(wù)程序入口地址中斷向量表注意與RET區(qū)別8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表

例8.6-1根據(jù)下面所提供的某80x86微機內(nèi)存中的數(shù)據(jù),判斷INT11H

中斷服務(wù)程序的入口地址是

。A.F000:F84DB.A019:8ACCC.00F0:4DF8D.4DF8:00F0

中斷向量地址=中斷類型碼×4=11H×4=0044H0000:0040B3188ACC4DF800F0-41F800F0C5188ACC0000:005039E700F0A0198ACC-2EE800F0D2EF00F0IPCS注意低字節(jié)在低地址,高字節(jié)在高地址(小尾順序)中斷類型號→中斷向量表地址→中斷服務(wù)程序入口地址分析:8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表類型碼為________的中斷所對應(yīng)的中斷向量存放在0000H:0040H開始的4個連續(xù)單元中,若這4個單元的內(nèi)容分別為_________________,則相應(yīng)的中斷服務(wù)程序入口地址為5060H:7080H。中斷向量表起始地址=中斷類型碼×4中斷類型碼=0040H/4=10H中斷向量表80H70H60H50H10H×4=40H10H×4+1=41H10H×4+2=42H10H×4+3=43H8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表10H80H70H60H50H要掌握初始化方法,自己會編寫初始化程序。由BIOS提供的中斷服務(wù),其中斷向量是在系統(tǒng)加電后由BIOS負(fù)責(zé)初始化。由DOS提供的中斷服務(wù),其中斷向量是在啟動DOS后由DOS負(fù)責(zé)初始化。用戶自己開發(fā)的中斷服務(wù)程序,其中斷向量由用戶自己進(jìn)行向量表的初始化。將中斷服務(wù)程序入口地址寫入中斷向量表的相應(yīng)位置8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表中斷向量表的初始化45例8.3-1設(shè)某中斷類型號為72H的用戶程序的入口地址為USEINT,請初始化向量表。中斷向量起始地址=72H×4=1C8HMOVAX,0MOVES,AX ;中斷向量表位于內(nèi)存0段MOVBX,01C8H ;中斷向量的地址送BXMOVAX,OFFSETUSEINT;中斷服務(wù)程序的入口偏移地址送AXMOVES:[BX],AX ;中斷服務(wù)程序的入口偏移地址寫入中斷向量表INCBXINCBXMOVAX,SEGUSEINT ;中斷服務(wù)程序的入口段地址送AXMOVES:[BX],AX ;中斷服務(wù)程序的入口段地址寫入中斷向量表中斷服務(wù)程序的過程名MOVAX,SEGUSEINTMOVES:[BX+2],AX直接裝入法

為什么要用ES?8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表為了方便中斷向量的讀出和寫入,DOS系統(tǒng)為此設(shè)計了兩個子功能供用戶程序調(diào)用。●

從中斷向量表讀取中斷向量:“INT21H”的35H號子功能入口參數(shù):AL=中斷類型號;出口參數(shù):ES:BX=中斷向量●

把中斷向量寫入中斷向量表:“INT

21H”的25H號子功能入口參數(shù):AL=中斷類型號;DS:DX=要寫入的中斷向量出口參數(shù):無8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表中斷向量表的初始化DOS系統(tǒng)調(diào)用法例8.3-2某用戶設(shè)計了一個“定時中斷服務(wù)程序”,其過程名為TIMER,取代系統(tǒng)原先的1CH型服務(wù)程序。這種情況下,用戶要先對原有中斷向量進(jìn)行讀出并保護以便恢復(fù),然后才能設(shè)置新的中斷向量。READ PROC MOV AL,1CH

MOV AH,35H INT 21H MOV WORDPTROLD1CHXL,BX MOV WORDPTROLD1CHXL+2,ES RETREAD ENDP中斷類型號DOS系統(tǒng)功能號出口參數(shù):中斷向量的IP部分出口參數(shù):中斷向量的CS部分8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表事先定義的變量OLD1CHXLDD?WRITE PROC PUSH DS ;TIMER服務(wù)程序入口地址的段基址送AX MOV AX,CS ;(設(shè)TIMER的入口段基址與WRITE的相同)

MOV DS,AX

MOV DX,OFFSETTIMER ;TIMER服務(wù)程序入口地址的偏移量送DX MOV AL,1CH

MOV AH,25H

INT 21H POP DS RETWRITE ENDP如果段地址不相同,則MOVAX,SEGTIMER入口參數(shù):中斷向量的CS部分入口參數(shù):中斷向量的IP部分入口參數(shù):中斷類型號DOS系統(tǒng)功能號8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表中斷向量表初始化在Proteus環(huán)境下能不能使用DOS系統(tǒng)調(diào)用法初始化中斷向量表?8.38086/8088的中斷操作與響應(yīng)中斷類型碼、中斷向量和中斷向量表50主要內(nèi)容中斷的分類中斷類型碼、中斷向量和中斷向量表中斷響應(yīng)過程與時序8.38086/8088的中斷操作與響應(yīng)51主要內(nèi)容8.38086/8088的中斷操作與響應(yīng)中斷源的優(yōu)先級排序硬件中斷的響應(yīng)過程和中斷服務(wù)軟件中斷的響應(yīng)過程和中斷服務(wù)231中斷源的優(yōu)先級排序52取指令執(zhí)行當(dāng)前指令執(zhí)行完?軟件中斷?NMI?INTR?TF=1?IF=1?取走中斷類型碼FR壓棧TF→TEMPIF=0,TF=0CS、IP入棧中斷向量表地址=類型碼×4中斷向量表地址取1字→IP中斷向量表地址+2取1字→CSNYNNNYYYYNY各類中斷源的優(yōu)先級排序(響應(yīng)次序)如何?見教材p1860型、3型、4型等保護斷點8.38086/8088的中斷操作與響應(yīng)中斷源的優(yōu)先級排序53下面優(yōu)先級最高的是

。A.NMI中斷

B.INTR中斷C.單步中斷D.斷點中斷屬于內(nèi)部(軟件)中斷3型8086各類中斷響應(yīng)的順序是:

軟件中斷→NMI端中斷→INTR端中斷→單步中斷8.38086/8088的中斷操作與響應(yīng)54主要內(nèi)容8.38086/8088的中斷操作與響應(yīng)中斷源的優(yōu)先級排序硬件中斷的響應(yīng)過程和中斷服務(wù)軟件中斷的響應(yīng)過程和中斷服務(wù)231硬件中斷的響應(yīng)過程和中斷服務(wù)55硬件中斷指的是NMI引腳引入的非屏蔽中斷

INTR引腳引入的可屏蔽中斷CPU響應(yīng)條件執(zhí)行完現(xiàn)行指令CPU開中斷(IF=1)執(zhí)行完現(xiàn)行指令8.38086/8088的中斷操作與響應(yīng)硬件中斷的響應(yīng)過程56A.當(dāng)前時鐘周期

B.當(dāng)前總線周期C.當(dāng)前指令周期D.下一個指令周期當(dāng)8086CPU的INTR=“1”,且中斷允許標(biāo)志IF=“1”時,則CPU完成

后,響應(yīng)該中斷請求,進(jìn)行中斷處理可屏蔽中斷響應(yīng)的兩個條件1、CPU開中斷(IF=1)2、執(zhí)行完現(xiàn)行指令

8.38086/8088的中斷操作與響應(yīng)硬件中斷的響應(yīng)過程和中斷服務(wù)578086/8088響應(yīng)INTR的中斷后,從INTA引腳連續(xù)發(fā)兩個負(fù)脈沖,中斷源在接到第二個負(fù)脈沖后,通過數(shù)據(jù)線發(fā)送中斷類型碼,CPU收到類型碼后,進(jìn)行如下操作:將中斷類型碼放入暫存器保存將標(biāo)志寄存器的內(nèi)容加入系統(tǒng)堆棧將IF和TF標(biāo)志清零保護斷點根據(jù)中斷類型碼取出中斷向量,裝入IP和CS轉(zhuǎn)向中斷服務(wù)程序。為什么?見p187見p21(1)8.38086/8088的中斷操作與響應(yīng)硬件中斷的響應(yīng)過程和中斷服務(wù)硬件中斷的響應(yīng)過程58現(xiàn)場保護中斷處理現(xiàn)場恢復(fù)中斷返回不允許中斷嵌套的結(jié)構(gòu)為了使中斷返回后能繼續(xù)主程序的運行。用堆棧指令保護那些在主、子程序中均用到的通用寄存器。IRET指令:把中斷響應(yīng)時保護的標(biāo)志寄存器內(nèi)容恢復(fù);把斷點地址彈出送至IP和CS從而實現(xiàn)返回。見教材p189~1908.38086/8088的中斷操作與響應(yīng)硬件中斷的響應(yīng)過程和中斷服務(wù)中斷服務(wù)程序的結(jié)構(gòu)59現(xiàn)場保護中斷處理現(xiàn)場恢復(fù)中斷返回允許中斷嵌套的結(jié)構(gòu)開中斷關(guān)中斷對于可屏蔽中斷而言,不論中斷返回前CPU是處于開中斷還是關(guān)中斷,返回后中斷總是開放的。STICLI為什么?見p1888.38086/8088的中斷操作與響應(yīng)硬件中斷的響應(yīng)過程和中斷服務(wù)中斷服務(wù)程序的結(jié)構(gòu)60中斷類型碼第一響應(yīng)周期第二響應(yīng)周期T1T2T3T4T1T2T3T4CLKALEINTAD7-D01.送出第1個中斷響應(yīng)信號,通知外部中斷控制邏輯,CPU接受了中斷請求2.送出第2個中斷響應(yīng)信號,啟動外部中斷控制邏輯,把中斷類型碼置于數(shù)據(jù)總線,CPU從數(shù)據(jù)總線讀取中斷類型碼中斷類型碼通過數(shù)據(jù)總線低8位傳送,外設(shè)的數(shù)據(jù)線必須掛接在808616位數(shù)據(jù)總線的低8位。端口地址必須為偶地址A0=0見教材p1898.38086/8088的中斷操作與響應(yīng)硬件中斷的響應(yīng)過程和中斷服務(wù)硬件中斷的時序IF=1(開中斷)時,當(dāng)INTR端加入中斷請求信號(高電平有效)時,待當(dāng)前指令結(jié)束后,CPU產(chǎn)生兩個連續(xù)的中斷響應(yīng)總線周期,其時序關(guān)系如圖613.保護斷點和標(biāo)志,將當(dāng)前的FR、CS和IP內(nèi)容依次壓入堆棧,以便返回時恢復(fù);4.將FR中的IF標(biāo)志和TF標(biāo)志清0;5.根據(jù)讀取的中斷類型碼,控制轉(zhuǎn)入中斷服務(wù)程序入口教材p188圖8.3-5請回去仔細(xì)理解8.38086/8088的中斷操作與響應(yīng)硬件中斷的響應(yīng)過程和中斷服務(wù)硬件中斷的時序62主要內(nèi)容8.38086/8088的中斷操作與響應(yīng)中斷源的優(yōu)先級排序硬件中斷的響應(yīng)過程和中斷服務(wù)軟件中斷的響應(yīng)過程和中斷服務(wù)23163軟件中斷的響應(yīng)過程和中斷服務(wù)INTn指令格式:INTn說明:產(chǎn)生一個中斷類型號為n的軟中斷操作:①

標(biāo)志寄存器入棧②

斷點地址入棧:CS先入棧,然后IP入棧③

從中斷向量表中獲取中斷服務(wù)程序入口地址,即 IP

(0:4n+1,0:4n) CS(0:4n+3,0:4n+2)FRCSIP棧底棧頂8.38086/8088的中斷操作與響應(yīng)中斷指令64溢出中斷指令格式:INTO說明:檢測OF標(biāo)志位。

當(dāng)OF=1時,產(chǎn)生中斷類型為4的中斷;當(dāng)OF=0時,不起作用。操作:①

標(biāo)志寄存器入棧②

斷點地址入棧:CS先入棧,然后IP入棧③

從中斷向量表中獲取中斷服務(wù)程序入口地址,即 IP

(0000H:0010H) CS(0000H:0012H)8.38086/8088的中斷操作與響應(yīng)軟件中斷的響應(yīng)過程和中斷服務(wù)65中斷返回指令格式:IRET說明:從中斷服務(wù)程序返回斷點處,并將標(biāo)志寄存器的值從堆棧彈出,繼續(xù)執(zhí)行原程序。本指令用于中斷服務(wù)程序中。操作:①

斷點出棧:IP先出棧,CS后出棧②

標(biāo)志寄存器出棧注意這一點與RET指令不同。中斷服務(wù)程序返回一定要用IRET。FRCSIP棧底棧頂8.38086/8088的中斷操作與響應(yīng)軟件中斷的響應(yīng)過程和中斷服務(wù)66軟件中斷的響應(yīng)過程用戶程序(主程序)MOVAH,1INT21HMOVDL,ALNEXT:中斷向量表34H12H00H20H21H×421H×4+121H×4+221H×4+3IRET21H型服務(wù)程序2000H:1234HNEXT的偏移地址NEXT的段基址標(biāo)志寄存器的內(nèi)容堆棧區(qū)①②IPCS③④⑤⑥8.38086/8088的中斷操作與響應(yīng)軟件中斷的響應(yīng)過程和中斷服務(wù)67軟件中斷的響應(yīng)過程包括:除數(shù)為0引起的中斷(0),單步中斷(1),斷點中斷(3)和溢出中斷(4)四種。系統(tǒng)初始化時已將相應(yīng)的中斷向量定位裝配在中斷向量表中。當(dāng)中斷發(fā)生時,只需直接查找中斷向量表即可,其余動作與硬件中斷相同。

8.38086/8088的中斷操作與響應(yīng)軟件中斷的響應(yīng)過程和中斷服務(wù)微機原理與接口技術(shù)第8章中斷技術(shù)與可編程中斷控制器8259A目錄8.1中斷的基本概念及其應(yīng)用8.2中斷系統(tǒng)的功能和中斷優(yōu)先級8.38086/8088的中斷操作與響應(yīng)8.4可編程中斷控制器8259A8.58259A的應(yīng)用舉例70主要內(nèi)容8259A的主要功能結(jié)構(gòu)8259A的工作過程8259A的中斷管理8.4可編程中斷控制器8259A8259A的編程8259A的主要功能結(jié)構(gòu)718.4可編程中斷控制器8259A8259A的主要功能1片8259A可以管理8級中斷,且可以多片級聯(lián),最多可以用9片構(gòu)成64級的主從式中斷管理。對任何一級中斷都可以單獨屏蔽??梢酝ㄟ^編程,使8259A工作在不同方式下,使用靈活。能根據(jù)編程提供中斷源的中斷類型碼。8259A的主要功能結(jié)構(gòu)728.4可編程中斷控制器8259A8259A的引腳及功能中斷請求中斷響應(yīng)數(shù)據(jù)線中斷請求輸入VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A28272625242322212019181716151234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND8259A的主要功能結(jié)構(gòu)738.4可編程中斷控制器8259A8259A的引腳及功能級聯(lián)信號從設(shè)備編程/緩沖器允許引腳內(nèi)部寄存器選擇。A0=0:ICW1,OCW2,OCW3A0=1:ICW2~ICW4,OCW1片選信號讀、寫信號VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A28272625242322212019181716151234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND8259A的主要功能結(jié)構(gòu)748.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線888位的寄存器,用來接收來自IR0~IR7上的中斷請求輸入信號,當(dāng)收到請求信號時就在IRR的相應(yīng)位置位。外設(shè)產(chǎn)生中斷請求的方式有兩種:一種是邊沿觸發(fā)方式,另一種是電平觸發(fā)方式。用戶可根據(jù)需要通過編程來設(shè)置。010010018259A的主要功能結(jié)構(gòu)758.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線88存放對中斷請求的屏蔽信息。軟件編程使得IMR的某位為“1”時,相應(yīng)IRR中的中斷請求被屏蔽;反之允許相應(yīng)IRR中的中斷請求進(jìn)入中斷優(yōu)先級判別器PR。010010010000000101001000IR6IR38259A的主要功能結(jié)構(gòu)768.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線88存放正在服務(wù)的中斷源級別,當(dāng)某個中斷被響應(yīng)后,CPU發(fā)出第一個INTA信號,ISR中的相應(yīng)位置“1”,一直被保存到該中斷處理結(jié)束。當(dāng)多重中斷時,ISR的多位同時被置1。00000010IR18259A的主要功能結(jié)構(gòu)778.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線88對IRR保持的各中斷請求(已屏蔽的除外)進(jìn)行優(yōu)先權(quán)判別,并在CPU的中斷響應(yīng)周期將其送ISR。在出現(xiàn)多重中斷時,由PR判定是否允許所出現(xiàn)的中斷去打斷正在處理的中斷,讓優(yōu)先級更高的中斷優(yōu)先處理。01001000

IR6IR3

00000010IR1>新的中斷請求優(yōu)先級低,不被響應(yīng)8259A的主要功能結(jié)構(gòu)788.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線8801001000

IR6IR3

10000000<10001000中斷嵌套IR3IR78259A的主要功能結(jié)構(gòu)798.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)ISR寄存器中斷屏蔽寄存器IMR中斷請求優(yōu)先級編碼器中斷請求寄存器IRR比較器B0B1B2A>BA0A1A2ISR編碼ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0INTD0……D7IR0IR1IR2IR3IR4IR5IR6IR7優(yōu)先級裁決過程工作原理圖10010010100000000001001010110000001011001000000000018259A的主要功能結(jié)構(gòu)808.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)按照編程所設(shè)置的工作方式來管理8259A的工作。在IRR中有未被屏蔽的中斷請求位時,它輸出高電平的INT信號向CPU申請中斷。在中斷響應(yīng)期間,它使ISR的相應(yīng)位置位,并控制向CPU發(fā)送相應(yīng)的中斷類型碼。在中斷服務(wù)結(jié)束時,它按照編程指定的方式進(jìn)行結(jié)束處理。IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線88中斷類型碼8259A的主要功能結(jié)構(gòu)818.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線888位的雙向三態(tài)緩沖器,用作8259A與系統(tǒng)數(shù)據(jù)總線的接口。用來傳輸初始化命令字、操作命令字、狀態(tài)字和中斷類型碼。8259A的主要功能結(jié)構(gòu)828.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線88

它接收來自CPU的讀/寫命令,完成規(guī)定的操作。具體動作由片選信號CS,地址輸入信號A0,以及讀(RD)和寫(WR)信號共同控制。8259A的主要功能結(jié)構(gòu)838.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線緩沖讀/寫控制邏輯級聯(lián)緩沖比較控制電路初始化命令寄存器組操作命令寄存器組內(nèi)部控制邏輯中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA內(nèi)部數(shù)據(jù)總線88CAS0~CAS2是8259A相互間連接用的專用總線,用來構(gòu)成8259A的主?從式級聯(lián)控制結(jié)構(gòu)。SP/EN:在緩沖方式下產(chǎn)生總線啟動信號,以控制總線緩沖器的接收和發(fā)送.

在非緩沖方式下,控制主片(高)和從片(低)8259A的主要功能結(jié)構(gòu)848.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)若要CPU不響應(yīng)可屏蔽中斷,可以通過CPU的

寄存器中的

來實現(xiàn)。還可以通過設(shè)置中斷控制器中的

寄存器來實現(xiàn)。當(dāng)希望系統(tǒng)中有的可屏蔽中斷被響應(yīng),有的不被響應(yīng),只能通過設(shè)置

來實現(xiàn)。8259A中斷請求觸發(fā)器(IRRi)IRi中斷屏蔽觸發(fā)器(IMRi)CPU中斷邏輯開/關(guān)中斷IF(中斷允許觸發(fā)器)101IF=1開中斷可屏蔽中斷IRi能被響應(yīng)8259A的主要功能結(jié)構(gòu)858.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)若要CPU不響應(yīng)可屏蔽中斷,可以通過CPU的

寄存器中的

來實現(xiàn)。還可以通過設(shè)置中斷控制器中的

寄存器來實現(xiàn)。當(dāng)希望系統(tǒng)中有的可屏蔽中斷被響應(yīng),有的不被響應(yīng),只能通過設(shè)置

來實現(xiàn)。8259A中斷請求觸發(fā)器(IRRi)IRi中斷屏蔽觸發(fā)器(IMRi)CPU中斷邏輯開/關(guān)中斷IF(中斷允許觸發(fā)器)101IF=0關(guān)中斷所有可屏蔽中斷請求均被屏蔽8259A的主要功能結(jié)構(gòu)868.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)若要CPU不響應(yīng)可屏蔽中斷,可以通過CPU的

寄存器中的

來實現(xiàn)。還可以通過設(shè)置中斷控制器中的

寄存器來實現(xiàn)。當(dāng)希望系統(tǒng)中有的可屏蔽中斷被響應(yīng),有的不被響應(yīng),只能通過設(shè)置

來實現(xiàn)。8259A中斷請求觸發(fā)器(IRRi)IRi中斷屏蔽觸發(fā)器(IMRi)CPU中斷邏輯開/關(guān)中斷IF(中斷允許觸發(fā)器)110IF=1開中斷中斷請求IRi被屏蔽標(biāo)志IF位IMRIMR8259A的主要功能結(jié)構(gòu)878.4可編程中斷控制器8259A8259A的內(nèi)部結(jié)構(gòu)若要CPU不響應(yīng)可屏蔽中斷,可以通過CPU的

寄存器中的

來實現(xiàn)。還可以通過設(shè)置中斷控制器中的

寄存器來實現(xiàn)。當(dāng)希望系統(tǒng)中有的可屏蔽中斷被響應(yīng),有的不被響應(yīng),只能通過設(shè)置

來實現(xiàn)。標(biāo)志IF位IMRIMR標(biāo)志寄存器的IF位相當(dāng)于一個總開關(guān),控制著所有可屏蔽中斷是開放(IF=1)還是屏蔽(IF=0)IMR寄存器的每一位相當(dāng)于一個分開關(guān),獨立控制單個可屏蔽中斷是開放(IMRi=0)還是屏蔽(IMRi=1)。使用中斷控制器的系統(tǒng)中,某個可屏蔽中斷如果要被響應(yīng),兩級“開關(guān)”都要開放中斷。88主要內(nèi)容8259A的主要功能結(jié)構(gòu)8259A的工作過程8259A的中斷管理8.4可編程中斷控制器8259A8259A的編程8259A的工作過程898.4可編程中斷控制器8259A單片8259A的工作過程IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0高位地址線IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A注:8086此為A1,8086的A0=0。8259A的工作過程908.4可編程中斷控制器8259A單片8259A的工作過程IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0高位地址線IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)初始化命令寄存器組操作命令寄存器組(1)中斷源通過IR0~IR7向8259A發(fā)中斷請求,使得IRR的相應(yīng)位置位。01000010總線8259A8259A的工作過程918.4可編程中斷控制器8259A單片8259A的工作過程IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A(2)若此時IMR中的相應(yīng)位為0,即該中斷請求沒有被屏蔽,則進(jìn)入優(yōu)先級排隊。8259A分析這些請求,若條件滿足,則通過INT向CPU發(fā)中斷請求010000100100000000000000高位地址線當(dāng)前無中斷服務(wù)程序在執(zhí)行。000000108259A的工作過程8.4可編程中斷控制器8259A單片8259A的工作過程IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A(3)

CPU接收到中斷請求信號后,如果滿足條件,則進(jìn)入中斷響應(yīng),通過INTA引腳發(fā)出兩個連續(xù)負(fù)脈沖。010000100100000000000000高位地址線000000108259A的工作過程8.4可編程中斷控制器8259A單片8259A的工作過程93IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A(3)8259A收到第一個INTA時,做如下動作:010000100100000000000000①使IRR的鎖存功能失效,到第二個INTA時再有效。第一個高位地址線000000108259A的工作過程8.4可編程中斷控制器8259A單片8259A的工作過程94IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A010000100100000000000000②使ISR的相應(yīng)位置位,表示已為該中斷請求服務(wù)。00000010第一個高位地址線00000010(3)8259A收到第一個INTA時,做如下動作:8259A的工作過程8.4可編程中斷控制器8259A單片8259A的工作過程95IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A0100001001000000③使IRR相應(yīng)位清0,表明對應(yīng)的中斷請求被響應(yīng)。0000001001000000第一個高位地址線(3)8259A收到第一個INTA時,做如下動作:8259A的工作過程8.4可編程中斷控制器8259A單片8259A的工作過程96IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A(3)8259A收到第二個INTA時,做如下動作:01000000①把中斷類型碼送往數(shù)據(jù)總線。0000001001000000第二個中斷類型碼高位地址線8259A的工作過程8.4可編程中斷控制器8259A單片8259A的工作過程97IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A01000000②如果8259A工作在中斷自動結(jié)束方式,此時將清零ISR的相應(yīng)位。0000001001000000第二個00000000高位地址線(3)8259A收到第二個INTA時,做如下動作:8259A的工作過程8.4可編程中斷控制器8259A單片8259A的工作過程98IR7IR6IR5IR4IR3IR2IR1IR0中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器(PR)D7~D0IOWA0INTINTA8中斷請求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中斷屏蔽寄存器(IMR)總線初始化命令寄存器組操作命令寄存器組8259A01000000③如果8259A工作在非中斷自動結(jié)束方式,此時不清零ISR的任何位,只有在中斷服務(wù)結(jié)束時發(fā)出中斷結(jié)束命令才會使ISR中的相應(yīng)位清零。0000001001000000第二個高位地址線(3)8259A收到第二個INTA時,做如下動作:8259A的工作過程8.4可編程中斷控制器8259A單片8259A的工作過程99中斷類型碼n第一響應(yīng)周期第二響應(yīng)周期T1T2T3T4T1T2T3T4CLKALEINTAD7-D0初始化接口IRR鎖存失效,不接收新的請求當(dāng)前最高的ISR置位(響應(yīng)中斷)IRR相應(yīng)位清零接口送出nCPU讀入nIRR鎖存有效,接收新的請求ICW2→D7~D0(中斷類型碼)若ICW4D1=1(中斷自動結(jié)束方式),則相應(yīng)ISR位自動清0。硬件中斷時序8259A的工作過程8.4可編程中斷控制器8259A級聯(lián)使用時:示例:一個由3片8259A組成的級聯(lián)系統(tǒng)至少要2片8259A(1片主片,1片從片),可管理15級外部中斷。最多允許9片8259A級聯(lián)(其中1片為主片,8片從片),可管理64級中斷。

多片8259A級聯(lián)的工作過程8259A的工作過程8.4可編程中斷控制器8259A主IR0~IR2>從A的IR0~IR7>主IR4~IR5>從B的IR0~IR7>主IR78259A從片ACSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A從片BCSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A主控制器CSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0……3VCC地址總線譯碼譯碼譯碼控制總線數(shù)據(jù)總線中斷申請(輸出)62154id:011id:110多片8259A級聯(lián)的工作過程8259A的工作過程8.4可編程中斷控制器8259A級聯(lián)時,從片上中斷源的請求與響應(yīng)過程:從片上的中斷源通過IR0~IR7向從8259A發(fā)中斷請求,使得IRR的相應(yīng)位置位。IRR00000001多片8259A級聯(lián)的工作過程8259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程若此時IMR中的相應(yīng)位為0,即該中斷請求沒有被屏蔽,則進(jìn)入優(yōu)先級排隊。8259A分析這些請求,若條件滿足,則通過INT向主8259A發(fā)中斷請求。IRR00000001IRR00001000IMRxxxxxxx08259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程

主8259A收到請求后若滿足條件則通過INT向CPU發(fā)中斷請求。8259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程

CPU接收到中斷請求信號后,如果滿足條件,則進(jìn)入中斷響應(yīng),通過INTA引腳發(fā)出兩個連續(xù)負(fù)脈沖,該INTA信號送給所有的8259A。8259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程在各8259A收到第一個INTA時,使各自的IRR的鎖存功能失效(目的是防止此時再來中斷導(dǎo)致中斷響應(yīng)的錯誤),到第二個INTA時再有效。8259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程主片收到第一個INTA后使對應(yīng)的ISR位置,并通過CAS0~CAS2輸出當(dāng)前被響應(yīng)的中斷源所屬從片的設(shè)備代碼ID。8259A從片ACSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A從片BCSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A主控制器CSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0……3VCC地址總線譯碼譯碼譯碼控制總線數(shù)據(jù)總線中斷申請(輸出)62154011BISR000010008259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程

每個從片均收到這一設(shè)備代碼并和自身的代碼進(jìn)行比較。8259A從片ACSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A從片BCSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A主控制器CSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0……3VCC地址總線譯碼譯碼譯碼控制總線數(shù)據(jù)總線中斷申請(輸出)62154011B8259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程8259A從片ACSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A從片BCSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A主控制器CSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0……3VCC地址總線譯碼譯碼譯碼控制總線數(shù)據(jù)總線中斷申請(輸出)62154011B與主片送出的代碼一致的從片則清零被響應(yīng)的中斷源的IRR位,置位被響應(yīng)的中斷源的ISR位,并做好把自身被響應(yīng)的中斷源的類型碼送到數(shù)據(jù)總線的準(zhǔn)備。IRR0000000100000000ISR00000001中斷類型碼n8259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程在第二個INTA脈沖有效期間,由被選中的從8259A將中斷類型碼送上數(shù)據(jù)總線。CPU在中斷響應(yīng)周期的第二周期讀取類型碼,并生成中斷向量表的地址,然后從向量表中讀出中斷向量轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。中斷類型碼n8259A的工作過程8.4可編程中斷控制器8259A多片8259A級聯(lián)的工作過程中斷類型碼n第一響應(yīng)周期第二響應(yīng)周期T1T2T3T4T1T2T3T4CLKALEINTAD7-D0初始化接口IRR鎖存失效,不接收新的請求當(dāng)前最高的ISR置位(響應(yīng)中斷)IRR相應(yīng)位清零級聯(lián)CAS2~0主片→從片接口送出nCPU讀入nIRR鎖存有效,接收新的請求ICW2→D7~D0(主片,從片)若ICW4

的D1=1(中斷自動結(jié)束方式),則相應(yīng)ISR位自動清0。硬件中斷時序8259A的工作過程8.4可編程中斷控制器8259A若有40個外部中斷請求信號,至少需要

片8259A中斷控制器來管理。85+(85)1

=43個(6片)從片主片84+(84)1

=36個(5片)從片主片6典型題:已知8259A片數(shù),求在級聯(lián)方式下最多管理幾級中斷。已知中斷源個數(shù),求最少需要多少片8259A來管理。主要內(nèi)容8259A的主要功能結(jié)構(gòu)8259A的工作過程8259A的中斷管理8.4可編程中斷控制器8259A8259A的編程難點8259A的中斷管理8.4可編程中斷控制器8259A中斷優(yōu)先級管理1中斷結(jié)束管理2中斷嵌套管理3中斷屏蔽管理4中斷優(yōu)先級管理8.4.38259A的中斷管理固定優(yōu)先級方式8259A復(fù)位后自動處于固定優(yōu)先級方式,8個中斷源的優(yōu)先級別是固定的,依次為IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7。循環(huán)優(yōu)先級方式設(shè)置為此方式后瞬時優(yōu)先級為IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7,一旦某中斷源的請求被響應(yīng)后它就變成最低優(yōu)先級,它的下一級上升為最高優(yōu)先級。當(dāng)前正在服務(wù)IR2被響應(yīng)后,優(yōu)先級順序為:IR3>IR4>IR5>IR6>IR7>IR0>IR1>IR2

中斷優(yōu)先級管理8.4.38259A的中斷管理特殊循環(huán)優(yōu)先級方式在設(shè)置8259A為循環(huán)優(yōu)先級的同時,還指明循環(huán)起始時的最低優(yōu)先級。查詢排序優(yōu)先級方式一般用于中斷級數(shù)多于64級的場合。由程序讀取8259A的查詢字來判斷該8259A的中斷源是否有請求。指明IR4優(yōu)先級最低后,優(yōu)先級順序為:IR5

溫馨提示

  • 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

提交評論