輸入輸出與中斷技術(shù)_第1頁(yè)
輸入輸出與中斷技術(shù)_第2頁(yè)
輸入輸出與中斷技術(shù)_第3頁(yè)
輸入輸出與中斷技術(shù)_第4頁(yè)
輸入輸出與中斷技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩105頁(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)介

輸入輸出與中斷技術(shù)接口概念:輸入/輸出(I/O)接口是主機(jī)與外部設(shè)備(簡(jiǎn)稱外設(shè))之間所設(shè)置的邏輯控制部件,通過(guò)它實(shí)現(xiàn)主機(jī)與I/O設(shè)備之間的信息交換。輸入輸出接口概述思考問(wèn)題:

微型計(jì)算機(jī)和外設(shè)之間為什么需要接口?一般情況下,存儲(chǔ)器可以與總線直接相連,而外部設(shè)備卻需要通過(guò)接口與CPU的總線相連,原因是由存儲(chǔ)器和外設(shè)的特點(diǎn)決定:存儲(chǔ)器:功能單一傳輸方式單一(一次一個(gè)字或一個(gè)字節(jié))操作方式單一(讀和寫(xiě))制造工藝與CPU相似,速度與CPU相匹配輸入輸出接口概述微型計(jì)算機(jī)和外設(shè)之間為什么需要接口?接口:解決以上差異,協(xié)調(diào)、匹配外設(shè)與主機(jī)正常工作的邏輯部件及相應(yīng)控制軟件。外設(shè):種類繁多(機(jī)械、機(jī)電、電子)信號(hào)種類不一(A,D,開(kāi)關(guān)量)信號(hào)格式不同(串行,并行)同一個(gè)時(shí)刻CPU通常只和一個(gè)外設(shè)交換信息工作速度不同,且范圍寬。如硬盤(pán)和打印機(jī)工作時(shí)序不匹配,無(wú)法和CPU時(shí)序取得統(tǒng)一輸入輸出接口概述微型計(jì)算機(jī)和外設(shè)之間為什么需要接口?接口電路的任務(wù):對(duì)數(shù)據(jù)提供緩沖(時(shí)間和電氣性能上):設(shè)置數(shù)據(jù)的寄存、緩沖邏輯;信息格式相容性變換:如串并行的轉(zhuǎn)換;電平轉(zhuǎn)換、數(shù)/模或模/數(shù)轉(zhuǎn)換等;協(xié)調(diào)時(shí)序差異:提供“準(zhǔn)備好”“空”“滿”等狀態(tài)信號(hào)提供地址譯碼或設(shè)備選擇信號(hào):提供中斷和DMA控制邏輯及管理:輸入輸出接口概述I/O端口的尋址方式CPU要操作接口,首先要能識(shí)別這個(gè)接口。解決方法:通過(guò)地址識(shí)別。(1)存儲(chǔ)器映像尋址方式若把系統(tǒng)中的每一個(gè)I/O端口都看作一個(gè)存儲(chǔ)單元,并與存儲(chǔ)單元一樣統(tǒng)一編址,這樣訪問(wèn)存儲(chǔ)器的所有指令均可用來(lái)訪問(wèn)I/O端口,不用設(shè)置專門(mén)的I/O指令。優(yōu)點(diǎn): 簡(jiǎn)化了指令集, 對(duì)I/O設(shè)備的訪問(wèn)更加靈活方便,I/O地址空間可大可小缺點(diǎn): 占用內(nèi)存空間,訪問(wèn)速度慢。輸入輸出接口概述I/O端口的尋址方式(2)I/O單獨(dú)編址方式對(duì)系統(tǒng)中的輸入輸出端口地址單獨(dú)編址,構(gòu)成一個(gè)I/O空間,他們不占用存儲(chǔ)空間,而是用專門(mén)的IN和OUT指令來(lái)訪問(wèn)這種具有獨(dú)立地址空間的端口。優(yōu)點(diǎn):將輸入輸出指令和訪問(wèn)存儲(chǔ)器的指令明顯區(qū)分開(kāi),使程序清晰,可讀性好;I/O指令長(zhǎng)度短,執(zhí)行速度快,不占用內(nèi)存空間;I/O地址譯碼電路簡(jiǎn)單。缺點(diǎn):指令系統(tǒng)中需專門(mén)的指令,且這些指令的功能沒(méi)有訪問(wèn)存儲(chǔ)器指令強(qiáng);CPU需提供區(qū)分存儲(chǔ)器讀/寫(xiě)和I/O讀寫(xiě)的控制信號(hào)。輸入輸出接口概述CPU和I/O設(shè)備之間的接口信息1、數(shù)據(jù)信息數(shù)字量信息:離散的二進(jìn)制形式數(shù)據(jù),最小單位為“位(b)”,8位為一個(gè)字節(jié)(B)。模擬量信息:用模擬電壓或模擬電流幅值大小表示的物理量。開(kāi)關(guān)量:只有兩個(gè)狀態(tài),“開(kāi)”和“關(guān)”,用一位二進(jìn)制數(shù)即可表示。輸入輸出接口概述2、狀態(tài)信息反映當(dāng)前外設(shè)所處的工作狀態(tài),實(shí)際中通過(guò)狀態(tài)端口信息表現(xiàn)。例如:輸入時(shí):“準(zhǔn)備好”(Ready)輸出時(shí):“空”(Empty)、“忙”(Busy)3、控制信息由CPU發(fā)出的用來(lái)控制外設(shè)工作的信號(hào)。例如:控制輸入/輸出裝置的啟動(dòng)或停止、讀或?qū)憜?wèn)題提出:數(shù)據(jù)信息、狀態(tài)信息、控制信息是不同性質(zhì)的信息,被分別傳送,如何實(shí)現(xiàn)?CPU和I/O設(shè)備之間的接口信息輸入輸出接口概述

問(wèn)題解決:數(shù)據(jù)信息、狀態(tài)信息、控制信息使用不同的端口地址。問(wèn)題結(jié)論:都通過(guò)數(shù)據(jù)總線傳送,但放在接口的不同寄存器(I/O端口)中,其中:輸入輸出的數(shù)據(jù)信息放在數(shù)據(jù)緩沖器輸入的狀態(tài)信息放在狀態(tài)寄存器輸出的控制信息放在控制寄存器CPU和I/O設(shè)備之間的接口信息輸入輸出接口概述接口數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器控制輸出寄存器狀態(tài)輸入寄存器CPU和I/O設(shè)備之間的接口信息外部輸入或輸出設(shè)備CPUDBABCB外設(shè)通過(guò)接口與CPU之間的連接數(shù)據(jù)控制狀態(tài)ABCBDB輸入輸出接口概述訪問(wèn)接口的過(guò)程描述:CPU先將地址信息發(fā)送到地址總線,將確定的控制信息發(fā)送到控制總線(打開(kāi)相應(yīng)端口);CPU傳輸數(shù)據(jù)信息到數(shù)據(jù)總線上等待相應(yīng)端口接收,或者CPU等待接口把指定端口的內(nèi)容送到數(shù)據(jù)總線上(收發(fā)數(shù)據(jù))。注意:地址是端口(寄存器)的地址,而不是接口部件的地址,一個(gè)接口部件包含多個(gè)端口,即多個(gè)地址。CPU和I/O設(shè)備之間的接口信息輸入輸出接口概述幾點(diǎn)說(shuō)明:I/O端口即I/O接口的寄存器,接口中的每個(gè)寄存器都有一個(gè)端口地址,每個(gè)I/O接口都有一組寄存器。CPU與外設(shè)的信息交流就是CPU與接口寄存器(端口)的交流。數(shù)據(jù)輸入和數(shù)據(jù)輸出寄存器可以使用同一地址;控制輸出和狀態(tài)輸入寄存器可以使用同一地址。CPU和I/O設(shè)備之間的接口信息輸入輸出接口概述程序方式無(wú)條件傳送方式查詢傳送方式中斷傳送方式直接存儲(chǔ)器存取(DMA)控制方式CPU和外設(shè)之間的數(shù)據(jù)傳送方式定義:在數(shù)據(jù)傳送過(guò)程中,輸入或輸出數(shù)據(jù)一方不查詢、判斷對(duì)方的狀態(tài),進(jìn)行無(wú)條件的數(shù)據(jù)傳送。

CPU能夠確信外設(shè)準(zhǔn)備就緒,就不用查詢外設(shè)的狀態(tài)而可以直接進(jìn)行數(shù)據(jù)傳輸。驅(qū)動(dòng)指示燈、繼電器、啟動(dòng)電機(jī)等

例如:CPU要輸出一個(gè)數(shù)據(jù)到顯示器顯示,由于顯示器是可以根據(jù)輸入數(shù)據(jù)而隨時(shí)改變顯示內(nèi)容的設(shè)備,因而CPU就可以直接向其發(fā)送數(shù)據(jù),而無(wú)需查詢。無(wú)條件傳送方式CPU和外設(shè)之間的數(shù)據(jù)傳送方式無(wú)條件傳送方式三態(tài)緩沖器輸入設(shè)備地址譯碼器&數(shù)據(jù)來(lái)自外設(shè)數(shù)據(jù)總線地址總線IO/MRDCPU無(wú)條件傳送的輸入方式CPU和外設(shè)之間的數(shù)據(jù)傳送方式無(wú)條件傳送方式鎖存器輸出設(shè)備地址譯碼器&數(shù)據(jù)到外設(shè)數(shù)據(jù)總線地址總線IO/MWRCPUCE無(wú)條件傳送的輸出方式CPU和外設(shè)之間的數(shù)據(jù)傳送方式

定義:

CPU執(zhí)行程序不斷讀取并測(cè)試外設(shè)的狀態(tài),如果外設(shè)處于準(zhǔn)備好(輸入)或空閑(輸出)狀態(tài),則執(zhí)行輸入或輸出指令,進(jìn)行數(shù)據(jù)交換,否則等待。查詢傳送方式CPU和外設(shè)之間的數(shù)據(jù)傳送方式

完成一次數(shù)據(jù)傳送的過(guò)程:

1)CPU從狀態(tài)端口讀取外設(shè)的狀態(tài)字;2)CPU檢測(cè)狀態(tài)字對(duì)應(yīng)位是否滿足“就緒”條件;3)如不滿足,則重復(fù)執(zhí)行1)2)過(guò)程,直到條件

滿足;4)如果條件滿足,表明外設(shè)就緒,則傳送數(shù)據(jù),

同時(shí)I/O的狀態(tài)復(fù)位。查詢傳送方式CPU和外設(shè)之間的數(shù)據(jù)傳送方式實(shí)現(xiàn)流程:在與外設(shè)進(jìn)行傳送數(shù)據(jù)前,CPU先查詢外設(shè)狀態(tài),當(dāng)外設(shè)準(zhǔn)備好后,才執(zhí)行I/O指令,實(shí)現(xiàn)數(shù)據(jù)傳送特點(diǎn):1.CPU通過(guò)不斷查詢外設(shè)狀態(tài),實(shí)現(xiàn)與外設(shè)的速度匹配2.CPU的工作效率低NY從狀態(tài)端口讀入狀態(tài)信息從數(shù)據(jù)端口傳送一個(gè)數(shù)據(jù)外設(shè)準(zhǔn)備好否?CPU和外設(shè)之間的數(shù)據(jù)傳送方式

兩種查詢傳送方式:

1.查詢式輸入

2.查詢式輸出查詢傳送方式查詢式輸入方式描述查詢式輸入是程序控制下的查詢式輸入方式,在傳送前,CPU必須去查詢一下外設(shè)的狀態(tài),當(dāng)外設(shè)準(zhǔn)備好了才傳送;若未準(zhǔn)備好,CPU則等待。CPU和外設(shè)之間的數(shù)據(jù)傳送方式鎖存器鎖存器三態(tài)緩沖器(8位)輸入設(shè)備地址譯碼器&數(shù)據(jù)選通信號(hào)DBABIO/MRDCPU三態(tài)緩沖器(1位)&準(zhǔn)備就緒

觸發(fā)器DQR+5VDiREADY

(狀態(tài)信息)查詢式輸入接口電路三態(tài)緩沖器(8位)三態(tài)緩沖器(1位)CPU和外設(shè)之間的數(shù)據(jù)傳送方式三態(tài)緩沖器(8位)三態(tài)緩沖器(8位)鎖存器鎖存器輸入設(shè)備地址譯碼器&數(shù)據(jù)選通信號(hào)DBABIO/MRDCPU三態(tài)緩沖器(1位)&準(zhǔn)備就緒

觸發(fā)器DQR+5VDiREADY

(狀態(tài)信息)查詢式輸入接口電路CPU和外設(shè)之間的數(shù)據(jù)傳送方式1.輸入設(shè)備準(zhǔn)備好后,發(fā)選通信號(hào);2.數(shù)據(jù)進(jìn)入鎖存器鎖存,并使D觸發(fā)器置1,從而使三態(tài)緩沖器輸出狀態(tài)信號(hào);3.CPU從狀態(tài)端口讀入狀態(tài)字;4.CPU檢測(cè)狀態(tài)位,如果條件滿足;5.CPU從數(shù)據(jù)端口讀入數(shù)據(jù);6.清狀態(tài)字。查詢式輸入的過(guò)程:CPU和外設(shè)之間的數(shù)據(jù)傳送方式D7D08位數(shù)據(jù)端口(8位)

(輸入)D7狀態(tài)端口(1位)

(輸入)查詢式輸入時(shí)的數(shù)據(jù)和狀態(tài)信息:“READY”(1位)數(shù)據(jù)信息狀態(tài)信息CPU和外設(shè)之間的數(shù)據(jù)傳送方式LOOP1:IN AL,STATUS_PORT;讀入狀態(tài)值

TEST AL,80H ;READY=1?

JZ LOOP1;未準(zhǔn)備好?循環(huán)

IN AL,DATA_PORT;是,輸入數(shù)據(jù)查詢式輸入的查詢程序:討論:分析查詢程序,熟悉匯編語(yǔ)言在接口電路中的應(yīng)用。CPU和外設(shè)之間的數(shù)據(jù)傳送方式例1

查詢方式輸入假設(shè)外設(shè)的狀態(tài)端口為21CH,其中D4=1時(shí),表示外設(shè)數(shù)據(jù)準(zhǔn)備好外設(shè)的數(shù)據(jù)端口為218H。實(shí)現(xiàn)從外設(shè)讀入50H個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中。21CH端口狀態(tài)端口218H端口數(shù)據(jù)端口地址譯碼數(shù)據(jù)緩沖控制電路輸入外備CPU地址線數(shù)據(jù)線控制線CPU和外設(shè)之間的數(shù)據(jù)傳送方式從21CH狀態(tài)端口讀入外設(shè)狀態(tài)信息從218H數(shù)據(jù)端口讀入一個(gè)字節(jié)數(shù)據(jù)YND4=1,外設(shè)準(zhǔn)備好否?N50H個(gè)數(shù)據(jù)傳送結(jié)束?Y編程從外設(shè)讀入50H個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中CPU和外設(shè)之間的數(shù)據(jù)傳送方式

、、、

MOVAX,SEGbuffer;取緩沖區(qū)首地址

MOVDS,AXLEADI,bufferMOVCX,50H;傳送個(gè)數(shù)next:MOVDX,21CHask:INAL,DX;從狀態(tài)端口讀入狀態(tài)信息TESTAL,00010000B;檢測(cè)D4位JZask;D4=0,繼續(xù)查詢MOVDX,218HINAL,DX;從數(shù)據(jù)端口讀入數(shù)據(jù)MOV[DI],AL;送緩沖區(qū)INCDI;修改緩沖區(qū)指針LOOPnext;傳送下一個(gè)、、、查詢方式輸入程序段:CPU和外設(shè)之間的數(shù)據(jù)傳送方式輸出設(shè)備地址譯碼器&數(shù)據(jù)選通信號(hào)DBABIO/MRDCPU狀態(tài)緩沖器(1位)&忙觸發(fā)器DQR+5V數(shù)據(jù)鎖存器查詢式輸出接口電路WRACKBUSY狀態(tài)忙置1CPU和外設(shè)之間的數(shù)據(jù)傳送方式1.通過(guò)M/IO,WR信號(hào)將數(shù)據(jù)寫(xiě)入鎖存器,并同時(shí)將狀態(tài)觸發(fā)器置1,進(jìn)而使?fàn)顟B(tài)位BUSY置1,防止CPU再次傳送數(shù)據(jù);2.外設(shè)讀取數(shù)據(jù);3.外設(shè)向接口發(fā)ACK信號(hào),將狀態(tài)位BUSY清零。查詢式輸出的過(guò)程:CPU和外設(shè)之間的數(shù)據(jù)傳送方式D7D08位數(shù)據(jù)端口(8位)

(輸出)D7狀態(tài)端口(1位)

(輸出)查詢式輸出時(shí)的數(shù)據(jù)和狀態(tài)信息:“READY”(1位)數(shù)據(jù)信息狀態(tài)信息CPU和外設(shè)之間的數(shù)據(jù)傳送方式LOOP2: IN AL,STATUS_PORT;讀狀態(tài)信息

TEST AL,80H;檢查BUSY位

JNZ LOOP2 ;BUSY=0? MOV AL,STORE;為零,取數(shù)據(jù)

OUT DATA_PORT,AL;數(shù)據(jù)端口輸出查詢式輸出的查詢程序:?jiǎn)栴}:結(jié)合匯編語(yǔ)言,分析程序是如何實(shí)現(xiàn)查詢輸出功能的?CPU和外設(shè)之間的數(shù)據(jù)傳送方式例2

查詢方式輸出假設(shè)外設(shè)的狀態(tài)端口為21CH,其中D0=0時(shí),表示外設(shè)準(zhǔn)備好外設(shè)的數(shù)據(jù)端口為219H。編程將緩沖區(qū)buffer的80H個(gè)字節(jié)輸出到外設(shè)。21CH端口狀態(tài)端口219H端口數(shù)據(jù)端口地址譯碼數(shù)據(jù)緩沖控制電路輸出外設(shè)CPU地址線數(shù)據(jù)線控制線CPU和外設(shè)之間的數(shù)據(jù)傳送方式從21CH狀態(tài)端口讀入外設(shè)狀態(tài)信息將一字節(jié)數(shù)據(jù)送至219H數(shù)據(jù)端口YND0=0,外設(shè)準(zhǔn)備好否?N80H個(gè)數(shù)據(jù)傳送結(jié)束?Y編程將緩沖區(qū)buffer的80H個(gè)字節(jié)輸出到外設(shè)CPU和外設(shè)之間的數(shù)據(jù)傳送方式、、、

MOVAX,SEGbuffer;取緩沖區(qū)首地址

MOVDS,AXLEASI,bufferMOVCX,80H;傳送個(gè)數(shù)next:MOVDX,21CHask:INAL,DX;從狀態(tài)端口讀入狀態(tài)信息

TESTAL,00000001B;檢測(cè)D0位

JNZask;D0≠0,繼續(xù)查詢

MOVAL,[SI];從緩沖區(qū)取數(shù)

MOVDX,219HOUTDX,AL;從數(shù)據(jù)端口輸出數(shù)據(jù)

INCSI;修改緩沖區(qū)指針

LOOPnext;輸出下一個(gè)

、、、查詢方式輸出程序段:

CPU和外設(shè)之間的數(shù)據(jù)傳送方式工作原理:

當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)或可以接收數(shù)據(jù)時(shí),就通過(guò)接口向CPU發(fā)出中斷請(qǐng)求信號(hào),CPU在執(zhí)行完當(dāng)前的一條指令后,檢測(cè)是否有中斷信號(hào),如果有中斷信號(hào),則CPU轉(zhuǎn)向執(zhí)行中斷服務(wù)程序,執(zhí)行完畢后CPU返回原來(lái)的程序繼續(xù)執(zhí)行。中斷方式CPU和外設(shè)之間的數(shù)據(jù)傳送方式三態(tài)緩沖器輸入設(shè)備地址譯碼器1數(shù)據(jù)RDYDBABIO/MRDCPU&中斷請(qǐng)求觸發(fā)器數(shù)據(jù)鎖存器+5V中斷傳送方式輸入接口電路QDINT狀態(tài)信號(hào)數(shù)據(jù)鎖存器三態(tài)緩沖器1&CPU和外設(shè)之間的數(shù)據(jù)傳送方式中斷方式1.輸入設(shè)備準(zhǔn)備就緒,發(fā)出就緒狀態(tài)信號(hào),數(shù)據(jù)暫存在鎖存器中,同時(shí)中斷請(qǐng)求觸發(fā)器置“1”,向CPU發(fā)出中斷請(qǐng)求信號(hào);2.CPU響應(yīng)中斷,執(zhí)行中斷服務(wù)程序,從數(shù)據(jù)端口輸入數(shù)據(jù),同時(shí)將中斷請(qǐng)求觸發(fā)器置“0”,撤銷中斷請(qǐng)求;3.CPU返回被中斷的程序。中斷傳送方式的過(guò)程:CPU和外設(shè)之間的數(shù)據(jù)傳送方式中斷服務(wù)程序發(fā)申請(qǐng)中斷服務(wù)程序發(fā)申請(qǐng)中斷方式下CPU執(zhí)行程序流程外設(shè)CPU和外設(shè)之間的數(shù)據(jù)傳送方式中斷傳送方式的特點(diǎn):CPU和外設(shè)大部分時(shí)間處在并行工作狀態(tài),

只在CPU響應(yīng)外設(shè)的中斷申請(qǐng)后,進(jìn)入數(shù)據(jù)傳送的過(guò)程2.中斷傳送方式提高了CPU的效率CPU和外設(shè)之間的數(shù)據(jù)傳送方式三、查詢傳送方式VS中斷傳送方式查詢方式中斷方式

CPU不主動(dòng)查詢外設(shè),只執(zhí)行自己的程序,當(dāng)外設(shè)準(zhǔn)備好需要傳送數(shù)據(jù)時(shí),提出申請(qǐng),若CPU準(zhǔn)于請(qǐng)求,放下正在執(zhí)行的程序,去傳送外設(shè)的數(shù)據(jù)。CPU和外設(shè)之間的數(shù)據(jù)傳送方式DMA傳送方式的提出

直接存儲(chǔ)器存取(DMA)控制方式DMA(DirectMemoryAccess)直接存儲(chǔ)器存取控制方式下,I/O設(shè)備是和存儲(chǔ)器直接交換信息,不需要CPU介入,外設(shè)與存儲(chǔ)器間的數(shù)據(jù)傳輸是在硬件的作用下完成的。優(yōu)點(diǎn):傳輸速度大幅提高。CPU和外設(shè)之間的數(shù)據(jù)傳送方式

DMA方式下,外設(shè)利用專門(mén)的接口電路直接和存貯器進(jìn)行高速數(shù)據(jù)傳送,而不經(jīng)過(guò)CPU。數(shù)據(jù)的傳輸速度基本上決定于外設(shè)和存儲(chǔ)器的速度。直接存儲(chǔ)器存取(DMA)控制方式主存I/O設(shè)備CPU改進(jìn)主存I/O設(shè)備總線

使用直接存儲(chǔ)器傳送方式(DMA),實(shí)現(xiàn)數(shù)據(jù)塊操作。CPU和外設(shè)之間的數(shù)據(jù)傳送方式

實(shí)現(xiàn)方法:

1.由專用接口芯片DMA控制器(稱DMAC)控制傳送過(guò)程,2.當(dāng)外設(shè)需傳送數(shù)據(jù)時(shí),通過(guò)DMAC向CPU發(fā)出總線請(qǐng)求;3.CPU發(fā)出總線響應(yīng)信號(hào),釋放總線;4.DMAC接管總線,控制外設(shè)、內(nèi)存之間直接數(shù)據(jù)傳送.DMA傳送方式的特點(diǎn)

1.外設(shè)和內(nèi)存之間,直接進(jìn)行數(shù)據(jù)傳送,不通過(guò)CPU,傳送效率高。適用于在內(nèi)存與高速外設(shè)、或兩個(gè)高速外設(shè)之間進(jìn)行大批量數(shù)據(jù)傳送。

2.電路結(jié)構(gòu)復(fù)雜,硬件開(kāi)銷較大。CPU和外設(shè)之間的數(shù)據(jù)傳送方式DMA傳送方式過(guò)程CPUDMAC內(nèi)存外設(shè)總線響應(yīng)總線請(qǐng)求CPU和外設(shè)之間的數(shù)據(jù)傳送方式什么是中斷中斷源中斷分類中斷類型號(hào)中斷優(yōu)先權(quán)中斷服務(wù)程序斷點(diǎn)和中斷現(xiàn)場(chǎng)8086/8088CPU響應(yīng)中斷的過(guò)程8086/8088CPU如何獲取中斷類型號(hào)中斷系統(tǒng)什么是中斷在CPU正常運(yùn)行程序時(shí),由于內(nèi)部或外部某個(gè)非預(yù)料事件的發(fā)生,使CPU暫停正在運(yùn)行的程序,而轉(zhuǎn)去執(zhí)行處理引起中斷事件的程序,然后再返回被中斷了的程序,繼續(xù)執(zhí)行。這個(gè)過(guò)程就是中斷。中斷系統(tǒng)中斷源引起中斷的因素很多,將發(fā)出中斷申請(qǐng)的外設(shè)或內(nèi)部原因,稱為中斷源。例如:CPU指令執(zhí)行產(chǎn)生的異常(如被零除)、停電等故障等。中斷系統(tǒng)中斷的分類按中斷源的不同,中斷分為內(nèi)部中斷和外部中斷。內(nèi)中斷(軟中斷)指CPU執(zhí)行某些特殊操作或由INT指令引起的中斷①

被零除操作或OF=1時(shí)執(zhí)行INTO指令引起②使用DEBUG中的單步或斷點(diǎn)設(shè)置操作引起③執(zhí)行INTn指令引起中斷系統(tǒng)指外部芯片通過(guò)CPU的INTR引腳或NMI引腳發(fā)出中斷申請(qǐng)引起的中斷。當(dāng)INTR上有高電平信號(hào)當(dāng)NMI上有上升沿信號(hào)外中斷(硬中斷)8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6(HIGH)(SSO)MN/MXRDRQ/GT0(HOLD)RQ/GT1(HLDA)LOCK(WR)S2(IO/M)S1(DT/R)S0(DEN)QS0(ALE)QS1(INTA)TESTREADYRESET中斷系統(tǒng)

可屏蔽中斷由INTR引腳引起的中斷,稱可屏蔽中斷。CPU是否響應(yīng)INTR引腳上的中斷請(qǐng)求取決于IF標(biāo)志:IF=1,CPU響應(yīng)INTR引腳上的中斷請(qǐng)求IF=0,CPU不響應(yīng)INTR引腳上的中斷請(qǐng)求(即當(dāng)IF=0時(shí),將INTR引腳上的中斷申請(qǐng)屏蔽。)

非屏蔽中斷

由NMI引腳引起的中斷,稱非屏蔽中斷。當(dāng)NMI引腳上產(chǎn)生上升沿信號(hào),CPU必響應(yīng)此中斷請(qǐng)求,即NMI引腳上的中斷請(qǐng)求不受IF標(biāo)志的控制,

IF不能屏蔽NMI引腳上的中斷請(qǐng)求。如電源掉電、存貯器讀寫(xiě)出錯(cuò)、總線奇偶錯(cuò)中斷系統(tǒng)關(guān)中斷指令:CLI(IF=0)開(kāi)中斷指令:STI(IF=1)NMI(17號(hào)引腳)中斷邏輯非屏蔽中斷請(qǐng)求INT2硬件(外部)中斷軟件(內(nèi)部)中斷可屏蔽中斷請(qǐng)求中斷類型號(hào)32~255INTR(18號(hào)引腳)中斷指令I(lǐng)NTnN=32~255溢出中斷INTOINT4斷點(diǎn)中斷INT3單步中斷(TF=1)INT1除法錯(cuò)誤INT0中斷系統(tǒng)8086/8088系列微機(jī)可以處理256個(gè)不同類型的中斷源,每個(gè)中斷源都有一個(gè)中斷類型碼供CPU識(shí)別。中斷優(yōu)先權(quán)給每個(gè)中斷源指定一個(gè)優(yōu)先權(quán),稱為中斷優(yōu)先權(quán)。當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),CPU按照中斷優(yōu)先權(quán)的高低順序,依次響應(yīng)。中斷系統(tǒng)中斷服務(wù)程序處理中斷源,完成其所要求功能的程序,稱中斷服務(wù)程序(中斷例行程序、中斷子程)。CPU執(zhí)行流程中斷服務(wù)程序1中斷服務(wù)程序2非預(yù)料事件2非預(yù)料事件1中斷系統(tǒng)斷點(diǎn)和中斷現(xiàn)場(chǎng)斷點(diǎn):是指CPU執(zhí)行的現(xiàn)行程序被中斷時(shí)的下一條指令的地址,又稱斷點(diǎn)地址。中斷現(xiàn)場(chǎng):是指CPU轉(zhuǎn)去執(zhí)行中斷服務(wù)程序前的運(yùn)行狀態(tài),包括CPU內(nèi)部各寄存器、斷點(diǎn)地址等。中斷系統(tǒng)1000:150H

、、、、MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、CPU在執(zhí)行此指令時(shí),某中斷源發(fā)申請(qǐng)中斷;CPU在執(zhí)行完該指令后,轉(zhuǎn)去執(zhí)行中斷子程序,此時(shí)CPU的狀態(tài)稱為中斷現(xiàn)場(chǎng)。地址1000:150H為斷點(diǎn)斷點(diǎn)概念:中斷系統(tǒng)1000:150H

、、、、MOVAH,01INT21HCMPAL,0Dh、、、、用指令調(diào)用中斷程序軟件中斷用指令調(diào)用中斷程序中斷系統(tǒng)中斷的好處1、CPU分時(shí)操作(與多個(gè)外設(shè)并行工作)2、實(shí)現(xiàn)實(shí)時(shí)處理3、故障處理溫度壓力斷電CPU處理外設(shè)外設(shè)外設(shè)CPU如何實(shí)現(xiàn)中斷?中斷系統(tǒng)中斷系統(tǒng)的功能(1)響應(yīng)中斷及返回(2)能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)(3)能實(shí)現(xiàn)中斷嵌套中斷請(qǐng)求中斷請(qǐng)求RETIRETI主程序中斷系統(tǒng)CPU響應(yīng)中斷的條件(1)有中斷請(qǐng)求(2)中斷請(qǐng)求沒(méi)有被屏蔽(3)中斷是開(kāi)放的或者是允許的(4)在現(xiàn)行指令結(jié)束后才響應(yīng)中斷中斷系統(tǒng)中斷系統(tǒng)中斷響應(yīng)及中斷期間應(yīng)做的工作(1)關(guān)中斷(硬件自動(dòng)實(shí)現(xiàn))(2)保留斷點(diǎn)(硬件自動(dòng)實(shí)現(xiàn))(3)保護(hù)現(xiàn)場(chǎng)(軟件完成)(4)給出中斷,入口轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序(硬件自動(dòng)完成)(5)恢復(fù)現(xiàn)場(chǎng)(6)開(kāi)中斷與返回(由RETI指令實(shí)現(xiàn))非預(yù)料事件是指事件發(fā)生的時(shí)間無(wú)法預(yù)知,即中斷源何時(shí)產(chǎn)生中斷不確定,是隨機(jī)的。但事件的性質(zhì)及處理方法則是已知的,確定的,即中斷服務(wù)程序是事先編寫(xiě)好的,只是何時(shí)執(zhí)行未知。中斷源產(chǎn)生中斷的隨機(jī)性,使中斷服務(wù)程序的執(zhí)行也具有隨機(jī)性,即何時(shí)執(zhí)行中斷服務(wù)程序不是在程序中安排好的。中斷系統(tǒng)中斷和子程序調(diào)用的區(qū)別RETI與RET的異同點(diǎn)①相同:均執(zhí)行恢復(fù)斷點(diǎn)操作,即從堆棧中彈出斷點(diǎn)給PC。②不同:RETI將清“0”響應(yīng)時(shí)所置的優(yōu)先級(jí)觸發(fā)器,RET沒(méi)有該功能。中斷系統(tǒng)當(dāng)中斷源產(chǎn)生中斷申請(qǐng)后,不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,只要滿足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,CPU內(nèi)部硬件會(huì)自動(dòng)完成下列響應(yīng)中斷的過(guò)程:①

取中斷類型號(hào)N②

當(dāng)前PSW的內(nèi)容入棧③清IF、TF標(biāo)志為0④當(dāng)前CS的內(nèi)容入棧⑤當(dāng)前IP的內(nèi)容入棧⑥取內(nèi)存單元(0:N×4)字內(nèi)容送IP取中斷子程⑦取內(nèi)存單元(0:N×4+2)字內(nèi)容送CS入口地址此時(shí)CS:IP指向中斷程序的入口,開(kāi)始執(zhí)行中斷程序。保存現(xiàn)場(chǎng)中斷系統(tǒng)中斷響應(yīng)過(guò)程中斷源提出申請(qǐng)→CPU決定是否響應(yīng)→若響應(yīng)轉(zhuǎn)去中斷處理→完成后返回原中斷處。當(dāng)前指令執(zhí)行完的含義CPU正在執(zhí)行一條指令,執(zhí)行完本條指令,響應(yīng)中斷;對(duì)于帶重復(fù)前綴的串指令(如REPMOVSB),執(zhí)行一次重復(fù)和串指令即可響應(yīng)中斷;對(duì)MOV和POP指令,處理對(duì)象為段寄存器,以及STI和IRET指令執(zhí)行完本條指令后,再執(zhí)行一條指令才響應(yīng)中斷。中斷系統(tǒng)在8086/8088中,所有中斷服務(wù)程序的入口地址(中斷向量)集中放在內(nèi)存的最低1K區(qū)域(00000H~003FFH),構(gòu)成一個(gè)中斷向量表

中斷向量表1.中斷向量表的組成及其定位一個(gè)中斷(中斷源、中斷向量)都將指定一個(gè)中斷類型碼,256個(gè)中斷的中斷類型碼為00H~FFH在8086/8088中,一個(gè)中斷服務(wù)程序的入口地址即稱為一個(gè)中斷向量。中斷系統(tǒng)00000H除法錯(cuò)誤

00004H單步中斷

00008H非屏蔽中斷

0000CH斷點(diǎn)中斷

00010H溢出中斷

00014H INTn及可 屏蔽中斷

003FCH

0號(hào)中斷1號(hào)中斷2號(hào)中斷3號(hào)中斷4號(hào)中斷255號(hào)中斷中斷向量表向量地址即為中斷向量在表中的有效地址中斷系統(tǒng)8086/8088的中斷向量表由三個(gè)部分組成:5個(gè)專用中斷(0#~4#)27個(gè)系統(tǒng)使用或保留中斷(5#~31#)224個(gè)用戶定義中斷(32#~255#)每個(gè)中斷向量占4個(gè)內(nèi)存單元前兩個(gè)單元存放中斷向量的偏移地址(IP)后兩個(gè)單元存放中斷向量的段地址(CS)中斷系統(tǒng)中斷向量結(jié)構(gòu)IP斷點(diǎn)IP低8位IP高8位CS低8位CS高8位CS斷點(diǎn)中斷系統(tǒng)00000H 00001H 00002H 00003H 003FCH 003FDH 003FEH 003FFH IPLIPHCSL

CSH中斷向量表00H中斷向量類型碼FFH中斷向量類型碼向量地址…….中斷系統(tǒng)中斷類型碼與中斷向量在中斷向量中所在位置(中斷向量地址)之間的對(duì)應(yīng)關(guān)系為:

中斷向量地址=4×中斷類型碼

例:0C號(hào)中斷向量地址=4×0CH=30H

30H(IPL)31H(IPH)

32H(CSL)33H(CSH)4A號(hào)中斷向量地址=4×4AH=128H128H(IPL)129H(IPH)

12AH(CSL)12BH(CSH)注意:中斷向量地址實(shí)際上為EA。但由于中斷向量表處于地址空間的最低1KB處,所以段地址為0000H。因此,EA就等于該中斷向量的PA的最低位。中斷系統(tǒng)內(nèi)存中斷向量表0:0~3FFH1000:150h3000:0200h0:N×40:N×4+20:0000、、、

0200h3000h、、、

MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、、、、

MOVBX,CX、、、、、、、、、

IRET、、、類型N中斷子程

某中斷源發(fā)申請(qǐng)中斷,申請(qǐng)執(zhí)行類型號(hào)為N的中斷子程響應(yīng)中斷前

SS:SP響應(yīng)中斷后SS:SP

堆棧執(zhí)行IRET后(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h0:3FFH0:0中斷系統(tǒng)從中斷子程返回?cái)帱c(diǎn)處,靠的是執(zhí)行中斷子程最后的指令I(lǐng)RET,從堆棧中取出斷點(diǎn)地址給CS:IP,繼續(xù)執(zhí)行被中斷的程序。故中斷子程最后應(yīng)安排IRET指令。1000:150h3000:200h0:N×40:N×4+20:0000、、、

0200h3000h、、、

MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、

MOVBX,CX、、、

IRET、、、響應(yīng)中斷前

SS:SP響應(yīng)中斷后SS:SP

堆棧執(zhí)行IRET后(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h中斷系統(tǒng)

這種采用向量中斷的方法,CPU可直接通過(guò)向量表轉(zhuǎn)向相應(yīng)的處理程序,而不需要去逐個(gè)檢測(cè)和確定中斷源,因而可以大大加快中斷響應(yīng)的速度。中斷系統(tǒng)8086/8088CPU如何獲取中斷類型號(hào)由前面介紹知,當(dāng)中斷源產(chǎn)生中斷請(qǐng)求后,不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,只要滿足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,CPU內(nèi)部硬件會(huì)自動(dòng)完成響應(yīng)中斷的過(guò)程,共七個(gè)步驟,而第一步就是獲取中斷類型號(hào)。不同的中斷源,8088CPU獲取中斷類型號(hào)的方法不同。中斷系統(tǒng)①CPU執(zhí)行除零或OF為1執(zhí)行INTO指令

除零

固定類型號(hào)00H

OF為1執(zhí)行INTO指令

固定類型號(hào)04H②使用DEBUG下的單步和斷點(diǎn)操作

單步

固定類型號(hào)01H

斷點(diǎn)

固定類型號(hào)03H內(nèi)中斷③執(zhí)行中斷調(diào)用指令I(lǐng)NTN

由指令中給出

指令中指定類型號(hào)N①非屏蔽中斷

引腳NMI上有中斷申請(qǐng)信號(hào)(上升沿信號(hào))

非屏蔽中斷

固定類型號(hào)02H外中斷②可屏蔽中斷(參看中斷響應(yīng)時(shí)序圖)

當(dāng)IF=1,引腳INTR上有中斷申請(qǐng)信號(hào)(高電平信號(hào))

CPU按中斷響應(yīng)周期時(shí)序,從數(shù)據(jù)總線上獲取中斷類型號(hào)

可屏蔽中斷

外部接口送上類型號(hào)中斷系統(tǒng)內(nèi)中斷不需要外部硬件支持,不受IF控制。在上述內(nèi)部中斷中,除單步中斷外,其余都不可屏蔽。

所有類型(內(nèi)、外)的中斷在其處理過(guò)程中,CPU會(huì)自動(dòng)地把狀態(tài)標(biāo)志壓入堆棧,然后清除TF和IF。

8086/8088規(guī)定這些中斷的優(yōu)先級(jí)次序(高到低)為:內(nèi)部中斷、NMI、INTR,優(yōu)先級(jí)最低的是單步中斷。

中斷系統(tǒng)對(duì)于非屏蔽中斷和軟件中斷,其中斷類型號(hào)由CPU內(nèi)部自動(dòng)提供,不需去執(zhí)行中斷響應(yīng)周期讀取中斷類型號(hào)。

FLAGS入棧NNN完成當(dāng)前指令有內(nèi)部中斷嗎?從指令中或內(nèi)部獲得中斷類型號(hào)從外部得到中斷類型號(hào)TEMP=1?令TEMP=TF調(diào)中斷處理程序YYY有NMI中斷嗎?有INTR中斷嗎?TF=1?執(zhí)行下一條指令NNNNY中斷類型號(hào)2YIF=1?中斷類型號(hào)1清IF、TFCS、IP入棧返回?cái)帱c(diǎn)FLAGS出棧IP、CS出棧中斷服務(wù)有NMI?(1)(1)(1)(1)(2)(3)(4)(5)YY8086/8088的中斷處理過(guò)程

中斷系統(tǒng)可編程中斷控制器8259A8259A的引腳、編程結(jié)構(gòu)和工作過(guò)程8259A的編程8259A在IBMPC/XT系統(tǒng)中的應(yīng)用8259A在Pentium機(jī)中的應(yīng)用中斷申請(qǐng)管理接口INT中斷申請(qǐng)接口1網(wǎng)絡(luò)接口2硬盤(pán)接口3軟盤(pán)接口4打印機(jī)8088CPUINTRIF可編程中斷控制器8259A1.向CPU的引腳INTR發(fā)中斷申請(qǐng)信號(hào)當(dāng)有多個(gè)外設(shè)同時(shí)發(fā)出中斷請(qǐng)求時(shí),能按照一定的優(yōu)先級(jí)順序,向CPU發(fā)出中斷申請(qǐng),使CPU能優(yōu)先響應(yīng)優(yōu)先級(jí)最高的外部設(shè)備的中斷申請(qǐng)。2.送中斷類型號(hào)在CPU中斷響應(yīng)周期,針對(duì)不同外設(shè)的中斷請(qǐng)求,向CPU傳送不同的中斷類型號(hào),使CPU執(zhí)行相應(yīng)的中斷子程。中斷申請(qǐng)管理接口的主要功能:在IBMPC機(jī)由8259A可編程中斷控制器(PIC)來(lái)完成??删幊讨袛嗫刂破?259A8259A的引腳雙列直插式芯片,28個(gè)引腳方波鍵盤(pán)保留串口2

硬盤(pán)軟盤(pán)打印機(jī)IOW18.2HzA0CS8259A總線A0數(shù)據(jù)線IORRDWR片選譯碼IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A級(jí)連情況INTAINTINTAINTR串口1

定時(shí)器可編程中斷控制器8259A編程結(jié)構(gòu)SP/ENCA0CA1CA2IORIOW總線D0~D7數(shù)據(jù)線D0~D7INTAINTRA0片選譯碼A5~A9CSA0RD

INTAWRINT

I3I4ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片連接關(guān)系

ICW4

方式控制0111A010010100OCW1中斷屏蔽寄存器IMR

00

OCW2優(yōu)先級(jí)設(shè)置、發(fā)EOI

01

OCW3特殊屏蔽,查詢方式設(shè)置處理部分控制部分00000000

ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級(jí)裁決器VCCGND100A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中斷申請(qǐng)寄存器00000000

可編程中斷控制器8259A4個(gè)初始化命令寄存器

ICW1、ICW2ICW3、ICW43個(gè)操作命令寄存器

OCW1(IMR)

OCW2、OCW3當(dāng)前中斷服務(wù)寄存器ISR中斷申請(qǐng)寄存器IRR

8259A內(nèi)部有9個(gè)可讀寫(xiě)的寄存器8259A的編程結(jié)構(gòu)

I3I4ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制處理部分控制部分00000000

ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器00000000

中斷屏蔽寄存器IMROCW210010100

00

01

OCW3OCW18259A中斷控制器可編程中斷控制器8259A(1)初始化命令字(ICW1-ICW4)

決定8259A的工作方式

通常是在計(jì)算機(jī)系統(tǒng)啟動(dòng)時(shí)在初始程序設(shè)置,一旦設(shè)定,一般在系統(tǒng)工作過(guò)程不再改變。(2)操作命令字(OCW1,OCW2,OCW3)

在應(yīng)用程序中設(shè)定,動(dòng)態(tài)地控制CPU處理中斷的過(guò)程(3)ISR和IRR存放當(dāng)前8259A的狀態(tài)通過(guò)讀取ISR和IRR的內(nèi)容,可了解當(dāng)前8259A工作情況可編程中斷控制器8259A8259A的工作過(guò)程可編程中斷控制器8259A分兩步:(1)處理外設(shè)中斷申請(qǐng),決定是否向CPU發(fā)中斷申請(qǐng)信號(hào)。(2)若發(fā)中斷申請(qǐng)信號(hào),且CPU響應(yīng),則在CPU中斷響應(yīng)周期送出中斷類型號(hào)。(1)處理外設(shè)中斷申請(qǐng),決定是否向CPU發(fā)中斷申請(qǐng)信號(hào)②中斷屏蔽寄存器IMR決定IRR中的中斷申請(qǐng)是否進(jìn)入優(yōu)先級(jí)裁決器PR。IMR對(duì)應(yīng)位為

0,允許中斷申請(qǐng)進(jìn)入優(yōu)先級(jí)裁決器,為1,不允許進(jìn)入,中斷申請(qǐng)被IMR屏蔽。①中斷申請(qǐng)寄存器IRR鎖存外部的中斷申請(qǐng)。若IR0~IR7引腳上有中斷申請(qǐng),則將IRR相應(yīng)位置1可編程中斷控制器8259A(1)處理外設(shè)中斷申請(qǐng),決定是否向CPU發(fā)中斷申請(qǐng)信號(hào)③當(dāng)前中斷服務(wù)寄存器ISR記錄CPU正在響應(yīng)的中斷。

ISR中的某位為1,表示CPU正在響應(yīng)此級(jí)中斷,

ISR中的某位為0,表示CPU沒(méi)有或已響應(yīng)完此級(jí)中斷,④

優(yōu)先級(jí)裁決器PR據(jù)新進(jìn)入的中斷申請(qǐng)和ISR的內(nèi)容,

決定是否發(fā)中斷申請(qǐng)信號(hào)。如果進(jìn)入的中斷申請(qǐng)比ISR中記錄的中斷優(yōu)先級(jí)高,則通過(guò)8259A的INT引腳向CPU發(fā)出中斷請(qǐng)求信號(hào);如果進(jìn)入的中斷申請(qǐng)不比ISR中記錄的中斷優(yōu)先級(jí)高,同級(jí)或低級(jí),則不向CPU發(fā)中斷請(qǐng)求信號(hào)??删幊讨袛嗫刂破?259A①

中斷申請(qǐng)寄存器IRR鎖存外部的中斷申請(qǐng)。若IR0~IR7引腳上有中斷申請(qǐng),則將IRR相應(yīng)位置1IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制00000000

ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中斷屏蔽寄存器IMR

00

OCW2優(yōu)先級(jí)、發(fā)EOI

OCW3特殊屏蔽設(shè)置PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器00000000

10010100INTR11可編程中斷控制器8259A②中斷屏蔽寄存器IMR決定IRR中的中斷申請(qǐng)是否進(jìn)入優(yōu)先級(jí)裁決器PR。

IMR對(duì)應(yīng)位為0,允許中斷申請(qǐng)進(jìn)入優(yōu)先級(jí)裁決器,為1,不允許進(jìn)入,中斷申請(qǐng)被IMR屏蔽。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制00000000

ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中斷屏蔽寄存器IMR

00

OCW2優(yōu)先級(jí)、發(fā)EOI

OCW3特殊屏蔽設(shè)置PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器10000001

10010100INTR可編程中斷控制器8259A③

當(dāng)前中斷服務(wù)寄存器ISR記錄CPU正在響應(yīng)的中斷。ISR中的某位為1,表示CPU正在響應(yīng)此級(jí)中斷,即正在執(zhí)行此中斷源的中斷子程序;ISR中的某位為0,表示CPU沒(méi)有或已響應(yīng)完此級(jí)中斷,即不在執(zhí)行此中斷源的中斷子程序IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制00100000

ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中斷屏蔽寄存器IMR

00

OCW2優(yōu)先級(jí)、發(fā)EOI

OCW3特殊屏蔽設(shè)置PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器10000001

10010100INTR可編程中斷控制器8259A④優(yōu)先級(jí)裁決器據(jù)新的中斷申請(qǐng)和ISR的內(nèi)容,決定是否發(fā)中斷申請(qǐng)信號(hào)。如果進(jìn)入的中斷申請(qǐng)比ISR中記錄的中斷優(yōu)先級(jí)高,則通過(guò)8259A的INT引腳向CPU發(fā)出中斷請(qǐng)求信號(hào);如果進(jìn)入的中斷申請(qǐng)不比ISR中記錄的中斷優(yōu)先級(jí)高,同級(jí)或低級(jí),則不向CPU發(fā)中斷請(qǐng)求信號(hào)。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制00100000

ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中斷屏蔽寄存器IMR

00

OCW2優(yōu)先級(jí)、發(fā)EOI

OCW3特殊屏蔽設(shè)置PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器10000001

10010100INTR可編程中斷控制器8259A(2)若發(fā)中斷申請(qǐng)信號(hào),且CPU響應(yīng),則在CPU中斷響應(yīng)周期送出中斷類型號(hào)CPU接收到INTR上的中斷申請(qǐng)信號(hào)后:如果IF標(biāo)志為0,則CPU不響應(yīng)此中斷申請(qǐng)信號(hào),即中斷申請(qǐng)被IF屏蔽。如果IF標(biāo)志為1,則處理完當(dāng)前的指令后,進(jìn)入中斷響應(yīng)周期通過(guò)INTA引腳發(fā)出兩個(gè)負(fù)脈沖信號(hào),從數(shù)據(jù)總線上獲取中斷類型號(hào),進(jìn)入中斷響應(yīng)的過(guò)程??删幊讨袛嗫刂破?259A將ISR中相應(yīng)位置1,表示CPU響應(yīng)此級(jí)中斷,執(zhí)行此中斷源的中斷子程。把IRR中對(duì)應(yīng)的位清0,清除IRR中鎖存的中斷申請(qǐng)信號(hào)。8259A在接收到第一個(gè)INTA中斷響應(yīng)信號(hào)后:00100000

ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器10000001

ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制OCW1

中斷屏蔽寄存器IMR

00

OCW2優(yōu)先級(jí)、發(fā)EOI

OCW3特殊屏蔽設(shè)置10010100IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RDWR

INTAINTD0~D7INTR01可編程中斷控制器8259A①通過(guò)數(shù)據(jù)線,將被響應(yīng)申請(qǐng)的中斷類型號(hào)送給CPU。類型號(hào)由ICW2提供,在初始化8259A時(shí)已設(shè)定好。②CPU獲得中斷類型號(hào)后,進(jìn)入CPU響應(yīng)中斷的過(guò)程,執(zhí)行中斷子程,處理中斷源申請(qǐng)的功能。8259A在接收到第二個(gè)INTA中斷響應(yīng)信號(hào)后:00100000

ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器10000001

ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制OCW1

中斷屏蔽寄存器IMR

00

OCW2優(yōu)先級(jí)、發(fā)EOI

OCW3特殊屏蔽設(shè)置10010100IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RDWR

INTAINTD0~D7INTR01可編程中斷控制器8259A①取中斷類型號(hào)N②當(dāng)前PSW的內(nèi)容入棧③清IF、TF標(biāo)志為0④當(dāng)前CS的內(nèi)容入棧⑤當(dāng)前IP的內(nèi)容入棧⑥取內(nèi)存單元(0:N×4)字內(nèi)容送IP取中斷子程⑦取內(nèi)存單元(0:N×4+2)字內(nèi)容送CS入口地址此時(shí)CS:IP指向中斷程序的入口,開(kāi)始執(zhí)行中斷程序。保存現(xiàn)場(chǎng)CPU響應(yīng)中斷過(guò)程:執(zhí)行完中斷子程中最后一條指令I(lǐng)RET后,返回被中斷處,繼續(xù)執(zhí)行被中斷的程序??删幊讨袛嗫刂破?259A4個(gè)初始化命令寄存器

ICW1、ICW2ICW3、ICW43個(gè)操作命令寄存器

OCW1(IMR)

OCW2、OCW3當(dāng)前中斷服務(wù)寄存器ISR中斷申請(qǐng)寄存器IRR

8259A內(nèi)部有9個(gè)可讀寫(xiě)的寄存器8259A的編程結(jié)構(gòu)

I3I4ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制處理部分控制部分00000000

ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器00000000

中斷屏蔽寄存器IMROCW210010100

00

01

OCW3OCW18259A中斷控制器可編程中斷控制器8259A8259A有兩個(gè)I/O端口地址對(duì)9個(gè)寄存器的讀寫(xiě)均通過(guò)這兩個(gè)端口實(shí)現(xiàn)根據(jù)(1)寫(xiě)入數(shù)據(jù)的特征位(2)寫(xiě)入的先后順序區(qū)分是對(duì)哪個(gè)寄存器進(jìn)行操作

I3I4ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制處理部分控制部分00000000

ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器00000000

中斷屏蔽寄存器OCW210010100

00

01

OCW3OCW18259A中斷控制器D0~D7A0CSRDWR80111A0100A0可編程中斷控制器8259AA0=0偶地址端口A0=1奇地址端口要求掌握如下編程:8259A的編程方法8259A有多種工作方式,這些工作方式均可編程選擇,使用相當(dāng)靈活??删幊讨袛嗫刂破?259A(1)通過(guò)中斷屏蔽寄存器IMR的讀寫(xiě),設(shè)置中斷屏蔽字(2)通過(guò)OCW2操作命令寄存器,發(fā)中斷結(jié)束EOI命令通過(guò)往寄地址端口寫(xiě)入IMR內(nèi)容實(shí)現(xiàn)對(duì)應(yīng)位為0,允許該級(jí)中斷申請(qǐng)進(jìn)入對(duì)應(yīng)位為1,禁止該級(jí)中斷申請(qǐng)進(jìn)入(1)設(shè)置中斷屏蔽字IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中斷類型號(hào)

ICW3主從片關(guān)系

ICW4

方式控制00000000

ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中斷屏蔽寄存器IMR

00

OCW2優(yōu)先級(jí)、發(fā)EOI

OCW3特殊屏蔽設(shè)置PR優(yōu)先級(jí)裁決器IRR中斷申請(qǐng)寄存器10000001

10010100INTR可編程中斷控制器8259A

新增允許IR2的中斷申請(qǐng)

INAL,21H;讀入原IMR的內(nèi)容

ANDAL,11111011B;D2=0,允許IR2的中斷申請(qǐng)

OUT21H,AL;寫(xiě)入IMR

溫馨提示

  • 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)論