




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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)過(guò)程 7.2.3 中斷向量表 7.2.4 中斷程序設(shè)計(jì) 7.3 中斷控制器Intel8259A教學(xué)目標(biāo)教學(xué)目標(biāo) 掌握8086中斷系統(tǒng)結(jié)構(gòu),特點(diǎn)及使用。重點(diǎn)內(nèi)容重點(diǎn)內(nèi)容 1 中斷的概念及其作用。 2 中斷處理(中斷源識(shí)別、優(yōu)先級(jí)判斷、嵌套管理、處理過(guò)程)。 3 8086CPU中斷系統(tǒng)。難點(diǎn)內(nèi)容難點(diǎn)內(nèi)容 8086CPU中斷
2、系統(tǒng)。學(xué)時(shí)數(shù)學(xué)時(shí)數(shù) 4學(xué)時(shí)7.1 7.1 中斷系統(tǒng)中斷系統(tǒng)7.1.1 7.1.1 中斷的概念及其作用中斷的概念及其作用 1、中斷的概念 中斷計(jì)算機(jī)在執(zhí)行正常程序的過(guò)程中出現(xiàn)內(nèi)部或外部某些事件的請(qǐng)求時(shí),CPU暫時(shí)停止當(dāng)前程序的正常執(zhí)行,轉(zhuǎn)去執(zhí)行請(qǐng)求事件的處理操作,CPU在事件處理結(jié)束后再回到被暫時(shí)中斷了的程序繼續(xù)往下執(zhí)行。 2、中斷系統(tǒng)的作用 (1)并行處理 (2)實(shí)時(shí)處理 (3)故障處理7.1.2 7.1.2 中斷處理系統(tǒng)中斷處理系統(tǒng) 一個(gè)完整的中斷處理系統(tǒng)必須實(shí)現(xiàn)以下功能: 中斷源識(shí)別、中斷優(yōu)先級(jí)判斷、中斷嵌套管理以及CPU的中斷響應(yīng)、中斷服務(wù)和中斷返回。 1、中斷源識(shí)別 中斷源引起程序中斷
3、的事件。 在具有多個(gè)中斷源的系統(tǒng)中,CPU需要識(shí)別哪一個(gè)中斷源有中斷請(qǐng)求。常用的中斷技術(shù)有單線(xiàn)中斷、多線(xiàn)中斷和向量中斷三種。 單線(xiàn)中斷通過(guò)查詢(xún)中斷源提供中斷地址信息。 多線(xiàn)中斷每個(gè)中斷源有一根輸入線(xiàn),由于CPU引腳線(xiàn)有限而只能管理少量的中斷源。 向量中斷由每個(gè)中斷源經(jīng)接口電路向CPU提供中斷源的設(shè)備標(biāo)志,CPU將程序轉(zhuǎn)向相應(yīng)中斷設(shè)備的中斷處理。向量中斷技術(shù)如圖7-2所示,當(dāng)CPU響應(yīng)中斷后,由中斷源提供中斷地址信息,引導(dǎo)程序進(jìn)入中斷服務(wù)程序的入口。 2、中斷優(yōu)先級(jí)判斷 中斷優(yōu)先級(jí)判斷的具體方法可分為:軟件查詢(xún)、硬件排隊(duì)和專(zhuān)用中斷控制器。 (1)軟件查詢(xún)方式 在CPU響應(yīng)中斷后,通過(guò)用戶(hù)編程采用
4、程序查詢(xún)的方法確定中斷源的優(yōu)先級(jí)。查詢(xún)的順序決定了各中斷源的優(yōu)先級(jí)。 軟件查詢(xún)方法的優(yōu)點(diǎn)是接口電路簡(jiǎn)單,且優(yōu)先權(quán)次序可以按查詢(xún)的先后順序而改變。缺點(diǎn)是中斷源較多時(shí),由查詢(xún)轉(zhuǎn)到相應(yīng)中斷服務(wù)程序的時(shí)間較長(zhǎng),因而,此方法一般用于中斷源較少、實(shí)時(shí)性要求不高的場(chǎng)合。 (2)硬件排隊(duì)方式 圖7-5是一個(gè)用硬件編碼器和比較器構(gòu)成的優(yōu)先權(quán)排除電路。 其中共有8個(gè)中斷源,任一個(gè)中斷源有中斷請(qǐng)求時(shí),通過(guò)“或”門(mén)可以產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào)。 如果當(dāng)前不在中斷處理中,則“與”門(mén)2打開(kāi),中斷請(qǐng)求“與”門(mén)2進(jìn)入CPU。 如果當(dāng)前正在某一中斷處理中(即已響應(yīng)了一個(gè)中斷請(qǐng)求),但此中斷源的優(yōu)先級(jí)低于正在請(qǐng)求中斷的中斷源,則“與
5、”門(mén)1打開(kāi),中斷請(qǐng)求“與”門(mén)1進(jìn)入CPU;若正在處理中的中斷源的優(yōu)先級(jí)高于正在請(qǐng)求中斷的中斷源,則這個(gè)請(qǐng)求中斷的中斷源被阻隔,暫時(shí)無(wú)法進(jìn)入CPU,將等待正在處理的中斷結(jié)束后才能進(jìn)入CPU。 (3)專(zhuān)用中斷控制器 3、中斷嵌套管理 中斷嵌套CPU響應(yīng)了一個(gè)中斷請(qǐng)求,正在中斷處理中,又有一個(gè)中斷源發(fā)出中斷請(qǐng)求。 若發(fā)出中斷請(qǐng)求的中斷源的優(yōu)先權(quán)級(jí)別更高,中斷系統(tǒng)使CPU暫停當(dāng)前的中斷服務(wù),轉(zhuǎn)而響應(yīng)和處理中斷優(yōu)先級(jí)更高的中斷請(qǐng)求,處理結(jié)束后,再返回原優(yōu)先級(jí)較低的中斷服務(wù)。 若發(fā)出中斷請(qǐng)求的中斷源的優(yōu)先權(quán)級(jí)別低于當(dāng)前正在處理的中斷源,CPU不予響應(yīng),等待當(dāng)前中斷處理結(jié)束后,再予以響應(yīng)。 4、中斷處理過(guò)程
6、 一般包括中斷請(qǐng)求、中斷優(yōu)先級(jí)判斷、中斷響應(yīng)、中斷服務(wù)和中斷返回5個(gè)基本階段。7.2 8086CPU7.2 8086CPU中斷系統(tǒng)中斷系統(tǒng)7.2.1 8086CPU7.2.1 8086CPU的中斷源的中斷源 8086CPU的中斷系統(tǒng)可處理256個(gè)中斷,可分為兩大類(lèi):外部中斷和內(nèi)部中斷。 1、中斷源的類(lèi)型 (1)外部中斷(硬件中斷) 分為非屏蔽中斷和可屏蔽中斷兩種。 1)非屏蔽中斷 通過(guò)NMI引腳進(jìn)入CPU。只要NMI引腳有中斷請(qǐng)求,CPU就必須響應(yīng),常用作處理重大故障和緊急情況。 2)可屏蔽中斷 通過(guò)引腳INTR進(jìn)入CPU。CPU對(duì)此中斷請(qǐng)求是否響應(yīng)由標(biāo)志位IF決定,當(dāng)IF=1時(shí)才能響應(yīng)。 (
7、2)內(nèi)部中斷(軟件中斷) 1)單步中斷中斷類(lèi)型號(hào)是1。當(dāng)標(biāo)志位TF=1時(shí),CPU每執(zhí)行一條指令就產(chǎn)生一個(gè)單步中斷。 2)除法出錯(cuò)中斷中斷類(lèi)型號(hào)是0。當(dāng)除數(shù)為0或商超出了限定范圍時(shí)產(chǎn)生此中斷。 3)斷點(diǎn)中斷中斷類(lèi)型號(hào)是3。用于在程序調(diào)試時(shí)設(shè)置斷點(diǎn)。 4)溢出中斷中斷類(lèi)型號(hào)是4。指令為INTO,如果該指令的上一條指令使標(biāo)志位OF=1,則在執(zhí)行指令I(lǐng)NTO時(shí)產(chǎn)生溢出中斷。 5)指令中斷中斷類(lèi)型號(hào)是n。指令格式為INT n。指令中斷和INT、INTO一樣,都能引起CPU的中斷響應(yīng),但I(xiàn)NT、INTO為單字節(jié)指令,且中斷類(lèi)型號(hào)是固定的,而INT n是雙字節(jié)指令,類(lèi)型號(hào)n是指令給出的。 內(nèi)部中斷的特點(diǎn):
8、內(nèi)部中斷的類(lèi)型號(hào)都是固定的,或是在中斷指令中給定的。 不需要進(jìn)入INTA總線(xiàn)周期獲取類(lèi)型號(hào); 不受中斷允許標(biāo)志位IF的影響; 用一條指令或由某個(gè)標(biāo)志位啟動(dòng)進(jìn)入中斷處理程序,這樣 的中斷沒(méi)有隨機(jī)性。 2、中斷源的優(yōu)先級(jí)7.2.2 8086CPU7.2.2 8086CPU的中斷響應(yīng)過(guò)程的中斷響應(yīng)過(guò)程 7.2.2 8086CPU7.2.2 8086CPU的中斷響應(yīng)過(guò)程的中斷響應(yīng)過(guò)程 1、內(nèi)部中斷和非屏蔽中斷的響應(yīng)及處理過(guò)程 1) 中斷請(qǐng)求與檢測(cè)。 2) 確定中斷向量地址。將中斷類(lèi)型號(hào)乘以4獲得中斷向量地址。 3)保護(hù)各標(biāo)志位狀態(tài)和屏蔽INTR中斷和單步中斷。將標(biāo)志寄存器入棧,并清除IF、TF標(biāo)志。
9、4)保存斷點(diǎn)。將斷點(diǎn)地址(即IP和CS)入棧。 5)執(zhí)行中斷服務(wù)程序。從中斷向量表中取出中斷服務(wù)程序的入口地址送到IP和CS,在中斷服務(wù)程序中要保護(hù)現(xiàn)場(chǎng)。 6)中斷返回。執(zhí)行IRET指令,從堆棧中取回?cái)帱c(diǎn)地址送IP和CS。 2、可屏蔽中斷 1) 中斷請(qǐng)求與檢測(cè)。CPU每執(zhí)行一條指令后都會(huì)檢測(cè)INTR上有無(wú)中斷請(qǐng)求。 2) 判斷是否響應(yīng)。如果IF=1,則在執(zhí)行完當(dāng)前指令后響應(yīng)中斷請(qǐng)求。 3)確定中斷向量地址。執(zhí)行連續(xù)兩個(gè)中斷響應(yīng)總線(xiàn)周期,第一個(gè)周期通知中斷源中斷請(qǐng)求已被響應(yīng),第二個(gè)周期中斷源將中斷類(lèi)型號(hào)送上數(shù)據(jù)總線(xiàn)的低8位,CPU在T4的前沿從數(shù)據(jù)總線(xiàn)上獲得中斷類(lèi)型號(hào)。然后將中斷類(lèi)型號(hào)乘以4得到
10、中斷向量地址。 以下4)、 5)、 6)與內(nèi)部與非屏蔽中斷相同。 4)保存斷點(diǎn)。將斷點(diǎn)地址(即IP和CS )入棧。 5)執(zhí)行中斷服務(wù)程序。從中斷向量表中取出中斷服務(wù)程序的入口地址送到IP和CS,在中斷服務(wù)程序中要保護(hù)現(xiàn)場(chǎng)。 6)中斷返回。執(zhí)行IRET指令,從堆棧中取回?cái)帱c(diǎn)地址送IP和CS。7.2.3 7.2.3 中斷向量表中斷向量表 中斷向量是中斷服務(wù)程序入口地址。 中斷向量表是中斷服務(wù)程序入口地址表。 中斷向量地址是中斷向量在中斷向量表中的位置。 中斷向量地址與中斷類(lèi)型號(hào)之間的關(guān)系可表示為:中斷向量地址中斷類(lèi)型號(hào)*4 。 8086中斷系統(tǒng)最多可有256個(gè)中斷源,每個(gè)中斷有一個(gè)中斷類(lèi)型號(hào)(02
11、55),每個(gè)類(lèi)型號(hào)對(duì)應(yīng)一個(gè)中斷向量,每個(gè)中斷向量4個(gè)字節(jié),前兩個(gè)字節(jié)是偏移量IP,后兩個(gè)字節(jié)是段基址CS,256個(gè)中斷向量占用最低1KB內(nèi)存,即03FFH。中斷向量表如圖7-10所示。 8086的前5個(gè)中斷向量是專(zhuān)用的,接下來(lái)的27個(gè)中斷向量由操作系統(tǒng)使用,剩下的中斷向量可以由用戶(hù)使用。 例7-1某中斷源的類(lèi)型號(hào)為34,且已知部分中斷向量表如圖7-11所示,試求中斷服務(wù)程序入口的物理地址。 解:34*4=136 即中斷向量地址為: 88H 查中斷向量表得中斷向量為: A123H:B678H 中斷服務(wù)程序入口的物理地址為: AC8A8H 7.2.4 7.2.4 中斷程序設(shè)計(jì)中斷程序設(shè)計(jì) 中斷程序
12、設(shè)計(jì)分為主程序設(shè)計(jì)和中斷服務(wù)子程序設(shè)計(jì)兩部分:主程序用來(lái)完成相關(guān)的初始化工作,為實(shí)現(xiàn)中斷做好準(zhǔn)備;中斷服務(wù)子程序用來(lái)完成相關(guān)的中斷處理工作。 1、主程序設(shè)計(jì) 初始化工作分三部分: CPU本身工作的初始化 中斷控制器8259A的初始化 通用接口的初始化 2、中斷服務(wù)子程序設(shè)計(jì) 中斷服務(wù)子程序含有以下七個(gè)部分: (1)保護(hù)中斷時(shí)的現(xiàn)場(chǎng)。 (2)若允許中斷嵌套,則設(shè)置開(kāi)中斷。 (3)執(zhí)行中斷處理程序。 (4)設(shè)置關(guān)中斷, (5)給中斷命令寄存器送中斷結(jié)束命令EOI。 (6)恢復(fù)中斷時(shí)的現(xiàn)場(chǎng)。 (7)用中斷返回指令I(lǐng)RET返回主程序。 7.3 7.3 中斷控制器中斷控制器Intel8259AIntel
13、8259A 8259的功能: 1)具有864級(jí)的中斷優(yōu)先權(quán)管理功能(多于8級(jí)時(shí),必須通過(guò)級(jí)連擴(kuò)展實(shí)現(xiàn))。 2)每一級(jí)都可以通過(guò)編程實(shí)現(xiàn)中斷屏蔽或開(kāi)放。 3)在中斷響應(yīng)周期,8259A可以自動(dòng)提供相應(yīng)的中斷類(lèi)型號(hào)。 4)可以通過(guò)編程來(lái)選擇8259A的各種工作方式及任意設(shè)定中斷類(lèi)型號(hào)。7.3.1 8259A7.3.1 8259A的引腳信號(hào)及結(jié)構(gòu)的引腳信號(hào)及結(jié)構(gòu) 1.8259A的外部引腳信號(hào)及結(jié)構(gòu) 引腳信號(hào)如圖712b,引腳信號(hào)的作用見(jiàn)表72。 2. 8259A的內(nèi)部結(jié)構(gòu) (1)數(shù)據(jù)總線(xiàn)緩沖器 用于與CPU進(jìn)行數(shù)據(jù)交換。 (2)讀/寫(xiě)控制邏輯 用于實(shí)現(xiàn)讀/寫(xiě)操作。 (3)級(jí)聯(lián)緩沖/比較器 用于控制多
14、片8259A的級(jí)聯(lián),使得中斷級(jí)可以最多擴(kuò)展至64級(jí)。擴(kuò)展時(shí)用一片主片,多片從片。 (4)中斷請(qǐng)求寄存器IRR 具有鎖存功能的8位寄存器,用于寄存所有外部中斷請(qǐng)求。當(dāng)8個(gè)中斷請(qǐng)求IR0IR7中任何一個(gè)的輸入上升為高電平時(shí),IRR中相應(yīng)的位置1,該位在中斷響應(yīng)過(guò)程中被清除。 (5)中斷服務(wù)寄存器ISR 8位寄存器,用于存放正在被服務(wù)的中斷級(jí)。在中斷響應(yīng)的第一個(gè)INTA周期將ISR相應(yīng)位置1,同時(shí)對(duì)應(yīng)的IRR位復(fù)位。ISR的復(fù)位由8259A中斷結(jié)束方式?jīng)Q定。若是自動(dòng)結(jié)束方式,則由CPU在第二個(gè)INTA周期后沿將其復(fù)位;若是非自動(dòng)結(jié)束方式,則由CPU發(fā)送的中斷結(jié)命令將其復(fù)位。允許多重中斷時(shí),ISR多位
15、同時(shí)被置成1。 (6)中斷屏蔽寄存器IMR 8位寄存器,用于寄存要屏蔽的中斷級(jí)。該寄存器的每一位對(duì)應(yīng)一個(gè)中斷級(jí),1表示屏蔽該級(jí)中斷請(qǐng)求,0表示開(kāi)放該級(jí)中斷請(qǐng)求。寄存器內(nèi)容可以通過(guò)軟件以屏蔽命令設(shè)置。各屏蔽位相互獨(dú)立(屏蔽高優(yōu)先級(jí)的中斷不會(huì)影響低優(yōu)先級(jí)的中斷)。 (7)優(yōu)先權(quán)比較器PR 用于存放IRR中各請(qǐng)求信號(hào)的優(yōu)先級(jí),并排隊(duì)判優(yōu),若中斷允許嵌套時(shí),所選最高優(yōu)先級(jí)還要和ISR中內(nèi)容比較,以實(shí)現(xiàn)高優(yōu)先級(jí)的嵌套中斷。 (8)中斷控制邏輯 控制邏輯是8259A的內(nèi)部控制器。根據(jù)中斷請(qǐng)求寄存器IRR的置位情況和中斷屏蔽寄存器IMR設(shè)置的情況,通過(guò)優(yōu)先級(jí)判別器PR判定優(yōu)先級(jí),向8259A內(nèi)部及其他部件發(fā)
16、出控制信號(hào),并向CPU發(fā)出中斷請(qǐng)求信號(hào)INT,接收CPU的中斷響應(yīng)信號(hào) ,使中斷服務(wù)寄存器ISR相應(yīng)位置1,并使中斷請(qǐng)求寄存器IRR相應(yīng)位清0。 當(dāng)CPU第二個(gè) 信號(hào)到來(lái),控制8259A送出中斷類(lèi)型號(hào),使CPU轉(zhuǎn)入中斷服務(wù)子程序。如果方式控制字ICW4的中斷自動(dòng)結(jié)束位為1,則在第二個(gè) 脈沖結(jié)束時(shí),將8259A中斷服務(wù)寄存器ISR的相應(yīng)位清0。INTAINTAINTA7.3.2 8259A的工作方式 8259A共有6種工作方式。 1.中斷請(qǐng)求方式 (1)邊沿觸發(fā)器方式 中斷請(qǐng)求輸入端(IR0IR7)的上升沿實(shí)現(xiàn)中斷請(qǐng)求。 (2)電平觸發(fā)方式 中斷請(qǐng)求輸入端(IR0IR7)的高電平實(shí)現(xiàn)中斷請(qǐng)求。要
17、求高電平保持到中斷請(qǐng)求被響應(yīng),且在中斷返回前撤除,否則將引起又一次中斷。 (3)中斷查詢(xún)方式 8259A不向CPU發(fā)INT信號(hào),由CPU不斷查詢(xún)8259A,當(dāng)發(fā)現(xiàn)有中斷請(qǐng)求時(shí),就轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。查詢(xún)時(shí),系統(tǒng)先關(guān)中斷,然后將查詢(xún)方式命令字OCW3送到8259A,再對(duì)8259A執(zhí)行一條輸入指令,8259A便將一個(gè)如下格式的查詢(xún)字送上數(shù)據(jù)總線(xiàn)。 D7 D6 D5 D4 D3 D2 D1 D0 I W2 W1 W0 I=1表示有設(shè)備請(qǐng)求中斷服務(wù)。W2W1W0組成的代碼表示當(dāng)前中斷請(qǐng)求的最高優(yōu)先級(jí)。 2.中斷源屏蔽方式 (1)普通屏蔽方式 在中斷屏蔽寄存器IMR中寫(xiě)入中斷屏蔽字。1使對(duì)應(yīng)中斷輸入
18、被屏蔽,0則對(duì)應(yīng)中斷輸入被允許。 (2)特殊屏蔽方式 用于屏蔽當(dāng)前已響應(yīng)的中斷,并將ISR中的對(duì)應(yīng)位清0,以開(kāi)放其他優(yōu)先權(quán)較低的中斷輸入。在進(jìn)入中斷后在中斷屏蔽寄存器IMR中將已響應(yīng)的中斷輸入對(duì)應(yīng)位置1,使當(dāng)前已響應(yīng)的中斷被屏蔽,其他優(yōu)先權(quán)較低的中斷輸入被開(kāi)放。注意應(yīng)先設(shè)置特殊屏蔽方式,然后建立屏蔽信息。在中斷服務(wù)程序結(jié)束時(shí)應(yīng)退出特殊屏蔽方式。 3.中斷嵌套方式 (1)全嵌套方式 初始化后的默認(rèn)工作方式。 IR0的優(yōu)先級(jí)最高,IR0IR7優(yōu)先級(jí)依次降低。只有高優(yōu)先級(jí)的中斷請(qǐng)求可以中斷低優(yōu)先級(jí)的中斷請(qǐng)求。一個(gè)中斷請(qǐng)求被響應(yīng)后,它自身(即同級(jí))的再次請(qǐng)求也不能被響應(yīng)。 (2)特殊全嵌套方式 與全嵌
19、套方式基本一樣,不同之處僅為一個(gè)中斷請(qǐng)求被響應(yīng)后,它自身(即同級(jí))的再次請(qǐng)求還能被響應(yīng)。這是為了在級(jí)聯(lián)的情況下,從片中優(yōu)先級(jí)更高的中斷請(qǐng)求能夠被響應(yīng)。 4.優(yōu)先級(jí)循環(huán)方式 (1)優(yōu)先級(jí)自動(dòng)循環(huán)方式 在這種方式下,初始時(shí)IR0的優(yōu)先級(jí)最高,IR0IR7優(yōu)先級(jí)依次降低。當(dāng)某個(gè)中斷請(qǐng)求被響應(yīng)且中斷服務(wù)結(jié)束后,它的優(yōu)先級(jí)便降為最低,緊隨其后的那個(gè)優(yōu)先級(jí)自動(dòng)上升為最高優(yōu)先級(jí)。 例如當(dāng)前IR3優(yōu)先級(jí)最高,IR2優(yōu)先級(jí)最低,當(dāng)IR4、IR6同時(shí)有請(qǐng)求時(shí),響應(yīng)IR4,在IR4被服務(wù)后,IR4的優(yōu)先級(jí)降為最低,而IR5升為最高,其余的依次為IR6、IR7、IR0、IR1、IR2、IR3。 (2)優(yōu)先級(jí)特殊循環(huán)方
20、式 在設(shè)置了優(yōu)先級(jí)特殊循環(huán)方式后,由編程來(lái)決定初始最高優(yōu)先級(jí),即通過(guò)指定最低優(yōu)先級(jí)來(lái)決定最高優(yōu)先級(jí),例如指定IR4為最低優(yōu)先級(jí),則IR5就是最高優(yōu)先級(jí)。其余同優(yōu)先級(jí)自動(dòng)循環(huán)方式。 5.中斷結(jié)束方式 所謂中斷結(jié)束處理,就是對(duì)中斷服務(wù)寄存器ISR中對(duì)應(yīng)位的清0處理,如果ISR中的對(duì)應(yīng)位不清0,中斷優(yōu)先權(quán)的判別就會(huì)不正常,因?yàn)镮SR中的1表示該中斷請(qǐng)求正在服務(wù)中。 (1)中斷自動(dòng)結(jié)束方式 當(dāng)CPU進(jìn)入中斷響應(yīng)周期,并在發(fā)出第二個(gè)INTA脈沖后自動(dòng)將ISR中對(duì)應(yīng)的位次清0,實(shí)現(xiàn)中斷結(jié)束的自動(dòng)處理。由于在一個(gè)中斷請(qǐng)求正在響應(yīng)中,ISR中的對(duì)應(yīng)位已清0,因此僅適用于只有一片8259A且不會(huì)有中斷嵌套情況發(fā)
21、生的場(chǎng)合。 (2)中斷非自動(dòng)結(jié)束方式 1)普通EOI結(jié)束方式。用于全嵌套工作方式下,在這種情況下,中斷服務(wù)寄存器可以確定哪一個(gè)中斷是最后響應(yīng)和處理的。CPU向8259A傳送EOI結(jié)束命令字,就會(huì)自動(dòng)將ISR寄存器中級(jí)別最高的置1位清0。注意EOI結(jié)束命令字應(yīng)放在返回指令I(lǐng)RET前且緊靠著,否則會(huì)出錯(cuò)。 2)特殊EOI結(jié)束方式。用于非全嵌套工作方式,在這種情況下,中斷服務(wù)寄存器無(wú)法確定哪一個(gè)中斷是最后響應(yīng)和處理的。特殊EOI結(jié)束命令字中要將當(dāng)前準(zhǔn)備清除的中斷傳給8259A,8259A將ISR中指定位清0。 級(jí)聯(lián)方式下須使用非自動(dòng)結(jié)束方式,在中斷結(jié)束時(shí),要對(duì)主片和從片分別發(fā)中斷結(jié)束命令。 6.讀8
22、259A狀態(tài)方式 通過(guò)讀命令取出8259A中IRR、ISR和IMR等寄存器中狀態(tài)。7.3.3 8259A的編程 8259A的編程分為初始化編程和工作方式編程。初始化編程寫(xiě)初始化命令字ICW1ICW4到8259A中,須在正常操作前完成。工作方式編程寫(xiě)操作命令字OCW1OCW3到8259A中,可在工作開(kāi)始前寫(xiě)入,也可以在工作期間寫(xiě)入。 1.初始化命令字及其編程 初始化命令字共有4個(gè):ICW1ICW4。必須嚴(yán)格按圖713所示的輸入流程進(jìn)行。 (1)芯片控制初始化命令字ICW1 三個(gè)作用: 1)設(shè)定中斷請(qǐng)求信號(hào)觸發(fā)形式,高電平觸發(fā)或上升沿觸發(fā)。 2)設(shè)定8259A工作方式,單片或級(jí)聯(lián)。 3)清除中斷屏
23、蔽寄存器IMR,設(shè)置優(yōu)先權(quán)排隊(duì),使IR0優(yōu)先權(quán)最高,IR1次之,依此類(lèi)推,IR7最低。 ICW1命令字格式如圖714所示。 ICW1命令字輸入條件:寫(xiě)入命令字的端口地址A0=0,命令字的特征位D4=1。 IC4:由D0定義,指出初始化過(guò)程是否要寫(xiě)入ICW4(若不寫(xiě)入則ICW4所有位均為0,在80X86系統(tǒng)中必須使用ICW4)。 LTIM:由D3定義,指出8個(gè)中斷信號(hào)作用的有效觸發(fā)方式。D3=0,為上升沿觸發(fā); D3=1,為高電平觸發(fā)。 SNGL:由D1定義,指出單片或多片級(jí)聯(lián)方式,D1=1指出系統(tǒng)使用的8259A初始化編程的一部分。 其中,D2和D5D8只在8080/8085微機(jī)系統(tǒng)中有用,在
24、80X86系統(tǒng)中不起作用。 (2)中斷類(lèi)型初始化命令字ICW2 用來(lái)設(shè)定8259A中斷類(lèi)型號(hào)基值,即IR0對(duì)應(yīng)的中斷類(lèi)型號(hào)。命令字格式如圖715所示。 ICW2命令字輸入條件:緊接著ICW1寫(xiě)入,且寫(xiě)入地址A0=1。 ICW2中的低3位D2D0是由系統(tǒng)自動(dòng)填入中斷請(qǐng)求輸入端IR0IR7的編碼。 ICW2中的高5位D7D3是由用戶(hù)編程寫(xiě)入T7T3若ICW2寫(xiě)入40H時(shí),則IR0IR7對(duì)應(yīng)的中斷類(lèi)型號(hào)分別為40H、 41H、 42H、 43H、 44H、 45H、 46H、 47H。 (3)主/從片初始化命令字ICW3 ICW3的作用是定義系統(tǒng)中主片、從片的級(jí)聯(lián),對(duì)主8259A和從8259A進(jìn)行初
25、始化。 ICW3命令字輸入條件:僅當(dāng)多片8259A級(jí)聯(lián)時(shí),且寫(xiě)入命令字的端口地址位A0=1,主、從片都須寫(xiě)入ICW3。 主片ICW3的D7D0表示IR7IR0輸入上有無(wú)從片,1表示有。 從片ICW3的ID2ID0為對(duì)應(yīng)于主片IR7IR0級(jí)聯(lián)的從片的編碼。 (4)方式控制初始化命令字ICW4 用于定義CPU模式、設(shè)定嵌套方式、設(shè)定結(jié)束操作方式,其命令字格式如圖717所示。 ICW4命令字輸入條件:僅當(dāng)ICW1中D0(IC4)為1時(shí)才需要寫(xiě)入ICW4,且寫(xiě)入命令字的端口地址A0=1。 設(shè)置CPU類(lèi)型:由D0定義,當(dāng)8259A連接到80X86時(shí)D0必須為1。 設(shè)置中斷結(jié)束方式:由D1定義,當(dāng)D1=1
26、時(shí),表示該中斷自動(dòng)結(jié)束(AEOI),即當(dāng)該中斷請(qǐng)求獲得響應(yīng)后, 不必在中斷處理程序中使用中斷結(jié)束(EOI)命令,而自動(dòng)使中斷服務(wù)寄存器(ISR)復(fù)位;當(dāng)D1=0時(shí),必須由中斷服務(wù)程序送出EOI命令使ISR復(fù)位。 設(shè)置緩沖器:由D3、D2定義,D3=0時(shí)表示非緩沖方式,說(shuō)明本片8259A和系統(tǒng)數(shù)據(jù)總線(xiàn)之間沒(méi)有緩沖器;當(dāng)D3D2=10時(shí),本片為緩沖方式且是從片;當(dāng)D3D2=11時(shí),本片為緩沖方式且是主片。使用緩沖方式時(shí) 為輸出,用來(lái)驅(qū)動(dòng)緩沖器; 使用非緩沖方式時(shí) 為輸入,用來(lái)設(shè)置該片8259A為主片(1)/從片(0)。EN/SPEN/SP 2.操作命令字及其編程 8259A共有OCW1OCW3三個(gè)
27、操作命令字,設(shè)置時(shí)對(duì)端口地址有嚴(yán)格規(guī)定:設(shè)置OCW1必須采用奇地址端口(A0=1),設(shè)置OCW2和OCW3必須采用偶地址端口(A0=0)。其中OCW2和OCW3是通過(guò)命令字本身的D4D3位來(lái)區(qū)分:D4D3=00時(shí)表示OCW2,D4D3=01時(shí)表示OCW3。 設(shè)置嵌套方式:由D4定義,當(dāng)D4(SFNM)置1時(shí),表示8259A處于多片中斷控制系統(tǒng)中,其優(yōu)先級(jí)順序采用特殊全嵌套方式;當(dāng)D4(SFNM)置0時(shí),則表示其優(yōu)先級(jí)采用全嵌套方式。 D7D5未用,一般取值為0。 (1)屏蔽操作命令字OCW1 OCW1命令字格式如圖718所示。此命令字寫(xiě)入中斷屏蔽寄存器IMR,寫(xiě)入時(shí)端口地址A0=1。 D7D0
28、分別對(duì)應(yīng)輸入IR7IR0,0為允許,1為禁止。 OCW1命令字也可以從端口地址A0=1讀入。 (2)中斷方式命令字OCW2 OCW2命令字格式如圖719所示。該命令字用于設(shè)置優(yōu)先級(jí)是否循環(huán)、循環(huán)的方式及中斷結(jié)束的方式。 設(shè)置OCW2的條件:命令字中標(biāo)志位D3D4=00,寫(xiě)入的端口地址A0=0。 循環(huán)方式設(shè)置:由D7定義,該位若為1,表示采用優(yōu)先級(jí)循環(huán)方式;若為0,則為非循環(huán)方式。 中斷結(jié)束命令設(shè)置:由D5定義,該位若為1則表明OCW2操作命令的任務(wù)之一是用作結(jié)束中斷命令,若為0則不作為結(jié)束中斷命令。 末三位有效性設(shè)置:由D6定義,該位若為1,末三位L2L0有效,若為0,則L2L0無(wú)效。當(dāng)用OCW2發(fā)出特殊的中斷結(jié)束命令時(shí),具體要清除ISR中的哪一位可以由L2L0指出。另外,當(dāng)用OCW2發(fā)出特殊的優(yōu)先級(jí)循環(huán)方式命令字時(shí),循環(huán)開(kāi)始時(shí)究竟哪個(gè)中斷的優(yōu)先級(jí)最低也是由L2L0來(lái)指出。 (3)狀態(tài)操作命令字OCW3 用于設(shè)置查詢(xún)方式、設(shè)置或撤銷(xiāo)特殊屏蔽方式、以及用來(lái)讀8259A中中斷請(qǐng)求寄存器IRR、中斷服務(wù)寄存器ISR的當(dāng)前狀態(tài)。命令字格式如圖720所示。 設(shè)置OCW3的條件:命令字中標(biāo)志位D4D3=01,寫(xiě)入的端口地址A0=0。 設(shè)置查詢(xún)方式:由D2定義,該位若為1,表明8259A采用中斷查詢(xún)方式,可以使CPU用程序隨時(shí)查詢(xún)中斷源(讀出最高優(yōu)先級(jí)的中斷請(qǐng)求
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海紐約大學(xué)《西方經(jīng)濟(jì)學(xué)上》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧城市建設(shè)職業(yè)技術(shù)學(xué)院《園林樹(shù)木學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 宿遷職業(yè)技術(shù)學(xué)院《牛羊生產(chǎn)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 個(gè)人賣(mài)房套現(xiàn)方案范本
- 2025至2031年中國(guó)展具行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 《高效理財(cái)規(guī)劃之道:課件深度解析》
- 2025至2031年中國(guó)可調(diào)速封塑機(jī)行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025女職工懷孕期間能否續(xù)簽服務(wù)合同
- 防疫捐贈(zèng)采購(gòu)方案范本
- 2025至2031年中國(guó)PS紙杯蓋行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案(中小學(xué)組)
- 2025年重慶渝開(kāi)發(fā)股份有限公司招聘筆試參考題庫(kù)含答案解析
- MOOC 成長(zhǎng)中的音樂(lè)徜徉-浙江師范大學(xué) 中國(guó)大學(xué)慕課答案
- 橋梁工程梁板的預(yù)制和安裝監(jiān)理實(shí)施細(xì)則
- 小學(xué)階段數(shù)學(xué)術(shù)語(yǔ)英文詞匯表-橫版打印
- 餐飲食材原材料驗(yàn)收標(biāo)準(zhǔn)(完整版)
- 站務(wù)一號(hào)線(xiàn)low培訓(xùn)
- 鍋爐安裝檢驗(yàn)資料:水冷壁安裝檢查記錄
- 礦漿比重與礦漿濃度對(duì)照換算表 (1)
- 植物生理學(xué)第一章水分代謝
- 防汛應(yīng)急值班表(共2頁(yè))
評(píng)論
0/150
提交評(píng)論