第九章中斷技術(shù)_第1頁(yè)
第九章中斷技術(shù)_第2頁(yè)
第九章中斷技術(shù)_第3頁(yè)
第九章中斷技術(shù)_第4頁(yè)
第九章中斷技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩102頁(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、第第 9 9 章章中斷技術(shù)中斷技術(shù)呱,打擾一下!主要內(nèi)容 中斷的概念中斷的概念 8088 CPU的中斷系統(tǒng)的中斷系統(tǒng) 中斷控制器中斷控制器8259A8.1 8.1 中斷概念中斷概念什么是中斷什么是中斷 所謂中斷,就是指當(dāng)所謂中斷,就是指當(dāng)CPUCPU正在執(zhí)行程序正在執(zhí)行程序時(shí),外設(shè)時(shí),外設(shè)( (或其它中斷源或其它中斷源) )向向CPUCPU發(fā)出請(qǐng)求,發(fā)出請(qǐng)求,CPUCPU暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)向該外設(shè)服務(wù)暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)向該外設(shè)服務(wù)( (或稱中斷服務(wù)或稱中斷服務(wù)) )程序,當(dāng)中斷服務(wù)程序運(yùn)程序,當(dāng)中斷服務(wù)程序運(yùn)行結(jié)束后,返回原程序繼續(xù)執(zhí)行的過程。行結(jié)束后,返回原程序繼續(xù)執(zhí)行的過程。 處理

2、處理:外部緊急事件、異常情況:外部緊急事件、異常情況中斷服務(wù)程序中斷服務(wù)程序(Interrupt-service Interrupt-service routing routing ), ,處理隨機(jī)事件的特殊程序,處理隨機(jī)事件的特殊程序,又被稱為中斷處理程序(又被稱為中斷處理程序(interrupt interrupt handlerhandler)。)。中斷源中斷源,引起,引起CPUCPU中斷的隨機(jī)事件,或能中斷的隨機(jī)事件,或能發(fā)出中斷請(qǐng)求的其它來源。發(fā)出中斷請(qǐng)求的其它來源。中斷技術(shù)是現(xiàn)代計(jì)算機(jī)系統(tǒng)中很重要的一中斷技術(shù)是現(xiàn)代計(jì)算機(jī)系統(tǒng)中很重要的一項(xiàng)功能,可以應(yīng)用于以下幾個(gè)方面的處理項(xiàng)功能,可

3、以應(yīng)用于以下幾個(gè)方面的處理。1 1 )故障檢測(cè)和自動(dòng)處理故障檢測(cè)和自動(dòng)處理2 2 )實(shí)時(shí)信息處理)實(shí)時(shí)信息處理3 3 )并行操作,控制和管理多臺(tái)外設(shè)記終端)并行操作,控制和管理多臺(tái)外設(shè)記終端4 4 )分時(shí)操作)分時(shí)操作一一 什么是中斷什么是中斷斷點(diǎn)主程序中斷服務(wù)程序中斷請(qǐng)求對(duì)外設(shè)進(jìn)行處理繼續(xù)執(zhí)行返回?cái)帱c(diǎn) ?中斷源有哪些中斷源有哪些怎樣識(shí)別中斷源怎樣識(shí)別中斷源怎樣進(jìn)入中斷服務(wù)怎樣進(jìn)入中斷服務(wù)怎樣返回?cái)帱c(diǎn)怎樣返回?cái)帱c(diǎn)怎樣管理中斷源怎樣管理中斷源中斷的過程中斷的過程向向CPUCPU發(fā)出中斷發(fā)出中斷CPUCPU允許響應(yīng)此中斷允許響應(yīng)此中斷壓棧保護(hù)現(xiàn)場(chǎng)及斷點(diǎn)壓棧保護(hù)現(xiàn)場(chǎng)及斷點(diǎn)找到中斷服務(wù)程序的入口地址找

4、到中斷服務(wù)程序的入口地址執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序恢復(fù)現(xiàn)場(chǎng)及斷點(diǎn)恢復(fù)現(xiàn)場(chǎng)及斷點(diǎn)即即 包括:中斷請(qǐng)求,中斷判優(yōu),中斷響應(yīng),包括:中斷請(qǐng)求,中斷判優(yōu),中斷響應(yīng),中斷處理,中斷返回。中斷處理,中斷返回。中斷系統(tǒng)應(yīng)具有的功能中斷系統(tǒng)應(yīng)具有的功能(1)實(shí)現(xiàn)中斷及返回)實(shí)現(xiàn)中斷及返回(2)能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì))能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)(3)高級(jí)中斷源能中斷低級(jí)的中斷處理)高級(jí)中斷源能中斷低級(jí)的中斷處理中斷響應(yīng)與調(diào)用子程序的區(qū)別中斷響應(yīng)與調(diào)用子程序的區(qū)別調(diào)用子程序調(diào)用子程序事先安排好的主動(dòng)行為事先安排好的主動(dòng)行為保護(hù)斷點(diǎn)保護(hù)斷點(diǎn)為主程序服務(wù)為主程序服務(wù)一般與外設(shè)無關(guān)一般與外設(shè)無關(guān)中斷響應(yīng)中斷響應(yīng)隨機(jī)的、被動(dòng)行為隨

5、機(jī)的、被動(dòng)行為保護(hù)斷點(diǎn)及現(xiàn)場(chǎng)保護(hù)斷點(diǎn)及現(xiàn)場(chǎng)為外設(shè)服務(wù)為外設(shè)服務(wù)為處理各種事件服務(wù)為處理各種事件服務(wù)軟件中斷和調(diào)用子程序軟件中斷和調(diào)用子程序很相似,調(diào)用方便很相似,調(diào)用方便8.2 80868.2 8086的中斷技術(shù)的中斷技術(shù)80888088的中斷系統(tǒng)采用向量中斷機(jī)制的中斷系統(tǒng)采用向量中斷機(jī)制能夠處理能夠處理256256個(gè)中斷個(gè)中斷用中斷向量號(hào)用中斷向量號(hào)0 0 255255區(qū)別區(qū)別可屏蔽中斷還需要借助專用中斷控制器可屏蔽中斷還需要借助專用中斷控制器Intel 8259AIntel 8259A實(shí)現(xiàn)優(yōu)先權(quán)管理實(shí)現(xiàn)優(yōu)先權(quán)管理80868086提供兩條外部中斷請(qǐng)求線,和一條與提供兩條外部中斷請(qǐng)求線,和一條

6、與中斷有關(guān)的控制線:中斷有關(guān)的控制線:NMINMI,INTRINTR, INTAINTA(中斷響應(yīng))。中斷響應(yīng))。80868086中斷有兩大類中斷有兩大類(1 1)軟件中斷(內(nèi)部中斷),由指令的執(zhí)行)軟件中斷(內(nèi)部中斷),由指令的執(zhí)行所引起的中斷;所引起的中斷;(2 2)硬件中斷(外部中斷),由外部主要是)硬件中斷(外部中斷),由外部主要是外設(shè)的請(qǐng)求引起的中斷。外設(shè)的請(qǐng)求引起的中斷。一、中斷類型和中斷向量表一、中斷類型和中斷向量表1 1、中斷類型號(hào)、中斷類型號(hào) 80868086用用0 0255255來區(qū)分來區(qū)分256256個(gè)不同中斷源,個(gè)不同中斷源,并對(duì)應(yīng)給出并對(duì)應(yīng)給出中斷向量。中斷向量。0

7、04 4: 5 5個(gè)內(nèi)部中斷,有固定的定義和處理個(gè)內(nèi)部中斷,有固定的定義和處理功能;功能;5 53131:系統(tǒng)保留,用戶一般不應(yīng)使用:系統(tǒng)保留,用戶一般不應(yīng)使用3232255255:用戶使用作為硬件或軟件中斷,也:用戶使用作為硬件或軟件中斷,也可不用,作為數(shù)據(jù)存儲(chǔ)區(qū)??刹挥茫鳛閿?shù)據(jù)存儲(chǔ)區(qū)。2 2、中斷向量表、中斷向量表 8086/80888086/8088系統(tǒng)支持最多系統(tǒng)支持最多256256個(gè)中斷,對(duì)應(yīng)個(gè)中斷,對(duì)應(yīng)每一個(gè)中斷,都有一個(gè)中斷服務(wù)程序,該每一個(gè)中斷,都有一個(gè)中斷服務(wù)程序,該中斷服務(wù)程序的中斷服務(wù)程序的入口地址入口地址稱為中斷向量。稱為中斷向量。每個(gè)中斷向量占用每個(gè)中斷向量占用4

8、4個(gè)字節(jié),前兩個(gè)字節(jié)為個(gè)字節(jié),前兩個(gè)字節(jié)為服務(wù)程序的服務(wù)程序的IPIP(偏移量),后兩個(gè)字節(jié)為(偏移量),后兩個(gè)字節(jié)為服務(wù)程序的服務(wù)程序的CSCS(段地址)。(段地址)。 每個(gè)中斷類型對(duì)應(yīng)一個(gè)中斷向量。每個(gè)中斷類型對(duì)應(yīng)一個(gè)中斷向量。256256個(gè)中斷類型,其中斷向量構(gòu)成一個(gè)中斷個(gè)中斷類型,其中斷向量構(gòu)成一個(gè)中斷向量表,放在向量表,放在0 0段的段的0 03FFH3FFH區(qū)域內(nèi),每個(gè)區(qū)域內(nèi),每個(gè)占占4 4個(gè)字節(jié)。個(gè)字節(jié)。存放中斷向量的位置中斷類型號(hào)存放中斷向量的位置中斷類型號(hào)4 4(0 0段)開始的段)開始的4 4個(gè)內(nèi)存單元。個(gè)內(nèi)存單元。向量號(hào)為向量號(hào)為N的中斷向量的物理地址的中斷向量的物理地址

9、N48086的中斷向量表的中斷向量表向量號(hào)向量號(hào)255的的CS值值用戶中斷用戶中斷(向量號(hào)(向量號(hào)255)3FCH向量號(hào)向量號(hào)255的的IP值值向量號(hào)向量號(hào)2的的CS值值非屏蔽中斷非屏蔽中斷(向量號(hào)(向量號(hào)2)008H向量號(hào)向量號(hào)2的的IP值值向量號(hào)向量號(hào)1的的CS值值單步中斷單步中斷(向量號(hào)(向量號(hào)1)004H向量號(hào)向量號(hào)1的的IP值值向量號(hào)向量號(hào)0的的CS值值除法錯(cuò)中斷除法錯(cuò)中斷(向量號(hào)(向量號(hào)0)000H向量號(hào)向量號(hào)0的的IP值值例:例:20H號(hào)中斷的中斷服務(wù)程序的入口地址號(hào)中斷的中斷服務(wù)程序的入口地址(中斷向量)(中斷向量)4030H:2010H,則此中斷向,則此中斷向量占用的內(nèi)存單元

10、為:量占用的內(nèi)存單元為:0000H:0080H開始的開始的4個(gè)單元個(gè)單元0080H0081H0082H0083H10H20H30H40HIPCS二、中斷指令和中斷屏蔽二、中斷指令和中斷屏蔽1 1、中斷指令、中斷指令CLICLI:清中斷標(biāo)志,:清中斷標(biāo)志,IFIF0 0,禁止可屏蔽中斷;,禁止可屏蔽中斷;STISTI:中斷標(biāo)志置位,:中斷標(biāo)志置位, IFIF1 1,開放可屏蔽中斷;,開放可屏蔽中斷;INT nINT n:軟件中斷:軟件中斷CPUCPU工作:工作:(Flags) (SP)(Flags) (SP)2)2) 先復(fù)制先復(fù)制TFTF狀態(tài),然后狀態(tài),然后TF,IF=0TF,IF=0 (CS)

11、 (SP) (CS) (SP)4)4) (4 (4* *n+2) (CS)n+2) (CS) (IP) (SP) (IP) (SP)6) 6) (4 (4* *n) (IP) n) (IP) IRET: 中斷返回中斷返回CPU的工作:的工作:(SP) IP(SP)+2) CS(SP)+4) flag(SP)+6 SPINTO 溢出中斷(溢出中斷(INT 4)HLT 暫停等待外部中斷或復(fù)位暫停等待外部中斷或復(fù)位2、 中斷的屏蔽中斷的屏蔽中斷允許標(biāo)志位(中斷允許標(biāo)志位(IF),只能影響可屏蔽),只能影響可屏蔽外部中斷,不影響軟件中斷、內(nèi)部中斷以外部中斷,不影響軟件中斷、內(nèi)部中斷以及非屏蔽的外部中斷

12、。及非屏蔽的外部中斷。系統(tǒng)響應(yīng)中斷時(shí),使系統(tǒng)響應(yīng)中斷時(shí),使IF0,保證響應(yīng)過程,保證響應(yīng)過程不被打斷。不被打斷。若有優(yōu)先級(jí)高的中斷,若有優(yōu)先級(jí)高的中斷, 在服務(wù)子程序中使在服務(wù)子程序中使IF1。3、IF 中斷標(biāo)志中斷標(biāo)志IF0,關(guān)中斷、禁止中斷、中斷屏蔽,因,關(guān)中斷、禁止中斷、中斷屏蔽,因此可屏蔽的中斷不會(huì)被響應(yīng)。此可屏蔽的中斷不會(huì)被響應(yīng)。系統(tǒng)復(fù)位系統(tǒng)復(fù)位任何一個(gè)中斷響應(yīng)任何一個(gè)中斷響應(yīng)執(zhí)行執(zhí)行CLI 將使將使IF0IF1,開中斷、允許中斷、中斷開放,可,開中斷、允許中斷、中斷開放,可屏蔽的中斷會(huì)被響應(yīng)。屏蔽的中斷會(huì)被響應(yīng)。執(zhí)行執(zhí)行STI 將使將使IF1執(zhí)行執(zhí)行IRET,恢復(fù)原,恢復(fù)原IF非屏

13、蔽中斷源非屏蔽中斷源中斷邏輯中斷邏輯INTO指令指令(4)單步單步中斷中斷(1)除法除法錯(cuò)誤錯(cuò)誤(0)INT N指令指令CPUINTRNMI(2)可屏蔽中斷源可屏蔽中斷源8259A中斷中斷控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外設(shè)設(shè)中中斷斷源源 INTA內(nèi)部中斷內(nèi)部中斷除法錯(cuò)中斷除法錯(cuò)中斷指令中斷指令中斷溢出中斷溢出中斷單步中斷單步中斷外部中斷外部中斷非屏蔽中斷非屏蔽中斷可屏蔽中斷可屏蔽中斷三、中斷的功能INT 3指令指令1. 1. 內(nèi)部中斷內(nèi)部中斷內(nèi)部中斷是由于內(nèi)部中斷是由于8088內(nèi)部執(zhí)行程序出現(xiàn)異內(nèi)部執(zhí)行程序出現(xiàn)異常引起常引起的程序中斷的程序中斷利用內(nèi)部中斷,微處

14、理器為用戶提供了發(fā)利用內(nèi)部中斷,微處理器為用戶提供了發(fā)現(xiàn)、調(diào)試并解決程序執(zhí)行時(shí)異常情況的有現(xiàn)、調(diào)試并解決程序執(zhí)行時(shí)異常情況的有效途徑效途徑例如,例如,ROM-BIOS和和DOS系統(tǒng)利用內(nèi)部中系統(tǒng)利用內(nèi)部中斷為程序員提供了各種功能調(diào)用斷為程序員提供了各種功能調(diào)用除法錯(cuò)中斷,類型除法錯(cuò)中斷,類型0中斷中斷在執(zhí)行除法指令時(shí),若除數(shù)為在執(zhí)行除法指令時(shí),若除數(shù)為0或商超過了或商超過了寄存器所能表達(dá)的范圍,則產(chǎn)生一個(gè)寄存器所能表達(dá)的范圍,則產(chǎn)生一個(gè)向量號(hào)向量號(hào)為為0的內(nèi)部中斷,稱為的內(nèi)部中斷,稱為除法錯(cuò)中斷。自動(dòng)轉(zhuǎn)除法錯(cuò)中斷。自動(dòng)轉(zhuǎn)到到0000H0003H存放的地址執(zhí)行。存放的地址執(zhí)行。例如:例如:mov

15、 bl,0idiv bl;除數(shù);除數(shù)BL0,產(chǎn)生除法錯(cuò)中斷,產(chǎn)生除法錯(cuò)中斷mov ax,200hmov bl,1div bl;商;商200H,不能用,不能用AL表達(dá)表達(dá);產(chǎn)生除法錯(cuò)中斷;產(chǎn)生除法錯(cuò)中斷溢出中斷,溢出中斷, 類型類型4中斷中斷在執(zhí)行溢出中斷指令在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),若溢出標(biāo)志時(shí),若溢出標(biāo)志OF為為1,則產(chǎn)生一個(gè)則產(chǎn)生一個(gè)向量號(hào)為向量號(hào)為4的內(nèi)部中斷,被稱為的內(nèi)部中斷,被稱為溢出中溢出中斷斷有必要時(shí)用有必要時(shí)用INTO引入,用于測(cè)試溢出標(biāo)志。跟在引入,用于測(cè)試溢出標(biāo)志。跟在有符號(hào)數(shù)的計(jì)算后面,程序員知道是否為有符號(hào)有符號(hào)數(shù)的計(jì)算后面,程序員知道是否為有符號(hào)數(shù),對(duì)于無符號(hào)數(shù)則

16、無所謂。數(shù),對(duì)于無符號(hào)數(shù)則無所謂。例如:例如:mov ax,2000hadd ax, 7000h;2000H7000H9000H,溢出:,溢出:OF1into;因?yàn)椋灰驗(yàn)镺F1,所以產(chǎn)生溢出中斷,所以產(chǎn)生溢出中斷單步中斷,類型單步中斷,類型1中斷中斷若單步中斷若單步中斷TF為為1,則在每條指令執(zhí)行結(jié)束,則在每條指令執(zhí)行結(jié)束后產(chǎn)生一個(gè)向量號(hào)為后產(chǎn)生一個(gè)向量號(hào)為1的內(nèi)部中斷,稱為單的內(nèi)部中斷,稱為單步中斷步中斷例如:例如:DEBUG.EXE調(diào)試程序的單步命令調(diào)試程序的單步命令T就利就利用單步中斷實(shí)現(xiàn)對(duì)程序的單步調(diào)試用單步中斷實(shí)現(xiàn)對(duì)程序的單步調(diào)試斷點(diǎn)中斷,類型斷點(diǎn)中斷,類型3中斷中斷在調(diào)試程序時(shí)使用

17、,將某處的一條指令替在調(diào)試程序時(shí)使用,將某處的一條指令替換為換為 INT3指令。需要保存原內(nèi)容,調(diào)試完指令。需要保存原內(nèi)容,調(diào)試完后回復(fù)原指令。后回復(fù)原指令。比較特別(生成一個(gè)字節(jié)的指令代碼:比較特別(生成一個(gè)字節(jié)的指令代碼:11001100),常用于程序調(diào)試,被稱為),常用于程序調(diào)試,被稱為斷斷點(diǎn)中斷點(diǎn)中斷例如:例如:DEBUG.EXE調(diào)試程序的運(yùn)行命令調(diào)試程序的運(yùn)行命令G設(shè)置設(shè)置的斷點(diǎn),就是利用的斷點(diǎn),就是利用INT 3指令實(shí)現(xiàn)的指令實(shí)現(xiàn)的2 2、軟件(指令)中斷、軟件(指令)中斷在執(zhí)行中斷調(diào)用指令在執(zhí)行中斷調(diào)用指令I(lǐng)NT n時(shí)產(chǎn)生的一個(gè)時(shí)產(chǎn)生的一個(gè)向向量號(hào)為量號(hào)為n(0 255)的內(nèi)部中

18、斷,稱為)的內(nèi)部中斷,稱為指令指令中斷。中斷。被成為向量化的子程序調(diào)用,一般會(huì)是功被成為向量化的子程序調(diào)用,一般會(huì)是功能比較復(fù)雜的仿真子程序。能比較復(fù)雜的仿真子程序。所有的外部中斷也可以用指令調(diào)用所有的外部中斷也可以用指令調(diào)用。3 3、外部中斷、外部中斷外部中斷是由于外部中斷是由于8088外部提出中斷請(qǐng)求引外部提出中斷請(qǐng)求引起起的程序中斷的程序中斷利用外部中斷,微機(jī)系統(tǒng)可以實(shí)時(shí)響應(yīng)外利用外部中斷,微機(jī)系統(tǒng)可以實(shí)時(shí)響應(yīng)外部設(shè)備的數(shù)據(jù)傳送請(qǐng)求,能夠及時(shí)處理外部設(shè)備的數(shù)據(jù)傳送請(qǐng)求,能夠及時(shí)處理外部意外或緊急事件部意外或緊急事件外部中斷的原因是處理器外部隨機(jī)產(chǎn)生的,外部中斷的原因是處理器外部隨機(jī)產(chǎn)生的

19、,所以是真正的所以是真正的中斷中斷(Interrupt)內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被稱為常,所以經(jīng)常被稱為異常異常(Exception) 非屏蔽中斷非屏蔽中斷通過非屏蔽中斷請(qǐng)求信號(hào)向微處理器提出通過非屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷請(qǐng)求,微處理器無法禁止,將在當(dāng)?shù)闹袛嗾?qǐng)求,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個(gè)中斷被稱前指令執(zhí)行結(jié)束予以響應(yīng),這個(gè)中斷被稱為非屏蔽中斷為非屏蔽中斷8088的非屏蔽中斷的向量號(hào)為的非屏蔽中斷的向量號(hào)為2,非屏蔽中,非屏蔽中斷請(qǐng)求信號(hào)為斷請(qǐng)求信號(hào)為NMI非屏蔽中斷主要用于處理系統(tǒng)的意外或故非屏

20、蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:障。例如:電源調(diào)電前的數(shù)據(jù)保護(hù)電源調(diào)電前的數(shù)據(jù)保護(hù)存儲(chǔ)器讀寫錯(cuò)誤的處理存儲(chǔ)器讀寫錯(cuò)誤的處理 可屏蔽中斷可屏蔽中斷外部通過可屏蔽中斷請(qǐng)求信號(hào)向微處理器外部通過可屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷,微處理器在允許可屏蔽中斷提出的中斷,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號(hào),這個(gè)中斷同時(shí)輸出可屏蔽中斷響應(yīng)信號(hào),這個(gè)中斷就是可屏蔽中斷就是可屏蔽中斷8088的可屏蔽中斷請(qǐng)求和響應(yīng)信號(hào)分別是的可屏蔽中斷請(qǐng)求和響應(yīng)信號(hào)分別是INTR和和INTA*;由由IF標(biāo)志控制可屏蔽中斷標(biāo)志

21、控制可屏蔽中斷是否允許響應(yīng)是否允許響應(yīng);向量號(hào)來自外部中斷控制向量號(hào)來自外部中斷控制器。器。申請(qǐng)?jiān)谏暾?qǐng)?jiān)贗NTR線上發(fā)出信號(hào),可以被線上發(fā)出信號(hào),可以被CPU查查到,有要在服務(wù)完成前及時(shí)撤銷,以防重到,有要在服務(wù)完成前及時(shí)撤銷,以防重復(fù)觸發(fā)。復(fù)觸發(fā)。INTA*作為中斷應(yīng)答信號(hào),送出兩個(gè)負(fù)脈作為中斷應(yīng)答信號(hào),送出兩個(gè)負(fù)脈沖,第一個(gè)通知外設(shè)得到響應(yīng),第二個(gè)將沖,第一個(gè)通知外設(shè)得到響應(yīng),第二個(gè)將中斷類型號(hào)送上數(shù)據(jù)線。中斷類型號(hào)送上數(shù)據(jù)線。8088通常需要配合中斷控制器通常需要配合中斷控制器8259A共同處共同處理可屏蔽中斷理可屏蔽中斷可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)可屏蔽中斷主要用于主機(jī)與外設(shè)交

22、換數(shù)據(jù)明明確確IF標(biāo)標(biāo)志志的的狀狀態(tài)態(tài)是是關(guān)關(guān)鍵鍵8086/8088的中斷響應(yīng)過程的中斷響應(yīng)過程N(yùn)MIN軟件中斷軟件中斷INTRTF=1中斷響應(yīng)周期中斷響應(yīng)周期讀中斷向量號(hào)讀中斷向量號(hào)下條指令下條指令現(xiàn)行指令現(xiàn)行指令I(lǐng)F1NNNNYYYYY查詢中斷的順序,查詢中斷的順序,決定了各種中斷源的優(yōu)先權(quán)決定了各種中斷源的優(yōu)先權(quán) 軟件中斷軟件中斷 除法錯(cuò)中斷除法錯(cuò)中斷 指令中斷指令中斷 溢出中斷溢出中斷 非屏蔽中斷非屏蔽中斷 可屏蔽中斷可屏蔽中斷單步中斷單步中斷高高低低8086/8088的中斷響應(yīng)過程的中斷響應(yīng)過程(續(xù))(續(xù))Y還有還有NMITEMP1標(biāo)志寄存器入棧標(biāo)志寄存器入棧TEMPTF,IFTF0

23、CS:IP入棧入棧獲取中斷向量獲取中斷向量執(zhí)行服務(wù)程序執(zhí)行服務(wù)程序彈出彈出CS:IP彈出標(biāo)志寄存器彈出標(biāo)志寄存器返回被中斷程序返回被中斷程序(1)(2)(3)(4)(5)NNY(6)8.3 8.3 中斷控制器中斷控制器8259A8259A呱,打擾一下呱。呱呱呱,還有我中斷申請(qǐng)管理接口的主要功能中斷申請(qǐng)管理接口的主要功能:1. 向向CPU的引腳的引腳INTR發(fā)中斷申請(qǐng)信號(hào)發(fā)中斷申請(qǐng)信號(hào) 當(dāng)有多個(gè)外設(shè)同時(shí)發(fā)出中斷請(qǐng)求時(shí),當(dāng)有多個(gè)外設(shè)同時(shí)發(fā)出中斷請(qǐng)求時(shí), 能按照一定的優(yōu)先級(jí)順序,向能按照一定的優(yōu)先級(jí)順序,向CPU發(fā)出中斷申請(qǐng),發(fā)出中斷申請(qǐng), 使使CPU能優(yōu)先響應(yīng)優(yōu)先級(jí)最高的外部設(shè)備的中斷申請(qǐng)。能優(yōu)先

24、響應(yīng)優(yōu)先級(jí)最高的外部設(shè)備的中斷申請(qǐng)。2. 送中斷類型號(hào)送中斷類型號(hào) 在在CPU中斷響應(yīng)周期,針對(duì)不同外設(shè)的中斷請(qǐng)求,中斷響應(yīng)周期,針對(duì)不同外設(shè)的中斷請(qǐng)求, 向向CPU傳送不同的中斷類型號(hào),傳送不同的中斷類型號(hào), 使使CPU執(zhí)行相應(yīng)的中斷子程執(zhí)行相應(yīng)的中斷子程。Intel 8259A是可編程中斷控制器是可編程中斷控制器用于管理用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中斷的可屏蔽中斷8259A的基本功能的基本功能一片一片8259A可以管理可以管理8級(jí)中斷,可擴(kuò)展至級(jí)中斷,可擴(kuò)展至64級(jí)級(jí)每一級(jí)中斷都可單獨(dú)被屏蔽或允許每一級(jí)中斷都可單獨(dú)被屏蔽或允許在

25、中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號(hào)在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號(hào)8259A設(shè)計(jì)有多種工作方式,可通過編程選擇設(shè)計(jì)有多種工作方式,可通過編程選擇8259A的引腳的引腳 雙列直插式芯片,雙列直插式芯片,28個(gè)引腳個(gè)引腳方方 波波鍵鍵 盤盤保保 留留串串 口口2 硬硬 盤盤軟軟 盤盤打印機(jī)打印機(jī)IOW18.2HzA0CS8259A總線總線A0數(shù)數(shù) 據(jù)據(jù) 線線 IORRDWR片片選選譯譯碼碼IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A級(jí)連情況級(jí)連情況INTAINT INTA INT

26、R串串 口口1 一、一、8259A8259A的引腳、結(jié)構(gòu)和工作原理的引腳、結(jié)構(gòu)和工作原理引腳引腳1、D0D7: 8條數(shù)據(jù)線,與條數(shù)據(jù)線,與CPU數(shù)據(jù)總線相連,數(shù)據(jù)總線相連,進(jìn)行數(shù)據(jù)交換,寫入控制字或送出類型號(hào)。進(jìn)行數(shù)據(jù)交換,寫入控制字或送出類型號(hào)。2、INT:中斷請(qǐng)求,與:中斷請(qǐng)求,與CPU INTR相連發(fā)出中斷相連發(fā)出中斷申請(qǐng)。申請(qǐng)。INTA*: 接收來自接收來自CPU的響應(yīng)信號(hào),一般兩個(gè)負(fù)脈的響應(yīng)信號(hào),一般兩個(gè)負(fù)脈沖。沖。RD*: 讀信號(hào),讀讀信號(hào),讀CPU某個(gè)內(nèi)部寄存器的內(nèi)容某個(gè)內(nèi)部寄存器的內(nèi)容WR*:寫信號(hào),通知:寫信號(hào),通知CPU接收命令字。接收命令字。CS*:片選信號(hào)片選信號(hào)A0:

27、1片片8259A占用兩個(gè)端口地址,一個(gè)偶地址占用兩個(gè)端口地址,一個(gè)偶地址(A00)較低,一個(gè)奇地址()較低,一個(gè)奇地址(A01)較高。)較高。IR0IR7: 分別接分別接8個(gè)外設(shè)中斷請(qǐng)求或從片中斷請(qǐng)個(gè)外設(shè)中斷請(qǐng)求或從片中斷請(qǐng)求。求。CAS0CAS2:主從結(jié)構(gòu)時(shí),區(qū)分不同的從片。主從結(jié)構(gòu)時(shí),區(qū)分不同的從片。SP*/EN*: 雙向線,雙向線,(由初始化命令字設(shè)置由初始化命令字設(shè)置)非緩沖方式:輸入非緩沖方式:輸入 SP*1本片主片,本片主片, SP*0本片主本片主片片緩沖方式:輸出緩沖方式:輸出EN*0有效,數(shù)據(jù)從有效,數(shù)據(jù)從8259傳向傳向8086,一般用于驅(qū)動(dòng)一個(gè)總線驅(qū)動(dòng)器一般用于驅(qū)動(dòng)一個(gè)總線

28、驅(qū)動(dòng)器 關(guān)于數(shù)據(jù)線和地址線的連接關(guān)于數(shù)據(jù)線和地址線的連接8259A只有只有8根數(shù)據(jù)線,一般與根數(shù)據(jù)線,一般與8086的低的低8根數(shù)據(jù)線相連,因此必須把根數(shù)據(jù)線相連,因此必須把8086地址線的地址線的A1與與8259A的的A0相連。相連。其中其中A00為偶地址為偶地址 A01為奇地址。為奇地址。8259A8259A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)D7D0INTAINT中斷請(qǐng)求寄存器中斷請(qǐng)求寄存器中斷屏蔽寄存器中斷屏蔽寄存器數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器IR0IR7讀讀/寫寫控制控制邏輯邏輯級(jí)聯(lián)級(jí)聯(lián)緩沖器緩沖器比較器比較器RDWRA0CSCAS0CSA1CAS2SP/EN優(yōu)先權(quán)判別電路優(yōu)先權(quán)判別電路中斷服務(wù)寄存

29、器中斷服務(wù)寄存器控制邏輯控制邏輯* * 保存保存8 8條外界中斷請(qǐng)求信號(hào)條外界中斷請(qǐng)求信號(hào)IR0IR0IR7IR7的請(qǐng)求狀態(tài)的請(qǐng)求狀態(tài); ;* * Di Di位為位為1 1表示表示IRiIRi引腳有中斷請(qǐng)求;引腳有中斷請(qǐng)求;為為0 0表示無請(qǐng)求表示無請(qǐng)求. .* *保存對(duì)中斷請(qǐng)求信號(hào)保存對(duì)中斷請(qǐng)求信號(hào)IRIR的屏蔽狀態(tài)的屏蔽狀態(tài)* *DiDi位為位為1 1表示表示IRiIRi中斷被屏蔽(禁止)中斷被屏蔽(禁止), ,為為0 0表示允許表示允許; ;* *各自獨(dú)立各自獨(dú)立. .* *保存正在被保存正在被8259A8259A服務(wù)著的中斷狀態(tài)服務(wù)著的中斷狀態(tài); ;* *DiDi位為位為1 1表示表示

30、IRiIRi中斷正在服務(wù)中中斷正在服務(wù)中, ,為為0 0表示沒有被服務(wù)表示沒有被服務(wù). .* *用以比較正在處理的中斷和剛剛進(jìn)入用以比較正在處理的中斷和剛剛進(jìn)入的中斷請(qǐng)求之間的優(yōu)先級(jí)別,以決定的中斷請(qǐng)求之間的優(yōu)先級(jí)別,以決定是否產(chǎn)生多重中斷或中斷嵌套是否產(chǎn)生多重中斷或中斷嵌套. . 8259 8259的內(nèi)部控制器。的內(nèi)部控制器。1 1 根據(jù)中斷請(qǐng)求寄存器根據(jù)中斷請(qǐng)求寄存器IRRIRR、中斷屏蔽寄存器、中斷屏蔽寄存器IMRIMR的設(shè)置情況,通過優(yōu)先級(jí)比較器判定優(yōu)先的設(shè)置情況,通過優(yōu)先級(jí)比較器判定優(yōu)先級(jí)級(jí); ;2 2 向其他部件發(fā)出控制信號(hào)向其他部件發(fā)出控制信號(hào); ;3 3 并發(fā)出中斷請(qǐng)求信號(hào)并發(fā)

31、出中斷請(qǐng)求信號(hào)INT;INT;4 4 接受中斷響應(yīng)信號(hào)接受中斷響應(yīng)信號(hào)INTAINTA,使中斷服務(wù)寄存器,使中斷服務(wù)寄存器ISRISR的相應(yīng)位置的相應(yīng)位置1 1,IRRIRR的相應(yīng)位清的相應(yīng)位清0;0;5 5 在在INTAINTA第二個(gè)負(fù)脈沖到來的時(shí)候送出中斷類第二個(gè)負(fù)脈沖到來的時(shí)候送出中斷類型號(hào)型號(hào); ;6 6 根據(jù)中斷結(jié)束類型對(duì)根據(jù)中斷結(jié)束類型對(duì)ISRISR的相應(yīng)位清的相應(yīng)位清0 0。IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中斷類型中斷類型號(hào)號(hào) ICW3 主從片關(guān)主從片關(guān)

32、系系 ICW4 方式控制方式控制101 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR8259A的內(nèi)部寄存器的內(nèi)部寄存器中斷請(qǐng)求寄存器中斷請(qǐng)求寄存器IRR保存保存8條外界中斷請(qǐng)求信號(hào)條外界中斷請(qǐng)求信號(hào)IR0IR7的請(qǐng)求狀態(tài)的請(qǐng)求狀態(tài)Di位為位為1表示表示IRi引腳有中斷請(qǐng)求;為引

33、腳有中斷請(qǐng)求;為0表示無請(qǐng)求表示無請(qǐng)求中斷服務(wù)寄存器中斷服務(wù)寄存器ISR保存正在被保存正在被8259A服務(wù)著的中斷狀態(tài)服務(wù)著的中斷狀態(tài)Di位為位為1表示表示IRi中斷正在服務(wù)中;為中斷正在服務(wù)中;為0表示沒有被服務(wù)表示沒有被服務(wù)中斷屏蔽寄存器中斷屏蔽寄存器IMR保存對(duì)中斷請(qǐng)求信號(hào)保存對(duì)中斷請(qǐng)求信號(hào)IR的屏蔽狀態(tài)的屏蔽狀態(tài)Di位為位為1表示表示IRi中斷被屏蔽(禁止);為中斷被屏蔽(禁止);為0表示允許表示允許優(yōu)先級(jí)比較器優(yōu)先級(jí)比較器(裁決器裁決器)用以比較正在處理的中斷和剛剛進(jìn)入的中斷請(qǐng)用以比較正在處理的中斷和剛剛進(jìn)入的中斷請(qǐng)求之間的優(yōu)先級(jí)別,以決定是否產(chǎn)生多重中斷求之間的優(yōu)先級(jí)別,以決定是否

34、產(chǎn)生多重中斷或中斷嵌套?;蛑袛嗲短住?shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器它是它是8259A與系統(tǒng)數(shù)據(jù)總線的接口,是與系統(tǒng)數(shù)據(jù)總線的接口,是8位雙位雙向三態(tài)緩沖器。向三態(tài)緩沖器。CPU與與8259A之間的控制命令之間的控制命令信息、狀態(tài)信息以及中斷類型信息,都是通過信息、狀態(tài)信息以及中斷類型信息,都是通過該緩沖器傳送的。該緩沖器傳送的。 讀讀/寫控制邏輯寫控制邏輯CPU通過它實(shí)現(xiàn)對(duì)通過它實(shí)現(xiàn)對(duì)8259A的讀的讀/寫操作。寫操作。 級(jí)連緩沖器級(jí)連緩沖器:用以實(shí)現(xiàn)用以實(shí)現(xiàn)8259A芯片之間的級(jí)連,使得中斷源芯片之間的級(jí)連,使得中斷源可以由可以由8級(jí)擴(kuò)展至級(jí)擴(kuò)展至64級(jí)。級(jí)。控制邏輯電路控制邏輯電路對(duì)整個(gè)芯片

35、內(nèi)部各部件的工作進(jìn)行協(xié)調(diào)和控制。對(duì)整個(gè)芯片內(nèi)部各部件的工作進(jìn)行協(xié)調(diào)和控制。8259的中斷控制部分有的中斷控制部分有7各寄存器,根據(jù)初始各寄存器,根據(jù)初始化命令字和操作命令字工作?;钭趾筒僮髅钭止ぷ鳌V袛囗憫?yīng)過程中斷響應(yīng)過程CPU在在INTA*上給出兩個(gè)負(fù)脈沖上給出兩個(gè)負(fù)脈沖第一個(gè)負(fù)脈沖使第一個(gè)負(fù)脈沖使8259A作如下的工作:作如下的工作:使使IRR寄存器暫時(shí)失效,不再接收新的申請(qǐng),第二個(gè)負(fù)寄存器暫時(shí)失效,不再接收新的申請(qǐng),第二個(gè)負(fù)脈沖恢復(fù)脈沖恢復(fù)使當(dāng)前的使當(dāng)前的ISR中的相應(yīng)位置中的相應(yīng)位置1使使IRR中的相應(yīng)位清中的相應(yīng)位清0第二個(gè)負(fù)脈沖第二個(gè)負(fù)脈沖使中斷類型寄存器的使中斷類型寄存器的

36、ICW2的內(nèi)容送的內(nèi)容送D0D7(中斷類(中斷類型碼)型碼)如果如果ICW4中的自動(dòng)結(jié)束位為中的自動(dòng)結(jié)束位為1,則使,則使ISR的相應(yīng)位清的相應(yīng)位清0。三、三、8259A8259A的工作方式的工作方式8259A8259A有多種工作方式,這些工作方式,有多種工作方式,這些工作方式,可以通過可以通過編程設(shè)置或改變編程設(shè)置或改變。1.1.優(yōu)先級(jí)的管理方式優(yōu)先級(jí)的管理方式(1).(1).全嵌套方式全嵌套方式這是這是8259A默認(rèn)默認(rèn)的優(yōu)先權(quán)設(shè)置方式,在全嵌套的優(yōu)先權(quán)設(shè)置方式,在全嵌套方式下,方式下,8259A所管理的所管理的8級(jí)中斷優(yōu)先權(quán)是級(jí)中斷優(yōu)先權(quán)是固固定不變定不變的,其中的,其中IR0的中斷優(yōu)先

37、級(jí)最高,的中斷優(yōu)先級(jí)最高,IR7的的中斷優(yōu)先級(jí)最低中斷優(yōu)先級(jí)最低。CPU響應(yīng)中斷后,請(qǐng)求中斷的中斷源中,優(yōu)先響應(yīng)中斷后,請(qǐng)求中斷的中斷源中,優(yōu)先級(jí)最高的中斷源,在中斷服務(wù)寄存器級(jí)最高的中斷源,在中斷服務(wù)寄存器ISR中的中的相應(yīng)位置位,而且把它的中斷矢量送至系統(tǒng)數(shù)相應(yīng)位置位,而且把它的中斷矢量送至系統(tǒng)數(shù)據(jù)總線,在此中斷源的中斷服務(wù)完成之前,與據(jù)總線,在此中斷源的中斷服務(wù)完成之前,與它它同級(jí)或優(yōu)先級(jí)低的中斷源的中斷請(qǐng)求被屏蔽同級(jí)或優(yōu)先級(jí)低的中斷源的中斷請(qǐng)求被屏蔽,只有優(yōu)先級(jí)比它高的中斷源的中斷請(qǐng)求才是運(yùn)只有優(yōu)先級(jí)比它高的中斷源的中斷請(qǐng)求才是運(yùn)算的,從而出現(xiàn)中斷嵌套。算的,從而出現(xiàn)中斷嵌套。 (2)

38、.).特殊全嵌套方式特殊全嵌套方式特殊全嵌套方式特殊全嵌套方式與全嵌套方式基本相同與全嵌套方式基本相同,所不,所不同的是,當(dāng)同的是,當(dāng)CPU處理某一級(jí)中斷時(shí),如果有同處理某一級(jí)中斷時(shí),如果有同級(jí)中斷請(qǐng)求,那么級(jí)中斷請(qǐng)求,那么CPU也會(huì)作出響應(yīng),從而形也會(huì)作出響應(yīng),從而形成了對(duì)成了對(duì)同一級(jí)中斷的特殊嵌套同一級(jí)中斷的特殊嵌套。特殊全嵌套方式特殊全嵌套方式通常應(yīng)用在有通常應(yīng)用在有8259A級(jí)連的系級(jí)連的系統(tǒng)中統(tǒng)中,在這種情況下,對(duì)主,在這種情況下,對(duì)主8259A編程時(shí),通編程時(shí),通常使它工作在特殊全嵌套方式下。這樣,一方常使它工作在特殊全嵌套方式下。這樣,一方面,面,CPU對(duì)于優(yōu)先級(jí)別較高的主片的中

39、斷輸入對(duì)于優(yōu)先級(jí)別較高的主片的中斷輸入是允許的,另一方面,是允許的,另一方面,CPU對(duì)于來自同一從片對(duì)于來自同一從片的優(yōu)先級(jí)別較高(但對(duì)于主片來講,優(yōu)先級(jí)別的優(yōu)先級(jí)別較高(但對(duì)于主片來講,優(yōu)先級(jí)別是相同的)的中斷也是允許、能夠響應(yīng)的。是相同的)的中斷也是允許、能夠響應(yīng)的。 (3).優(yōu)先級(jí)自動(dòng)循環(huán)方式優(yōu)先級(jí)自動(dòng)循環(huán)方式在實(shí)際應(yīng)用中,中斷源優(yōu)先級(jí)的情況是比較復(fù)在實(shí)際應(yīng)用中,中斷源優(yōu)先級(jí)的情況是比較復(fù)雜的,要求雜的,要求8級(jí)中斷的優(yōu)先級(jí)在系統(tǒng)工作過程級(jí)中斷的優(yōu)先級(jí)在系統(tǒng)工作過程中,可以中,可以動(dòng)態(tài)改變動(dòng)態(tài)改變。即一個(gè)中斷源的中斷請(qǐng)求。即一個(gè)中斷源的中斷請(qǐng)求被響應(yīng)之后,其優(yōu)先級(jí)被響應(yīng)之后,其優(yōu)先級(jí)自動(dòng)

40、降為最低自動(dòng)降為最低。系統(tǒng)啟。系統(tǒng)啟動(dòng)時(shí),動(dòng)時(shí),8級(jí)中斷優(yōu)先級(jí)級(jí)中斷優(yōu)先級(jí)默認(rèn)為默認(rèn)為IR0IR7,這時(shí),這時(shí),剛好剛好IR4發(fā)出了中斷請(qǐng)求,發(fā)出了中斷請(qǐng)求,CPU響應(yīng)之后,若響應(yīng)之后,若8259A工作在優(yōu)先級(jí)自動(dòng)循環(huán)方式下,則中斷工作在優(yōu)先級(jí)自動(dòng)循環(huán)方式下,則中斷優(yōu)先級(jí)自動(dòng)變?yōu)閮?yōu)先級(jí)自動(dòng)變?yōu)镮R5、IR6、IR7、IR0、IR1、IR2、IR3、IR4。(4).優(yōu)先級(jí)特殊循環(huán)方式優(yōu)先級(jí)特殊循環(huán)方式優(yōu)先級(jí)特殊循環(huán)方式與自動(dòng)循環(huán)方式相比,只優(yōu)先級(jí)特殊循環(huán)方式與自動(dòng)循環(huán)方式相比,只有一點(diǎn)不同,即初始化的優(yōu)先級(jí)(最低)是由有一點(diǎn)不同,即初始化的優(yōu)先級(jí)(最低)是由程序控制的,而不是默認(rèn)的程序控制的,而

41、不是默認(rèn)的IR0IR7。 2.2.中斷源的屏蔽方式中斷源的屏蔽方式CPUCPU對(duì)于對(duì)于8259A8259A提出的中斷請(qǐng)求,都可以加提出的中斷請(qǐng)求,都可以加以屏蔽控制,屏蔽控制有下列幾種方式:以屏蔽控制,屏蔽控制有下列幾種方式:(1).(1).普通屏蔽方式:普通屏蔽方式:8259A的每個(gè)中斷請(qǐng)求輸入,都要受到屏蔽寄的每個(gè)中斷請(qǐng)求輸入,都要受到屏蔽寄存器中相應(yīng)位的控制。若相應(yīng)位為存器中相應(yīng)位的控制。若相應(yīng)位為“1”,則中,則中斷請(qǐng)求不能送斷請(qǐng)求不能送CPU。屏蔽是通過對(duì)屏蔽寄存器。屏蔽是通過對(duì)屏蔽寄存器IMR的編程(操作命令字的編程(操作命令字OCW1),來加以設(shè)),來加以設(shè)置和改變的。置和改變的

42、。(2).).特殊屏蔽方式特殊屏蔽方式:有些場(chǎng)合下,希望一個(gè)中斷服務(wù)程序的運(yùn)行過程中,有些場(chǎng)合下,希望一個(gè)中斷服務(wù)程序的運(yùn)行過程中,能動(dòng)態(tài)地改變系統(tǒng)中的中斷優(yōu)先級(jí)結(jié)構(gòu),即在中斷處能動(dòng)態(tài)地改變系統(tǒng)中的中斷優(yōu)先級(jí)結(jié)構(gòu),即在中斷處理的一部分,禁止低級(jí)中斷,而在中斷處理的另一部理的一部分,禁止低級(jí)中斷,而在中斷處理的另一部分,又能夠允許低級(jí)中斷,于是引入了對(duì)中斷的特殊分,又能夠允許低級(jí)中斷,于是引入了對(duì)中斷的特殊屏蔽方式。屏蔽方式。設(shè)置了特殊屏蔽方式后,設(shè)置了特殊屏蔽方式后,用用OCW1對(duì)屏蔽寄存器中的對(duì)屏蔽寄存器中的某一位置位時(shí),同時(shí)也會(huì)使中斷服務(wù)寄存器某一位置位時(shí),同時(shí)也會(huì)使中斷服務(wù)寄存器ISR中

43、的相中的相應(yīng)位復(fù)位應(yīng)位復(fù)位,這樣就不只屏蔽了正在處理的等級(jí)中斷,這樣就不只屏蔽了正在處理的等級(jí)中斷,而且而且真正開放了其它優(yōu)先級(jí)別較低的中斷請(qǐng)求真正開放了其它優(yōu)先級(jí)別較低的中斷請(qǐng)求。特殊屏蔽是在中斷處理程序中使用的,用了這種方式特殊屏蔽是在中斷處理程序中使用的,用了這種方式之后,盡管系統(tǒng)正在處理高級(jí)中斷,但對(duì)外界來講,之后,盡管系統(tǒng)正在處理高級(jí)中斷,但對(duì)外界來講,只有同級(jí)中斷被屏蔽,才允許其它任何級(jí)別的中斷請(qǐng)只有同級(jí)中斷被屏蔽,才允許其它任何級(jí)別的中斷請(qǐng)求。求。3.結(jié)束中斷處理的方式結(jié)束中斷處理的方式按照對(duì)中斷結(jié)束(復(fù)位中斷響應(yīng)寄存器按照對(duì)中斷結(jié)束(復(fù)位中斷響應(yīng)寄存器ISR中中相應(yīng)位)的不同處

44、理,相應(yīng)位)的不同處理,8259A有兩種工作方式,有兩種工作方式,即即自動(dòng)結(jié)束方式(自動(dòng)結(jié)束方式(AEI)和非自動(dòng)結(jié)束方式)和非自動(dòng)結(jié)束方式。而非自動(dòng)結(jié)束方式又可進(jìn)一步分為而非自動(dòng)結(jié)束方式又可進(jìn)一步分為一般的中斷一般的中斷結(jié)束方式和特殊的中斷結(jié)束方式結(jié)束方式和特殊的中斷結(jié)束方式。(1).(1).中斷自動(dòng)結(jié)束方式中斷自動(dòng)結(jié)束方式這種方式僅適用于只有這種方式僅適用于只有單片單片8259A的場(chǎng)合的場(chǎng)合,在這種方,在這種方式下,系統(tǒng)一旦響應(yīng)中斷,那么式下,系統(tǒng)一旦響應(yīng)中斷,那么CPU在發(fā)在發(fā)第二個(gè)第二個(gè)INTA脈沖時(shí)脈沖時(shí),就會(huì)使中斷響應(yīng)寄存器就會(huì)使中斷響應(yīng)寄存器ISR中相應(yīng)位復(fù)位中相應(yīng)位復(fù)位,這,這

45、樣一來,雖然系統(tǒng)在進(jìn)行中斷處理,但對(duì)于樣一來,雖然系統(tǒng)在進(jìn)行中斷處理,但對(duì)于8259A來來講,講,ISR沒有相應(yīng)的指示,就象中斷處理結(jié)束,返回主沒有相應(yīng)的指示,就象中斷處理結(jié)束,返回主程序之后一樣。程序之后一樣。CPU可以再次響應(yīng)任何級(jí)別的中斷請(qǐng)可以再次響應(yīng)任何級(jí)別的中斷請(qǐng)求求。(2).一般的中斷結(jié)束方式一般的中斷結(jié)束方式一般的中斷結(jié)束方式適用用在一般的中斷結(jié)束方式適用用在全嵌套全嵌套的情況下,當(dāng)?shù)那闆r下,當(dāng)CPU用輸出指令向用輸出指令向8259A發(fā)發(fā)一般中斷中斷結(jié)束命令一般中斷中斷結(jié)束命令OCW2時(shí),時(shí),8259A才會(huì)使中斷響應(yīng)寄存器才會(huì)使中斷響應(yīng)寄存器ISR中優(yōu)先級(jí)中優(yōu)先級(jí)別最高的位復(fù)位。

46、別最高的位復(fù)位。(3).特殊的中斷結(jié)束方式特殊的中斷結(jié)束方式在特殊全嵌套模式下,系統(tǒng)無法確定哪一級(jí)中斷為最在特殊全嵌套模式下,系統(tǒng)無法確定哪一級(jí)中斷為最后相應(yīng)和處理的中斷,也就是說,后相應(yīng)和處理的中斷,也就是說,CPU無法確定當(dāng)前無法確定當(dāng)前所處理的是哪級(jí)中斷,這時(shí)就要采用特殊的中斷結(jié)束所處理的是哪級(jí)中斷,這時(shí)就要采用特殊的中斷結(jié)束方式。方式。特殊的中斷結(jié)束方式是指在特殊的中斷結(jié)束方式是指在CPU結(jié)束中斷處理之后,結(jié)束中斷處理之后,向向8259A發(fā)送一個(gè)特殊的發(fā)送一個(gè)特殊的EOI中斷結(jié)束命令,這個(gè)特殊中斷結(jié)束命令,這個(gè)特殊的中斷結(jié)束的中斷結(jié)束EOI命令,命令,明確指出了中斷響應(yīng)寄存器明確指出了

47、中斷響應(yīng)寄存器ISR中需要復(fù)位的位中需要復(fù)位的位。這里,我們還要指出一點(diǎn),在級(jí)聯(lián)方式下,一般不用這里,我們還要指出一點(diǎn),在級(jí)聯(lián)方式下,一般不用自動(dòng)中斷結(jié)束方式,而需要用非自動(dòng)結(jié)束中斷方式,自動(dòng)中斷結(jié)束方式,而需要用非自動(dòng)結(jié)束中斷方式,一個(gè)中斷處理程序結(jié)束時(shí),都必須發(fā)兩個(gè)中斷結(jié)束一個(gè)中斷處理程序結(jié)束時(shí),都必須發(fā)兩個(gè)中斷結(jié)束EOI命令,一個(gè)發(fā)往主片,一個(gè)發(fā)往從片。命令,一個(gè)發(fā)往主片,一個(gè)發(fā)往從片。 4.4.系統(tǒng)總線的連接方式系統(tǒng)總線的連接方式 按照按照8259A8259A與系統(tǒng)總線的連接方式來分,有下與系統(tǒng)總線的連接方式來分,有下列兩種方式:列兩種方式:(1).(1).緩沖方式緩沖方式在多片在多片

48、8259A級(jí)連的大系統(tǒng)中,級(jí)連的大系統(tǒng)中,8259A通過外部總線通過外部總線驅(qū)動(dòng)器和數(shù)據(jù)總線相連,這就是緩沖方式。在緩沖方驅(qū)動(dòng)器和數(shù)據(jù)總線相連,這就是緩沖方式。在緩沖方式下,式下,8259的輸出信號(hào)作為緩沖器的啟動(dòng)信號(hào),用來的輸出信號(hào)作為緩沖器的啟動(dòng)信號(hào),用來啟動(dòng)總線驅(qū)動(dòng)器,在啟動(dòng)總線驅(qū)動(dòng)器,在8259A與與CPU之間進(jìn)行信息交換。之間進(jìn)行信息交換。(2).非緩沖方式非緩沖方式當(dāng)系統(tǒng)中只有一片或幾片當(dāng)系統(tǒng)中只有一片或幾片8259A芯片時(shí),可以將數(shù)據(jù)芯片時(shí),可以將數(shù)據(jù)總線直接與系統(tǒng)數(shù)據(jù)總線相連,這時(shí)總線直接與系統(tǒng)數(shù)據(jù)總線相連,這時(shí)8259A處于非緩處于非緩沖方式下。在這種方式下,沖方式下。在這種

49、方式下,8259A的作為輸入端設(shè)置,的作為輸入端設(shè)置,主片應(yīng)接高電平,從片應(yīng)接低電平。主片應(yīng)接高電平,從片應(yīng)接低電平。 5、引入中斷請(qǐng)求的方式、引入中斷請(qǐng)求的方式 按照引入中斷請(qǐng)求的方式,按照引入中斷請(qǐng)求的方式,8259A有下列幾種工有下列幾種工作方式:作方式: (1).邊沿觸發(fā)方式邊沿觸發(fā)方式8259A將中斷請(qǐng)求輸入端出現(xiàn)的上升沿,作為中斷請(qǐng)將中斷請(qǐng)求輸入端出現(xiàn)的上升沿,作為中斷請(qǐng)求信號(hào),上升沿后求信號(hào),上升沿后 相應(yīng)引腳,可以一直保持高電平。相應(yīng)引腳,可以一直保持高電平。 (2).電平觸發(fā)方式電平觸發(fā)方式 8259A將中斷請(qǐng)求輸入端出現(xiàn)的高電平作為中斷請(qǐng)求將中斷請(qǐng)求輸入端出現(xiàn)的高電平作為中

50、斷請(qǐng)求信號(hào),在這種方式下,必須注意:中斷響應(yīng)之后,高信號(hào),在這種方式下,必須注意:中斷響應(yīng)之后,高電平必須及時(shí)撤除,否則,在電平必須及時(shí)撤除,否則,在CPU響應(yīng)中斷,開中斷響應(yīng)中斷,開中斷之后,會(huì)引起第二次不應(yīng)該有的中斷。之后,會(huì)引起第二次不應(yīng)該有的中斷。 (3).).中斷查詢方式中斷查詢方式當(dāng)系統(tǒng)中的中斷源很多,超過當(dāng)系統(tǒng)中的中斷源很多,超過64個(gè)時(shí),則可以使個(gè)時(shí),則可以使8259A工作在查詢方式下,中斷查詢方式的特點(diǎn)是:工作在查詢方式下,中斷查詢方式的特點(diǎn)是:中斷源仍往中斷源仍往8259A發(fā)中斷請(qǐng)求,但發(fā)中斷請(qǐng)求,但8259A卻不使用卻不使用INT信號(hào)向信號(hào)向CPU發(fā)中斷請(qǐng)求信號(hào)。發(fā)中斷請(qǐng)

51、求信號(hào)。CPU內(nèi)部的中斷允許標(biāo)志復(fù)位,所以內(nèi)部的中斷允許標(biāo)志復(fù)位,所以CPU對(duì)對(duì)INT引腳上引腳上出現(xiàn)的中斷請(qǐng)求呈禁止?fàn)顟B(tài)。出現(xiàn)的中斷請(qǐng)求呈禁止?fàn)顟B(tài)。CPU 用軟件查詢的方法來確定中斷源,從而實(shí)現(xiàn)對(duì)設(shè)用軟件查詢的方法來確定中斷源,從而實(shí)現(xiàn)對(duì)設(shè)備的中斷服務(wù),可見,中斷查詢方式,既有中斷的特備的中斷服務(wù),可見,中斷查詢方式,既有中斷的特點(diǎn),又有查詢的特點(diǎn),從外設(shè)的角度來看,是靠中斷點(diǎn),又有查詢的特點(diǎn),從外設(shè)的角度來看,是靠中斷的方式來請(qǐng)求服務(wù),但從的方式來請(qǐng)求服務(wù),但從CPU的角度來看,是用查詢的角度來看,是用查詢方式來確定發(fā)中斷請(qǐng)求的中斷源。方式來確定發(fā)中斷請(qǐng)求的中斷源。查詢是通過查詢是通過CP

52、U向向8259A發(fā)查詢命令發(fā)查詢命令OCW3來實(shí)現(xiàn)的。來實(shí)現(xiàn)的。四、初始化命令字和操作命令字四、初始化命令字和操作命令字8259根據(jù)收到的根據(jù)收到的CPU的命令進(jìn)行工作,奇命令的命令進(jìn)行工作,奇命令分為兩類:分為兩類:初始化命令字(預(yù)置命令字初始化命令字(預(yù)置命令字ICW):):8259A在在進(jìn)入操作之前,必須由預(yù)置命令字來使它處于進(jìn)入操作之前,必須由預(yù)置命令字來使它處于初始狀態(tài)。初始狀態(tài)。操作命令字操作命令字OCW:在在8259初始化之后,來控初始化之后,來控制制8259A執(zhí)行不同的操作方式。其可在初始化執(zhí)行不同的操作方式。其可在初始化之后的任何時(shí)刻寫入之后的任何時(shí)刻寫入8259A。(一)初

53、始化命令字(一)初始化命令字(4 4個(gè))個(gè))開機(jī)時(shí),由初始化程序按一定的順序?qū)懭腴_機(jī)時(shí),由初始化程序按一定的順序?qū)懭朐O(shè)設(shè)8259有兩個(gè)地址:偶地址、奇地址有兩個(gè)地址:偶地址、奇地址1 1、ICW1ICW1:芯片控制命令字,偶地址:芯片控制命令字,偶地址D7D5:8086不用,隨機(jī)不用,隨機(jī)D4:總是:總是1,與,與A00結(jié)合,表示結(jié)合,表示ICW1D3:LTIM設(shè)置中斷請(qǐng)求的方式設(shè)置中斷請(qǐng)求的方式 LTIM0,邊沿觸發(fā) LTIM1,電平觸發(fā)D7D6D5D4D3D2D1D0XXX1LTIMADISNGLIC4A00D2:ADI 8086不用不用D1:SNGL決定本片是否級(jí)聯(lián)決定本片是否級(jí)聯(lián) D1

54、1,只有一片8259A D10,多片D0:IC4表明后面是否使用表明后面是否使用ICW4 D01,用ICW4 D00,不用注:注:16位系統(tǒng)必須使用位系統(tǒng)必須使用ICW4,所以對(duì)于,所以對(duì)于8086、8088常見的命令字為常見的命令字為00010011B,即,即13H2 2、ICW2ICW2設(shè)置中斷類型碼,奇地址設(shè)置中斷類型碼,奇地址D7D6D5D4D3D2D1D0T7T6T5T4T3XXXA01中斷類型碼的高5位000 IR0001 IR1111 IR7中斷類型碼的高中斷類型碼的高5 5位由用戶在位由用戶在3232255255的范圍內(nèi)任選,的范圍內(nèi)任選,低低3 3位由引腳區(qū)別自動(dòng)插入。即高位

55、由引腳區(qū)別自動(dòng)插入。即高5 5位可填,低位可填,低3 3位自動(dòng)位自動(dòng)生成。生成。例:例:00111000B,則:則:IR038H IR139H IR240H IR73FH3 3、ICW3ICW3,主從片命令字,奇端口,主從片命令字,奇端口當(dāng)系統(tǒng)有多片級(jí)聯(lián)時(shí),有意義。當(dāng)系統(tǒng)有多片級(jí)聯(lián)時(shí),有意義。ICW1 D10時(shí)要時(shí)要設(shè),否則不必設(shè)。而且主從片不同。設(shè),否則不必設(shè)。而且主從片不同。主片主片D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0A011,表示本引腳上連,表示本引腳上連1從片從片0,表示本引腳上未連從片,表示本引腳上未連從片從片從片D7D6D5D4D3D2D

56、1D0ID2ID1ID0A01不用,一般寫不用,一般寫0作為從片的標(biāo)識(shí)碼,作為從片的標(biāo)識(shí)碼,表示連主片的哪一個(gè)表示連主片的哪一個(gè)引腳引腳實(shí)際操作時(shí),主片從實(shí)際操作時(shí),主片從CAS0CAS0CAS2CAS2發(fā)出申請(qǐng)中斷的發(fā)出申請(qǐng)中斷的引腳號(hào)碼,個(gè)從片均接收,與自己的引腳號(hào)碼,個(gè)從片均接收,與自己的ID0ID0ID2ID2對(duì)對(duì)照,相同則送出中斷類型碼。照,相同則送出中斷類型碼。4 4、ICW4ICW4方式控制命令字,奇端口方式控制命令字,奇端口ICW1 D01時(shí)才設(shè),時(shí)才設(shè),8086系統(tǒng)必須使用系統(tǒng)必須使用D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIPM A01標(biāo)識(shí)碼D4(S

57、FNM):):1 特殊全嵌套方式,主從結(jié)構(gòu)時(shí)使用特殊全嵌套方式,主從結(jié)構(gòu)時(shí)使用 0 非特殊的全嵌套方式非特殊的全嵌套方式D3(BUF):):1 緩沖方式,緩沖方式,EN*0 啟動(dòng)數(shù)據(jù)總線啟動(dòng)數(shù)據(jù)總線0 非緩沖方式非緩沖方式D2(M/S):D31時(shí),時(shí),D2有意義有意義 D31,D21,表本片是主片 D20,表本片是從片D1(AEOL):):1 自動(dòng)結(jié)束方式自動(dòng)結(jié)束方式 0 非自動(dòng)結(jié)束方式,因此需非自動(dòng)結(jié)束方式,因此需要中斷結(jié)束命令。要中斷結(jié)束命令。D0( PM ):):1,用于,用于8086/8088系統(tǒng)系統(tǒng) 0,用于,用于8080/8085系統(tǒng)系統(tǒng)8259初始化流程初始化流程用用ICW1設(shè)置

58、設(shè)置是否級(jí)聯(lián)是否級(jí)聯(lián)請(qǐng)求格式信號(hào)請(qǐng)求格式信號(hào)是否需要設(shè)置是否需要設(shè)置ICW4用用ICW2設(shè)置中斷類型碼設(shè)置中斷類型碼是否為級(jí)聯(lián)方式本片設(shè)為主片嗎?設(shè)置設(shè)置ICW3,各位,各位對(duì)應(yīng)對(duì)應(yīng)IR0IR7設(shè)置設(shè)置ICW3,高,高5位位為為0,低,低3位為標(biāo)識(shí)碼位為標(biāo)識(shí)碼需要用到ICW4嗎?用ICW4設(shè)置是否為特殊全嵌套方式是否為特殊全嵌套方式是否為緩沖方式是否為緩沖方式是否為自動(dòng)結(jié)束中斷方式是否為自動(dòng)結(jié)束中斷方式是否為是否為16位系統(tǒng)位系統(tǒng)結(jié)束,進(jìn)行中斷服務(wù)NYNYNY注意注意“偶地址低,奇地址高,占用兩個(gè)連續(xù)的地址或偶地址低,奇地址高,占用兩個(gè)連續(xù)的地址或兩個(gè)連續(xù)的偶地址。兩個(gè)連續(xù)的偶地址。ICW1I

59、CW4的順序不能亂的順序不能亂ICW3、ICW4可省可省級(jí)聯(lián)時(shí),級(jí)聯(lián)時(shí),ICW3主從片的意義不同,地址不同,主從片的意義不同,地址不同,一般先寫主片,后些從片。一般先寫主片,后些從片。例例1,設(shè)某,設(shè)某8259A的端口地址的端口地址80H,82H,分析下列命令。分析下列命令。MOV AL, 13HOUT 80H,AL;設(shè);設(shè)ICW1MOV AL, 18HOUT 82H,AL;設(shè);設(shè)ICW2,中斷類型碼,中斷類型碼MOV AL, 1DHOUT 82H,AL;設(shè);設(shè)ICW4,00001101常用的常用的ICW4,01H。(二)操作命令字,(二)操作命令字,3個(gè)個(gè)8259A用初始化命令字命令編程后,

60、就進(jìn)入工用初始化命令字命令編程后,就進(jìn)入工作狀態(tài),準(zhǔn)備好接收輸入的中斷請(qǐng)求信號(hào)。在作狀態(tài),準(zhǔn)備好接收輸入的中斷請(qǐng)求信號(hào)。在工作期間,可以通過操作命令字來使它按不同工作期間,可以通過操作命令字來使它按不同的方式工作。因此可以在任何時(shí)候以任意順序的方式工作。因此可以在任何時(shí)候以任意順序輸出。輸出。1、OCW1中斷屏蔽命令字,奇地址中斷屏蔽命令字,奇地址D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1M0A01Mi1,屏蔽本位請(qǐng)求,屏蔽本位請(qǐng)求Mi0,允許本位請(qǐng)求,允許本位請(qǐng)求2、OCW2設(shè)置優(yōu)先級(jí)循環(huán)及結(jié)束中斷方式命令字,設(shè)置優(yōu)先級(jí)循環(huán)及結(jié)束中斷方式命令字,偶地址偶地址D7D6D5D4

溫馨提示

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