CH6-輸入輸出和中斷技術-陳裕國_第1頁
CH6-輸入輸出和中斷技術-陳裕國_第2頁
CH6-輸入輸出和中斷技術-陳裕國_第3頁
CH6-輸入輸出和中斷技術-陳裕國_第4頁
CH6-輸入輸出和中斷技術-陳裕國_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6

章輸入輸出和中斷技術6.1輸入輸出接口

6.2簡單接口電路

6.3輸入輸出的控制方式

6.4中斷技術

6.5

可編程中斷控制器8259A思考題、作業(yè)題

輸入輸出(I/O)設備是計算機系統(tǒng)的重要組成部分,程序、原始數(shù)據(jù)都要通過輸入設備輸入到計算機,計算結果和控制信號需要輸出到各種輸出設備。由于I/O設備的多樣性,CPU并不與I/O設備直接進行信息交換,而是通過I/O接口進行。I/O接口是CPU和I/O設備之間信息交換的橋梁。1.接口的基本概念接口的功能與結構接口傳遞的信息接口的種類2.輸入輸出的尋址方式I/O端口的編址輸入輸出指令6.1輸入輸出接口

返回

設置I/O接口的必要性——I/O設備的多樣性使CPU與I/O設備交換信息比CPU與存儲器交換信息更為復雜,表現(xiàn)在:1)I/O設備工作速度不同;如:打印機比顯示器慢;2)I/O設備的數(shù)據(jù)字長多樣;如:8位、16位等;3)I/O設備處理的信號不同(模擬或數(shù)字信號、并行或串行);如:按鈕輸入開關信號、麥克風輸入模擬信號;4)I/O設備所需的控制信號不同。

I/O設備的多樣性返回微機系統(tǒng)各種接口返回◆接口內應有供CPU直接存取數(shù)據(jù)的單元---端口;◆接口內應有地址譯碼和讀寫控制電路;◆接口可傳送除基本信息(數(shù)據(jù)信息)外的各種信息。◆接口在它連接的CPU與I/O設備之間起信號轉換作用。接口的功能與結構返回CPU外設信息信號DBABCB端口譯碼讀寫信號轉換電路

接口傳遞的基本信息是數(shù)據(jù)信息,除此之外,還傳遞狀態(tài)信息和控制信息。不同的信息用不同的端口區(qū)分。

數(shù)據(jù)信息:CPU與I/O設備間傳遞的基本信息。

狀態(tài)信息:反映I/O設備當前工作狀態(tài)的信息,如輸出設備是否空閑,輸入設備是否數(shù)據(jù)準備好等。

控制信息:CPU通過接口傳遞給I/O設備的信息,用以控制I/O設備的工作,如啟動、停止等。接口傳遞的信息返回CPU外設數(shù)據(jù)信息狀態(tài)信息控制信息DBABCB數(shù)據(jù)口狀態(tài)口控制口按通用性分:專用接口——為某種用途或為某類外設而專門設計的接口電路。通用接口——可供幾類外設使用的標準接口,大多為可編程的大規(guī)模集成電路。

按數(shù)據(jù)傳送方式分:并行接口——多位數(shù)據(jù)同時在多條數(shù)據(jù)線上傳送。如打印機接口;串行接口——一條傳送線按順序傳送所有的二進制信息。如USB接口。接口的種類返回

因CPU要訪問I/O接口,必須對I/O端口進行編址,即給每個I/O端口不同的地址以區(qū)分它們。I/O端口編址的方式有兩種:1、I/O端口和存儲器統(tǒng)一編址

外設端口地址和存儲器單元地址,共占存儲器的訪問空間,即一個外設端口占用一個存儲單元地址。存儲器數(shù)據(jù)傳送指令可直接訪問I/O端口。

2、I/O端口獨立編址I/O端口和存儲器分別建立兩個相互獨立的地址空間。需有專門的I/O訪問指令。I/O端口的編址返回

1、I/O端口和存儲器統(tǒng)一編址

把一個外設端口當作存儲器的一個單元來看待,每個外設端口占有存儲器的一個地址。從外設輸入一個數(shù)據(jù),看作存儲器一次讀操作;向外設輸出一個數(shù)據(jù),看作存儲器一次寫操作;

優(yōu)點:內存和外設的地址由一個譯碼器解決,不需專門的I/O指令,全部存儲器指令都可用,指令多,使用方便(輸入/輸出不只局限于累加器);

缺點:占用內存空間,尋址的地址字節(jié)增加,增加了指令的執(zhí)行時間。

I/O端口的編址返回

2、I/O端口獨立編址

目前的IBM-PC系列計算機,存儲器和端口尋址是分開的。

直接尋址,可尋址0~255個端口

間接尋址,可尋址64K個端口

注意:是以端口作為地址單元,因一個外設可能有一個或一個以上的端口。I/O端口的編址返回

I/O端口按字節(jié)組織。

1、輸入指令

直接尋址

INAL,PORT ;(AL)←(PORT) IN AX,PORT ;(AL)←(PORT) ;(AH)←(PORT+1)

注:直接尋址中I/O端口地址只能用8位表示,16位I/O端口地址用間接尋址方式。間接尋址

IN AL,DX ;(AL)←(DX) IN AX,DX ;(AL)←(DX) ;(AH)←(DX+1)輸入輸出指令下頁2、輸出指令

直接尋址

OUT PORT,AL ;(PORT)←(AL) OUT PORT,AX ;(PORT)←(AL) ;(PORT+1)←(AH)

注:直接尋址中I/O端口地址只能用8位表示,16位I/O端口地址用間接尋址方式。間接尋址

OUT DX, AL;(DX)←(AL) OUT DX, AX ;(DX)←(AL) ;(DX+1)←(AH)輸入輸出指令返回

1.簡單輸入接口

例:用三態(tài)緩沖器74LS244作輸入接口。編程實現(xiàn)當所有開關閉合時轉向NEXT1,否則轉向NEXT25.2簡單接口電路

下頁(輸入端口)地址分析:(A14∨A13∨A12∨A11∨A10)=0,A14~A10=0(A15∧A9∧A8∧A7∧A6∧A5∧A4∧A3∧A2)=0A9~

A2=1,A15=1A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

10000011111111XX地址:83FCH~83FFHMOVDX,83FCHINAL,DX;8bit,地址>255ANDAL,0FFH;全部閉合ZF=1JZNEXT1JMPNEXT2三態(tài)緩沖器74LS244返回20VCC191817161514131211

123456789GND10

2.簡單輸出接口

例:用鎖存器74LS273作為輸出接口。希望Q2和Q6端子上的發(fā)光二極管發(fā)光,其余的不發(fā)光。程序段如下:5.2簡單接口電路

返回(輸出端口)地址分析:(A7∧A146∧A5∧A4∧A3∧A2∧A1∧A0)=0A7~A0=1(A15∧A14∧A13∧A12∧A11∧A10∧A9∧A8)=0A15~

A8=1A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A01111111111111111地址:FFFFHMOVDX,0FFFFHMOVAL,01000001BOUTDX,AL鎖存器74LS273返回SQ0D0D1Q1Q2D2D3Q3GNDVCCQ7D7D6Q6Q5D5D4Q4CP20

1011SCPDiQi011X↑↑X10010

I/O接口是CPU和I/O設備之間信息交換的橋梁。端口是接口內供CPU直接存取數(shù)據(jù)的單元,端口是I/O接口內必不可少的組成部分。不同的I/O設備、不同的工作環(huán)境,CPU與I/O接口交換數(shù)據(jù)可采取不同的方式,CPU對外設的控制方式也不同,電路結構、軟件編程也不同。(1)無條件傳送方式(2)查詢方式(3)中斷方式(4)DMA方式

重點:四種方式的實現(xiàn)技術細節(jié)。難點:為什么有這四種輸入輸出方式?5.3輸入輸出的數(shù)據(jù)傳送方式

返回CPU直接對外設進行數(shù)據(jù)轉送。沒有狀態(tài)信息和控制信息的交換;認為外設總是處于數(shù)據(jù)準備好的狀態(tài)。是最簡單的輸入輸出數(shù)據(jù)傳送方式。

操作:CPU直接執(zhí)行IN/OUT指令從輸入設備讀取數(shù)據(jù)或送出數(shù)據(jù)到輸出設備。要求:輸入操作時,指定的輸入端口已準備好數(shù)據(jù);輸出時,指定的輸出端口已空。適用:開關、發(fā)光二極管、數(shù)碼管、繼電器等設備。

例無條件傳送方式返回如圖示,外設為8個發(fā)光二極管,與其相連的輸出端口地址80H,欲使發(fā)光二極管全亮,執(zhí)行指令:

MOVAL,0 OUT 80H,AL無條件傳送方式-例(輸出)返回CPU輸出接口(80H)DBABCBOO+5V…………輸出設備

CPU在傳送數(shù)據(jù)前先查詢外設的狀態(tài),確知外設準備好時才傳送數(shù)據(jù);若未準備好,則CPU等待(即繼續(xù)查詢外設的狀態(tài),直至外設準備好)。

接口至少需要兩個端口:數(shù)據(jù)端口和狀態(tài)端口。查詢方式返回

例CPUI/O設備譯碼數(shù)據(jù)端口狀態(tài)端口DBABCB查詢方式-例子(查詢式輸入)返回標志Ready=1?讀狀態(tài)讀數(shù)據(jù)YN

mov

dx,d_port;準備好,輸入數(shù)據(jù)

inal,dx;輸入數(shù)據(jù),同時清狀態(tài)信息s_port

equ180h;狀態(tài)口地址d_port

equ182h;輸入數(shù)據(jù)口地址Wait:mov

dx,s_port;dx狀態(tài)口地址

inal,dx;輸入狀態(tài)信息

testal,80h;Ready=1?

jzWait;未準備好,循環(huán)等待查詢方式-例子(查詢式輸入)返回

中斷數(shù)據(jù)傳送方式---不是由CPU(象查詢方式那樣被動地)通過執(zhí)行程序(主程序)來檢查外設是否處在準備好的狀態(tài),而是當外設準備就緒,由外設向CPU提出數(shù)據(jù)傳送的請求(中斷請求),CPU在接到請求后暫時中斷運行原來的程序(主程序)

,轉去執(zhí)行一個和外設進行數(shù)據(jù)傳送(如:輸入、或輸出一個數(shù)據(jù))的程序(中斷服務程序),待數(shù)據(jù)傳送結束后CPU又返回原來中斷的程序(主程序),繼續(xù)運行。中斷方式接下頁中斷請求中斷服務程序主程序中斷方式返回

1、中斷數(shù)據(jù)傳送方式的I/O接口電路:

◆外設準備好時,能夠向CPU發(fā)出請求信號(中斷信號);

◆I/O接口電路常規(guī)功能部件(端口、地址譯碼、讀寫控制等)。

2、中斷數(shù)據(jù)傳送方式的軟件:

◆主程序、中斷服務程序;◆主程序轉入中斷服務程序、中斷服務程序返回主程序的機制;

3、中斷方式數(shù)據(jù)傳送由一套中斷系統(tǒng)來完成。

在大量數(shù)據(jù)傳送的條件下,無條件傳送、查詢、中斷三種數(shù)據(jù)傳送方式的共同點:外設輸入/輸出大量數(shù)據(jù),由于大量數(shù)據(jù)一定是在內存中(不可能在CPU內部,CPU內部寄存器有限),大量數(shù)據(jù)傳送的每一個數(shù)據(jù)必經過CPU內部寄存器,這樣效率不夠高;如果在內存與外設(接口)之間建立直接數(shù)據(jù)傳輸通道,可顯著提高效率,這就是DMA。DMA方式

DMA數(shù)據(jù)傳送方式由來下頁

——由輔助硬件電路(DMA控制器)完成數(shù)據(jù)傳送。

工作過程:DMA控制器向CPU發(fā)出總線請求,CPU發(fā)回響應信號,并同時讓出總線管理權給DMA控制器。在DMA控制器控制下,數(shù)據(jù)在I/O接口與存儲器之間直接傳送。傳送完畢,DMA控制器向CPU發(fā)送結束信號,則CPU收回總線管理權。DMA方式既應用在內存與外設間,亦應用在外設與外設之間的直接快速數(shù)據(jù)傳送。DMA方式下頁DMA方式返回DMA過程:CPU存儲器DMA控制器外設HOLDDRQHLDADACKSYSTEMBUSMEMRMEMRMEMRMEMRMEMRMEMRMEMRMEMR外設DMA控制器CPU0初始化設置DMA目標地址、計數(shù)1發(fā)出請求DRQ2請求系統(tǒng)總線HOLD3釋放系統(tǒng)總線發(fā)HLDA4向MEM發(fā)地址和控制,監(jiān)視HOLD

送數(shù)據(jù)到總線向外設發(fā)DACK和AENIORIOWAENIORIOWAENMEMR5釋放系統(tǒng)總線HOLD失效重新獲得系統(tǒng)總線控制MEMRMEMR控者

最簡單的傳送方式是不管外設是否準備好,CPU直接對外設進行數(shù)據(jù)轉送。無條件傳送的問題是:若外設未準備好,數(shù)據(jù)傳送失效。于是產生了查詢傳送方式。

查詢方式中CPU要不斷地查詢外設,當外設沒有準備好時,CPU要等待(循環(huán)讀狀態(tài)),浪費了CPU的時間;而且許多外設速度比較低,在輸入輸出時,CPU可以執(zhí)行大量的時間,為了提高CPU的效率,于是產生了中斷傳送方式。5.3輸入輸出的控制方式

---為什么有這四種輸入/輸出方式?接下頁采用中斷方式就大大提高了CPU的效率,且CPU可與多個外設同時工作,從而實現(xiàn)了多任務。事實上PC機上的鍵盤輸入、打印任務的管理等都是采用中斷方式進行輸入輸出的。利用中斷進行傳送,可大大節(jié)約CPU時間,但中斷傳送仍然由CPU通過程序來傳送,每次要保護斷點,現(xiàn)場信息,都需要花多條指令的時間。對于高速的I/O設備,比如磁盤與內存之間交換數(shù)據(jù),就顯得速度太慢了。因此希望用硬件在外設與內存之間直接進行數(shù)據(jù)交換,而不通過CPU,這就是DMA方式,這個硬件就是DMAC(DMA控制器)。5.3輸入輸出的控制方式

返回

中斷系統(tǒng)是計算機系統(tǒng)不可缺少的重要組成部分。5.4.1中斷的基本概念(1)中斷基本概念(2)中斷處理過程(3)中斷優(yōu)先權管理5.4.28086的中斷系統(tǒng)(1)中斷指令(2)8086/8088的中斷源

(3)8086中斷向量表(4)8086中斷處理過程5.4中斷技術

返回

1)中斷——由于外設的請求或某事件的發(fā)生使CPU暫停執(zhí)行現(xiàn)行程序,轉去執(zhí)行處理相應請求或事件的中斷服務程序,處理完畢再返回運行原程序,這樣的過程為中斷。

中斷的出現(xiàn)是為了解決高速CPU與慢速外設之間的矛盾而引出的一個概念。

2)中斷源——能夠引起中斷的事件。中斷源:◆一般的I/O設備。如鍵盤、打印機等;◆數(shù)據(jù)通道中斷源。如磁盤、磁帶機等;◆實時時鐘

;◆故障引起的中斷

。如電源掉電;◆中斷指令或軟件故障。如系統(tǒng)功能調用、除數(shù)為0等。中斷基本概念下頁

3)中斷系統(tǒng)

——為實現(xiàn)中斷功能而設置的

各種軟件和硬件。應具備:◆中斷源的識別、響應及返回——完成一次中斷過程;◆中斷優(yōu)先權排隊——給中斷源按輕重緩急排隊;◆中斷嵌套——

優(yōu)先權高的中斷源能中斷優(yōu)先權低的中斷處理。中斷基本概念返回中斷請求→中斷排隊

→中斷響應→中斷服務→中斷返回

(1)中斷請求——中斷源向CPU發(fā)出的請求中斷服務的信號。必須滿足條件:

●中斷源已準備好;

●系統(tǒng)允許該中斷源發(fā)出中斷信號。

系統(tǒng)中可設置硬件電路加以控制,如8259A的中斷屏蔽寄存器中斷請求信號是隨機發(fā)生的,因此,CPU一般隔一定時間檢測一次中斷請求信號確定是否有中斷請求。中斷處理過程下頁(2)中斷排隊——系統(tǒng)中有多個中斷源,當兩個以上中斷源同時向CPU發(fā)出中斷請求信號,則CPU必須先響應重要的、緊急的中斷,即優(yōu)先權高的中斷源。這就是中斷排隊(中斷判優(yōu))。(3)中斷響應是指CPU在接到中斷請求信號后,確定可以響應時自動完成的操作,包括:關中斷;保護斷點;形成中斷入口地址,轉入中斷服務程序。中斷處理過程下頁(4)中斷服務——CPU執(zhí)行中斷服務程序。

①保護現(xiàn)場;②開中斷——為實現(xiàn)中斷嵌套,必須設置開中斷。③中斷處理——這是中斷服務程序的核心;④關中斷——為保證下一步恢復現(xiàn)場的操作不被打斷;⑤恢復現(xiàn)場;⑥開中斷⑦中斷返回。

中斷處理過程下頁

(5)中斷返回——中斷服務結束時,應將在中斷響應時保護的斷點恢復,回到被中斷的主程序,即中斷返回。中斷處理過程返回

將中斷源按輕重緩急排隊,確定各中斷優(yōu)先權次序。優(yōu)先權管理是指判別和確定各中斷源的中斷優(yōu)先權次序。

中斷優(yōu)先權判別方法有兩種:

軟件判優(yōu)

硬件判優(yōu)中斷優(yōu)先權管理返回

用軟件查詢哪個中斷源有中斷請求,先查詢到的先響應。即:查詢次序確定各中斷優(yōu)先權次序,先查詢的優(yōu)先權最高。用軟件查詢確定中斷優(yōu)先權,必須先將各中斷源的中斷請求狀態(tài)儲存,如一個8位中斷請求觸發(fā)器存放了8個中斷源的中斷請求信號。軟件排隊確定中斷優(yōu)先權,方法簡單,硬件電路省,但中斷源多時,查詢速度慢,影響中斷響應速度軟件判優(yōu)返回軟件判優(yōu)返回外設A外設B外設C外設D外設E外設F外設G外設H保護現(xiàn)場A申請服務?外設A中斷服務程序B申請服務?外設B中斷服務程序C申請服務?外設B中斷服務程序恢復現(xiàn)場返回YNYNYN…IN AL,80HTESTAL,01HJNZASEVTESTAL,02HJNZBSEVTESTAL,04HJNZCSEV…TESTAL,80HJNZHSEV

用硬件電路實現(xiàn)中斷源排隊。作用:(1)能夠送出當前有中斷請求的中斷源中優(yōu)先權最高的中斷請求。(2)當一個中斷源的中斷請求被CPU響應后,比它低優(yōu)先權的中斷源被屏蔽。常用的硬件排隊電路:

并行判優(yōu)網(wǎng)絡

鏈式判優(yōu)電路硬件判優(yōu)返回并行判優(yōu)網(wǎng)絡返回外設1請求中斷IR0中斷優(yōu)先級控制2IRiU1控制邏輯 U2,比較邏輯,把最高優(yōu)先級的IR的序號輸出到中斷矢量寄存器3CPU響應INTR進入中斷過程,在特定時序中,輸出中斷矢量寄存器的值,CPU根據(jù)該值獲得中斷服務程序入口地址,并進入相應的服務程序。記錄CPU正在響應的中斷允許或禁止某個中斷外設IR中斷矢量入口地址鏈式判優(yōu)電路返回鏈式判優(yōu)電路:EI=H,允許輸出中斷請求INT

當INT輸出有效時,EO=L

否則EO=HEI=L,不允許輸出中斷請求INT

且EO=LEIEOINT0#申請中斷時,1#,2#均不能申請中斷。3#申請中斷時,除非1#,2#均沒有申請中斷。特點:優(yōu)先級由中斷源的物理位置確定

1.INT指令

格式:INTn

;n=0~255,為中斷類型碼,用8位二進制表示。指令的操作:(SP)←(SP)-2,((SP+1),(SP))←(FR);保護標志寄存器

(IF)←0,(TF)←0;關中斷,關單步中斷標志(SP)←(SP)-2,((SP+1),(SP))←(CS);保護斷點

(SP)←(SP)-2,((SP+1),(SP))←(IP)(IP)←(n×4);由中斷類型碼n形成中斷入口地址(CS)←(n×4+2)中斷指令下頁

2.INTO溢出中斷指令

格式:INTO

;n=4用于帶符號數(shù)加、減運算后,;若由溢出,則進入n=4的中斷。

3.IRET中斷返回指令

格式:IRET

指令的操作:(IP)←((SP+1),(SP)),(SP)←(SP)+2;恢復斷點(CS)←((SP+1),(SP)),(SP)←(SP)+2(FR)←((SP+1),(SP)),(SP)←(SP);恢復標志寄存器中斷指令返回一、內部中斷——滿足某種特殊條件引起的中斷或軟件中斷。

1.除法錯誤中斷

2.單步中斷

3.斷點中斷

4.溢出中斷

5.軟件中斷二、外部中斷——外部的硬件產生,送至CPU的NMI和INTR引腳上引起中斷,具有隨機性。

1.非屏蔽中斷

2.可屏蔽中斷

8086規(guī)定這些中斷優(yōu)先權為:內部中斷、NMI、INTR、單步執(zhí)行(T)。8086/8088的中斷源返回

中斷類型碼

n=0執(zhí)行除法指令時,若發(fā)現(xiàn)除數(shù)為0或商超過了寄存器所能表示的范圍,就立即產生了一個類型為0的內部中斷,CPU轉入除法錯誤中斷處理程序。

除法錯誤中斷是由內部電路自動生成的。除法錯誤中斷返回

中斷類型碼n=1

由CPU對狀態(tài)標志寄存器中的陷阱標志TF的測試而產生的中斷。當TF=1,每執(zhí)行一條指令,轉入單步中斷服務程序。這是8086提供給用戶使用的一種調試程序手段。

單步中斷用于調試較小程序。單步中斷返回

INT3——3型中斷為了加快程序的調試速度,在調試程序時,通常把程序按功能分成幾段,然后每段設置一個斷點。當CPU執(zhí)行到斷點時便會產生中斷,在斷點中斷服務程序中,可顯示有關的寄存器、存儲單元等內容,以便程序員分析到斷點為止程序運行是否正確。8086/8088指令系統(tǒng)中有一條專用于設置斷點的指令INT3,用戶只需把INT3指令插入程序段的最后即可。

斷點中斷返回

中斷類型碼n=4

由程序員在程序恰當?shù)奈恢迷O置INTO指令而實現(xiàn)。由于CPU本身不能判別當前處理的數(shù)據(jù)是否帶符號,因此,它提供了INTO指令給用戶。在帶符號運算后安排一條INTO指令,當運算后OF=1,則進入溢出中斷服務程序進行處理。溢出中斷返回

中斷類型碼n由用戶定義。

用戶可自行設計一些中斷服務程序,用INTn運行,這與段件調用子程序相似。如系統(tǒng)功能調用INT21H軟件中斷返回中斷類型碼n=2

非屏蔽中斷請求由NMI引腳送入。所謂非屏蔽,指該中斷請求不受中斷允許標志IF狀態(tài)的影響,在當前指令執(zhí)行完后,CPU就響應。

非屏蔽中斷用于較重要、緊急的中斷請求。非屏蔽中斷返回

中斷類型碼n由申請中斷的中斷源提供。

可屏蔽中斷請求由INTR引腳送入。所謂可屏蔽,指該中斷請求須由中斷允許標志IF的狀態(tài)決定其是否被CPU響應。IF的設置可由指令實現(xiàn)。

STI ;IF=1,允許中斷

CLI ;IF=0,禁止中斷當IF=1,INTR有效時,CPU將送出中斷響應信號INTA。中斷源接到該信號,將其中斷類型碼送給CPU。可屏蔽中斷返回

在第一個中斷響應周期,CPU輸出中斷響應信號INTA,CPU使AD15-AD0浮空,在第二個中斷響應周期,被響應的外設(或接口芯片)應向數(shù)據(jù)總線輸送一個字節(jié)的中斷向量號,CPU讀入中斷向量號后,就可以在中斷向量表上找到該設備服務程序的入口地址,轉入中斷服務??善帘沃袛喾祷?/p>

1、中斷向量表中斷向量即中斷服務程序的入口地址,用32位邏輯地址表示。中斷向量表是一個存儲區(qū),該存儲區(qū)存放所有中斷向量。表內容:所有中斷服務程序的入口地址,即256個中斷向量。表長度:一個中斷向量4個字節(jié),256個中斷向量共256×4=1024字節(jié),即占用1K存儲空間。表位置:在0段內偏移地址為0000~03FFH的范圍內,即實際地址為00000~003FFH。

存放次序:按中斷類型碼從小到大依次存放。每個中斷向量占用的4個單元中,小地址的存放偏移地址,大地址的存放段地址。8086中斷向量表下頁

2、中斷向量表示意圖

全部中斷服務程序首地址,排列成表,存放在內存00000H~003FH處,這塊內存區(qū)域叫中斷向(矢)量表。

Adr=n×4

n-類型號

Adr-中斷向量入口地址

Adr處存放的內容是中斷服務程序起始點CS:IP的值。8086中斷向量表下頁

3、例

某一中斷源的中斷類型碼為45H,則該中斷源的中斷向量在中斷向量表的位置是:45H×4=00114H

若中斷向量表部分單元內容如圖示,則該中斷源的中斷向量為:3400H:1020H。

即該中斷服務程序的入口地址為35020H。8086中斷向量表下頁地址存儲單元內容00118H00H00117H34H00116H00H00115H10H00114H20H

4、中斷向量表的設置將中斷源的中斷向量存入中斷向量表對應的位置。方法一:用系統(tǒng)功能調用設置。

實現(xiàn):(1)功能號:25H (2)調用參數(shù):DS←中斷向量的段基址 DX←中斷向量的偏移地址 AL←中斷類型碼N

方法二、用傳送指令設置

例8086中斷向量表返回

方法一:用系統(tǒng)功能調用設置。例:某中斷源的中斷類型碼為70H,其中斷服務程序入口地址為IRQ0。該中斷源的中斷向量表設置程序:

PUSH DS MOV AX, SEGIRQ0 MOV DS, AX ;段基址送入DS MOV DX, OFFSETIRQ0 ;偏移地址送入DX MOV AX, 2570H ;類型碼送AL,功能號送AHINT 21H ;系統(tǒng)功能調用 POP DS8086中斷向量表返回方法二、用傳送指令設置例:某中斷源的中斷類型碼為72H(72H×4=018CH),其中斷服務程序入口地址為IRQ2。該中斷源的中斷向量表設置程序:

CLI PUSH DS MOV AX, 0 MOV DS, AX ;中斷向量表段基址為0 MOV[01C8H], OFFSETIRQ0 ;存入偏移地址MOV[01CAH], SEGIRQ0 ;存入段基址POP DS8086中斷向量表返回

1、中斷響應條件

當前指令執(zhí)行結束,CPU檢測各中斷,決定是否中斷響應。當下列之一發(fā)生,CPU將響應中斷。內部中斷發(fā)生;NMI中斷發(fā)生;INTR中斷發(fā)生,且IF=1。特殊地:

①當CPU執(zhí)行封鎖指令(LOCK)時,要待后面的指令執(zhí)行完后才響應中斷。②設置段寄存器內容的指令和下條指令之間不允許中斷。③等待指令和重復串操作指令執(zhí)行過程中,可響應中斷,但必須在一個基本操作完成后。8086中斷處理過程下頁

2、中斷處理順序(1)中斷源的識別:內部中斷

非屏蔽中斷

可屏蔽中斷

單步中斷(2)可屏蔽中斷INTR必須在IF=1在條件下才響應。(3)中斷類型碼的獲?。?/p>

內部中斷——指令中斷由指令本身提供,其余固定。非屏蔽中斷——固定為2。

可屏蔽中斷——從數(shù)據(jù)總線讀取中斷源提供的類型碼。

(4)中斷響應:標志寄存器入棧

TF→

暫存器TEMP,TF=0,IF=0 CS、IP入棧

由中斷類型碼N獲取中斷向量8086中斷響應過程下頁2、中斷處理順序返回YYYN計算向量表地址保護FLAGSCS,IP入棧IF=TF=0TEMP←TF高字→CS低字→IP轉入中斷服務程序NMI?YIRET指令的操作NYIF=1??中斷響應讀回類型碼TF=1?返回被中斷的程序類型碼=1TEMP=1?執(zhí)行中斷服務程序恢復CS和IP恢復FLAGSYN取指令執(zhí)行指令執(zhí)行完否?類型碼=0~255類型碼=2內部中斷?NMI?INTR?Y圖5-20中斷響應和中斷處理流程

3、中斷響應過程1)執(zhí)行兩個中斷響應總線周期,

CPU接收8位中斷類型碼;

2)執(zhí)行一個總線寫周期,F(xiàn)R→推入堆棧;

3)把IF和TF置0;

4)執(zhí)行一個總線寫周期,把CS的內容推入堆棧。

5)執(zhí)行一個總線寫周期,把IP的內容推入堆棧。

6)執(zhí)行一個總線讀周期,從中斷向量表讀入IP

7)執(zhí)行一個總線讀周期,從中斷向量表讀入CS。

對非屏蔽中斷或內部中斷,則由第2步開始執(zhí)行。8086中斷響應過程返回8086從中斷向量表讀入IP、CS返回對程序員透明,在硬件完成后主要是正確地寫出程序n=721272H×4=0111001000B=1C8HJ1J28086中也叫類型碼(n)8088中向(矢)量表

8259A是微機系統(tǒng)中管理多中斷源的專用芯片。

(1)8259A的功能(2)8259A的內部結構(3)8259A的引腳(4)8259A的工作過程(5)8259A的工作方式(6)8259A的命令字(7)8259A的編程(8)8259的級聯(lián)5.5可編程中斷控制器8259A

返回主要功能:

1)每片8259A能管理8級中斷,也可多片芯片級聯(lián)構成 主從式中斷管理系統(tǒng),最多可擴展至64級中斷。 2)每級中斷都可以被屏蔽或允許。 3)可提供中斷源的中斷類型碼給CPU。4)允許中斷嵌套,提供多種優(yōu)先權排隊方式。5)提供多種不同的工作方式供用戶編程選擇。6)提供中斷查詢方式。8259A的功能返回8259A的內部結構返回RD(IOR)當前服務寄存器ISR優(yōu)先級比較器PR中斷屛蔽寄存器IMR操作命令OCW初始化寄存器組ICW1~ICW4讀/寫控制電路級連控制中斷請求寄存器IRRINTINTACSA0RDWRCAS0CAS1CAS2SP/ENIR0IR7…..外設CPU數(shù)據(jù)緩沖器INTRINTA譯碼電路WR(IOW)8088的A08086的A1D0~D78位鎖存器,存放8個中斷源的中斷請求信號。有中斷請求時,對應的位置1。 此寄存器可讀。8位寄存器,用于記錄正在處理的中斷請求。有中斷請求且CPU響應時,對應的位置1,表示CPU正在執(zhí)行該中斷服務。該寄存器可讀。優(yōu)先權級別可以由編程定義或修改。1)多個中斷同時申請中斷時,判定優(yōu)先權最高的先響應。2)中斷服務中有中斷請求,判別是否比正在處理的中斷優(yōu)先權高。是,中斷嵌套;否,不響應新的中斷請求。8位鎖存器,存放對8個中斷請求的屏蔽信息。當某位為1時,表示相應位的中斷請求被屏蔽(該中斷請求不能送出)。該寄存器可讀可寫。操作命令寄存器,在初始化后運行期間使用初始化命令寄存器,在初始化期間使用寄存并比較在系統(tǒng)中使用的全部8259的級連地址INT接CPU的中斷輸入,INTA接中斷響應輸出控制邏輯雙列28引腳8259A引腳信號:

1)中斷請求引腳——IR0~IR7

2)與CPU相連的數(shù)據(jù)線——D0~D73)CPU控制線——A0、CS、RD、WR4)中斷信號——

INT、INTA

5)級聯(lián)——CAS0、CAS1、CAS2、SP/EN6)電源、地8259A的引腳返回

中斷請求信號IR0~IR7

——輸入信號,接受來自中斷源的中斷請求信號或在主-從系統(tǒng)中,接受來自8259A從片的中斷請求INT信號??稍O置為上升沿觸發(fā)或高電平觸發(fā)。8259A的引腳返回

CPU控制線

RD、WR——輸入信號,讀/寫控制信號。

CS——8259A的片選信號。由系統(tǒng)地址總線高位譯碼確定,與A0組成8259A的端口地址。

A0——輸入信號,用以選擇8259A內部不同寄存器,A0=0,偶地址端口;A0=1,奇地址端口8086系統(tǒng)中,若8259A的D7~D0與系統(tǒng)數(shù)據(jù)線低8位相連,因CPU通過低8位數(shù)據(jù)線與偶地址傳遞數(shù)據(jù)信息,所以A0應與系統(tǒng)地址總線的A1相連,系統(tǒng)地址總線A0應為0。8088系統(tǒng)中,A0與系統(tǒng)地址總線的A0相連。8259A的引腳返回

中斷信號線

INT——輸出信號,送出中斷請求信號。連至CPU的可屏蔽中斷輸入端INTR。INTA——輸入信號,接受來自CPU的中斷響應信號。8259A通過INT引腳將中斷請求信號送給CPU,當接到CPU發(fā)回的中斷響應信號INTA,送出中斷類型碼。8259A的引腳返回8259A的工作過程返回外設

8259

CPU1申請中斷IR0IRR,并和IMR運行程序PROC

IRn有效相“與”,有效結果PR。

PR檢出最高的IRRx,IRRx

同ISRx比較,IRRx>ISRx

輸出INT信號。

3第二個中斷響應周期: 輸出INTA。

把INTA信號作為讀信號中斷矢量n送數(shù)據(jù)線。讀數(shù)據(jù)n,F(xiàn)LAGS、CS、IP進堆棧, IF=0[4n][4n+1]IP

[4n+2][4n+3]CS

2鎖定IRR,IRRxISR和第一個中斷響應周期:中斷矢量寄存器。輸出INTA。開放數(shù)據(jù)線

4INT撤消。中斷程序PROC,運行中 斷服務程序,撤消ISR, 結束后返回PROC

支持中斷嵌套——解決中斷有效、中斷屏蔽、中斷排隊、中斷嵌套、中斷結束等問題。1.中斷請求觸發(fā)方式

2.屏蔽中斷方式

3.中斷優(yōu)先權設置方式

4.中斷結束方式

5.連接系統(tǒng)總線方式8259A的工作方式返回中斷請求觸發(fā)方式

◆電平觸發(fā)方式——IRi端出現(xiàn)高電平

◆邊沿觸發(fā)方式——IRi端出現(xiàn)由低到高的上升沿8259A的工作方式返回

中斷屏蔽方式

◆普通屏蔽方式 ——對IMR寄存器中的位置位或復位可設置對應的中斷請求被屏蔽或允許。

◆特殊屏蔽方式 ——在中斷服務中設置命令使ISR對應的位清0,并屏蔽該中斷源,從而開放了比當前低優(yōu)先權的中斷請求。一般用于較長中斷服務程序中。8259A的工作方式返回

中斷優(yōu)先權設置方式

◆普通全嵌套方式——8個中斷請求的優(yōu)先權次序為:(最高)IR0→IR7(最低)

◆特殊全嵌套方式——優(yōu)先權次序與普通全嵌套方式相同。但可實現(xiàn)同級中斷。一般用于8259A級聯(lián)方式中的主片。

——這兩種方式的優(yōu)先權次序是固定的,系統(tǒng)初始化后設置的是普通全嵌套方式。

8259A的工作方式下頁中斷優(yōu)先權設置方式◆優(yōu)先權自動循環(huán)方式——初始時,8個中斷請求的優(yōu)先權次序為:(最高)IR0→IR7(最低)當某一中斷請求被響應后,該中斷源的中斷優(yōu)先權降為最低。如IR3被響應后,中斷優(yōu)先權的次序改為:

IR4→IR5→IR6→IR7→IR0→IR1→IR2→IR3

◆優(yōu)先權特殊循環(huán)方式——用命令指定8個中斷請求的初始優(yōu)先權次序,當一個中斷被響應,該中斷的優(yōu)先權降為最低,同優(yōu)先權自動循環(huán)一樣。命令指定IR5為最低中斷優(yōu)先權,如圖示,則初始優(yōu)先權次序為:

IR6→IR7→IR0→IR1→IR2→IR3→IR4→IR58259A的工作方式返回

中斷結束方式(EOI)

◆自動中斷結束方式-自動EOI

——進入中斷服務時自動清除ISR。

◆普通中斷結束方式-普通EOI

——中斷服務結束時,通過對8259A發(fā)一個普通EOI命令,使8259A清除ISR寄存器中的已置位的位◆特殊中斷結束方式-特殊EOI

——在中斷服務結束時,通過對8259A發(fā)一個特殊EOI命令,使8259A清除命令中指定的位。中優(yōu)先權最高的位。8259A的工作方式返回連接系統(tǒng)總線的方式◆非緩沖方式

——8259A直接與系統(tǒng)總線相連◆緩沖方式

——8259A通過總線驅動器與系統(tǒng)數(shù)據(jù)總線連接。8259A的工作方式返回

——對8259A工作方式的選擇。

1.初始化命令字

ICW1~ICW4,通常在系統(tǒng)初始化時寫入8259A中,寫入次序固定,依次為ICW1、ICW2、ICW3(需要時)、ICW4。其中,ICW1寫入偶地址,其余寫入奇地址。8259的命令字下頁設置初始化命令字流程

8259的命令字下頁NICW1設置:級聯(lián)

中斷請求觸發(fā)

是否設置ICW4ICW2設置:中斷類型碼是否級聯(lián)?ICW3設置:各中斷請求引腳連接從片狀態(tài)設置ICW4?ICW4設置:緩沖方式

優(yōu)先權特殊嵌套

自動EOI主片?ICW3設置:低3位為從片標識符(000~111)NYYY8259的命令字ICW1下頁8259的命令字ICW2下頁8259的命令字ICW3下頁8259的命令字ICW4下頁

2.操作命令字

優(yōu)先權循環(huán)方式、普通/特殊EOI命令、普通/特殊屏蔽等由操作命令字設置。OCW1~OCW3,可在系統(tǒng)運行時隨時修改。由寫入不同端口和標志位方式區(qū)分。其中,OCW1寫入奇地址,其余寫入偶地址。OCW1設置各中斷源普通屏蔽;OCW2設置優(yōu)先權循環(huán)、EOI命令;OCW3設置特殊屏蔽、查詢方式、讀IRR和ISR寄存器。8259的命令字下頁8259的命令字OCW1下頁8259的命令字OCW2下頁8259的命令字OCW3返回初始化程序——ICW1~ICW4(主程序中)、OCW1(任意位置)2.

中斷向量表設置——非查詢方式下(主程序中)3.

中斷服務程序中設置——特殊屏蔽、EOI命令(中斷服務中)4.設置優(yōu)先權循環(huán)方式、讀IRR/ISR(任意位置)設8259A的端口地址為20H、21H8259A的編程返回初始化程序MOV AL, 00010011;設置單片工作,中斷請求OUT 20H, AL

邊沿觸發(fā),須設置ICW4MOV AL, 00001000;設置中斷類型碼08,即8個中斷源IR0~IR7對應的中斷類型碼為:OUT 21H, AL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論