




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第七章
中斷系統7.18086/8088CPU中斷系統7.1.1中斷系統的基本概念7.1.2中斷的分類7.1.3計算機中斷處理的步驟7.2Intel8259A可編程中斷控制器7.3中斷程序舉例本章學習目標
掌握有關中斷的基本概念、中斷優先級、中斷嵌套、中斷屏蔽、中斷向量等基本概念。了解8086/8088中斷系統中的中斷源分類掌握可編程中斷控制器8259A的功能、內部結構、工作方式及初始化命令和操作命令的定義、使用方法,服務程序的基本編寫方法。7.1.1中斷系統基本概念1、中斷實質上是一過程,當CPU執行程序過程中,由于隨機事件(包括CPU內部的和外部的事件)引起CPU暫時停止正在執行的程序,而轉去執行一個用于處理該事件的程序(中斷服務程序),中斷程序處理完后,又返回到被中止的程序斷點處繼續執行。2、中斷系統的作用(1)分時處理(2)故障處理(3)實時處理7.1.2中斷的分類8086/8088可以處理256種不同類型的中斷,每個中斷對應一個中斷向量碼(0-255)。CPU按照向量碼的不同來識別不同的中斷源。中斷源:引起程序中斷的事件。1、外部中斷:由硬件電路或外設接口產生的??善帘沃袛嗖豢善帘沃袛啵?)通過INTR引腳將中斷信號送入CPU通過NMI引腳將中斷信號送入CPU(2)級數:在一個系統中,通過8259A的配合工作可有幾十個;(3)是否受IF的影響若有中斷請求,能否響應,取決于IF,優先級的高低。若有中斷請求,不論當前正在做什么事,都會在執行完當前指令后立即響應并進入中斷服務程序。(4)優先級別:受硬件、軟件的限制;(5)觸發方式:電平觸發,高電平有效,其引腳的高電平必須維持到CPU響應中斷結束。上升沿觸發,之后維持2個時鐘周期的高電平。(6)向量碼:由用戶設計,硬件連線決定中斷向量碼、優先次序。(7)處理一般外部設備的中斷用于處理系統中出現的重大故障或緊急事件。2、內部中斷/軟件中斷:與外部硬件完全無關。(1)由CPU的某些運算錯誤引起的中斷CPU在運行程序時,會發現一些運算中的錯誤,此時CPU就會中斷程序,讓用戶去處理。A、除法錯中斷:除數為零,或商超過了結果寄存器所能表示的最大范圍。處理:該中斷的服務處理一般由系統軟件進行處理。B、溢出中斷:算術運算的結果,導致OF=1專用指令:INTO,必須與算術指令配合。處理方法:算術運算后,+INTO處理方法:算術運算后,+INTO當OF=1,則產生溢出中斷當OF=0,繼續執行下一條指令算術運算后,-INTO當OF=1,不會向CPU發中斷,會導致錯誤的運算結果。當OF=0,不會導致錯誤的運算結果。(2)由調試程序debug設置的中斷
軟件對Flags的設置引發的中斷調試程序過程中,為了檢查中間結果或尋找程序中的錯誤,在程序中設置斷點或進行單步跟蹤。為了實現該功能,由中斷指令實現。A、單步中斷:TF=1,單步執行程序。每執行完一條指令,自動產生單步中斷,暫時中斷程序的運行,檢查結果。產生中斷時,CPU自動將PSW、CS、IP→SP,清除TF、IF。由于進入單步中斷處理程序時,TF=0,不再處于單步工作方式,而以正常方式工作。當單步處理結束后,SP→IP、CS、PSW,CPU又返回到單步工作方式。B、斷點中斷:由debug調試程序時,用命令設置斷點。CPU執行到斷點時便產生了中斷。INT3(單字節指令)原因:執行指令INT3INT3可插在程序的任何地方(斷點)處理:該中斷服務處理,顯示有關寄存器、存儲器的內容。(3)執行指令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)如何保護和恢復中斷的現場。4)如何識別中斷源。5)如何識別優先級較高的中斷。6)如何開放和關閉中斷。計算機中斷處理的步驟1、中斷請求2、中斷允許3、中斷優先權4、中斷響應5、中斷處理6、中斷返回1、中斷請求:CPU如何識別有無中斷請求信號。(1)邊沿觸發:CPU根據中斷請求端上有無上升沿或下跳沿來決定中斷請求信號是否有效。一般情況下,CPU能夠立即予以響應的中斷可采用。例NMI。(2)電平觸發方式:CPU根據中斷請求端上有無穩定的電平信號(高低電平取決于CPU的設計)來確定中斷請求信號是否有效。一般,CPU不能立即響應的中斷采用。例INTR。但為保證產生的中斷被CPU處理,INTR信號應保持到該信號被CPU響應為止。CPU響應后,INTR信號還應及時撤除,以免造成多次響應。2、中斷允許(屏蔽):CPU查詢是否開中斷。IF=0,禁止中斷;IF=1,開放中斷3、中斷判優:解決請求中斷事件的識別,優先級的順序問題。系統具有多個中斷源,由于中斷產生的隨機性,有可能在某一時刻兩個以上的中斷源同時發生中斷請求,而CPU往往只有一條中斷請求線,并且任一時刻只能響應并處理一個中斷,這就要求CPU能識別是哪些中斷源申請了中斷并找出優先級最高的中斷源并響應之,在其處理完后,再響應級別較低的中斷源的請求優先權的判別方法:(1)軟件判優:軟件安排各中斷源的優先級別。優先級別:由查詢順序決定特點:優先權安排靈活,,但所花時間長,中斷源較多的情況下,中斷響應的實時性差。
CPU中斷請求寄存器并行輸入端口DBINTRIRQ0IRQ7
Y
Y
Y
N
N
N
保護現場
檢查IRQ1的中斷狀態是否為“1”
檢查IRQ2的中斷狀態是否為“1”
檢查IRQ3的中斷狀態是否為“1”
IRQ1的服務程序
IRQ2的服務程序
IRQ3的服務程序
恢復現場
中斷返回
中斷處理入口
(2)硬件判優:利用硬件電路安排各中斷源的優先級別。將所有的中斷源構成一個菊花鏈,各中斷源在鏈中的前后順序是根據中斷優先級別的高低來排列的,排在鏈前面的高優先級別的中斷會自動封鎖低優先級別的中斷。
I/ODATABUS中斷請求SYNPOL1號設備2號設備n號設備CPU(3)中斷向量法:不同的中斷源對應不同的中斷向量碼的方法來確定中斷源。硬件中用一個中斷優先權判別器判別出哪個中斷請求的優先級別最高,然后在CPU響應中斷時把此中斷源所對應的中斷向量碼送給CPU,CPU根據中斷向量碼找到相應的中斷服務程序入口,對此中斷進行處理。
INTR1
INTA1
INTM1
INTR2
INTA2
INTM2
INTRn
INTAn
INTMn
中
斷
優
先
權
編
碼
電
路
設備接口
1
IR
IM
設備接口
2
IR
IM
設備接口
n
IR
IM
INTR
INTA
向量地址
主機
中斷嵌套當CPU正在處理中斷時,有更高優先級別的中斷請求,并且IF=1,CPU轉去響應更高級別的中斷請求,屏蔽掉低級別的中斷請求,形成中斷嵌套。
4、中斷響應:(1)中斷響應的條件有中斷請求信號中斷請求沒有被屏蔽中斷是開放的CPU在現行指令執行結束時響應中斷(2)CPU何時檢測到中斷請求中斷請求何時發生是隨機的。CPU在每條指令執行的最后一個時鐘周期檢測中斷引腳上有無請求信號。(3)中斷響應的時間及條件CPU在現行指令執行結束后,馬上響應中斷。當前執行的指令是STI或IRET,則他們執行完后再執行一條指令,CPU才去響應中斷。(4)中斷響應過程發出中斷響應信號。獲取中斷向量碼n并暫存。將PSW壓入堆棧,同時清IF、TF。斷點保護。即將當前IP、CS壓入堆棧保護獲取中斷服務程序的入口地址。5、中斷處理:通過執行中斷服務程序完成保護現場開中斷(允許中斷嵌套)。執行中斷服務程序。注意不易過長和過于復雜。在中斷服務程序中停留的時間越短越好,否則程序易出錯,也影響對其他中斷源的及時處理。一般方法是,只執行必須執行的操作,其他放到其他程序。關中斷,確保有效恢復到被中斷程序的現場?;謴同F場開中斷中斷返回。中斷服務程序框圖與程序示例
中斷服務程序入口
CPU響應中斷后
自動關中斷保護現場
開中斷
中斷服務
關中斷
恢復現場
開中斷
中斷返回
入口地址:
PUSHAX;保護現場
PUSHBX
PUSHCX
PUSHDX
PUSHSI
PUSHDI
PUSHSP
PUSHBP
STI;開中斷
∶
;中斷服務
CLI;關中斷
POPBP;恢復現場
POPSP
POPDI
POPSI
POPDX
POPCX
POPBX
POPAX
STI;開中斷
IRET;中斷返回
結尾部分
主體部分
起始部分
返回本節6、中斷向量和中斷向量表中斷向量:中斷服務程序的入口地址。每個中斷向量占4個字節。中斷向量表:中斷服務程序入口地址表。是中斷向量碼與它相應的中斷服務程序入口地址之間的轉換表。中斷向量地址:中斷服務程序入口地址的存儲地址。中斷向量地址(偏移地址)與中斷向量碼之間的關系是4n。中斷向量表003FFH
003FCH
00080H
0007CH
00014H
00012H
0000CH
00008H
00004H
00000H
專用
中斷向量
(5個)
系統保留
中斷向量
(27個)
用戶可用
中斷向量(224個)
16位
CS
IP
255號向量
∶
32號向量
31號向量
∶
5號向量
4號向量(溢出)
3號向量
2號向量(非屏蔽)
1號向量(單步)
0號向量(除法錯)
中斷向量的設置:如何將中斷服務程序入口地址送入中斷類型碼所對應中斷向量表中1、采用DOS系統功能調用。即INT21H的25H號功能調用。2、將中斷服務程序的入口地址直接裝入中斷向量表中。
1.中斷優先級別中斷源優先級除法錯、INTn,INTO最高NMI↑INTR∣單步(陷阱)最低中斷優先級順序小結7.2Intel8259A可編程中斷控制器7.2.18259A的框圖和引腳7.2.2中斷觸發方式和中斷響應過程7.2.3工作方式7.2.4屏蔽中斷源的方式7.2.5結束中斷處理的方式7.2.6中斷級聯方式7.2.78259A初始化命令字和操作方式命令字返回本章首頁7.2.18259A的框圖和引腳1.功能管理和控制80x86的外部中斷請求實現中斷判優提供中斷向量屏蔽中斷輸入使用單片8259A可以管理8級中斷,采用級聯方式,最多可管理64級中斷2、結構框圖
D7~D0
SP/EN
CAS0
CAS1
CAS2
RD
WR
A0
CS
控制邏輯中斷服務寄存器ISR
中斷判優器
中斷請求寄存器IRR
中斷屏蔽寄存器IMR
INTA
INT
內部總線
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
讀寫控制邏輯數據總線緩沖器級聯緩沖比較器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)上發了中斷請求,使中斷請求寄存器IRR的相應位置位。(2)IRR的內容與IMR的內容的非相“與”,結果送給優先級分析器。中斷優先級分析器把優先級最高的中斷請求送到控制電路。(3)控制電路將接收到的中斷請求向CPU輸出INT信號。
(4)若CPU是處在開中斷狀態,則在當前指令執行完以后,接收到INT信號,輸出一個中斷響應脈沖,進入第一個中斷響應周期。(5)8259A的腳上收到脈沖信號,就將最高優先級所對應的IRR位清除,并將對應的ISR位置位。(6)CPU啟動第二個中斷響應周期,輸出另一個脈沖,在這個周期8259A向數據總線輸出一個中斷向量碼。(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×××無操作
返回本節7.2.2中斷管理方式1、優先級設置方式(1)一般完全嵌套方式:中斷優先級分配固定級別0~7級,IR0具有最高優先級,IR7優先級最低。但優先級順序可通過程序來改變處理某級中斷時,只允許高級中斷進入,實現中斷嵌套,禁止同級或低級中斷請求進入。中斷結束方式:普通EOI方式,自動AEOI方式。
(2)特殊完全嵌套方式用于級連系統,且僅適用于主片,確定從片內部優先級的工作方式;中斷優先級固定;處理某級中斷時,允許同級(同一從片上,優先級高的中斷;對主片,認為同級中斷)、高級(主片上其它優先級較高);特殊EOI方式(3)優先級自動循環方式
a、用于系統中多個中斷源優先級相等的場合;b、優先級別可以改變,一個中斷源得到服務以后,它的優先級別變為最低,將最高優先級賦給原來比它低一級的中請;IRR00010010優先級76543210IR1被服務后優先級54321076C、AEOI、普通EOI方式(4)優先級特殊循環方式A、優先級別可以改變,一個中斷源得到服務以后,它的優先級別變為最低,將最高優先級賦給原來比它低一級的中請;
b
、
初始最低優先級由程序規定,最高優先級也就確定了。不是固定IR0為初始最高級;C、特殊EOI方式。
2、中斷結束方式
使ISR中ISRn清零的工作,什么時刻使ISR中對應位置0。(1)中斷自動結束方式:任何一級中斷被響應后,ISR對應位置1。在CPU進入中斷響應周期,發第二個INTA脈沖(后沿),8259A將自動把ISR中的對應位清除。。(2)一般的中斷結束方式
任何一級中斷處理結束返回上一級程序前,CPU向8259A傳送EOI結束命令字(必須放在IRET前),8259A就會把當前的ISR中的最高IS位(反映了最后一次被響應和被處理的中斷)復位(ISRn=0相當于結束了當前正在處理的中斷)。(3)特殊的中斷結束方式CPU向8259A發特殊EOI方式命令字,指出要清除當前ISR中的哪一位ISRn。3、中斷源屏蔽方式(1)普通屏蔽方式將IMR某位置1,則它對應的IRi就被屏蔽,使對應的中斷請求被屏蔽,不能從8259A送到CPU;將IMR某位清0,則允許該IRi中斷傳送給CPU。
(2)特殊屏蔽方式希望一個中斷服務程序能動態地改變系統的優先級結構。注意事項:在中斷處理程序中使用。操作:在IRi的處理中,若希望使除IRi以外的所有IR中斷請求均可被響應的話,則首先設置特殊屏蔽方式,再編程(用OCW1對IMR)將IRi屏蔽掉(使IMR中的ImRi位置1),同時會使ISR中的IsRi位復位。這樣,除了正在服務的這級中斷被屏蔽(不允許產生進一步的中斷外),其它各級中斷全部開放。4、中斷級聯方式(1)緩沖方式:8259A通過總線驅動器和數據總線相連,這就是緩沖方式。(2)非緩沖方式:當系統中只有單片8259A時,一般將它直接與數據總線相連。
5、中斷請求方式(1)邊沿觸發方式:上升沿(2)電平觸發方式:高電平(3)中斷查詢方式:外設通過邊沿或電平觸發方式向8259A提中斷,而CPU通過軟件查詢方式來確認中斷源。具有中斷、查詢二者特點
B7~B0
T
74LS245OE
A7~A0
DT/R
INTR
DEN
局部數據總線
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Ω
系統數據總線
INTA
8259A緩沖方式下級連結構8259A非緩沖方式下級連結構
地址總線
控制總線
數據總線
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電平觸發
0邊沿觸發
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 考試心態調整特許金融分析師考試試題及答案
- 證券投資中的人機結合分析試題及答案
- 2025年財務報告標準變動試題及答案
- 2025年CFA考試資本市場操作試題及答案
- 微生物分析報告的撰寫技巧試題及答案
- 2024年項目管理新挑戰及應對策略試題及答案
- 預備工作2025年證券從業資格證試題及答案
- 礦山安全應急預案與演練-石墨滑石考核試卷
- 2025年審計審查重點試題及答案
- 礦山環境管理與生態斷層監測考核試卷
- 知識工程培訓課件
- (高清版)DB32∕T 2770-2015 活性炭纖維通 用技術要求與測試方法
- 2023中國偏頭痛診斷與治療指南
- 水電站經營權承包合同3篇
- RoHS供應商環境稽核檢查表
- 2025中國華電集團限公司校招+社招高頻重點提升(共500題)附帶答案詳解
- 起重傷害應急預案培訓
- 手術室護士入科匯報
- 【MOOC】電視采訪報道-中國傳媒大學 中國大學慕課MOOC答案
- 精神科患者首次風險評估單
- 家庭、私有制和國家的起源-課件
評論
0/150
提交評論