第5章-53學(xué)時(shí)中斷控制接口_第1頁(yè)
第5章-53學(xué)時(shí)中斷控制接口_第2頁(yè)
第5章-53學(xué)時(shí)中斷控制接口_第3頁(yè)
第5章-53學(xué)時(shí)中斷控制接口_第4頁(yè)
第5章-53學(xué)時(shí)中斷控制接口_第5頁(yè)
已閱讀5頁(yè),還剩69頁(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第5章-2中斷控制系統(tǒng)教學(xué)重點(diǎn):

中斷的基本概念

8088/8086CPU的中斷系統(tǒng)

8259A的結(jié)構(gòu)原理和操作方式

8259A的應(yīng)用25.1基本概念中斷的定義

CPU執(zhí)行程序時(shí),由于發(fā)生了某種隨機(jī)的事件(外部或內(nèi)部),引起CPU暫時(shí)中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)程序(稱為中斷服務(wù)程序或中斷處理程序),以處理該事件,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,這一過程稱為中斷。3引起CPU中斷的事件:中斷源外設(shè)——請(qǐng)求輸入輸出數(shù)據(jù),報(bào)告故障等;事件——掉電、硬件故障、軟件錯(cuò)誤、非法操作、定時(shí)時(shí)間到等;中斷源分為:外部中斷、內(nèi)部中斷內(nèi)部中斷——CPU內(nèi)部執(zhí)行程序時(shí)自身產(chǎn)生的中斷;外部中斷——CPU以外的設(shè)備、部件產(chǎn)生的中斷;

8086/8088的外部中斷信號(hào):INTR、NMIINTR——可屏蔽中斷請(qǐng)求,高電平有效,受IF標(biāo)志的控制。IF=1時(shí),執(zhí)行完當(dāng)前指令后CPU對(duì)它作出響應(yīng);

NMI——非屏蔽中斷請(qǐng)求,上升沿有效,任何時(shí)候CPU都要響應(yīng)此中斷請(qǐng)求信號(hào)。5.1基本概念(續(xù))4中斷系統(tǒng)的目的

維持系統(tǒng)正常工作,提高系統(tǒng)效率;實(shí)時(shí)處理;為故障處理作準(zhǔn)備。

8088/8086的中斷系統(tǒng)采用向量中斷機(jī)制能夠處理256個(gè)中斷;用中斷向量號(hào)0~255或00H~FFH區(qū)別;可屏蔽中斷還需要借助專用中斷控制器Intel8259A實(shí)現(xiàn)優(yōu)先權(quán)管理。5.1基本概念(續(xù))55.28088/8086的中斷系統(tǒng)中斷系統(tǒng)--實(shí)現(xiàn)中斷過程的軟硬件系統(tǒng)中斷系統(tǒng)應(yīng)具有以下功能:能實(shí)現(xiàn)中斷響應(yīng)、中斷服務(wù)和中斷返回能實(shí)現(xiàn)中斷優(yōu)先權(quán)排隊(duì)能實(shí)現(xiàn)中斷嵌套65.2.1中斷類型優(yōu)先級(jí)順序:除法除、INTn、INTO、NMI、INTR、單步71.軟件中斷(內(nèi)部中斷)由于CPU內(nèi)部執(zhí)行程序出現(xiàn)異常引起的程序中斷除法錯(cuò)中斷:向量號(hào)為0斷點(diǎn)中斷:向量號(hào)為3溢出中斷:向量號(hào)為4;條件:OF=1指令中斷:向量號(hào)為n單步中斷:向量號(hào)為1;條件:TF=1且IF=1注意:

中斷優(yōu)先級(jí)除單步中斷外都比硬件中斷高且不能被屏蔽。軟件中斷的中斷向量號(hào)已定82.硬件中斷(外部中斷)由8088/8086外部提出中斷請(qǐng)求引起的程序中斷非屏蔽中斷:向量號(hào)為2外部通過非屏蔽中斷NMI請(qǐng)求,必須響應(yīng);非屏蔽中斷主要用于處理系統(tǒng)的意外或故障??善帘沃袛啵合蛄刻?hào)來自中斷控制器外部通過可屏蔽中斷INTR請(qǐng)求,由IF控制是否響應(yīng);響應(yīng)時(shí)產(chǎn)生INTA*信號(hào);可屏蔽中斷主要用于與外設(shè)交換數(shù)據(jù)。IF控制可屏蔽中斷的響應(yīng)93.中斷標(biāo)志IF的狀態(tài)IF=0:可屏蔽中斷不會(huì)被響應(yīng)關(guān)中斷、禁止中斷、中斷屏蔽系統(tǒng)復(fù)位,使IF=0任何一個(gè)中斷被響應(yīng),使IF=0執(zhí)行指令CLI,使IF=0IF=1:可屏蔽中斷會(huì)被響應(yīng)開中斷、允許中斷、中斷開放執(zhí)行指令STI,使IF=1執(zhí)行指令I(lǐng)RET恢復(fù)原IF狀態(tài)明確IF標(biāo)志的狀態(tài)是關(guān)鍵105.2.28088的中斷向量表向量號(hào)為N的中斷向量的物理地址=N×4回顧11CSIPCSIPCSIPCSIPCSIPCSIPCSIP︽︾︽︾︽︾︽︾類型255(十進(jìn)制)類型32類型31(十進(jìn)制)用戶可使用的中斷(共224個(gè))類型5類型4類型3類型2類型1類型0專用的中斷(共27個(gè))專用的中斷(共5個(gè))0000:03FFH0000:007FH0000:007EH0000:0014H0000:0013H0000:0010H0000:000FH0000:000CH0000:000BH0000:0008H0000:0007H0000:0004H0000:0003H0000:0000H溢出中斷斷點(diǎn)中斷非屏蔽中斷單步中斷除數(shù)為0中斷

中斷向量表(0:0-0:3FFH)5.2.28086/8088的中斷向量表(續(xù))請(qǐng)查閱附錄5.1P46012例5.1中斷類型號(hào)為27H中斷向量指針的低地址=27H×4=9CH中斷向量指針的高地址=27H×4+2=9EH即該中斷向量存放在0000H:009CH開始的4個(gè)連續(xù)單元中。如果這4個(gè)單元中的內(nèi)容如下:

0000:009C2AH

0000:009D43H0000:009E65H

0000:009F87H13例5.1中斷類型號(hào)為27H則該中斷類型號(hào)27H的中斷向量(中斷服務(wù)程序入口地址)的邏輯地址是

8765H:432AH即

(CS)=8765H、(IP)=432AH物理地址是

8B97AH145.2.3中斷響應(yīng)過程

1.硬件中斷響應(yīng)總線周期

非屏蔽中斷(NMI):不受中斷標(biāo)志位的控制,中斷類型號(hào)為2,所以中斷向量放在0000:0008開始的4個(gè)單元中。NMI中斷一般用于緊急情況的處理。

可屏蔽中斷(INTR):受中斷標(biāo)志位的控制,IF=1,CPU才能響應(yīng)INTR中斷。CPU響應(yīng)INTR中斷時(shí),往INTA*引腳上發(fā)兩個(gè)負(fù)脈沖,外設(shè)接到第二個(gè)負(fù)脈沖后,立即往數(shù)據(jù)總線上送出中斷類型碼,供CPU讀取。

151.硬件中斷響應(yīng)總線周期(續(xù))中斷響應(yīng)總線周期要求中斷控制器將中斷源的類型碼送入數(shù)據(jù)總線,供CPU讀取通知中斷控制器中斷申請(qǐng)已被響應(yīng),準(zhǔn)備類型碼16

先判斷IF是否為1,若IF=1則進(jìn)入中斷響應(yīng),此時(shí)CPU要讀取中斷類型碼,然后進(jìn)入所有中斷都要做的事。

1)將標(biāo)志寄存器FLAGS的內(nèi)容壓入堆棧;

2)將中斷允許標(biāo)志IF和單步標(biāo)志TF清零;

3)將斷點(diǎn)保護(hù)到堆棧中。當(dāng)前指令下面的一條指令的段寄存器CS的值和指令指針存器IP的值壓入堆棧,先壓CS,再壓IP的值;

4)根據(jù)當(dāng)前中斷的中斷類型碼查中斷向量表,得到中斷向量(中斷服務(wù)程序入口地址)分別裝入CS和IP,從而轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序;

5)執(zhí)行中斷服務(wù)程序,結(jié)束后恢復(fù)斷點(diǎn),從而繼續(xù)執(zhí)行原來的程序。2.中斷響應(yīng)和中斷處理過程17得到中斷服務(wù)程序入口地址后,查看NMI是否有,接著查看TEMP,若TEMP=1,則在中斷前CPU已處于單步方式,就和NMI一樣重新保護(hù)現(xiàn)場(chǎng)和斷點(diǎn),轉(zhuǎn)入單步中斷服務(wù)程序。若TEMP=0,即中斷前CPU處于非單步方式,則CPU轉(zhuǎn)去執(zhí)行最先引起中斷的中斷服務(wù)程序。18……堆棧-2-1-3-4-5-6SP→SS→返回的斷點(diǎn)…………中斷向量表4n+24n+34n+14n3FFH0中斷時(shí)的棧頂中斷服務(wù)程序入口FLAGSCSIPIPCS19例5.2中斷操作過程

某中斷類型號(hào)為72H,給出中斷操作過程。①將標(biāo)志寄存器FLAGS的內(nèi)容壓入堆棧②中斷允許標(biāo)志IF和單步標(biāo)志TF清零③將斷點(diǎn)保存到堆棧中④取中斷類型號(hào)72H;⑤計(jì)算中斷向量地址72H×4=1C8H;

72H×4+2=1CAH;⑥取中斷服務(wù)程序入口地址的偏移量送IP,(IP)=2050H,段地址送CS,(CS)=A000H;⑦轉(zhuǎn)入中斷服務(wù)程序A000H:2050H;⑧中斷返回到斷點(diǎn)地址處繼續(xù)執(zhí)行原程序205.38259A中斷控制器Intel8259A是可編程中斷控制器;可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中斷;8259A的基本功能:一片8259A可以管理8級(jí)中斷,可擴(kuò)展至64級(jí);每一級(jí)中斷都可單獨(dú)被屏蔽或允許;在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號(hào);8259A設(shè)計(jì)有多種工作方式,可通過編程選擇。218259A的主要任務(wù)

接受外部的中斷請(qǐng)求;

管理所有外部的中斷請(qǐng)求(排隊(duì)、判優(yōu)、屏蔽、嵌套);

向CPU產(chǎn)生中斷請(qǐng)求INTR及中斷類型號(hào);

接受CPU命令及返回狀態(tài)。

屏蔽中斷輸入。225.3.18259A的引腳235.3.2內(nèi)部結(jié)構(gòu)24中斷請(qǐng)求寄存器IRR保存8條外界中斷請(qǐng)求信號(hào)IR0~I(xiàn)R7的請(qǐng)求狀態(tài);Di位為1表示IRi引腳有中斷請(qǐng)求;為0表示無(wú)請(qǐng)求。中斷服務(wù)寄存器ISR保存正在被8259A服務(wù)著的中斷狀態(tài);Di位為1表示IRi中斷正在服務(wù)中;為0表示沒有被服務(wù)。中斷屏蔽寄存器IMR保存對(duì)中斷請(qǐng)求信號(hào)IR的屏蔽狀態(tài);Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許。5.3.2內(nèi)部結(jié)構(gòu)25數(shù)據(jù)總線緩沖器讀寫控制邏輯,一片8259A只占用兩個(gè)端口地址,由A0來選擇,其它高位地址譯碼輸出作為片選信號(hào)CS*。WR*、RD*分別為寫信號(hào)和讀信號(hào)。級(jí)聯(lián)緩沖器/比較器,擴(kuò)充中斷用。優(yōu)先級(jí)判別器PR,當(dāng)有多個(gè)中斷同時(shí)請(qǐng)求中斷時(shí),判別當(dāng)前優(yōu)先級(jí)最高的中斷請(qǐng)求進(jìn)入系統(tǒng)??刂七壿嫞刂菩酒瑑?nèi)各個(gè)部件協(xié)調(diào)一致地工作。5.3.2內(nèi)部結(jié)構(gòu)265.3.3與處理器接口A0RD*WR*CS*功能0100110000101010×110×××1寫入ICW1、OCW2和OCW3寫入ICW2~I(xiàn)CW4和OCW1讀出IRR、ISR、查詢字讀出IMR數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)思考:如何區(qū)分是寫入ICW1、OCW2還是OCW3?如何區(qū)分是寫入ICW2、ICW3還是OCW1?如何區(qū)分讀出的是IRR、ISR還是查詢字?278259A內(nèi)部寄存器的尋址方法/CS/RD/WRA0D4D3讀寫操作010000寫OCW2寫OCW3寫ICW1寫ICW2,ICW3,ICW4,OCW1(順序?qū)懭?00101x1xx00101xx讀出IRR、ISR、查詢字讀出IMR需要/CS、A0、/RD、/WR和D4、D3的配合讀IRR、ISR或中斷向量號(hào)之前先寫OCW3,根據(jù)OCW3的內(nèi)容,選擇讀哪一個(gè)。

28當(dāng)IR0~I(xiàn)R7上出現(xiàn)某一中斷請(qǐng)求信號(hào)

IRR對(duì)應(yīng)位被置“1”IMR的相應(yīng)位決定是否將其屏蔽中斷請(qǐng)求進(jìn)PR,PR把新進(jìn)入的中斷請(qǐng)求和當(dāng)前正在處理的中斷進(jìn)行優(yōu)先級(jí)比較,若新進(jìn)入的中斷優(yōu)先級(jí)高,該中斷請(qǐng)求被送到CPU。若CPU的IF=1,CPU完成當(dāng)前指令后,響應(yīng)中斷,在INTA引腳上發(fā)出兩個(gè)連續(xù)的中斷響應(yīng)信號(hào),在第2個(gè)中斷響應(yīng)到來時(shí),8259將類型號(hào)放到數(shù)據(jù)總線上。ISR對(duì)應(yīng)位被置“1”

8259中斷請(qǐng)求過程

8259中斷請(qǐng)求過程295.3.48259A的工作方式30⑴普通全嵌套方式:普通全嵌套方式是8259A初始化后自動(dòng)進(jìn)入的基本工作方式。此時(shí)優(yōu)先級(jí)從IR0到IR7依次降低。當(dāng)某一中斷處理時(shí),可響應(yīng)比它高的中斷,但禁止比它低的或同級(jí)中斷進(jìn)入。當(dāng)某一中斷請(qǐng)求處理結(jié)束時(shí),CPU向8259A發(fā)送中斷結(jié)束命令EOI,以使ISR中相應(yīng)位清零。

特殊全嵌套方式:與⑴的普通全嵌套方式類似,區(qū)別是CPU處理某一中斷時(shí),允許比它高的和與它同級(jí)的中斷請(qǐng)求進(jìn)入,而只禁止比它低的中斷請(qǐng)求。1.優(yōu)先級(jí)管理方式31D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:從片的INT被主片封鎖,故更高級(jí)別的IR0-IR2中斷也無(wú)法得到響應(yīng)特殊嵌套方式:因主片不封鎖從片的INT,故級(jí)別高的IR0-IR2中斷可以得到響應(yīng)。(但I(xiàn)R3-IR7仍被本從片封鎖)C.假定IR3發(fā)生中斷,并獲得服務(wù)一般嵌套方式:IR4的中斷被服務(wù)時(shí),這些中斷將被封鎖。B.特殊嵌套方式:IR4的中斷被服務(wù)時(shí),只封鎖IR5-IR7。A.INTE.從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式與特殊全嵌套方式的區(qū)別

去CPU32⑶自動(dòng)循環(huán)方式:任何一級(jí)中斷請(qǐng)求被處理完后,CPU向8259A發(fā)送中斷結(jié)束命令EOI,以使ISR中優(yōu)先級(jí)最高的置1位清零,并重新賦給它最低優(yōu)先級(jí),而將最高優(yōu)先級(jí)賦給比它低一級(jí)的中斷請(qǐng)求,其它中斷請(qǐng)求的優(yōu)先級(jí)則以循環(huán)方式類推。⑷

特殊循環(huán)方式:用戶根據(jù)要求用置優(yōu)先級(jí)命令指定最低優(yōu)先級(jí),例如設(shè)置IRi為最低優(yōu)先級(jí),則最高優(yōu)先級(jí)為IRi+1,其它各級(jí)按循環(huán)方式類推。1.優(yōu)先級(jí)管理方式(續(xù))33⑴

自動(dòng)中斷結(jié)束方式,中斷處理結(jié)束時(shí)自動(dòng)將ISR中相應(yīng)位清零,只需將初始化命令字ICW4中的AEOI置為1即可實(shí)現(xiàn)這種方式。⑵普通中斷結(jié)束方式,用在8259A的全嵌套方式下,即在CPU處理完一個(gè)中斷請(qǐng)求時(shí)需向8259A發(fā)送一個(gè)EOI命令,8259A收到EOI后,將ISR中最高優(yōu)先級(jí)的置1位清零(即當(dāng)前正在處理的中斷)。用操作命令字OCW2中的EOI=1,SL=0,R=0的設(shè)置來實(shí)現(xiàn)。⑶特殊中斷結(jié)束方式,在非全嵌套方式下,通過向8259A發(fā)一條特殊中斷結(jié)束命令來判斷要清除ISR中置1位中的哪一位。用操作命令字OCW2中的EOI=1,SL=1,R=0的設(shè)置來實(shí)現(xiàn),此時(shí)OCW2中的L2、L1、L0這3位指出了到底要清除ISR中的哪一位。2.中斷結(jié)束方式343.屏蔽中斷源方式⑴普通屏蔽方式,將IMR中某一位或幾位置1,則其對(duì)應(yīng)的中斷被屏蔽(即這些中斷被禁止)。⑵

特殊屏蔽方式,一般情況處理一個(gè)中斷時(shí),禁止同級(jí)或低級(jí)中斷進(jìn)入,但有些場(chǎng)合,在處理某個(gè)中斷時(shí),僅希望對(duì)本級(jí)屏蔽,可以響應(yīng)高級(jí)或低級(jí)中斷,此時(shí)采用這種方式。特殊屏蔽方式通過操作命令字OCW3中的ESMM和SMM同時(shí)置為1,并將IMR對(duì)應(yīng)于本級(jí)中斷的位置1來實(shí)現(xiàn)。35邊沿觸發(fā)方式8259A將中斷請(qǐng)求輸入端出現(xiàn)的上升沿作為中斷請(qǐng)求信號(hào);電平觸發(fā)方式中斷請(qǐng)求端出現(xiàn)的高電平是有效的中斷請(qǐng)求信號(hào)。4.中斷觸發(fā)方式365.數(shù)據(jù)線連接方式緩沖方式8259A的數(shù)據(jù)線需加緩沖器予以驅(qū)動(dòng);8259A把SP*/EN*引腳作為輸出端,輸出允許信號(hào),用以鎖存或開啟緩沖器;非緩沖方式SP*/EN*引腳為輸入端;若8259A級(jí)連,由其確定是主片或從片。376.中斷級(jí)連一個(gè)系統(tǒng)中,8259A可以級(jí)連,有一個(gè)主8259A,若干個(gè)(最多8個(gè))從8259A;級(jí)連時(shí),主8259A的三條級(jí)連線CAS0~CAS2作為輸出線,連至每個(gè)從8259A的CAS0~CAS2;每個(gè)從8259A的中斷請(qǐng)求信號(hào)INT,連至主8259A的一個(gè)中斷請(qǐng)求輸入端IR;主8259A的INT線連至CPU的中斷請(qǐng)求輸入端;SP*/EN*在非緩沖方式下,規(guī)定該8259A是主片(SP*=1)還是從片(SP*=0)。38395.3.58259A的編程初始化編程8259A開始工作前,必須進(jìn)行初始化編程;給8259A寫入初始化命令字ICW。中斷操作編程在8259A工作期間;可以寫入操作命令字OCW將選定的操作傳送給8259A,使之按新的要求工作;還可以讀取8259A的信息,以便了解他的工作狀態(tài)。40D7~D0RD中斷服務(wù)中斷優(yōu)先中斷請(qǐng)求IR0~WR寄存器級(jí)判決器寄存器IR7INTISRPRIRRINTA 地 地址CSICW1IMR(OCW1)址線譯碼ICW2OCW2A0CAS0ICW3OCW3CAS1操作命令字寄存器CAS2ICW4SP/EN初始化命令字寄存器5.3.58259A的編程(續(xù))411.初始化命令字ICW初始化命令字ICW最多有4個(gè);8259A在開始工作前必須寫入;必須按照ICW1~I(xiàn)CW4順序?qū)懭耄籌CW1和ICW2是必須送的;ICW3和ICW4由工作方式?jīng)Q定。流程D7D6D5D4D3D2D1D042ICW1(A0=0)×××1LTIM×SNGLIC4D7D6D5D4D3D2D1D0×——表示可以任意為1為0都可以(建議為0)1——只能為1,作為標(biāo)志中斷觸發(fā)方式:LTIM=1,電平觸發(fā)方式LTIM=0,邊沿觸發(fā)方式規(guī)定單片或級(jí)連方式:SNGL=1,單片方式SNGL=0,級(jí)連方式是否寫入ICW4IC4=1,要寫入ICW4IC4=0,不寫入ICW4,即ICW4規(guī)定的位全為043向8259A寫入ICW1時(shí),8259A自動(dòng)設(shè)置以下狀態(tài):將中斷屏蔽寄存器IMR清0;分配IRQ7的優(yōu)先權(quán)為最低;清除特殊屏蔽方式(以后可以由OCW3改動(dòng));若IC4=0,則將寄存器ICW4清044說明:在IBM-PC/XT機(jī)中,ICW1=00010011B(13H),其工作方式為:中斷請(qǐng)求信號(hào)為上升沿觸發(fā),單片方式,后要跟ICW4字。(書P306)寫控制字:00010011B送ICW1裝入程序:

MOVAL,13H OUT20H,AL11001000需要ICW4單片工作邊沿觸發(fā)45ICW2(A0=1)T7T6T5T4T3×××D7D6D5D4D3D2D1D0設(shè)置中斷向量號(hào)T7~T3為中斷向量號(hào)的高5位,即基值低3位由8259A自動(dòng)確定:IR0為000、IR1為001、……、IR7為11146說明:在PC-XT機(jī)中,ICW2=00001000B

基值為08H 即:IRQ0中斷類型碼為08H

…..IRQ7中斷類型碼為?IRQ7中斷類型碼為0FH47ICW3(A0=1)S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0級(jí)連命令字主片8259A:Si=1對(duì)應(yīng)IRi接有從片;否則IRi沒有連接從片從片8259A:ID0~I(xiàn)D2編碼說明從片INT引腳接到主片哪個(gè)IR引腳48ICW3(A0=1)例:主片的IR3和IR6兩個(gè)輸入端分別連接了從片A和B的INT。則主片的ICW3=?

從片A的ICW3=?

從片B的ICW3=?01001000B=48H00000011B=03H00000110B=06H49ICW4(A0=1)000SFNMBUFM/SAEOIμPMD7D6D5D4D3D2D1D0嵌套方式:特殊全嵌套方式(SFNM=1)普通全嵌套方式(SFNM=0)數(shù)據(jù)線的緩沖方式:緩沖方式(BUF=1)非緩沖方式(BUF=0)緩沖方式下主片/從片選擇:主片(M/S=1)從片(M/S=0)中斷結(jié)束方式:自動(dòng)中斷結(jié)束(AEOI=1)非自動(dòng)中斷結(jié)束(AEOI=0)微處理器類型:16位80x86(PM=1)8位8080/8085(PM=0)501、對(duì)于每片8259,ICW1和ICW2是必須的。但I(xiàn)CW3和ICW4則根據(jù)需要設(shè)置。如果在級(jí)聯(lián)方式下,需要設(shè)置ICW3;2、級(jí)聯(lián)情況下,主片和從片8259均要設(shè)置ICW3。但主片和從片的ICW3設(shè)置的內(nèi)容不同。3、ICW1必須寫在偶地址寄存器中,而ICW2~I(xiàn)CW4則必須寫在奇地址寄存器中,并且要注意順序,不能順序顛倒或無(wú)序。4、主8259或從8259只有經(jīng)過初始化后,才能正常工作。后面對(duì)OCW進(jìn)行控制才能有效。初始化命令字小結(jié):512.操作命令字OCW8259A工作期間,可以隨時(shí)接受操作命令字OCW;OCW共有3個(gè):OCW1~OCW3;寫入時(shí)沒有順序要求,需要哪個(gè)OCW就寫入那個(gè)OCW。D7D6D5D4D3D2D1D052OCW1(A0=1)M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字內(nèi)容寫入中斷屏蔽寄存器IMRDi=Mi對(duì)應(yīng)IRi,為1禁止IRi中斷;為0允許IRi中斷。各位互相獨(dú)立。53OCW2(A0=0)RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和EOI配合使用產(chǎn)生中斷結(jié)束EOI命令和改變優(yōu)先權(quán)順序SL=1時(shí)有效L2~L0的3位編碼指定IR引腳54無(wú)操作010優(yōu)先級(jí)特殊循環(huán),L2L1L0指定最低的IRQ011自動(dòng)EOI時(shí),取消優(yōu)先級(jí)自動(dòng)循環(huán)000自動(dòng)EOI時(shí),優(yōu)先級(jí)自動(dòng)循環(huán)001普通EOI命令,優(yōu)先級(jí)特殊循環(huán)(按編碼)111普通EOI命令,優(yōu)先級(jí)自動(dòng)循環(huán)101特殊EOI命令,全嵌套,L2L1L0指定ISR位清零110普通EOI命令,全嵌套方式

100功能EOISLRR、SL、EOI三位組合為中斷結(jié)束方式及循環(huán)方式

55OCW3(A0=0)0ESMMSMM01PRRRISD7D6D5D4D3D2D1D0設(shè)置中斷屏蔽方式

10清除特殊屏蔽

11設(shè)置特殊屏蔽

0x無(wú)動(dòng)作P=1查詢命令、P=0無(wú)查詢命令RR和RIS10在下一個(gè)讀周期讀IRR11在下一個(gè)讀周期讀ISR0x無(wú)動(dòng)作563.讀取狀態(tài)字CPU可讀出IRR、ISR、IMR和查詢字;A0為低,由OCW3中RR和RIS位設(shè)定讀取IRR或ISR,由OCW3中P位設(shè)定讀取查詢字;思考:CPU如何區(qū)分讀出的是IRRorISRor查詢字?查詢字反映8259A是否有中斷請(qǐng)求。A0引腳為高電平時(shí)讀取的是IMR;57查詢字I----W2W1W0D7D6D5D4D3D2D1D0中斷位I位為1,有外設(shè)請(qǐng)求中斷W2~W0的編碼當(dāng)前中斷請(qǐng)求的最高優(yōu)先級(jí)585.3.68259A在IBMPC/XT上的應(yīng)用思考:8259A的I/O端口有幾個(gè),地址是什么?中斷向量號(hào)有幾個(gè),分別是什么?59應(yīng)用注意事項(xiàng)利用上升沿做為中斷請(qǐng)求IRQ的有效信號(hào);IRQ0~I(xiàn)RQ7的中斷向量號(hào)依次為08H~0FH;I/O端口號(hào)為20H和21H;采用普通全嵌套優(yōu)先權(quán)方式,中斷優(yōu)先權(quán)從高到低順序?yàn)镮RQ0~I(xiàn)RQ7,且不能改變;采用普通中斷結(jié)束EOI方式,需要在中斷服務(wù)程序最后發(fā)送普通EOI命令;一般采用普通屏蔽方式,通過寫入IMR屏蔽中斷,注意不要破壞原屏蔽狀態(tài)。60例5.3編寫8259A初始化程序設(shè)微機(jī)中有主從8259A各一片,信息如下:

(1)主8259A上IR0和IR5引入兩個(gè)中斷請(qǐng)求,類型碼為40H和45H;(2)從8259A的IR2和IR3上也引入兩個(gè)中斷請(qǐng)求,類型碼為32H和33H;(3)已知類型碼為40H和45H的中斷服務(wù)程序在同一段中,段基址為1000H,偏移地址分別為1050H和2060H;類型碼為32H和33H的中斷服務(wù)程序也在同一段中,段基址為2000H,偏移地址分別為5440H和3620H;(4)已知主8259A的端口地址為0E8H和0E9H,從8259A的端口地址為0FAH和0FBH;(5)

主片的IR3上接從片。

試完成主從片連線并編寫初始化程序,要求:對(duì)主8259A初始化,對(duì)從8259A初始化,將四個(gè)中斷向量寫入到中斷向量表中。61主片初始化62從片初始化63寫中斷向量64寫中斷向量65中斷控制技術(shù)小結(jié)8088/8086的中斷類型、中斷響應(yīng)過程、中斷向量表;理解8259A的內(nèi)部結(jié)構(gòu)、寄存器作用、中斷過程;掌握8259A的普通全嵌套優(yōu)先權(quán)、普通中斷結(jié)束、邊沿觸發(fā)方式;66中斷控制技術(shù)小結(jié)了解的8259A的ICW和OCW,注意命令字和狀態(tài)字的區(qū)別方法;了解8259A在IBMPC系列機(jī)上的應(yīng)用情況。678088外部中斷請(qǐng)求及響應(yīng)信號(hào)引腳(回顧)NMI:輸入,非屏蔽中斷請(qǐng)求輸入端,上升沿有效INTR:輸入,可屏蔽中斷請(qǐng)求輸入端,高電平有效INTA:輸出,低有效,當(dāng)CPU響應(yīng)外設(shè)中斷申請(qǐng)時(shí), 發(fā)出兩個(gè)連續(xù)的INTA信號(hào)68回顧調(diào)用子程序的過程:

主程序

….CALLAlarm

….Alarm:…

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論