8中斷系統(tǒng)與可編程控制器8259a_第1頁
8中斷系統(tǒng)與可編程控制器8259a_第2頁
8中斷系統(tǒng)與可編程控制器8259a_第3頁
8中斷系統(tǒng)與可編程控制器8259a_第4頁
8中斷系統(tǒng)與可編程控制器8259a_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章

中斷系統(tǒng)與可編程控制器8259A一、中斷系統(tǒng)中的名詞概念中斷是指CPU暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行處理中斷事件的中斷服務(wù)程序,待執(zhí)行完中斷服務(wù)程序再返回到原被中斷的程序繼續(xù)執(zhí)行。

8.1 中斷的基本概念

●中斷●中斷源及分類內(nèi)部中斷源:中斷源位于微處理器內(nèi)部,如程序異常、陷阱中斷、軟件中斷等外部中斷源:中斷源在微處理器的外部,如外部故障、外部事件、I/O事件等

中斷源:引起中斷的事件8.1 中斷的基本概念

●中斷類型號為了使CPU能識別中斷源,從而設(shè)置的中斷源編號。8.1 中斷的基本概念

●中斷斷點中斷發(fā)生時CPU正在執(zhí)行指令的下一條指令的地址稱為中斷斷點,簡稱斷點?!裰袛喾?wù)程序中斷服務(wù)程序:處理中斷事件的程序段。8.1 中斷的基本概念

中斷服務(wù)程序與一般的子程序?qū)Ρ龋鹤映绦虻恼{(diào)用是由程序設(shè)定,因此是確定的而中斷服務(wù)程序由某個事件引發(fā),它的發(fā)生往往是隨機的、不確定的?!裰袛嘞到y(tǒng)

為實現(xiàn)計算機的中斷功能而配置的相關(guān)硬件、軟件的集合稱為中斷系統(tǒng)。8.1 中斷的基本概念

二、中斷工作方式的特點●并行處理能力

●實時處理能力

●故障處理能力

●多道程序或多重任務(wù)的運行

8.1 中斷的基本概念

三、中斷管理●中斷源的識別

在多個中斷源共存的系統(tǒng)中,當(dāng)有中斷發(fā)生時,CPU需要識別是那個中斷源發(fā)出的請求。軟件方法:軟件查詢中斷源的狀態(tài)來識別硬件方法:需硬件提供中斷類型號來識別8.1 中斷的基本概念

●中斷的優(yōu)先權(quán)

所謂優(yōu)先權(quán),是指有多個中斷源同時提出中斷請求時,微處理器響應(yīng)中斷的優(yōu)先次序。8.1 中斷的基本概念

●中斷嵌套

8.1 中斷的基本概念

四、中斷過程中斷源請求中斷中斷響應(yīng)中斷服務(wù)8.1 中斷的基本概念

●中斷源請求中斷外部中斷源:由外部硬件產(chǎn)生可屏蔽或不可屏蔽中斷的請求信號。內(nèi)部中斷源:在程序運行過程中發(fā)生了指令異常或其他情況。8.1 中斷的基本概念

●中斷響應(yīng)▲響應(yīng)可屏蔽中斷條件:1、微處理器處于中斷允許狀態(tài)(IF=1)2、沒有不可屏蔽中斷請求和總線請求3、當(dāng)前指令執(zhí)行結(jié)束▲響應(yīng)不可屏蔽中斷條件:1、沒有總線請求2、當(dāng)前指令執(zhí)行結(jié)束8.1 中斷的基本概念

▲響應(yīng)內(nèi)部中斷條件:

1、當(dāng)前指令執(zhí)行結(jié)束▲中斷響應(yīng)過程如下:識別中斷源FLAGS,CS,IP進(jìn)棧清TF,IF標(biāo)志讀中斷向量,轉(zhuǎn)入中斷服務(wù)程序開中斷中斷處理關(guān)中斷恢復(fù)現(xiàn)場中斷返回主程序保護(hù)現(xiàn)場斷點中斷響應(yīng)周期中斷服務(wù)程序8.1 中斷的基本概念

●中斷服務(wù)8.1 中斷的基本概念

一、8086微處理器的中斷類型8.2 8086中斷系統(tǒng)可屏蔽中斷外部中斷不可屏蔽中斷中斷除法錯中斷單步中斷內(nèi)部中斷斷點中斷溢出中斷軟中斷

8086用8位二進(jìn)制碼表示一個中斷類型,共有256個中斷,可分為兩大類:

8.2 8086中斷系統(tǒng)8086中斷結(jié)構(gòu)8.2 8086中斷系統(tǒng)●外部可屏蔽中斷可屏蔽中斷由INTR引入,受標(biāo)志寄存器中的中斷允許標(biāo)志位IF的控制:IF=0,微處理器不響應(yīng)INTR的中斷請求,IF=1,微處理器響應(yīng)INTR的中斷請求。8086的可屏蔽中斷源由可編程中斷控制器8259A統(tǒng)一管理,INTR中斷的類型碼可以是8~255。8.2 8086中斷系統(tǒng)●外部不可屏蔽中斷不可屏蔽中斷由NMI引腳引入,不受中斷允許標(biāo)志位IF控制。不管IF的狀態(tài)如何,只要NMI信號有效,8086現(xiàn)行指令執(zhí)行結(jié)束,沒有DMA請求,都會立即響應(yīng)NMI中斷請求。NMI中斷類型碼固定為2。8.2 8086中斷系統(tǒng)●除法錯中斷在執(zhí)行DIV或IDIV指令時,若發(fā)現(xiàn)除數(shù)為零或商超過寄存器所能表達(dá)的范圍(商溢出),8086微處理器立即執(zhí)行中斷類型碼為0的內(nèi)部中斷。8.2 8086中斷系統(tǒng)●單步中斷若TF=1,則微處理器每執(zhí)行完一條指令就引起一個中斷類型碼為1的內(nèi)部中斷。它用于實現(xiàn)單步操作,是一種強有力的調(diào)試手段。8.2 8086中斷系統(tǒng)●斷點中斷

INT3指令產(chǎn)生一個中斷碼為3的內(nèi)部中斷,稱為斷點中斷。在程序調(diào)試過程中,需要跟蹤程序走向、了解程序執(zhí)行過程的中間結(jié)果時,可以用INT3指令臨時替換原有的指令,稱為設(shè)置斷點。8.2 8086中斷系統(tǒng)●溢出中斷若上一條指令的執(zhí)行結(jié)果使OF=1,則INTO指令引起中斷類型碼為4的內(nèi)部中斷;否則此指令不起作用,程序順序執(zhí)行下一條指令。8.2 8086中斷系統(tǒng)●軟中斷用戶可以用INTn指令產(chǎn)生一個中斷,n為中斷類型碼。如DOS系統(tǒng)功能調(diào)用INT21H指令的中斷類型碼為21H。二、8086微處理器的中斷向量表8.2 8086中斷系統(tǒng)中斷向量:就是中斷服務(wù)程序的入口地址中斷向量表:它是中斷類型號與它對應(yīng)的中斷服務(wù)程序入口地址之間的換算表。8086的中斷向量表占用存儲器從00000H開始的最低地址區(qū)的1024個單元,每個中斷向量占用4B,故可存256個中斷向量。8.2 8086中斷系統(tǒng)中斷向量表的結(jié)構(gòu)中斷類型號*4=中斷向量的地址三、8086微處理器的中斷響應(yīng)及返回8.2 8086中斷系統(tǒng)●可屏蔽中斷的響應(yīng)過程外部可屏蔽中斷等待當(dāng)前指令結(jié)束獲取中斷類型號PSW/CS/IP進(jìn)棧清IF、TF位中斷向量置入IP,CSIF=1?不響應(yīng)是否8.2 8086中斷系統(tǒng)●不可屏蔽中斷的響應(yīng)操作CPU對它的響應(yīng)不受IF位的控制,也要等待當(dāng)前指令執(zhí)行結(jié)束。若不可屏蔽中斷請求和可屏蔽中斷請求同時出現(xiàn),CPU將優(yōu)先響應(yīng)不可屏蔽中斷。不可屏蔽中斷響應(yīng)的其它操作和可屏蔽中斷相同。8.2 8086中斷系統(tǒng)●內(nèi)部中斷的響應(yīng)操作內(nèi)部中斷響應(yīng)操作有以下共同點:▲中斷類型號要么是指令碼給定的,要么是處理器硬件決定的,都不需要從外部邏輯輸入?!鴽]有信號的響應(yīng)周期?!皇躀F位的控制,但單步中斷受TF位控制?!龁尾街袛嘀?,其它內(nèi)部中斷都比外部中斷優(yōu)先響應(yīng)。除上述特點外,內(nèi)部中斷響應(yīng)也要執(zhí)行可屏蔽中斷響應(yīng)的保存現(xiàn)場、清IFTF、中斷向量置入IPCS的操作。一、中斷控制器的功能8.3 中斷控制器8259A及其應(yīng)用1、接收外部中斷請求,向微處理器發(fā)送中斷請求;2、進(jìn)行優(yōu)先權(quán)級別的判斷,把當(dāng)前優(yōu)先權(quán)最高的中斷源的中斷類型號送往微處理器;3、處理器響應(yīng)中斷,進(jìn)入中斷服務(wù)后,當(dāng)優(yōu)先權(quán)更高的外部中斷請求產(chǎn)生時,中斷控制器能夠?qū)崿F(xiàn)中斷的嵌套;4、對于優(yōu)先權(quán)較低的中斷請求則予以屏蔽。二、8259A的引腳8.3 中斷控制器8259A及其應(yīng)用三、8259A的內(nèi)部結(jié)構(gòu)及功能模塊8.3 中斷控制器8259A及其應(yīng)用8259A內(nèi)部結(jié)構(gòu)圖8.3 中斷控制器8259A及其應(yīng)用●中斷請求寄存器(IRR)IRR是一個8位的鎖存器,用來鎖存外部設(shè)備送來的IR7~IR0中斷請求信號。當(dāng)外部中斷請求線IRi有中斷請求時,IRR中與之對應(yīng)的第i位被置1。8.3 中斷控制器8259A及其應(yīng)用●中斷屏蔽寄存器(IMR)IMR是一個8位的寄存器,用于設(shè)置中斷請求的屏蔽信號。此寄存器的第i位被置1時,與之對應(yīng)的外部中斷請求線IRi被屏蔽,不能向微處理器發(fā)出INT信號。8.3 中斷控制器8259A及其應(yīng)用●中斷服務(wù)狀態(tài)寄存器(ISR)ISR是一個8位的寄存器,用于記錄當(dāng)前正在被服務(wù)的所有中斷級,包括尚未服務(wù)完而中途被更高優(yōu)先級打斷的中斷級。若微處理器響應(yīng)了IRi中斷請求,則ISR中與之對應(yīng)的第i位置1。該中斷處理結(jié)束前,要使用指令清除這一位。8.3 中斷控制器8259A及其應(yīng)用●優(yōu)先權(quán)處理器優(yōu)先權(quán)處理器用于識別和管理各中斷請求信號的優(yōu)先級別。8.3 中斷控制器8259A及其應(yīng)用●控制邏輯在8259A的控制邏輯電路中,有一組初始化命令字寄存器ICW1~ICW4和一組操作命令字寄存器OCW1~OCW3??刂七壿嬰娐钒凑站幊淘O(shè)定的工作方式管理8259A的全部工作。8.3 中斷控制器8259A及其應(yīng)用●數(shù)據(jù)總線緩沖器這是一個8位的雙向三態(tài)緩沖器,是8259A與系統(tǒng)數(shù)據(jù)總線的接口。8259A通過數(shù)據(jù)總線緩沖器接收微處理器發(fā)來的控制字,也通過數(shù)據(jù)總線緩沖器向微處理器發(fā)送中斷類型碼和狀態(tài)信息。8.3 中斷控制器8259A及其應(yīng)用●讀寫控制邏輯CSA0RDWRD4D3讀寫操作0000000111110000001x01xx數(shù)據(jù)總線→OCW2數(shù)據(jù)總線→OCW3數(shù)據(jù)總線→ICW1數(shù)據(jù)總線→ICW2,ICW3,ICW4,OCW100010011IRR或ISR或中斷級別編碼→數(shù)據(jù)總線IMR→數(shù)據(jù)總線8.3 中斷控制器8259A及其應(yīng)用●級聯(lián)緩沖/比較器系統(tǒng)需要擴展而使用多個8259A時,要有一個8259A作為主器件而其他的作為從器件。級聯(lián)緩沖/比較器用來控制8259A的級聯(lián)。

四、8259A的工作方式8.3 中斷控制器8259A及其應(yīng)用●8259A的優(yōu)先權(quán)管理自動循環(huán)方式固定優(yōu)先權(quán)循環(huán)優(yōu)先權(quán)全嵌套方式特殊嵌套方式特殊循環(huán)方式8.3 中斷控制器8259A及其應(yīng)用●8259A中斷屏蔽方式●8259A中斷結(jié)束方式普通屏蔽方式特殊屏蔽方式自動中斷結(jié)束方式(AEOI)非自動中斷結(jié)束方式(EOI)8.3 中斷控制器8259A及其應(yīng)用●8259A的查詢工作方式8259A工作在程序查詢方式時,8259A不向微處理器發(fā)INT信號,微處理器通過查詢8259A了解有無中斷。查詢字格式為:I××××W2W1W0I=1表示有中斷請求,I=0表示沒有中斷請求。W2W1W0表示8259A請求服務(wù)的最高優(yōu)先級編碼。8.3 中斷控制器8259A及其應(yīng)用●讀8259A的狀態(tài)8259A內(nèi)部的IRR、ISR和IMR的狀態(tài)可以通過適當(dāng)?shù)淖x命令讀到微處理器中,以了解8259A的工作情況。上述的各種工作方式,都是通過8259A的初始化命令字(ICW1~ICW4)和操作命令字(OCW1~OCW3)來設(shè)定的。五、8259A的編程8.3 中斷控制器8259A及其應(yīng)用分為兩個階段:初始化階段和操作階段。初始化階段應(yīng)該在系統(tǒng)加電或復(fù)位后由初始化程序完成。用輸出指令向8259置入初始化命令。操作階段,用輸出指令向8259發(fā)適當(dāng)?shù)牟僮髅钭?,實現(xiàn)對8259的狀態(tài)、中斷方式和過程的控制。8.3 中斷控制器8259A及其應(yīng)用●初始化編程初始化編程的任務(wù):

1、設(shè)定中斷請求信號的有效形式,即高電平有效,還是低電平向高電平跳變的上升沿有效;

2、是單片工作方式還是級聯(lián)工作方式;

3、設(shè)定8259管理的中斷類型號基值,即0級中斷IR0對應(yīng)的中斷類型號;

4、設(shè)定各級的優(yōu)先排序規(guī)則;5、設(shè)定一次中斷處理結(jié)束時的結(jié)束操作規(guī)則。

1、設(shè)定中斷請求信號的有效形式,即高電平有效,還是低電平向高電平跳變的上升沿有效;

2、是單片工作方式還是級聯(lián)工作方式;

3、設(shè)定8259管理的中斷類型號基值,即0級中斷IR0對應(yīng)的中斷類型號;

4、設(shè)定各級的優(yōu)先排序規(guī)則;5、設(shè)定一次中斷處理結(jié)束時的結(jié)束操作規(guī)則。

通過向8259發(fā)初始化命令字ICW實現(xiàn)。8.3 中斷控制器8259A及其應(yīng)用初始化命令字ICW1:設(shè)置ICW1需要I/O地址為A0=0。格式:

D7D6D5D4D3D2D1D0×××1LTIM0SNGLIC4其中:×表示無關(guān)位,可以是任意值;LTIM=1:表示有效的中斷請求信號是高電平,為0是低電平向高電平跳變的上升沿;SNGL=1:單片工作,為0多片級聯(lián);IC4=1:表示在后面程序還要設(shè)置初始化命令字ICW4,為0不再設(shè)置ICW4;D4=1:是ICW1的特征標(biāo)志8.3 中斷控制器8259A及其應(yīng)用初始化命令字ICW2:用于設(shè)置中斷類型號基值。格式:

D7D6D5D4D3D2D1D0T7T6T5T4T3000其中:低3位必須為0;若兩片8259A的中斷類型號基值分別為08H和70H,ICW2的高5位T7~T3分別為00001和01110。

設(shè)置ICW2的地址為A0=18.3 中斷控制器8259A及其應(yīng)用初始化命令字ICW2說明:▲外中斷的中斷類型號是在中斷需要期間由8259提供的;▲8259是根據(jù)初始化過程中用ICW2命令置入的中斷類型號基值來提供中斷類型號?!鳬R0對應(yīng)的中斷類型號是中斷類型號基值,一定能被8整除的正整數(shù)。8.3 中斷控制器8259A及其應(yīng)用初始化命令字ICW3:專為級聯(lián)而設(shè)置的。

當(dāng)只有一片8259A(即設(shè)ICW1的D1位為1),則不設(shè)置CW3;當(dāng)多于一片時,將主片和從片的ICW1中D1位設(shè)置為0;且在設(shè)置ICW2之后向A0=1地址設(shè)置的才是ICW3。ICW3(主控)1:相應(yīng)的IR接從屬的82590:相應(yīng)的IR未接從屬的82598.3 中斷控制器8259A及其應(yīng)用ICW3(從屬)00000該3位的編碼對應(yīng)從屬8259接主控IR的編號例如:從屬芯片接到主控芯片的IR2上,則從屬芯片的ICW3對應(yīng)的是02H;主片中設(shè)置的ICW3為00000100。8.3 中斷控制器8259A及其應(yīng)用格式:D7D6D5D4D3D2D1D0AEOIμPMM/SBUFSFNM0001-中斷自動結(jié)束0-中斷正常結(jié)束0×非緩沖方式10緩沖方式/從片11緩沖方式/主片1-特殊全嵌套方法0-正常全嵌套方法1-8086/8088方式0-8080/8085方式初始化命令字ICW4:只有ICW1的IC4位為1才能設(shè)置ICW48.3 中斷控制器8259A及其應(yīng)用8259初始化命令字設(shè)置次序:A0=1(21H)ICW1ICW2是級聯(lián)?

SNGL=1?ICW3NY地址A0=0(20H)A0=1(21H)A0=1(21H)IC4=1?YICW4N8.3 中斷控制器8259A及其應(yīng)用●操作編程

8259A共有OCW1、OCW2和OCW3三個操作控制字,用于對8259A管理中斷的方式進(jìn)行修改和設(shè)定。與初始化命令字ICW不同,OCW不是按照既定流程寫入,而是按需要選擇寫入。8.3 中斷控制器8259A及其應(yīng)用操作命令字OCW1:用于設(shè)置屏蔽狀態(tài),設(shè)置OCW1的I/O地址是A0=1。

用輸出指令把OCW1發(fā)送到IMR;中斷屏蔽寄存器IMR中為1的位對應(yīng)的中斷級的輸入線IR處于被屏蔽狀態(tài)。被屏蔽的中斷級請求不能使8259的INT輸出端產(chǎn)生有效的請求信號。

8.3 中斷控制器8259A及其應(yīng)用OCW1D0D1D2D3D4D5D6D71:屏蔽響應(yīng)的IR

0:允許相應(yīng)的IR中斷例如:將42H寫入OCW1,則IR6和IR1被屏蔽,而IR0、

IR2、IR3、IR4、IR5和IR7允許中斷。向地址A0=1發(fā)的OCW1是屏蔽字,對同一地址的輸入指令將讀回OCW1設(shè)置的屏蔽字。8.3 中斷控制器8259A及其應(yīng)用OCW2:設(shè)置OCW2地址的是A0=0。RSLEOI00L2L1L0

指定中斷級

0000

0011

...

1117

R=0固定優(yōu)先權(quán)

R=1循環(huán)優(yōu)先權(quán)

SL=0表明L2、L1、LO無意義

SL=1表明L2、L1、LO有意義

EOI=1表示撤消中斷EOI=0表示不撤消中斷8.3 中斷控制器8259A及其應(yīng)用OCW3:用于管理特殊的屏蔽方式和查詢方法,設(shè)置OCW3地址的是A0=0。0ESMMSMM01PRRRIS它的特征標(biāo)識為D4D3=01ESMM:特殊屏蔽方式,為1允許特殊屏蔽方式SMM:特殊屏蔽方式標(biāo)識,1表示特殊屏蔽方式,

0表示非特殊屏蔽方式ESMM為1,SMM為才有意義,否則無意義。D7D6D5D4D3D2D1D08.3 中斷控制器8259A及其應(yīng)用D7D6D5D4D3D2D1D00ESMMSMM01PRRRISP:管理查詢方式,1指明查詢方式,即查詢決定優(yōu)先級次序

0非查詢方式。RR、RIS:控制讀出8259內(nèi)部寄存器IRR和ISR的內(nèi)容。10、11讀寄存器IRR、ISR的命令;00、01無意義,其中P=08.3 中斷控制器8259A及其應(yīng)用當(dāng)P=1時的OCW3可用作查詢指令。下一條對同一地址(A0=0)的讀指令起中斷識別作用,其操作是,如當(dāng)時有中斷請求,將識別出優(yōu)先級最高的中斷請求,把ISR的相應(yīng)位置1,同時輸入一個字節(jié)的信息到CPU(AL),這個字節(jié)信息的格式如下:1----W2W1W0位7=1:表示有中斷請求,W2-W0指明請求服務(wù)的各中斷級中的最高優(yōu)先級,否則無中斷請求。六、中斷方式輸入輸出程序設(shè)計8.3 中斷控制器8259A及其應(yīng)用●主程序設(shè)計1、微處理器初始化:設(shè)置堆棧,設(shè)置中斷向量,開放中斷。2、中斷控制器8259A的初始化:選擇工作方式,設(shè)置優(yōu)先級規(guī)則,清除相應(yīng)的屏蔽位等。3、接口的初始化:將接口恢復(fù)到初始狀態(tài),對于可編程的接口,要設(shè)置接口的工作方式,設(shè)置接口的中斷開放位等。8.3 中斷控制器8259A及其應(yīng)用4、中斷服務(wù)程序的初始化:設(shè)置中斷服務(wù)程序使用的緩沖區(qū)指針、計數(shù)器、狀態(tài)位等。5、對于輸出過程,應(yīng)在主程序中啟動第一次輸出,否則不會發(fā)生輸出中斷。8.3

溫馨提示

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

評論

0/150

提交評論