微型計算機技術07-1課件_第1頁
微型計算機技術07-1課件_第2頁
微型計算機技術07-1課件_第3頁
微型計算機技術07-1課件_第4頁
微型計算機技術07-1課件_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章第7章:教學重點教學重點中斷控制器8259A的作用中斷控制器Intel8259A的性能概述Intel8259A內(nèi)、外部結構,工作過程,工作方式等。8259A的編程、8259A的級聯(lián)、8259A的應用舉例第7章:7.18088中斷系統(tǒng)8088的中斷系統(tǒng)采用向量中斷機制能夠處理256個中斷用中斷向量號0~255區(qū)別可屏蔽中斷還需要借助專用中斷控制器Intel8259A實現(xiàn)優(yōu)先權管理第7章:⑴除法錯中斷在執(zhí)行除法指令時,若除數(shù)為0或商超過了寄存器所能表達的范圍,則產(chǎn)生一個向量號為0的內(nèi)部中斷,稱為除法錯中斷例如:movbl,0idivbl ;除數(shù)BL=0,產(chǎn)生除法錯中斷movax,200hmovbl,1divbl ;商=200H,不能用AL表達 ;產(chǎn)生除法錯中斷第7章:⑵指令中斷在執(zhí)行中斷調用指令INTn時產(chǎn)生的一個向量號為n(0~255)的內(nèi)部中斷,稱為指令中斷其中向量號為3的指令中斷比較特別(生成一個字節(jié)的指令代碼:11001100),常用于程序調試,被稱為斷點中斷例如:DEBUG.EXE調試程序的運行命令G設置的斷點,就是利用INT3指令實現(xiàn)的第7章:⑶溢出中斷在執(zhí)行溢出中斷指令INTO時,若溢出標志OF為1,則產(chǎn)生一個向量號為4的內(nèi)部中斷,被稱為溢出中斷例如:movax,2000haddax,7000h ;2000H+7000H=9000H,溢出:OF=1into ;因為OF=1,所以產(chǎn)生溢出中斷第7章:2.外部中斷外部中斷是由于8088外部提出中斷請求引起的程序中斷利用外部中斷,微機系統(tǒng)可以實時響應外部設備的數(shù)據(jù)傳送請求,能夠及時處理外部意外或緊急事件外部中斷的原因是處理器外部隨機產(chǎn)生的,所以是真正的中斷(Interrupt)內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被稱為異常(Exception)第7章:⑴非屏蔽中斷通過非屏蔽中斷請求信號向微處理器提出的中斷請求,微處理器無法禁止,將在當前指令執(zhí)行結束予以響應,這個中斷被稱為非屏蔽中斷8088的非屏蔽中斷的向量號為2,非屏蔽中斷請求信號為NMI非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:電源掉電前的數(shù)據(jù)保護存儲器讀寫錯誤的處理第7章:⑵可屏蔽中斷外部通過可屏蔽中斷請求信號向微處理器提出的中斷,微處理器在允許可屏蔽中斷的條件下,在當前指令執(zhí)行結束予以響應,同時輸出可屏蔽中斷響應信號,這個中斷就是可屏蔽中斷8088的可屏蔽中斷請求和響應信號分別是INTR和INTA*;由IF標志控制可屏蔽中斷是否允許響應;向量號來自外部中斷控制器8088通常需要配合中斷控制器8259A共同處理可屏蔽中斷可屏蔽中斷主要用于主機與外設交換數(shù)據(jù)第7章:7.1.28088的中斷響應過程NMIN軟件中斷INTRTF=1中斷響應周期讀中斷向量號下條指令現(xiàn)行指令IF=1NNNNYYYYY查詢中斷的順序,決定了各種中斷源的優(yōu)先權軟件中斷除法錯中斷指令中斷溢出中斷非屏蔽中斷可屏蔽中斷單步中斷高低第7章:7.1.28088的中斷響應過程(續(xù))Y還有NMITEMP=1標志寄存器入棧TEMP=TF,IF=TF=0CS:IP入棧獲取中斷向量執(zhí)行服務程序彈出CS:IP彈出標志寄存器返回被中斷程序(1)(2)(3)(4)(5)NNY(6)第7章:7.1.38088的中斷向量表中斷向量:中斷服務程序的入口地址(首地址)邏輯地址含有段地址CS和偏移地址IP(32位)每個中斷向量的低字是偏移地址、高字是段地址,需占用4個字節(jié)8088微處理器從物理地址000H開始,依次安排各個中斷向量,向量號也從0開始256個中斷占用1KB區(qū)域,就形成中斷向量表向量號為N的中斷向量的物理地址=N×4第7章:例7.1內(nèi)部中斷服務程序編寫80H號中斷服務程序,并調用功能:具有顯示以“0”結尾字符串的功能,利用顯示器功能調用INT10H實現(xiàn)字符顯示字符串緩沖區(qū)首地址為入口參數(shù): DS:DX(段地址:偏移地址)傳遞參數(shù)第7章:例7.1的數(shù)據(jù)段;數(shù)據(jù)段intoff dw? ;用于保存偏移地址intseg dw? ;用于保存段基地址intmsg db‘AInstructionInterrupt!’,0dh,0ah,0以“0”結尾回車、換行第7章:例7.1的獲取原中斷向量;代碼段movax,3580h ;利用DOS功能35H號int21h ;獲取原80H中斷向量movintoff,bx ;保存偏移地址movintseg,es ;保存段基地址獲取中斷向量(DOS功能調用INT21H)功能號:AH=35H入口參數(shù):AL=中斷向量號出口參數(shù):ES:BX=中斷向量(段地址:偏移地址)第7章:例7.1的中斷調用;設置入口參數(shù): DS=段地址(已設置) DX=偏移地址movdx,offsetintmsg int80h

;調用80H中斷服務程序AInstructionInterrupt!程序功能第7章:例7.1的主程序返回movdx,intoff ;恢復原中斷向量movax,intsegmovds,ax ;改變DSmovax,2580hint21h ;因緊接著返回DOSmovax,4c00h ;故無需恢復DSint21h設置中斷向量(DOS功能調用INT21H)功能號:AH=25H入口參數(shù):AL=中斷向量號DS:DX=中斷向量(段地址:偏移地址)第7章:例7.1的中斷服務程序(1);80H號內(nèi)部中斷服務程序:;顯示字符串(以“0”結尾);入口參數(shù):DS:DX=緩沖器首地址new80h proc ;過程定義

sti

;開中斷 pushax ;保護寄存器 pushbx pushsi第7章:例7.1的中斷服務程序(3)new2: popsi ;恢復寄存器 popbx popax

iret

;中斷返回new80h endp ;過程(中斷服務程序)結束AInstructionInterrupt!程序功能第7章:7.1中斷控制器8259AIntel8259A是8088/8086微機系統(tǒng)的中斷控制器件,它具有對外設中斷源進行管理,并向CPU轉達中斷請求的能力。

用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中斷8259A的基本性能一片8259A可以管理8級中斷,可擴展至64級每一級中斷都可以通過初始設置為允許或屏蔽狀態(tài)8259A的工作方式,可以通過變成設置,因此,使用非常靈活8259A采用NMOS制造工藝,只需要單一的+5V電源第7章:7.1.18259A的內(nèi)部結構和工作原理第7章:8259A的組成部分(續(xù))數(shù)據(jù)總線緩沖器

是8259A與系統(tǒng)數(shù)據(jù)總線的接口,是8位雙向三態(tài)緩沖器。

CPU與8259A之間的控制命令信息、狀態(tài)信息以及中斷類型信息,都是通過該緩沖器傳送的。讀/寫控制邏輯

CPU通過它實現(xiàn)對8259A的讀/寫操作。

級聯(lián)緩沖器

用以實現(xiàn)8259A芯片之間的級連,使得中斷源可以由8級擴展至64級。控制邏輯電路對整個芯片內(nèi)部各部件的工作進行協(xié)調和控制。

2.8259A的外部引腳

8259A是具有28個引腳的集成電路芯片,這28個引腳分別是:D7-D0:雙向數(shù)據(jù)輸入/輸出引腳,用以與CPU進行信息交換。IR7-IR0:8級中斷請求信號輸入引腳,規(guī)定的優(yōu)先級為IR0>IR1>…>IR7,當有多片8259A形成級連時,從片的INT與主片的IRi相連。INT:中斷請求信號輸出引腳,高電平有效,用以向CPU發(fā)中斷請求,應接在CPU的INTR輸入端。INTA:中斷響應應答信號輸入引腳,低電平有效,在CPU發(fā)出第二個INTA時,8259A將其中最高級別的中斷請求的中斷類型碼送出;應接在CPU的INTA中斷應答信號輸出端。2.8259A的外部引腳(續(xù))RD:讀控制信號輸入引腳,低電平有效,實現(xiàn)對8259A內(nèi)部有關寄存器內(nèi)容的讀操作。WR:寫控制信號輸入引腳,低電平有效,實現(xiàn)對8259A內(nèi)部有關寄存器的寫操作。CS:片選信號輸入引腳,低電平有效,一般由系統(tǒng)地址總線的高位,經(jīng)譯碼后形成,決定了8259A的端口地址范圍。

A0:8259A兩組內(nèi)部寄存器的選擇信號輸入引腳,決定8259A的端口地址。

A0=0

ICW1、OCW2、OCW3偶地址

A0=1

ICW2~ICW4、OCW1奇地址

2.8259A的外部引腳(續(xù))CAS2CAS0:級連信號引腳,當8259A為主片時,為輸出;否則為輸入,與SP/EN信號配合,實現(xiàn)芯片的級連,這三個引腳信號的不同組合000~111,剛好對應于8個從片。SP/EN:SP為級連管理信號輸入引腳,在非緩沖方式下,若8259A在系統(tǒng)中作從片使用,則SP=1;否則SP=0;在緩沖方式下,EN用作8259A外部數(shù)據(jù)總線緩沖器的啟動信號。+5V、GND:電源和接地引腳。3.8259A的工作過程1.當有一條或若干條中斷請求輸入(IR7IR0)有效時,則使中斷請求寄存器的IRR的相應位置位。2.若CPU處于開中斷狀態(tài),則在當前指令執(zhí)行完之后,響應中斷,并且從INTA發(fā)應答信號(兩個連續(xù)的INTA負脈沖)。3.第一個INTA負脈沖到達時,IRR的鎖存功能失效,對于IR7

IR0上發(fā)來的中斷請求信號不予理睬。4.使正服務寄存器ISR的相應位置1,以便為中斷優(yōu)先級比較器的工作做好準備。3.8259A的工作過程(續(xù))5.使中斷請求寄存器的相應位復位,即清除中斷請求。6.第二個INTA負脈沖到達時,將中斷類型寄存器中的內(nèi)容ICW2,送到數(shù)據(jù)總線的D7D0上,CPU以此作為相應中斷的類型碼。7.若ICW4中的中斷結束位為1,那么,第二個INTA負脈沖結束時,8259A將ISR寄存器的相應位清零。否則,直至中斷服務程序執(zhí)行完畢,才能通過輸出操作命令字EOI,使該位復位。

7.1.28259A的工作方式8259A有多種工作方式,這些工作方式,可以通過編程設置或改變。下面,我們進行分類介紹。1.優(yōu)先權的管理方式(1)全嵌套方式這是8259A默認的優(yōu)先權設置方式,在全嵌套方式下,8259A所管理的8級中斷優(yōu)先權是固定不變的,其中IR0的中斷優(yōu)先級最高,IR7的中斷優(yōu)先級最低。CPU響應中斷后,請求中斷的中斷源中,優(yōu)先級最高的中斷源,在中斷服務寄存器ISR中的相應位ISn置位,而且把它的中斷矢量送至系統(tǒng)數(shù)據(jù)總線,在此中斷源的中斷服務完成之前,與它同級或優(yōu)先級低的中斷源的中斷請求被屏蔽,只有優(yōu)先級比它高的中斷源的中斷請求才是運算的,從而出現(xiàn)中斷嵌套。一般情況下(除了中斷自動結束方式外),在CPU發(fā)出中斷結束命令(EOI)前,此對應位一直保持“1”。以便為中斷優(yōu)先級裁決器的裁決提供依據(jù)。1.優(yōu)先權的管理方式(續(xù))(2)特殊全嵌套方式

特殊全嵌套方式與全嵌套方式基本相同,所不同的是,當CPU處理某一級中斷時,如果有同級中斷請求,那么CPU也會作出響應,從而形成了對同一級中斷的特殊嵌套。

特殊全嵌套方式通常應用在有8259A級連的系統(tǒng)中,在這種情況下,對主8259A編程時,通常使它工作在特殊全嵌套方式下。這樣,一方面,CPU對于優(yōu)先級別較高的主片的中斷輸入是允許的,另一方面,CPU對于來自同一從片的優(yōu)先級別較高(但對于主片來講,優(yōu)先級別是相同的)的中斷也是允許、能夠響應的。1.優(yōu)先權的管理方式(續(xù))(3)優(yōu)先級自動循環(huán)方式在實際應用中,中斷源優(yōu)先級的情況是比較復雜的,要求8級中斷的優(yōu)先級在系統(tǒng)工作過程中,可以動態(tài)改變。即一個中斷源的中斷請求被響應之后,其優(yōu)先級自動降為最低。系統(tǒng)啟動時,8級中斷優(yōu)先級默認為IR0IR7,這時,剛好IR4發(fā)出了中斷請求,CPU響應之后,若8259A工作在優(yōu)先級自動循環(huán)方式下,則中斷優(yōu)先級自動變?yōu)镮R5、IR6、IR7、IR0、IR1、IR2、IR3、IR4。1.優(yōu)先權的管理方式(續(xù))(4)優(yōu)先級特殊循環(huán)方式優(yōu)先級特殊循環(huán)方式與自動循環(huán)方式相比,只有一點不同,即初始化的優(yōu)先級是由程序控制的,而不是默認的IR0IR7。

2.中斷源的屏蔽方式

CPU對于8259A提出的中斷請求,都可以加以屏蔽控制,屏蔽控制有下列幾種方式:

(1)普通屏蔽方式8259A的每個中斷請求輸入,都要受到屏蔽寄存器中相應位的控制。若相應位為“1”,則中斷請求不能送CPU。屏蔽是通過對屏蔽寄存器IMR的編程(操作命令字OCW1),來加以設置和改變的。

2.中斷源的屏蔽方式(續(xù))(2)特殊屏蔽方式有些場合下,希望一個中斷服務程序的運行過程中,能動態(tài)地改變系統(tǒng)中的中斷優(yōu)先級結構,即在中斷處理的一部分,禁止低級中斷,而在中斷處理的另一部分,又能夠允許低級中斷,于是引入了對中斷的特殊屏蔽方式。設置了特殊屏蔽方式后,用OCW1對屏蔽寄存器中的某一位復位時,同時也會是中斷服務寄存器ISR中的相應位復位,這樣就不只屏蔽了正在處理的等級中斷,而且真正開放了其它優(yōu)先級別叫低的中斷請求。特殊屏蔽是在中斷處理程序中使用的,用了這種方式之后,盡管系統(tǒng)正在處理高級中斷,但對外界來講,只有同級中斷被屏蔽,而允許其它任何級別的中斷請求。3.結束中斷處理的方式

按照對中斷結束(復位中斷響應寄存器ISR中相應位)的不同處理,8259A有兩種工作方式,即自動結束方式(AEI)和非自動結束方式。而非自動結束方式又可進一步分為一般的中斷結束方式和特殊的中斷結束方式。

(1)中斷自動結束方式這種方式僅適用于只有單片8259A的場合;在這種方式下,系統(tǒng)一旦響應中斷,那么CPU在發(fā)第二個INTA脈沖時,就會使中斷響應寄存器ISR中相應位復位,這樣一來,雖然系統(tǒng)在進行中斷處理,但對于8259A來講,ISR沒有相應的指示,就象中斷處理結束,返回主程序之后一樣。CPU可以再次響應任何級別的中斷請求。3.結束中斷處理的方式(續(xù))(2)一般的中斷結束方式一般的中斷結束方式適用用在全嵌套的情況下,當CPU用輸出指令向8259A發(fā)一般中斷中斷結束命令OCW2時,8259A才會使中斷響應寄存器ISR中優(yōu)先級別最高的位復位。(3)特殊的中斷結束方式在特殊全嵌套模式下,系統(tǒng)無法確定哪一級中斷為最后相應和處理的中斷,也就是說,CPU無法確定當前所處理的是哪級中斷,這時就要采用特殊的中斷結束方式。特殊的中斷結束方式是指在CPU結束中斷處理之后,向8259A發(fā)送一個特殊的EOI中斷結束命令,這個特殊的中斷結束EOI命令,明確指出了中斷響應寄存器ISR中需要復位的位。這里,我們還要指出一點,在級聯(lián)方式下,一般不用自動中斷結束方式,而需要用非自動結束中斷方式,一個中斷處理程序結束時,都必須發(fā)兩個中斷結束EOI命令,一個發(fā)往主片,一個發(fā)往從片。

4.系統(tǒng)總線的連接方式

(1)緩沖方式在多片8259A級連的大系統(tǒng)中,8259A通過外部總線驅動器和數(shù)據(jù)總線相連,這就是緩沖方式。在緩沖方式下,8259的SP/EN輸出信號作為緩沖器的啟動信號,用來啟動總線驅動器,在8259A與CPU之間進行信息交換。

(2)非緩沖方式當系統(tǒng)中只有一片或幾片8259A芯片時,可以將數(shù)據(jù)總線直接與系統(tǒng)數(shù)據(jù)總線相連,這時8259A處于非緩沖方式下。在這種方式下,8259A的作為輸入端設置,主片應接高電平,從片應接低電平。5.引入中斷請求的方式

按照引入中斷請求的方式,8259A有下列幾種工作方式:

(1)邊沿觸發(fā)方式8259A將中斷請求輸入端出現(xiàn)的上升沿,作為中斷請求信號,上升沿后相應引腳,可以一直保持高電平。

(2)電平觸發(fā)方式8259A將中斷請求輸入端出現(xiàn)的高電平作為中斷請求信號,在這種方式下,必須注意:中斷響應之后,高電平必須及時撤除,否則,在CPU響應中斷,開中斷之后,會引起第二次不應該有的中斷。

5.引入中斷請求的方式(續(xù))

(3)中斷查詢方式當系統(tǒng)中的中斷源很多,超過64個時,則可以使8259A工作在查詢方式下,中斷查詢方式的特點是:①中斷源仍往8259A發(fā)中斷請求,但8259A卻不使用INT信號向CPU發(fā)中斷請求信號。②CPU內(nèi)部的中斷允許標志復位,所以CPU對INT引腳上出現(xiàn)的中斷請求呈禁止狀態(tài)。③CPU用軟件查詢的方法來確定中斷源,從而實現(xiàn)對設備的中斷服務,可見,中斷查詢方式,既有中斷的特點,又有查詢的特點,從外設的角度來看,是靠中斷的方式來請求服務,但從CPU的角度來看,是用查詢方式來確定發(fā)中斷請求的中斷源。查詢是通過CPU向8259A發(fā)查詢命令來實現(xiàn)的,查詢命令字由OCW3構成的,其格式如下:

D7

。。。D3D2D1D0X0001100其中D2=1,是查詢命令的特征位。8259A在接到CPU發(fā)來的上述格式的查詢命令之后,立即組成狀態(tài)字,等待CPU來讀取,狀態(tài)字的格式如下:

D7

。。。D3D2D1D0

IXXXXW2W1W0若I=0,則表示該8259A芯片沒有中斷請求,若I=1,則表示有中斷請求,W2、W1、W0即為本片中中斷請求優(yōu)先級別最高的中斷源的編碼。(3)中斷查詢方式(續(xù))習題與思考1.試說明8259A芯片的可編程序性?8259A芯片的編程有哪兩種類型?2.8259A芯片是如何實現(xiàn)對8級中斷進行管理的?又是如何級聯(lián)實現(xiàn)對64級中斷管理的?3.在8259A級聯(lián)工作的情況下,主片的CAS0~CAS2與從片的CAS0~CAS2的作用有何不同?4.試結合8086/8088的INTR中斷響應過程,說明向量中斷的基本概念和處理方法。5.在采用8259A作為中斷控制器的系統(tǒng)中,由IRi輸入的外部中斷請求,能夠獲得CPU響應的基本條件是什么?7.1.38259A的編程

1.8259A的端口地址若8259A與8088CPU配合使用,可直接將A0與CPU的地址信號輸出引腳A0相連,8259A的兩個端口地址是連續(xù)的;若8259A與8086CPU配合使用,如將8259A的D7~D0接到16位數(shù)據(jù)總線的低8位,則A0應與CPU的地址總線A1相連,此時地址總線A0應取0;當?shù)刂房偩€的A1為0時,8259A認為是對偶地址端口進行訪問,當?shù)刂房偩€的A1為1時,8259A認為是對奇地址端口進行訪問。2.8259A的初始化編程

(1)引言

在使用8259A之前,必須對其進行初始始化編程,以規(guī)定它的各種工作方式,并明確其所處的硬件環(huán)境。若CPU用一條輸出指令向8259A的偶地址端口寫入一個命令字,而且D4=1,則被解釋為初始化命令字ICW1,輸出ICW1啟動了8259A的初始化操作,8259A的內(nèi)、外部自動產(chǎn)生下列操作:

①邊沿敏感電路復位,中斷請求的上升沿有效。②中斷屏蔽器IMR清零,即對所有的中斷呈現(xiàn)允許狀態(tài)。③中斷優(yōu)先級自動按IR0—IR7排列。④清除特殊屏蔽方式8259A的初始化編程,需要CPU向它輸出一個2—4字節(jié)的初始化命令字,輸出初始化命令字的流程如圖所示,其中ICW1和ICW2是必須的,而ICW3和ICW4需根據(jù)具體的情況來加以選擇。各初始化命令字的安排與作用分敘如下:8259A初始化流程圖(2)ICW1(芯片控制初始化命令字)

初始化命令字1,寫入8259A偶地址端口,其各位的功能及含義如下:

A0D7D6D5D4D3D2D1D0

①D0:IC4位,用以決定是否跟ICW4,若D0=1,則說明必須輸出ICW4;若D0=0,則說明不需輸出ICW4。若ICW4的各位都為0,則說明不需要輸出ICW4。②D1:SNGL位,取決于8259A芯片是單片工作,還是多片級聯(lián)工作。若8259A單片工作,則D1=1;若8259A多片級連工作,則D1=0。③D2:ADI位,只用于MCS80/85系統(tǒng)中,規(guī)定CALL地址的間隔,在8088/8086系統(tǒng)中,該位無意義。④D3:LTIM位,規(guī)定中斷請求信號的引入方式。若D3=1,則表示中斷請求信號為高電平有效;若D3=0,則表示中斷請求信號為上升沿有效。⑤D4:恒定為1,為ICW1的特征位。⑥D5-7:應用于MCS80/85系統(tǒng),為入口地址中的編程位,在8088/8086系統(tǒng)中,無意義。0

×××1LTIM×SNGLIC4(3)ICW2(設置中斷類型碼初始化命令字)

初始化命令字2,寫入8259A奇地址端口A0D7D6D5D4D3D2D1D0

1

T7T6T5T4T3×××當8259A用于MCS80/85系統(tǒng)中時,用于確定中斷入口地址的高8位(A15—A8);當8259A用于8088/8086系統(tǒng)中時,ICW2的D7—D3為編程設置位,作為本芯片所管理8級中斷類型碼的高5位。而D2—D0位為8級中斷源所對應的編碼(其中:000—IR0,111—IR7)編程設置對其無影響。

例:若ICW2=45H,則8極中斷源的中斷類型碼分別為IR0為40H,…,IR7為47H

(4)ICW3(標志主片/從片的初始化命令字)

初始化命令字3,寫入相應8259A的奇地址端口ICW3用于8259A的級連,8259A最多允許有一片主片和8片從片級連,使能夠管理的中斷源可以擴充至64個。若系統(tǒng)中只有一片8259A,則不用ICW3,若由多片8259A級連,則主、從8259A芯片,都必須使用ICW3,主、從8259A芯片中的ICW3的使用方式不同。

(4)ICW3(標志主片/從片的初始化命令字)-續(xù)

對于主8259A芯片,ICW3的格式如下:

1

IR7IR6IR5IR4IR3IR2IR1IR0

其中每一位對應于一片從8259A芯片,若相應引腳上接有從8259A芯片,則相應位為1;否則,若相應引腳上未接從8259A芯片,則相應位為0。

例:ICW3=1110

0010,則說明IR7、IR6、IR5、IR1上連有從片。A0D7D6D5D4D3D2D1D0

(4)ICW3(標志主片/從片的初始化命令字)-續(xù)

對于從8259A芯片,ICW3的格式如下:

1

1/01/01/01/01/0ID2ID1ID0A0D7D6D5D4D3D2D1D0

從8259A芯片中的ICW3,只用其中的低3來設置該芯片的標識符,高5位全為0。在中斷響應時,主8259A通過級連線CS2—CS0,依次向各個從8259A芯片輸送中斷請求的源中,優(yōu)先級最高的源所對應的標識符,每個從8259A拿到這個標識符之后,與自己在初始化編程時,由ICW3設置的標識符進行比較,當兩者相符合時,則該從8259A芯片在第二個中斷響應周期,向CPU提供由ICW2設置的8位中斷類型碼。例:若本從片的INT接在主片的IR1引腳上,則ICW3=0000

0001(4)ICW4(方式控制初始化命令字)

初始化命令字4,寫入8259A奇地址端口,只有當ICW1中的D0=1時才需要設置,其各位的功能及含義如下:A0D7D6D5D4D3D2D1D01

000SFNMBUFM/SAEOIμPM①

D0:μPM位,取決于系統(tǒng)中所采用微處理器的類型,若系統(tǒng)中的微處理器為MCS80/85,則D0=0;反之,若系統(tǒng)中的微處理器為8088/8086則D0=1。②

D1:AEOI位,規(guī)定結束中斷的方式,若D1=1,則為自動中斷結束方式;若D1=0,則需要用中斷結束命令來結束中斷。③D2:M/S位,緩沖方式下使用,若D2=1,則表示為主8259A;若D2=0,則表示為從8259A。④D3:BUF位,若8259A工作于緩沖方式,則D3=1;否則,D3=0。⑤D4:SFNM位:若D4=1,則規(guī)定特殊的全嵌套模式;否則,若D3=0則規(guī)定普通的全嵌套模式。⑥D5-7:恒定為0003.8259A的操作編程

對8259A按照上述流程進行初始化編程之后,相應芯片就做好了接收中斷的準備,若中斷源發(fā)生了中斷請求,則8259A按照初始化編程所規(guī)定的各種方式來處理這種請求。在8259A的工作期間,CPU也可以通過操作命令字,實現(xiàn)對8259A的操作控制,或者改變工作方式,或者實時讀取8259A中某些寄存器的內(nèi)容。8259A有三個操作命令字,我們分別討論如下:

(1)OCW1(中斷屏蔽操作命令字)中斷屏蔽字,必須寫入相應8259A芯片的奇地址端口,其格式如下:

A0D7D6D5D4D3D2D1D0

1

M7M6M5M4M3M2M1M0它的每一位,可以對相應的中斷請求輸入進行屏蔽,若OCW1的某一位為1,則相應的中斷請求輸入被屏蔽;反之,則相應的中斷請求輸入呈現(xiàn)允許狀態(tài)。即若Mi=1,則表示8259A對IRi的中斷請求呈屏蔽狀態(tài);否則若Mi=0,則表示8259A對IRi的中斷請求呈允許狀態(tài)。(2)OCW2(設置優(yōu)先級循環(huán)方式和中斷結束方式的操作命令字)必須寫入相應8259A芯片的偶地址端口,其格式如下::

A0D7D6D5D4D3D2D1D0

0

RSLEOI00L2L1L0其中D4、D3位恒定為0,是OCW2的特征位,R、SL、EOI三位的不同組合,可以組成7種不同的操作命令,用于改變8259A的工作方式。其中三種操作命令字要用到OCW2的低三位,這三位所形成的編碼指出操作所涉及到的中斷源。

R—用于表示優(yōu)先級是否采用循環(huán)方式;

SL—用于確定是否需要使用L2、L1、L0來明確中斷源;

EOI—用于指示OCW2是否作為中斷結束命令。

L2、L1、L0—當SL=1時,三位的編碼用以指示8個中斷源之一。

R、SL、EOI共有8種不同的組合形式,其中有7種是相應的控制命令,分別介紹如下:①0、0、0:為取消自動EOI循環(huán)命令;②1、0、0:為設置自動EOI循環(huán)命令;③0、0、1:為普通的EOI命令,它適用于完全嵌套方式,在中斷服務程序結束時,用于清除ISR中最后被置位的相應位。顯然,只有在ICW4中的AEOI=0時,才需要在中斷服務子程序中向8259A發(fā)普通的EOI命令。④0、1、1:為特殊的EOI命令,與普通的EOI命令的差別在于,它需要利用L2、L1、L0位明確指出ISR寄存器中需要被復位的位,⑤1、0、1:為普通循環(huán)的EOI命令,它在中斷服務程序結束時使用,它使已置位的ISR寄存器中優(yōu)先級最高的那一位復位,同時賦予剛剛結束中斷處理的中斷源的中斷優(yōu)先級最低。⑥1、1、1:為特殊的EOI循環(huán)命令,它一方面復位ISR寄存器中由L2、L1、L0位明確指出的那一位;另一方面,使L2、L1、L0位明確指出的那一個中斷源的中斷優(yōu)先級最低。⑦1、1、0:為置位優(yōu)先權命令,它用以設置優(yōu)先級特殊循環(huán)方式,即利用L2、L1、L0位明確指出中斷優(yōu)先級最低的中斷源。⑧0、1、0:非操作命令,無實際意義。(2)OCW2(續(xù))必須寫入相應8259A芯片的偶地址端口。其格式如下:0

0ESMMSMM01PRRRIS①

D0:RIS位,用以決定下一個讀操作所對應的寄存器,若D0=1,則下一個讀操作讀取中斷服務寄存器ISR的內(nèi)容;否則,讀取中斷請求寄存器IRR的內(nèi)容。②

D1:RR位,決定下一個操作是否讀操作,若D1=1,則下一個操作是讀操作;否則,下一個操作不是讀操作。③

D2:P位,用于8259的查詢中斷方式下,若D2=1,表示為查詢命令;否則,表示不是查詢命令。④D3—D4:恒定為10,是OCW3的特征位。⑤D5—D6:決定8259A是否為設置特殊屏蔽模式命令,若D6、D5為11,則為設置特殊屏蔽模式命令;若D6、D5為01,則為撤消特殊屏蔽模式、返回普通屏蔽模式命令;若D6=0,則D5無意義。⑥D7:無關(3)OCW3

A0D7D6D5D4D3D2D1D03.8259A的級聯(lián)

所謂級聯(lián),就是在微型計算機系統(tǒng)中,以1片8259A的INT引腳與CPU的INTR引腳相連,稱為主片;再將最多8片8259A的INT引腳,分別與主8259A的IR0-IR7相連,稱為從片。顯然,在主-從式8259級聯(lián)的微機系統(tǒng)中,系統(tǒng)能夠管理的中斷源可由8級擴展至64級。

級連系統(tǒng)中的所有8259A都必須進行各自獨立的編程,作為主片的8259A必須設置為特殊的全嵌套方式,可以避免相同從片中,優(yōu)先級較高的中斷請求被屏蔽的情況發(fā)生.與一般的全嵌套方式相比,有兩點需要注意:①

當來自某個從設備的中斷請求被響應之后,主片的優(yōu)先權邏輯不封鎖這個從片,從而可以使來自從設備的較高優(yōu)先級的中斷請求能被主片正常接受,并向CPU發(fā)出。②

中斷服務結束時,必須用軟件來檢查被服務的中斷是否為該從片中,唯一的中斷請求。為此,須先向從片發(fā)一個一般的中斷結束命令,清除已完成服務的ISR中的相應位,然后,再讀出ISR的內(nèi)容,檢查是否全0,若為全0,則向主片發(fā)一個中斷結束命令,清除與從設備相應的ISR中的位;反之,則不向主片發(fā)中斷結束命令,因為同一從片中還有其它中斷請求正在處理。3.8259A的級聯(lián)(續(xù))7.1.48259A使用舉例例1.IBMPC機中,只有一片8259A,可接受外部8級中斷。在I/O地址中,分配8259A的端口地址為20H和21H,初始化為:邊沿觸發(fā)、緩沖連接、中斷結束采用EOI命令、中斷優(yōu)先級采用完全嵌套方式,8級中斷源的中斷類型分別為08H—0FH,初始化程序為:MOVDX,20HMOVAL,00010011BOUTDX,AL;寫入ICW1

MOVDX,21HMOVAL,08HOUTDX,AL;寫入ICW2

MOVAL,00001101BOUTDX,AL;寫入ICW4XORAL,ALOUTDX,AL;寫入OCW1

。。。。。。STI

。。。。。。假定,初始化之后,8259A工作于完全嵌套方式,要求對于IR3的中斷級,能夠允許任何級別的中斷中斷其中斷服務程序,即8259A按特殊屏蔽方式工作。因而在響應IR3而執(zhí)行IR3的中斷服務程序時,在A處,寫入OCW1以屏蔽IR3,然后寫入OCW3使ESMM=SMM=1,于是從A處開始,8259A進而特殊屏蔽方式,此后繼續(xù)執(zhí)行IR3的中斷服務程序。在中斷服務結束之前,再向8259A寫入OCW3使ESMM=1,SMM=0,結束特殊屏蔽方式,返回到完全嵌套方式,接著寫入OCW1,撤消對IR3的屏蔽,最后寫入OCW2,向8259A發(fā)出EOI命令。此例,說明在IR3的中斷服務程序的A處至B處,允許任何級別的中斷源中斷IR3的服務程序。(除本身之外)

例2.進入和退出特殊屏蔽方式的流程圖。。。。IR3中斷服務程序入口STI保護現(xiàn)場。。。STI開中斷服務程序MOVAL,00001000BOUT21H,AL;OCW1寫入OCW1,使IM3=1MOVAL,01101000B寫入OCW3,使ESMM=SMM=1OUT20H,AL;OCW3繼續(xù)服務。。。

溫馨提示

  • 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

提交評論