微型計算機 第6章 輸入輸出與中斷_第1頁
微型計算機 第6章 輸入輸出與中斷_第2頁
微型計算機 第6章 輸入輸出與中斷_第3頁
微型計算機 第6章 輸入輸出與中斷_第4頁
微型計算機 第6章 輸入輸出與中斷_第5頁
已閱讀5頁,還剩107頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章輸入輸出與中斷

6.1輸入/輸出接口概述

6.2CPU與外設(shè)之間的數(shù)據(jù)傳送方式

5

6.3中斷技術(shù)

I6.4;中斷控制器8259A

憶…….三.......................................................................

6.1輸入/輸出接口概述

A在CPU與外部設(shè)備進行信息交換時至少有兩方面的困難:

■CPU和外設(shè)的速度差異非常大

■CPU不能和外設(shè)直接通過引腳連接

ACPU和外設(shè)之間必須要設(shè)置輸入/輸出接口(I/O接口),作為

CPU與外設(shè)進行信息交換的橋梁。

1.6工1:輸入/而出接口的功能|

1.6.1.2:CPU寫輸入/輸由接口乏而的信息

16.1.3;輸入/輸由接口的編蚯方式I

6.1.1輸入/輸出接口的功能

(1)I/O地址譯碼與設(shè)備選擇

I(2)|宿總的輸入扁曲;_____________

I.(?)備本、藪搪相液態(tài)的緩沖與鎖存:

(1)1/0地址譯碼與設(shè)備選擇

所有外設(shè)都通過I/O接口掛接在系統(tǒng)總線上,在

同一時刻,總線只允許一個外設(shè)與CPU進行數(shù)

據(jù)傳送。

*(2)信息的輸入/輸出

A通過I/O接口,CPU可以從外部設(shè)備輸入各種

信息,也可將處理結(jié)果輸出到外設(shè);

>CPU可以通過向I/O接口寫入命令字來控制I/O

接口的工作,還可以隨時監(jiān)測與管理I/O接口

和外設(shè)的工作狀態(tài);

>I/O接口還可以通過接口向CPU發(fā)出中斷請求。

&⑶命令、數(shù)據(jù)和狀態(tài)的緩沖與鎖存

>因為CPU與外設(shè)之間的時序和速度差異很大,

為了能夠確保計算機和外設(shè)之間可靠地進行

信息傳送,要求接口電路應(yīng)具有信息緩沖能

力。

A接口不僅應(yīng)緩存CPU送給外設(shè)的信息,也要

緩存外設(shè)送給CPU的信息。以實現(xiàn)CPU與外

設(shè)之間信息交換的同步。

(4)信息轉(zhuǎn)換

I/O接口還要實現(xiàn)信息格式變換、電平轉(zhuǎn)換、碼

制轉(zhuǎn)換、傳送管理以及聯(lián)絡(luò)控制等功能。

6.1.2CPU與輸入/輸出接口之間的信息

E1.數(shù)據(jù)信息

①數(shù)字量:以二進制形式表示的數(shù)據(jù)信息。

②模擬量:當(dāng)計算機處理現(xiàn)場連續(xù)變化的非電量

的物理量時,需通過傳感器把這些非電量的

物理量轉(zhuǎn)化為連續(xù)變化的模擬電壓或電流一

模擬量。模擬量再經(jīng)過A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)

字量,才能輸入計算機處理。

③開關(guān)量:是指可用2個狀態(tài)表示的信息,如開

關(guān)的開和閉、電機的起和停等。一個開關(guān)量

只需要一位二進制數(shù)表示。

42.狀態(tài)信息

表示外設(shè)當(dāng)前所處的狀態(tài):

■輸入時,輸入設(shè)備是否準(zhǔn)備好(READY)

■輸出時,輸出設(shè)備是否處于忙(BUSY)

.3.控制信息

由CPU發(fā)出、用于控制I/O接口的工作方式以及

外設(shè)的啟動和停止等信息。

數(shù)據(jù)信息、狀態(tài)信息和控制信息是屬于不同性質(zhì)的

信息,需要分別傳送。

I/O端口包括:數(shù)據(jù)端口、狀態(tài)端口和控制端口。

■CPU通過數(shù)據(jù)端口從外設(shè)讀入數(shù)據(jù)或向外設(shè)輸出

數(shù)據(jù)

■從狀態(tài)端口讀入設(shè)備的當(dāng)前狀態(tài)

■通過控制端口向外設(shè)發(fā)出控制命令

一個I/O接口可能僅包含其中的一類或兩類端口,當(dāng)

然也可能包含全部三類端口。

,6.L3輸入/輸出端口的編址方式

A在微型計算機系統(tǒng)中,CPU對外設(shè)的訪問實

際上是對外設(shè)接口電路中相應(yīng)的I/O端口進行

訪問。

AI/O端口的編址通常有兩種不同的方式:

F…”—?…~1.................................:

I1;統(tǒng)一編址I

12ii立編定;

:;:

LI/O端口統(tǒng)一編址

>又稱為存儲器映射編址方式,即把每個I/O端

口都當(dāng)作一個存儲單元看待,按照存儲單元地址空間

的編址方式統(tǒng)一安琲端口留痣址。00000H

>優(yōu)點:可以用訪問內(nèi)存的方法來訪問I/O端口。

由于訪問內(nèi)存的指令種類豐富、尋址方式多

樣,因此這種編址方式為訪問外設(shè)帶耒了很內(nèi)存地址

(共960K)

大的靈活性。同時,I/O控制信號也可占存儲

器的控制信號共用,從而給應(yīng)用帶來了很大

的方便。

EFFFFII

FOOOOH

>缺點:外設(shè)占用了一部分內(nèi)存地址空間,這I/。地址

就減少了內(nèi)存可用的地址范圍。此外從指令(共64K)

上不易區(qū)分當(dāng)前是對內(nèi)存進行操作還是對外FFFFFH

設(shè)進行操作。

圖6.2存儲器和】()端口的統(tǒng)一編址

>IntelMCS-51等系列的單片微型計算機和

Motorola公司的MC6800、MC68000及

68Ho)5等微處理器就采用統(tǒng)一編址方式。

2.1/0端口獨立編址

>內(nèi)存地址空間和外設(shè)地址空間是相互獨立的。

>8086/8088系統(tǒng)的內(nèi)存地址范圍為00000H?FFFFFH,共1M空

間,而外設(shè)端口的地址范圍為0000H?FFFFH,共64K空間。

這兩個危址空間相互獨立,互不影響。

>CPU在尋址內(nèi)存和外設(shè)時,使用不同的控制信號來隹分當(dāng)前

是對應(yīng)存操作還是對I/O端口操作。例如8086的M/IO和8088

的IO/M信號。

>指令系統(tǒng)中單獨設(shè)置有專用的I/O指令。

優(yōu)點:修輸入輸出指令和訪問存儲器的指令明顯區(qū)分開,使

程序清晰,可讀性好,而且I/O指令長度短,執(zhí)行的速度快,

近木苫由內(nèi)存空間;I/O地址譯碼電路裝簡單,

缺點:必須有專門的IN和OUT指令,這些指令的功能沒有訪

問存儲器指令強,也增加了指令系統(tǒng)的規(guī)模。另夕卜,CPU要

能提供區(qū)分存儲器和I/O的控制信號。

6.2CPU與外設(shè)之間的數(shù)據(jù)傳送方式

3元蔡件方式

|6.2?2;“欣;

6.23中斷方式

6.2.4DMA方式

6.2.1無條件方式

>無條件傳送方式主要用于外部控制過程的各種動作是固定的、

且是已知的,控制的對象是一些簡單的、隨時“準(zhǔn)備好”的

外設(shè)。也就是說,建這些設(shè)備工祚時,隨時都可以接收CPU

輸出的數(shù)據(jù),或著它們的數(shù)據(jù)隨時都可以被CPU讀出。

>在與這樣的外設(shè)交換數(shù)據(jù)的過程中,數(shù)據(jù)交換與指令的執(zhí)行

是同步的,因此這種方式也稱為同步傳送方式。

圖6.3圖6.4

>優(yōu)點是程序簡單,所需的硬件和軟件都比較少,傳送速度快,

但必須在確信外設(shè)已準(zhǔn)備好椿況下才能使用,否則就會出錯。

>對于諸如開關(guān)、發(fā)光二極管等這一類簡單設(shè)備來說,就是采

用無條件的傳送方式。

&無條件傳送的輸入方式

數(shù)據(jù)總線

地址總線

來自

外設(shè)

圖6.3無條件傳送的輸入方式

當(dāng)CPU從外部設(shè)備輸入數(shù)據(jù)時,來自外設(shè)的數(shù)據(jù)已輸入至

三態(tài)緩沖器,CPU執(zhí)行一條IN指令,將地址信號組成的端

口地址送上地址總線,經(jīng)過譯碼,選,對應(yīng)的端口,然后

在讀信號RD=O期間將數(shù)據(jù)讀入。

無條件傳送的輸出方式

圖6.4無條件傳送的輸出方式

當(dāng)CPU向外部設(shè)備輸出數(shù)據(jù)時,CPU只執(zhí)行一條

OUT指令,輸出的過程類似,只是必須在寫信號

有效時將數(shù)據(jù)寫入輸出鎖存器,由它再把信息通

過外設(shè)輸出。

6.2.2查詢方式

>查詢方式的工作過程

>分為:

■查詢式輸入

■杳詢式輸出

>特點:利用查詢方式進行數(shù)據(jù)輸入輸出的過

程中,CPU將大量時間耗費在讀取和檢測外

設(shè)狀態(tài)上,真正用于傳送數(shù)據(jù)的時間很少,

這樣大大降低了CPU的效率。

查詢傳送的兩個環(huán)節(jié)

⑴查詢環(huán)節(jié)

尋址狀態(tài)端口

讀取狀態(tài)寄存器的標(biāo)志位

若不就緒就繼續(xù)查詢,直至就緒

⑵傳送環(huán)節(jié)

尋址數(shù)據(jù)端口

是輸入,通過輸入指令從數(shù)據(jù)端口讀入數(shù)據(jù)

是輸出,通過輸出指令向數(shù)據(jù)端口輸出數(shù)據(jù)

11.查詢式輸入

圖6.5查詢式輸入的接口電路

程序段

3查詢式輸入程序段

在查詢輸入的過程中,讀入的數(shù)據(jù)是8位或16位,而讀入的狀態(tài)位是1位,如

圖所示。設(shè)狀態(tài)口的地址為PORTS1,輸入數(shù)據(jù)口的地址為PORT_IN,傳送

數(shù)據(jù)的總字節(jié)數(shù)為COUNT1,則查詢式輸入數(shù)據(jù)的程序段為:

數(shù)據(jù)端口(8位)[DTI―—――――回

MOVBX,0;初始化指針(輸入)L

MOVCX,COUNT_1;字節(jié)數(shù)8位

MOVDX,PORTS1狀學(xué)W位

[讀入狀態(tài)位(輸入)

READ.Sl:INAL,DX??READY”(I位)------

TESTAL,01H;數(shù)據(jù)準(zhǔn)備好否?圖6.6杳ill]式輸入的數(shù)據(jù)和狀態(tài)信息

JZREAD.Sl;否,循環(huán)檢3則

MOVDX,PORTIN

INAL,DXC已準(zhǔn)備好,讀入數(shù)據(jù)

MOV[BX],AL;存到內(nèi)存緩沖區(qū)中

INCBX;修改地址指針

LOOPREAD_S1;未傳送完,繼續(xù)傳送

2.查詢式輸出

圖6.7查詢式輸出的接口電路

程序段

查詢式輸出程序段

在查詢輸出的過程中,輸出的數(shù)據(jù)是8位或16位,而讀入的狀態(tài)位是1位,如

圖所示。設(shè)狀態(tài)口的地址為P0RT_S2,輸出數(shù)據(jù)口的地址為PORTOUT,

傳送數(shù)據(jù)的總字節(jié)數(shù)為COUNT21若輸出的數(shù)據(jù)放在2000H開始的一段存

儲區(qū)中,則查詢式輸出數(shù)據(jù)的程序段為:

MOVBX,2000H;初始化地址指針

MOVCX,COUNT2;字節(jié)數(shù)

MOVDX,PORTS2

READS2:INAL,DX;暴入狀態(tài)位

TESTAL,80H;外設(shè)準(zhǔn)備好否?圖6.8杳詢式輸出的數(shù)據(jù)和狀態(tài)信息

JNZREADS2;否,循環(huán)檢測

MOVAL,-[BX];從內(nèi)存緩沖區(qū)中取數(shù)據(jù)

MOVDX,PORTOUT

OUTDX,AL「輸出數(shù)據(jù)

INCBX;修改地址指針

LOOPREADS2;未傳送完,繼續(xù)傳送

6.2.3中斷方式

當(dāng)CPU需要輸入時,若外設(shè)的輸入數(shù)據(jù)已存入寄存

器;需要輸出時,若外設(shè)已把上一個數(shù)據(jù)輸出,輸

出寄存器已空,這時為可由夕下設(shè)向CPU發(fā)出,斷請

錄。

CPU在接到請求后若條件允許,則暫停(或中斷)正在

進行的工作而轉(zhuǎn)去對該外設(shè)服務(wù),并在服務(wù)結(jié)束后

回到原來被中斷西地方繼續(xù)原萊的工作。

中斷流程圖6.10

特點:利用中斷方式進行數(shù)據(jù)傳送,不僅大大提高

了CPU效率,還能夠?qū)ν庠O(shè)的請求做出實時響應(yīng)。

尤其是在外設(shè)出現(xiàn)故障,利用中斷方式可以及時做

出處理,避免不必要的損失。

斷流程

主程序

中斷服務(wù)程序

中斷請求

對外設(shè)

進行處理

斷點

繼續(xù)執(zhí)行返回斷點

中斷傳送方式的接口電路

(中斷響應(yīng)信號)

圖6.10中斷傳送方式的接口電路

L6.2.4DMA方式

直接存儲器存取(DirectMemoryAccess)

DMA)方式是通過得殊的破件電路(DMA控制

器)來控制存儲器與外設(shè)直接進行數(shù)據(jù)傳送。

在這種方式下,CPU放棄對總線的管理,而

由DMA控制器來控制。

由于CPU只啟動而不干預(yù)數(shù)據(jù)傳送過程,整

個過程只由硬件完成不需要軟件介入,所以

這種方式的數(shù)據(jù)傳輸率很高。

工作過程

DMA的工作過程

>當(dāng)外設(shè)準(zhǔn)備好,可以進行DMA傳送時,外設(shè)向DMA控制器

發(fā)出DMA傳送請求信號(DRQ)。

>DMA控制器收到請求后,向CPU發(fā)出“總線請求”信號

HOLD,表示希望占用總線。

>CPU在完成當(dāng)前總線周期后會立即對HOLD信號進行響應(yīng)。

響應(yīng)包括兩個方面:一是CPU4尋藪據(jù)總線、地址總殯和相應(yīng)

的控制信號線均置為高阻態(tài),由此放棄對總線的控制權(quán);另

一方面,CPU向DMA控制器發(fā)出“總線響應(yīng)”信號(HLDA)。

>DMA控制器收到HLDA信號后,就開始控制總線,并向外設(shè)

發(fā)出DMA響應(yīng)信號DACK。

>DMA控制器送出地址信號和相應(yīng)的控制信號,實現(xiàn)外設(shè)與內(nèi)

存或內(nèi)存與內(nèi)存之間的直接數(shù)據(jù)傳送。

>數(shù)據(jù)傳送完成后,DMA控制器撤銷對CPU的請求信號,CPU

撤銷保持響應(yīng)信號并恢復(fù)對總線的控制。

6.3中斷技術(shù)

6.3]中斷概述|

6.3?2;中斷的處理過程

6.3.1中斷概述

1;中斷源及其分類

2中斷系統(tǒng)及其功能

3中斷優(yōu)先級的確定

1.中斷源及其分類

>引起中斷的事件就稱為中斷源。

>分為兩大類:

■內(nèi)部中斷源:來自CPU內(nèi)部,如:CPU執(zhí)行指令

時產(chǎn)生的異常、特殊操作引起的異常以及由程序

員安排在程序中的INTn軟件中斷指令。中斷的控

制完全是在CPU內(nèi)部實現(xiàn)的。

■外部中斷源:來自CPU外部,如:如鍵盤、打印

機、定時器時間到、電源掉電、硬件出錯等。利

用CPU的兩條中斷輸入信號線INTR和NMI親告訴

CPU已發(fā)生了中斷事件。

臺匕

2.中斷系統(tǒng)及其功目匕

圖6.11中斷的簡單過程示意

★I實現(xiàn)幣新響應(yīng)及:返回

★:岐現(xiàn)任先權(quán)排隊

k1)實現(xiàn)中斷響應(yīng)及返回

當(dāng)某個中斷源發(fā)出中斷請求時,CPU能根據(jù)條件決

定是否響應(yīng)該中斷請求。

若允許響應(yīng),則CPU必須在執(zhí)行完現(xiàn)行指令后:

■保護斷點和現(xiàn)場(即把斷點處的斷點地址和各寄存

器的內(nèi)容與標(biāo)志位的狀態(tài)推入堆棧);

■轉(zhuǎn)到需要處理的中斷服務(wù)程序的入口;

■清除中斷請求觸發(fā)器。

當(dāng)處理完中斷服務(wù)程序后,再恢復(fù)現(xiàn)場和斷點地址,

使CPU返回斷點,繼續(xù)執(zhí)行主程序。

2)實現(xiàn)優(yōu)先權(quán)排隊

A在實際系統(tǒng)中有多個中斷源時,有可能出現(xiàn)

兩個或兩個以上中斷源同時提出中斷請求的

情況,而CPU同一時刻只能接受一個中斷申

請。這樣就必須要設(shè)計者事先根據(jù)輕重緩急,

給每個中斷源一個中斷優(yōu)先權(quán)。

A當(dāng)多個中斷源同時發(fā)出中斷申請時,CPU能

找到優(yōu)先級別最高的中斷源,響應(yīng)它的中斷

請求。在優(yōu)先權(quán)級別最高的中斷源處理了以

后)再響應(yīng)級別較低的中斷源。

y3)高級中斷源能中斷低級的中斷處理

>當(dāng)CPU響應(yīng)某一中斷源的請求,在進行中斷

處理時,若有優(yōu)先級別更高的中斷源發(fā)出中

斷申請,則CPU要能中斷正在進行中的中斷

服務(wù)程序,保留這個程序的斷點和現(xiàn)場(類似

于子程序嵌套),響應(yīng)高級中斷,在高級中斷

處理完以后,再繼續(xù)執(zhí)行被中斷的中斷服務(wù)

程序。這就形成了中斷嵌套,如圖6.12所示。

>兩個中斷形成的是兩重中斷(或兩級嵌套),還

可以進行多重中斷(或多級嵌套)。

圖6.12中斷嵌套過程

圖6.12中斷嵌套過程

3.中斷優(yōu)先級的確定

>當(dāng)系統(tǒng)具有多個中斷源時,就有可能在某一時刻有

兩個以上的中斷源同時發(fā)出中斷請求,而CPU往往

只有一條中斷請求線,并且任一時刻只能響應(yīng)并處

理一個中斷,這就要求CPU能識別出是哪些中斷源

申請了中斷并找出優(yōu)先級最高的中斷源對其進行響

應(yīng),在處理完該中斷源后,再響應(yīng)級別較低的中斷

源的請求。

>中斷優(yōu)先權(quán)的確定方法:

I.★_.I軟..侔..方..法:I

「d★—;U.硬..件.方..法.I;

1)通過軟件確定中斷優(yōu)先權(quán)

?CPU響應(yīng)中斷后,就用軟件查詢以確定是哪些外設(shè)申

請中斷,并判斷它們的優(yōu)先權(quán)。

?例如,把8個外設(shè)的中斷請求觸發(fā)器組合起來,作為

一■個端口,并賦予設(shè)著號,如圖6.13所示。把各個,卜

設(shè)的中斷請求信號相“或”后,作為INTR信號,向

CPU送出中斷請求。當(dāng)CPU響應(yīng)中斷時,把中斷寄存

器的狀態(tài),作為一個外設(shè)讀入CPU,逐位檢測它們的

狀態(tài),若有中斷請求就轉(zhuǎn)到相應(yīng)的服務(wù)程序入口。這

時,中斷寄存器各位查詢的先后次序就是相應(yīng)中斷源

的優(yōu)先級別高低次序。

?實現(xiàn)簡單,調(diào)整優(yōu)先權(quán)次序方便,但在中斷源較多的

懵況下,由詢問轉(zhuǎn)至相應(yīng)的服務(wù)程序的入口時間長。

圖6.13通過軟件查詢確定優(yōu)先權(quán)

端口地址2011

圖6.13通過軟件查詢確定優(yōu)先權(quán)

2)硬件優(yōu)先權(quán)排隊電路

>利用專用的硬件電路或中斷控制器來安排各

中斷源的優(yōu)先級別。

A破件判優(yōu)電路的形式很多,下面介紹兩種常

用的硬件判優(yōu)方法:

I.★.|鏈?zhǔn)絻?yōu):先權(quán)排隊由路:

…?J............................................................;

區(qū):優(yōu)先權(quán)編碼電路;

(1)鏈?zhǔn)絻?yōu)先權(quán)排隊電路

>鏈?zhǔn)絻?yōu)先權(quán)排隊的基本思想是將所有的中斷源構(gòu)成一個鏈,排在鏈前面

的中斷源的優(yōu)先級別高于排在后邊的,高級別的中斷會自動封鎖低優(yōu)先

級別的中斷。

>如圖6:14所示:在電路中,每個外設(shè)對應(yīng)的接口都有一個中斷邏輯電路,

CPU響應(yīng)市斷時發(fā)出的INTA信號沿著這些邏輯電路串接段的鏈從前往后

傳遞。

>當(dāng)多個輸入有中斷請求,則由中斷輸入信號的“或”電路產(chǎn)生INTR信號,

送至CPU。當(dāng)CPU在現(xiàn)行指令執(zhí)行完后,響應(yīng)中斷,發(fā)出中斷響應(yīng)信號。

當(dāng)中斷響應(yīng)為高電平,若F/FAs宥中斷請求,則它的輸出為高,于是與門

A1輸出為高,由它控制轉(zhuǎn)至中斷1的服務(wù)程序的入口;且門A2輸出為低電

平;因而使門B「和C2等所有下面各級門的輸入和輸出全為低電

平,即屏蔽了所有其他的各級中斷。

>若第一級沒有中斷請求,即F/FAs=O,則中斷輸出1為低電平,但門A2的

輸出卻為高電平,把中斷響應(yīng)傳遞至中斷請求2。若此時F/FBs=l,則與

門Bi輸出為高電平,控制轉(zhuǎn)去執(zhí)行中斷2的服務(wù)程序;此時與門B2的輸出

為低,因而屏蔽了以下各級中斷。以此類推。

>該方法的優(yōu)先權(quán)判定速度快,但由于鏈?zhǔn)脚抨犑怯布溄樱灰渍{(diào)整優(yōu)

憲叔次序,且對硬件故障敏感。

圖6.14鏈?zhǔn)絻?yōu)先權(quán)排隊電路

中斷響應(yīng)(來自CPU)

中斷輸入1

中斷輸入2

中斷輸入3

中斷輸入4

(2)優(yōu)先權(quán)編碼電路

>用編碼器和比較器實現(xiàn)優(yōu)先權(quán)排隊電路,如圖6.15所示。

>若有8個中斷源,當(dāng)任一個有中斷請求時,通過“或”門,即可有一個中斷請求

信號產(chǎn)生,但它能否送至CPU的中斷請求線,還要受比較器的控制(若優(yōu)先權(quán)失

效信號為低電平,則與門2關(guān)閉)。

>8條中斷輸入線的任一條,經(jīng)過編碼器可以產(chǎn)生三位二進制優(yōu)先權(quán)編碼&A]Ao,

優(yōu)先權(quán)最高的線的編碼為111,優(yōu)先權(quán)最低的線的編碼為000。而且若宥多個輸入

線同時輸入,則編碼器只輸出優(yōu)先權(quán)最高的編碼。

>正在進行中斷處理的外設(shè)的優(yōu)先權(quán)編碼,通過CPU的數(shù)據(jù)總線,送至優(yōu)先權(quán)寄存

器,然后輸出編碼B2BN0至比較器,以上過程是由軟件實現(xiàn)的。

>比較器比較編碼A2AA與BzBiB。的大小,若AWB,則“A〉B”端輸出低電平,封

鎖與門1,就不向CPU差出新的中斷申請(即當(dāng)CPU正在處理中斷時,當(dāng)宥同級或

低級的中斷源申請中斷時,優(yōu)先權(quán)排隊線路就屏蔽它們的請求);只有當(dāng)A〉B時,

比較器輸出端才為高電平,打開與門1,將中斷請求信號送至CPU的INTR輸入端,

CPU就市斷正隹進行的+斷處理程序,轉(zhuǎn)去響應(yīng)更高級的市斷。

>若CPU不在進行中斷處理時(即在執(zhí)行主程序),則優(yōu)先權(quán)失效信號為高電平,當(dāng)

宥任一中斷源請求中斷時,卻能通過與門2,發(fā)出INTR信號。

>這樣的優(yōu)先權(quán)電路,當(dāng)外設(shè)的個數(shù)W8時,則它們公用一個產(chǎn)生中斷矢量的電路,

它有三位由比較器的編碼A2A]A。供給,就能做到不同的編碼轉(zhuǎn)入不同的入口地址。

圖6.15優(yōu)先權(quán)編碼電路

圖6.15優(yōu)先權(quán)編碼電路

6.3.2中斷的處理過程

3...;中斷處理

1.中斷請求

外設(shè)需要CPU服務(wù)時,首先要發(fā)出一個有效的中斷

請求信號送到CPU的中斷輸入端。

中斷請求信號分為邊沿觸發(fā)和電平觸發(fā)。一般來說,

CPU能夠即時予以響應(yīng)的中斷可以采用邊沿觸發(fā),

而不能即時響應(yīng)的中斷則應(yīng)采用電平觸發(fā),否則中

斷請求信號就會丟失。

8088/8086CPU的NMI為邊沿觸發(fā),而INTR為電平觸

發(fā)。為了保證產(chǎn)生的中斷能被CPU處理,INTR中斷

請求信號應(yīng)保持到該請求被CPU響應(yīng)為止。CPU響

應(yīng)后,INTR信號還應(yīng)及時撤除,以免造成多次響應(yīng)。

2.中斷響應(yīng)

>響應(yīng)中斷請求的3個條件:

(1)一條指令執(zhí)行結(jié)束。

(2)CPU處于開中斷狀態(tài)。

(3)沒有總線請求。在復(fù)位(RESET)、總線保持(HOLD)等總線請

求時,CPU不工作,當(dāng)然就不能響應(yīng)中斷。

>中斷響應(yīng)時,CPU除了要向中斷源發(fā)出中斷響應(yīng)信號外,還

要自動完成下述3項工作:

(1)關(guān)閉中斷。CPU響應(yīng)中斷時,需立即關(guān)中斷(使IF=0),以保

證保護現(xiàn)場、斷點花獲取中呀入口地虻等工作不受影口而。

⑵保護現(xiàn)場和斷點。將標(biāo)志寄存器FR(PSW)、斷點的段基址

(CS值)和偏移地址(IP值)壓入推棧,以保證中斷結(jié)束后能正

常返回被中斷的程序。

(3)獲得中斷服務(wù)程序入口,轉(zhuǎn)入中斷服務(wù)程序。

3.中斷處理

保護現(xiàn)場。保護現(xiàn)場是指把中斷服務(wù)程序中要用到的寄存器

的原內(nèi)容壓入堆棧保存起來。

開中斷。CPU響應(yīng)中斷時會自動關(guān)閉中斷(使IF=O)。若進入

中斷服務(wù)程序后允許中斷嵌套,則需用指令開中斷(使IF=1)。

執(zhí)行中斷處理程序。完成具體的中斷處理。

關(guān)中斷。確保有效地恢復(fù)被中斷程序的現(xiàn)場。

恢復(fù)現(xiàn)場。就是把先前保護的現(xiàn)場進行恢復(fù),也即把所保存

的有關(guān)寄存器內(nèi)容按入棧的相反順序從堆棧中彈出,使這些

寄存器恢復(fù)到中斷前的狀態(tài)。

開中斷返回。其操作正好是CPU硬件在中斷響應(yīng)時自動保護

硬件現(xiàn)場和斷點的逆過程,即CPU會自動地將堆棧內(nèi)保存的

斷點信息和標(biāo)志信息彈出到IP、CS和FR中,保證被中斷的程

序從斷點處繼續(xù)往下執(zhí)行。

6.3.38086/8088的中斷

8086/8088系統(tǒng)中給每種中斷都賦予一個中斷類

型碼(或稱中斷號),編號為0~255。CPU可根據(jù)

中斷類型碼的不同來識別不同的中斷源。

ri中斷類型

2..;.中斷優(yōu)先級順序

3向宣蓑

4中斷處理過程!

1.中斷類型

8086/8088系統(tǒng)的中斷源:

■外部中斷:來自CPU外部

■內(nèi)部中斷:來自CPU內(nèi)部

Fi)外部中斷

A君稱為硬件中斷,它是由外部硬件或外

設(shè)接口產(chǎn)生的。

A8086/8088CPU為外部設(shè)備提供了兩條中

斷信號線NMI和INTR。

等扉蔽申斷;

I.★.畫扉蔽申茄

i---------------------1......................................................................................;

(1)非屏蔽中斷

?由NMI引腳上出現(xiàn)的上升沿觸發(fā))它不

受中斷允許標(biāo)志IF的控制,其中斷類型

碼固定為2。

aCPU接收到非屏蔽中斷請求信號后,會

在執(zhí)行完當(dāng)前指令后立即響應(yīng)中斷請求

而進入相應(yīng)的中斷處理。

>非屏蔽中斷通常用來處理系統(tǒng)中出現(xiàn)的

重大故障或緊急情況。

(2)可屏蔽中斷

A從CPU的INTR端引入,高電平有效。可

屏蔽中斷受中斷允許標(biāo)志位IF居控制)

只有當(dāng)IF=LCPU才會響應(yīng)INTR請求。

如果IF=O,即使中斷源有中斷請隸,

CPU也不會響應(yīng)。

?在微型計算機中,外部設(shè)備的中斷請求

是通過中斷控制器8259A萊進行統(tǒng)一管

理的,由8259A決定是否允許一個外設(shè)

向CPU發(fā)出中斷請求。

$2)內(nèi)部中斷

>內(nèi)部中斷是CPU執(zhí)行了某些指令或者軟件對標(biāo)志寄

存器中某個標(biāo)志位進行設(shè)置而產(chǎn)生的,由于它與外

部硬件電路完全無關(guān),故也稱為軟件中斷。

>在8086/8088CPU中,內(nèi)部中斷可分為5種類型:

■除法出錯中斷

■單步中斷

■斷點中斷

■溢出中斷

■中斷指令I(lǐng)NTn

>以上所述內(nèi)部中斷的類型碼均是固定,除單步中斷

夕卜,其他的內(nèi)部中斷不受IF狀態(tài)標(biāo)志影響。

⑴除法出錯中斷

在執(zhí)行除法指令時,若發(fā)現(xiàn)除數(shù)為0或商超過了

結(jié)果寄存器所能表示的最大范圍,則立即產(chǎn)生

一個中斷類型碼為0的中斷。

(2)單步中斷

>8086/8088CPU的標(biāo)志寄存器中有一位陷阱標(biāo)

志TF。

>CPU每執(zhí)行完一條指令都會檢查TF的狀態(tài)。

若發(fā)現(xiàn)TF=h則CPU就產(chǎn)生中斷類型碼為1的

中斷,使CPU轉(zhuǎn)向單步中斷的處理程序。

>單步中斷廣泛地用于程序的調(diào)試。

(3)斷點中斷

8086/8088指令系統(tǒng)中有一條專用于設(shè)置斷點

的指令I(lǐng)NT3OCPU執(zhí)行該指令就會產(chǎn)生一個

中斷類型碼為3的中斷。

INT3指令是單字節(jié)指令,因而它能很方便地

插入程序的任何地方,專門用于在程序中設(shè)

置斷點耒調(diào)試程序,它也稱為斷點中斷,插

入INT3指令之處便是斷點。

?在斷點中斷服務(wù)程序中,可顯示有關(guān)的寄存

器、存儲單元等內(nèi)容,以便程序員分析到斷

點為止程序運行是否正確。

(4)溢出中斷

?若算術(shù)指令的執(zhí)行結(jié)果發(fā)生溢出(OF=1),則

執(zhí)行INTO指令后立即產(chǎn)生一個中斷類型碼為

4的中斷。

>溢出中斷為程序員提供了處理運算溢出的手

段,INTO指令通常和算術(shù)運算指令配合起來

使用。

S(5)中斷指令I(lǐng)NTn

INTn是用戶自定義的軟件中斷指令,CPU執(zhí)行

中斷指令I(lǐng)NTn也會引起內(nèi)部中斷,其中斷類型

碼由指令中的n指定。

2.中斷優(yōu)先級順序

表6.I8086/8088CPU的中斷優(yōu)先權(quán)順序

中斷優(yōu)先級

除法出錯、INT()、I、T〃最高

NMI1

INTRV

單步最低

3.中斷向量表

字節(jié),‘?dāng)?086次088最多禮品混定靠看卷

的中斷(中斷類型碼為0?255)。

>中斷向量表位于內(nèi)存的最低1K字節(jié)(即內(nèi)存中

00000H?003FFH區(qū)域),用以存放256個中斷向量,

即256個中斷的服務(wù)程序入口地址。

每個中斷向量占4個字節(jié),其中低位字(2個字?

放中斷服務(wù)程序入口地址的偏移量,高位字(2

節(jié))存放中斷服務(wù)程序入口地址的段地址。

圖6.16

中斷向量在表中的存放地址=4x中斷類型碼n

取連續(xù)的4n和4n+l字節(jié)單元的內(nèi)容裝入IP,取4n+2

和4n+3單元的內(nèi)容裝入CS,即可轉(zhuǎn)入中斷服務(wù)程序。

圖6.16中斷向量表

00000H

IP偏移質(zhì)中斷類型0

CS段基址的中斷向最

000()411

IP偏移鼠中斷類型I

CS段基址的中斷向t

00008H

IP偏移情中斷類型2

CS段基址的中斷向量

(M)(X)CH

IP偏移量中斷類型3

CS段基址的中斷向鼠

00010H

IP偏移鼠中斷類型4

的中斷向量

CS段基址

000I4H

:

00080H

【P偏移地中斷類型32

CS段基址的中斷向鼠

00084H

?

003FCH

IP偏移信中斷類型255

段基址的中斷向技

003FFHCS

_16位_

圖6.16中斷向最表

4.中斷處理過程

申航類型碼的獲取

.4..1

.★..[J.申...慚..處...理.I

1)中斷類型碼的獲取

有兩種方法獲取中斷類型碼:

?對于軟件中斷:類型碼為0、1、3、4的中斷

類型碼由系統(tǒng)自動形成;對于INTn指令,類

型碼由指令指定。

?對于硬件中斷:若為NMI中斷,則由系統(tǒng)自

動產(chǎn)生中斷類型碼2;若為INTR中斷,貝ICPU

轉(zhuǎn)入2個連續(xù)周期的中斷響應(yīng)周期,并在第2

個中斷響應(yīng)周期采樣數(shù)據(jù)總線,獲取中斷類

型碼。

2)中斷處理

>將類型碼乘4,計算出中斷向量的地址。

>硬件現(xiàn)場保護。即修標(biāo)志寄存器F壓入堆棧,以保護當(dāng)前指

令技行結(jié)巢鬲特征。

>清除IF和TF標(biāo)志,屏蔽新的INTR中斷和單步中斷。

>保存斷點,即把斷點處的IP和CS值壓入堆棧,先壓入CS值,

再壓入IP值。

>根據(jù)計算出來的地址從中斷向量表中取出中斷服務(wù)程序的人

口地址(段和偏移),分別送至CS和IP中。

>轉(zhuǎn)入中斷服務(wù)程序執(zhí)行。進入中斷服務(wù)程序后,首先要保護

在中斷服務(wù)程序中要使用的寄存器內(nèi)容,然后進行相應(yīng)的中

斷處理,

>現(xiàn)場恢復(fù)與中斷返回。在中斷返回前恢復(fù)保護的寄存器內(nèi)容,

最后執(zhí)行中斷返回指令I(lǐng)RET。IRET的執(zhí)行將使CPU按次序恢

復(fù)斷點處的IP、CS和標(biāo)志寄存器,從而使程序返回到斷點處

繼續(xù)執(zhí)行。

圖6.17

圖6178086/8088中斷處理順序流程圖

W八1小

I舔忑奇仃舞1|港一I

」逗㈣彼中質(zhì)的E光序

P86.1780868088中斷處理H序Ji程圖

6.4中斷控制器8259A

Intel8259A是8位可編程的中斷控制器。它具有8級

優(yōu)先權(quán)控制,多片8259A通過級聯(lián)還可擴展至對64

個中斷源實現(xiàn)優(yōu)先級控制。

8259A可以根據(jù)不同的中斷源向CPU提供不同的中

斷類型碼,還可根據(jù)需要對中斷源進行中斷屏蔽。

8259A有多種工作方式,可以通過編程來選擇,以

適應(yīng)不同的應(yīng)用場合。

|641;8259A的內(nèi)麗結(jié)構(gòu)及引畫

1.6.4.2;.8.25..9.A..的.工...作.方....式.]:

1.6.4.3;8259A的編程及應(yīng)用

6.4.18259A的內(nèi)部結(jié)構(gòu)及引腳

1]8259A的內(nèi)鈿結(jié)構(gòu)

2:8259A的引腳

L8259A的內(nèi)部結(jié)構(gòu)圖6.18

I.★.:中新諳耒備存露1旅|

I★],吩版多雷看惑ISR|

★I中斷屏蔽寄存器IMR

★中斷優(yōu)先權(quán)判別電路

★藪搪總磅凌沛落;

★swssiii

I★BSSSSl

圖6.188259A的內(nèi)部結(jié)構(gòu)

IN1AINT

SP/LN

圖6.188芥7A的內(nèi)藤結(jié)構(gòu)

1)中斷請求寄存器IRR圖618

保存從IRo?爾7來的中斷請求信號。

某一位為1表示相應(yīng)引腳上有中斷請求信號。

12)中斷服務(wù)寄存器ISR圖6.18

記錄正在處理中的中斷請求信息,它的每一

位IS。?鳥分別對應(yīng)IRo?IR7。

當(dāng)任何一級中斷被響應(yīng),CPU正在執(zhí)行它的

中斷服務(wù)程序時,ISR寄存器中的相應(yīng)位置

ur\一直保持到該級中斷處理過程結(jié)束為

止。

多重中斷情況下,ISR寄存器中有多位被同時

3)中斷屏蔽寄存器IMR;圖6.18

存放中斷屏蔽字,它的每一位分別與IRo?IR7

相對應(yīng)。其中為1的位所對應(yīng)的中斷請求輸入將

被屏蔽,為0的位所對應(yīng)的中斷請求輸入不受影

響。

4)中斷優(yōu)先權(quán)判別電路圖6.18

監(jiān)測從IRR、ISR和IMR來的輸入,經(jīng)過判定

最高優(yōu)先權(quán),確定是否應(yīng)向CPU發(fā)出中斷請

求。

在中斷響應(yīng)時,它要確定ISR寄存器哪一位應(yīng)

置并將相應(yīng)的中斷類型碼送給CPU。在中

斷結(jié)束EOI命令時,它要決定ISR寄存器哪一

位應(yīng)復(fù)位。

15)^^總線緩沖器圖6.18

是8259A與系統(tǒng)數(shù)據(jù)總線的接口,它是8位雙

向三態(tài)緩沖器。

凡是CPU對8259A編程的控制字,都是通過它

寫入8259A的;8259A的狀態(tài)信息,也是通過

它讀入CPU的;在中斷響應(yīng)周期,8259A送至

數(shù)據(jù)總線的中斷矢量也是通過它傳送的。

&6)讀/寫控制邏輯[06.18

?一片8259A只占兩個I/O端口地址,用地址線

A。來選擇端口,端口地址的高位由片選信號

輸入。

>CPU能通過讀/寫控制邏輯實現(xiàn)對8259A讀出

內(nèi)部寄存器的內(nèi)容(狀態(tài)信號)和將命令寫入有

關(guān)的控制寄存器。

S7)級聯(lián)緩沖器圖6.18

級聯(lián)緩沖器是實現(xiàn)8259A芯片之間的級連,使

得中斷源可由8級擴展至64級。

《2.8259A的引腳

亦7?Do是雙向三態(tài)數(shù)據(jù)線,它可直接與系

統(tǒng)的數(shù)據(jù)總線相連。

>IR0?次7是8條外界中斷請求輸入線。與一

是讀命令信號線,當(dāng)其有效時,控制信器二

息由8259A至CPU。D一

用灰是寫命令信號線,當(dāng)其有效時,控制信;;二二

名曲CPU寫入至8259A。"二

ACS是選片信號線,由地址高位控制。/二二

AA陰以選擇8259A內(nèi)部的不同寄存器,通:二二

常置接連至地址總線的A。。鼠;二二

SPTN

AINT中斷請求線,用于向CPU發(fā)中斷請求信g;一CAS:

萬。圖5.1952”A的引陰圖

?而式中斷響應(yīng)線,用于接收CPU的中斷響

應(yīng)信號。

ACAS2?CASo是級連信號線,當(dāng)8259作為主

片時,這三條為輸出線;作為叢片西,則此

三條線為輸入或。這三條線與SP/EN線軸配

合,實現(xiàn)8259A的級連。

y6.4.28259A的工作方式

8259A具有非常靈活的中斷管理方式,可滿足

用戶各種不同的要求,且這些工作方式都可以

通過編程來設(shè)置。

1..1中慚喻應(yīng)順序I

1..2..:8259A中慚優(yōu)先級管逋

1..3..;8259A巾慚屏蔽曾理;

1..4;8259A幣慚結(jié)束管理

1.5I8259A1SW

L中斷響應(yīng)順序圖6.18

當(dāng)有一條或若干條中斷請求(IRo?爪7)變高,中斷請求寄存器

IRR的相應(yīng)位置位。

>若中斷請求線中至少有一條是中斷允許的,則8259A由INT引

腳向CPU送出中斷請求信號。

>若CPU是處在開中斷狀態(tài),則在當(dāng)前指令執(zhí)行完以后,用

INTA信號作為響應(yīng)。

>8259A在接咚到CPU的同人信號后,使最高優(yōu)先權(quán)的ISR位

置位,而相應(yīng)的IRR位復(fù)位。

>8O86/8O88CPU啟動另一個中斷響應(yīng)周期,輸出另一個INTA

脈小。在這個周期市,8259A向數(shù)據(jù)總線輸送一個8位的中斷

類型碼。CPU隹此周期中,讀取此中斷類型碼并把它乘以4,

就可以從中斷服務(wù)程序入口地址表中取出中斷服務(wù)程序的人

口地址。這樣中斷響應(yīng)周期就完成了,CPU就可轉(zhuǎn)至中斷服

務(wù)程序執(zhí)行。

2.8259A中斷優(yōu)先級管理

|一彳T莞全嵌套方式1

區(qū)]i動循環(huán)方式1

I★:痔理莞全嵌套方式

11)完全嵌套方式

各中斷請求的中斷優(yōu)先級就是固定不變的。

8259A加電后就處于這種方式,默認(rèn)IRo優(yōu)先

級最高(0級為最高級),IR7優(yōu)先級最低(7級為

最低級)。

高優(yōu)先級的中斷可中斷低優(yōu)先級的中斷,實

現(xiàn)中斷嵌套。

2)自動循環(huán)方式

A在實際應(yīng)用中,許多中斷源的優(yōu)先權(quán)級別是一樣的,

若采用完全嵌套方式,則低級別中斷源的中斷請求

有可能總是得不到服務(wù)。解決的方法是使這些中斷

源輪源處于最高優(yōu)先級。這就是自動中斷優(yōu)先級循

A在自動循環(huán)方式下,從IRo?IR7引入的中斷輪流具

宥最高優(yōu)先級,即當(dāng)任何一級中斷被處理完,它的

優(yōu)先級別就被修改為最低,而最高優(yōu)先級分配給該

中斷的下一級幣斷。

>例如,現(xiàn)正在處理爾2引入的中斷服務(wù),如處理完畢,

IR2變?yōu)樽畹蛢?yōu)先級,以3為最高優(yōu)先級,為次高

優(yōu)先級,依次排序。

3)特殊完全嵌套方式

>用在8259A有級聯(lián)的情況。

>當(dāng)任何一個從8259A接收到一個中斷請求,經(jīng)本8259A判定

為最高優(yōu)先級,則響應(yīng)這個中斷,通過INT引腳向主片8259A

相應(yīng)的IR端提出中斷請求。

>如果此時主片8259A中ISR相應(yīng)位已置“1”,說明該從片

8259A的其它輸入端已提出過中斷請求,且正在服務(wù),而從

片8259A判別出剛申請的中斷優(yōu)先級最高,因此應(yīng)停止現(xiàn)行

中斷服務(wù)程序轉(zhuǎn)到剛申請的中斷服務(wù)程序。

>8259A有級連的情況下,按完全嵌套方式管理優(yōu)先級,即接

在主片8259AIR0上的從片比接在IR】上的從片具有高的優(yōu)先

級,而主片上IR。、IR1上的中斷比接在主片IR?上的從片具有

高的優(yōu)先級,依次類推。

3.8259A中斷屏蔽管理

a8259A的8個中斷請求都可根據(jù)需要單獨屏蔽,

屏蔽是通過編程使得屏蔽寄存器IMR相應(yīng)位置0

或置L從而允許或禁止該位所對應(yīng)的中斷。

a8259A有兩種屏蔽方式:

Er普通扉蔽方式

QT痔殊扉蔽方式

1)普通屏蔽方式

?將IMR某位置1,則它對應(yīng)的IR就被屏蔽,從

而使這個中斷請求不能從8259A送到CPUo

?如果該位置3則允許該IR中斷傳送給CPU。

12)特殊屏蔽方式

在執(zhí)行一個中斷服務(wù)程序時,可能希望優(yōu)先級別比

正在服務(wù)的中斷源低的中斷能夠中斷當(dāng)前的中斷服

務(wù)程序。

在第江立的1氏的處理中,若希望使除1氏以外的所有

IR中斷請求均可被響應(yīng),則首先設(shè)置特殊屏蔽方式,

再編程將1Kl屏蔽掉(使IMR中的IMj位置1),這樣就

會使ISR的地位復(fù)位。這時,除了正在服務(wù)的這級

中斷被屏蔽(不允許產(chǎn)生進一步中斷)外,其他各級

中斷全部被開放。

這樣,正在服務(wù)的優(yōu)先級高的中斷可以被優(yōu)先級低

的中斷申請中甑。

4.8259A中斷結(jié)束管理

?當(dāng)8259A響應(yīng)某一級中斷為其服務(wù)時,中斷服務(wù)寄存

器ISR的相應(yīng)位置“1L當(dāng)有更高級的中斷申請來到時,

ISR相應(yīng)位又置“1。

》在中斷服務(wù)結(jié)束時,ISR相應(yīng)位清“0”。

?中斷結(jié)束管理就是用不同的方式使ISR中相應(yīng)位清

5

HUT普通市面結(jié)束方式

「★T痔殯市斷結(jié)束方式

自前吊結(jié),方太

!I.....★...........;I.....................................M.......................................................

1)普通中斷結(jié)束方式

>配合全嵌套優(yōu)先權(quán)工作方式使用O

>當(dāng)CPU用輸出指令向8259A發(fā)出正常中斷結(jié)束

EOI命令時,8259A就會把ISR中已置1的位中

的級別最高位復(fù)位。因為在全嵌套方式中,

置1的級別最高ISR位對應(yīng)了最后一次被響應(yīng)

的和被處理的中斷,也就是當(dāng)前正在處理的

中斷,所以,把.已置1的位中級別最高的ISR

位復(fù)位相當(dāng)于結(jié)束了當(dāng)前正在處理的中斷。

2)特殊中斷結(jié)束方式(SEOI)

在非全嵌套方式下,由于中斷優(yōu)先級不斷改

變,無法確知當(dāng)前正在處理的是哪一級中斷,

這時就要采用特殊SEOI中斷結(jié)束方式。

在程序中是要發(fā)一條特殊中斷結(jié)束命令,這

個命令中指出要清除ISR中的哪一位。

3)自動中斷結(jié)束方式(AEOI)

>若采用AEOI方式,則在第二個中斷響應(yīng)信號的后沿,

8259A將自動把市斷服務(wù)寄存器ISR中的對應(yīng)位清除。

這樣,盡管系統(tǒng)正在為某個設(shè)備進行中斷服務(wù),但

對8259A來說,中斷服務(wù)寄存器中卻沒有保留正在

服務(wù)的中斷的狀態(tài)。所以,對8259A來說,好像中

斷服務(wù)已經(jīng)結(jié)束了一樣。

>只能用于沒有中斷嵌套的情況。

A在級聯(lián)方式下,一般用非自動中斷結(jié)束方式,無論

是普通中斷結(jié)束方式,還是特殊中斷結(jié)束方式,在

一個中斷服務(wù)程序結(jié)束時,都必須發(fā)兩次中斷結(jié)束

命令,一次是發(fā)給主后的,另一次則是發(fā)給從片的。

,5,8259A的級聯(lián)圖6.20

A當(dāng)中斷源超過8個時―可采用8259A的級聯(lián)工作方式。指定一片8259A為主

控芯片(主片),它的SP端接+5V,INT接到CPU上。而其余的8259A芯片均

作為從片,它的SP端接地,INT輸出分別接到主片的IR輸入端。由于8259A

宥8個IR輸入端,故一個主片8259A最少可以連接1片從片8259A,最多可以

連接8片從片8259A,所以8259A級聯(lián)最少允許15個IR中斷請求輸入,最多

允許有64個IR中斷請求輸入。

》不管是主片還是從片,每一片8259A都有各自獨立的初始化程序,以便設(shè)

置各自的工作狀態(tài)。在中斷結(jié)束時要連發(fā)兩次EOI命令,分別使主片和相應(yīng)

的從片完成中斷結(jié)束操作。

》在中斷響應(yīng)中,若中斷請求來自于從片,則中斷響應(yīng)時主片8259A會通過

CASO?CAS2來通知相應(yīng)的從片8259A,而從片8259A把IR對應(yīng)的中斷類型

碼送至數(shù)據(jù)總線。

A在級聯(lián)方式下,可采用前面提到的特殊全嵌套方式,以允許從片上優(yōu)先級

更高的IR產(chǎn)生中斷。在將主片初始化為蔣殊全嵌套方式后,從片的中斷響

應(yīng)結(jié)束時,要用軟件耒檢查中斷狀態(tài)寄存器ISR的內(nèi)容,查詢本從片上還有

無其他中斷請求耒被處理。如果沒宥,則連發(fā)兩個EOI,使從片及主片結(jié)束

中斷。若還宥其他未被處理的中斷,則應(yīng)只向從片發(fā)一個EOI命令,而不向

主片發(fā)EOI命令。

圖6.208259A構(gòu)成的級聯(lián)

圖6.205239A構(gòu)成的二聯(lián)

y6438259A的編程及應(yīng)用

a8259A是可編程中斷控制器,在它工作之前,

必須通過軟件向其寫入控制命令的方法來確

定其工作狀態(tài),這就是8259A的編程。

>控制命令分為:

■初始化命令字(ICW)

■操作命令字(OCW)

:……1?;8259A的編程

;.............................................J.....................................................................................................................1...?

28259A的應(yīng)府

L8259A的編程

★[初始化編程

LIE...........4...............Ir

Q|操作方式編程

1)初始化編程

寫ICWI

>icwx

寫lew?

>ICW2

>ICW3

>ICW4寫ICW3

圖6.218259A的初始

化的順序

⑴ICW]

寫ICW1意味著重新初始化8259A。

AQD7D$D4D3D?D|D<)

0XXXILTTMADISNCLIC4

要寫icw』

4;要寫ICW.1

單片

多片級聯(lián)

間隔為4

間隔為8

ri高電平觸發(fā)

Lo上升沿觸發(fā)

圖6.22初始化命令字IC'%的格式

卜(2)ICW2

lew2為中斷類型碼寄存器,用于存放中斷類型碼(中

斷向量碼)。

CPU響應(yīng)中斷時,8259A將該寄存器內(nèi)容放到數(shù)據(jù)

總線上供CPU讀取。

在8086/8088系統(tǒng)中,8259A在第二個中斷響應(yīng)周期,

將向CPU輸送中斷向量碼,其中的T7?T3是由【CW2

規(guī)定的,而低3位則是由8259A自動插入的。

A,D74D$-6D?5Do

nn1:111彳1「1:1晨1x1

溫馨提示

  • 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

提交評論