《微計算機與單片機原理及應(yīng)用》第7章 微計算機的中斷系統(tǒng)_第1頁
《微計算機與單片機原理及應(yīng)用》第7章 微計算機的中斷系統(tǒng)_第2頁
《微計算機與單片機原理及應(yīng)用》第7章 微計算機的中斷系統(tǒng)_第3頁
《微計算機與單片機原理及應(yīng)用》第7章 微計算機的中斷系統(tǒng)_第4頁
《微計算機與單片機原理及應(yīng)用》第7章 微計算機的中斷系統(tǒng)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章微計算機的中斷系統(tǒng)

本章重點:8086/8088的中斷源及其中斷機構(gòu)8086/8088的硬中斷及INTR與NMI的區(qū)別掌握中斷類型碼、中斷向量和中斷向量表三者間的關(guān)系中斷向量表的使用中斷控制器8259A的內(nèi)部結(jié)構(gòu)、工作原理及使用法本章難點:中斷類型碼、中斷向量和中斷向量表的具體應(yīng)用中斷控制器8259A的內(nèi)部結(jié)構(gòu)、工作原理及使用方法IBMPC/XT微計算機的中斷系統(tǒng)7.1中斷概念中斷是指CPU在正常執(zhí)行程序的過程中,由于某個外部或內(nèi)部事件的作用,強迫CPU停止當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)去為該事件服務(wù)(稱為中斷服務(wù)),待服務(wù)結(jié)束后,又能自動返回到被中斷的程序中繼續(xù)執(zhí)行。

中斷有如下三方面的優(yōu)點:1.實現(xiàn)CPU與外部設(shè)備的速度匹配與并行作。2.實現(xiàn)實時信息監(jiān)測和控制3.實現(xiàn)故障檢測和自動處理7.28086/8088的中斷機構(gòu)

7.2.1中斷源

8086/8088的中斷可來自CPU內(nèi)部,也可來自CPU外部的接口芯片。如下圖示出了8086/8088CPU的中斷源。8086/8088CPU中斷源

INTR1.外部中斷外部中斷是由用戶確定的硬件中斷,又分為可屏蔽中斷INTR和非屏蔽中斷NMI。

2.內(nèi)部中斷內(nèi)部中斷是通過軟件調(diào)用的中斷。這類中斷都是非屏蔽型的,包括單步中斷、除法出錯中斷、溢出中斷(INTO)和指令中斷(INTn

7.2.2中斷過程中斷是一個過程,包括中斷申請、中斷響應(yīng)、中斷處理和中斷返回。CPU在執(zhí)行完當(dāng)前指令后,才響應(yīng)中斷請求。當(dāng)檢測到為除法出錯、INTn、或INTO中斷或非屏蔽NMI中斷,立即轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序進行中斷處理。如果是可屏蔽中斷INTR中斷請求,則需要判定中斷允許觸發(fā)標(biāo)志位IF,當(dāng)IF=1時,允許中斷,否則CPU對該中斷請求不予響應(yīng)。當(dāng)CPU響應(yīng)中斷后,即開始中斷處理。為保證中斷結(jié)束后,能正確返回斷點處執(zhí)行下一條指令,首先將斷點處的標(biāo)志寄存器和CS,IP的值壓入堆棧,找到中斷服務(wù)程序的入口再執(zhí)行中斷服務(wù)程序。當(dāng)中斷服務(wù)完畢,應(yīng)將保護在堆棧中的內(nèi)容按“后進先出”原則彈回到相應(yīng)的寄存器中,恢復(fù)中斷時的狀態(tài),這一操作稱為斷點恢復(fù)。8086/8088中斷處理流程圖7.2.3可屏蔽中斷的的響應(yīng)過程可屏蔽中斷的響應(yīng)、執(zhí)行與返回7.3中斷類型及中斷類型碼、中斷向量及中斷向量表7.3.1中斷類型及中斷類型碼中斷類型按中斷源可分為內(nèi)部中斷和外部中斷兩種。外部中斷也稱為硬件中斷,是由CPU外部引腳觸發(fā)的一種中斷;內(nèi)部中斷也稱為異常中斷,是由處理器檢測到異常情況或執(zhí)行軟件中斷指令引起的一種中斷,它們屬于非屏蔽中斷。中斷向量表8086/8088對每種類型的中斷都指定0~255范圍中的一個類型號(碼)n,每一個n都與一個中斷服務(wù)程序相對應(yīng)。當(dāng)CPU處理中斷時,需要把控制引導(dǎo)至相應(yīng)中斷服務(wù)程序入口地址。為了實現(xiàn)這一引導(dǎo),在存儲器的低端劃出1KB空間(000H~3FFH)存放中斷向量表。這樣,就可以把各個中斷類型號所對應(yīng)的中斷服務(wù)程序入口地址依次存放在中斷向量表內(nèi)。7.3.2中斷向量及中斷向量表所謂中斷向量就是用來提供中斷入口地址的一個地址指針,中斷服務(wù)程序的首地址即(CS:IP)叫中斷向量。8086/8088CPU能處理256種不同類型的中斷,也就是有256個中斷向量。中斷向量表也稱中斷入口地址表用來存放中斷服務(wù)程序入口地址的CS和IP值。每個中斷類型占4個字節(jié),用于存放該中斷服務(wù)程序的入口地址。低兩個字節(jié)存放中斷服務(wù)程序入口的偏移地址IP,高兩個字節(jié)存放中斷服務(wù)程序入口的段基址CS。當(dāng)CPU調(diào)用類型號為n的中斷服務(wù)程序時,首先把中斷類型號n乘以4得到中斷指針表的入口地址4n,然后把此入口地址開始的連續(xù)四個字節(jié)中的兩個低字節(jié)內(nèi)容裝入指令指針寄存器IP,即IP←(4n:4n+1);再把兩個高字節(jié)的內(nèi)容裝入代碼段寄存器CS,即CS←(4n+2:4n+3),這樣就可以把CPU引導(dǎo)至類型n中斷服務(wù)程序的起點,開始中斷處理過程。中斷向量表由三部分組成。類型號0~4為專用中斷指針(0—除法出錯,1—單步中斷,2—NMI,3—斷點中斷,4—溢出中斷)。類型號5~31為保留中斷指針,用戶不應(yīng)使用。類型號32~255為用戶使用的中斷向量,這些中斷類型號和中斷向量可由用戶任意指定。7.3.3中斷的優(yōu)先權(quán)管理

通常對中斷優(yōu)先級采用軟件查詢方式、菊花鏈(簡單硬件)法、專用芯片(如中斷控制器Intel-8259A就是此種專用芯片)管理方式三種辦法進行管理。當(dāng)有多個中斷源同時申請中斷時,CPU首先響應(yīng)優(yōu)先權(quán)最高的中斷請求;在響應(yīng)某一中斷請求時又有更高級的中斷請求到來,CPU將暫停目前的中斷服務(wù)轉(zhuǎn)去對更高級的中斷源進行服務(wù),這稱為中斷嵌套。8086/8088系統(tǒng)的中斷源優(yōu)先級別由高到低的順序為:除法錯→INTn→INTO→NMI→INTR→單步。7.4可編程中斷控制器8259A7.4.18259A的內(nèi)部結(jié)構(gòu)及工作原理

1.8259A內(nèi)部結(jié)構(gòu)8259A內(nèi)部邏輯框圖(1)數(shù)據(jù)緩沖器這是8位的雙向三態(tài)緩沖器,8259A通過它與CPU進行命令和數(shù)據(jù)的傳送。(2)讀寫/邏輯接收來自CPU的讀/寫命令,完成規(guī)定的操作。操作過程由,,,輸入信號。(3)級聯(lián)緩沖/比較器當(dāng)多片8259A采用主從結(jié)構(gòu)級聯(lián)時,用來存放和比較系統(tǒng)中各8259A的主、從設(shè)備標(biāo)志。與該部件相連的有級聯(lián)信號CAS0~CAS2及雙向功能信號/。(4)中斷請求寄存器(IRR)它與接口的中斷請求線相連,請求中斷處理的外設(shè)通過IR0~IR7對8259A請求中斷服務(wù),并把中斷請求保持在中斷請求寄存器。(5)中斷屏蔽寄存器(IMR)通過軟件設(shè)置IMR可對8級中斷請求分別獨立地加以禁止和允許,當(dāng)此寄存器某位置“1”時,與之對應(yīng)的中斷請求被禁止。(6)優(yōu)先級分析器(PR)檢查中斷屏蔽寄存器(IMR)的狀態(tài),判別有無優(yōu)先權(quán)更高的中斷請求被接受,如無,則把中斷請求寄存器IRR中優(yōu)先級最高的中斷請求送入當(dāng)前中斷服務(wù)寄存器(ISR),并向CPU輸出中斷請求信號INT。(7)當(dāng)前中斷服務(wù)寄存器(ISR)該寄存器用于存放當(dāng)前正在進行處理的中斷級。ISR的置位是在脈沖期間,由優(yōu)先級分析器根據(jù)IRR中各申請中斷位的優(yōu)先級別和IMR中屏蔽位的狀態(tài),選取允許中斷的最高優(yōu)先級請求位,選通到ISR中。當(dāng)中斷處理完畢,ISR復(fù)位。(8)控制邏輯控制邏輯按初始化設(shè)置的工作方式控制8259A的全部工作。

2.8259A的工作原理單片8259A(作為主片)工作時,進入中斷處理的過程如下:①當(dāng)一條或多條中斷請求線IR0~IR7變高時,設(shè)置相應(yīng)的IRR位。②在8259A對中斷優(yōu)先權(quán)和中斷屏蔽寄存器的狀態(tài)進行判斷之后,如中斷優(yōu)先級最高且為允許中斷狀態(tài),就向CPU發(fā)高電平信號INT,請求中斷服務(wù)。③CPU響應(yīng)中斷時,送回應(yīng)答信號脈沖。④8259A接到來自CPU的第一個時,把允許中斷的最高優(yōu)先級請求位置入當(dāng)前中斷服務(wù)寄存器(ISR),并把IRR中相應(yīng)位復(fù)位。同時,8259A準(zhǔn)備向數(shù)據(jù)總線發(fā)送中斷向量。⑤在8259A發(fā)送中斷向量的最后一個脈沖期間,如果是在AEOI(自動結(jié)束中斷)方式下,在脈沖結(jié)束時復(fù)位ISR的相應(yīng)位。在其他方式下,ISR相應(yīng)位要由中斷服務(wù)程序結(jié)束時發(fā)出的EOI命令來位。中斷向量的8位二進制代碼中,高5位是編程時設(shè)置的,低3位是由中斷請求線IR7~IR0編碼提供。當(dāng)CPU讀入中斷向量后,便從中斷向量表中查出相應(yīng)的中斷服務(wù)程序入口地址的存放單元,從而控制CPU引導(dǎo)至相應(yīng)中斷服務(wù)程序入口處。7.4.28259A的工作方式

8259A有多種優(yōu)先級管理方式,能滿足不同用戶對中斷管理的各種不同要求。

1.優(yōu)先級設(shè)置方式(1)全嵌套方式在全嵌套方式中8259A的中斷優(yōu)先級是IR0最高,IR7最低。當(dāng)一個中斷已被響應(yīng)時,只有比它更高級優(yōu)先級的中斷請求才會被響應(yīng)。(2)特殊全嵌套方式在特殊全嵌套方式中,當(dāng)處理某一級中斷時,如果再有同級的中斷請求,8259A也會給予響應(yīng),從而實現(xiàn)一種對同級中斷請求的特殊嵌套。特殊全嵌套方式一般用于8259A級聯(lián)情況下。(3)優(yōu)先級自動循環(huán)方式該方式一般用于系統(tǒng)中多個中斷源優(yōu)先級相等的場合。優(yōu)先級隊列是變化的,一個外設(shè)受到中斷服務(wù)后,它的優(yōu)先級自動降為最低。(4)優(yōu)先級特殊循環(huán)方式優(yōu)先級特殊循環(huán)方式與優(yōu)先級自動循環(huán)方式相比,只有一點不同,即在優(yōu)先級特殊循環(huán)方式中,初始的最低優(yōu)先級是由編程來確定的,從而最高優(yōu)先級中斷也由此而定。2.屏蔽中斷源方式

8259A對中斷的屏蔽有兩種方式。(1)普通屏蔽方式通過與它對應(yīng)的屏蔽位的設(shè)置來進行屏蔽,使該中斷請求不能送到CPU。(2)特殊屏蔽方式特殊屏蔽方式主要用于中斷服務(wù)程序中動態(tài)地改變系統(tǒng)的優(yōu)先級結(jié)構(gòu)。3.中斷結(jié)束(EOI)的處理方式(1)中斷自動結(jié)束方式在此方式下,系統(tǒng)已進入中斷過程,當(dāng)?shù)诙€中斷響應(yīng)脈沖送到后,8259A就自動將當(dāng)前中斷服務(wù)寄存器ISR中的對應(yīng)位清0。這樣,盡管系統(tǒng)正在為某外設(shè)進行中斷服務(wù),但在8259A的ISR中卻沒有對應(yīng)位指示。中斷自動結(jié)束方式的設(shè)置是初始化命令字ICW4的AEOI位為1即可。(2)普通中斷結(jié)束方式普通中斷結(jié)束方式用在全嵌套方式下,當(dāng)CPU向8259A發(fā)出中斷結(jié)束命令時,8259A將ISR中優(yōu)先級最高的位復(fù)位(即當(dāng)前正在進行的中斷服務(wù)結(jié)束)。只要在程序中往8259A的偶地址端口輸出一個操作命令字OCW2,并使OCW2中的EOI=1,SL=0,R=0即可。(3)特殊中斷結(jié)束方式特殊中斷結(jié)束方式用于非全嵌套方式下。用這種結(jié)束方式時,在程序中要發(fā)一條特殊中斷結(jié)束命令,指出當(dāng)前中斷服務(wù)寄存器ISR中的哪一位將被清除。也是通過往8259A的偶地址端口輸出一個操作命令字OCW2,并使OCW2中的EOI=1,SL=1,R=0;此時OCW2中的L2,L1,L0就指出了究竟是對ISR中的哪一位進行清除。7.4.38259A的級聯(lián)必須注意:在8259A級聯(lián)方式時,一般不用中斷自動結(jié)束方式,而用非自動結(jié)束方式。在中斷服務(wù)結(jié)束時,CPU必須發(fā)兩次中斷結(jié)束命令,一次對主片,一次對從片。在級聯(lián)環(huán)境下8259A可采用特殊全嵌套方式。8259A級聯(lián)結(jié)構(gòu)7.4.48259A的初始化命令字和操作命令字

8259A內(nèi)部有兩組存儲器:初始化命令字存儲器,存放CPU寫入的初始化命令字(ICW1到ICW4);操作命令字寄存器,存放CPU寫入的操作命令字(OCW1到OCW3)。初始化命令字必須在正常操作開始前寫入,以建立8259A的基本工作條件,寫入后一般不再改變。操作命令字可以在工作開始前或者工作期間寫入。允許在系統(tǒng)運行過程中可多次修改。例:已知IBMPC/XT微機中使用單片8259A,試對其進行初始化設(shè)置。在IBMPC/XT機中,8259A的ICW1和ICW4的端口地址分別為:20H,21H。初始化設(shè)置的程序段如下:MOVAL,13H;設(shè)置ICW1(中斷請求采用邊沿觸發(fā)方式,單片8259A,設(shè)置ICW4)OUT20H,ALMOVAL,18H;設(shè)置ICW2(將中斷類型碼高5位指定為00011)OUT21H,ALMOVAL,0DH;設(shè)置ICW4(不用特殊全嵌套方式;不用中斷自動結(jié)束方式,用緩沖方式工作于8086/8088系統(tǒng))OUT21H,AL7.5.58259A應(yīng)用舉例

例:在IBMPC/XT62芯總線的IRQ2端輸入一中斷請求信號。該信號的中斷源可由62芯總線CLK輸出的時鐘經(jīng)8253定時/計數(shù)器產(chǎn)生,也可由一分頻電路直接分頻產(chǎn)生。每產(chǎn)生一次中斷,要求CPU響應(yīng)后在CRT上顯示字符“THISISA8259AINTERRUPT!”,中斷10次后,主機返回DOS狀態(tài),不再響應(yīng)中斷請求(8253定時/計數(shù)器見第8章)。解:已知PC/XT中8259A地址為:偶地址20H,奇地址21H。并且使用系統(tǒng)的中斷類型號為0AH。程序流程圖源程序如下:DATASEGMENTINTA00EQU20H;PC/XT系統(tǒng)中8259A的偶地址端口INTA01EQU21H;PC/XT系統(tǒng)中8259A的奇地址端口MESSDB‘THISISA8259AINTERRUPT!’,0AH,0DH,’$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,CSMOVDS,AX;設(shè)置DS指向代碼段

MOVDX,OFFSETINT-PROCMOVAX,250AH;設(shè)置0AH號中斷向量

INT21H;…………………CLI;關(guān)中斷;…………………MOVDX,INTA01INAL,DX;允許IRQ2中斷

ANDAL,0FBHOUTDX,AL;…………………MOVBX,10;設(shè)置中斷次數(shù)為10STI;開中斷;…………………LL:JMPLL;循環(huán)等待中斷;…………………NT-PROC:MOVAX,DATA;中斷服務(wù)程序

MOVDS,AX;將DS指向數(shù)據(jù)段

溫馨提示

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

評論

0/150

提交評論