微機(jī)原理與接口技術(shù)-08中斷系統(tǒng)與可編程中斷控制器8259A_第1頁(yè)
微機(jī)原理與接口技術(shù)-08中斷系統(tǒng)與可編程中斷控制器8259A_第2頁(yè)
微機(jī)原理與接口技術(shù)-08中斷系統(tǒng)與可編程中斷控制器8259A_第3頁(yè)
微機(jī)原理與接口技術(shù)-08中斷系統(tǒng)與可編程中斷控制器8259A_第4頁(yè)
微機(jī)原理與接口技術(shù)-08中斷系統(tǒng)與可編程中斷控制器8259A_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

中斷的基本概念

8086的中斷系統(tǒng)可編程中斷控制器8259A及其應(yīng)用

第8章中斷系統(tǒng)與可編程中斷控制器8259A一、中斷系統(tǒng)中的名詞概念

中斷是指CPU暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行處理中斷事件的中斷服務(wù)程序,待執(zhí)行完中斷服務(wù)程序再返回到原被中斷的程序繼續(xù)執(zhí)行。1、中斷8.1 中斷的基本概念

2、中斷源及分類內(nèi)部中斷源:中斷源位于微處理器內(nèi)部,如程序異常、陷阱中斷、軟件中斷等外部中斷源:中斷源在微處理器的外部,如外部故障、外部事件、I/O事件等通常稱引起中斷的事件為中斷源。8.1 中斷的基本概念

3、中斷類型號(hào)

為了能使CPU識(shí)別中斷源,從而能正確地轉(zhuǎn)向該中斷源對(duì)應(yīng)的中斷服務(wù)程序入口,通常用若干位二進(jìn)制編碼來(lái)給中斷源編號(hào),該編號(hào)稱為中斷類型號(hào)。4、中斷斷點(diǎn)

由于中斷的發(fā)生,某個(gè)程序被暫停執(zhí)行。該程序中即將執(zhí)行,但由于中斷而沒(méi)有被執(zhí)行的那條指令(即中斷發(fā)生時(shí)CPU正在執(zhí)行指令的下一條指令)的地址稱為中斷斷點(diǎn),簡(jiǎn)稱斷點(diǎn)。8.1 中斷的基本概念

5、中斷服務(wù)程序

中斷服務(wù)程序:處理中斷事件的程序段。如除法錯(cuò)中斷服務(wù)程序、輸入輸出中斷服務(wù)程序等。中斷服務(wù)程序與一般的子程序?qū)Ρ龋鹤映绦虻恼{(diào)用是由程序設(shè)定,因此是確定的而中斷服務(wù)程序由某個(gè)事件引發(fā),它的發(fā)生往往是隨機(jī)的、不確定的。6、中斷系統(tǒng)

為實(shí)現(xiàn)計(jì)算機(jī)的中斷功能而配置的相關(guān)硬件、軟件的集合稱為中斷系統(tǒng)。二、中斷工作方式的特點(diǎn)●并行處理能力

●實(shí)時(shí)處理能力

●故障處理能力

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

8.1 中斷的基本概念

三、中斷管理1、對(duì)中斷全過(guò)程的控制

中斷源發(fā)出中斷請(qǐng)求時(shí),微處理器能決定是否響應(yīng)這一中斷。若允許響應(yīng)這個(gè)中斷請(qǐng)求,微處理器能在保護(hù)斷點(diǎn)后,將控制轉(zhuǎn)移到相應(yīng)的中斷服務(wù)程序去,中斷處理完后,微處理器又能返回到斷點(diǎn)處繼續(xù)執(zhí)行被中斷的程序。8.1 中斷的基本概念

2、中斷源的識(shí)別

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

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

對(duì)于系統(tǒng)中的所有中斷源,必須根據(jù)中斷的性質(zhì)及處理的輕重緩急對(duì)中斷源進(jìn)行排隊(duì),并給予優(yōu)先權(quán)。所謂優(yōu)先權(quán),是指有多個(gè)中斷源同時(shí)提出中斷請(qǐng)求時(shí),微處理器響應(yīng)中斷的優(yōu)先次序。8.1 中斷的基本概念

4、中斷嵌套

微處理器在處理級(jí)別低的中斷過(guò)程中,如果出現(xiàn)了級(jí)別高的中斷請(qǐng)求,微處理器停止執(zhí)行低級(jí)中斷的處理程序而去處理高優(yōu)先級(jí)中斷,等高級(jí)中斷處理完畢后,再接著執(zhí)行低級(jí)的未處理完的程序,這種中斷處理方式為中斷嵌套。四、中斷過(guò)程

對(duì)于不同類型的中斷源,微處理器的響應(yīng)及處理過(guò)程不完全一樣,大致過(guò)程為:中斷源請(qǐng)求中斷中斷響應(yīng)中斷服務(wù)8.1 中斷的基本概念

1、中斷源請(qǐng)求中斷①外部中斷源。由外部硬件產(chǎn)生可屏蔽或不可屏蔽中斷的請(qǐng)求信號(hào)。②內(nèi)部中斷源。在程序運(yùn)行過(guò)程中發(fā)生了指令異?;蚱渌闆r。8.1 中斷的基本概念

2、中斷響應(yīng)

(1)響應(yīng)可屏蔽中斷條件:

①微處理器處于中斷允許狀態(tài)(IF=1)。

②沒(méi)有不可屏蔽中斷請(qǐng)求和總線請(qǐng)求。

③當(dāng)前指令執(zhí)行結(jié)束。(2)響應(yīng)不可屏蔽中斷條件:

①?zèng)]有總線請(qǐng)求。

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

3、中斷服務(wù)(1)保護(hù)現(xiàn)場(chǎng)保護(hù)中斷服務(wù)時(shí)要使用的寄存器的內(nèi)容。(2)開(kāi)中斷(3)中斷處理執(zhí)行輸入輸出或非常事件的處理。(4)關(guān)中斷保證在恢復(fù)現(xiàn)場(chǎng)時(shí)不被新的中斷打擾。(5)恢復(fù)現(xiàn)場(chǎng)(6)返回

在中斷服務(wù)程序的最后,需要安排一條中斷返回指令,使程序回到被中斷的地址。一、8086微處理器的中斷類型

外部中斷中斷

內(nèi)部中斷

8.2 8086的中斷系統(tǒng)

8086用8位二進(jìn)制碼表示一個(gè)中斷類型,共有256個(gè)中斷,可分為兩大類:可屏蔽中斷非可屏蔽中斷除法錯(cuò)中斷單步中斷斷點(diǎn)中斷溢出中斷軟中斷8086中斷結(jié)構(gòu)

除法出錯(cuò)中斷、INTn和INTO指令的優(yōu)先級(jí)最高,其次為不可屏蔽中斷NMI,再者為可屏蔽中斷INTR,單步中斷的優(yōu)先級(jí)最低。8.2 8086的中斷系統(tǒng)1、外部可屏蔽中斷

可屏蔽中斷由INTR引入,受標(biāo)志寄存器中的中斷允許標(biāo)志位IF的控制。IF=0時(shí),微處理器不響應(yīng)INTR的中斷請(qǐng)求,IF=1時(shí),微處理器響應(yīng)INTR的中斷請(qǐng)求。8086的可屏蔽中斷源由中斷控制器8259A統(tǒng)一管理,INTR中斷的類型碼可以是8~255。8.2 8086的中斷系統(tǒng)2、外部不可屏蔽中斷

不可屏蔽中斷由NMI引腳引入,微處理器對(duì)NMI中斷請(qǐng)求的響應(yīng),不受中斷允許標(biāo)志位IF控制。不管IF的狀態(tài)如何,只要NMI信號(hào)有效,8086現(xiàn)行指令執(zhí)行結(jié)束,沒(méi)有DMA請(qǐng)求,都會(huì)立即響應(yīng)NMI中斷請(qǐng)求。NMI中斷類型碼固定為2。8.2 8086的中斷系統(tǒng)(1)除法錯(cuò)中斷

在執(zhí)行DIV(無(wú)符號(hào)數(shù)除法)或IDIV(有符號(hào)數(shù)除法)指令時(shí),若發(fā)現(xiàn)除數(shù)為零或商超過(guò)寄存器所能表達(dá)的范圍(商溢出),8086微處理器立即執(zhí)行中斷類型碼為0的內(nèi)部中斷。3、內(nèi)部中斷8.2 8086的中斷系統(tǒng)(2)單步中斷8086標(biāo)志寄存器中有一個(gè)陷阱標(biāo)志位TF,若TF=1,則微處理器每執(zhí)行完一條指令就引起一個(gè)中斷類型碼為1的內(nèi)部中斷。它用于實(shí)現(xiàn)單步操作,是一種強(qiáng)有力的調(diào)試手段。(3)斷點(diǎn)中斷INT3指令產(chǎn)生一個(gè)中斷碼為3的內(nèi)部中斷,稱為斷點(diǎn)中斷。在程序調(diào)試過(guò)程中,需要跟蹤程序走向、了解程序執(zhí)行過(guò)程的中間結(jié)果時(shí),可以用INT3指令臨時(shí)替換原有的指令,稱為設(shè)置斷點(diǎn)。4、溢出中斷8086標(biāo)志寄存器中有一個(gè)溢出標(biāo)志位OF,若上一條指令的執(zhí)行結(jié)果使OF=1,則INTO指令引起中斷類型碼為4的內(nèi)部中斷;否則此指令不起作用,程序順序執(zhí)行下一條指令。5、軟中斷

用戶可以用INTn指令產(chǎn)生一個(gè)中斷,n為中斷類型碼。如DOS系統(tǒng)功能調(diào)用INT21H指令的中斷類型碼為21H。8.2 8086的中斷系統(tǒng)二、8086微處理器的中斷向量表中斷向量:也稱為中斷指針,就是中斷服務(wù)程序的入口地址中斷向量表:它是中斷類型號(hào)與它對(duì)應(yīng)的中斷服務(wù)程序入口地址之間的換算表。8086的中斷向量表占用存儲(chǔ)器從00000H開(kāi)始的最低地址區(qū)的1024個(gè)單元,每個(gè)中斷向量占用4B,故可存256個(gè)中斷向量。8.2 8086的中斷系統(tǒng)中斷向量表的結(jié)構(gòu)三、8086微處理器的中斷響應(yīng)及返回1、可屏蔽中斷的響應(yīng)操作①等待當(dāng)前指令結(jié)束,然后進(jìn)入中斷響應(yīng)周期;②從微處理器外部的中斷控制邏輯獲得中斷類型號(hào);③當(dāng)前的PSW、CS和IP的內(nèi)容依次壓入堆棧;④清除PSW中的IF位和TF位;⑤把中斷服務(wù)程序的入口地址置入IP和CS,即把地址為4n和4n+1兩個(gè)單元的16位數(shù)作為中斷服務(wù)程序入口的偏移地址置入IP,

把地址為4n+2和4n+3兩個(gè)單元的16位數(shù)作為服務(wù)程序的段地址置入CS。2、非可屏蔽中斷的響應(yīng)操作CPU對(duì)它的響應(yīng)不受IF位的控制,也要等待當(dāng)前指令執(zhí)行結(jié)束。若非可屏蔽中斷請(qǐng)求和可屏蔽中斷請(qǐng)求同時(shí)出現(xiàn),CPU將優(yōu)先響應(yīng)非可屏蔽中斷。非可屏蔽中斷的中斷類型號(hào)固定為2,無(wú)需從外部取回一個(gè)字節(jié)的中斷類型號(hào)操作。非可屏蔽中斷響應(yīng)的其它操作和可屏蔽中斷相同。8.2 8086的中斷系統(tǒng)3、內(nèi)部中斷的響應(yīng)過(guò)程

內(nèi)部中斷響應(yīng)操作有以下共同點(diǎn):①中斷類型號(hào)要么是指令碼給定的,要么是處理器硬件決定的,都不需要從外部邏輯輸入。②沒(méi)有INTA信號(hào)的響應(yīng)周期。③不受IF位的控制,但單步中斷受TF位控制。④除單步中斷之外,其它內(nèi)部中斷都比外部中斷優(yōu)先響應(yīng)。除上述特點(diǎn)外,內(nèi)部中斷響應(yīng)也要執(zhí)行可屏蔽中斷響應(yīng)的③、④和⑤項(xiàng)操作。8.2 8086的中斷系統(tǒng)作業(yè)

P264-265:

8.1、8.4中斷控制器的功能:接收外部中斷請(qǐng)求,向微處理器發(fā)送中斷請(qǐng)求;進(jìn)行優(yōu)先權(quán)級(jí)別的判斷,把當(dāng)前優(yōu)先權(quán)最高的中斷源的中斷類型號(hào)送往微處理器;處理器響應(yīng)中斷,進(jìn)入中斷服務(wù)后,當(dāng)優(yōu)先權(quán)更高的外部中斷請(qǐng)求產(chǎn)生時(shí),中斷控制器能夠?qū)崿F(xiàn)中斷的嵌套;對(duì)于優(yōu)先權(quán)較低的中斷請(qǐng)求則予以屏蔽。8.3 可編程中斷控制器8259A及其應(yīng)用一、8259A的引腳功能CAS2~CAS0:級(jí)聯(lián)線IR7~IR0:外設(shè)向8259A發(fā)出的中斷請(qǐng)求信號(hào)。SP/EN:主從設(shè)備設(shè)定/緩沖器讀寫(xiě)控制。A0:用于選擇內(nèi)部端口。8.3 可編程中斷控制器8259A及其應(yīng)用二、8259A的內(nèi)部結(jié)構(gòu)及功能模塊8259A內(nèi)部結(jié)構(gòu)圖8.3 可編程中斷控制器8259A及其應(yīng)用1、中斷請(qǐng)求寄存器(IRR)IRR是一個(gè)8位的鎖存器,用來(lái)鎖存外部設(shè)備送來(lái)的IR7~IR0中斷請(qǐng)求信號(hào)。當(dāng)外部中斷請(qǐng)求線IRi有中斷請(qǐng)求時(shí),IRR中與之對(duì)應(yīng)的第i位被置1。這個(gè)寄存器的內(nèi)容可以被微處理器讀出。8.3 可編程中斷控制器8259A及其應(yīng)用2、中斷屏蔽寄存器(IMR)IMR是一個(gè)8位的寄存器,用于設(shè)置中斷請(qǐng)求的屏蔽信號(hào)。此寄存器的第i位被置1時(shí),與之對(duì)應(yīng)的外部中斷請(qǐng)求線IRi被屏蔽,不能向微處理器發(fā)出INT信號(hào)。可通過(guò)軟件設(shè)置IMR內(nèi)容,確定每一個(gè)中斷請(qǐng)求的屏蔽狀態(tài)。設(shè)置IMR也可以起到改變中斷請(qǐng)求的優(yōu)先級(jí)的效果。8.3 可編程中斷控制器8259A及其應(yīng)用3、中斷服務(wù)狀態(tài)寄存器(ISR)ISR是一個(gè)8位的寄存器,用于記錄當(dāng)前正在被服務(wù)的所有中斷級(jí),包括尚未服務(wù)完而中途被更高優(yōu)先級(jí)打斷的中斷級(jí)。若微處理器響應(yīng)了IRi中斷請(qǐng)求,則ISR中與之對(duì)應(yīng)的第i位置1。該中斷處理結(jié)束前,要使用指令清除這一位。此寄存器的內(nèi)容可以被微處理器讀出。8.3 可編程中斷控制器8259A及其應(yīng)用4、優(yōu)先權(quán)處理器

優(yōu)先權(quán)處理器用于識(shí)別和管理各中斷請(qǐng)求信號(hào)的優(yōu)先級(jí)別。當(dāng)幾個(gè)中斷請(qǐng)求信號(hào)同時(shí)出現(xiàn)時(shí),微處理器響應(yīng)中斷請(qǐng)求時(shí),把優(yōu)先權(quán)最高的IRR中的“1”送入ISR。當(dāng)8259A正在為某一級(jí)中斷服務(wù)時(shí),若又出現(xiàn)新的中斷請(qǐng)求,由優(yōu)先權(quán)處理器判斷新出現(xiàn)的中斷請(qǐng)求的優(yōu)先級(jí)別并決定是否進(jìn)入多重中斷處理。8.3 可編程中斷控制器8259A及其應(yīng)用5、控制邏輯

在8259A的控制邏輯電路中,有一組初始化命令字寄存器ICW1~ICW4和一組操作命令字寄存器OCW1~OCW3。初始化命令字在系統(tǒng)初始化時(shí)置入,工作過(guò)程中一般保持不變。操作命令字在工作過(guò)程中根據(jù)需要設(shè)定??刂七壿嬰娐钒凑站幊淘O(shè)定的工作方式管理8259A的全部工作。8.3 可編程中斷控制器8259A及其應(yīng)用6、數(shù)據(jù)總線緩沖器

這是一個(gè)8位的雙向三態(tài)緩沖器,是8259A與系統(tǒng)數(shù)據(jù)總線的接口。8259A通過(guò)數(shù)據(jù)總線緩沖器接收微處理器發(fā)來(lái)的控制字,也通過(guò)數(shù)據(jù)總線緩沖器向微處理器發(fā)送中斷類型碼和狀態(tài)信息。8.3 可編程中斷控制器8259A及其應(yīng)用7、讀寫(xiě)控制邏輯D4D3讀寫(xiě)操作0000000111110000001x01xx數(shù)據(jù)總線→OCW2數(shù)據(jù)總線→OCW3數(shù)據(jù)總線→ICW1數(shù)據(jù)總線→ICW2,ICW3,ICW4,OCW100010011IRR或ISR或中斷級(jí)別編碼→數(shù)據(jù)總線IMR→數(shù)據(jù)總線8.3 可編程中斷控制器8259A及其應(yīng)用

系統(tǒng)需要擴(kuò)展而使用多個(gè)8259A時(shí),要有一個(gè)8259A作為主器件而其他的作為從器件。級(jí)聯(lián)緩沖/比較器在級(jí)聯(lián)方式的主/從結(jié)構(gòu)中,用來(lái)控制8259A的級(jí)聯(lián)。與此部件相關(guān)的有3根級(jí)聯(lián)線CAS2~CAS0和1根主從設(shè)備設(shè)定/緩沖器讀寫(xiě)控制線/。8、級(jí)聯(lián)緩沖/比較器

8.3 可編程中斷控制器8259A及其應(yīng)用三、8259A的工作方式1、8259A的工作過(guò)程①中斷源在中斷請(qǐng)求輸入端IR0~IR7上產(chǎn)生中斷請(qǐng)求;②中斷請(qǐng)求被鎖存在IRR中,并經(jīng)IMR“屏蔽”,其結(jié)果送給優(yōu)先權(quán)電路判斷;③控制邏輯接收中斷請(qǐng)求,向微處理器輸出INT信號(hào);④微處理器從INTR引腳接受8259A的INT信號(hào),進(jìn)入連續(xù)兩個(gè)INTA周期;⑤優(yōu)先權(quán)電路檢出優(yōu)先權(quán)最高的中斷請(qǐng)求位,設(shè)置ISR中的對(duì)應(yīng)位;⑦8086CPU讀取該中斷類型號(hào),轉(zhuǎn)移到相應(yīng)的中斷處理程序;⑧在中斷處理結(jié)束前,中斷處理程序向8259A發(fā)送一個(gè)EOI(中斷結(jié)束)命令,使ISR相應(yīng)位復(fù)位,本次中斷到此結(jié)束。⑥若8259A作為主控中斷控制器,則在第一個(gè)INTA周期將級(jí)聯(lián)地址從CAS2~CAS0送出,若8259A是單獨(dú)使用或是由CAS2~CAS0選擇的從屬控制器,就在第二個(gè)INTA周期將一個(gè)中斷類型號(hào)輸出到低8位數(shù)據(jù)總線上;2、8259A的優(yōu)先權(quán)管理(1)固定優(yōu)先級(jí)

這種方式下各個(gè)中斷源的優(yōu)先級(jí)由它所連接的引腳編號(hào)決定,一旦連接,其優(yōu)先級(jí)就已確定。具體有全嵌套方式和特殊全嵌套方式兩種。

全嵌套方式下,中斷優(yōu)先權(quán)的級(jí)別是固定的,IR0優(yōu)先權(quán)最高,IR1~IR6逐級(jí)次之,IR7最低。8.3 可編程中斷控制器8259A及其應(yīng)用

特殊全嵌套方式一般用于8259A級(jí)聯(lián)的情況。系統(tǒng)中有多片8259A,一片為主片,其他為從片。從片上的8個(gè)中斷請(qǐng)求通過(guò)它的INT引腳連接到主片的某個(gè)中斷請(qǐng)求輸入端IRi上。從片上的8個(gè)中斷請(qǐng)求有不同的優(yōu)先級(jí),但從主片看來(lái),這些中斷請(qǐng)求來(lái)自同一個(gè)引腳,屬于同一級(jí)別。假設(shè)從片工作在全嵌套方式,先后收到了兩次中斷請(qǐng)求,而且第二次中斷請(qǐng)求有較高的優(yōu)先級(jí),那么該從片就會(huì)兩次通過(guò)INT引腳向上一級(jí)申請(qǐng)中斷。如果主片采用全嵌套方式,則它不會(huì)響應(yīng)來(lái)自同一個(gè)引腳的第二次中斷請(qǐng)求。而采用特殊全嵌套方式后,就會(huì)響應(yīng)該請(qǐng)求。(2)循環(huán)優(yōu)先級(jí)

這種方式下,各個(gè)中斷申請(qǐng)具有大體相同的優(yōu)先級(jí)。它分為自動(dòng)循環(huán)方式和優(yōu)先權(quán)特殊循環(huán)方式。

在優(yōu)先權(quán)自動(dòng)循環(huán)方式下,某一個(gè)中斷源受到中斷服務(wù)后,它的優(yōu)先權(quán)自動(dòng)降為最低,而與之相鄰的優(yōu)先級(jí)升為最高。8259A在設(shè)置優(yōu)先權(quán)自動(dòng)循環(huán)方式之初,總是自動(dòng)規(guī)定IR0具有最高優(yōu)先權(quán),IR7具有最低優(yōu)先權(quán)。

優(yōu)先權(quán)特殊循環(huán)方式與優(yōu)先權(quán)自動(dòng)循環(huán)方式僅有一處不同:在優(yōu)先權(quán)自動(dòng)循環(huán)方式下,一開(kāi)始的最高優(yōu)先權(quán)固定為IR0;而在優(yōu)先權(quán)特殊循環(huán)方式下,由編程確定最初的最低優(yōu)先權(quán),從而也就確定了最高優(yōu)先權(quán)。8.3 可編程中斷控制器8259A及其應(yīng)用3、8259A中斷屏蔽方式

普通屏蔽方式和特殊屏蔽方式。

普通屏蔽方式是將中斷屏蔽字寫(xiě)入IMR而實(shí)現(xiàn)的。某位為“1”,對(duì)應(yīng)位中斷請(qǐng)求被屏蔽;為“0”則開(kāi)放。

特殊屏蔽方式是用于這樣一種特殊要求的場(chǎng)合:在執(zhí)行較高級(jí)的中斷服務(wù)時(shí),由于某種特殊原因,希望開(kāi)放較低級(jí)別的中斷請(qǐng)求。采用特殊屏蔽方式并用屏蔽字對(duì)IMR中某一位置“1”,會(huì)同時(shí)使ISR中對(duì)應(yīng)位清“0”,這樣不但屏蔽了當(dāng)前正在服務(wù)的較高中斷級(jí),同時(shí)真正開(kāi)放了其他優(yōu)先權(quán)較低的中斷級(jí)。4、8259A中斷結(jié)束方式

中斷結(jié)束的方式:自動(dòng)中斷結(jié)束方式(AEOI)和非自動(dòng)中斷結(jié)束方式(EOI)。

中斷服務(wù)完成時(shí),必須給8259A一個(gè)命令,使這個(gè)中斷級(jí)在ISR中的相應(yīng)位清“0”,表示該中斷處理已經(jīng)結(jié)束。8.3 可編程中斷控制器8259A及其應(yīng)用

自動(dòng)中斷結(jié)束方式(AEOI):

在這種方式下,系統(tǒng)一旦進(jìn)入中斷響應(yīng),8259A就在第二個(gè)中斷響應(yīng)周期INTA信號(hào)的后沿,自動(dòng)將ISR中被響應(yīng)中斷級(jí)的對(duì)應(yīng)位清“0”。這是一種最簡(jiǎn)單的中斷結(jié)束處理方式,可以通過(guò)初始化命令來(lái)設(shè)定。這種方式只能用在系統(tǒng)中只有一個(gè)8259A,且多個(gè)中斷不會(huì)嵌套的情況。8.3 可編程中斷控制器8259A及其應(yīng)用

非自動(dòng)中斷結(jié)束方式(EOI):

在這種工作方式下,從中斷服務(wù)程序返回前,必須在程序里向8259A輸出一個(gè)中斷結(jié)束命令(EOI),把ISR對(duì)應(yīng)位清“0”。具體有兩種:

一般的中斷結(jié)束方式。指令內(nèi)不指定清除ISR中的哪一位,由8259A自動(dòng)選擇優(yōu)先權(quán)最高的位。

特殊的中斷結(jié)束EOI命令。在指令內(nèi)指明要清除ISR中某一位。8.3 可編程中斷控制器8259A及其應(yīng)用5、8259A的查詢工作方式8259A工作在程序查詢方式時(shí),8259A不向微處理器發(fā)INT信號(hào),微處理器通過(guò)查詢8259A了解有無(wú)中斷。查詢字格式為:

I××××W2W1W0I=1表示有中斷請(qǐng)求,I=0表示沒(méi)有中斷請(qǐng)求。W2W1W0表示8259A請(qǐng)求服務(wù)的最高優(yōu)先級(jí)編碼。若有,根據(jù)W2W1W0的值轉(zhuǎn)移到對(duì)應(yīng)的中斷服務(wù)程序去。8.3 可編程中斷控制器8259A及其應(yīng)用6、讀8259A的狀態(tài)8259A內(nèi)部的IRR、ISR和IMR的狀態(tài)可以通過(guò)適當(dāng)?shù)淖x命令讀到微處理器中,以了解8259A的工作情況。上述的各種工作方式,都是通過(guò)8259A的初始化命令字(ICW1~ICW4)和操作命令字(OCW1~OCW3)來(lái)設(shè)定的。8.3 可編程中斷控制器8259A及其應(yīng)用四、8259A的編程8259的編程分為兩個(gè)階段:初始化階段和操作階段。初始化階段應(yīng)該在系統(tǒng)加電或復(fù)位后由初始化程序完成。用輸出指令向8259置入初始化命令。操作階段,用輸出指令向8259發(fā)適當(dāng)?shù)牟僮髅钭?,?shí)現(xiàn)對(duì)8259的狀態(tài)、中斷方式和過(guò)程的控制。8.3 可編程中斷控制器8259A及其應(yīng)用初始化編程的任務(wù):第一、設(shè)定中斷請(qǐng)求信號(hào)的有效形式,即高電平有效,還是低電平向高電平跳變的上升沿有效;第二、是單片工作方式還是級(jí)聯(lián)工作方式;第三、設(shè)定8259管理的中斷類型號(hào)基值,即0級(jí)中斷IR0對(duì)應(yīng)的中斷類型號(hào),當(dāng)中斷請(qǐng)求響應(yīng)時(shí),得到中斷向量表中相應(yīng)的地址;第四、設(shè)定各級(jí)的優(yōu)先排序規(guī)則;第五、設(shè)定一次中斷處理結(jié)束時(shí)的結(jié)束操作規(guī)則。通過(guò)向8259發(fā)初始化命令字ICW實(shí)現(xiàn)。1、初始化命令字ICW8259A有4個(gè)初始化命令字寄存器ICW1~ICW4。8259A開(kāi)始工作時(shí),必須對(duì)它寫(xiě)入初始化命令字,使它按預(yù)定的工作方式工作。8.3 可編程中斷控制器8259A及其應(yīng)用(1)初始化命令字ICW1:格式:設(shè)置ICW1需要I/O地址為A0=0。

D7D6D5D4D3D2D1D0×××1LTIM0SNGLIC4其中:×表示無(wú)關(guān)位,可以是任意值;

LTIM=1:表示有效的中斷請(qǐng)求信號(hào)是高電平,為0是低電平向高電平跳變的上升沿;

SNGL=1:表示單片工作,為0多片級(jí)聯(lián);IC4=1:表示在后面程序還要設(shè)置初始化命令I(lǐng)CW4,為0不再設(shè)置ICW4;D4=1:是ICW1的特征標(biāo)志(2)初始化命令字ICW2

用于設(shè)置中斷類型號(hào)基值。格式為:

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

設(shè)置ICW2的地址為A0=1。初始化命令字ICW2說(shuō)明:①外中斷的中斷類型號(hào)是在中斷需要期間由8259提供的;②

8259是根據(jù)初始化過(guò)程中用ICW2命令置入的中斷類型號(hào)基值來(lái)提供中斷類型號(hào)。③

IR0對(duì)應(yīng)的中斷類型號(hào)是中斷類型號(hào)基值,一定能被8整除的正整數(shù)。8.3 可編程中斷控制器8259A及其應(yīng)用(3)初始化命令字ICW3

專為級(jí)聯(lián)而設(shè)置的。當(dāng)只有一片8259A(即設(shè)ICW1的D1位為1),則不設(shè)置ICW3;當(dāng)多于一片時(shí),將主片和從片的ICW1中D1位設(shè)置為0;且在設(shè)置ICW2之后向A0=1地址設(shè)置的才是ICW3。

D7D6D5D4D3D2D1D0S7S6S5S4S3S2S1S0Si=1,表示對(duì)應(yīng)的IRi引腳輸入來(lái)自從片8259A的INT輸出(即該引腳被從片8259A級(jí)聯(lián));為0表示對(duì)應(yīng)的IRi輸入來(lái)自中斷源。ICW3(從屬)00000該3位的編碼對(duì)應(yīng)從屬8259接主控IR的編號(hào)

例如:從屬芯片接到主控芯片的IR2上,則從屬芯片的ICW3對(duì)應(yīng)的是02H;主片中設(shè)置的ICW3為00000100。

初始化命令字ICW4:只有ICW1的IC4位為1才能設(shè)置ICW4,格式為:

D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIμPM1-中斷自動(dòng)結(jié)束0-中斷正常結(jié)束0×非緩沖方式10緩沖方式/從片11緩沖方式/主片1-特殊全嵌套方法0-正常全嵌套方法1-8086/8088方式0-8080/8085方式8.3 可編程中斷控制器8259A及其應(yīng)用8259初始化命令字設(shè)置次序:ICW1ICW2SNGL=1?ICW3NY地址A0=0(20H)A0=1(21H)A0=1(21H)A0=1(21H)IC4=1?YICW4N2、操作命令字OCW

系統(tǒng)運(yùn)行中可以向8259發(fā)操作命令字,對(duì)8259A管理中斷的方式進(jìn)行修改和設(shè)定;8259A共有OCW1、OCW2和OCW3三個(gè)操作控制字。與初始化命令字ICW不同,OCW不是按照既定流程寫(xiě)入,而是按需要選擇寫(xiě)入。(1)操作控制字OCW1

用于設(shè)置屏蔽狀態(tài)。用輸出指令把OCW1發(fā)送到IMR中斷屏蔽寄存器IMR中為1的位對(duì)應(yīng)的中斷級(jí)的輸入線IR處于被屏蔽狀態(tài)。被屏蔽的中斷級(jí)請(qǐng)求不能使8259的INT輸出端產(chǎn)生有效的請(qǐng)求信號(hào)。設(shè)置OCW1的I/O地址是A0=1。OCW1格式為:D7D6D5D4D3D2D1D01:屏蔽響應(yīng)的IR

0:允許相應(yīng)的IR中斷

例如:將42H寫(xiě)入OCW1,則IR6和IR1被屏蔽,而IR0、IR2、IR3、IR4、IR5和IR7允許中斷。

向地址A0=1發(fā)的OCW1是屏蔽字,對(duì)同一地址的輸入指令將讀回OCW1設(shè)置的屏蔽字。(2)操作控制字OCW2

用來(lái)改變/設(shè)置中斷優(yōu)先級(jí)模式和發(fā)送中斷結(jié)束命令。設(shè)置OCW2地址的是A0=0。格式為:RSLEOI00L2L1L0

指定中斷級(jí)

0000

0011

...

1117

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

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

SL=0表明L2、L1、LO無(wú)意義

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

EOI=1向8259A發(fā)中斷結(jié)束命令;EOI=0這位不起作用(3)操作控制字OCW3

用于管理特殊的屏蔽方式和查詢方法。設(shè)置OCW3地址的是A0=0。

D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS

它的特征標(biāo)識(shí)為D4D3=01ESMM:特殊屏蔽方式,為1允許特殊屏蔽方式SMM:特殊屏蔽方式標(biāo)識(shí),1表示特殊屏蔽方式,0表示非特殊屏蔽方式ESMM為1,SMM為才有意義,否則無(wú)意義。D7D6D5D4D3D2D1D00ESMMSMM01PRRRISP:管理查詢方式,1表示向8259A發(fā)查詢命令

0表示不發(fā)查詢命令RR、RIS:控制讀出8259內(nèi)部寄存器IRR和ISR

的內(nèi)容,10、11讀寄存器IRR、ISR

的命令;00、01無(wú)意義,其中

溫馨提示

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

評(píng)論

0/150

提交評(píng)論