第6章輸入輸出與中斷ppt課件_第1頁(yè)
第6章輸入輸出與中斷ppt課件_第2頁(yè)
第6章輸入輸出與中斷ppt課件_第3頁(yè)
第6章輸入輸出與中斷ppt課件_第4頁(yè)
第6章輸入輸出與中斷ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、輸入輸入/輸出接口概述輸出接口概述6.1CPU與外設(shè)之間的數(shù)據(jù)傳送方式與外設(shè)之間的數(shù)據(jù)傳送方式6.2中斷技術(shù)中斷技術(shù)6.3CPUCPU和外設(shè)之間必須要設(shè)置輸入和外設(shè)之間必須要設(shè)置輸入/ /輸出接口輸出接口(I/O(I/O接接口口) ),作為,作為CPUCPU與外設(shè)進(jìn)行信息交換的橋梁。與外設(shè)進(jìn)行信息交換的橋梁。 接口是一組電路,是接口是一組電路,是CPU與輸入輸出設(shè)備等外設(shè)之與輸入輸出設(shè)備等外設(shè)之間協(xié)調(diào)動(dòng)作的控制電路。間協(xié)調(diào)動(dòng)作的控制電路。I/O地址譯碼與設(shè)備選擇地址譯碼與設(shè)備選擇(1)信息的輸入信息的輸入/輸出輸出(2)命令、數(shù)據(jù)和狀態(tài)的緩沖與鎖存命令、數(shù)據(jù)和狀態(tài)的緩沖與鎖存(3)信息轉(zhuǎn)換信息

2、轉(zhuǎn)換(4) 所有外設(shè)都通過(guò)I/O接口掛接在系統(tǒng)總線上,在同一時(shí)刻,總線只允許一個(gè)外設(shè)與CPU進(jìn)行數(shù)據(jù)傳送。通過(guò)I/O接口,CPU可以從外部設(shè)備輸入各種信息,也可將處理結(jié)果輸出到外設(shè);CPU可以通過(guò)向I/O接口寫(xiě)入命令字來(lái)控制I/O接口的工作,還可以隨時(shí)監(jiān)測(cè)與管理I/O接口和外設(shè)的工作狀態(tài);I/O接口還可以通過(guò)接口向CPU發(fā)出中斷請(qǐng)求。因?yàn)镃PU與外設(shè)之間的時(shí)序和速度差異很大,為了能夠確保計(jì)算機(jī)和外設(shè)之間可靠地進(jìn)行信息傳送,要求接口電路應(yīng)具有信息緩沖能力。接口不僅應(yīng)緩存暫時(shí)存留CPU送給外設(shè)的信息,也要緩存暫時(shí)存留外設(shè)送給CPU的信息。以實(shí)現(xiàn)CPU與外設(shè)之間信息交換的同步。 I/O接口還要實(shí)現(xiàn)信

3、息格式變換、電平轉(zhuǎn)換、碼制轉(zhuǎn)換、傳送管理以及聯(lián)絡(luò)控制等功能。 CPU與與I/O設(shè)備之間傳輸?shù)男畔⒖煞譃橐韵氯N:設(shè)備之間傳輸?shù)男畔⒖煞譃橐韵氯N:(1 1數(shù)據(jù)信息數(shù)據(jù)信息 CPUCPU和外設(shè)交換的基本信息就是數(shù)據(jù),分為數(shù)字量、和外設(shè)交換的基本信息就是數(shù)據(jù),分為數(shù)字量、模擬量、開(kāi)關(guān)量。模擬量、開(kāi)關(guān)量。(2 2狀態(tài)信息狀態(tài)信息 狀態(tài)信息反映了當(dāng)前外設(shè)所處的工作狀態(tài),是外狀態(tài)信息反映了當(dāng)前外設(shè)所處的工作狀態(tài),是外設(shè)發(fā)給設(shè)發(fā)給CPUCPU的用來(lái)協(xié)調(diào)兩者之間的操作。如的用來(lái)協(xié)調(diào)兩者之間的操作。如READYREADY、BUSYBUSY。(3 3控制信息控制信息 控制信息是控制信息是CPUCPU發(fā)給外設(shè)的,

4、以控制外設(shè)的工作。發(fā)給外設(shè)的,以控制外設(shè)的工作。如外設(shè)的啟動(dòng)信號(hào)和停止信號(hào)。如外設(shè)的啟動(dòng)信號(hào)和停止信號(hào)。數(shù)據(jù)信息、狀態(tài)信息和控制信息是屬于不同性質(zhì)的數(shù)據(jù)信息、狀態(tài)信息和控制信息是屬于不同性質(zhì)的信息,需要分別傳送。信息,需要分別傳送。 一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的I/OI/O接口內(nèi)部包含:數(shù)據(jù)端口、狀態(tài)和接口內(nèi)部包含:數(shù)據(jù)端口、狀態(tài)和控制端口??刂贫丝凇 CPU CPU通過(guò)數(shù)據(jù)端口從外設(shè)讀入數(shù)據(jù)或向外設(shè)輸通過(guò)數(shù)據(jù)端口從外設(shè)讀入數(shù)據(jù)或向外設(shè)輸出數(shù)據(jù)出數(shù)據(jù)n 從狀態(tài)端口讀入設(shè)備的當(dāng)前狀態(tài)從狀態(tài)端口讀入設(shè)備的當(dāng)前狀態(tài)n 通過(guò)控制端口向外設(shè)發(fā)出控制命令通過(guò)控制端口向外設(shè)發(fā)出控制命令n 一個(gè)一個(gè)I/OI/O接口

5、可能僅包含其中的一類(lèi)或兩類(lèi)端接口可能僅包含其中的一類(lèi)或兩類(lèi)端口,當(dāng)然也可能包含全部三類(lèi)端口。口,當(dāng)然也可能包含全部三類(lèi)端口。 I/O I/O接口通常設(shè)置有若干個(gè)寄存器,用來(lái)暫存接口通常設(shè)置有若干個(gè)寄存器,用來(lái)暫存CPUCPU和外設(shè)和外設(shè)之間傳輸?shù)臄?shù)據(jù)、狀態(tài)和控制信息,這些接口內(nèi)部的寄存器之間傳輸?shù)臄?shù)據(jù)、狀態(tài)和控制信息,這些接口內(nèi)部的寄存器通常稱(chēng)為端口,分別為數(shù)據(jù)端口、狀態(tài)端口、控制端口。每通常稱(chēng)為端口,分別為數(shù)據(jù)端口、狀態(tài)端口、控制端口。每個(gè)端口有一個(gè)獨(dú)立的地址,個(gè)端口有一個(gè)獨(dú)立的地址,CPUCPU可通過(guò)端口地址來(lái)讀可通過(guò)端口地址來(lái)讀/ /寫(xiě)它們。寫(xiě)它們。 在微機(jī)系統(tǒng)中,在微機(jī)系統(tǒng)中,CPU對(duì)

6、外設(shè)的訪問(wèn)實(shí)際上是對(duì)外設(shè)的訪問(wèn)實(shí)際上是對(duì)外設(shè)接口電路中相應(yīng)的對(duì)外設(shè)接口電路中相應(yīng)的I/O端口進(jìn)行訪問(wèn),端口進(jìn)行訪問(wèn),CPU用相應(yīng)的讀寫(xiě)指令來(lái)對(duì)端口進(jìn)行讀或?qū)?。用相?yīng)的讀寫(xiě)指令來(lái)對(duì)端口進(jìn)行讀或?qū)?。因此,?duì)這些端口必須指定相應(yīng)的地址碼,因此,對(duì)這些端口必須指定相應(yīng)的地址碼,這就是這就是I/O端口的編址。端口的編址。I/O端口的編址通常有兩種不同的方式:端口的編址通常有兩種不同的方式:統(tǒng)一編址統(tǒng)一編址1獨(dú)立編址獨(dú)立編址2又稱(chēng)為存儲(chǔ)器映射編址方式,即把每又稱(chēng)為存儲(chǔ)器映射編址方式,即把每個(gè)個(gè)I/O端口都當(dāng)作一個(gè)存儲(chǔ)單元看待,端口都當(dāng)作一個(gè)存儲(chǔ)單元看待,按照存儲(chǔ)單元的編址方式統(tǒng)一安排端按照存儲(chǔ)單元的編址方

7、式統(tǒng)一安排端口的地址??诘牡刂?。優(yōu)點(diǎn):可以用訪問(wèn)內(nèi)存的方法來(lái)訪問(wèn)優(yōu)點(diǎn):可以用訪問(wèn)內(nèi)存的方法來(lái)訪問(wèn)I/O端口。由于訪問(wèn)內(nèi)存的指令種類(lèi)端口。由于訪問(wèn)內(nèi)存的指令種類(lèi)豐富、尋址方式多樣,因此這種編址豐富、尋址方式多樣,因此這種編址方式為訪問(wèn)外設(shè)帶來(lái)了很大的靈活性。方式為訪問(wèn)外設(shè)帶來(lái)了很大的靈活性。同時(shí),同時(shí),I/O控制信號(hào)也可與存儲(chǔ)器的控制信號(hào)也可與存儲(chǔ)器的控制信號(hào)共用,從而給應(yīng)用帶來(lái)了很控制信號(hào)共用,從而給應(yīng)用帶來(lái)了很大的方便。大的方便。缺陷:外設(shè)占用了一部分內(nèi)存地址空間,這就減少了內(nèi)存可用缺陷:外設(shè)占用了一部分內(nèi)存地址空間,這就減少了內(nèi)存可用的地址范圍。此外從指令上不易區(qū)分當(dāng)前是對(duì)內(nèi)存進(jìn)行操作還的

8、地址范圍。此外從指令上不易區(qū)分當(dāng)前是對(duì)內(nèi)存進(jìn)行操作還是對(duì)外設(shè)進(jìn)行操作。是對(duì)外設(shè)進(jìn)行操作。 Intel MCS-51等系列的單片微型計(jì)算機(jī)采用統(tǒng)一編址方式。等系列的單片微型計(jì)算機(jī)采用統(tǒng)一編址方式。內(nèi)存地址空間和外設(shè)地址空間是相互獨(dú)立的。內(nèi)存地址空間和外設(shè)地址空間是相互獨(dú)立的。8086/80888086/8088系統(tǒng)的內(nèi)存地址范圍為系統(tǒng)的內(nèi)存地址范圍為00000H0FFFFFH00000H0FFFFFH,共,共1M1M空空間,而外設(shè)端口的地址范圍為間,而外設(shè)端口的地址范圍為0000H0FFFFH0000H0FFFFH,共,共64K64K空間。空間。這兩個(gè)地址空間相互獨(dú)立,互不影響。這兩個(gè)地址空間相

9、互獨(dú)立,互不影響。CPUCPU在尋址內(nèi)存和外設(shè)時(shí),使用不同的控制信號(hào)來(lái)區(qū)分當(dāng)前在尋址內(nèi)存和外設(shè)時(shí),使用不同的控制信號(hào)來(lái)區(qū)分當(dāng)前是對(duì)內(nèi)存操作還是對(duì)是對(duì)內(nèi)存操作還是對(duì)I/OI/O端口操作。例如端口操作。例如80868086的的M/IO#M/IO#。指令系統(tǒng)中單獨(dú)設(shè)置有專(zhuān)用的指令系統(tǒng)中單獨(dú)設(shè)置有專(zhuān)用的I/OI/O指令。指令。優(yōu)點(diǎn):將輸入輸出指令和訪問(wèn)存儲(chǔ)器的指令明顯區(qū)分開(kāi),使優(yōu)點(diǎn):將輸入輸出指令和訪問(wèn)存儲(chǔ)器的指令明顯區(qū)分開(kāi),使程序清晰,可讀性好,而且程序清晰,可讀性好,而且I/OI/O指令長(zhǎng)度短,執(zhí)行的速度快,指令長(zhǎng)度短,執(zhí)行的速度快,也不占用內(nèi)存空間;也不占用內(nèi)存空間;I/OI/O地址譯碼電路較簡(jiǎn)

10、單,地址譯碼電路較簡(jiǎn)單,缺陷:必須有專(zhuān)門(mén)的缺陷:必須有專(zhuān)門(mén)的ININ和和OUTOUT指令,這些指令的功能沒(méi)有訪指令,這些指令的功能沒(méi)有訪問(wèn)存儲(chǔ)器指令強(qiáng),也增加了指令系統(tǒng)的規(guī)模。另外,問(wèn)存儲(chǔ)器指令強(qiáng),也增加了指令系統(tǒng)的規(guī)模。另外,CPUCPU要要能提供區(qū)分存儲(chǔ)器和能提供區(qū)分存儲(chǔ)器和I/OI/O的控制信號(hào)。的控制信號(hào)。 無(wú)條件方式無(wú)條件方式6.2.1查詢方式查詢方式6.2.2中斷方式中斷方式6.2.3DMA方式方式.1 6.2.1 無(wú)條件傳送方式無(wú)條件傳送方式 無(wú)條件傳送方式主要用于外部控制過(guò)程的各種動(dòng)作是固定的、且是已知的,控制的對(duì)象是一些簡(jiǎn)單的、隨時(shí)“準(zhǔn)備好的外設(shè)。也就是說(shuō),在

11、這些設(shè)備工作時(shí),隨時(shí)都可以接收CPU輸出的數(shù)據(jù),或者它們的數(shù)據(jù)隨時(shí)都可以被CPU讀出。 它不需要查詢外設(shè)狀態(tài),直接使用IO指令與外設(shè)實(shí)現(xiàn)同步數(shù)據(jù)交換。采用這種控制方式的接口電路和控制程序都比較簡(jiǎn)單。它一般應(yīng)用在工作速度慢,接口電路較簡(jiǎn)單的外設(shè),如發(fā)光二極管、開(kāi)關(guān)等,適合采用這種方式。6.2.2 6.2.2 條件傳輸方式條件傳輸方式程序查詢傳送方式程序查詢傳送方式 在執(zhí)行輸入輸出前,要先查詢接在執(zhí)行輸入輸出前,要先查詢接口中狀態(tài)寄存器的狀態(tài)??谥袪顟B(tài)寄存器的狀態(tài)。 輸入時(shí),狀態(tài)寄存器的狀態(tài)指示要輸入輸入時(shí),狀態(tài)寄存器的狀態(tài)指示要輸入的數(shù)據(jù)是否已經(jīng)準(zhǔn)備就緒;的數(shù)據(jù)是否已經(jīng)準(zhǔn)備就緒; 輸出時(shí),狀態(tài)寄

12、存器的狀態(tài)指示輸出設(shè)輸出時(shí),狀態(tài)寄存器的狀態(tài)指示輸出設(shè)備是否空閑。備是否空閑。查詢傳輸方式查詢傳輸方式(1)CPU(1)CPU從狀態(tài)端口中讀取從狀態(tài)端口中讀取狀態(tài)字;狀態(tài)字;(2)CPU(2)CPU檢測(cè)狀態(tài)字的相應(yīng)檢測(cè)狀態(tài)字的相應(yīng)位是否滿足位是否滿足“就緒就緒條條件,如果不滿足,則轉(zhuǎn)件,如果不滿足,則轉(zhuǎn)(1)(1),再讀取狀態(tài);,再讀取狀態(tài);(3)(3)如狀態(tài)位表明外設(shè)已如狀態(tài)位表明外設(shè)已處于處于“就緒就緒形狀,則形狀,則通過(guò)數(shù)據(jù)端口傳輸數(shù)據(jù)。通過(guò)數(shù)據(jù)端口傳輸數(shù)據(jù)。外設(shè)準(zhǔn)備好?傳送數(shù)據(jù)讀取外設(shè)狀態(tài)YN特點(diǎn):利用查詢方式進(jìn)行數(shù)據(jù)輸入輸出的過(guò)程中,特點(diǎn):利用查詢方式進(jìn)行數(shù)據(jù)輸入輸出的過(guò)程中,CPU

13、將大量時(shí)間耗費(fèi)在讀取和檢測(cè)外設(shè)狀態(tài)上,真將大量時(shí)間耗費(fèi)在讀取和檢測(cè)外設(shè)狀態(tài)上,真正用于傳送數(shù)據(jù)的時(shí)間很少,這樣大大降低了正用于傳送數(shù)據(jù)的時(shí)間很少,這樣大大降低了CPU的效率。的效率。例題:例題: 某輸入接口的狀態(tài)端口地址為某輸入接口的狀態(tài)端口地址為86H,數(shù)據(jù),數(shù)據(jù)端口地址為端口地址為87H,外部輸入信息準(zhǔn)備好狀態(tài)標(biāo),外部輸入信息準(zhǔn)備好狀態(tài)標(biāo)志為志為D71D7=0表示外設(shè)未準(zhǔn)備好)用表示外設(shè)未準(zhǔn)備好)用查詢方式寫(xiě)出從外設(shè)讀入查詢方式寫(xiě)出從外設(shè)讀入100字節(jié)數(shù)據(jù)并存于字節(jié)數(shù)據(jù)并存于內(nèi)存內(nèi)存BUFFER開(kāi)始的單元中。開(kāi)始的單元中。 LEA BX , BUFFER ;將BUFFER偏移地址送BX M

14、OV CX , 100 ; 字節(jié)數(shù)ABC: IN AL, 86H ; 讀狀態(tài)端口 (目的讀狀態(tài)位) TEXST AL, 80H ;測(cè)試D7位是否為1準(zhǔn)備好) JZ ABC ;若D7=0未準(zhǔn)備好,循環(huán)檢測(cè) IN AL , 87H ;準(zhǔn)備好,讀數(shù)據(jù)端口 MOV BX, AL ; 存到內(nèi)存BUFFER緩沖區(qū) INC BX ; 修改地址指針 LOOP ABC ; 未送完,繼續(xù)傳送格式:IN OPD,OPS功能:從端口(地址為n或在DX中)輸入位數(shù)據(jù)到AL或輸入16位數(shù)據(jù)到AX。IN AL,40H;從40H端口讀入一個(gè)字節(jié)送ALMOV DX,8F00H;將端口地址8F00H送DXIN AL,DX;從8F

15、00H端口讀入一個(gè)字節(jié)送AL 格式:OUT OPD,OPS功能:從AL輸出8位數(shù)據(jù)或從AX輸出16位數(shù)據(jù)到端口(地址為n或在DX中)。OUT 40H,AL;將AL內(nèi)容送40H端口MOV DX,8F00H;將端口地址8F00H送DXOUT DX,AL;將AL內(nèi)容送8F00H端口輸入輸入/輸出指令對(duì)標(biāo)志寄存器沒(méi)有影響。輸出指令對(duì)標(biāo)志寄存器沒(méi)有影響。端口地址大于端口地址大于255時(shí),必須用時(shí),必須用DX指定端口指定端口地址。地址。 在中斷傳輸方式下,當(dāng)輸入設(shè)備將數(shù)據(jù)準(zhǔn)備好或者輸出設(shè)在中斷傳輸方式下,當(dāng)輸入設(shè)備將數(shù)據(jù)準(zhǔn)備好或者輸出設(shè)備可以接收數(shù)據(jù)時(shí),便可以向備可以接收數(shù)據(jù)時(shí),便可以向CPUCPU發(fā)出中

16、斷請(qǐng)求,使發(fā)出中斷請(qǐng)求,使CPUCPU暫時(shí)停暫時(shí)停止執(zhí)行當(dāng)前程序,而去執(zhí)行一個(gè)數(shù)據(jù)輸入止執(zhí)行當(dāng)前程序,而去執(zhí)行一個(gè)數(shù)據(jù)輸入/ /輸出的中斷服務(wù)程輸出的中斷服務(wù)程序,與外設(shè)進(jìn)行數(shù)據(jù)傳輸操作,中斷程序執(zhí)行完后,序,與外設(shè)進(jìn)行數(shù)據(jù)傳輸操作,中斷程序執(zhí)行完后,CPUCPU又轉(zhuǎn)又轉(zhuǎn)回繼續(xù)執(zhí)行原來(lái)的程序。回繼續(xù)執(zhí)行原來(lái)的程序。 中斷方式的數(shù)據(jù)傳輸仍在程序的控制下執(zhí)行,也可稱(chēng)為程中斷方式的數(shù)據(jù)傳輸仍在程序的控制下執(zhí)行,也可稱(chēng)為程序中斷方式,適用于中、慢速外設(shè)的數(shù)據(jù)傳輸。序中斷方式,適用于中、慢速外設(shè)的數(shù)據(jù)傳輸。 利用中斷控制方式,利用中斷控制方式,CPUCPU不必花費(fèi)大量的時(shí)間去檢測(cè)不必花費(fèi)大量的時(shí)間去檢測(cè)

17、外設(shè)的狀態(tài),提高了外設(shè)的狀態(tài),提高了CPUCPU的效率。的效率。 在高速的外設(shè)或成塊交換數(shù)據(jù)的情況,采用程序在高速的外設(shè)或成塊交換數(shù)據(jù)的情況,采用程序控制方式進(jìn)行數(shù)據(jù)的傳輸,是無(wú)法滿足要求的。在這控制方式進(jìn)行數(shù)據(jù)的傳輸,是無(wú)法滿足要求的。在這種情況下,采用種情況下,采用DMA方式。方式。 DMA方式是在外設(shè)與內(nèi)存間建立起直接的通道,方式是在外設(shè)與內(nèi)存間建立起直接的通道,CPU不再直接參加外設(shè)和內(nèi)存間的數(shù)據(jù)傳輸。但系統(tǒng)不再直接參加外設(shè)和內(nèi)存間的數(shù)據(jù)傳輸。但系統(tǒng)需要進(jìn)行需要進(jìn)行DMA傳輸時(shí),將傳輸時(shí),將CPU對(duì)地址和數(shù)據(jù)及控制對(duì)地址和數(shù)據(jù)及控制線的管理權(quán)交由線的管理權(quán)交由DMA控制器進(jìn)行控制,當(dāng)完

18、成了一控制器進(jìn)行控制,當(dāng)完成了一次次DMA數(shù)據(jù)傳輸后,再將這個(gè)控制權(quán)還給數(shù)據(jù)傳輸后,再將這個(gè)控制權(quán)還給CPU,這,這些工作都是由硬件自動(dòng)實(shí)現(xiàn)的,并不需要程序進(jìn)行控些工作都是由硬件自動(dòng)實(shí)現(xiàn)的,并不需要程序進(jìn)行控制。制。 中斷概述中斷概述6.3.1中斷的處理過(guò)程中斷的處理過(guò)程6.3.28086/8088的中斷的中斷6.3.3中斷源及其分類(lèi)中斷源及其分類(lèi)1中斷系統(tǒng)及其功能中斷系統(tǒng)及其功能2中斷優(yōu)先級(jí)的確定中斷優(yōu)先級(jí)的確定3 CPU正在執(zhí)行某一段程序的過(guò)程中,如果外正在執(zhí)行某一段程序的過(guò)程中,如果外界或內(nèi)部發(fā)生了緊急事件,要求界或內(nèi)部發(fā)生了緊急事件,要求CPU暫停正暫停正在運(yùn)行的程序轉(zhuǎn)去執(zhí)行這個(gè)緊急事

19、件的處理在運(yùn)行的程序轉(zhuǎn)去執(zhí)行這個(gè)緊急事件的處理程序,待處理完后再回到被停止執(zhí)行程序的程序,待處理完后再回到被停止執(zhí)行程序的間斷點(diǎn),繼續(xù)執(zhí)行原來(lái)被打斷了的程序,這間斷點(diǎn),繼續(xù)執(zhí)行原來(lái)被打斷了的程序,這一過(guò)程稱(chēng)為中斷。一過(guò)程稱(chēng)為中斷。引起中斷的事件就稱(chēng)為中斷源。引起中斷的事件就稱(chēng)為中斷源。分為兩大類(lèi):分為兩大類(lèi):內(nèi)部中斷源:來(lái)自內(nèi)部中斷源:來(lái)自CPU內(nèi)部,如:內(nèi)部,如:CPU執(zhí)行指令時(shí)執(zhí)行指令時(shí)產(chǎn)生的異常、特殊操作引起的異常以及由程序員安產(chǎn)生的異常、特殊操作引起的異常以及由程序員安排在程序中的排在程序中的INT n軟件中斷指令。中斷的控制完軟件中斷指令。中斷的控制完全是在全是在CPU內(nèi)部實(shí)現(xiàn)的。內(nèi)

20、部實(shí)現(xiàn)的。外部中斷源:來(lái)自外部中斷源:來(lái)自CPU外部,如:如鍵盤(pán)、打印機(jī)、外部,如:如鍵盤(pán)、打印機(jī)、定時(shí)器時(shí)間到、電源掉電、硬件出錯(cuò)等。利用定時(shí)器時(shí)間到、電源掉電、硬件出錯(cuò)等。利用CPU的兩條中斷輸入信號(hào)線的兩條中斷輸入信號(hào)線INTR和和NMI來(lái)告訴來(lái)告訴CPU已已發(fā)生了中斷事件。發(fā)生了中斷事件。實(shí)現(xiàn)中斷響應(yīng)及返回實(shí)現(xiàn)中斷響應(yīng)及返回實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)高級(jí)中斷源能中斷低級(jí)的中斷處理高級(jí)中斷源能中斷低級(jí)的中斷處理中中斷斷請(qǐng)請(qǐng)求求執(zhí)執(zhí)行行中中斷斷服服務(wù)務(wù)程程序序中斷過(guò)程示意圖中斷過(guò)程示意圖斷點(diǎn):主程序中被斷點(diǎn):主程序中被暫停執(zhí)行的指令的暫停執(zhí)行的指令的地址稱(chēng)為斷點(diǎn)。地址稱(chēng)為斷點(diǎn)。執(zhí)行主程序

21、執(zhí)行主程序繼繼續(xù)續(xù)執(zhí)執(zhí)行行主主程程序序響應(yīng)中斷響應(yīng)中斷返返回回主主程程序序當(dāng)某個(gè)中斷源發(fā)出中斷請(qǐng)求時(shí),CPU能根據(jù)條件決定是否響應(yīng)該中斷請(qǐng)求。若允許響應(yīng),則CPU必須在執(zhí)行完現(xiàn)行指令后:保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)(即把斷點(diǎn)處的斷點(diǎn)地址和各寄存器的內(nèi)容與標(biāo)志位的狀態(tài)推入堆棧);轉(zhuǎn)到需要處理的中斷服務(wù)程序的入口;清除中斷請(qǐng)求觸發(fā)器。當(dāng)處理完中斷服務(wù)程序后,再恢復(fù)現(xiàn)場(chǎng)和斷點(diǎn)地址,使CPU返回?cái)帱c(diǎn),繼續(xù)執(zhí)行主程序。在實(shí)際系統(tǒng)中有多個(gè)中斷源時(shí),有可能出現(xiàn)兩個(gè)或兩個(gè)以上中斷源同時(shí)提出中斷請(qǐng)求的情況,而CPU同一時(shí)刻只能接受一個(gè)中斷申請(qǐng)。這樣就必須要設(shè)計(jì)者事先根據(jù)輕重緩急,給每個(gè)中斷源一個(gè)中斷優(yōu)先權(quán)。當(dāng)多個(gè)中斷源同時(shí)發(fā)

22、出中斷申請(qǐng)時(shí),CPU能找到優(yōu)先級(jí)別最高的中斷源,響應(yīng)它的中斷請(qǐng)求。在優(yōu)先權(quán)級(jí)別最高的中斷源處理了以后,再響應(yīng)級(jí)別較低的中斷源。 當(dāng)CPU響應(yīng)某一中斷源的請(qǐng)求,在進(jìn)行中斷處理時(shí),若有優(yōu)先級(jí)別更高的中斷源發(fā)出中斷申請(qǐng),則CPU要能中斷正在進(jìn)行中的中斷服務(wù)程序,保留這個(gè)程序的斷點(diǎn)和現(xiàn)場(chǎng)(類(lèi)似于子程序嵌套),響應(yīng)高級(jí)中斷,在高級(jí)中斷處理完以后,再繼續(xù)執(zhí)行被中斷的中斷服務(wù)程序。這就形成了中斷嵌套,如圖6.12所示。兩個(gè)中斷形成的是兩重中斷(或兩級(jí)嵌套),還可以進(jìn)行多重中斷(或多級(jí)嵌套)。 中斷請(qǐng)求中斷請(qǐng)求1中斷響應(yīng)中斷響應(yīng)2中斷處理中斷處理3外設(shè)需要CPU服務(wù)時(shí),首先要發(fā)出一個(gè)有效的中斷請(qǐng)求信號(hào)送到CP

23、U的中斷輸入端。中斷請(qǐng)求信號(hào)分為邊沿觸發(fā)和電平觸發(fā)。一般來(lái)說(shuō),CPU能夠即時(shí)予以響應(yīng)的中斷可以采用邊沿觸發(fā),而不能即時(shí)響應(yīng)的中斷則應(yīng)采用電平觸發(fā),否則中斷請(qǐng)求信號(hào)就會(huì)丟失。8088/8086CPU的NMI為邊沿觸發(fā),而INTR為電平觸發(fā)。為了保證產(chǎn)生的中斷能被CPU處理,INTR中斷請(qǐng)求信號(hào)應(yīng)保持到該請(qǐng)求被CPU響應(yīng)為止。CPU響應(yīng)后,INTR信號(hào)還應(yīng)及時(shí)撤除,以免造成多次響應(yīng)。 響應(yīng)中斷請(qǐng)求的響應(yīng)中斷請(qǐng)求的3 3個(gè)條件:個(gè)條件:(1)(1)一條指令執(zhí)行結(jié)束。一條指令執(zhí)行結(jié)束。 (2)CPU(2)CPU處于開(kāi)中斷狀態(tài)。處于開(kāi)中斷狀態(tài)。(3)(3)沒(méi)有總線請(qǐng)求。在復(fù)位沒(méi)有總線請(qǐng)求。在復(fù)位(RES

24、ET)(RESET)、總線保持、總線保持(HOLD)(HOLD)等總線等總線請(qǐng)求時(shí),請(qǐng)求時(shí),CPUCPU不工作,當(dāng)然就不能響應(yīng)中斷。不工作,當(dāng)然就不能響應(yīng)中斷。中斷響應(yīng)時(shí),中斷響應(yīng)時(shí),CPUCPU除了要向中斷源發(fā)出中斷響應(yīng)信號(hào)外,還除了要向中斷源發(fā)出中斷響應(yīng)信號(hào)外,還要自動(dòng)完成下述要自動(dòng)完成下述3 3項(xiàng)工作:項(xiàng)工作:(1)(1)關(guān)閉中斷。關(guān)閉中斷。CPUCPU響應(yīng)中斷時(shí),需立即關(guān)中斷響應(yīng)中斷時(shí),需立即關(guān)中斷( (使使IF=0)IF=0),以,以保證保護(hù)現(xiàn)場(chǎng)、斷點(diǎn)和獲取中斷入口地址等工作不受影響。保證保護(hù)現(xiàn)場(chǎng)、斷點(diǎn)和獲取中斷入口地址等工作不受影響。(2)(2)保護(hù)現(xiàn)場(chǎng)和斷點(diǎn)。將標(biāo)志寄存器保護(hù)現(xiàn)場(chǎng)

25、和斷點(diǎn)。將標(biāo)志寄存器FRFR、斷點(diǎn)的段基址、斷點(diǎn)的段基址(CS(CS值值) )和偏移地址和偏移地址(IP(IP值值) )壓入堆棧,以保證中斷結(jié)束后能正常返回壓入堆棧,以保證中斷結(jié)束后能正常返回被中斷的程序。被中斷的程序。(3)(3)獲得中斷服務(wù)程序入口,轉(zhuǎn)入中斷服務(wù)程序。獲得中斷服務(wù)程序入口,轉(zhuǎn)入中斷服務(wù)程序。 保護(hù)現(xiàn)場(chǎng)。保護(hù)現(xiàn)場(chǎng)是指把中斷服務(wù)程序中要用到的寄存器保護(hù)現(xiàn)場(chǎng)。保護(hù)現(xiàn)場(chǎng)是指把中斷服務(wù)程序中要用到的寄存器的原內(nèi)容壓入堆棧保存起來(lái)。的原內(nèi)容壓入堆棧保存起來(lái)。開(kāi)中斷。開(kāi)中斷。CPU響應(yīng)中斷時(shí)會(huì)自動(dòng)關(guān)閉中斷響應(yīng)中斷時(shí)會(huì)自動(dòng)關(guān)閉中斷(使使IF=0)。若進(jìn)入。若進(jìn)入中斷服務(wù)程序后允許中斷嵌套,

26、則需用指令開(kāi)中斷中斷服務(wù)程序后允許中斷嵌套,則需用指令開(kāi)中斷(使使IF=1)。執(zhí)行中斷處理程序。完成具體的中斷處理。執(zhí)行中斷處理程序。完成具體的中斷處理。關(guān)中斷。確保有效地恢復(fù)被中斷程序的現(xiàn)場(chǎng)。關(guān)中斷。確保有效地恢復(fù)被中斷程序的現(xiàn)場(chǎng)?;謴?fù)現(xiàn)場(chǎng)。就是把先前保護(hù)的現(xiàn)場(chǎng)進(jìn)行恢復(fù),也即把所保存恢復(fù)現(xiàn)場(chǎng)。就是把先前保護(hù)的現(xiàn)場(chǎng)進(jìn)行恢復(fù),也即把所保存的有關(guān)寄存器內(nèi)容按入棧的相反順序從堆棧中彈出,使這些的有關(guān)寄存器內(nèi)容按入棧的相反順序從堆棧中彈出,使這些寄存器恢復(fù)到中斷前的狀態(tài)。寄存器恢復(fù)到中斷前的狀態(tài)。開(kāi)中斷返回。其操作正好是開(kāi)中斷返回。其操作正好是CPU硬件在中斷響應(yīng)時(shí)自動(dòng)保護(hù)硬件在中斷響應(yīng)時(shí)自動(dòng)保護(hù)硬件

27、現(xiàn)場(chǎng)和斷點(diǎn)的逆過(guò)程,即硬件現(xiàn)場(chǎng)和斷點(diǎn)的逆過(guò)程,即CPU會(huì)自動(dòng)地將堆棧內(nèi)保存的會(huì)自動(dòng)地將堆棧內(nèi)保存的斷點(diǎn)信息和標(biāo)志信息彈出到斷點(diǎn)信息和標(biāo)志信息彈出到IP、CS和和FR中,保證被中斷的中,保證被中斷的程序從斷點(diǎn)處繼續(xù)往下執(zhí)行。程序從斷點(diǎn)處繼續(xù)往下執(zhí)行。8086/8088系統(tǒng)中給每種中斷都賦予一個(gè)中斷類(lèi)型碼(或稱(chēng)中斷號(hào)),編號(hào)為0255。CPU可根據(jù)中斷類(lèi)型碼的不同來(lái)識(shí)別不同的中斷源。 中斷類(lèi)型中斷類(lèi)型1中斷優(yōu)先級(jí)順序中斷優(yōu)先級(jí)順序2中斷向量表中斷向量表3中斷處理過(guò)程中斷處理過(guò)程48086/8088系統(tǒng)的中斷源:外部中斷:來(lái)自CPU外部?jī)?nèi)部中斷:來(lái)自CPU內(nèi)部 也稱(chēng)為硬件中斷,它是由外部硬件或外設(shè)接

28、口產(chǎn)生的。8086/8088CPU為外部設(shè)備提供了兩條中斷信號(hào)線NMI和INTR。非屏蔽中斷非屏蔽中斷可屏蔽中斷可屏蔽中斷由NMI引腳上出現(xiàn)的上升沿觸發(fā),它不受中斷允許標(biāo)志IF的控制,其中斷類(lèi)型碼固定為2。CPU接收到非屏蔽中斷請(qǐng)求信號(hào)后,會(huì)在執(zhí)行完當(dāng)前指令后立即響應(yīng)中斷請(qǐng)求而進(jìn)入相應(yīng)的中斷處理。非屏蔽中斷通常用來(lái)處理系統(tǒng)中出現(xiàn)的重大故障或緊急情況。從CPU的INTR端引入,高電平有效??善帘沃袛嗍苤袛嘣试S標(biāo)志位IF的控制,只有當(dāng)IF=1,CPU才會(huì)響應(yīng)INTR請(qǐng)求。如果IF=0,即使中斷源有中斷請(qǐng)求,CPU也不會(huì)響應(yīng)。在微型計(jì)算機(jī)中,外部設(shè)備的中斷請(qǐng)求是通過(guò)中斷控制器8259A來(lái)進(jìn)行統(tǒng)一管理

29、的,由8259A決定是否允許一個(gè)外設(shè)向CPU發(fā)出中斷請(qǐng)求。內(nèi)部中斷是CPU執(zhí)行了某些指令或者軟件對(duì)標(biāo)志寄存器中某個(gè)標(biāo)志位進(jìn)行設(shè)置而產(chǎn)生的,由于它與外部硬件電路完全無(wú)關(guān),故也稱(chēng)為軟件中斷。在8086/8088 CPU中,內(nèi)部中斷可分為5種類(lèi)型:除法出錯(cuò)中斷單步中斷斷點(diǎn)中斷溢出中斷中斷指令I(lǐng)NT n以上所述內(nèi)部中斷的類(lèi)型碼均是固定,除單步中斷外,其他的內(nèi)部中斷不受IF狀態(tài)標(biāo)志影響。在執(zhí)行除法指令時(shí),若發(fā)現(xiàn)除數(shù)為0或商超過(guò)了結(jié)果寄存器所能表示的最大范圍,則立即產(chǎn)生一個(gè)中斷類(lèi)型碼為0的中斷。 8086/8088 CPU的標(biāo)志寄存器中有一位陷阱標(biāo)志TF。CPU每執(zhí)行完一條指令都會(huì)檢查T(mén)F的狀態(tài)。若發(fā)現(xiàn)T

30、F=1,則CPU就產(chǎn)生中斷類(lèi)型碼為1的中斷,使CPU轉(zhuǎn)向單步中斷的處理程序。單步中斷廣泛地用于程序的調(diào)試。 8086/8088指令系統(tǒng)中有一條專(zhuān)用于設(shè)置斷點(diǎn)的指令I(lǐng)NT 3。CPU執(zhí)行該指令就會(huì)產(chǎn)生一個(gè)中斷類(lèi)型碼為3的中斷。INT 3指令是單字節(jié)指令,因而它能很方便地插入程序的任何地方,專(zhuān)門(mén)用于在程序中設(shè)置斷點(diǎn)來(lái)調(diào)試程序,它也稱(chēng)為斷點(diǎn)中斷,插入INT 3指令之處便是斷點(diǎn)。在斷點(diǎn)中斷服務(wù)程序中,可顯示有關(guān)的寄存器、存儲(chǔ)單元等內(nèi)容,以便程序員分析到斷點(diǎn)為止程序運(yùn)行是否正確。 若算術(shù)指令的執(zhí)行結(jié)果發(fā)生溢出(OF=1),則執(zhí)行INTO指令后立即產(chǎn)生一個(gè)中斷類(lèi)型碼為4的中斷。溢出中斷為程序員提供了處理運(yùn)

31、算溢出的手段,INTO指令通常和算術(shù)運(yùn)算指令配合起來(lái)使用。 INT n是用戶自定義的軟件中斷指令,CPU執(zhí)行中斷指令I(lǐng)NT n也會(huì)引起內(nèi)部中斷,其中斷類(lèi)型碼由指令中的n指定。80 x8680 x86微機(jī)可處理微機(jī)可處理256256個(gè)不同的中斷請(qǐng)求。個(gè)不同的中斷請(qǐng)求。80 x8680 x86將將256256個(gè)中斷統(tǒng)一編號(hào)為個(gè)中斷統(tǒng)一編號(hào)為02550255,稱(chēng)作中斷類(lèi),稱(chēng)作中斷類(lèi)型號(hào),中斷類(lèi)型號(hào)是中斷源的唯一標(biāo)識(shí)。型號(hào),中斷類(lèi)型號(hào)是中斷源的唯一標(biāo)識(shí)。在在80 x8680 x86中斷系統(tǒng)中,中斷響應(yīng)時(shí)自動(dòng)獲得中斷中斷系統(tǒng)中,中斷響應(yīng)時(shí)自動(dòng)獲得中斷類(lèi)型號(hào),并據(jù)此得到該中斷服務(wù)程序入口地址,類(lèi)型號(hào),并據(jù)

32、此得到該中斷服務(wù)程序入口地址,然后轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。然后轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。問(wèn)題問(wèn)題: :中斷類(lèi)型號(hào)和中斷服務(wù)程序的入口地址中斷中斷類(lèi)型號(hào)和中斷服務(wù)程序的入口地址中斷向量如何聯(lián)系?向量如何聯(lián)系?中斷服務(wù)程序的入口地址叫做中斷向量。中斷服務(wù)程序的入口地址叫做中斷向量。中斷類(lèi)型號(hào)n40000:4n+00000:4n+10000:4n+20000:4n+30010002010002000IPCS內(nèi)存中斷類(lèi)型號(hào)和中斷向量的對(duì)應(yīng)關(guān)系中斷類(lèi)型號(hào)和中斷向量的對(duì)應(yīng)關(guān)系每個(gè)中斷源都有一個(gè)中斷類(lèi)型碼。中斷類(lèi)型碼長(zhǎng)度為一個(gè)字節(jié),故8086/8088最多允許處理256種類(lèi)型的中斷(中斷類(lèi)型碼為0255)。中斷向

33、量表位于內(nèi)存的最低1K字節(jié)(即內(nèi)存中00000H003FFH區(qū)域),用以存放256個(gè)中斷向量,即256個(gè)中斷的服務(wù)程序入口地址。每個(gè)中斷向量占4個(gè)字節(jié),其中低位字(2個(gè)字節(jié))存放中斷服務(wù)程序入口地址的偏移量,高位字(2個(gè)字節(jié))存放中斷服務(wù)程序入口地址的段地址。中斷向量在表中的存放地址=4中斷類(lèi)型碼n取連續(xù)的4n和4n+l字節(jié)單元的內(nèi)容裝入IP,取4n+2和4n+3單元的內(nèi)容裝入CS,即可轉(zhuǎn)入中斷服務(wù)程序。 中斷類(lèi)型碼的獲取中斷類(lèi)型碼的獲取中斷類(lèi)型碼的獲取中斷類(lèi)型碼的獲取中斷處理中斷處理有兩種方法獲取中斷類(lèi)型碼:有兩種方法獲取中斷類(lèi)型碼:對(duì)于軟件中斷:類(lèi)型碼為對(duì)于軟件中斷:類(lèi)型碼為0、1、3、4

34、的中斷類(lèi)的中斷類(lèi)型碼由系統(tǒng)自動(dòng)形成;對(duì)于型碼由系統(tǒng)自動(dòng)形成;對(duì)于INT n指令,類(lèi)型指令,類(lèi)型碼由指令指定。碼由指令指定。對(duì)于硬件中斷:若為對(duì)于硬件中斷:若為NMI中斷,則由系統(tǒng)自動(dòng)中斷,則由系統(tǒng)自動(dòng)產(chǎn)生中斷類(lèi)型碼產(chǎn)生中斷類(lèi)型碼2;若為;若為INTR中斷,則中斷,則CPU轉(zhuǎn)入轉(zhuǎn)入2個(gè)連續(xù)周期的中斷響應(yīng)周期,并在第個(gè)連續(xù)周期的中斷響應(yīng)周期,并在第2個(gè)中斷響應(yīng)周期采樣數(shù)據(jù)總線,獲取中斷類(lèi)個(gè)中斷響應(yīng)周期采樣數(shù)據(jù)總線,獲取中斷類(lèi)型碼。型碼。 將類(lèi)型碼乘4,計(jì)算出中斷向量的地址。硬件現(xiàn)場(chǎng)保護(hù)。即將標(biāo)志寄存器F壓入堆棧,以保護(hù)當(dāng)前指令執(zhí)行結(jié)果的特征。清除IF和TF標(biāo)志,屏蔽新的INTR中斷和單步中斷。保存

35、斷點(diǎn),即把斷點(diǎn)處的IP和CS值壓入堆棧,先壓入CS值,再壓入IP值。根據(jù)計(jì)算出來(lái)的地址從中斷向量表中取出中斷服務(wù)程序的入口地址(段和偏移),分別送至CS和IP中。轉(zhuǎn)入中斷服務(wù)程序執(zhí)行。進(jìn)入中斷服務(wù)程序后,首先要保護(hù)在中斷服務(wù)程序中要使用的寄存器內(nèi)容,然后進(jìn)行相應(yīng)的中斷處理,現(xiàn)場(chǎng)恢復(fù)與中斷返回。在中斷返回前恢復(fù)保護(hù)的寄存器內(nèi)容,最后執(zhí)行中斷返回指令I(lǐng)RET。IRET的執(zhí)行將使CPU按次序恢復(fù)斷點(diǎn)處的IP、CS和標(biāo)志寄存器,從而使程序返回到斷點(diǎn)處繼續(xù)執(zhí)行。 6.4.1 8259A6.4.1 8259A的內(nèi)部結(jié)構(gòu)及引腳分配的內(nèi)部結(jié)構(gòu)及引腳分配IR0IR0IR1IR1IR2IR2IR7IR7中斷控制器

36、中斷控制器8259A功能:功能:(1) 一片一片8259A可管理可管理8個(gè)中斷請(qǐng)求,具有個(gè)中斷請(qǐng)求,具有8級(jí)優(yōu)先權(quán)級(jí)優(yōu)先權(quán)控制,并能把當(dāng)前優(yōu)先權(quán)最高的中斷請(qǐng)求送到控制,并能把當(dāng)前優(yōu)先權(quán)最高的中斷請(qǐng)求送到CPU的的INTR端;端;(2) 每一級(jí)都可以由編程進(jìn)行屏蔽或開(kāi)放每一級(jí)都可以由編程進(jìn)行屏蔽或開(kāi)放(3) 通過(guò)級(jí)連可以擴(kuò)展至通過(guò)級(jí)連可以擴(kuò)展至64級(jí)級(jí)(4) 在中斷響應(yīng)周期,在中斷響應(yīng)周期,8259A可以提供相應(yīng)的中斷類(lèi)可以提供相應(yīng)的中斷類(lèi)型號(hào);型號(hào);(5) 通過(guò)編程可選擇通過(guò)編程可選擇8259A的各種工作方式。的各種工作方式。(2)(2)中斷服務(wù)寄存器中斷服務(wù)寄存器ISRISR ISR ISR

37、是一個(gè)是一個(gè)8 8位寄存器,用于寄存所有正在被服務(wù)的中位寄存器,用于寄存所有正在被服務(wù)的中斷級(jí)。在中斷響應(yīng)的第一個(gè)斷級(jí)。在中斷響應(yīng)的第一個(gè)INTA#INTA#周期,使對(duì)應(yīng)的周期,使對(duì)應(yīng)的ISRISR位位置置1 1而而IRRIRR位清位清0 0。(1)(1)中斷請(qǐng)求寄存器中斷請(qǐng)求寄存器IRRIRR 保存從保存從IR0IR0IR7IR7來(lái)的中斷請(qǐng)求信號(hào),某位來(lái)的中斷請(qǐng)求信號(hào),某位=1=1表示對(duì)表示對(duì) 應(yīng)的應(yīng)的IRiIRi有中斷請(qǐng)求有中斷請(qǐng)求 。(4)(4)優(yōu)先權(quán)電路優(yōu)先權(quán)電路 用于識(shí)別和管理用于識(shí)別和管理IRRIRR中各位的優(yōu)先權(quán)級(jí)別。能進(jìn)行優(yōu)先中各位的優(yōu)先權(quán)級(jí)別。能進(jìn)行優(yōu)先級(jí)判別,把未被屏蔽的最

38、高優(yōu)先級(jí)的中斷請(qǐng)求送到級(jí)判別,把未被屏蔽的最高優(yōu)先級(jí)的中斷請(qǐng)求送到CPUCPU。(3)(3)中斷屏蔽寄存器中斷屏蔽寄存器IMRIMR IMR IMR是一個(gè)是一個(gè)8 8位寄存器,存放中斷屏蔽字,某位位寄存器,存放中斷屏蔽字,某位=1=1表示表示對(duì)應(yīng)的對(duì)應(yīng)的IRiIRi輸入被屏蔽,為輸入被屏蔽,為0 0開(kāi)放該中斷請(qǐng)求。可通過(guò)指令開(kāi)放該中斷請(qǐng)求。可通過(guò)指令設(shè)置。設(shè)置。1.1.內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)(5)(5)控制邏輯電路控制邏輯電路 控制邏輯電路根據(jù)控制邏輯電路根據(jù)CPUCPU對(duì)對(duì)8259A8259A編程設(shè)定的工作方編程設(shè)定的工作方式管理式管理8259A8259A,負(fù)責(zé)發(fā)出,負(fù)責(zé)發(fā)出INTRINTR和接收

39、和接收INTA#INTA#,并使,并使INTA#INTA#轉(zhuǎn)化為內(nèi)部所需的各種控制信號(hào)。轉(zhuǎn)化為內(nèi)部所需的各種控制信號(hào)。(6)(6)讀讀/ /寫(xiě)電路寫(xiě)電路 讀讀/ /寫(xiě)電路可接收寫(xiě)電路可接收CPUCPU對(duì)對(duì)8259A8259A的初始化命令字的初始化命令字ICWICW和操作命令字和操作命令字OCWOCW,并將其存入相應(yīng)的端口寄存器,并將其存入相應(yīng)的端口寄存器,來(lái)規(guī)定來(lái)規(guī)定8259A8259A的工作方式和控制模式;也可以向的工作方式和控制模式;也可以向CPUCPU提提供各端口寄存器的內(nèi)容。供各端口寄存器的內(nèi)容。(7)(7)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器 連接系統(tǒng)總線和連接系統(tǒng)總線和8259A8259A

40、的內(nèi)部總線,用于傳輸?shù)膬?nèi)部總線,用于傳輸8259A8259A的控制字或狀態(tài)字,以及中斷類(lèi)型號(hào)。的控制字或狀態(tài)字,以及中斷類(lèi)型號(hào)。(8)(8)級(jí)連緩沖級(jí)連緩沖/ /比較器比較器 控制多片控制多片8259A8259A的級(jí)連,擴(kuò)展中斷級(jí)。多片的級(jí)連,擴(kuò)展中斷級(jí)。多片8259A8259A級(jí)連時(shí),一片為主,其余為從。最多可級(jí)連時(shí),一片為主,其余為從。最多可9 9片級(jí)連,擴(kuò)片級(jí)連,擴(kuò)展展6464級(jí)中斷。級(jí)中斷。8259A8259A是是2828腳雙列直插式芯片。腳雙列直插式芯片。D7D0:D7D0:雙向三態(tài)數(shù)據(jù)線,直接與系統(tǒng)數(shù)據(jù)總線低雙向三態(tài)數(shù)據(jù)線,直接與系統(tǒng)數(shù)據(jù)總線低8 8位位相連;相連;IRQ0IRQ7

41、:IRQ0IRQ7:中斷請(qǐng)求輸入線,與外設(shè)相連,優(yōu)先權(quán)中斷請(qǐng)求輸入線,與外設(shè)相連,優(yōu)先權(quán)0 0至至7 7遞減;遞減;INT:INT:中斷請(qǐng)求輸出線,與中斷請(qǐng)求輸出線,與CPUCPU的的INTRINTR相連;相連;INTA:INTA:中斷允許線,接收來(lái)自中斷允許線,接收來(lái)自CPUCPU的中斷響應(yīng)信號(hào)的中斷響應(yīng)信號(hào)INTAINTA,與與CPUCPU的的INTAINTA相連。相連。CS, :CS, :片選信號(hào)端。片選信號(hào)端。WRWR:寫(xiě)信號(hào)控制端。:寫(xiě)信號(hào)控制端。RDRD:讀信號(hào)控制端。:讀信號(hào)控制端。CAS2CAS0:CAS2CAS0:級(jí)連信號(hào)線,主片為輸出,從片為輸入;級(jí)連信號(hào)線,主片為輸出,從

42、片為輸入;SP/EN:SP/EN:主從主從/ /允許緩沖線,具有雙向功能;允許緩沖線,具有雙向功能;VCCVCC,GND:GND:分別接分別接+5v+5v電源和接地電源和接地A0:A0:端口地址選擇信號(hào),輸入,由端口地址選擇信號(hào),輸入,由8259A8259A片內(nèi)譯碼,片內(nèi)譯碼,選擇內(nèi)部寄存器。選擇內(nèi)部寄存器。 一片一片8259A8259A有有2 2個(gè)端口地址,個(gè)端口地址,一個(gè)為偶地址,另一個(gè)為奇地址。一個(gè)為偶地址,另一個(gè)為奇地址。A0=0A0=0選擇偶地選擇偶地址端口,址端口,A0=1A0=1選擇奇地址端口。選擇奇地址端口。 8259A對(duì)外部中斷請(qǐng)求的響應(yīng)和處理過(guò)程如下:對(duì)外部中斷請(qǐng)求的響應(yīng)和

43、處理過(guò)程如下: (1) 當(dāng)中斷請(qǐng)求輸入線當(dāng)中斷請(qǐng)求輸入線IRQ0IRQ7中有一條或多條變高時(shí),中有一條或多條變高時(shí),則中斷請(qǐng)求寄存器則中斷請(qǐng)求寄存器IRR的相應(yīng)位置的相應(yīng)位置“1”。(2) 未被屏蔽的中斷請(qǐng)求信號(hào)進(jìn)入優(yōu)先權(quán)判別器,優(yōu)先級(jí)判定未被屏蔽的中斷請(qǐng)求信號(hào)進(jìn)入優(yōu)先權(quán)判別器,優(yōu)先級(jí)判定電路選出優(yōu)先級(jí)最高的中斷請(qǐng)求,控制電路由電路選出優(yōu)先級(jí)最高的中斷請(qǐng)求,控制電路由INT引腳向引腳向CPU發(fā)出中斷請(qǐng)求信號(hào)。發(fā)出中斷請(qǐng)求信號(hào)。(3) 如如CPU是處于開(kāi)中斷狀態(tài),則在當(dāng)前指令執(zhí)行完后,用是處于開(kāi)中斷狀態(tài),則在當(dāng)前指令執(zhí)行完后,用INTA#信號(hào)作為響應(yīng)。信號(hào)作為響應(yīng)。(4) 8259A在接收到在接

44、收到CPU的的INTA#信號(hào)后,使最高優(yōu)先級(jí)的信號(hào)后,使最高優(yōu)先級(jí)的ISR位置位置“1”,而相應(yīng)的,而相應(yīng)的IRR位清位清“0”。但在該中斷響應(yīng)周期。但在該中斷響應(yīng)周期中,中,8259A并不向系統(tǒng)總線送任何信息。并不向系統(tǒng)總線送任何信息。(5) CPU(8086/8088和和80X86)輸出第二個(gè)輸出第二個(gè)INTA#信號(hào),信號(hào),啟動(dòng)第二個(gè)中斷響應(yīng)周期。在此周期中,啟動(dòng)第二個(gè)中斷響應(yīng)周期。在此周期中,8259A向數(shù)向數(shù)據(jù)總線輸送一個(gè)據(jù)總線輸送一個(gè)8位的中斷類(lèi)型號(hào);位的中斷類(lèi)型號(hào);CPU讀取此類(lèi)型讀取此類(lèi)型號(hào)后將它乘以號(hào)后將它乘以4(左移左移2位位),即可從中斷服務(wù)程序向量,即可從中斷服務(wù)程序向量

45、表表(即入口地址表即入口地址表)中取出中斷服務(wù)程序的入口地址,中取出中斷服務(wù)程序的入口地址,包括段地址和段內(nèi)偏移地址。據(jù)此包括段地址和段內(nèi)偏移地址。據(jù)此CPU便可轉(zhuǎn)入中便可轉(zhuǎn)入中斷服務(wù)程序。斷服務(wù)程序。1.1.中斷嵌套方式中斷嵌套方式 8259A 8259A有兩種中斷嵌套方式:有兩種中斷嵌套方式:(1)(1)一般全嵌套方式一般全嵌套方式 一般全嵌套方式是一般全嵌套方式是8259A8259A最常用的工作方式,最常用的工作方式,初始化后的默認(rèn)工作方式。此時(shí)中斷優(yōu)先權(quán)的級(jí)別初始化后的默認(rèn)工作方式。此時(shí)中斷優(yōu)先權(quán)的級(jí)別是固定的,是固定的,IR0IR7IR0IR7遞減。遞減。CPUCPU響應(yīng)中斷時(shí),屏蔽

46、掉響應(yīng)中斷時(shí),屏蔽掉與它同級(jí)或低級(jí)的中斷請(qǐng)求。與它同級(jí)或低級(jí)的中斷請(qǐng)求。 在中斷處理過(guò)程中允許被更高優(yōu)先級(jí)的事件所中在中斷處理過(guò)程中允許被更高優(yōu)先級(jí)的事件所中斷稱(chēng)為中斷嵌套。斷稱(chēng)為中斷嵌套。8259A有兩種中斷嵌套方式:有兩種中斷嵌套方式: 8259A 8259A的中斷管理功能很強(qiáng),單片可以管理的中斷管理功能很強(qiáng),單片可以管理8 8級(jí)外級(jí)外部中斷,在多片級(jí)聯(lián)方式下最多可以管理部中斷,在多片級(jí)聯(lián)方式下最多可以管理6464級(jí)外部中級(jí)外部中斷,并且具有中斷嵌套、中斷優(yōu)先權(quán)判優(yōu)、中斷結(jié)束斷,并且具有中斷嵌套、中斷優(yōu)先權(quán)判優(yōu)、中斷結(jié)束和中斷觸發(fā)等多種中斷管理方式。和中斷觸發(fā)等多種中斷管理方式。 (2)(

47、2)特殊全嵌套方式特殊全嵌套方式和一般全嵌套方式基本相同,區(qū)別在于:和一般全嵌套方式基本相同,區(qū)別在于:在特殊全嵌套方式下,處理某一中斷時(shí),在特殊全嵌套方式下,處理某一中斷時(shí),可實(shí)現(xiàn)對(duì)同級(jí)中斷請(qǐng)求的響應(yīng)??蓪?shí)現(xiàn)對(duì)同級(jí)中斷請(qǐng)求的響應(yīng)。系統(tǒng)中只有單片系統(tǒng)中只有單片8259A8259A時(shí),通常用全嵌時(shí),通常用全嵌套方式;而當(dāng)套方式;而當(dāng)8259A8259A多片級(jí)連時(shí),主片多片級(jí)連時(shí),主片必須采用特殊全嵌套方式,從片可采用必須采用特殊全嵌套方式,從片可采用一般全嵌套方式。一般全嵌套方式。1.1.中斷嵌套方式中斷嵌套方式D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式:一

48、般全嵌套方式:從片的從片的INTINT被主片封被主片封鎖,故更高級(jí)別的鎖,故更高級(jí)別的IR0-IR2IR0-IR2中斷也無(wú)法中斷也無(wú)法得到響應(yīng)得到響應(yīng)特殊全嵌套方式:特殊全嵌套方式:因主片不封鎖從片的因主片不封鎖從片的INTINT,故級(jí)別高的,故級(jí)別高的IR0-IR0-IR2IR2中斷可以得到響應(yīng)。中斷可以得到響應(yīng)。( (但但I(xiàn)R3-IR7IR3-IR7仍被本從仍被本從片封鎖片封鎖) )C.假定從片假定從片IR3發(fā)發(fā)生中斷生中斷,并獲得并獲得服務(wù)服務(wù)一般全嵌套方式:一般全嵌套方式:主片的主片的IR4IR4的中斷的中斷被服務(wù)時(shí),這些被服務(wù)時(shí),這些中斷將被封鎖。中斷將被封鎖。B.特殊全嵌套方式:特

49、殊全嵌套方式:IR4IR4的中斷被服的中斷被服務(wù) 時(shí) , 只 封 鎖務(wù) 時(shí) , 只 封 鎖IR5-IR7IR5-IR7。A.INTE.從從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7n一般全嵌套方式與特殊全嵌套方式的區(qū)別一般全嵌套方式與特殊全嵌套方式的區(qū)別 去去CPU8259A8259A中斷優(yōu)先權(quán)的管理方式有固定優(yōu)先權(quán)方式和自中斷優(yōu)先權(quán)的管理方式有固定優(yōu)先權(quán)方式和自動(dòng)循環(huán)優(yōu)先權(quán)方式兩種。動(dòng)循環(huán)優(yōu)先權(quán)方式兩種。 (1 1固定優(yōu)先權(quán)方式固定優(yōu)先權(quán)方式在固定優(yōu)先權(quán)方式中,在固定優(yōu)先權(quán)方式中,IR7IR7IR0IR0的中斷優(yōu)先權(quán)的中斷優(yōu)先權(quán)的級(jí)別是由系統(tǒng)確定的。的級(jí)別是由系統(tǒng)確定的

50、。它們由高到低的優(yōu)先級(jí)順序是:它們由高到低的優(yōu)先級(jí)順序是:IR0, IR1, IR0, IR1, IR2, , IR7, IR2, , IR7, 其中,其中,IR0IR0的優(yōu)先級(jí)最高,的優(yōu)先級(jí)最高,IR7IR7的優(yōu)的優(yōu)先級(jí)最低。當(dāng)有多個(gè)先級(jí)最低。當(dāng)有多個(gè)IRiIRi請(qǐng)求時(shí),優(yōu)先權(quán)判決器請(qǐng)求時(shí),優(yōu)先權(quán)判決器PRPR將它們與當(dāng)前正在處理的中斷源的優(yōu)先權(quán)進(jìn)行比較,將它們與當(dāng)前正在處理的中斷源的優(yōu)先權(quán)進(jìn)行比較,選出當(dāng)前優(yōu)先權(quán)最高的選出當(dāng)前優(yōu)先權(quán)最高的IRiIRi,向,向CPUCPU發(fā)出中斷請(qǐng)求發(fā)出中斷請(qǐng)求INTINT,請(qǐng)求為其服務(wù)。請(qǐng)求為其服務(wù)。注注: 特殊全嵌套僅用于多個(gè)特殊全嵌套僅用于多個(gè)8259

51、A級(jí)連時(shí)的級(jí)連時(shí)的主主8259A,而不能用于從屬,而不能用于從屬8259A或單或單8259A系統(tǒng)。系統(tǒng)。(2 2自動(dòng)循環(huán)優(yōu)先權(quán)方式自動(dòng)循環(huán)優(yōu)先權(quán)方式 在自動(dòng)循環(huán)優(yōu)先權(quán)方式中,在自動(dòng)循環(huán)優(yōu)先權(quán)方式中,IR7IR7IR0IR0優(yōu)先權(quán)級(jí)別是可以改變的。優(yōu)先權(quán)級(jí)別是可以改變的。 其變化規(guī)律是:當(dāng)某一個(gè)中斷請(qǐng)求其變化規(guī)律是:當(dāng)某一個(gè)中斷請(qǐng)求IRiIRi服務(wù)結(jié)束后,該中斷的服務(wù)結(jié)束后,該中斷的優(yōu)先權(quán)自動(dòng)降為最低,而緊跟其后的中斷請(qǐng)求優(yōu)先權(quán)自動(dòng)降為最低,而緊跟其后的中斷請(qǐng)求IR(iIR(i1)1)的優(yōu)先權(quán)的優(yōu)先權(quán)自動(dòng)升為最高,自動(dòng)升為最高,IR7IR7IR0IR0優(yōu)先權(quán)級(jí)別按如下所示的右循環(huán)方式改優(yōu)先權(quán)級(jí)別

52、按如下所示的右循環(huán)方式改變。變。 假設(shè)在初始狀態(tài)假設(shè)在初始狀態(tài)IR0IR0有請(qǐng)求,有請(qǐng)求,CPUCPU為其服務(wù)完畢,為其服務(wù)完畢,IR0IR0優(yōu)先權(quán)優(yōu)先權(quán)自動(dòng)降為最低,排在自動(dòng)降為最低,排在IR7IR7之后,而其后的之后,而其后的IR1IR1的優(yōu)先權(quán)升為最高,的優(yōu)先權(quán)升為最高,其余依次類(lèi)推。這種優(yōu)先權(quán)管理方式,可以使其余依次類(lèi)推。這種優(yōu)先權(quán)管理方式,可以使8 8個(gè)中斷請(qǐng)求都擁個(gè)中斷請(qǐng)求都擁有享受同等優(yōu)先服務(wù)的權(quán)利。有享受同等優(yōu)先服務(wù)的權(quán)利。 在自動(dòng)循環(huán)優(yōu)先權(quán)方式中,按確定循環(huán)時(shí)的最在自動(dòng)循環(huán)優(yōu)先權(quán)方式中,按確定循環(huán)時(shí)的最低優(yōu)先權(quán)的方式不同,又分為普通自動(dòng)循環(huán)方低優(yōu)先權(quán)的方式不同,又分為普通自動(dòng)循環(huán)方式和特殊自動(dòng)循環(huán)方式兩種。式和特殊自動(dòng)循環(huán)方式兩種。普通自動(dòng)循環(huán)方式的特點(diǎn)是:普通自動(dòng)循環(huán)方式的特點(diǎn)是:IR7IR0中的初中的初始最高優(yōu)先級(jí)由系統(tǒng)指定,即指定始最高優(yōu)先級(jí)由系統(tǒng)指定,即指定IR0的優(yōu)先的優(yōu)先級(jí)最高,以后按右循環(huán)規(guī)則進(jìn)行循環(huán)排隊(duì)。級(jí)最高,以后按右循環(huán)規(guī)則進(jìn)行循環(huán)排隊(duì)。特殊自動(dòng)循環(huán)方式的特點(diǎn)是:特殊自動(dòng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論