版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
7.1中斷的基本概念7.2可編程中斷控制器8259A7.38259A應(yīng)用舉例第7章中斷控制器接口技術(shù)本章要點:8259A的編程結(jié)構(gòu)和工作原理8259A的工作方式8259A的初始化命令字、操作命令字及其使用8259A的初始化流程和初始化編程主從式8259A中斷系統(tǒng)的連接和工作原理一、什么是中斷
中斷:是指CPU在正常運行程序時,由于內(nèi)部/外部事件或由程序的預(yù)先安排的事件,引起的CPU中斷正在運行的程序,而轉(zhuǎn)到為內(nèi)部/外部事件或為預(yù)先安排的事件服務(wù)的程序中去,服務(wù)完畢后,再返回去繼續(xù)執(zhí)行被暫時中斷的程序的過程。二、中斷源與中斷識別
1.中斷源
中斷源:發(fā)出中斷請求的外部設(shè)備或引起中斷的內(nèi)部原因。又分為外部中斷、內(nèi)部中斷。
中斷過程7.1中斷的基本概念
中斷源可細(xì)分為:
(1)外設(shè)中斷:系統(tǒng)外部設(shè)備要求與CPU交換信息而產(chǎn)生的中斷(2)指令中斷:為了方便用戶使用系統(tǒng)資源或調(diào)試軟件而設(shè)置的中斷指令(3)程序性中斷:程序員的疏忽或算法上的差錯。使程序在運行過程中出現(xiàn)的錯誤而產(chǎn)生的中斷(4)硬件故障中斷:計算機在運行過程中,硬件出現(xiàn)錯誤而引起的中斷。
7.1中斷的基本概念
中斷類型總分類:
中斷內(nèi)部中斷外部中斷可屏蔽中斷(外設(shè)中斷、用戶設(shè)定的中斷)非屏蔽中斷(電源故障中斷)7.1中斷的基本概念8086/8088的中斷類型非屏蔽中斷源中斷邏輯INTO指令單步中斷除法錯誤INTN指令CPUINTRNMI可屏蔽中斷源8259A中斷控制器IR0IR1IR2IR3IR4IR5IR6IR7外設(shè)中斷源
INTA內(nèi)部中斷除法錯中斷指令中斷溢出中斷單步中斷外部中斷非屏蔽中斷可屏蔽中斷1.內(nèi)部中斷
內(nèi)部中斷是由于8088內(nèi)部執(zhí)行程序出現(xiàn)異常引起的程序中斷除法錯中斷:向量號為0指令中斷:向量號為n斷點中斷:向量號為3溢出中斷:向量號為4單步中斷:向量號為1內(nèi)部中斷的中斷向量號已定2.外部中斷
外部中斷是由于8088外部提出中斷請求引起的程序中斷非屏蔽中斷:向量號為2外部通過非屏蔽中斷NMI請求,必須響應(yīng)非屏蔽中斷主要用于處理系統(tǒng)的意外或故障可屏蔽中斷:向量號來自中斷控制器外部通過可屏蔽中斷INTR請求,由IF控制是否響應(yīng);響應(yīng)時產(chǎn)生/INTA信號可屏蔽中斷主要用于與外設(shè)交換數(shù)據(jù)IF控制可屏蔽中斷的響應(yīng)3、中斷標(biāo)志IF的狀態(tài)IF=0:關(guān)閉可屏蔽中斷關(guān)中斷、禁止中斷、中斷屏蔽系統(tǒng)復(fù)位,使IF=0任何一個中斷被響應(yīng),使IF=0執(zhí)行指令CLI,使IF=0IF=1:打開可屏蔽中斷開中斷、允許中斷、中斷開放執(zhí)行指令STI,使IF=14、中斷源識別
由于在計算機中中斷源眾多,所以CPU響應(yīng)中斷后要設(shè)法尋找中斷源,從而確定中斷類型。以便轉(zhuǎn)入相應(yīng)的中斷服務(wù)子程序中去執(zhí)行中斷服務(wù)。
CPU識別中斷源的方法有兩種:向量中斷,查詢中斷。
向量中斷是由中斷向量來指示中斷服務(wù)程序的入口地址。查詢中斷是采用軟件或硬件查詢技術(shù)來確定發(fā)出中斷請求的中斷源。7.1中斷的基本概念三、中斷向量與中斷向量表
中斷向量:是中斷服務(wù)程序的入口地址。包括中斷服務(wù)程序的段基址CS和偏移地址IP。在80x86系列計算機中把256種中斷類型的服務(wù)程序地址放在存儲器的00000H~003FFH處,共1024個字節(jié)單元,這段空間稱為中斷向量表。四、中斷類型號與中斷向量指針
中斷類型(向量)號:是系統(tǒng)分配給每個中斷源的代號,共有00H~0FFH號共256號。
中斷向量號與中斷向量指針的關(guān)系:中斷類型號*4=中斷向量的低字節(jié)的指針。
中斷向量指針與中斷號關(guān)系7.1中斷的基本概念五、中斷優(yōu)先級排隊
當(dāng)系統(tǒng)中有多個中斷同時申請中斷時,CPU在一個時刻只能響應(yīng)并處理一個中斷請求,排隊的方法有:a.按優(yōu)先級排隊(固定優(yōu)先級排隊)b.循環(huán)輪流排隊(循環(huán)優(yōu)先級排隊)。六、中斷嵌套
當(dāng)CPU正在處理某個中斷源時,即正在執(zhí)行中斷服務(wù)程序時,會出現(xiàn)優(yōu)先級更高的中斷申請,CPU需要暫時中斷當(dāng)前正在執(zhí)行的級別較低的中斷服務(wù)程序,去處理級別高的中斷,處理完后,再返回被中斷了的中斷服務(wù)程序繼續(xù)執(zhí)行。
7.1中斷的基本概念7.2中斷控制器8259AIntel8259A是可編程中斷控制器可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中斷8259A的功能:中斷優(yōu)先權(quán)管理接受中斷請求,中斷屏蔽與開放提供中斷類型號具有屏蔽與開放中斷的功能
8259A特點:單片8259可處理8級中斷級聯(lián)時:最多可用9片處理64級中斷8259A的片內(nèi)尋址A0=1、0,兩個端口地址8259A的引腳8259A的引腳
雙列直插式芯片,28個引腳方波鍵盤保留串口2
硬盤軟盤打印機IOW18.2HzA1CS8259A總線A0數(shù)據(jù)線
IORRDWR片選譯碼IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A級連情況INTAINT
INTA
INTR串口1
定時器(1)CS*片選輸入信號線:輸入有效的低電平時,CPU可以通過總線對8259A進(jìn)行讀寫操作;輸入無效的高電平時,芯片不選中不工作。(2)WE*寫控制信號線:輸入低電平時,CPU對8259A寫入命令控制字。(3)RD*讀控制信號線:輸入低電平時,芯片將狀態(tài)信息送到數(shù)據(jù)總線。(4)D0-D7數(shù)據(jù)總線:與系統(tǒng)總線相連,CPU通過數(shù)據(jù)總線交換信息(5)CAS0-CAS2級聯(lián)信號線:8259A單片使用時無效。對于主片其輸出信號,根據(jù)這3根線輸出值的組合000-111(=i),確定連在主片引腳IRi的從片工作;對從片,根據(jù)輸入的值000-111來決定本從片是否被選中。(6)GND地址線。(7)VCC電源線:+5V。(8)A08259A內(nèi)部寄存器選擇控制信號:與CPU的地址線A1相連,A0=0時對應(yīng)寄存器ICW1、OCW2、OCW3,A0=1時,對應(yīng)寄存器ICW2-ICW4、OCW1。(9)INTA*中斷響應(yīng)輸入線:低電平有效,接收CPU送來的中斷響應(yīng)信號。(10)IR0-IR7外設(shè)中斷請求信號線:連接外設(shè)的中斷請求信號線,外設(shè)通過它向8259A進(jìn)行中斷請求,規(guī)定的優(yōu)先次序為IR0>IR1>…..>IR7。(11)INT中斷請求輸出線:與CPU中斷請求輸入線INTR相連,向CPU進(jìn)行中斷請求。(12)SP*/EN*
主片從片允許線:作為輸入,=1時則為主片,=0時則為從片;作為輸出時,啟動8259A到CPU之間的數(shù)據(jù)總線驅(qū)動器,后面進(jìn)一步詳述。8259A的編程結(jié)構(gòu)8259A的編程結(jié)構(gòu)SP/ENCA0CA1CA2IORIOW總線D0~D7數(shù)據(jù)線D0~D7INTAINTRA0片選譯碼A5~A9CSA0RD
INTAWRINT
1×
I3I4ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片連接關(guān)系
ICW4
方式控制0111A010010100OCW1
中斷屏蔽寄存器
IMR
00
OCW2
優(yōu)先級設(shè)置、發(fā)EOI
01
OCW3特殊屏蔽,查詢方式設(shè)置處理部分控制部分00000000
ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級比較器VCCGND100A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中斷申請寄存器00000000
(1)數(shù)據(jù)總線緩沖器:雙向3態(tài)緩沖器,8根數(shù)據(jù)線D0-D7是與微處理器總線的數(shù)據(jù)接口,通過它與CPU進(jìn)行命令、數(shù)據(jù)的傳送。(2)讀寫控制邏輯:接收CPU讀寫命令,將控制命令字送到8259A的相應(yīng)命令寄存器中,將8259A控制寄存器的內(nèi)容輸出到總線上。(3)聯(lián)級緩沖/比較器:多片8259A聯(lián)級時,一片為主片其它片為從片,主片從片的CAS0-CAS2并接作為聯(lián)級總線。從片將主片發(fā)來的信號編碼與自己編碼相同時表示從片被選中。(4)中斷控制邏輯:管理8259A全部工作,未被屏蔽中斷請求時,通過INT向CPU發(fā)中斷請求,ISR值為“1”的相應(yīng)位,發(fā)相應(yīng)中斷類型號,通過數(shù)據(jù)總線緩沖器送到系統(tǒng)總線上。
(5)中斷服務(wù)寄存器ISR:用來存放所有正在進(jìn)行的中斷服務(wù)請求,某位若為1,表示為相應(yīng)的中斷源服務(wù)。進(jìn)行優(yōu)先比較,決定是否進(jìn)行嵌套。(6)中斷優(yōu)先權(quán)電路PR:對保存在中斷請求寄存器IRR中的各個中斷請求,將最高優(yōu)先權(quán)的中斷對應(yīng)位送到中斷服務(wù)寄存器ISR中。(7)中斷請求寄存器IRR:與接口的中斷線IR0-IR7相連,外設(shè)通過這8根線向8259A發(fā)中斷請求服務(wù),每根線發(fā)來的信息,用一個相應(yīng)的觸發(fā)器位來保存,IR0-IR7中的某一根線輸入高電平信號時,該寄存器的相應(yīng)位為1。(8)中斷屏蔽寄存器IMR:用來存放中斷屏蔽字,IMR寄存器中的每一位,對IRR的相應(yīng)位的中斷請求起屏蔽作用,當(dāng)IMR的某位為0時,允許對應(yīng)的IRR寄存器的相應(yīng)位的中斷請求,進(jìn)入中斷優(yōu)先權(quán)電路PR。8259A寄存器及I/O端口的識別8259A讀寫操作及地址CSRDWRA0功能8259A端口PC/XT機端口0010讀IRR,ISR偶地址20H0011讀IMR奇地址21H0100寫ICW1,OCW2,OCW3偶地址20H0101寫ICW2,ICW3,ICW4,OCW1奇地址21H011×無操作
1×××無操作
8259A的工作過程分兩步:(1)處理外設(shè)中斷申請,決定是否向CPU發(fā)中斷申請信號。(2)若發(fā)中斷申請信號,且CPU響應(yīng),則在CPU中斷響應(yīng)周期送出中斷類型號。(1)處理外設(shè)中斷申請,決定是否向CPU發(fā)中斷申請信號②中斷屏蔽寄存器IMR決定IRR中的中斷申請是否進(jìn)入優(yōu)先級裁決器PR。IMR對應(yīng)位為
0,允許中斷申請進(jìn)入優(yōu)先級裁決器,IMR對應(yīng)位為1,不允許進(jìn)入,中斷申請被IMR屏蔽。①中斷申請寄存器IRR鎖存外部的中斷申請。若IR0~IR7引腳上有中斷申請,則將IRR相應(yīng)位置1③
當(dāng)前中斷服務(wù)寄存器ISR
記錄CPU正在響應(yīng)的中斷。ISR中的某位為1,表示CPU正在響應(yīng)此級中斷,ISR中的某位為0,表示CPU沒有或已響應(yīng)完此級中斷,
④
優(yōu)先級裁決器PR據(jù)新進(jìn)入的中斷申請和ISR的內(nèi)容,決定是否發(fā)中斷申請信號。如果進(jìn)入的中斷申請比ISR中記錄的中斷優(yōu)先級高,則通過8259A的INT引腳向CPU發(fā)出中斷請求信號;如果進(jìn)入的中斷申請不比ISR中記錄的中斷優(yōu)先級高,同級或低級,則不向CPU發(fā)中斷請求信號。①中斷申請寄存器IRR鎖存外部的中斷申請。若IR0~IR7引腳上有中斷申請,則將IRR相應(yīng)位置1IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制00000000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器00000000
10010100INTR11②中斷屏蔽寄存器IMR決定IRR中的中斷申請
是否進(jìn)入優(yōu)先級裁決器PR。IMR對應(yīng)位為
0,允許中斷申請進(jìn)入優(yōu)先級裁決器,IMR對應(yīng)位為1,不允許進(jìn)入,中斷申請被IMR屏蔽。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制00000000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTRIR0③
當(dāng)前中斷服務(wù)寄存器ISR
記錄CPU正在響應(yīng)的中斷。ISR中的某位為1,表示CPU正在響應(yīng)此級中斷,即正在執(zhí)行此中斷源的中斷子程序;ISR中的某位為0,表示CPU沒有或已響應(yīng)完此級中斷,即不在執(zhí)行此中斷源的中斷子程序。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制001
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTRIR0IR2④
優(yōu)先級裁決器PR據(jù)新進(jìn)入的中斷申請和ISR的內(nèi)容,
決定是否發(fā)中斷申請信號。如果進(jìn)入的中斷申請比ISR中記錄的中斷優(yōu)先級高,則通過8259A的INT引腳向CPU發(fā)出中斷請求信號;如果進(jìn)入的中斷申請不比ISR中記錄的中斷優(yōu)先級高,同級或低級,則不向CPU發(fā)中斷請求信號。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制001
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTRIR0(2)若發(fā)中斷申請信號,且CPU響應(yīng),則在CPU中斷響應(yīng)周期送出中斷類型號
CPU接收到INTR上的中斷申請信號后:如果IF標(biāo)志為0,則CPU不響應(yīng)此中斷申請信號,
即中斷申請被IF屏蔽。如果IF標(biāo)志為1,則處理完當(dāng)前的指令后,進(jìn)入中斷響應(yīng)周期:
通過INTA引腳發(fā)出兩個負(fù)脈沖信號,從數(shù)據(jù)總線上獲取中斷類型號,進(jìn)入中斷響應(yīng)的過程。向量類型
INTACLKAD7~AD0T1T2T3T4第一個中斷響應(yīng)周期T1T2T3T4第二個中斷響應(yīng)周期
8086CPU中斷響應(yīng)周期時序①將ISR中相應(yīng)位置1,表示CPU響應(yīng)此級中斷。8259A在接收到第一個INTA中斷響應(yīng)信號后:001
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置10010100IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RDWR
INTAINTD0~D7INTR01把IRR中對應(yīng)的位清0,清除IRR中鎖存的中斷申請信號。使IRR鎖存允許,不予接受IR0~I(xiàn)R7上的中斷請求信號;直到第二個負(fù)脈沖結(jié)束后,才又使IRR鎖存禁止(輸入輸出透明)①
通過數(shù)據(jù)線,將被響應(yīng)申請的中斷類型號送給CPU。類型號由ICW2提供,在初始化8259A時已設(shè)定好。8259A在接收到第二個INTA中斷響應(yīng)信號后:001
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置10010100IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RDWR
INTAINTD0~D7INTR01②
CPU獲得中斷類型號后,進(jìn)入CPU響應(yīng)中斷的過程,執(zhí)行中斷子程序,處理中斷源申請的功能。ICW2①取中斷類型號N②當(dāng)前PSW的內(nèi)容入棧③清IF、TF標(biāo)志為0④當(dāng)前CS的內(nèi)容入棧⑤當(dāng)前IP的內(nèi)容入棧⑥取內(nèi)存單元(0:N×4)字內(nèi)容送IP取中斷子程⑦取內(nèi)存單元(0:N×4+2)字內(nèi)容送CS
入口地址此時CS:IP指向中斷程序的入口,開始執(zhí)行中斷程序。保存現(xiàn)場CPU響應(yīng)中斷過程:執(zhí)行完中斷子程中最后一條指令I(lǐng)RET后,返回被中斷處,繼續(xù)執(zhí)行被中斷的程序。8259工作示意圖返回中斷級連一個系統(tǒng)中,8259A可以級連,有一個主8259A,若干個(最多8個)從8259A級連時,主8259A的三條級連線CAS0~CAS2作為輸出線,連至每個從8259A的CAS0~CAS2每個從8259A的中斷請求信號INT,連至主8259A的一個中斷請求輸入端IR主8259A的INT線連至CPU的中斷請求輸入端SP*/EN*在非緩沖方式下,規(guī)定該8259A是主片(SP*=1)還是從片(SP*=0)CAS0IR0CAS1IR1CAS2IR2
IR3INTAIR4IR5INTIR6IR7SP/EN
CAS0INTA
CAS1
CAS2INT
IR0
IR1SP/ENIR7CAS0IR0CAS1IR1CAS2IR2
IR3INTAIR4IR5INTIR6IR7SP/ENINTAINTR+5V8259級聯(lián)工作示意圖8259級聯(lián)工作示意圖8259A的工作方式1.設(shè)置優(yōu)先級的方式(1)全嵌套方式
(2)特殊全嵌套方式
(3)優(yōu)先級自動循環(huán)方式
(4)優(yōu)先級特殊循環(huán)方式
(1)完全嵌套方式:(FULLYNESTEDMODE)
在對8259進(jìn)行初始化后,沒有設(shè)置其它優(yōu)先級方式,則自動按此方式工作.
特點:在全嵌套方式中,中斷請求按優(yōu)先級IR0~IR7級進(jìn)行處理,IR0級中斷的優(yōu)先級最高。當(dāng)一個中斷請求被響應(yīng)時,ISR中的對應(yīng)位ISn被置“1”,8259A把中斷類型碼放到數(shù)據(jù)總線上,然后,進(jìn)入中斷服務(wù)程序。一般情況下(除了“中斷自動結(jié)束”方式外),在CPU發(fā)出中斷結(jié)束命令(EOI)前,此對應(yīng)位一直保持為“1”-封鎖同級或低級的中斷響應(yīng),但并不禁止比本級優(yōu)先級高的中斷響應(yīng)-實現(xiàn)中斷“嵌套”。8259A的工作方式8259A的工作方式(2)特殊全嵌套方式(SPECIALFULLYNESTEDMODE-SFNM)在處理某一級中斷時,不但允許優(yōu)先級更高的中斷請求進(jìn)入,也允許同級的中斷請求進(jìn)入。用于主從結(jié)構(gòu)的8259系統(tǒng)中,將主片設(shè)置為“特殊全嵌套方式”。通過ICW4的“SFNM”位可以設(shè)置此種方式。CPUIR0IR1IR7…IR0IR1IR7…8259(主片)8259(從片)(3)優(yōu)先級自動循環(huán)方式(AUTOMATICROTATION)優(yōu)先級是循環(huán)變化的(不希望有固定的優(yōu)先級差別)-一個設(shè)備的中斷服務(wù)完成后,其優(yōu)先級自動降為最低,而將最高優(yōu)先級賦給原來比它低一級的中斷請求。開始時,優(yōu)先級隊列還是:IR0->IR7,若此時出現(xiàn)了IR0請求,響應(yīng)IR0并處理完成后,隊列變?yōu)椋篒R1,IR2,IR3,IR4
,IR5
,IR6
,IR7,IR0。若又出現(xiàn)了IR4請求,處理完IR4后,隊列變?yōu)椋合到y(tǒng)中是否采用“自動循環(huán)優(yōu)先級”,由 操作命令字OCW2來設(shè)定。8259A的工作方式8259A的工作方式(4)優(yōu)先級特殊循環(huán)方式(SPECIFICROTATION)與“優(yōu)先級自動循環(huán)方式”相比,只有一點不同,即可以設(shè)置開始的最低優(yōu)先級。例如,設(shè)定IR4為最低優(yōu)先級,那么IR5就是最高優(yōu)先級,其余各級按循環(huán)方法類推。(OCW2:”110”)2.屏蔽中斷源的方式(1)普通屏蔽方式通過對中斷屏蔽寄存器(IMR)的設(shè)定,實現(xiàn)對相應(yīng)位為“1”的中斷請求的屏蔽??赏ㄟ^OCW1使IMR的一位或幾位置“1”。(2)特殊屏蔽方式
(SPECIALMASKMODE)將IMR的Di位置1,對應(yīng)的中斷IRi被屏蔽的同時,使ISR的Di位置0。特殊屏蔽方式是只屏蔽與正在處理的中斷相同級別的中斷,不僅開放了級別高的中斷,而且真正開放了其它級別較低的中斷。
輸出OCW3(ESMM=1,SMM=1)輸出OCW1(使IMR對應(yīng)于本級的位為“1”)…………輸出OCW1(使IMR對應(yīng)于本級的位為“0”)輸出OCW3(ESMM=1,SMM=0)“中斷級無效”設(shè)置撤銷3.結(jié)束中斷處理的方式(1)中斷自動結(jié)束方式
(2)一般的中斷結(jié)束方式
(3)特殊的中斷結(jié)束方式
結(jié)束中斷處理方式什么是8259A的中斷結(jié)束?8259A利用中斷服務(wù)寄存器ISR判斷:某位為1,表示正在進(jìn)行中斷服務(wù);該位為0,就是該中斷結(jié)束服務(wù)。這里說明如何使ISR某位為0,不反映CPU的工作狀態(tài)。8259A工作方式3.中斷結(jié)束方式(ENDOFINTERRUPT-EOI)(1)中斷自動結(jié)束方式(AUTOMATIC-AEOI方式)在第二個后沿,即完成把對應(yīng)的ISR位復(fù)位。注意:AEOI方式是在中斷響應(yīng)后,而不是在中斷處理程序結(jié)束后將ISR位清0。這樣,在中斷處理過程中,8259A中就沒有“正在處理”的標(biāo)識。此時,若有中斷請求出現(xiàn),且IF=1,則無論其優(yōu)先級如何(比本級高、低或相同),都將得到響應(yīng)。尤其是當(dāng)某一中斷請求信號被CPU響應(yīng)后,如不及時撤銷,就會再次被響應(yīng)-“二次中斷”所以,AEOI方式適合于中斷請求信號的持續(xù)時間有一定限制以及不出現(xiàn)中斷嵌套的場合。通過ICW4可以設(shè)置AEOI方式(AEOI=1)INTA8259A工作方式(2)一般(常規(guī))中斷結(jié)束方式適合于全嵌套方式。實現(xiàn):在中斷服務(wù)程序結(jié)束時,向8259A發(fā)常規(guī)中斷結(jié)束命令(OCW2:EOI=1,SL=0,R=0)例:MOVAL,20H;OCW2=20HOUT20H,AL;端口地址=20H(偶地址)在全嵌套方式下,ISR中最高優(yōu)先級的置“1”位,正對應(yīng)于當(dāng)前正在處理的中斷,將其清“0”,就完成了當(dāng)前正在處理中斷的結(jié)束操作。…1011IR0IR78259A工作方式(3)特殊中斷結(jié)束方式(SPECIFICEOI-SEOI)在非全嵌套方式下,無固定的優(yōu)先級序列(使用設(shè)置優(yōu)先權(quán)命令或特殊屏蔽方式),此時,根據(jù)ISR的內(nèi)容就無法確定剛剛所響應(yīng)(處理)的中斷。這種情況下,就不能用上述的EOI方式進(jìn)行中斷結(jié)束處理,而必須用特殊的中斷結(jié)束命令SEOI--用OCW2:EOI=1,SL=1,R=0,L2~L0.由L2~L0指定清除ISR中的哪一位。4.連接系統(tǒng)總線的方式(1)緩沖方式
(ICW4的BUF=1)8259A通過總線驅(qū)動器(如8286)和數(shù)據(jù)總線相連。在緩沖方式下,8259A的作為輸出(有效),此時,由ICW4的M/S位來定義(標(biāo)識)本8259A是主片還是從片。(2)非緩沖方式
即8259A直接與數(shù)據(jù)總線相連在“非緩沖方式下”,8259A的作為輸入(有效)
此時,由端來標(biāo)識本8259A是主片還是從片。在“非緩沖方式下”,ICW4的BUF=0,M/S位無意義。SP/ENENSP/ENSPSP/EN8259A緩沖方式下級連結(jié)構(gòu)8259A非緩沖方式下級連結(jié)構(gòu)
地址總線
控制總線
數(shù)據(jù)總線
CSA0DBINTA
INT
CAS0
8259A從控ACAS1
CAS2
SP/ENIRQ7┅
IRQ0
CSA0DBINTAINT
CAS0
CAS18259A主控
CAS2
IRQ7┅
IRQ0
SP/EN
76
5432
10
CSA0DB
INTA
INT
CAS0
8259A從控BCAS1
CAS2
SP/ENIRQ7┅
IRQ0
GND76543210
GND76543210
VCC76543210
CSA0DB
INTA
INT
CAS0
8259A從控BCAS1
CAS2
SP/ENIRQ7┅
IRQ0
CSA0DB
INTA
INT
CAS0
8259A從控BCAS1
CAS2
SP/ENIRQ7┅
IRQ0
CSA0DB
INTA
INT
CAS0
8259A從控BCAS1
CAS2
SP/ENIRQ7┅
IRQ0
CSA0DB
INTA
INT
CAS0
8259A從控BCAS1
CAS2
SP/ENIRQ7┅
IRQ0
5.引入中斷請求的方式(1)邊沿觸發(fā)方式
由IRi上由低電平向高電平的跳變來觸發(fā)“中斷請求觸發(fā)器”。由ICW1的LTIM位可以設(shè)置中斷觸發(fā)方式。(2)電平觸發(fā)方式
由IRi上的有效電平來觸發(fā)“中斷請求觸發(fā)器”。(3)中斷查詢方式
中斷查詢方式的特點:不向CPU發(fā)中斷請求信號CPU內(nèi)部的中斷允許觸發(fā)器復(fù)位CPU要使用軟件查詢來確認(rèn)中斷源8259A工作方式*“中斷查詢”方式特點:既有中斷的特點,又有查詢(Polling)的特點。外設(shè)仍然向8259A發(fā)中斷請求信號,要求CPU服務(wù)。CPU的IF=0,不響應(yīng)外部的中斷請求(對CPU的中斷請求信號不起作用)此時,CPU需要用軟件查詢方法來確認(rèn)中斷源,從而實現(xiàn)對設(shè)備的服務(wù)先向8259A發(fā)查詢命令(pollcommand)OCW3:00001100P8259A的工作方式緊接著執(zhí)行一條讀指令(IN指令),讀出專門的“中斷狀態(tài)字”:當(dāng)8259A收到P=1的查詢命令后,在下一個信號將使ISR的相應(yīng)位置“1”,就像收到了一樣,并把上述的“中斷狀態(tài)字”送到數(shù)據(jù)總線上,由CPU讀入AL。0A0IR----W2W1W0D7D01:有設(shè)備請求服務(wù);0:無設(shè)備請求服務(wù)。當(dāng)前最高優(yōu)先級的中斷請求RDINTA8259A的工作方式普通全嵌套方式特殊全嵌套方式自動循環(huán)方式特殊循環(huán)方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)循環(huán)方式設(shè)置優(yōu)先權(quán)方式普通中斷結(jié)束方式特殊中斷結(jié)束方式自動中斷結(jié)束方式非自動中斷結(jié)束方式結(jié)束中斷處理方式屏蔽中斷源方式普通屏蔽方式特殊屏蔽方式中斷觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式數(shù)據(jù)線連接方式緩沖方式非緩沖方式8259A的的編程對8259A的各種操作是由CPU來控制的。CPU的命令分為兩大類:一類是初始化命令字ICW,另一類是操作命令字OCW。CPU對8259A的ICW操作,是由A0、RD、WR、CS等信號來共同控制的。1.初始化命令字ICW說明: 初始化命令字ICW最多有4個。
8259A在開始工作前必須寫入。 必須按照ICW1~I(xiàn)CW4順序?qū)懭搿?/p>
ICW1和ICW2是必須送的。
ICW3和ICW4由工作方式?jīng)Q定。D7D6D5D4D3D2D1D08259A的初始化命令字和操作命令字(1)ICW1(初始化字)×××1LTIM×SNGLIC4D7D6D5D4D3D2D1D0×——表示可以任意為1為0都可以(建議為0)1——只能為1,作為標(biāo)志中斷觸發(fā)方式:LTIM=1,電平觸發(fā)方式LTIM=0,邊沿觸發(fā)方式規(guī)定單片或級連方式:SNGL=1,單片方式SNGL=0,級連方式是否寫入ICW4IC4=1,要寫入ICW4IC4=0,不寫入ICW4,即ICW4規(guī)定的位全為08259A的的編程(2)ICW2(中斷向量字)T7T6T5T4T3×××D7D6D5D4D3D2D1D0設(shè)置中斷向量號T7~T3為中斷向量碼的高5位低3位由8259A自動確定:IR0為000、IR1為001、……、IR7為1118259A的的編程(2)ICW2的格式和含義①ICW2是任選的;②ICW2高5位影響中斷類型碼,而中斷類型碼的低3位由IR0~I(xiàn)R7決定(3)ICW3(級聯(lián)命令字)S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0級連命令字主片8259A:Si=1對應(yīng)IRi接有從片;否則IRi沒有連接從片從片8259A:ID0~I(xiàn)D2編碼說明從片INT引腳接到主片哪個IR引腳8259A的的編程例:主片8259A的IR3和IR6接了2個從片.
主片端口地址:20H,21H;1#從片端口地:A0H,A1H
試設(shè)置ICW3.主片:ICW3=01001000B=48H從片1#:ICW3=00000011=03H從片2#:ICW3=00000110=06H
主片ICW3的初始化程序段:MOVAL,48HOUT21H,AL1#從片ICW3的初始化:MOVAL,03HOUT0A1H,AL(4)ICW4(中斷方式字)000SFNMBUFM/SAEOIμPMD7D6D5D4D3D2D1D0嵌套方式:特殊全嵌套方式(SFNM=1)普通全嵌套方式(SFNM=0)數(shù)據(jù)線的緩沖方式:緩沖方式(BUF=1)非緩沖方式(BUF=0)主片/從片選擇:主片(M/S=1)從片(M/S=0)中斷結(jié)束方式:自動中斷結(jié)束(AEOI=1)非自動中斷結(jié)束(AEOI=0)微處理器類型:16位80x86(
PM=1)8位8080/8085(
PM=0)8259A的的編程初始化流程對初始化流程的幾點說明①ICW1寫入偶端口,ICW2~I(xiàn)CW4寫入奇端口②ICW1~I(xiàn)CW4的設(shè)置次序固定③ICW1和ICW2須設(shè)置,ICW3和ICW4非必須④
在級聯(lián)時,主片和從片各設(shè)置ICW32.操作命令字OCW說明:8259A工作期間,可以隨時接受操作命令字OCW。OCW共有3個:OCW1~OCW3。寫入時沒順序要求,需要哪個OCW就寫入那個OCW。D7D6D5D4D3D2D1D08259A的的編程(1)OCW1(屏蔽控制字)M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字內(nèi)容寫入中斷屏蔽寄存器IMRDi=Mi對應(yīng)IRi,為1禁止IRi中斷;為0允許IRi中斷。各位互相獨立。8259A的的編程(2)OCW2(中斷結(jié)束和優(yōu)先級循環(huán)控制字)RSLEOI00L2L1L0D7D6D5D4D3D2D1D0D7:R=1,優(yōu)先級循環(huán)方式;
R=0,非循環(huán)方式。8259A的的編程D6:=1,用L2、L1、L0指定中斷等級。D5(EOI):=1,在中斷服務(wù)完畢,發(fā)中斷結(jié)束命令,使當(dāng)前ISR的對應(yīng)位ISn復(fù)位。
D5(EOI):=0,不發(fā)EOI。D4D3:=00,特征位L2~L0的3位編碼指定IR引腳OCW2的功能(1)設(shè)置優(yōu)先級循環(huán)方式(2)組成兩類中斷結(jié)束命令: 一般的中斷結(jié)束命令 特殊的中斷結(jié)束命令表:OCW2的組合控制方式(3)OCW3(屏蔽和讀狀態(tài)控制字)0ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM設(shè)置中斷屏蔽方式ESMM=1,SMM=1,置特殊屏蔽方式,8259A脫離當(dāng)前優(yōu)先級方式.ESMM=1,SMM=0,撤銷特殊屏蔽方式8259A的的編程D4D3=01,特征位P、RR和RIS規(guī)定隨后讀取的狀態(tài)字含義(3)OCW3的格式(A0=0)用于提供查詢方式,特殊屏蔽方式,讀狀態(tài)等操作1.查詢中斷:
P=1時,表示查詢。例:IR4引腳上有中斷請求,CPU執(zhí)行一條輸入指令,從偶地址端口讀得以下查詢字:8259A的的編程2.讀狀態(tài)OCW3=00001010B,RR=1,RIS=0,讀IRR;OCW3=00001011B,RR=1,RIS=1,讀ISR。若要讀IMR,不須設(shè)OCW3的查詢命令。3.特殊屏蔽方式操作ESMM=1,SMM=1,置特殊屏蔽方式,8259A脫離當(dāng)前優(yōu)先級方式.ESMM=1,SMM=0,撤銷特殊屏蔽方式4.關(guān)于8259A的讀出操作,可以讀四個方面的內(nèi)容讀“中斷狀態(tài)字”(“查詢字”):先寫入P=1的OCW3查詢命令字用偶地址讀(INAL,20H)讀IRR:先寫入OCW3(RR=1,RIS=0)用偶地址讀(INAL,20H)讀ISR:先寫入OCW3(RR=1,RIS=1)用偶地址讀(INAL,20H)隨時可用奇地址讀IMR(INAL,21H)7.38259A使用舉例
1.關(guān)于中斷全嵌套方式的例子2.關(guān)于如何使用中斷結(jié)束命令的例子
兩個重要結(jié)論:①中斷處理程序執(zhí)行STI指令才允許嵌套②
中斷處理程序如執(zhí)行STI指令,并清除對應(yīng)的ISn位,則未必符合優(yōu)先級規(guī)則
8259A的使用例:單片使用8259A的初始化(1)要求:IBMPC/XT8259A,單片,邊緣觸發(fā),全嵌套方式,設(shè)定0級中斷類型碼為08H.
端口地址:20H,21H.(2)硬件連接:CAS2~CAS0不用,SP/EN接+5V.(3)初
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新材料研發(fā)股東投資入股合同范本3篇
- 2025礦山合作協(xié)議及承包協(xié)議大全:礦山工程合同范本匯編3篇
- 2024年高速公路貨車司機勞務(wù)合同匯編3篇
- 2025年中國紅酒包裝行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略研究報告
- 2024閱卷團(tuán)隊保密協(xié)議及教學(xué)質(zhì)量跟蹤合同3篇
- 二零二五年度旅行社與旅游紀(jì)念品生產(chǎn)商合作協(xié)議4篇
- 2025年網(wǎng)絡(luò)分析儀項目風(fēng)險可行性方案
- 2025年中國員工胸號牌行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國民用航空運行業(yè)發(fā)展前景及投資戰(zhàn)略咨詢報告
- 高層建筑勞務(wù)分包合同(2025年度)質(zhì)量保證與驗收規(guī)定3篇
- 圖像識別領(lǐng)域自適應(yīng)技術(shù)-洞察分析
- 個體戶店鋪租賃合同
- 禮盒業(yè)務(wù)銷售方案
- 二十屆三中全會精神學(xué)習(xí)試題及答案(100題)
- 【奧運會獎牌榜預(yù)測建模實證探析12000字(論文)】
- 土力學(xué)與地基基礎(chǔ)(課件)
- 主要負(fù)責(zé)人重大隱患帶隊檢查表
- 魯濱遜漂流記人物形象分析
- 危險廢物貯存?zhèn)}庫建設(shè)標(biāo)準(zhǔn)
- 多層工業(yè)廠房主體結(jié)構(gòu)施工方案鋼筋混凝土結(jié)構(gòu)
- 救生艇筏、救助艇基本知識課件
評論
0/150
提交評論