微型計算機原理及應(yīng)用課件06_第1頁
微型計算機原理及應(yīng)用課件06_第2頁
微型計算機原理及應(yīng)用課件06_第3頁
微型計算機原理及應(yīng)用課件06_第4頁
微型計算機原理及應(yīng)用課件06_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微型計算機原理及應(yīng)用第6章中斷系統(tǒng)6.1中斷概述6.1.1基本概念1.中斷與中斷源中斷是一個“過程”。這個過程,由微處理器內(nèi)外部硬件或軟中斷指令引起,即由它們發(fā)出中斷請求,CPU接到中斷請求后暫時終止現(xiàn)行程序的執(zhí)行,轉(zhuǎn)去執(zhí)行請求中斷的那個外設(shè)或事件的中斷處理子程序,待中斷服務(wù)子程序處理完畢后,再返回到暫停處繼續(xù)執(zhí)行原來的程序,也就是說,中斷就是CPU在執(zhí)行當(dāng)前程序的過程中,由于意外的事件輸入另一段程序的運行。中斷源:引起中斷的事件稱為中斷源。中斷源有多種,可以是外部的,也可以是CPU內(nèi)部的。例如一般的輸入輸出設(shè)備、數(shù)據(jù)通道中斷源(如磁盤磁帶等)、實時時鐘、故障源(如電源掉電等)、軟件中斷(如在調(diào)試程序時設(shè)置斷點等)、CPU內(nèi)部運算產(chǎn)生的某些錯誤(如運算溢出)。2.中斷系統(tǒng)能實現(xiàn)中斷過程的軟硬件系統(tǒng)叫中斷系統(tǒng)。中斷系統(tǒng)應(yīng)具有以下功能:(1)能實現(xiàn)中斷響應(yīng)、中斷服務(wù)和中斷返回。(2)能實現(xiàn)中斷優(yōu)先權(quán)排隊。(3)能實現(xiàn)中斷嵌套。

CPU響應(yīng)中斷的過程與執(zhí)行調(diào)用子程序指令的過程很相似,但除了軟件中斷外,中斷是隨機發(fā)生的。6.1.2中斷處理過程各種微型計算機的中斷系統(tǒng)都不一樣,然而其實現(xiàn)中斷的過程是相同的。一個完整的中斷處理過程包括4個階段:中斷請求、中斷響應(yīng)、中斷服務(wù)(處理)和中斷返回,如圖6-1所示。執(zhí)行指令指令結(jié)束?中斷請求?返回開中斷恢復(fù)現(xiàn)場中斷服務(wù)保護現(xiàn)場關(guān)中斷響應(yīng)中斷取下一條指令否是是否1.中斷請求外部設(shè)備需要CPU為其服務(wù)時,首先向CPU發(fā)“中斷請求”信號。發(fā)出中斷請求信號必須滿足以下條件:(1)請求中斷的外設(shè)應(yīng)通過接口電路在CPU的中斷請求輸入引腳上輸入一個符合規(guī)定的請求信號,該信號可以是電平或邊沿信號。(2)外設(shè)處于就緒狀態(tài),如輸出設(shè)備準(zhǔn)備好接收CPU的數(shù)據(jù)時才能向CPU發(fā)出中斷請求。(3)該中斷源未被屏蔽。通常每個中斷源設(shè)置有一個中斷允許觸發(fā)器,用來開放或禁止該設(shè)備的中斷請求,中斷允許觸發(fā)器被置位時,表示允許發(fā)出中斷申請。中斷允許觸發(fā)器的置位或復(fù)位狀態(tài)由軟件設(shè)置(管理)。2.中斷響應(yīng)由于中斷源的中斷請求是隨機的。CPU在現(xiàn)行指令周期結(jié)束時去檢測“中斷請求”輸入線(如8086CPU的INTR引腳),CPU檢測到有中斷請求時,如果中斷響應(yīng)條件滿足(如中斷允許標(biāo)志IF=1),則CPU在當(dāng)前指令執(zhí)行結(jié)束時便響應(yīng)中斷進入中斷響應(yīng)周期,在中斷響應(yīng)周期內(nèi)CPU通過內(nèi)部硬件自動完成三件事:(1)關(guān)中斷。使中斷響應(yīng)周期不被其他中斷所終止。(2)保護斷點和標(biāo)志寄存器內(nèi)容,即將當(dāng)前正在執(zhí)行程序的段地址(CS)和偏移地址(IP)即斷點地址壓入堆棧,將標(biāo)志寄存器(FR)的內(nèi)容壓入堆棧。(3)形成中斷服務(wù)程序的入口地址。將入口地址送入CS和IP后,開始執(zhí)行中斷服務(wù)程序。3.中斷處理

CPU響應(yīng)中斷,執(zhí)行中斷服務(wù)程序要順序完成以下幾步工作:(1)保護現(xiàn)場。(2)開中斷。(3)查找中斷源轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序。(4)關(guān)閉中斷。(5)恢復(fù)現(xiàn)場。(6)開中斷。4.中斷返回中斷服務(wù)程序的最后一條指令必須是“中斷返回”指令,CPU執(zhí)行中斷返回指令時,自動將保存在現(xiàn)行堆棧中的標(biāo)志寄存器的內(nèi)容和斷點地址彈出,使程序回到中斷前的地址繼續(xù)執(zhí)行,即CPU從中斷服務(wù)程序返回而繼續(xù)執(zhí)行被終止的主程序。6.1.3中斷識別和中斷優(yōu)先級實際系統(tǒng)中,常常會出現(xiàn)多個中斷源同時提出中斷請求,或者在尚未處理完一個中斷時又有一個新的中斷請求提出。然而CPU每次只能響應(yīng)一個中斷源的請求,所以CPU必須確定首先為哪一個中斷源服務(wù)及服務(wù)次序。

1.中斷優(yōu)先級排隊微型計算機系統(tǒng)中,對多個中斷源進行識別和優(yōu)先級排隊的目的是要尋找出優(yōu)先級最高的中斷源,并形成該中斷源的中斷服務(wù)程序的入口地址,以便CPU將控制轉(zhuǎn)移到該中斷服務(wù)程序。系統(tǒng)中CPU識別中斷源和比較其優(yōu)先級是同時解決的,稱為中斷優(yōu)先級排隊。

CPU實現(xiàn)中斷優(yōu)先級排隊的方法有兩種:查詢中斷和矢量中斷。(1)查詢中斷。查詢中斷(或叫程序查詢方式)就是在CPU響應(yīng)中斷后,通過簡單硬件接口電路中斷識別程序查詢連接到系統(tǒng)上的每個設(shè)備。確定哪些外設(shè)提出中斷請求,是按事先確定的優(yōu)先級別確定查詢的先后順序,最先被查詢的優(yōu)先級別最高。查詢過程如圖6-2所示。硬盤軟盤打印機電源故障…………恢復(fù)現(xiàn)場中斷返回IR0請求?IR7請求?IR1請求?中斷服務(wù)程序入口保護現(xiàn)場讀中斷請求0#中斷服務(wù)程序1#中斷服務(wù)程序7#中斷服務(wù)程序(2)矢量中斷。矢量中斷就是CPU響應(yīng)中斷后,要求中斷源提供一個地址信息,該地址信息稱為中斷向量(或叫中斷矢量),這種中斷稱為矢量(向量)中斷。所以,中斷向量就是中斷服務(wù)程序的入口地址。當(dāng)CPU識別出某個外設(shè)請求中斷并予以響應(yīng)時,控制邏輯就將該I/O設(shè)備的中斷服務(wù)程序的入口地址送CPU,轉(zhuǎn)入中斷服務(wù)程序。根據(jù)形成入口地址的機制的不同,向量中斷又分為:簡單硬件查詢法——菊花鏈法和中斷控制專用硬件方法。1)簡單硬件查詢方式——菊花鏈法。菊花鏈邏輯電路菊花鏈邏輯電路菊花鏈邏輯電路接口1接口3接口2數(shù)據(jù)總線CPU以及總線控制邏輯

INTAINTR2)中斷控制專用硬件方式。是向量中斷的典型方法,該方法使用一個專門的中斷優(yōu)先級控制器來解決中斷優(yōu)先級的排隊管理。

總線控制階段中斷類型寄存器,由中斷請求決定中斷服務(wù)寄存器優(yōu)先級管理邏輯中斷請求寄存器中斷屏蔽寄存器IR0IR1IR78086/8088CPU控制總線INTRINTA2.中斷的多級嵌套

CPU總是首先響應(yīng)優(yōu)先級最高的中斷請求。當(dāng)CPU正在執(zhí)行優(yōu)先級別較低的中斷服務(wù)程序時,允許響應(yīng)優(yōu)先級別高的中斷源的中斷請求,終止正在處理的中斷,這就是中斷嵌套或稱多重中斷。此時,CPU暫停正在執(zhí)行著的級別較低的中斷服務(wù)程序,為優(yōu)先級別高的中斷源服務(wù),待優(yōu)先權(quán)高的中斷服務(wù)結(jié)束后,再返回到剛才被中斷的那一級,繼續(xù)為它進行中斷服務(wù),直至處理結(jié)束返回主程序,如圖6-5所示。編寫具有中斷嵌套的中斷服務(wù)程序時需要注意:(1)要有屏蔽本級和低級中斷請求的環(huán)節(jié),防止低級中斷的干擾。(2)執(zhí)行中斷服務(wù)程序之前,要開放中斷,允許優(yōu)先級比它高的中斷源進行中斷,實現(xiàn)中斷嵌套。(3)中斷服務(wù)程序結(jié)束后,為使恢復(fù)現(xiàn)場的過程不受任何中斷請求的干擾,必須執(zhí)行CLI指令,中斷關(guān)閉,才能恢復(fù)現(xiàn)場。INT1#INT2#INT3#1#中斷服務(wù)程序2#中斷服務(wù)程序3#中斷服務(wù)程序主程序返回返回返回6.28086/8088的中斷系統(tǒng)

8086/8088微機系統(tǒng)具有一個功能強大的中斷系統(tǒng),可以處理多達256種不同類型的中斷。對應(yīng)的中斷類型碼為0~255。6.2.18086/8088的中斷分類按產(chǎn)生中斷的方法來分,8086/8088的中斷可以分為兩大類:一類是硬件中斷,另一類是軟件中斷,如圖6-6所示。非屏蔽中斷請求中斷邏輯INTn指令級管單步中斷除法出錯中斷8086/8088CPU8259AINTR可屏蔽中斷請求6.2.2中斷向量和中斷向量表中斷向量是中斷服務(wù)程序的入口地址,每一個中斷服務(wù)程序都有一個惟一確定的入口地址,即中斷向量。把系統(tǒng)中的全部中斷向量集中存放到存儲器的某一區(qū)域內(nèi),這個存放中斷向量的存儲區(qū)就叫中斷向量表,即中斷服務(wù)程序入口地址表。

8086/8088的中斷系統(tǒng)可以處理256種不同的中斷,每個中斷對應(yīng)一個類型碼。8086/8088中斷系統(tǒng)中的中斷向量表是位于0段的0~3FFFH的存貯區(qū)內(nèi)。每個中斷向量占四個單元,其中前兩個單元存放中斷處理子程序的入口地址的偏移量(IP),低位在前,高位在后;后兩個單元存放中斷處理子程序入口地址的段地址(CS),也是低位在前,高位在后,整個中斷向量的排列是按中斷類型號進行的。8086/8088系統(tǒng)在存儲器的最低端地址從0段0單元開始的,共1KB單元作為中斷向量表,如圖6-7所示.CSIP≈≈CSIPCSIPCSIPCSIPCSIP≈≈CSIP…類型255類型32類型5類型4類型3類型2類型1類型0類型31供用戶定義的中斷(共224個)保留的中斷(共27個)專用的中斷(共5個)0000:03FFH0000:007FH0000:007EH0000:0014H0000:0013H0000:0010H0000:000FH0000:0008H0000:0007H0000:0004H0000:0003H0000:0000H0000:000CH0000:000BH溢出中斷斷點中斷除數(shù)為0中斷單步中斷非屏蔽中斷8086/8088系統(tǒng)中的256個中斷分為以下三大類:(1)專用中斷。它們對應(yīng)于類型0~4,它們有明確的定義和處理功能,分別對應(yīng)于除法出錯、單步中斷、不可屏蔽中斷、斷點中斷和溢出中斷,用戶不能修改。(2)從類型5~31共27個中斷是系統(tǒng)保留的中斷,提供給系統(tǒng)使用,這些中斷中,有的沒有使用,但是為了保持系統(tǒng)之間的兼容性以及與將來Intel系統(tǒng)的兼容,用戶不能對這些中斷進行自行定義。(3)從類型32~255共224個中斷,這類中斷原則上是可以由用戶定義的??啥x為由INTn指令引入軟中斷,可以是通過INTR引腳直接引入,或者通過中斷控制器8259A引入可屏蔽中斷,使用時用戶要裝入相應(yīng)的入口地址。但是,這類中斷類型號中,有的系統(tǒng)已分配有固定的用處,比如類型號為21H的中斷已定義為操作系統(tǒng)MS-DOS的系統(tǒng)調(diào)用。6.2.3硬件中斷硬件中斷也叫外部中斷,由I/O設(shè)備或外部電路產(chǎn)生。8086/8088CPU中的硬件中斷分為兩種:1.非屏蔽中斷NMI從CPU的NMI引腳引入從NMI引腳引入的中斷為非屏蔽中斷,它不受中斷允許標(biāo)志的影響。非屏蔽中斷的類型碼為2,因此非屏蔽中斷處理子程序的入口地址存放在開始的4個單元中。2.可屏蔽中斷INTR從CPU的INTR引腳引入一般外部設(shè)備請求的中斷都是從CPU的INTR端引入的可屏蔽中斷。當(dāng)CPU接收到一個可屏蔽中斷請求時,如果中斷允許標(biāo)志IF為1,那么CPU就會在執(zhí)行完當(dāng)前指令后響應(yīng)這一中斷請求。至于IF的設(shè)置和清除,則可以通過指令或調(diào)試工具來實現(xiàn)。3.硬件中斷的響應(yīng)和時序CPU響應(yīng)外設(shè)中斷并轉(zhuǎn)入中斷服務(wù)程序的過程要依次完成以下操作:(1)執(zhí)行第一個中斷響應(yīng)總線周期,發(fā)負(fù)脈沖,通知外部設(shè)備接口中斷請求已被響應(yīng),同時封鎖總線,禁止其他總線主模塊發(fā)總線請求。(2)執(zhí)行第二個中斷響應(yīng)總線周期,從數(shù)據(jù)總線上讀取中斷類型碼存入內(nèi)部暫存器。(3)將標(biāo)志寄存器的內(nèi)容壓入堆棧。(4)將IF和TF清零。清除IF是為了在中斷響應(yīng)過程中禁止其他外部中斷,以免中斷響應(yīng)過程被中斷請求打擾;清除TF是為了避免CPU以單步方式執(zhí)行中斷服務(wù)子程序。(5)保護斷點。即將當(dāng)前指令的下一條指令的段地址CS值和段內(nèi)偏移地址IP值壓入棧,使中斷處理完畢后正確地返回斷點處繼續(xù)執(zhí)行主程序。(6)轉(zhuǎn)入中斷處理子程序。根據(jù)(2)得到的類型碼,從中斷向量表中找到中斷向量并轉(zhuǎn)入相應(yīng)的中斷服務(wù)子程序。(7)中斷返回。中斷服務(wù)程序結(jié)束時,CPU依次從堆棧中彈出IP、CS和FR的內(nèi)容,然后按照IP和CS值返回主程序的斷點處繼續(xù)執(zhí)行原來的程序,返回斷點的一系列操作是由IRET中斷返回指令實現(xiàn)的。標(biāo)志入棧令TEMP=TF清除IF、TF執(zhí)行中斷服務(wù)程序調(diào)用中斷服務(wù)程序CS、IP入棧有NMI嗎?TEMP=1?彈出CS和IP彈出標(biāo)志IF=1?結(jié)束當(dāng)前指令是內(nèi)部中斷?是NMI中斷?是INTR中斷?TF=1?執(zhí)行下一條指令中斷響應(yīng)讀類型碼n是否是是是是有4.中斷服務(wù)子程序不同的中斷源,其中斷服務(wù)子程序的功能不同,但所有的中斷服務(wù)子程序都有著相同的結(jié)構(gòu)模式。(1)中斷服務(wù)程序的開始要用壓棧指令保護現(xiàn)場,即保護CPU內(nèi)有關(guān)寄存器的值以及中斷服務(wù)程序中要使用的寄存器值。(2)用STI指令開中斷,以便在中斷處理過程中允許優(yōu)先級更高的中斷進入實現(xiàn)嵌套。(3)執(zhí)行中斷處理程序,進行具體的中斷服務(wù),這是中斷服務(wù)程序的主要部分。(4)中斷處理模塊執(zhí)行完后,用CLI指令關(guān)中斷,恢復(fù)現(xiàn)場過程中禁止其他中斷。(5)通過一系列的出棧指令POP將保護現(xiàn)場時壓入堆棧的內(nèi)容以相反的次序彈出,即恢復(fù)現(xiàn)場。(6)開放中斷。(7)中斷返回指令返回主程序。執(zhí)行中斷返回指令,使堆棧中保存的斷點值和標(biāo)志值分別裝入IP、CS和標(biāo)志寄存器。6.2.4軟件中斷8086/8088系統(tǒng)中,提供了直接調(diào)用中斷處理子程序的軟件手段,這就是中斷指令I(lǐng)NTn。通過中斷指令使CPU執(zhí)行中斷處理子程序的方法叫軟件中斷。軟件中斷是由CPU內(nèi)部所引起的,也叫內(nèi)部中斷。軟件中斷可以由中斷指令I(lǐng)NTn引起,由CPU的某些運算錯誤(如除法出錯等)引起或由調(diào)試程序DEBUG設(shè)置的中斷。CPU執(zhí)行程序過程中,會發(fā)現(xiàn)運算中出現(xiàn)的一些錯誤,這時就會中斷程序的執(zhí)行,自動啟動內(nèi)部邏輯轉(zhuǎn)去執(zhí)行所需要的中斷服務(wù)程序處理這些錯誤。(1)類型0中斷(除法出錯中斷)。除法過程中,若除數(shù)為0或商超過了寄存器所能表示的范圍,這時就會產(chǎn)生一個類型為0的中斷,轉(zhuǎn)入類型0的中斷服務(wù)程序。(2)類型1中斷(單步中斷)。在CPU執(zhí)行一條指令前,如果檢測到標(biāo)志寄存器中的單步標(biāo)志IF=1,則8086/8088就處于單步工作方式,即每執(zhí)行完一條指令后都自動產(chǎn)生一個1型中斷,執(zhí)行一次單步中斷處理程序,此程序用來顯示一些內(nèi)部寄存器的值以及一些附帶信息。因此,單步中斷一般用于程序的調(diào)試。(3)類型3中斷(斷點中斷)。斷點中斷是專供在程序中設(shè)置斷點用的,可以很方便地插入到程序的任何地方,插入類型3中斷的地方便是斷點。在斷點處,停止正常的執(zhí)行過程,以便進行某種特殊的處理。也用于程序的調(diào)試。(4)類型4中斷(運算溢出中斷)。CPU檢測溢出標(biāo)志OF=1時,就執(zhí)行一條INTO指令,之后立即產(chǎn)生一個類型4中斷,此時中斷處理程序給出錯誤標(biāo)志。由中斷指令I(lǐng)NTn引起中斷。CPU執(zhí)行一條INTn指令后立即產(chǎn)生中斷,并且會調(diào)用系統(tǒng)中相應(yīng)的中斷處理程序來完成中斷功能。指令中的n為中斷類型碼。軟件中斷具有以下特點:(1)執(zhí)行一條指令進入中斷處理子程序,并從指令本身獲得中斷類型碼。(2)進入中斷時,不需要執(zhí)行中斷響應(yīng)總線周期,不需要發(fā)響應(yīng)信號,也不需要從數(shù)據(jù)總線上獲取中斷類型碼。(3)除單步中斷外,內(nèi)部中斷不受中斷允許標(biāo)志IF的影響,即不論IF=1還是0,任何一個軟件中斷均可執(zhí)行。單步中斷需要IF=1時才能執(zhí)行。(4)除單步中斷外,所有內(nèi)部中斷都比外部中斷的優(yōu)先級別高。(5)正在執(zhí)行軟件中斷時,如果有外部中斷請求,且是不可屏蔽中斷請求,則會在執(zhí)行完當(dāng)前指令之后立即予以響應(yīng);如果來了可屏蔽中斷請求,且中斷是開放的(即IF=1),則也會在當(dāng)前指令執(zhí)行完后響應(yīng)可屏蔽中斷請求。(6)軟件中斷沒有隨機性。軟件中斷是由安排在程序中的指令引起的,何時執(zhí)行此指令是可事先知道的,硬件中斷是由外設(shè)發(fā)中斷請求信號引起的,外設(shè)何時發(fā)出請求是完全隨機的,無法預(yù)測。6.3可編程中斷控制器8259A

可編程中斷控制器8259A可用于管理8級優(yōu)先權(quán)中斷,將9片8259A級聯(lián)可構(gòu)成最多可達64級優(yōu)先權(quán)的中斷管理系統(tǒng)。8259A具有多種工作方式,自動提供中斷服務(wù)程序入口地址。6.3.18259A的外部引腳和內(nèi)部結(jié)構(gòu)1.8259A的外部引腳信號2.8259A的內(nèi)部結(jié)構(gòu)8259A的內(nèi)部結(jié)構(gòu)如圖6-11所示。

8259A由以下幾部分組成:(1)數(shù)據(jù)總線緩沖器。(2)讀/寫控制電路。(3)級聯(lián)緩沖器/比較器。(4)中斷請求寄存器IRR。(5)中斷屏蔽寄存器IMR。(6)中斷服務(wù)寄存器ISR。(7)優(yōu)先級判別器PR。(8)控制電路。控制電路中斷服務(wù)寄存器(ISR)優(yōu)先級判別器(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)IR0IR1IR7內(nèi)部總線3.8259A的編程結(jié)構(gòu)8259A內(nèi)部由兩大部分組成。

上半部分包括中斷請求寄存器IRR、優(yōu)先級別器PR和中斷服務(wù)寄存器ISR,它們構(gòu)成8259A的中斷處理部分,稱為處理部件。這部分的功能是接收和處理從IR1~IR0引腳進入的外部中斷,其工作過程體現(xiàn)了8259A本身的工作原理。即接收中斷請求,進行中斷判優(yōu),記錄當(dāng)前正在處理的中斷優(yōu)先級,實現(xiàn)中斷嵌套,向CPU發(fā)出中斷申請,當(dāng)CPU響應(yīng)中斷時,接收CPU的兩個連續(xù)中斷響應(yīng)信號,將控制轉(zhuǎn)移到中斷服務(wù)程序中去。8259A的下半部有7個8位寄存器,是8259A的控制部分,它們都是可編程、用指令對其內(nèi)容進行設(shè)置的。7個寄存器分為兩組。

ICW1~ICW4為一組,稱為初始化命令寄存器,用來接收CPU向8259A發(fā)出的初始化命令以決定8259A的工作方式。初始化命令一般在計算機系統(tǒng)啟動時由初始化程序發(fā)出設(shè)置,一旦設(shè)定,在系統(tǒng)工作過程中就不再改變。

OCW1~OCW3為一組,稱為操作命令寄存器,用來存放CPU向8259A發(fā)出的操作命令,操作命令由應(yīng)用程序設(shè)置,用以在工作過程中對8259A進行動態(tài)控制。操作命令可以多次被設(shè)置。6.3.28259A的工作方式1.設(shè)置中斷優(yōu)先級的方式8259A對中斷優(yōu)先級的設(shè)置方式有:全嵌套方式、特殊全嵌套方式、優(yōu)先級自動循環(huán)方式和優(yōu)先級特殊循環(huán)方式4種。(1)全嵌套方式。(2)特殊全嵌套方式。(3)優(yōu)先級自動循環(huán)方式。(4)優(yōu)先級特殊循環(huán)方式。2.結(jié)束中斷方式8259A的中斷結(jié)束方式分為兩類:自動結(jié)束方式和非自動結(jié)束方式。非自動結(jié)束方式又分為兩種:一種叫普通的中斷結(jié)束方式,另一種叫特殊的中斷結(jié)束方式。(1)中斷自動結(jié)束方式。(2)一般的中斷結(jié)束方式(即一般EOI方式)。(3)特殊的中斷結(jié)束方式。3.屏蔽中斷源的方式將IF清零,可以禁止所有的可屏蔽中斷進入CPU,即屏蔽掉所有的中斷源。但如果要屏蔽某個或某幾個中斷源,則要用8259A的中斷優(yōu)先級管理的屏蔽方式來實現(xiàn)。8259A對中斷源的屏蔽方式有以下兩種:(1)普通屏蔽方式。(2)特殊屏蔽方式。4.8259A與系統(tǒng)總線的連接方式8259A與系統(tǒng)總線的連接有緩沖和非緩沖兩種方式。(1)緩沖方式。(2)非緩沖方式。5.引入中斷請求方式中斷請求的引入方式也叫中斷觸發(fā)方式。外部設(shè)備可以采用三種觸發(fā)方式向8259A提出中斷請求:電平觸發(fā)方式、邊沿觸發(fā)方式和中斷查詢方式。(1)邊沿觸發(fā)方式。(2)電平觸發(fā)方式。(3)中斷查詢方式。要實現(xiàn)查詢功能,CPU執(zhí)行的查詢軟件中必須有查詢命令,查詢命令是CPU執(zhí)行的查詢軟件中向8259A發(fā)查詢命令OCW3來完成的,其過程是:系統(tǒng)先關(guān)中斷,然后CPU用OUT指令向8259A的偶地址端口發(fā)查詢命令字OCW3,如果在此之前某IR有中斷請求,則8259A將ISR寄存器中的對應(yīng)位置“1”,且立即組成查詢字。6.3.38259A的初始化命令字和操作命令字8259A的各種工作方式都要通過軟件來設(shè)置,工作狀態(tài)的改變動態(tài)也需要通過軟件來實現(xiàn),也就是對8259A的編程。1.8259A的初始化命令初始化命令字ICW1~ICW4用來設(shè)定8259A的初始化狀態(tài),在初始化程序中向8259A發(fā)出,而且整個工作過程中保持不變。(1)ICW1:芯片控制初始化命令。ICW1應(yīng)寫入偶地址端口,即A0為0,其格式如圖6-13所示。01LTIMADISNGLIC4A0D4D3D2D1D0D5D6D7(2)ICW2:設(shè)置中斷類型碼的初始化命令。

1IR4IR3IR2IR1IR0IR5IR6IR7A0D4D3D2D1D0D5D6D7(3)ICW3:標(biāo)識主片/從片初始化命令字。

100ID2ID1ID0000A0D4D3D2D1D0D5D6D7(4)ICW4:方式控制初始化命令字。2.8259A的初始化流程在8259A進入正常運行之前,必須將系統(tǒng)中的每一片8259A進行初始化。初始化就是將上述的初始化命令字按固定的次序?qū)懭?259A的指定端口。8259A的初始化流程如圖6-17所示。用ICW4設(shè)置是否級聯(lián)中斷為請示信號格式后面是否用ICW4用ICW2設(shè)置類型碼是否為級聯(lián)方式?本片為主片嗎?設(shè)置ICW2,各位對應(yīng)IR0~IR7的連接情況設(shè)置ICW2,高5位為0,低3位為標(biāo)識位需要用ICW4?用ICW4設(shè)置是否為特殊全嵌套方式是否為緩沖方式是否為自動結(jié)束中斷方式是否為8086/8088系統(tǒng)結(jié)束是是否否否是例如:某8086/8088微機系統(tǒng)內(nèi)有一片8259A,中斷請求信號采用邊沿觸發(fā)方式,中斷類型碼基值為18H,中斷優(yōu)先級管理采用全嵌套方式,即非特殊全嵌套,中斷結(jié)束方式采用普通EOI方式,系統(tǒng)中采用數(shù)據(jù)緩沖器,8259A的端口地址為3F80H和3F81H,對該8259A進行初始化,程序如下:MOV DX,3F80H

;設(shè)置8259A的偶地址端口MOV AL,13H

;設(shè)置ICW1初始化命令字OUT DX,AL

;將ICW1輸出到偶地址端口(ICW1寄存器)MOV DX,3F81H

;設(shè)置8259A的奇地址端口MOV AL,18H

;ICW2,中斷類型號基值OUT DX,AL

;將ICW2送入奇地址端口MOV AL,0DH

;ICW4OUT DX,AL

;將ICW4送入奇地址端口HLT3.8259A的操作命令字8259A有3個操作命令:OCW1、OCW2、OCW3。操作命令字在應(yīng)用程序中設(shè)置,沒有固定的順序,而且可以根據(jù)需要多次寫入,但對各操作命令字的寫入口地址有嚴(yán)格的規(guī)定,OCW1必須寫入奇地址端口,OCW2和OCW3必須寫入偶地址端口。(1)OCW1:中斷屏蔽操作命令字。OCW1用來實現(xiàn)對中斷源的屏蔽功能,其內(nèi)容直接置入IMR屏蔽寄存器。1M4M3M2M1M0M5M6M7A0D4D3D2D1D0D5D6D7(2)OCW2:優(yōu)先級循環(huán)方式和中斷結(jié)束方式操作命令字。OCW2有兩個功能:設(shè)置中斷結(jié)束方式和設(shè)置優(yōu)先級循環(huán)方式,要求寫入偶地址端口,其格式如圖6-19所示。100L2L1L0EOISLRA0D4D3D2D1D0D5D6D7(3)OCW3:特殊屏蔽方式和中斷查詢方式操作命令字。OCW3有三個功能:設(shè)置和撤消特殊方式、設(shè)置中斷查詢方式、設(shè)置對8259A內(nèi)部寄存器的讀出命令。001PRRRISSMMESMM0A0D4D3D2D1D0D5D6D7

ODFIFTF

12111098131415AFPFCFZFSF43210567溢出標(biāo)志方向標(biāo)志中斷允許標(biāo)志單步標(biāo)志符號標(biāo)志零標(biāo)志輔助進位標(biāo)志奇偶校驗標(biāo)志進位標(biāo)志OCW3的中斷查詢功能為:P位為中斷查詢方式位,當(dāng)P=1時,使8259A處于中斷查詢方式,當(dāng)CPU向8259A偶地址端口寫入一個查詢命令后,再執(zhí)行一條輸入指令,CPU就可讀入8259A提供的查詢字,查詢字表明了當(dāng)前有無中斷請求以及中斷請求中優(yōu)先級最高的是哪一個。8259A的查詢字格式如圖6-21所示。4.8259A級聯(lián)使用舉例某8086微機系統(tǒng)由兩片8259A級聯(lián)構(gòu)成中斷控制系統(tǒng),從片8259A接主片的IR1,主片的IR4和IR5有中斷引入,中斷類型號為44H和45H。兩個中斷服務(wù)程序在同一段內(nèi),段基址為1000H,偏移地址分別為1500H和2000H。從片的IR3和IR6上有中斷請求引入,類型號分別為43H和46H,中斷服務(wù)程序在同一段內(nèi),段基址為2000H,偏移地址為4000H和4700H,試分別對主8259A和叢8259A進行初始化編程。中斷系統(tǒng)的硬件連接如圖6-22所示。+5V外部中斷請求RDWRINTAD7~D0CSA0 INCAS2CAS1主8259ACAS0CAS2RDWRINTAD7~D0

溫馨提示

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

最新文檔

評論

0/150

提交評論