![第3章中斷接口技術(shù)_第1頁](http://file4.renrendoc.com/view/208cd7451bf5af64aefd4d65a29396f5/208cd7451bf5af64aefd4d65a29396f51.gif)
![第3章中斷接口技術(shù)_第2頁](http://file4.renrendoc.com/view/208cd7451bf5af64aefd4d65a29396f5/208cd7451bf5af64aefd4d65a29396f52.gif)
![第3章中斷接口技術(shù)_第3頁](http://file4.renrendoc.com/view/208cd7451bf5af64aefd4d65a29396f5/208cd7451bf5af64aefd4d65a29396f53.gif)
![第3章中斷接口技術(shù)_第4頁](http://file4.renrendoc.com/view/208cd7451bf5af64aefd4d65a29396f5/208cd7451bf5af64aefd4d65a29396f54.gif)
![第3章中斷接口技術(shù)_第5頁](http://file4.renrendoc.com/view/208cd7451bf5af64aefd4d65a29396f5/208cd7451bf5af64aefd4d65a29396f55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章
中斷控制接口本章重點(diǎn):掌握中斷的基本概念、中斷的識別與中斷源優(yōu)先級的判定了解8259A可編程控制器的結(jié)構(gòu)及工作過程掌握8259A初始化編程。3.1中斷概述3.1.1基本概念1、中斷:在程序運(yùn)行時(shí),系統(tǒng)外部、內(nèi)部或現(xiàn)行程序本身若出現(xiàn)緊急事件,處理器必須立即強(qiáng)行中止現(xiàn)行程序的運(yùn)行,改變機(jī)器的工作狀態(tài)并啟動相應(yīng)的程序來處理這些事件,然后再恢復(fù)原來的程序運(yùn)行,這一過程稱為中斷。2、中斷系統(tǒng):為了實(shí)現(xiàn)中斷功能而設(shè)置的各種硬件和軟件統(tǒng)稱為中斷系統(tǒng)。3、中斷源:引起中斷的原因或發(fā)出中斷申請的來源,稱為中斷源。有以下幾種:(1)一般的輸入/輸出設(shè)備,如鍵盤,打印機(jī)(2)數(shù)據(jù)通道中斷源,如磁盤(3)軟件設(shè)置的中斷源,如程序中的中斷指令I(lǐng)NTn(4)故障請求中斷源,如電源掉電、運(yùn)算溢出(5)為調(diào)試程序而設(shè)置的中斷源,如斷點(diǎn)或單步執(zhí) 行方式.4.中斷分類中斷分外部中斷和內(nèi)部中斷兩大類;其中外部中斷分為兩類:⑴可屏蔽中斷INTR,由標(biāo)志寄存器中的IF位控制;⑵不可屏蔽中斷NMI,不受IF位控制3.1.2中斷及中斷的處理過程微機(jī)系統(tǒng)引入中斷機(jī)制后,使CPU與外設(shè)(甚至多個(gè)外設(shè))處于并行工作狀態(tài),便于實(shí)現(xiàn)信息的實(shí)時(shí)處理和系統(tǒng)的故障處理。中斷方式的原理示意圖如圖4-1所示。
雖然不同的微機(jī)中斷系統(tǒng)有所不同,但實(shí)現(xiàn)中斷時(shí)都有一個(gè)相同的中斷過程,包括中斷請求、中斷判優(yōu)排隊(duì)、中斷響應(yīng)、中斷服務(wù)、中斷返回共5個(gè)階段。1.中斷的處理過程1)中斷請求中斷請求是由中斷源向CPU發(fā)出中斷請求信號。外部設(shè)備發(fā)出中斷請求信號要具備以下兩個(gè)條件:①外部設(shè)備的工作已經(jīng)告一段落。例如輸入設(shè)備只有在啟動后,在將要輸入的數(shù)據(jù)送到接口電路的數(shù)據(jù)寄存器之后,才可以向CPU發(fā)出中斷請求。②系統(tǒng)允許該外設(shè)發(fā)出中斷請求。如果系統(tǒng)不允許該外設(shè)發(fā)出中斷請求,可以將這個(gè)外設(shè)的請求屏蔽。如果這個(gè)外設(shè)的中斷請求被屏蔽,那么即使這個(gè)外設(shè)的準(zhǔn)備工作已經(jīng)完成,也不能發(fā)出中斷請求。2)中斷判優(yōu)排隊(duì)當(dāng)多個(gè)中斷源同時(shí)申請中斷時(shí),按此優(yōu)先級順序進(jìn)行排隊(duì),等候CPU處理。一般是把最緊迫和速度最高的設(shè)備的優(yōu)先級設(shè)為較高。CPU首先響應(yīng)優(yōu)先級別最高的中斷源。當(dāng)中斷處理完畢時(shí),再響應(yīng)低級別的中斷申請。中斷判優(yōu)排隊(duì)可以采用硬件的方法,也可以采用軟件的方法。前者速度快,但需要增加硬件設(shè)備;后者無須增加硬件設(shè)備,但速度慢,特別是中斷源很多時(shí)尤為突出。3)中斷響應(yīng)經(jīng)中斷排隊(duì)后,CPU收到一個(gè)優(yōu)先級別最高的中斷請求信號,如果允許CPU響應(yīng)中斷(IF=1),就在執(zhí)行完一條指令后,中止執(zhí)行現(xiàn)行程序,響應(yīng)中斷申請。首先由硬件電路保護(hù)斷點(diǎn)(即將當(dāng)前正在執(zhí)行的程序的段地址(CS)和偏移地址(IP)以及標(biāo)志寄存器(FR)壓入堆棧),然后關(guān)閉CPU內(nèi)的允許中斷觸發(fā)器IF(可屏蔽中斷時(shí)),接下來就是尋找中斷服務(wù)程序的入口地址。尋找中斷服務(wù)程序入口地址的方法有軟件方法和硬件方法兩種。軟件方法也就是查詢方式。硬件方式目前均采用矢量中斷方式。所謂矢量中斷,即當(dāng)CPU響應(yīng)中斷后,由提出中斷請求的中斷源向CPU發(fā)出一個(gè)中斷矢量,CPU根據(jù)這個(gè)中斷矢量找到中斷程序的入口地址,轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序。使用IntelCPU的PC系列微機(jī)系統(tǒng)采用的就是矢量中斷方式。概括來說,CPU響應(yīng)中斷的整個(gè)過程中要自動完成三項(xiàng)任務(wù):
①關(guān)閉中斷(禁止CPU響應(yīng)其他中斷申請)。
②保護(hù)斷點(diǎn)現(xiàn)場信息(將斷點(diǎn)和標(biāo)志寄存器的內(nèi)容入棧)。
③獲得中斷服務(wù)入口地址,轉(zhuǎn)到中斷服務(wù)程序。一旦CPU響應(yīng)中斷,就可轉(zhuǎn)入中斷服務(wù)程序,中斷處理要做好如圖4-2所示的6件事。①保護(hù)現(xiàn)場把斷點(diǎn)處的指令指針I(yè)P值和CS值壓入堆棧,以使中斷處理完后能正確地返回主程序斷點(diǎn)。實(shí)質(zhì)上是執(zhí)行PUSH指令,將需要保護(hù)的寄存器的內(nèi)容推入堆棧。②開中斷CPU接收并響應(yīng)一個(gè)中斷后會自動關(guān)閉中斷,以防止其他的中斷打斷它。但在某些情況下,有比該中斷更優(yōu)先的情況要處理,此時(shí),應(yīng)停止對該中斷的服務(wù)而轉(zhuǎn)入優(yōu)先級更高的中斷處理,故需要再開中斷。③提供中斷服務(wù)中斷服務(wù)的核心就是對某些中斷的處理,比如傳送數(shù)據(jù)、處理掉電緊急保護(hù)、各種報(bào)警狀態(tài)的控制處理等。④關(guān)中斷由于開中斷,因此這里對應(yīng)一個(gè)關(guān)中斷過程,以便恢復(fù)現(xiàn)場的工作能順利進(jìn)行而不被中斷。⑤恢復(fù)現(xiàn)場在返回主程序前,要將用戶保護(hù)的寄存器內(nèi)容從堆棧中彈出,以便返回主程序后繼續(xù)正確執(zhí)行主程序,恢復(fù)現(xiàn)場用POP指令?;謴?fù)現(xiàn)場是與保護(hù)現(xiàn)場對應(yīng)的。⑥返回(使用中斷返回指令I(lǐng)RET)。不能使用一般的子程序返回指令RET,因?yàn)镮RET指令除了能恢復(fù)斷點(diǎn)地址外,還能恢復(fù)中斷響應(yīng)時(shí)標(biāo)志寄存器的值,而這后一個(gè)動作是RET指令不能完成的。2.中斷優(yōu)先級的管理1)中斷源的識別確定中斷源,找到該中斷服務(wù)程序的首地址。識別中斷源通常有兩種方法:①查詢中斷
查詢中斷利用一段查詢程序,不但可以確定請求服務(wù)的設(shè)備,同時(shí)還可以轉(zhuǎn)至相應(yīng)的服務(wù)程序。服務(wù)程序是預(yù)先編好存放在內(nèi)存區(qū)的,可以存放在內(nèi)存的任意區(qū)域中。②矢量中斷
矢量中斷就是CPU通過外設(shè)提供的中斷申請信號和中斷矢量標(biāo)志,獲得中斷服務(wù)程序的入口地址。當(dāng)CPU響應(yīng)某個(gè)外設(shè)的中斷請求時(shí),中斷源提供一個(gè)地址信息,由該地址信息對程序的執(zhí)行進(jìn)行導(dǎo)向,將程序引導(dǎo)至中斷服務(wù)程序。該地址信息稱為中斷矢量。2)中斷優(yōu)先級待解決的問題第一,多個(gè)中斷源同時(shí)請求中斷,系統(tǒng)先響應(yīng)優(yōu)先級高的中斷源。第二,當(dāng)系統(tǒng)正在為某個(gè)中斷源服務(wù)時(shí),有新的中斷源提出中斷請求,只有優(yōu)先級高的中斷源的中斷請求才能打斷優(yōu)先級低的中斷源的服務(wù)。3)CPU實(shí)現(xiàn)中斷優(yōu)先級排隊(duì)的方法分為軟件查詢法和硬件中斷法。(1)軟件查尋法確定中斷優(yōu)先級采用軟件查詢法解決中斷優(yōu)先級只需要少量硬件電路。如下圖所示:磁盤磁帶CRT顯示鍵盤輸入打印輸出電源故障紙帶輸入保留INTR當(dāng)CPU響應(yīng)中斷請求進(jìn)入中斷處理程序后,必須在中斷處理程序的開始部分安排一段帶優(yōu)先級的查詢程序,查詢的先后順序就體現(xiàn)了不同設(shè)備的中斷優(yōu)先級,即先查的設(shè)備具有較高的優(yōu)先級,后查的設(shè)備具有較低的優(yōu)先級。一般來說總是先查速度較快或是實(shí)時(shí)性較高的設(shè)備。軟件查詢的流程如圖所示。保護(hù)現(xiàn)場恢復(fù)現(xiàn)場A申請服務(wù)?B申請服務(wù)?C申請服務(wù)?外設(shè)A中斷服務(wù)程序NNN外設(shè)B中斷服務(wù)程序外設(shè)C中斷服務(wù)程序YYY圖2軟件查詢流程圖(2)菊花鏈優(yōu)先級排隊(duì)電路菊花鏈(DaisyChain)優(yōu)先級排隊(duì)電路是一種優(yōu)先級管理的簡單硬件方案。這種方法利用外設(shè)在系統(tǒng)中的物理位置來決定中斷優(yōu)先級,主要是利用硬件排隊(duì)電路(菊花鏈電路)對中斷源進(jìn)行優(yōu)先級排隊(duì),并將程序引導(dǎo)到相關(guān)中斷服務(wù)程序的入口。典型的菊花鏈優(yōu)先級結(jié)構(gòu)如圖所示。圖3菊花鏈中斷優(yōu)先級排隊(duì)電路位置決定中斷優(yōu)先級2.中斷嵌套當(dāng)CPU正在執(zhí)行優(yōu)先級較低的中斷服務(wù)程序時(shí),允許響應(yīng)比它優(yōu)先級高的中斷請求,而將正在處理的中斷暫時(shí)掛起,這就是中斷嵌套。如圖4所示圖4中斷嵌套示意圖STIIRETSTIIRET............3.28086中斷系統(tǒng)3.2.1中斷的分類中斷分類的方式很多。根據(jù)進(jìn)入中斷的方式可分為自愿中斷和強(qiáng)迫中斷。根據(jù)其重要性可分為可屏蔽中斷和不可屏蔽中斷。根據(jù)中斷源的位置可分為內(nèi)部中斷和外部中斷等等。3.2.28086中斷類型8086CPU有一個(gè)簡單而靈活的中斷處理系統(tǒng),能夠處理256種不同的中斷類型,而且處理方法簡便靈活。根據(jù)中斷源類型的不同,中斷類型如圖所示。1.外部中斷由外部硬件產(chǎn)生的。可分為非屏蔽中斷和可屏蔽中斷兩種,由CPU外部中斷請求引腳(兩條引線)NMI和INTR輸入,如圖4-7所示。①不可屏蔽中斷(中斷類型號2)主要用于對外部緊急事件的處理,如電源掉電、存儲器故障等,因而不受中斷允許標(biāo)志(IF)的控制,也不能用軟件進(jìn)行屏蔽。即使在關(guān)中斷(IF=0)的情況下,只要有中斷請求,CPU就必須在當(dāng)前指令執(zhí)行完后立即響應(yīng)。②可屏蔽中斷(中斷類型08H~0FH)可屏蔽中斷是可受軟件屏蔽的外部硬件中斷,有中斷請求時(shí),CPU是否響應(yīng)由用戶軟件決定。當(dāng)一個(gè)高電平信號加到CPU的INTR引腳,并且中斷允許標(biāo)志IF=1時(shí),產(chǎn)生一次可屏蔽中斷。當(dāng)IF=0時(shí),INTR的中斷請求被屏蔽。2.內(nèi)部(軟件)中斷內(nèi)部中斷是指通過指令來調(diào)用中斷服務(wù)子程序。軟件中斷主要包括以下情況:
①除法出錯(cuò)中斷(中斷類型號為0)除法出錯(cuò)中斷是指當(dāng)CPU做除法運(yùn)算時(shí),如果除數(shù)為零或者商超出了有關(guān)寄存器所能表示值的范圍,就產(chǎn)生除法出錯(cuò)中斷。②單步中斷(單步中斷的類型號是1)單步中斷是指當(dāng)標(biāo)志寄存器FLAGE中的跟蹤標(biāo)志TF=1并且中斷允許標(biāo)志IF=1時(shí),每執(zhí)行一條指令就引起一次中斷。CPU響應(yīng)中斷后,自動把狀態(tài)標(biāo)志位壓入堆棧,然后清TF和IF。中斷返回時(shí)出棧,TF=1,因而在單步調(diào)試程序時(shí)可連續(xù)執(zhí)行。③溢出中斷(INTO)(中斷類型號為4的中斷)溢出中斷是通過INTO中斷指令實(shí)現(xiàn)的。該指令跟在有符號數(shù)的算術(shù)運(yùn)算指令之后,在程序執(zhí)行過程中,當(dāng)遇到INTO指令并且此時(shí)溢出標(biāo)志OF=1時(shí),將產(chǎn)生一個(gè)溢出中斷,并轉(zhuǎn)入溢出中斷處理。
④軟中斷INTnn為中斷類型號[0~255]。PC機(jī)中0H~7H被定義為處理器內(nèi)部中斷的類型號,08H~0FH被定義為可屏蔽中斷,所以n的取值可為10H~0FFH。(5)斷點(diǎn)中斷(類型號3)與單步中斷類似,斷點(diǎn)中斷也是一種調(diào)試程序的手段,并且常常和單步中斷結(jié)合使用。對一個(gè)大的程序,不可能對整個(gè)程序全部用單步方式來調(diào)試,而只能先將程序中的某一錯(cuò)誤確定在程序中的一小段中,再對這一小段程序用單步方式跟蹤調(diào)試。斷點(diǎn)中斷就是用來達(dá)到這個(gè)目的的。3.2.2中斷向量表所謂中斷向量(interruptvector),實(shí)際上就是中斷服務(wù)程序的入口地址,每個(gè)中斷類型對應(yīng)一個(gè)中斷向量。每個(gè)中斷向量占4字節(jié)的存儲單元。其中:前兩個(gè)字節(jié)單元存放中斷服務(wù)程序入口地址的偏移量(IP),低字節(jié)在前,高字節(jié)在后;后兩個(gè)字節(jié)單元存放中斷服務(wù)程序入口地址的段基值(CS),也是低字節(jié)在前,高字節(jié)在后。003FF8086為每個(gè)中斷源分配了一個(gè)中斷類型碼,取值范圍為0~255,即可處理256種中斷。其中包括軟件中斷、系統(tǒng)占用的中斷以及開放給用戶使用的中斷。第1部分是類型0到類型4,共5種類型,定義為專用中斷,它們占據(jù)表中的000~013H,共20個(gè)字節(jié)。這5種中斷類型的入口已由系統(tǒng)定義,不允許用戶做任何修改。它們分別是:INT0——除法出錯(cuò)中斷INT1——單步中斷INT2——外部引入不可屏蔽中斷INT3——斷點(diǎn)中斷INT4/INT0—溢出中斷PC機(jī)系統(tǒng)中產(chǎn)生的中斷類型號為n,則該中斷服務(wù)程序的入口地址為4n。例:
中斷類型碼為20H,則中斷服務(wù)程序的入口地址存放在中斷向量表從0000:0080H開始的4個(gè)字節(jié)單元中。若這4個(gè)字節(jié)單元的內(nèi)容分別為:(0000:0080H)=10H(0000:0081H)=20H(0000:0082H)=30H(0000:0083H)=40H試指出相應(yīng)的中斷服務(wù)程序的入口地址。解:中斷服務(wù)程序的入口地址為
4030:2010
。8086/8088中斷的響應(yīng)過程中斷優(yōu)先級除法錯(cuò),INTn,INTO最高NMIINTR單步最低80x86實(shí)模式中斷優(yōu)先級結(jié)束當(dāng)前指令除法錯(cuò),INTO,INTn?NMIINTR?TF=1?執(zhí)行下一條指令NNNNIF=1?NYYYYY內(nèi)部自動形成中斷類型碼N讀中斷類型碼N標(biāo)志壓入堆棧令TEMP=TF清除IF和TFCS和IP壓入堆棧(4N,4N+1)IP(4N+2,4N+3)CS執(zhí)行中斷處理程序IP、CS出棧標(biāo)志寄存器出棧返回被中斷的主程序有NMI?TEMP=1?YYNN執(zhí)行IRET指令①‘①②③④⑤⑥3.38259A中斷控制器中斷控制器就是在有多個(gè)中斷源的系統(tǒng)中,當(dāng)中斷源發(fā)出中斷請求時(shí)接收它們,并對這些中斷請求進(jìn)行判斷,選中當(dāng)前優(yōu)先級最高的中斷請求,再將此請求送到CPU的INTR端,在CPU響應(yīng)中斷并進(jìn)入中斷子程序之后,中斷控制器依舊負(fù)責(zé)對外部中斷請求的管理。8259A是Intel公司設(shè)計(jì)的可編程的中斷控制邏輯芯片,具有對外設(shè)中斷源進(jìn)行管理并向CPU轉(zhuǎn)達(dá)中斷請求的能力。3.3.18259A的內(nèi)部結(jié)構(gòu)和引腳信號1.8259A的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器讀/寫邏輯級連緩沖器/比較器中斷服務(wù)寄存器(ISR)中斷請求寄存器(IRR)優(yōu)先權(quán)判別器(PR)中斷屏蔽寄存器(IMR)控制邏輯
SP/EN。。。IR0IR1IR2IR6IR7內(nèi)部總線CAS0CAS1CAS2____INTAINT
WR
RDCSA0D7~D01)中斷請求寄存器(IRR)中斷請求寄存器(IRR)是一個(gè)具有鎖存功能的8位寄存器,該寄存器用來存放由外部輸入的中斷請求信號
IR7~IR0,可邊沿觸發(fā),也可電平觸發(fā)。2)中斷服務(wù)寄存器(ISR)中斷服務(wù)寄存器(ISR)是一個(gè)8位寄存器,與8級中斷IR7~IR0相對應(yīng),用來記錄正在處理的中斷請求,包括正在被服務(wù)的以及被更高級中斷申請打斷的中斷請求。3)優(yōu)先權(quán)分析器(PR)優(yōu)先權(quán)分析器(PR)也叫優(yōu)先級判別器,用來管理和識別各中斷申請信號的優(yōu)先級別。它主要由優(yōu)先級編碼器和比較器組成,可對輸入的中斷按優(yōu)先級進(jìn)行排隊(duì),當(dāng)輸入端IR7~IR0中有多個(gè)中斷請求信號同時(shí)產(chǎn)生時(shí),由PR判定哪個(gè)中斷請求具有最高優(yōu)先級,并在INTA脈沖期間把它置入中斷服務(wù)寄存器(ISR)的相應(yīng)位。4)中斷屏蔽寄存器(IMR)中斷屏蔽寄存器(IMR)是一個(gè)8位寄存器,與8259A處理的8級中斷IR7~IR0相對應(yīng),該寄存器可對各個(gè)中斷源進(jìn)行屏蔽或開放。當(dāng)某位置為1時(shí),表示相應(yīng)中斷源被屏蔽,為0則表示允許中斷。屏蔽操作由寫命令字OCW1到IMR執(zhí)行,IMR也可以讀回備查并保護(hù)某些屏蔽位。5)級聯(lián)緩沖器/比較器級聯(lián)緩沖器/比較器用于存儲并比較系統(tǒng)中所用的全部8259A的輸入信號,以實(shí)現(xiàn)多達(dá)8片的8259A級聯(lián)。6)控制電路8259A內(nèi)部的控制電路,根據(jù)中斷請求寄存器IRR的位置情況和優(yōu)先級判別器PR的判定結(jié)果,向8259A內(nèi)部的其他部件發(fā)出控制信號,并向CPU發(fā)出中斷請求信號INT和接收來自CPU的中斷響應(yīng)信號INTA,控制8259A進(jìn)入中斷服務(wù)狀態(tài)。
2.8259A引腳分配8259A是一個(gè)采用NMOS工藝制造、使用單一5V電源、具有28個(gè)引腳的雙列直插式芯片,具體引腳如圖4-14所示。D7~D0:雙向數(shù)據(jù)輸入/輸出引腳,用于與CPU進(jìn)行信息交換。(2)IR7~IR0:8級中斷請求信號輸入引腳,規(guī)定的優(yōu)先級為IR0>IR1>…>IR7。當(dāng)有多片8259A形成級聯(lián)時(shí),從片的INT與主片的IRi相連。(3)INT:中斷請求信號輸出引腳,高電平有效。當(dāng)8259A收到從外設(shè)經(jīng)IR引腳送來的中斷請求時(shí),由它輸出高電平,向CPU發(fā)出中斷請求,應(yīng)接在CPU的INTR輸入端。123456789101112131428272625242322212019181716158259A
CS
WRRDD7D6D4D5D2D3D0D1CAS0CAS1GNDINTAIR7IR6IR4IR5IR2IR3IR0IR1INTCAS2SP/ENVCCA0(4)
:中斷響應(yīng)應(yīng)答信號輸入引腳,低電平有效。在CPU發(fā)出第二個(gè)
時(shí),8259A將其中級別最高的中斷請求的中斷類型碼送出;接在CPU的
中斷應(yīng)答信號輸出端。(5)
:讀控制信號輸入引腳,低電平有效,用來實(shí)現(xiàn)對8259A內(nèi)部有關(guān)寄存器內(nèi)容的讀操作。(6) :寫控制信號輸入引腳,低電平有效,用來實(shí)現(xiàn)對8259A內(nèi)部有關(guān)寄存器的寫操作。(7):片選信號輸入引腳,低電平有效。一般由系統(tǒng)地址總線的高位、經(jīng)譯碼后形成,決定了8259A的端口地址范圍。(8)A0:地址選擇信號,用于對8259A內(nèi)部的兩個(gè)可編程寄存器進(jìn)行選擇。
(9)
CAS2~CAS0:級聯(lián)信號引腳,當(dāng)8259A為主片時(shí),為輸出;否則為輸入,與
信號配合,實(shí)現(xiàn)芯片的級聯(lián),這三個(gè)引腳信號的不同組合000~111,剛好對應(yīng)于8個(gè)從片。(10):為級聯(lián)管理信號輸入引腳,在非緩沖方式下,若8259A在系統(tǒng)中作從片使用,則
=1;否則
=0。在緩沖方式下,
用作8259A外部數(shù)據(jù)總線緩沖器的啟動信號。(11)+5V、GND:電源和接地引腳。3.8259A的工作過程第1步:當(dāng)中斷請求線(IR0~I(xiàn)R7)上有信號輸入時(shí),就把中斷請求寄存器(IRR)相應(yīng)的位置1。第2步:當(dāng)IRR的一位置1后,就與IMR中相應(yīng)的屏蔽位進(jìn)行比較,如果該屏蔽位為0,就請求發(fā)送給優(yōu)先權(quán)分析器;如果該屏蔽位為1,就封鎖此請求。第3步:當(dāng)一個(gè)中斷請求被輸入優(yōu)先權(quán)分析器后,將由優(yōu)先權(quán)分析器判定其優(yōu)先級,然后向CPU發(fā)出中斷申請,INT引腳變高(INT連接到8086的INTR)。第4步:CPU的INTR引腳為異步狀態(tài)接收,也就是可以在任何時(shí)間接收中斷。在軟件控制下,利用STI指令(中斷置位)或CLI(中斷復(fù)位)指令可分別將CPU的“中斷開放標(biāo)志位”IF置位或復(fù)位,可以做到接收或不理睬INTR上的中斷申請。第5步:假定CPU中的IF標(biāo)志為1,那么CPU在完成當(dāng)前指令的執(zhí)行后進(jìn)入中斷響應(yīng)周期,這個(gè)中斷響應(yīng)周期將標(biāo)志寄存器入棧,然后清除IF標(biāo)志,關(guān)閉中斷。再將代碼段寄存器和指令指針也入棧(這是為了從中斷服務(wù)程序返回),然后CPU發(fā)出第二個(gè)脈沖以通知8259A,說明8086已經(jīng)允許了它的中斷請求。如果8086工作于“最小方式”,那么脈沖信號為8086引腳上的信號。第6步:8259A收到第一個(gè)負(fù)脈沖后,將禁止IRR鎖存器,使IRR不受IR7~I(xiàn)R0進(jìn)一步變化的影響,這種狀態(tài)一直保持到第二個(gè)脈沖結(jié)束。第一個(gè)脈沖還使ISR的某一位置位,并清除相應(yīng)的IRR位。第二個(gè)
脈沖使ICW2的當(dāng)前內(nèi)容被放到D7~D0上,CPU用該字節(jié)確定中斷類型號。此后,CPU將按照這個(gè)指定中斷類型號中的內(nèi)容去執(zhí)行相應(yīng)的中斷程序。注意:如果ICW4的中斷自動結(jié)束位(AEOI)為1,那么第二個(gè)脈沖結(jié)束時(shí),ISR中被第一個(gè)脈沖置位的位被清除,否則要等到發(fā)送內(nèi)含中斷結(jié)束(EOI)命令的OCW2后方能清除ISR中的這個(gè)位。。第7步:當(dāng)進(jìn)入中斷服務(wù)程序時(shí),主程序和子程序都要用到的那些寄存器應(yīng)當(dāng)保存入棧,最好的方法是立刻“PUSH”每個(gè)用到的寄存器入棧。當(dāng)中斷服務(wù)程序完成后,再以相反的次序“POP”每個(gè)寄存器出棧。第8步:一旦中斷服務(wù)程序完成,就應(yīng)用IRET(中斷返回)指令使CPU再次回到主程序。IRET指令就會自動彈出中斷前的指令指針,使主程序恢復(fù)到被中斷之處,并且恢復(fù)中斷前與中斷服務(wù)變化無關(guān)的標(biāo)志狀態(tài)(包括IF標(biāo)志的狀態(tài))。而中斷也將自動放開T1T2T3T4TITITIT1T2T3T4第一個(gè)總線周期第二個(gè)總線周期三個(gè)空閑狀態(tài)中斷類型碼CLK____INTAAD7~AD04.2.28259A的工作方式1.中斷優(yōu)先級的設(shè)置方式8259A對中斷優(yōu)先級的管理可分為4種情況:全嵌套方式、自動循環(huán)方式、特殊自動循環(huán)方式和特殊全嵌套方式。(1)全嵌套方式也稱固定優(yōu)先級方式。在這種方式下,由IRi引入的中斷請求具有固定的優(yōu)先級-IR0(最高)->IR7(最低).當(dāng)一個(gè)中斷請求被響應(yīng)時(shí),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)-實(shí)現(xiàn)中斷“嵌套”。(2)特殊全嵌套方式
在處理某一級中斷時(shí),不但允許優(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)方式優(yōu)先級是循環(huán)變化的(不希望有固定的優(yōu)先級差別)-一個(gè)設(shè)備的中斷服務(wù)完成后,其優(yōu)先級自動降為最低,而將最高優(yōu)先級賦給原來比它低一級的中斷請求。開始時(shí),優(yōu)先級隊(duì)列還是:IR0->IR7,若此時(shí)出現(xiàn)了IR0請求,響應(yīng)IR0并處理完成后,隊(duì)列變?yōu)椋篒R1,IR2,IR3,IR4
,IR5
,IR6
,IR7,IR0。若又出現(xiàn)了IR4請求,處理完IR4后,隊(duì)列變?yōu)椋篲_________________________________系統(tǒng)中是否采用“自動循環(huán)優(yōu)先級”,由 操作命令字OCW2來設(shè)定。(4)優(yōu)先級特殊循環(huán)方式
與“優(yōu)先級自動循環(huán)方式”相比,只有一點(diǎn)不同,即可以設(shè)置開始的最低優(yōu)先級。例如,設(shè)定IR4為最低優(yōu)先級,那么IR5就是最高優(yōu)先級,其余各級按循環(huán)方法類推。2.8259A結(jié)束方式(1)中斷自動結(jié)束方式(AEOI方式)在第二個(gè)后沿,即完成把對應(yīng)的ISR位復(fù)位。注意:AEOI方式是在中斷響應(yīng)后,而不是在中斷處理程序結(jié)束后將ISR位清0。這樣,在中斷處理過程中,8259A中就沒有“正在處理”的標(biāo)識。此時(shí),若有中斷請求出現(xiàn),且IF=1,則無論其優(yōu)先級如何(比本級高、低或相同),都將得到響應(yīng)。尤其是當(dāng)某一中斷請求信號被CPU響應(yīng)后,如不及時(shí)撤銷,就會再次被響應(yīng)-“二次中斷”。INTA所以,AEOI方式適合于中斷請求信號的持續(xù)時(shí)間有一定限制以及不出現(xiàn)中斷嵌套的場合。通過ICW4可以設(shè)置AEOI方式(AEOI=1)。(2)一般(常規(guī))中斷結(jié)束方式(EOI)適合于全嵌套方式。實(shí)現(xiàn):在中斷服務(wù)程序結(jié)束時(shí),向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é)束操作。(3)特殊中斷結(jié)束方式(SPECIFICEOI-SEOI)在非全嵌套方式下,無固定的優(yōu)先級序列(使用設(shè)置優(yōu)先權(quán)命令或特殊屏蔽方式),此時(shí),根據(jù)ISR的內(nèi)容就無法確定剛剛所響應(yīng)(處理)的中斷。這種情況下,就不能用上述的EOI方式進(jìn)行中斷結(jié)束處理,而必須用特殊的中斷結(jié)束命令SEOI--用OCW2:EOI=1,SL=1,R=0,L2~L0.由L2~L0指定清除ISR中的哪一位。3.屏蔽中斷源的方式CPU可用CLI指令將IF清“0”,禁止所有可屏蔽中斷的進(jìn)入。但是要想屏蔽某個(gè)或某幾個(gè)中斷源,就得用8259A的中斷優(yōu)先級管理的屏蔽方式來實(shí)現(xiàn)。8259A對中斷源的屏蔽方式有以下兩種:普通屏蔽方式通過對中斷屏蔽寄存器(IMR)的設(shè)定,實(shí)現(xiàn)對相應(yīng)位為“1”的中斷請求的屏蔽??赏ㄟ^OCW1使IMR的一位或幾位置“1”。2)特殊屏蔽方式特殊屏蔽方式允許低優(yōu)先級中斷請求中斷正在服務(wù)的高優(yōu)先級中斷。這種屏蔽方式通常用于級聯(lián)方式中的主片,對于同一個(gè)請求IRi上連接有多個(gè)中斷源的場合,可以通過編程寫入操作命令字OCW3來設(shè)置或取消。
在特殊屏蔽方式中可在中斷服務(wù)子程序中用中斷屏蔽命令來屏蔽當(dāng)前正在處理的中斷,同時(shí)可使ISR中的對應(yīng)當(dāng)前中斷的相應(yīng)位清.這樣一來不僅屏蔽了當(dāng)前正在處理的中斷,而且也真正開放了較低級別的中斷請求。在這種情況下,雖然CPU仍然繼續(xù)執(zhí)行較高級別的中斷服務(wù)子程序,但由于ISR中對應(yīng)當(dāng)前中斷的相應(yīng)位已經(jīng)清0,如同沒有響應(yīng)該中斷一樣。所以,此時(shí)對于較低級別的中斷請求,8259A仍然能產(chǎn)生INT中斷請求,CPU也會響應(yīng)較低級別的中斷請求。4.系統(tǒng)總線的連接方式8259A與系統(tǒng)總線的連接方式有下列兩種:1)緩沖方式緩沖方式是指在多片8259A級聯(lián)的大系統(tǒng)中,8259A通過外部總線驅(qū)動器和數(shù)據(jù)總線相連。在緩沖方式下,8259A的
輸出信號作為緩沖器的啟動信號,用來啟動總線驅(qū)動器,在8259A與CPU之間進(jìn)行信息交換。。2)非緩沖方式當(dāng)系統(tǒng)中只有一片或幾片8259A芯片時(shí),可以將數(shù)據(jù)總線直接與系統(tǒng)數(shù)據(jù)總線相連,這時(shí)8259A處于非緩沖方式。在這種方式下,8259A的SP/EN的SP作為輸入端設(shè)置,主片應(yīng)接高電平,從片應(yīng)接低電平。
5.引入中斷請求的方式8259A引入中斷請求的方式有下列幾種:1)邊沿觸發(fā)方式8259A將中斷請求輸入端出現(xiàn)的上升沿作為中斷請求信號,上升沿之后,相應(yīng)引腳可以一直保持高電平2)電平觸發(fā)方式8259A將中斷請求輸入端出現(xiàn)的高電平作為中斷請求信號,在這種方式下,中斷響應(yīng)之后,高電平必須及時(shí)撤除。否則,在CPU響應(yīng)中斷、開中斷之后,會引起第二次不應(yīng)該有的中斷。3)中斷查詢方式特點(diǎn):a.既有中斷的特點(diǎn),又有查詢(Polling)的特點(diǎn)。b.外設(shè)仍然向8259A發(fā)中斷請求信號,要求CPU服務(wù)。c.CPU的IF=0,不響應(yīng)外部的中斷請求(對CPU的中斷請求信號不起作用)此時(shí),CPU需要用軟件查詢方法來確認(rèn)中斷源,從而實(shí)現(xiàn)對設(shè)備的服務(wù),先向8259A發(fā)查詢命令OCW3:00001100P緊接著執(zhí)行一條讀指令(IN指令),讀出專門的“中斷狀態(tài)字”:當(dāng)8259A收到P=1的查詢命令后,在下一個(gè)RD信號將使ISR的相應(yīng)位置“1”,就像收到了INTA一樣,并把上述的“中斷狀態(tài)字”送到數(shù)據(jù)總線上,由CPU讀入AL。0A0IR----W2W1W0D7D01:有設(shè)備請求服務(wù);0:無設(shè)備請求服務(wù)。當(dāng)前最高優(yōu)先級的中斷請求4.2.38259A的初始化編程8259A的控制寄存器可分為兩組,一組是初始化命令字ICW1~I(xiàn)CW4,另一組是操作命令字OCW1~OCW3。每片8259A具有兩個(gè)內(nèi)部端口地址,一個(gè)偶地址端口(A0=0),一個(gè)奇地址端口(A0=1),其他高位地址碼由用戶定義,用來產(chǎn)生8259A的片選信號。1.初始化命令字初始化命令字用來對8259A初始化,包括ICW1~I(xiàn)CW44個(gè)初始化命令字。(1)ICW1ICW1使用偶地址端口(A0=0),其中D4位為特征位(標(biāo)志位),此時(shí)該位固定為1,表示當(dāng)前寫入的是ICW1(OCW1也用偶地址端口寫入,但OCW1的D4位為0)。ICW1的格式如下:(2)ICW2(設(shè)定中斷類型號)ICW2使用奇地址端口(A0=1),緊跟在ICW1之后設(shè)置。ICW2的格式如下:低三位的值由中斷請求輸入引腳決定3)ICW3ICW3只在級聯(lián)方式中使用,端口地址為奇地址,其格式如下:從片的中斷請求線在主片的哪個(gè)IRi引進(jìn)(4)ICW4在80x86系統(tǒng)中必須設(shè)置ICW4,端口地址為奇地址,其格式如下:2.8259A的初始化流程8259A的初始化命令字(ICW)是在加電之后由CPU按特定的順序?qū)懭氲?。也就是說,各初始化命令字的識別一方面依賴于地址信號A0和初始化命令字中的特定標(biāo)識位,另一方面也與寫入的先后次序有關(guān)。8259A的初始化順序及相應(yīng)的尋址標(biāo)志如圖所示。開始ICW1(A0=0D4=1)ICW2(A0=1)SNGL=0?(級聯(lián)方式?)ICW3(A0=1)IC4=1?ICW4(A0=1)準(zhǔn)備好接受中斷NNYY①在初始化操作過程的開頭,總要依次寫入命令字ICW1和ICW2。②只有當(dāng)ICW1中的SNGL位=0,才需寫入ICW3。對于主片和從片均需寫入ICW3,而且它們的格式不同。③只有當(dāng)ICW1中的IC4=1時(shí),才需寫入ICW4。對于80x86系統(tǒng),ICW4總是需要設(shè)置的。在系統(tǒng)中,單片8259A與80x86CPU配置時(shí),初始化要寫入的預(yù)置命令字是:ICW1、ICW2、ICW4
。而級聯(lián)系統(tǒng)要寫入預(yù)置命令字是:ICW1、ICW2、ICW3和ICW4。初始化過程結(jié)束,8259A進(jìn)入所設(shè)置的狀態(tài)后,才能寫入操作命令字(OCW)。OCW1——中斷屏蔽操作命令字(屏蔽寄存器IMR)OCW1用來實(shí)現(xiàn)對中斷源的屏蔽功能,OCW1的內(nèi)容直接寫入屏蔽寄存器IMR。3.操作命令字例如,若通過OCW1向中斷屏蔽寄存器寫入代碼11110000,將導(dǎo)致中斷輸入IR7~I(xiàn)R4被屏蔽掉,而IR3~I(xiàn)R0撤銷屏蔽。2)OCW2——循環(huán)/結(jié)束綜合控制命令字OCW2的主要作用是設(shè)置中斷結(jié)束方式(包括一般結(jié)束EOI和特殊結(jié)束SEOI)和控制中斷優(yōu)先級的循環(huán)方式。標(biāo)識符在特殊優(yōu)先級循環(huán)方式中L0~L2用于選擇優(yōu)先級最低的中斷源。在特殊的EOI,全嵌套方式中L0~L2用于指定復(fù)位與哪個(gè)中斷源對應(yīng)的ISR位。3)OCW3——特殊屏蔽方式和中斷查詢方式操作命令字(見圖4-23)OCW3的作用是寫入多功能操作命令字。OCW3有三項(xiàng)功能:設(shè)置/取消特殊屏蔽方式;設(shè)置中斷查詢方式;設(shè)置對8259A內(nèi)部寄存器的讀出命令。4.8259A應(yīng)用舉例1)工作于80x86系統(tǒng),單片8259A,邊沿觸發(fā)方式。(2)中斷類型碼初始值為08H,即IR0~I(xiàn)R7對應(yīng)的中斷類型碼為08H~0FH。(3)中斷結(jié)束時(shí),用普通中斷結(jié)束命令,固定優(yōu)先級。
8259A的端口地址為20H,21H。實(shí)現(xiàn)上述要求的初始化程序如下:MOVAL,13H;ICW1,邊沿觸發(fā),單片8259A,要寫ICW4OUT20H,ALMOVAL,08H;ICW2,中斷類型碼初值為08HOUT21H,ALMOVAL,0DH;ICW4,緩沖方式,80x86系統(tǒng),普通EOI方式OUT21H,AL;在中斷服務(wù)結(jié)束時(shí),需向8259A設(shè)置操作命令字OCW2=20H,如下所示:MOVAL,20H;OCW2,普通EOI命令OUT20H,AL8259A的讀出操作:可以讀出四個(gè)方面的內(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)隨時(shí)可用奇地址讀IMR
(INAL,21H)例2:讀8259A相關(guān)寄存器的內(nèi)容。假設(shè)8259A的端口地址為20H、21H,請讀入IRR、ISR、IMR寄存器的內(nèi)容,并相繼保存到從數(shù)據(jù)段2000H開始的內(nèi)存單元中;若該8259A為主片,
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國數(shù)字手持式羅盤數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國雙人修剪機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國T/C雙色燈芯絨數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年中國雕刻用品市場調(diào)查研究報(bào)告
- 2025年中國PU地坪市場調(diào)查研究報(bào)告
- 2025至2031年中國膨脹石墨板材行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國臺球呢行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年旋轉(zhuǎn)U盤項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年中國擋風(fēng)板數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國不飽和聚酯板數(shù)據(jù)監(jiān)測研究報(bào)告
- 基于數(shù)據(jù)驅(qū)動的鋰離子電池剩余使用壽命預(yù)測方法研究
- 《內(nèi)臟疾病康復(fù)》課件
- 串通招投標(biāo)法律問題研究
- 高原鐵路建設(shè)衛(wèi)生保障
- 家具廠各崗位責(zé)任制匯編
- 顳下頜關(guān)節(jié)盤復(fù)位固定術(shù)后護(hù)理查房
- 硝苯地平控釋片
- 部編版語文六年級下冊全套單元基礎(chǔ)??紲y試卷含答案
- 提高檢驗(yàn)標(biāo)本合格率品管圈PDCA成果匯報(bào)
- 2023年保險(xiǎn)養(yǎng)老地產(chǎn)行業(yè)分析報(bào)告
- 世界古代史-對接選擇性必修(真題再現(xiàn)) 高考?xì)v史一輪復(fù)習(xí)
評論
0/150
提交評論