第七章中斷系統(tǒng)_第1頁
第七章中斷系統(tǒng)_第2頁
第七章中斷系統(tǒng)_第3頁
第七章中斷系統(tǒng)_第4頁
第七章中斷系統(tǒng)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章

中斷系統(tǒng)7.18086/8088CPU中斷系統(tǒng)7.1.1中斷系統(tǒng)的基本概念7.1.2中斷的分類7.1.3計算機中斷處理的步驟7.2Intel8259A可編程中斷控制器7.3中斷程序舉例本章學習目標

掌握有關中斷的基本概念、中斷優(yōu)先級、中斷嵌套、中斷屏蔽、中斷向量等基本概念。了解8086/8088中斷系統(tǒng)中的中斷源分類掌握可編程中斷控制器8259A的功能、內(nèi)部結構、工作方式及初始化命令和操作命令的定義、使用方法,服務程序的基本編寫方法。7.1.1中斷系統(tǒng)基本概念1、中斷實質(zhì)上是一過程,當CPU執(zhí)行程序過程中,由于隨機事件(包括CPU內(nèi)部的和外部的事件)引起CPU暫時停止正在執(zhí)行的程序,而轉去執(zhí)行一個用于處理該事件的程序(中斷服務程序),中斷程序處理完后,又返回到被中止的程序斷點處繼續(xù)執(zhí)行。2、中斷系統(tǒng)的作用(1)分時處理(2)故障處理(3)實時處理7.1.2中斷的分類8086/8088可以處理256種不同類型的中斷,每個中斷對應一個中斷向量碼(0-255)。CPU按照向量碼的不同來識別不同的中斷源。中斷源:引起程序中斷的事件。1、外部中斷:由硬件電路或外設接口產(chǎn)生的??善帘沃袛嗖豢善帘沃袛啵?)通過INTR引腳將中斷信號送入CPU通過NMI引腳將中斷信號送入CPU(2)級數(shù):在一個系統(tǒng)中,通過8259A的配合工作可有幾十個;(3)是否受IF的影響若有中斷請求,能否響應,取決于IF,優(yōu)先級的高低。若有中斷請求,不論當前正在做什么事,都會在執(zhí)行完當前指令后立即響應并進入中斷服務程序。(4)優(yōu)先級別:受硬件、軟件的限制;(5)觸發(fā)方式:電平觸發(fā),高電平有效,其引腳的高電平必須維持到CPU響應中斷結束。上升沿觸發(fā),之后維持2個時鐘周期的高電平。(6)向量碼:由用戶設計,硬件連線決定中斷向量碼、優(yōu)先次序。(7)處理一般外部設備的中斷用于處理系統(tǒng)中出現(xiàn)的重大故障或緊急事件。2、內(nèi)部中斷/軟件中斷:與外部硬件完全無關。(1)由CPU的某些運算錯誤引起的中斷CPU在運行程序時,會發(fā)現(xiàn)一些運算中的錯誤,此時CPU就會中斷程序,讓用戶去處理。A、除法錯中斷:除數(shù)為零,或商超過了結果寄存器所能表示的最大范圍。處理:該中斷的服務處理一般由系統(tǒng)軟件進行處理。B、溢出中斷:算術運算的結果,導致OF=1專用指令:INTO,必須與算術指令配合。處理方法:算術運算后,+INTO處理方法:算術運算后,+INTO當OF=1,則產(chǎn)生溢出中斷當OF=0,繼續(xù)執(zhí)行下一條指令算術運算后,-INTO當OF=1,不會向CPU發(fā)中斷,會導致錯誤的運算結果。當OF=0,不會導致錯誤的運算結果。(2)由調(diào)試程序debug設置的中斷

軟件對Flags的設置引發(fā)的中斷調(diào)試程序過程中,為了檢查中間結果或?qū)ふ页绦蛑械腻e誤,在程序中設置斷點或進行單步跟蹤。為了實現(xiàn)該功能,由中斷指令實現(xiàn)。A、單步中斷:TF=1,單步執(zhí)行程序。每執(zhí)行完一條指令,自動產(chǎn)生單步中斷,暫時中斷程序的運行,檢查結果。產(chǎn)生中斷時,CPU自動將PSW、CS、IP→SP,清除TF、IF。由于進入單步中斷處理程序時,TF=0,不再處于單步工作方式,而以正常方式工作。當單步處理結束后,SP→IP、CS、PSW,CPU又返回到單步工作方式。B、斷點中斷:由debug調(diào)試程序時,用命令設置斷點。CPU執(zhí)行到斷點時便產(chǎn)生了中斷。INT3(單字節(jié)指令)原因:執(zhí)行指令INT3INT3可插在程序的任何地方(斷點)處理:該中斷服務處理,顯示有關寄存器、存儲器的內(nèi)容。(3)執(zhí)行指令INTn引起的中斷

INTn;SP←SP-2,SP+1:SP←PSWIF←0,TF←0SP←SP-2,SP+1:SP←CSSP←SP-2,SP+1:SP←IPIP←4n+1:4nCS←4n+3:4n+2IRET;IP←SP+1:SP,SP←SP+2CS←SP+1:SP,SP←SP+2PSW←SP+1:SP,SP←SP+25.1.3計算機中斷處理的步驟處理一個中斷的過程,就是妥善處理以下一些基本問題的過程:1)何時檢查中斷輸入信號及其處理辦法。2)如何把控制轉給中斷服務程序。3)如何保護和恢復中斷的現(xiàn)場。4)如何識別中斷源。5)如何識別優(yōu)先級較高的中斷。6)如何開放和關閉中斷。計算機中斷處理的步驟1、中斷請求2、中斷允許3、中斷優(yōu)先權4、中斷響應5、中斷處理6、中斷返回1、中斷請求:CPU如何識別有無中斷請求信號。(1)邊沿觸發(fā):CPU根據(jù)中斷請求端上有無上升沿或下跳沿來決定中斷請求信號是否有效。一般情況下,CPU能夠立即予以響應的中斷可采用。例NMI。(2)電平觸發(fā)方式:CPU根據(jù)中斷請求端上有無穩(wěn)定的電平信號(高低電平取決于CPU的設計)來確定中斷請求信號是否有效。一般,CPU不能立即響應的中斷采用。例INTR。但為保證產(chǎn)生的中斷被CPU處理,INTR信號應保持到該信號被CPU響應為止。CPU響應后,INTR信號還應及時撤除,以免造成多次響應。2、中斷允許(屏蔽):CPU查詢是否開中斷。IF=0,禁止中斷;IF=1,開放中斷3、中斷判優(yōu):解決請求中斷事件的識別,優(yōu)先級的順序問題。系統(tǒng)具有多個中斷源,由于中斷產(chǎn)生的隨機性,有可能在某一時刻兩個以上的中斷源同時發(fā)生中斷請求,而CPU往往只有一條中斷請求線,并且任一時刻只能響應并處理一個中斷,這就要求CPU能識別是哪些中斷源申請了中斷并找出優(yōu)先級最高的中斷源并響應之,在其處理完后,再響應級別較低的中斷源的請求優(yōu)先權的判別方法:(1)軟件判優(yōu):軟件安排各中斷源的優(yōu)先級別。優(yōu)先級別:由查詢順序決定特點:優(yōu)先權安排靈活,,但所花時間長,中斷源較多的情況下,中斷響應的實時性差。

CPU中斷請求寄存器并行輸入端口DBINTRIRQ0IRQ7

Y

Y

Y

N

N

N

保護現(xiàn)場

檢查IRQ1的中斷狀態(tài)是否為“1”

檢查IRQ2的中斷狀態(tài)是否為“1”

檢查IRQ3的中斷狀態(tài)是否為“1”

IRQ1的服務程序

IRQ2的服務程序

IRQ3的服務程序

恢復現(xiàn)場

中斷返回

中斷處理入口

(2)硬件判優(yōu):利用硬件電路安排各中斷源的優(yōu)先級別。將所有的中斷源構成一個菊花鏈,各中斷源在鏈中的前后順序是根據(jù)中斷優(yōu)先級別的高低來排列的,排在鏈前面的高優(yōu)先級別的中斷會自動封鎖低優(yōu)先級別的中斷。

I/ODATABUS中斷請求SYNPOL1號設備2號設備n號設備CPU(3)中斷向量法:不同的中斷源對應不同的中斷向量碼的方法來確定中斷源。硬件中用一個中斷優(yōu)先權判別器判別出哪個中斷請求的優(yōu)先級別最高,然后在CPU響應中斷時把此中斷源所對應的中斷向量碼送給CPU,CPU根據(jù)中斷向量碼找到相應的中斷服務程序入口,對此中斷進行處理。

INTR1

INTA1

INTM1

INTR2

INTA2

INTM2

INTRn

INTAn

INTMn

優(yōu)

設備接口

1

IR

IM

設備接口

2

IR

IM

設備接口

n

IR

IM

INTR

INTA

向量地址

主機

中斷嵌套當CPU正在處理中斷時,有更高優(yōu)先級別的中斷請求,并且IF=1,CPU轉去響應更高級別的中斷請求,屏蔽掉低級別的中斷請求,形成中斷嵌套。

4、中斷響應:(1)中斷響應的條件有中斷請求信號中斷請求沒有被屏蔽中斷是開放的CPU在現(xiàn)行指令執(zhí)行結束時響應中斷(2)CPU何時檢測到中斷請求中斷請求何時發(fā)生是隨機的。CPU在每條指令執(zhí)行的最后一個時鐘周期檢測中斷引腳上有無請求信號。(3)中斷響應的時間及條件CPU在現(xiàn)行指令執(zhí)行結束后,馬上響應中斷。當前執(zhí)行的指令是STI或IRET,則他們執(zhí)行完后再執(zhí)行一條指令,CPU才去響應中斷。(4)中斷響應過程發(fā)出中斷響應信號。獲取中斷向量碼n并暫存。將PSW壓入堆棧,同時清IF、TF。斷點保護。即將當前IP、CS壓入堆棧保護獲取中斷服務程序的入口地址。5、中斷處理:通過執(zhí)行中斷服務程序完成保護現(xiàn)場開中斷(允許中斷嵌套)。執(zhí)行中斷服務程序。注意不易過長和過于復雜。在中斷服務程序中停留的時間越短越好,否則程序易出錯,也影響對其他中斷源的及時處理。一般方法是,只執(zhí)行必須執(zhí)行的操作,其他放到其他程序。關中斷,確保有效恢復到被中斷程序的現(xiàn)場。恢復現(xiàn)場開中斷中斷返回。中斷服務程序框圖與程序示例

中斷服務程序入口

CPU響應中斷后

自動關中斷保護現(xiàn)場

開中斷

中斷服務

關中斷

恢復現(xiàn)場

開中斷

中斷返回

入口地址:

PUSHAX;保護現(xiàn)場

PUSHBX

PUSHCX

PUSHDX

PUSHSI

PUSHDI

PUSHSP

PUSHBP

STI;開中斷

;中斷服務

CLI;關中斷

POPBP;恢復現(xiàn)場

POPSP

POPDI

POPSI

POPDX

POPCX

POPBX

POPAX

STI;開中斷

IRET;中斷返回

結尾部分

主體部分

起始部分

返回本節(jié)6、中斷向量和中斷向量表中斷向量:中斷服務程序的入口地址。每個中斷向量占4個字節(jié)。中斷向量表:中斷服務程序入口地址表。是中斷向量碼與它相應的中斷服務程序入口地址之間的轉換表。中斷向量地址:中斷服務程序入口地址的存儲地址。中斷向量地址(偏移地址)與中斷向量碼之間的關系是4n。中斷向量表003FFH

003FCH

00080H

0007CH

00014H

00012H

0000CH

00008H

00004H

00000H

專用

中斷向量

(5個)

系統(tǒng)保留

中斷向量

(27個)

用戶可用

中斷向量(224個)

16位

CS

IP

255號向量

32號向量

31號向量

5號向量

4號向量(溢出)

3號向量

2號向量(非屏蔽)

1號向量(單步)

0號向量(除法錯)

中斷向量的設置:如何將中斷服務程序入口地址送入中斷類型碼所對應中斷向量表中1、采用DOS系統(tǒng)功能調(diào)用。即INT21H的25H號功能調(diào)用。2、將中斷服務程序的入口地址直接裝入中斷向量表中。

1.中斷優(yōu)先級別中斷源優(yōu)先級除法錯、INTn,INTO最高NMI↑INTR∣單步(陷阱)最低中斷優(yōu)先級順序小結7.2Intel8259A可編程中斷控制器7.2.18259A的框圖和引腳7.2.2中斷觸發(fā)方式和中斷響應過程7.2.3工作方式7.2.4屏蔽中斷源的方式7.2.5結束中斷處理的方式7.2.6中斷級聯(lián)方式7.2.78259A初始化命令字和操作方式命令字返回本章首頁7.2.18259A的框圖和引腳1.功能管理和控制80x86的外部中斷請求實現(xiàn)中斷判優(yōu)提供中斷向量屏蔽中斷輸入使用單片8259A可以管理8級中斷,采用級聯(lián)方式,最多可管理64級中斷2、結構框圖

D7~D0

SP/EN

CAS0

CAS1

CAS2

RD

WR

A0

CS

控制邏輯中斷服務寄存器ISR

中斷判優(yōu)器

中斷請求寄存器IRR

中斷屏蔽寄存器IMR

INTA

INT

內(nèi)部總線

IR0

IR1

IR2

IR3

IR4

IR5

IR6

IR7

讀寫控制邏輯數(shù)據(jù)總線緩沖器級聯(lián)緩沖比較器3、8259A的引腳

VCC

A0

INTA

IR7

IR6

IR5

IR4

IR3

IR2

IR1

IR0

INT

SP/EN

CAS2

CS

WR

RD

D7

D6

D5

D4

D3

D2

D1

D0

CAS0

CAS1

GND

1

8259A28

2

27

3

26

4

25

5

24

6

23

7

22

8

21

9

20

10

19

11

18

12

17

13

16

14

15

4、8259A的工作原理及中斷響應過程(1)外部設備在中斷請求輸入線(IR7~IR0)上發(fā)了中斷請求,使中斷請求寄存器IRR的相應位置位。(2)IRR的內(nèi)容與IMR的內(nèi)容的非相“與”,結果送給優(yōu)先級分析器。中斷優(yōu)先級分析器把優(yōu)先級最高的中斷請求送到控制電路。(3)控制電路將接收到的中斷請求向CPU輸出INT信號。

(4)若CPU是處在開中斷狀態(tài),則在當前指令執(zhí)行完以后,接收到INT信號,輸出一個中斷響應脈沖,進入第一個中斷響應周期。(5)8259A的腳上收到脈沖信號,就將最高優(yōu)先級所對應的IRR位清除,并將對應的ISR位置位。(6)CPU啟動第二個中斷響應周期,輸出另一個脈沖,在這個周期8259A向數(shù)據(jù)總線輸出一個中斷向量碼。(7)CPU讀取該中斷向量碼,把它乘以4,得到中斷服務程序入口地址,轉入該中斷服務程序。這樣一個中斷響應周期就完成了。5、8259A寄存器及I/O端口的識別CSRDWRA0功能8259A端口PC/XT機端口0010讀IRR,ISR偶地址20H0011讀IMR奇地址21H0100寫ICW1,OCW2,OCW3偶地址20H0101寫ICW2,ICW3,ICW4,OCW1奇地址21H011×無操作

1×××無操作

返回本節(jié)7.2.2中斷管理方式1、優(yōu)先級設置方式(1)一般完全嵌套方式:中斷優(yōu)先級分配固定級別0~7級,IR0具有最高優(yōu)先級,IR7優(yōu)先級最低。但優(yōu)先級順序可通過程序來改變處理某級中斷時,只允許高級中斷進入,實現(xiàn)中斷嵌套,禁止同級或低級中斷請求進入。中斷結束方式:普通EOI方式,自動AEOI方式。

(2)特殊完全嵌套方式用于級連系統(tǒng),且僅適用于主片,確定從片內(nèi)部優(yōu)先級的工作方式;中斷優(yōu)先級固定;處理某級中斷時,允許同級(同一從片上,優(yōu)先級高的中斷;對主片,認為同級中斷)、高級(主片上其它優(yōu)先級較高);特殊EOI方式(3)優(yōu)先級自動循環(huán)方式

a、用于系統(tǒng)中多個中斷源優(yōu)先級相等的場合;b、優(yōu)先級別可以改變,一個中斷源得到服務以后,它的優(yōu)先級別變?yōu)樽畹?,將最高?yōu)先級賦給原來比它低一級的中請;IRR00010010優(yōu)先級76543210IR1被服務后優(yōu)先級54321076C、AEOI、普通EOI方式(4)優(yōu)先級特殊循環(huán)方式A、優(yōu)先級別可以改變,一個中斷源得到服務以后,它的優(yōu)先級別變?yōu)樽畹?,將最高?yōu)先級賦給原來比它低一級的中請;

b

、

初始最低優(yōu)先級由程序規(guī)定,最高優(yōu)先級也就確定了。不是固定IR0為初始最高級;C、特殊EOI方式。

2、中斷結束方式

使ISR中ISRn清零的工作,什么時刻使ISR中對應位置0。(1)中斷自動結束方式:任何一級中斷被響應后,ISR對應位置1。在CPU進入中斷響應周期,發(fā)第二個INTA脈沖(后沿),8259A將自動把ISR中的對應位清除。。(2)一般的中斷結束方式

任何一級中斷處理結束返回上一級程序前,CPU向8259A傳送EOI結束命令字(必須放在IRET前),8259A就會把當前的ISR中的最高IS位(反映了最后一次被響應和被處理的中斷)復位(ISRn=0相當于結束了當前正在處理的中斷)。(3)特殊的中斷結束方式CPU向8259A發(fā)特殊EOI方式命令字,指出要清除當前ISR中的哪一位ISRn。3、中斷源屏蔽方式(1)普通屏蔽方式將IMR某位置1,則它對應的IRi就被屏蔽,使對應的中斷請求被屏蔽,不能從8259A送到CPU;將IMR某位清0,則允許該IRi中斷傳送給CPU。

(2)特殊屏蔽方式希望一個中斷服務程序能動態(tài)地改變系統(tǒng)的優(yōu)先級結構。注意事項:在中斷處理程序中使用。操作:在IRi的處理中,若希望使除IRi以外的所有IR中斷請求均可被響應的話,則首先設置特殊屏蔽方式,再編程(用OCW1對IMR)將IRi屏蔽掉(使IMR中的ImRi位置1),同時會使ISR中的IsRi位復位。這樣,除了正在服務的這級中斷被屏蔽(不允許產(chǎn)生進一步的中斷外),其它各級中斷全部開放。4、中斷級聯(lián)方式(1)緩沖方式:8259A通過總線驅(qū)動器和數(shù)據(jù)總線相連,這就是緩沖方式。(2)非緩沖方式:當系統(tǒng)中只有單片8259A時,一般將它直接與數(shù)據(jù)總線相連。

5、中斷請求方式(1)邊沿觸發(fā)方式:上升沿(2)電平觸發(fā)方式:高電平(3)中斷查詢方式:外設通過邊沿或電平觸發(fā)方式向8259A提中斷,而CPU通過軟件查詢方式來確認中斷源。具有中斷、查詢二者特點

B7~B0

T

74LS245OE

A7~A0

DT/R

INTR

DEN

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

B7~B0

T

74LS245OE

A7~A0

SP/END7~D0

從控B

CAS2-0INTAINT

SP/END7~D0

從控A

CAS2-0INTAINT

SP/END7~D0

主控制器INT

IR5IR6INTACAS2-0

+5V1kΩ

B7~B0

OE74LS245T

A7~A0

+5V1kΩ

+5V1kΩ

系統(tǒng)數(shù)據(jù)總線

INTA

8259A緩沖方式下級連結構8259A非緩沖方式下級連結構

地址總線

控制總線

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

CSA0DBINTA

INT

CAS0

8259A從控ACAS1

CAS2

SP/ENIRQ7┅IRQ0

CSA0DBINTAINT

CAS0

CAS18259A主控

CAS2

IRQ7┅IRQ0

SP/EN76

5432

10

CSA0DB

INTA

INT

CAS0

8259A從控BCAS1

CAS2

SP/ENIRQ7┅IRQ0

GND76543210

GND76543210

VCC76543210

CSA0DB

INTA

INT

CAS0

8259A從控BCAS1

CAS2

SP/ENIRQ7┅IRQ0

CSA0DB

INTA

INT

CAS0

8259A從控BCAS1

CAS2

SP/ENIRQ7┅IRQ0

CSA0DB

INTA

INT

CAS0

8259A從控BCAS1

CAS2

SP/ENIRQ7┅IRQ0

CSA0DB

INTA

INT

CAS0

8259A從控BCAS1

CAS2

SP/ENIRQ7┅IRQ0

7.2.38259A初始化命令字和操作方式命字1.初始化命令字ICW(1)ICW1(2)ICW2(3)ICW3(4)ICW4(5)初始化命令字的編程順序ICW1命令字

A00

偶地址端口

D7D6D5D4D3D2D1D0XXX1LTIMXSNGLIC4

特征位

1電平觸發(fā)

0邊沿觸發(fā)

1單片方式

0級連方式

1要ICW4

0不要ICW4

ICW2命令字

A0

D7

D6

D5

D4

D3

D2

D1D0

1

8259A填入T7T6T5T4T3000

中斷類型號的高5位主8259A的ICW3命令字

1-IRi輸入引腳接從片的INT

0-IRi輸入引腳未接從片的INT

A0

D7

D6

D5

D4

D3

D2

D1

D0

S3

S2

S1

S0

S4

S5

S6

S7

1

從8259A的ICW3命令字

A0

D7

D6

D5

D4

D3

D2

D1

D0

0

S2

S1

S0

0

0

0

0

1

該從片的INT引腳與主片的哪一個引腳相連ICW4命令字

1-8088/8086CPU

0-8080/8085CPU

1-自動EOI方式

0-非自動EOI方式

1-特殊完全嵌套方式

0-一般完全嵌套方式

0

非緩沖方式

1

0

緩沖方式從片

1

1

緩沖方式主片

A0

D7

D6

D5

D4

D3

D2

D1D0

1

000SFNMBUFM/SAEOIuPM

x8259A初始化命令字的順序

開始

初始化ICW1

初始化ICW2

是否用級連方式?

初始化ICW3

是否用ICW4?

初始化ICW4

準備接近中斷請求

結束

Y

Y

Y

N

N

2.操作命令字OCW(1)OCW1:OCW1是中斷屏蔽命令字,D7~D0分別控制對應的IRQ7~I

溫馨提示

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

評論

0/150

提交評論