微機原理第6章-中斷技術(shù)_第1頁
微機原理第6章-中斷技術(shù)_第2頁
微機原理第6章-中斷技術(shù)_第3頁
微機原理第6章-中斷技術(shù)_第4頁
微機原理第6章-中斷技術(shù)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第 6 6 章章第第6章:教學(xué)重點章:教學(xué)重點教學(xué)重點 8088 CPU的中斷系統(tǒng)的中斷系統(tǒng) 內(nèi)部中斷服務(wù)程序的編寫內(nèi)部中斷服務(wù)程序的編寫 中斷控制器中斷控制器8259A的作用的作用第第6章:章:6.1 8088中斷系統(tǒng)中斷系統(tǒng) 8088的中斷系統(tǒng)采用向量中斷機制的中斷系統(tǒng)采用向量中斷機制 能夠處理能夠處理256個中斷個中斷 用中斷向量號用中斷向量號0 255區(qū)別區(qū)別 可屏蔽中斷還需要借助專用中斷控制器可屏蔽中斷還需要借助專用中斷控制器Intel 8259A實現(xiàn)優(yōu)先權(quán)管理實現(xiàn)優(yōu)先權(quán)管理第第6章:章:6.1.1 8088的中斷類型的中斷類型非屏蔽中斷源非屏蔽中斷源中斷邏輯中斷邏輯INTO指令指

2、令單步單步中斷中斷除法除法錯誤錯誤INT N指令指令CPUINTRNMI可屏蔽中斷源可屏蔽中斷源8259A中斷中斷控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外設(shè)設(shè)中中斷斷源源 INTA 內(nèi)部中斷內(nèi)部中斷u 除法錯中斷除法錯中斷u 指令中斷指令中斷u 溢出中斷溢出中斷u 單步中斷單步中斷 外部中斷外部中斷u 非屏蔽中斷非屏蔽中斷u 可屏蔽中斷可屏蔽中斷第第6章:章:1. 內(nèi)部中斷內(nèi)部中斷 內(nèi)部中斷是由于內(nèi)部中斷是由于8088內(nèi)部執(zhí)行程序出現(xiàn)異內(nèi)部執(zhí)行程序出現(xiàn)異常引起常引起的程序中斷的程序中斷 利用內(nèi)部中斷,微處理器為用戶提供了發(fā)利用內(nèi)部中斷,微處理器為用戶提供了發(fā)現(xiàn)、調(diào)試并解

3、決程序執(zhí)行時異常情況的有現(xiàn)、調(diào)試并解決程序執(zhí)行時異常情況的有效途徑效途徑 例如,例如,ROM-BIOS和和DOS系統(tǒng)利用內(nèi)部中系統(tǒng)利用內(nèi)部中斷為程序員提供了各種功能調(diào)用斷為程序員提供了各種功能調(diào)用第第6章:章: 除法錯中斷除法錯中斷 在執(zhí)行除法指令時,若除數(shù)為在執(zhí)行除法指令時,若除數(shù)為0或商超過了或商超過了寄存器所能表達的范圍,則產(chǎn)生一個寄存器所能表達的范圍,則產(chǎn)生一個向量向量號為號為0的內(nèi)部中斷,稱為的內(nèi)部中斷,稱為除法錯中斷除法錯中斷例如:例如:mov bl,0idiv bl;除數(shù);除數(shù)BL0,產(chǎn)生除法錯中斷,產(chǎn)生除法錯中斷mov ax,200hmov bl,1div bl;商;商200H

4、,不能用,不能用AL表達表達;產(chǎn)生除法錯中斷;產(chǎn)生除法錯中斷第第6章:章: 指令中斷指令中斷 在執(zhí)行中斷調(diào)用指令在執(zhí)行中斷調(diào)用指令I(lǐng)NT n時產(chǎn)生的一個時產(chǎn)生的一個向向量號為量號為n(0 255)的內(nèi)部中斷,稱為)的內(nèi)部中斷,稱為指令指令中斷中斷 其中其中向量號為向量號為3的指令中斷比較特別(生成的指令中斷比較特別(生成一個字節(jié)的指令代碼:一個字節(jié)的指令代碼:11001100),常用),常用于程序調(diào)試,被稱為于程序調(diào)試,被稱為斷點中斷斷點中斷例如:例如:DEBUG.EXE調(diào)試程序的運行命令調(diào)試程序的運行命令G設(shè)置設(shè)置的斷點,就是利用的斷點,就是利用INT 3指令實現(xiàn)的指令實現(xiàn)的第第6章:章:

5、溢出中斷溢出中斷 在執(zhí)行溢出中斷指令在執(zhí)行溢出中斷指令I(lǐng)NTO時,若溢出標(biāo)志時,若溢出標(biāo)志OF為為1,則產(chǎn)生一個,則產(chǎn)生一個向量號為向量號為4的內(nèi)部中斷,的內(nèi)部中斷,被稱為被稱為溢出中斷溢出中斷例如:例如:mov ax,2000hadd ax, 7000h;2000H7000H9000H,溢出:,溢出:OF1into;因為;因為OF1,所以產(chǎn)生溢出中斷,所以產(chǎn)生溢出中斷第第6章:章: 單步中斷單步中斷 若單步中斷若單步中斷TF為為1,則在每條指令執(zhí)行結(jié)束,則在每條指令執(zhí)行結(jié)束后產(chǎn)生一個向量號為后產(chǎn)生一個向量號為1的內(nèi)部中斷,稱為單的內(nèi)部中斷,稱為單步中斷步中斷例如:例如:DEBUG.EXE調(diào)試

6、程序的單步命令調(diào)試程序的單步命令T就利就利用單步中斷實現(xiàn)對程序的單步調(diào)試用單步中斷實現(xiàn)對程序的單步調(diào)試第第6章:章:2. 外部中斷外部中斷 外部中斷是由于外部中斷是由于8088外部提出中斷請求引外部提出中斷請求引起起的程序中斷的程序中斷 利用外部中斷,微機系統(tǒng)可以實時響應(yīng)外利用外部中斷,微機系統(tǒng)可以實時響應(yīng)外部設(shè)備的數(shù)據(jù)傳送請求,能夠及時處理外部設(shè)備的數(shù)據(jù)傳送請求,能夠及時處理外部意外或緊急事件部意外或緊急事件 外部中斷的原因是處理器外部隨機產(chǎn)生的,外部中斷的原因是處理器外部隨機產(chǎn)生的,所以是真正的所以是真正的中斷中斷(Interrupt) 內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異內(nèi)部中斷的原因是

7、處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被稱為常,所以經(jīng)常被稱為異常異常(Exception)第第6章:章: 非屏蔽中斷非屏蔽中斷 通過非屏蔽中斷請求信號向微處理器提出通過非屏蔽中斷請求信號向微處理器提出的中斷請求,微處理器無法禁止,將在當(dāng)?shù)闹袛嗾埱?,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個中斷被稱前指令執(zhí)行結(jié)束予以響應(yīng),這個中斷被稱為非屏蔽中斷為非屏蔽中斷 8088的非屏蔽中斷的向量號為的非屏蔽中斷的向量號為2,非屏蔽中,非屏蔽中斷請求信號為斷請求信號為NMI 非屏蔽中斷主要用于處理系統(tǒng)的意外或故非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:障。例如:u 電源調(diào)電前的數(shù)據(jù)保護電源調(diào)電前的

8、數(shù)據(jù)保護u 存儲器讀寫錯誤的處理存儲器讀寫錯誤的處理第第6章:章: 可屏蔽中斷可屏蔽中斷 外部通過可屏蔽中斷請求信號向微處理器提出的外部通過可屏蔽中斷請求信號向微處理器提出的中斷,微處理器在允許可屏蔽中斷的條件下,在中斷,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時輸出可屏蔽中當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時輸出可屏蔽中斷響應(yīng)信號,這個中斷就是可屏蔽中斷斷響應(yīng)信號,這個中斷就是可屏蔽中斷 8088的可屏蔽中斷請求和響應(yīng)信號分別是的可屏蔽中斷請求和響應(yīng)信號分別是INTR和和INTA*;由由IF標(biāo)志控制可屏蔽中斷是否允許響應(yīng)標(biāo)志控制可屏蔽中斷是否允許響應(yīng);向量號來自外部中斷控制

9、器向量號來自外部中斷控制器 8088通常需要配合中斷控制器通常需要配合中斷控制器8259A共同處理可共同處理可屏蔽中斷屏蔽中斷 可屏蔽中斷主要用于主機與外設(shè)交換數(shù)據(jù)可屏蔽中斷主要用于主機與外設(shè)交換數(shù)據(jù)第第6章:中斷標(biāo)志章:中斷標(biāo)志IF的狀態(tài)的狀態(tài) IF0:可屏蔽中斷不會被響應(yīng):可屏蔽中斷不會被響應(yīng)u 關(guān)中斷、禁止中斷、中斷屏蔽關(guān)中斷、禁止中斷、中斷屏蔽u 系統(tǒng)復(fù)位,使系統(tǒng)復(fù)位,使IF0u 任何一個中斷被響應(yīng),使任何一個中斷被響應(yīng),使IF0u 執(zhí)行指令執(zhí)行指令CLI,使,使IF0 IF1:可屏蔽中斷會被響應(yīng):可屏蔽中斷會被響應(yīng)u 開中斷、允許中斷、中斷開放開中斷、允許中斷、中斷開放u 執(zhí)行指令執(zhí)

10、行指令STI,使,使IF1 執(zhí)行指令執(zhí)行指令I(lǐng)RET恢復(fù)原恢復(fù)原IF狀態(tài)狀態(tài)明明確確IF標(biāo)標(biāo)志志的的狀狀態(tài)態(tài)是是關(guān)關(guān)鍵鍵第第6章:章:6.1.2 8088的中斷響應(yīng)過程的中斷響應(yīng)過程NMIN軟件中斷軟件中斷INTRTF=1中斷響應(yīng)周期中斷響應(yīng)周期讀中斷向量號讀中斷向量號下條指令下條指令現(xiàn)行指令現(xiàn)行指令I(lǐng)F1NNNNYYYYY查詢中斷的順序,查詢中斷的順序,決定了各種中斷源的優(yōu)先權(quán)決定了各種中斷源的優(yōu)先權(quán) 軟件中斷軟件中斷u 除法錯中斷除法錯中斷u 指令中斷指令中斷u 溢出中斷溢出中斷 非屏蔽中斷非屏蔽中斷 可屏蔽中斷可屏蔽中斷 單步中斷單步中斷高高低低第第6章:章:6.1.2 8088的中斷響

11、應(yīng)過程的中斷響應(yīng)過程(續(xù))(續(xù))Y還有還有NMITEMP1標(biāo)志寄存器入棧標(biāo)志寄存器入棧TEMPTF,IFTF0CS:IP入棧入棧獲取中斷向量獲取中斷向量執(zhí)行服務(wù)程序執(zhí)行服務(wù)程序彈出彈出CS:IP彈出標(biāo)志寄存器彈出標(biāo)志寄存器返回被中斷程序返回被中斷程序(1)(2)(3)(4)(5)NNY(6) 8088各種中斷源的優(yōu)先權(quán),各種中斷源的優(yōu)先權(quán),實際上是指被識別出來的先后實際上是指被識別出來的先后 多種中斷同時請求時,多種中斷同時請求時,最先響應(yīng)的則可能是最先響應(yīng)的則可能是單步中斷或單步中斷或NMI中斷中斷第第6章:章:6.1.3 8088的中斷向量表的中斷向量表 中斷向量:中斷服務(wù)程序的入口地址(

12、首地址)中斷向量:中斷服務(wù)程序的入口地址(首地址) 邏輯地址含有段地址邏輯地址含有段地址CS和偏移地址和偏移地址IP(32位)位) 每個中斷向量的低字是偏移地址、高字是段地址,每個中斷向量的低字是偏移地址、高字是段地址,需占用需占用4個字節(jié)個字節(jié) 8088微處理器從物理地址微處理器從物理地址000H開始,依次安排各開始,依次安排各個中斷向量,向量號也從個中斷向量,向量號也從0開始開始 256個中斷占用個中斷占用1KB區(qū)域,就形成中斷向量表區(qū)域,就形成中斷向量表向量號為向量號為N的中斷向量的物理地址的中斷向量的物理地址N4第第6章:章:6.2 內(nèi)部中斷服務(wù)程序內(nèi)部中斷服務(wù)程序 編寫內(nèi)部中斷服務(wù)程

13、序與編寫子程序類似編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似u 利用過程定義偽指令利用過程定義偽指令PROC/ENDPu 第第1條指令通常為開中斷指令條指令通常為開中斷指令STIu 最后用中斷返回指令最后用中斷返回指令I(lǐng)RETu 通常采用寄存器傳遞參數(shù)通常采用寄存器傳遞參數(shù) 主程序需要調(diào)用中斷服務(wù)程序主程序需要調(diào)用中斷服務(wù)程序u 調(diào)用前,需要設(shè)置中斷向量調(diào)用前,需要設(shè)置中斷向量u 設(shè)置必要的入口參數(shù)設(shè)置必要的入口參數(shù)u 利用利用INT n指令調(diào)用中斷服務(wù)程序指令調(diào)用中斷服務(wù)程序u 處理出口參數(shù)處理出口參數(shù)第第6章:例章:例6.1 內(nèi)部中斷服務(wù)程序內(nèi)部中斷服務(wù)程序 編寫編寫80H號中斷服務(wù)程序,并調(diào)用

14、號中斷服務(wù)程序,并調(diào)用 功能:具有顯示以功能:具有顯示以“0”結(jié)尾字符串的功能,結(jié)尾字符串的功能,利用顯示器功能調(diào)用利用顯示器功能調(diào)用INT 10H實現(xiàn)字符顯示實現(xiàn)字符顯示 字符串緩沖區(qū)首地址為入口參數(shù):字符串緩沖區(qū)首地址為入口參數(shù):DS:DX(段地址:偏移地址)傳遞參數(shù)(段地址:偏移地址)傳遞參數(shù)第第6章:例章:例6.1的數(shù)據(jù)段的數(shù)據(jù)段;數(shù)據(jù)段;數(shù)據(jù)段intoffdw ?;用于保存偏移地址;用于保存偏移地址intsegdw ? ;用于保存段基地址;用于保存段基地址intmsg db A Instruction Interrupt !, 0dh,0ah,0以以“0”結(jié)尾結(jié)尾回車、換行回車、換行

15、第第6章:例章:例6.1的獲取原中斷向量的獲取原中斷向量;代碼段;代碼段mov ax,3580h;利用;利用DOS功能功能35H號號int 21h;獲取原;獲取原80H中斷向量中斷向量mov intoff,bx;保存偏移地址;保存偏移地址mov intseg,es;保存段基地址;保存段基地址獲取中斷向量(獲取中斷向量(DOS功能調(diào)用功能調(diào)用INT 21H)功能號:功能號:AH35H入口參數(shù):入口參數(shù):AL中斷向量號中斷向量號出口參數(shù):出口參數(shù):ES:BX中斷向量(段地址:偏移地址)中斷向量(段地址:偏移地址)第第6章:例章:例6.1的設(shè)置新中斷向量的設(shè)置新中斷向量push dsmov dx,o

16、ffset new80h;取中斷程序偏移地址;取中斷程序偏移地址mov ax,seg new80h;取中斷程序段地址;取中斷程序段地址mov ds,axmov ax,2580hint 21hpop ds設(shè)置中斷向量(設(shè)置中斷向量(DOS功能調(diào)用功能調(diào)用INT 21H)功能號:功能號:AH25H入口參數(shù):入口參數(shù):AL中斷向量號中斷向量號DS:DX中斷向量(段地址:偏移地址)中斷向量(段地址:偏移地址)第第6章:例章:例6.1的中斷調(diào)用的中斷調(diào)用;設(shè)置入口參數(shù):;設(shè)置入口參數(shù):DS段地址(已設(shè)置)段地址(已設(shè)置)DX偏移地址偏移地址mov dx,offset intmsgint 80h;調(diào)用;調(diào)

17、用80H中斷服務(wù)程序中斷服務(wù)程序A Instruction Interrupt !程序功能程序功能第第6章:例章:例6.1的主程序返回的主程序返回mov dx,intoff;恢復(fù)原中斷向量;恢復(fù)原中斷向量mov ax,intsegmov ds,ax;改變;改變DSmov ax,2580hint 21h;因緊接著返回;因緊接著返回DOSmov ax,4c00h;故無需恢復(fù);故無需恢復(fù)DSint 21h設(shè)置中斷向量(設(shè)置中斷向量(DOS功能調(diào)用功能調(diào)用INT 21H)功能號:功能號:AH25H入口參數(shù):入口參數(shù):AL中斷向量號中斷向量號DS:DX中斷向量(段地址:偏移地址)中斷向量(段地址:偏移地

18、址)第第6章:例章:例6.1的中斷服務(wù)程序(的中斷服務(wù)程序(1);80H號內(nèi)部中斷服務(wù)程序:號內(nèi)部中斷服務(wù)程序:;顯示字符串(以;顯示字符串(以“0”結(jié)尾)結(jié)尾);入口參數(shù):;入口參數(shù):DS:DX緩沖器首地址緩沖器首地址new80hproc;過程定義;過程定義sti;開中斷;開中斷push ax;保護寄存器;保護寄存器push bxpush si第第6章:例章:例6.1的中斷服務(wù)程序(的中斷服務(wù)程序(2)mov si,dxnew1:mov al,si;讀取欲一個顯示字符;讀取欲一個顯示字符cmp al,0;為結(jié)尾;為結(jié)尾“0”,則結(jié)束,則結(jié)束jz new2mov bx,0;采用;采用ROM-B

19、IOS功能調(diào)用功能調(diào)用mov ah,0ehint 10hinc si;準(zhǔn)備顯示下一個字符;準(zhǔn)備顯示下一個字符jmp new1第第6章:例章:例6.1的中斷服務(wù)程序(的中斷服務(wù)程序(3)new2:pop si;恢復(fù)寄存器;恢復(fù)寄存器pop bxpop axiret;中斷返回;中斷返回new80hendp;過程(中斷服務(wù)程序)結(jié)束;過程(中斷服務(wù)程序)結(jié)束A Instruction Interrupt !程序功能程序功能6.3 可編程中斷控制器可編程中斷控制器8259A PIC,Programmable Interrupt Controller 可對可對8個中斷源實現(xiàn)優(yōu)先級控制個中斷源實現(xiàn)優(yōu)先級控

20、制 可擴展至對可擴展至對64個中斷源實現(xiàn)優(yōu)先級控制個中斷源實現(xiàn)優(yōu)先級控制 可編程設(shè)置不同工作方式可編程設(shè)置不同工作方式 根據(jù)中斷源向根據(jù)中斷源向x86提供不同中斷類型碼提供不同中斷類型碼 引腳分配及功能見教材圖引腳分配及功能見教材圖6.266.3.18259A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu) 8259A的內(nèi)部結(jié)構(gòu)(的內(nèi)部結(jié)構(gòu)(見下圖)見下圖)u 中斷請求寄存器IRR 保存從保存從IR0IR7來的中斷請求信號,某位來的中斷請求信號,某位=1表示對應(yīng)的表示對應(yīng)的IRi有有中斷請求中斷請求 u 中斷服務(wù)寄存器ISR 保存所有正在服務(wù)的中斷源,某位保存所有正在服務(wù)的中斷源,某位=1表示對應(yīng)的表示對應(yīng)的IRi中斷正

21、在中斷正在被服務(wù)被服務(wù) u 中斷屏蔽寄存器IMR 存放中斷屏蔽字,某位存放中斷屏蔽字,某位=1表示對應(yīng)的表示對應(yīng)的IRi輸入被屏蔽輸入被屏蔽 u 中斷優(yōu)先權(quán)判別電路 確定是否向確定是否向CPU發(fā)出中斷請求,中斷響應(yīng)時確定發(fā)出中斷請求,中斷響應(yīng)時確定ISR的哪位應(yīng)的哪位應(yīng)置位及把相應(yīng)中斷的類型碼放到數(shù)據(jù)總線上置位及把相應(yīng)中斷的類型碼放到數(shù)據(jù)總線上 第第6章:章: 6.3.1 8259A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)D7D0INTAINT中斷請求寄存器中斷請求寄存器中斷屏蔽寄存器中斷屏蔽寄存器數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器IR0IR7讀讀/寫寫控制控制邏輯邏輯級聯(lián)級聯(lián)緩沖器緩沖器比較器比較器RDWRA0CSC

22、AS0CSA1CAS2SP/EN優(yōu)先權(quán)判別電路優(yōu)先權(quán)判別電路中斷服務(wù)寄存器中斷服務(wù)寄存器控制邏輯控制邏輯6.3.2 8259A的工作過程的工作過程 8259A對中斷請求的處理過程如下:對中斷請求的處理過程如下:u 當(dāng)某當(dāng)某IRi有效時,有效時,IRR相應(yīng)位置相應(yīng)位置1u 若有效的若有效的IRi未被屏蔽,則未被屏蔽,則向向CPU發(fā)出中斷請求發(fā)出中斷請求u 檢測到第檢測到第1個個INTA#信號后,信號后,置置ISRi=1,IRRi=0 u 檢測到第檢測到第2個個INTA#信號后,信號后,把把ISRi=1中最高優(yōu)中最高優(yōu)先級的中斷類型碼放到先級的中斷類型碼放到DB上上u 若工作在若工作在AEOI方式

23、,在第方式,在第2個個INTA#結(jié)束時,結(jié)束時,使使ISRi復(fù)位;否則由復(fù)位;否則由CPU發(fā)出發(fā)出EOI命令使命令使ISRi復(fù)位復(fù)位6.3.3 8259A的工作方式的工作方式 8259A的工作方式有如下幾類:的工作方式有如下幾類:u 中斷優(yōu)先方式與中斷嵌套中斷優(yōu)先方式與中斷嵌套u 中斷結(jié)束處理方式中斷結(jié)束處理方式 u 屏蔽中斷源的方式屏蔽中斷源的方式u 中斷觸發(fā)方式中斷觸發(fā)方式u 級聯(lián)工作方式級聯(lián)工作方式中斷優(yōu)先方式與中斷嵌套中斷優(yōu)先方式與中斷嵌套中斷優(yōu)先方式中斷優(yōu)先方式 兩類優(yōu)先級控制方式:兩類優(yōu)先級控制方式:固定優(yōu)先級和和循環(huán)優(yōu)先級u 固定優(yōu)先級方式固定優(yōu)先級方式 所有中斷請求IRi的中斷

24、優(yōu)先級固定不變 優(yōu)先級排列順序可編程改變 加電后8259A的默認(rèn)方式,默認(rèn)優(yōu)先級順序從高到低為IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低級最高級最高級最低級優(yōu)先級優(yōu)先級IR7IR6IR5IR4IR3IR2IR1IR0默認(rèn)優(yōu)先級默認(rèn)優(yōu)先級優(yōu)先級可編程改變優(yōu)先級可編程改變中斷優(yōu)先方式與中斷嵌套(續(xù))中斷優(yōu)先方式與中斷嵌套(續(xù))u 循環(huán)優(yōu)先級方式循環(huán)優(yōu)先級方式 中斷源輪流處于最高優(yōu)先級,即自動中斷優(yōu)先級循環(huán) 初始優(yōu)先級順序可用編程改變 某中斷請求IRi被處理后,其優(yōu)先級別自動降為最低,原來比它低一級的中斷上升為最高級 IR7IR6IR5IR4IR

25、3IR2IR1IR07654321021076543最低級最高級最高級最低級ISR內(nèi)容內(nèi)容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服務(wù)結(jié)束以前的服務(wù)結(jié)束以前0101000001000000IR4的服務(wù)結(jié)束以后的服務(wù)結(jié)束以后ISRi中斷優(yōu)先方式與中斷嵌套(續(xù))中斷優(yōu)先方式與中斷嵌套(續(xù)) 中斷嵌套中斷嵌套方式方式u 在中斷處理過程中允許被更高優(yōu)先級的事件所中在中斷處理過程中允許被更高優(yōu)先級的事件所中斷稱為中斷嵌套。斷稱為中斷嵌套。8259A有兩種中斷嵌套方式:有兩種中斷嵌套方式:普通全嵌套方式(默認(rèn)方式)普通全嵌套方式(默認(rèn)方式) 一中斷正被處理時,只有一中斷正被處理時,只有更高

26、優(yōu)先級更高優(yōu)先級的事件可以打的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。斷當(dāng)前的中斷處理過程而被服務(wù)。特殊全嵌套方式特殊全嵌套方式 一中斷正被處理時,允許一中斷正被處理時,允許同級或更高優(yōu)先級同級或更高優(yōu)先級的事件的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)??梢源驍喈?dāng)前的中斷處理過程而被服務(wù)。注注: 特殊全嵌套僅用于多個特殊全嵌套僅用于多個8259A級連時的主級連時的主8259A,而不能用于從屬而不能用于從屬8259A或單或單8259A系統(tǒng)。系統(tǒng)。D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:從片的從片的INT被主片封被主片封鎖,故更鎖,故更高高級別

27、的級別的IR0-IR2中斷也無法中斷也無法得到響應(yīng)得到響應(yīng)特殊嵌套方式:特殊嵌套方式:因主片不封鎖從片的因主片不封鎖從片的INT,故級別高的,故級別高的IR0-IR2中斷可以得到響應(yīng)。中斷可以得到響應(yīng)。( (但但IR3-IR7仍被本從仍被本從片封鎖片封鎖) )C.假定假定IR7發(fā)生中發(fā)生中斷斷,并獲得服務(wù)并獲得服務(wù)一般嵌套方式:一般嵌套方式:IR4的中斷被服務(wù)的中斷被服務(wù)時,這些中斷將時,這些中斷將被封鎖。被封鎖。B.特殊嵌套方式:特殊嵌套方式:IR4的中斷被服的中斷被服務(wù) 時 , 只 封 鎖務(wù) 時 , 只 封 鎖IR5-IR7。A.INTE.從從8259AINTIR0IR1IR2IR3IR4

28、IR5IR6IR7n一般全嵌套方式與特殊全嵌套方式的區(qū)別一般全嵌套方式與特殊全嵌套方式的區(qū)別 去去CPU中斷結(jié)束處理方式中斷結(jié)束處理方式 當(dāng)某一當(dāng)某一IRi中斷被服務(wù)時,中斷被服務(wù)時,ISR中的相應(yīng)位中的相應(yīng)位ISRi=1。當(dāng)服務(wù)結(jié)束后,則必須清零該。當(dāng)服務(wù)結(jié)束后,則必須清零該ISRi位。使位。使ISRi=0是通過向是通過向8259A發(fā)出中發(fā)出中斷結(jié)束命令(斷結(jié)束命令(EOI命令)實現(xiàn)的。命令)實現(xiàn)的。 三種三種EOI命令命令u 自動自動EOI(AEOI)(自動(自動EOI方式)方式)u 非指定非指定EOI(NSEOI)(正常(正常EOI方式)方式)u 指定指定EOI(SEOI)(特殊(特殊E

29、OI方式方式) u AEOI:在第在第2個個INTA#結(jié)束時,由結(jié)束時,由8259A使使ISRi自動復(fù)位;自動復(fù)位; 因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式u SEOI:由:由CPU發(fā)出一條發(fā)出一條SEOI命令,該命令,該EOI命命令中指出了所要復(fù)位的令中指出了所要復(fù)位的ISR的位號。的位號。 用于特殊屏蔽方式u NSEOI:由由CPU發(fā)出正常發(fā)出正常EOI命令,該命令,該EOI命命令使令使ISRi=1的位中優(yōu)先級最高的那一位復(fù)位。的位中優(yōu)先級最高的那一位復(fù)位。 用于普通全嵌套方式中斷服務(wù)程序向從PIC發(fā)EOI命令讀從PIC的ISR全0?向主PIC發(fā)EOI命令YIRE

30、T恢復(fù)現(xiàn)場Nn特殊全嵌套方式特殊全嵌套方式下的下的EOI處理處理n只有當(dāng)從只有當(dāng)從PIC的的中斷全部處理完中斷全部處理完后,才能向主后,才能向主PIC發(fā)發(fā)EOI命令命令屏蔽中斷源的方式屏蔽中斷源的方式 IMR屏蔽字決定了屏蔽字決定了允許或禁止允許或禁止某位某位IRi所對所對應(yīng)的中斷應(yīng)的中斷:IMi=1 禁止,禁止, IMi=0 允許。允許。 特殊屏蔽方式:特殊屏蔽方式:u 提供了允許較低優(yōu)先級的中斷能夠得到響應(yīng)的提供了允許較低優(yōu)先級的中斷能夠得到響應(yīng)的特殊手段。特殊手段。u 原理原理:假定當(dāng)前正在處理:假定當(dāng)前正在處理IR6,先,先進入特殊屏蔽進入特殊屏蔽方式,然后方式,然后設(shè)置設(shè)置IM6=1

31、。這時,除。這時,除IR6外的所有外的所有中斷請求均能得到響應(yīng)。中斷請求均能得到響應(yīng)。u 特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。命令結(jié)束中斷。 特殊屏蔽例:。 ;IR4中斷處理程序CLIMOV AL,68H ;OCW3:0 1 1 0 1 0 0 0OUT 0C0H,AL ;設(shè)置特殊屏蔽方式IN AL,0C2H OR AL,10H ;屏蔽IR4OUT 0C2H,AL STI。 ;IR7請求,響應(yīng),返回。CLI ;為設(shè)命令字IN AL,0C2H ;讀出屏蔽字AND AL,0EFH ;清除IMR4OUT 0C2H,ALMOV AL,48H ;OCW3:0 1 0 0 1 0

32、 0 0OUT 0C0H,AL ;取消特殊屏蔽STI。 ;繼續(xù)IR4中斷服務(wù)MOV AL,20H ;OCW2:0 0 1 0 0 0 0 0 (EOI)OUT 0C0,ALIRET 中斷觸發(fā)方式中斷觸發(fā)方式 邊沿觸發(fā)邊沿觸發(fā)u IRi出現(xiàn)上升沿表示有中斷請求出現(xiàn)上升沿表示有中斷請求 電平觸發(fā)電平觸發(fā)u IRi出現(xiàn)高電平表示有中斷請求出現(xiàn)高電平表示有中斷請求 在第在第1個個INTA#結(jié)束前,結(jié)束前,IRi必須保持高電平必須保持高電平 級聯(lián)工作方式級聯(lián)工作方式 單片單片8259A可支持可支持8個中斷源;個中斷源; 采用多片采用多片8259A級連,可最多支持級連,可最多支持64個中斷個中斷源。源。n

33、片片8259A可支持可支持7n+1個中斷源;個中斷源; 級連時只能有一片級連時只能有一片8259A為主片,其余的均為主片,其余的均為從屬片;為從屬片; 涉及到的涉及到的8259A引腳包括:引腳包括:u CAS0-CAS2u SP#/EN#u IRiu INT級連電路連接方法級連電路連接方法6.3.4 8259A的編程使用的編程使用 8259A的控制命令分為的控制命令分為u 初始化命令字ICW ICW1ICW4 向向8259A寫入寫入ICW的過程稱為的過程稱為初始化編程初始化編程u 操作命令字OCW OCW1OCW3 向向8259A寫入寫入OCW的過程稱為的過程稱為操作方式編程操作方式編程825

34、9A內(nèi)部寄存器的尋址方法內(nèi)部寄存器的尋址方法CS# RD# WR#A0D4D3讀寫操作讀寫操作010000寫OCW2寫OCW3寫ICW1寫ICW2,ICW3,ICW4,OCW1(順序?qū)懭?00101x1xx00101xx讀出IRR、ISR讀出IMRn需要需要CS#、A0、RD#、WR#和和D4、D3的配的配合合n內(nèi)部寄存器的訪問方法如下表:內(nèi)部寄存器的訪問方法如下表: 8259A的初始化順序的初始化順序 8259的初始化流的初始化流程如圖程如圖u 注意次序不可顛倒注意次序不可顛倒 寫寫ICW1寫寫ICW2級連?級連?寫寫ICW3需需ICW4?寫寫ICW4NNYY8259A的控制命令字的控制命令

35、字 初始化初始化8259A必須從必須從ICW1開始開始u 寫ICW1意味著重新初始化8259Au 寫入ICW1后,8259A的狀態(tài)如下: 清除清除ISR和和IMR(全全0); 將中斷優(yōu)先級設(shè)成初始狀態(tài):將中斷優(yōu)先級設(shè)成初始狀態(tài):IR0最高,最高,IR7最低;最低; 設(shè)定為一般屏蔽方式;設(shè)定為一般屏蔽方式; 采用非自動中斷結(jié)束方式;采用非自動中斷結(jié)束方式; 狀態(tài)讀出邏輯預(yù)置為讀狀態(tài)讀出邏輯預(yù)置為讀IRR。ICW1初始化字初始化字 LTIM: 觸發(fā)方式觸發(fā)方式u =1 高電平觸發(fā)高電平觸發(fā)u =0 上升沿觸發(fā)上升沿觸發(fā) SNGL: 級連控制級連控制u =1 單片單片u =0 級連級連 IC4: I

36、CW4控制控制u =1 要寫要寫ICW4u =0 不寫不寫ICW4(默認(rèn)(默認(rèn)ICW4為全為全0)A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC4ICW2中斷向量碼中斷向量碼 T7T3: 中斷向量碼的高中斷向量碼的高5位位 T2T0: 最低最低3位為中斷源的序號位為中斷源的序號IRnu 000111分別對應(yīng)IR0IR7u 由8259A根據(jù)中斷源的序號自動填入 例如:若ICW2命令字為48H,則IR0的中斷向量碼為48H,IR7的中斷向量碼為4FH,等等。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3

37、x x xICW3級連控制字級連控制字 主片的級聯(lián)控制字主片的級聯(lián)控制字 u Si=1 對應(yīng)IRi線上連接了從片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0 從片的級聯(lián)控制字從片的級聯(lián)控制字 u ID2ID0 標(biāo)識碼,說明本從片連接到主片的哪個IR引腳上。 000111分別對應(yīng)IR0IR7。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0ICW3級連控制字(續(xù))級連控制字(續(xù)) ICW3必須與主從片的連接關(guān)系一致:必須與主從片的連接關(guān)系一致:例如,主片的例如,主片的IR4與從片的與從

38、片的INT線連接,則線連接,則主片的主片的ICW3=10H,從片的,從片的ICW3=04H。 中斷響應(yīng)時,主片通過級連線中斷響應(yīng)時,主片通過級連線CAS2-CAS0送出被允許中斷的從片標(biāo)識碼,各從片用送出被允許中斷的從片標(biāo)識碼,各從片用自己的自己的ICW3與與CAS2-CAS0比較,二者一致比較,二者一致的從片才可發(fā)送中斷向量碼。的從片才可發(fā)送中斷向量碼。ICW4中斷結(jié)束方式字中斷結(jié)束方式字 SFNM: 特殊全嵌套特殊全嵌套1 特殊全嵌套方式0 一般全嵌套方式 AEOI: 自動自動EOI1 自動EOI方式0 非自動EOI方式A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 S

39、FNM BUF M/S AEOI 1 BUF: 緩沖方式緩沖方式 M/S: 主主/從緩沖選擇從緩沖選擇BUF M/S 1 1 緩沖方式/主PIC 1 0 緩沖方式/從PIC 0 x 非緩沖方式/正常8259A的操作命令字的操作命令字OCW OCW用于設(shè)置用于設(shè)置8259的工作狀態(tài)的工作狀態(tài) 在初始化后寫入在初始化后寫入 OCW的寫入順序可任意的寫入順序可任意 寫入地址要求:寫入地址要求:u OCW1必須寫入奇地址端口(A0=1)u OCW2,OCW3必須寫入偶地址端口(A0=0) OCW1中斷屏蔽字中斷屏蔽字 Mi=1 中斷請求線中斷請求線IRi被屏蔽被屏蔽(不允許中斷不允許中斷) =0 允許

40、該允許該IRi中斷中斷 OCW1將寫入將寫入IMR寄存器。寄存器。 A0=1時讀時讀OCW1可讀出設(shè)置的可讀出設(shè)置的IMR內(nèi)容。內(nèi)容。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M0OCW2中斷結(jié)束和優(yōu)先級循環(huán)中斷結(jié)束和優(yōu)先級循環(huán) L2L0: 優(yōu)先級編碼優(yōu)先級編碼 R: 優(yōu)先級自動循環(huán)優(yōu)先級自動循環(huán) SL: 指定優(yōu)先級指定優(yōu)先級 EOI: 結(jié)束中斷命令結(jié)束中斷命令 R SL EOI 0 0 1 非指定非指定EOI 命令命令(NSEOI),全嵌套方式,全嵌套方式 0 1 1 指定指定EOI 命令命令(SEOI),全嵌套方式,按,全嵌套方式,

41、按L2-L0編碼復(fù)位編碼復(fù)位ISR 1 0 1 NSEOI 命令,優(yōu)先級自動循環(huán)命令,優(yōu)先級自動循環(huán) 1 0 0 自動自動EOI,設(shè)置優(yōu)先級自動循環(huán),設(shè)置優(yōu)先級自動循環(huán) 0 0 0 自動自動EOI,取消優(yōu)先級自動循環(huán),取消優(yōu)先級自動循環(huán)(固定優(yōu)先級固定優(yōu)先級) 1 1 1 SEOI 命令,按命令,按L2-L0編碼循環(huán)優(yōu)先級編碼循環(huán)優(yōu)先級(L2-L0設(shè)為最低優(yōu)先級設(shè)為最低優(yōu)先級) 1 1 0 按按L2-L0編碼循環(huán)優(yōu)先級編碼循環(huán)優(yōu)先級(L2-L0設(shè)為最低優(yōu)先級設(shè)為最低優(yōu)先級) A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0OCW3屏蔽方式和讀出

42、控制字屏蔽方式和讀出控制字 ESMM: 允許使能特殊屏蔽方式允許使能特殊屏蔽方式SMM: 特殊屏蔽方式特殊屏蔽方式ESMM SMM1 1 特殊屏蔽方式置位特殊屏蔽方式置位1 0 特殊屏蔽方式復(fù)位特殊屏蔽方式復(fù)位0 x 非特殊屏蔽方式非特殊屏蔽方式P(Polling): =1 查詢方式查詢方式 =0 非查詢方式非查詢方式A0 D7D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P RR RISRR: 讀寄存器讀寄存器RIS: ISR/IRR選擇選擇RR RIS1 1 讀讀ISR1 0 讀讀IRR0 x 無效無效OCW3(續(xù))(續(xù)) 查詢方式允許查詢方式允許8259A不

43、工作于中斷方式,不工作于中斷方式,而是以查詢方式工作。而是以查詢方式工作。u CPU先寫一個D2=1的OCW3,再對同一地址讀入,即可得到如下狀態(tài)字節(jié): I x x x x R2 R1 R0 I=1表示有中斷請求,中斷請求號為R2-R0 此查詢步驟可反復(fù)執(zhí)行,以響應(yīng)多個同時發(fā)生 的中斷。 讀讀IRR/ISR:寫入此命令后,隨后再對同一:寫入此命令后,隨后再對同一地址讀,即可得到地址讀,即可得到IRR或或ISR的內(nèi)容。的內(nèi)容。8259A編程舉例編程舉例 按以下要求初始化按以下要求初始化8259A:u 接口地址為接口地址為20H和和21H;u 中斷為上升沿觸發(fā);單片中斷為上升沿觸發(fā);單片8259A;不寫;不寫ICW4;u 與與IR0-IR3對應(yīng)的中斷向量碼為對應(yīng)的中斷向量碼為08H-0BH;u IR4-IR7不使用。不使用。 根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下:根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下:u ICW1 = 00010010 = 12Hu ICW2 = 08H 中斷向量碼中斷向量碼 u OCW1 = 11110000 =

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論