第7章中斷系統(tǒng)及8237ADMA控制器_第1頁
第7章中斷系統(tǒng)及8237ADMA控制器_第2頁
第7章中斷系統(tǒng)及8237ADMA控制器_第3頁
第7章中斷系統(tǒng)及8237ADMA控制器_第4頁
第7章中斷系統(tǒng)及8237ADMA控制器_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第7 7章章 中斷系統(tǒng)及中斷系統(tǒng)及8237ADMA8237ADMA控制器控制器教學(xué)內(nèi)容教學(xué)內(nèi)容 7.1 中斷系統(tǒng) 7.1.1 中斷的概念及其作用 7.1.2 中斷處理系統(tǒng) 7.2 8086CPU的中斷系統(tǒng) 7.2.1 8086CPU的中斷源 7.2.2 8086CPU的中斷響應(yīng)過程 7.2.3 中斷向量表 7.2.4 中斷程序設(shè)計 7.3 中斷控制器Intel8259A教學(xué)目標(biāo)教學(xué)目標(biāo) 掌握8086中斷系統(tǒng)結(jié)構(gòu),特點及使用。重點內(nèi)容重點內(nèi)容 1 中斷的概念及其作用。 2 中斷處理(中斷源識別、優(yōu)先級判斷、嵌套管理、處理過程)。 3 8086CPU中斷系統(tǒng)。難點內(nèi)容難點內(nèi)容 8086CPU中斷

2、系統(tǒng)。學(xué)時數(shù)學(xué)時數(shù) 4學(xué)時7.1 7.1 中斷系統(tǒng)中斷系統(tǒng)7.1.1 7.1.1 中斷的概念及其作用中斷的概念及其作用 1、中斷的概念 中斷計算機在執(zhí)行正常程序的過程中出現(xiàn)內(nèi)部或外部某些事件的請求時,CPU暫時停止當(dāng)前程序的正常執(zhí)行,轉(zhuǎn)去執(zhí)行請求事件的處理操作,CPU在事件處理結(jié)束后再回到被暫時中斷了的程序繼續(xù)往下執(zhí)行。 2、中斷系統(tǒng)的作用 (1)并行處理 (2)實時處理 (3)故障處理7.1.2 7.1.2 中斷處理系統(tǒng)中斷處理系統(tǒng) 一個完整的中斷處理系統(tǒng)必須實現(xiàn)以下功能: 中斷源識別、中斷優(yōu)先級判斷、中斷嵌套管理以及CPU的中斷響應(yīng)、中斷服務(wù)和中斷返回。 1、中斷源識別 中斷源引起程序中斷

3、的事件。 在具有多個中斷源的系統(tǒng)中,CPU需要識別哪一個中斷源有中斷請求。常用的中斷技術(shù)有單線中斷、多線中斷和向量中斷三種。 單線中斷通過查詢中斷源提供中斷地址信息。 多線中斷每個中斷源有一根輸入線,由于CPU引腳線有限而只能管理少量的中斷源。 向量中斷由每個中斷源經(jīng)接口電路向CPU提供中斷源的設(shè)備標(biāo)志,CPU將程序轉(zhuǎn)向相應(yīng)中斷設(shè)備的中斷處理。向量中斷技術(shù)如圖7-2所示,當(dāng)CPU響應(yīng)中斷后,由中斷源提供中斷地址信息,引導(dǎo)程序進入中斷服務(wù)程序的入口。 2、中斷優(yōu)先級判斷 中斷優(yōu)先級判斷的具體方法可分為:軟件查詢、硬件排隊和專用中斷控制器。 (1)軟件查詢方式 在CPU響應(yīng)中斷后,通過用戶編程采用

4、程序查詢的方法確定中斷源的優(yōu)先級。查詢的順序決定了各中斷源的優(yōu)先級。 軟件查詢方法的優(yōu)點是接口電路簡單,且優(yōu)先權(quán)次序可以按查詢的先后順序而改變。缺點是中斷源較多時,由查詢轉(zhuǎn)到相應(yīng)中斷服務(wù)程序的時間較長,因而,此方法一般用于中斷源較少、實時性要求不高的場合。 (2)硬件排隊方式 圖7-5是一個用硬件編碼器和比較器構(gòu)成的優(yōu)先權(quán)排除電路。 其中共有8個中斷源,任一個中斷源有中斷請求時,通過“或”門可以產(chǎn)生一個中斷請求信號。 如果當(dāng)前不在中斷處理中,則“與”門2打開,中斷請求“與”門2進入CPU。 如果當(dāng)前正在某一中斷處理中(即已響應(yīng)了一個中斷請求),但此中斷源的優(yōu)先級低于正在請求中斷的中斷源,則“與

5、”門1打開,中斷請求“與”門1進入CPU;若正在處理中的中斷源的優(yōu)先級高于正在請求中斷的中斷源,則這個請求中斷的中斷源被阻隔,暫時無法進入CPU,將等待正在處理的中斷結(jié)束后才能進入CPU。 (3)專用中斷控制器 3、中斷嵌套管理 中斷嵌套CPU響應(yīng)了一個中斷請求,正在中斷處理中,又有一個中斷源發(fā)出中斷請求。 若發(fā)出中斷請求的中斷源的優(yōu)先權(quán)級別更高,中斷系統(tǒng)使CPU暫停當(dāng)前的中斷服務(wù),轉(zhuǎn)而響應(yīng)和處理中斷優(yōu)先級更高的中斷請求,處理結(jié)束后,再返回原優(yōu)先級較低的中斷服務(wù)。 若發(fā)出中斷請求的中斷源的優(yōu)先權(quán)級別低于當(dāng)前正在處理的中斷源,CPU不予響應(yīng),等待當(dāng)前中斷處理結(jié)束后,再予以響應(yīng)。 4、中斷處理過程

6、 一般包括中斷請求、中斷優(yōu)先級判斷、中斷響應(yīng)、中斷服務(wù)和中斷返回5個基本階段。7.2 8086CPU7.2 8086CPU中斷系統(tǒng)中斷系統(tǒng)7.2.1 8086CPU7.2.1 8086CPU的中斷源的中斷源 8086CPU的中斷系統(tǒng)可處理256個中斷,可分為兩大類:外部中斷和內(nèi)部中斷。 1、中斷源的類型 (1)外部中斷(硬件中斷) 分為非屏蔽中斷和可屏蔽中斷兩種。 1)非屏蔽中斷 通過NMI引腳進入CPU。只要NMI引腳有中斷請求,CPU就必須響應(yīng),常用作處理重大故障和緊急情況。 2)可屏蔽中斷 通過引腳INTR進入CPU。CPU對此中斷請求是否響應(yīng)由標(biāo)志位IF決定,當(dāng)IF=1時才能響應(yīng)。 (

7、2)內(nèi)部中斷(軟件中斷) 1)單步中斷中斷類型號是1。當(dāng)標(biāo)志位TF=1時,CPU每執(zhí)行一條指令就產(chǎn)生一個單步中斷。 2)除法出錯中斷中斷類型號是0。當(dāng)除數(shù)為0或商超出了限定范圍時產(chǎn)生此中斷。 3)斷點中斷中斷類型號是3。用于在程序調(diào)試時設(shè)置斷點。 4)溢出中斷中斷類型號是4。指令為INTO,如果該指令的上一條指令使標(biāo)志位OF=1,則在執(zhí)行指令I(lǐng)NTO時產(chǎn)生溢出中斷。 5)指令中斷中斷類型號是n。指令格式為INT n。指令中斷和INT、INTO一樣,都能引起CPU的中斷響應(yīng),但INT、INTO為單字節(jié)指令,且中斷類型號是固定的,而INT n是雙字節(jié)指令,類型號n是指令給出的。 內(nèi)部中斷的特點:

8、內(nèi)部中斷的類型號都是固定的,或是在中斷指令中給定的。 不需要進入INTA總線周期獲取類型號; 不受中斷允許標(biāo)志位IF的影響; 用一條指令或由某個標(biāo)志位啟動進入中斷處理程序,這樣 的中斷沒有隨機性。 2、中斷源的優(yōu)先級7.2.2 8086CPU7.2.2 8086CPU的中斷響應(yīng)過程的中斷響應(yīng)過程 7.2.2 8086CPU7.2.2 8086CPU的中斷響應(yīng)過程的中斷響應(yīng)過程 1、內(nèi)部中斷和非屏蔽中斷的響應(yīng)及處理過程 1) 中斷請求與檢測。 2) 確定中斷向量地址。將中斷類型號乘以4獲得中斷向量地址。 3)保護各標(biāo)志位狀態(tài)和屏蔽INTR中斷和單步中斷。將標(biāo)志寄存器入棧,并清除IF、TF標(biāo)志。

9、4)保存斷點。將斷點地址(即IP和CS)入棧。 5)執(zhí)行中斷服務(wù)程序。從中斷向量表中取出中斷服務(wù)程序的入口地址送到IP和CS,在中斷服務(wù)程序中要保護現(xiàn)場。 6)中斷返回。執(zhí)行IRET指令,從堆棧中取回斷點地址送IP和CS。 2、可屏蔽中斷 1) 中斷請求與檢測。CPU每執(zhí)行一條指令后都會檢測INTR上有無中斷請求。 2) 判斷是否響應(yīng)。如果IF=1,則在執(zhí)行完當(dāng)前指令后響應(yīng)中斷請求。 3)確定中斷向量地址。執(zhí)行連續(xù)兩個中斷響應(yīng)總線周期,第一個周期通知中斷源中斷請求已被響應(yīng),第二個周期中斷源將中斷類型號送上數(shù)據(jù)總線的低8位,CPU在T4的前沿從數(shù)據(jù)總線上獲得中斷類型號。然后將中斷類型號乘以4得到

10、中斷向量地址。 以下4)、 5)、 6)與內(nèi)部與非屏蔽中斷相同。 4)保存斷點。將斷點地址(即IP和CS )入棧。 5)執(zhí)行中斷服務(wù)程序。從中斷向量表中取出中斷服務(wù)程序的入口地址送到IP和CS,在中斷服務(wù)程序中要保護現(xiàn)場。 6)中斷返回。執(zhí)行IRET指令,從堆棧中取回斷點地址送IP和CS。7.2.3 7.2.3 中斷向量表中斷向量表 中斷向量是中斷服務(wù)程序入口地址。 中斷向量表是中斷服務(wù)程序入口地址表。 中斷向量地址是中斷向量在中斷向量表中的位置。 中斷向量地址與中斷類型號之間的關(guān)系可表示為:中斷向量地址中斷類型號*4 。 8086中斷系統(tǒng)最多可有256個中斷源,每個中斷有一個中斷類型號(02

11、55),每個類型號對應(yīng)一個中斷向量,每個中斷向量4個字節(jié),前兩個字節(jié)是偏移量IP,后兩個字節(jié)是段基址CS,256個中斷向量占用最低1KB內(nèi)存,即03FFH。中斷向量表如圖7-10所示。 8086的前5個中斷向量是專用的,接下來的27個中斷向量由操作系統(tǒng)使用,剩下的中斷向量可以由用戶使用。 例7-1某中斷源的類型號為34,且已知部分中斷向量表如圖7-11所示,試求中斷服務(wù)程序入口的物理地址。 解:34*4=136 即中斷向量地址為: 88H 查中斷向量表得中斷向量為: A123H:B678H 中斷服務(wù)程序入口的物理地址為: AC8A8H 7.2.4 7.2.4 中斷程序設(shè)計中斷程序設(shè)計 中斷程序

12、設(shè)計分為主程序設(shè)計和中斷服務(wù)子程序設(shè)計兩部分:主程序用來完成相關(guān)的初始化工作,為實現(xiàn)中斷做好準備;中斷服務(wù)子程序用來完成相關(guān)的中斷處理工作。 1、主程序設(shè)計 初始化工作分三部分: CPU本身工作的初始化 中斷控制器8259A的初始化 通用接口的初始化 2、中斷服務(wù)子程序設(shè)計 中斷服務(wù)子程序含有以下七個部分: (1)保護中斷時的現(xiàn)場。 (2)若允許中斷嵌套,則設(shè)置開中斷。 (3)執(zhí)行中斷處理程序。 (4)設(shè)置關(guān)中斷, (5)給中斷命令寄存器送中斷結(jié)束命令EOI。 (6)恢復(fù)中斷時的現(xiàn)場。 (7)用中斷返回指令I(lǐng)RET返回主程序。 7.3 7.3 中斷控制器中斷控制器Intel8259AIntel

13、8259A 8259的功能: 1)具有864級的中斷優(yōu)先權(quán)管理功能(多于8級時,必須通過級連擴展實現(xiàn))。 2)每一級都可以通過編程實現(xiàn)中斷屏蔽或開放。 3)在中斷響應(yīng)周期,8259A可以自動提供相應(yīng)的中斷類型號。 4)可以通過編程來選擇8259A的各種工作方式及任意設(shè)定中斷類型號。7.3.1 8259A7.3.1 8259A的引腳信號及結(jié)構(gòu)的引腳信號及結(jié)構(gòu) 1.8259A的外部引腳信號及結(jié)構(gòu) 引腳信號如圖712b,引腳信號的作用見表72。 2. 8259A的內(nèi)部結(jié)構(gòu) (1)數(shù)據(jù)總線緩沖器 用于與CPU進行數(shù)據(jù)交換。 (2)讀/寫控制邏輯 用于實現(xiàn)讀/寫操作。 (3)級聯(lián)緩沖/比較器 用于控制多

14、片8259A的級聯(lián),使得中斷級可以最多擴展至64級。擴展時用一片主片,多片從片。 (4)中斷請求寄存器IRR 具有鎖存功能的8位寄存器,用于寄存所有外部中斷請求。當(dāng)8個中斷請求IR0IR7中任何一個的輸入上升為高電平時,IRR中相應(yīng)的位置1,該位在中斷響應(yīng)過程中被清除。 (5)中斷服務(wù)寄存器ISR 8位寄存器,用于存放正在被服務(wù)的中斷級。在中斷響應(yīng)的第一個INTA周期將ISR相應(yīng)位置1,同時對應(yīng)的IRR位復(fù)位。ISR的復(fù)位由8259A中斷結(jié)束方式?jīng)Q定。若是自動結(jié)束方式,則由CPU在第二個INTA周期后沿將其復(fù)位;若是非自動結(jié)束方式,則由CPU發(fā)送的中斷結(jié)命令將其復(fù)位。允許多重中斷時,ISR多位

15、同時被置成1。 (6)中斷屏蔽寄存器IMR 8位寄存器,用于寄存要屏蔽的中斷級。該寄存器的每一位對應(yīng)一個中斷級,1表示屏蔽該級中斷請求,0表示開放該級中斷請求。寄存器內(nèi)容可以通過軟件以屏蔽命令設(shè)置。各屏蔽位相互獨立(屏蔽高優(yōu)先級的中斷不會影響低優(yōu)先級的中斷)。 (7)優(yōu)先權(quán)比較器PR 用于存放IRR中各請求信號的優(yōu)先級,并排隊判優(yōu),若中斷允許嵌套時,所選最高優(yōu)先級還要和ISR中內(nèi)容比較,以實現(xiàn)高優(yōu)先級的嵌套中斷。 (8)中斷控制邏輯 控制邏輯是8259A的內(nèi)部控制器。根據(jù)中斷請求寄存器IRR的置位情況和中斷屏蔽寄存器IMR設(shè)置的情況,通過優(yōu)先級判別器PR判定優(yōu)先級,向8259A內(nèi)部及其他部件發(fā)

16、出控制信號,并向CPU發(fā)出中斷請求信號INT,接收CPU的中斷響應(yīng)信號 ,使中斷服務(wù)寄存器ISR相應(yīng)位置1,并使中斷請求寄存器IRR相應(yīng)位清0。 當(dāng)CPU第二個 信號到來,控制8259A送出中斷類型號,使CPU轉(zhuǎn)入中斷服務(wù)子程序。如果方式控制字ICW4的中斷自動結(jié)束位為1,則在第二個 脈沖結(jié)束時,將8259A中斷服務(wù)寄存器ISR的相應(yīng)位清0。INTAINTAINTA7.3.2 8259A的工作方式 8259A共有6種工作方式。 1.中斷請求方式 (1)邊沿觸發(fā)器方式 中斷請求輸入端(IR0IR7)的上升沿實現(xiàn)中斷請求。 (2)電平觸發(fā)方式 中斷請求輸入端(IR0IR7)的高電平實現(xiàn)中斷請求。要

17、求高電平保持到中斷請求被響應(yīng),且在中斷返回前撤除,否則將引起又一次中斷。 (3)中斷查詢方式 8259A不向CPU發(fā)INT信號,由CPU不斷查詢8259A,當(dāng)發(fā)現(xiàn)有中斷請求時,就轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。查詢時,系統(tǒng)先關(guān)中斷,然后將查詢方式命令字OCW3送到8259A,再對8259A執(zhí)行一條輸入指令,8259A便將一個如下格式的查詢字送上數(shù)據(jù)總線。 D7 D6 D5 D4 D3 D2 D1 D0 I W2 W1 W0 I=1表示有設(shè)備請求中斷服務(wù)。W2W1W0組成的代碼表示當(dāng)前中斷請求的最高優(yōu)先級。 2.中斷源屏蔽方式 (1)普通屏蔽方式 在中斷屏蔽寄存器IMR中寫入中斷屏蔽字。1使對應(yīng)中斷輸入

18、被屏蔽,0則對應(yīng)中斷輸入被允許。 (2)特殊屏蔽方式 用于屏蔽當(dāng)前已響應(yīng)的中斷,并將ISR中的對應(yīng)位清0,以開放其他優(yōu)先權(quán)較低的中斷輸入。在進入中斷后在中斷屏蔽寄存器IMR中將已響應(yīng)的中斷輸入對應(yīng)位置1,使當(dāng)前已響應(yīng)的中斷被屏蔽,其他優(yōu)先權(quán)較低的中斷輸入被開放。注意應(yīng)先設(shè)置特殊屏蔽方式,然后建立屏蔽信息。在中斷服務(wù)程序結(jié)束時應(yīng)退出特殊屏蔽方式。 3.中斷嵌套方式 (1)全嵌套方式 初始化后的默認工作方式。 IR0的優(yōu)先級最高,IR0IR7優(yōu)先級依次降低。只有高優(yōu)先級的中斷請求可以中斷低優(yōu)先級的中斷請求。一個中斷請求被響應(yīng)后,它自身(即同級)的再次請求也不能被響應(yīng)。 (2)特殊全嵌套方式 與全嵌

19、套方式基本一樣,不同之處僅為一個中斷請求被響應(yīng)后,它自身(即同級)的再次請求還能被響應(yīng)。這是為了在級聯(lián)的情況下,從片中優(yōu)先級更高的中斷請求能夠被響應(yīng)。 4.優(yōu)先級循環(huán)方式 (1)優(yōu)先級自動循環(huán)方式 在這種方式下,初始時IR0的優(yōu)先級最高,IR0IR7優(yōu)先級依次降低。當(dāng)某個中斷請求被響應(yīng)且中斷服務(wù)結(jié)束后,它的優(yōu)先級便降為最低,緊隨其后的那個優(yōu)先級自動上升為最高優(yōu)先級。 例如當(dāng)前IR3優(yōu)先級最高,IR2優(yōu)先級最低,當(dāng)IR4、IR6同時有請求時,響應(yīng)IR4,在IR4被服務(wù)后,IR4的優(yōu)先級降為最低,而IR5升為最高,其余的依次為IR6、IR7、IR0、IR1、IR2、IR3。 (2)優(yōu)先級特殊循環(huán)方

20、式 在設(shè)置了優(yōu)先級特殊循環(huán)方式后,由編程來決定初始最高優(yōu)先級,即通過指定最低優(yōu)先級來決定最高優(yōu)先級,例如指定IR4為最低優(yōu)先級,則IR5就是最高優(yōu)先級。其余同優(yōu)先級自動循環(huán)方式。 5.中斷結(jié)束方式 所謂中斷結(jié)束處理,就是對中斷服務(wù)寄存器ISR中對應(yīng)位的清0處理,如果ISR中的對應(yīng)位不清0,中斷優(yōu)先權(quán)的判別就會不正常,因為ISR中的1表示該中斷請求正在服務(wù)中。 (1)中斷自動結(jié)束方式 當(dāng)CPU進入中斷響應(yīng)周期,并在發(fā)出第二個INTA脈沖后自動將ISR中對應(yīng)的位次清0,實現(xiàn)中斷結(jié)束的自動處理。由于在一個中斷請求正在響應(yīng)中,ISR中的對應(yīng)位已清0,因此僅適用于只有一片8259A且不會有中斷嵌套情況發(fā)

21、生的場合。 (2)中斷非自動結(jié)束方式 1)普通EOI結(jié)束方式。用于全嵌套工作方式下,在這種情況下,中斷服務(wù)寄存器可以確定哪一個中斷是最后響應(yīng)和處理的。CPU向8259A傳送EOI結(jié)束命令字,就會自動將ISR寄存器中級別最高的置1位清0。注意EOI結(jié)束命令字應(yīng)放在返回指令I(lǐng)RET前且緊靠著,否則會出錯。 2)特殊EOI結(jié)束方式。用于非全嵌套工作方式,在這種情況下,中斷服務(wù)寄存器無法確定哪一個中斷是最后響應(yīng)和處理的。特殊EOI結(jié)束命令字中要將當(dāng)前準備清除的中斷傳給8259A,8259A將ISR中指定位清0。 級聯(lián)方式下須使用非自動結(jié)束方式,在中斷結(jié)束時,要對主片和從片分別發(fā)中斷結(jié)束命令。 6.讀8

22、259A狀態(tài)方式 通過讀命令取出8259A中IRR、ISR和IMR等寄存器中狀態(tài)。7.3.3 8259A的編程 8259A的編程分為初始化編程和工作方式編程。初始化編程寫初始化命令字ICW1ICW4到8259A中,須在正常操作前完成。工作方式編程寫操作命令字OCW1OCW3到8259A中,可在工作開始前寫入,也可以在工作期間寫入。 1.初始化命令字及其編程 初始化命令字共有4個:ICW1ICW4。必須嚴格按圖713所示的輸入流程進行。 (1)芯片控制初始化命令字ICW1 三個作用: 1)設(shè)定中斷請求信號觸發(fā)形式,高電平觸發(fā)或上升沿觸發(fā)。 2)設(shè)定8259A工作方式,單片或級聯(lián)。 3)清除中斷屏

23、蔽寄存器IMR,設(shè)置優(yōu)先權(quán)排隊,使IR0優(yōu)先權(quán)最高,IR1次之,依此類推,IR7最低。 ICW1命令字格式如圖714所示。 ICW1命令字輸入條件:寫入命令字的端口地址A0=0,命令字的特征位D4=1。 IC4:由D0定義,指出初始化過程是否要寫入ICW4(若不寫入則ICW4所有位均為0,在80X86系統(tǒng)中必須使用ICW4)。 LTIM:由D3定義,指出8個中斷信號作用的有效觸發(fā)方式。D3=0,為上升沿觸發(fā); D3=1,為高電平觸發(fā)。 SNGL:由D1定義,指出單片或多片級聯(lián)方式,D1=1指出系統(tǒng)使用的8259A初始化編程的一部分。 其中,D2和D5D8只在8080/8085微機系統(tǒng)中有用,在

24、80X86系統(tǒng)中不起作用。 (2)中斷類型初始化命令字ICW2 用來設(shè)定8259A中斷類型號基值,即IR0對應(yīng)的中斷類型號。命令字格式如圖715所示。 ICW2命令字輸入條件:緊接著ICW1寫入,且寫入地址A0=1。 ICW2中的低3位D2D0是由系統(tǒng)自動填入中斷請求輸入端IR0IR7的編碼。 ICW2中的高5位D7D3是由用戶編程寫入T7T3若ICW2寫入40H時,則IR0IR7對應(yīng)的中斷類型號分別為40H、 41H、 42H、 43H、 44H、 45H、 46H、 47H。 (3)主/從片初始化命令字ICW3 ICW3的作用是定義系統(tǒng)中主片、從片的級聯(lián),對主8259A和從8259A進行初

25、始化。 ICW3命令字輸入條件:僅當(dāng)多片8259A級聯(lián)時,且寫入命令字的端口地址位A0=1,主、從片都須寫入ICW3。 主片ICW3的D7D0表示IR7IR0輸入上有無從片,1表示有。 從片ICW3的ID2ID0為對應(yīng)于主片IR7IR0級聯(lián)的從片的編碼。 (4)方式控制初始化命令字ICW4 用于定義CPU模式、設(shè)定嵌套方式、設(shè)定結(jié)束操作方式,其命令字格式如圖717所示。 ICW4命令字輸入條件:僅當(dāng)ICW1中D0(IC4)為1時才需要寫入ICW4,且寫入命令字的端口地址A0=1。 設(shè)置CPU類型:由D0定義,當(dāng)8259A連接到80X86時D0必須為1。 設(shè)置中斷結(jié)束方式:由D1定義,當(dāng)D1=1

26、時,表示該中斷自動結(jié)束(AEOI),即當(dāng)該中斷請求獲得響應(yīng)后, 不必在中斷處理程序中使用中斷結(jié)束(EOI)命令,而自動使中斷服務(wù)寄存器(ISR)復(fù)位;當(dāng)D1=0時,必須由中斷服務(wù)程序送出EOI命令使ISR復(fù)位。 設(shè)置緩沖器:由D3、D2定義,D3=0時表示非緩沖方式,說明本片8259A和系統(tǒng)數(shù)據(jù)總線之間沒有緩沖器;當(dāng)D3D2=10時,本片為緩沖方式且是從片;當(dāng)D3D2=11時,本片為緩沖方式且是主片。使用緩沖方式時 為輸出,用來驅(qū)動緩沖器; 使用非緩沖方式時 為輸入,用來設(shè)置該片8259A為主片(1)/從片(0)。EN/SPEN/SP 2.操作命令字及其編程 8259A共有OCW1OCW3三個

27、操作命令字,設(shè)置時對端口地址有嚴格規(guī)定:設(shè)置OCW1必須采用奇地址端口(A0=1),設(shè)置OCW2和OCW3必須采用偶地址端口(A0=0)。其中OCW2和OCW3是通過命令字本身的D4D3位來區(qū)分:D4D3=00時表示OCW2,D4D3=01時表示OCW3。 設(shè)置嵌套方式:由D4定義,當(dāng)D4(SFNM)置1時,表示8259A處于多片中斷控制系統(tǒng)中,其優(yōu)先級順序采用特殊全嵌套方式;當(dāng)D4(SFNM)置0時,則表示其優(yōu)先級采用全嵌套方式。 D7D5未用,一般取值為0。 (1)屏蔽操作命令字OCW1 OCW1命令字格式如圖718所示。此命令字寫入中斷屏蔽寄存器IMR,寫入時端口地址A0=1。 D7D0

28、分別對應(yīng)輸入IR7IR0,0為允許,1為禁止。 OCW1命令字也可以從端口地址A0=1讀入。 (2)中斷方式命令字OCW2 OCW2命令字格式如圖719所示。該命令字用于設(shè)置優(yōu)先級是否循環(huán)、循環(huán)的方式及中斷結(jié)束的方式。 設(shè)置OCW2的條件:命令字中標(biāo)志位D3D4=00,寫入的端口地址A0=0。 循環(huán)方式設(shè)置:由D7定義,該位若為1,表示采用優(yōu)先級循環(huán)方式;若為0,則為非循環(huán)方式。 中斷結(jié)束命令設(shè)置:由D5定義,該位若為1則表明OCW2操作命令的任務(wù)之一是用作結(jié)束中斷命令,若為0則不作為結(jié)束中斷命令。 末三位有效性設(shè)置:由D6定義,該位若為1,末三位L2L0有效,若為0,則L2L0無效。當(dāng)用OCW2發(fā)出特殊的中斷結(jié)束命令時,具體要清除ISR中的哪一位可以由L2L0指出。另外,當(dāng)用OCW2發(fā)出特殊的優(yōu)先級循環(huán)方式命令字時,循環(huán)開始時究竟哪個中斷的優(yōu)先級最低也是由L2L0來指出。 (3)狀態(tài)操作命令字OCW3 用于設(shè)置查詢方式、設(shè)置或撤銷特殊屏蔽方式、以及用來讀8259A中中斷請求寄存器IRR、中斷服務(wù)寄存器ISR的當(dāng)前狀態(tài)。命令字格式如圖720所示。 設(shè)置OCW3的條件:命令字中標(biāo)志位D4D3=01,寫入的端口地址A0=0。 設(shè)置查詢方式:由D2定義,該位若為1,表明8259A采用中斷查詢方式,可以使CPU用程序隨時查詢中斷源(讀出最高優(yōu)先級的中斷請求

溫馨提示

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

評論

0/150

提交評論