




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理盧偉Email:Office:大黑樓B705TEL:84706161大連理工大學(xué)自動(dòng)化系第六章中斷系統(tǒng)6.1基本概念6.28086/8088的中斷系統(tǒng)6.3可編程中斷控制器Intel8259A
6.1基本概念1、中斷的定義當(dāng)CPU正常運(yùn)行時(shí),系統(tǒng)外部、內(nèi)部或現(xiàn)行程序本身若出現(xiàn)緊急事件,處理器必須立即強(qiáng)行中止現(xiàn)行程序的運(yùn)行,改變機(jī)器的工作狀態(tài)并啟動(dòng)相應(yīng)的程序來(lái)處理這些事件,然后再恢復(fù)原來(lái)的程序運(yùn)行,這一過(guò)程稱(chēng)為中斷。2、中斷源和中斷請(qǐng)求能夠向CPU發(fā)出中斷請(qǐng)求的中斷來(lái)源稱(chēng)為中斷源。I/O設(shè)備(CRT、打印機(jī)等)、數(shù)據(jù)設(shè)備(磁盤(pán)、磁帶等)、實(shí)時(shí)時(shí)鐘、故障信號(hào)、軟件中斷等都是中斷源。中斷源一般分為硬件中斷源和軟件中斷源。中斷源能發(fā)出中斷請(qǐng)求信號(hào)到CPU,所以中斷源中一般要求有中斷請(qǐng)求觸發(fā)器,請(qǐng)求信號(hào)有邊沿請(qǐng)求和電平請(qǐng)求兩種。3、中斷系統(tǒng)的目的維持系統(tǒng)正常工作,提高系統(tǒng)效率;實(shí)時(shí)處理;為故障處理作準(zhǔn)備。4、中斷分類(lèi)中斷分外部中斷和內(nèi)部中斷兩大類(lèi);其中外部中斷分為兩類(lèi):⑴可屏蔽中斷INTR,由標(biāo)志寄存器中的IF位控制;⑵不可屏蔽中斷NMI,不受IF位控制。5、中斷系統(tǒng)功能⑴中斷處理:發(fā)現(xiàn)中斷請(qǐng)求、響應(yīng)中斷請(qǐng)求、執(zhí)行中斷服務(wù)程序、中斷返回。⑵中斷控制:中斷優(yōu)先權(quán)排隊(duì)、中斷嵌套6.1基本概念當(dāng)系統(tǒng)中有多個(gè)中斷時(shí),有可能出現(xiàn)兩個(gè)或兩個(gè)以上的中斷源同時(shí)提出中斷請(qǐng)求,這時(shí)要求CPU根據(jù)中斷優(yōu)先權(quán)由高到低依次處理。中斷嵌套如下圖所示。假定有兩個(gè)中斷源A和B,A的級(jí)別高于B,當(dāng)CPU正在處理B中斷時(shí),允許A能中斷B的中斷處理,轉(zhuǎn)去執(zhí)行A的中斷服務(wù)程序,在高級(jí)中斷A處理完后,返回到原來(lái)打斷處,繼續(xù)處理B的中斷服務(wù)程序。圖中為兩級(jí)中斷,還可以進(jìn)行多級(jí)中斷。
6.1基本概念二、中斷處理過(guò)程1、中斷檢測(cè)中斷源向CPU發(fā)中斷請(qǐng)求是隨機(jī)的,大多數(shù)CPU在現(xiàn)行指令周期結(jié)束時(shí)檢測(cè)有無(wú)中斷請(qǐng)求。8086CPU在每條指令的最后一個(gè)時(shí)鐘周期檢測(cè)中斷請(qǐng)求信號(hào)輸入線INTR。2、CPU響應(yīng)中斷的條件
CPU檢測(cè)到INTR上有中斷請(qǐng)求,要響應(yīng)它需滿足以下條件:⑴CPU開(kāi)放中斷,也就是標(biāo)志寄存器中的(可用開(kāi)中斷指令STI置1),表示開(kāi)放可屏蔽中斷;IF位=0(用關(guān)中斷指令CLI清0),表示關(guān)閉可屏蔽中斷。⑵CPU在現(xiàn)行指令結(jié)束后響應(yīng)中斷6.1基本概念3、CPU響應(yīng)中斷及處理過(guò)程滿足上述條件后,CPU響應(yīng)中斷,轉(zhuǎn)入中斷周期,完成以下操作:1.關(guān)中斷
CPU在響應(yīng)中斷時(shí),發(fā)出中斷響應(yīng)信號(hào)INTA,同時(shí)內(nèi)部自動(dòng)地關(guān)中斷,以禁止接受其他的中斷請(qǐng)求。2.保存斷點(diǎn)把斷點(diǎn)處的指令指針I(yè)P值和CS值壓入堆棧,以使中斷處理完后能正確地返回主程序斷點(diǎn)。
CPU響應(yīng)中斷時(shí),會(huì)停止當(dāng)前執(zhí)行程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,原程序被打斷的地方稱(chēng)為“斷點(diǎn)”。斷點(diǎn)地址是指中斷處理程序結(jié)束后,返回原程序恢復(fù)執(zhí)行的第一條指令的地址,又稱(chēng)“返回地址”。6.1基本概念6.1基本概念3.識(shí)別中斷源
CPU要對(duì)中斷請(qǐng)求進(jìn)行處理,必須找到相應(yīng)的中斷服務(wù)程序的入口地址,這就是中斷的識(shí)別。4.保護(hù)現(xiàn)場(chǎng)為了不使中斷服務(wù)程序的運(yùn)行影響主程序的狀態(tài),必須把斷點(diǎn)處有關(guān)寄存器(指在中斷服務(wù)程序中要使用的寄存器)的內(nèi)容以及標(biāo)志寄存器的狀態(tài)壓入堆棧保護(hù)?,F(xiàn)場(chǎng)是指進(jìn)入中斷服務(wù)程序之前CPU各個(gè)寄存器的狀態(tài)。5.執(zhí)行中斷服務(wù)程序在執(zhí)行中斷服務(wù)程序中,可在適當(dāng)時(shí)刻重新開(kāi)放中斷,以便允許響應(yīng)較高優(yōu)先級(jí)的中斷。6.恢復(fù)現(xiàn)場(chǎng)并返回即把中斷服務(wù)程序執(zhí)行前壓入堆棧的現(xiàn)場(chǎng)信息彈回原寄存器,然后執(zhí)行中斷返回指令,從而返回主程序繼續(xù)運(yùn)行。需要說(shuō)明的是,在上述中斷響應(yīng)及處理的6項(xiàng)操作中,前3項(xiàng)是中斷響應(yīng)過(guò)程,一般由中斷系統(tǒng)硬件負(fù)責(zé)完成;后3項(xiàng)是中斷處理過(guò)程,通常是由用戶(hù)或系統(tǒng)程序設(shè)計(jì)者編制的中斷處理程序(軟件)負(fù)責(zé)完成。針對(duì)一個(gè)具體的系統(tǒng)或機(jī)型,中斷服務(wù)程序設(shè)計(jì)者應(yīng)該清楚該系統(tǒng)在中斷響應(yīng)時(shí),中斷響應(yīng)硬件完成了哪些操作(如標(biāo)志寄存器是否已被壓入堆棧),還需中斷處理軟件(中斷服務(wù)程序)完成哪些操作。6.1基本概念6.1基本概念三、中斷優(yōu)先級(jí)和中斷嵌套
1、中斷優(yōu)先級(jí):在實(shí)際系統(tǒng)中,多個(gè)中斷請(qǐng)求可能同時(shí)出現(xiàn),但中斷系統(tǒng)只能按一定的次序來(lái)響應(yīng)和處理,這時(shí)CPU必須確定服務(wù)的次序,即根據(jù)中斷源的重要性和實(shí)時(shí)性,照顧到操作系統(tǒng)處理的方便,對(duì)中斷源的響應(yīng)次序進(jìn)行確定。這個(gè)響應(yīng)次序稱(chēng)為中斷優(yōu)先級(jí)(priority)。通常,可用軟件查詢(xún)法確定中斷優(yōu)先級(jí),也可用硬件組成中斷優(yōu)先級(jí)編碼電路來(lái)實(shí)現(xiàn)。現(xiàn)代PC機(jī)中多采用可編程中斷控制器(如8259A)來(lái)處理中斷優(yōu)先級(jí)問(wèn)題。(1)軟件查尋法確定中斷優(yōu)先級(jí)采用軟件查詢(xún)法解決中斷優(yōu)先級(jí)只需要少量硬件電路。如下圖所示,系統(tǒng)中有多種外部設(shè)備,將這些設(shè)備的中斷請(qǐng)求信號(hào)相“或”,從而產(chǎn)生一個(gè)總的中斷請(qǐng)求信號(hào)INTR發(fā)給CPU。
磁盤(pán)磁帶CRT顯示鍵盤(pán)輸入打印輸出電源故障紙帶輸入保留INTR當(dāng)CPU響應(yīng)中斷請(qǐng)求進(jìn)入中斷處理程序后,必須在中斷處理程序的開(kāi)始部分安排一段帶優(yōu)先級(jí)的查詢(xún)程序,查詢(xún)的先后順序就體現(xiàn)了不同設(shè)備的中斷優(yōu)先級(jí),即先查的設(shè)備具有較高的優(yōu)先級(jí),后查的設(shè)備具有較低的優(yōu)先級(jí)。一般來(lái)說(shuō)總是先查速度較快或是實(shí)時(shí)性較高的設(shè)備。軟件查詢(xún)的流程如下圖所示。6.1基本概念保護(hù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)A申請(qǐng)服務(wù)?B申請(qǐng)服務(wù)?C申請(qǐng)服務(wù)?外設(shè)A中斷服務(wù)程序NNN外設(shè)B中斷服務(wù)程序外設(shè)C中斷服務(wù)程序YYY軟件查詢(xún)方式實(shí)現(xiàn)對(duì)中斷優(yōu)先級(jí)的控制6.1基本概念(2)菊花鏈優(yōu)先級(jí)排隊(duì)電路菊花鏈優(yōu)先級(jí)排隊(duì)電路是一種優(yōu)先級(jí)管理的簡(jiǎn)單硬件方案。它是在每個(gè)設(shè)備接口設(shè)置一個(gè)簡(jiǎn)單的邏輯電路,以便根據(jù)優(yōu)先級(jí)順序來(lái)傳遞或截留CPU發(fā)出的中斷響應(yīng)信號(hào)INTA,以實(shí)現(xiàn)響應(yīng)中斷的優(yōu)先順序。典型的菊花鏈優(yōu)先級(jí)結(jié)構(gòu)如下圖所示。6.1基本概念菊花鏈優(yōu)先級(jí)排隊(duì)電路中斷請(qǐng)求CPU
INTR接口設(shè)備3接口設(shè)備2接口設(shè)備1菊花鏈邏輯菊花鏈邏輯菊花鏈邏輯中斷相應(yīng)信號(hào)集電極開(kāi)路門(mén)+5V6.1基本概念中斷請(qǐng)求信號(hào)(高電平有效)中斷響應(yīng)信號(hào)(低電平有效)INTR菊花鏈邏輯6.1基本概念2.中斷嵌套當(dāng)CPU正在執(zhí)行優(yōu)先級(jí)較低的中斷服務(wù)程序時(shí),允許響應(yīng)比它優(yōu)先級(jí)高的中斷請(qǐng)求,而將正在處理的中斷暫時(shí)掛起,這就是中斷嵌套。此時(shí),CPU首先為級(jí)別高的中斷服務(wù),待優(yōu)先級(jí)高的中斷服務(wù)結(jié)束后,再返回到剛才被中斷的較低的那一級(jí),繼續(xù)為它進(jìn)行中斷服務(wù)。如下圖所示。STIIRETSTIIRET............6.1基本概念中斷嵌套的深度(中斷服務(wù)程序又被中斷的層次)受到堆棧容量的限制。所以在編寫(xiě)中斷服務(wù)程序時(shí),必須要考慮有足夠的堆棧單元來(lái)保留多次中斷的斷點(diǎn)信息及有關(guān)寄存器的內(nèi)容。6.1基本概念一、中斷分類(lèi)
8086/8088的中斷系統(tǒng)如下圖所示。
1、外部中斷
8086/8088CPU有兩條引腳提供外部中斷源請(qǐng)求中斷:一條是高電平有效的可屏蔽中斷INTR;另一條是正跳變有效的非屏蔽中斷NMI。外部中斷又稱(chēng)硬件中斷。⑴可屏蔽中斷:可屏蔽中斷是由用戶(hù)定義的外部硬件中斷,受中斷標(biāo)志位IF的控制。⑵非屏蔽中斷:不受中斷標(biāo)志位IF的控制。
2、內(nèi)部中斷內(nèi)部中斷又稱(chēng)軟件中斷,主要來(lái)自CPU內(nèi)部的軟件中斷。6.28086/8088的中斷系統(tǒng)INTn指令中斷邏輯斷點(diǎn)中斷(INT3)溢出中斷(INTO,OF=1)單步中斷(TF=1)除法錯(cuò)中斷軟件中斷非屏蔽中斷請(qǐng)求中斷控制器(8259A)NMIINTRIRQ0....IRQ7可屏蔽中斷
硬件中斷6.28086/8088的中斷系統(tǒng)二、中斷向量表1、中斷向量的定義所謂中斷向量,實(shí)際上就是中斷服務(wù)程序的入口地址,每個(gè)中斷類(lèi)型對(duì)應(yīng)一個(gè)中斷向量。每個(gè)中斷向量占4字節(jié)的存儲(chǔ)單元。其中,前兩個(gè)字節(jié)單元存放中斷服務(wù)程序入口地址的偏移量(IP),低字節(jié)在前,高字節(jié)在后;后兩個(gè)字節(jié)單元存放中斷服務(wù)程序入口地址的段基值(CS),也是低字節(jié)在前,高字節(jié)在后。2、中斷向量表存放中斷向量的存儲(chǔ)區(qū)稱(chēng)為中斷向量表。通常在存儲(chǔ)器的低地址區(qū)。3、8086/8088的中斷向量表
8086/8088有256種中斷類(lèi)型,類(lèi)型號(hào)為0-255(或0-FFH),共有256個(gè)中斷向量,每個(gè)占4個(gè)存儲(chǔ)單元,所以需要1024個(gè)字節(jié),在存儲(chǔ)器的最低端,地址從00000H-003FFH,這塊地址空間就是中斷向量表。6.28086/8088的中斷系統(tǒng)CSIPCSIPCSIPCSIPCSIPCSIPCSIP︽︾︽︾︽︾︽︾類(lèi)型32類(lèi)型31(十進(jìn)制)供用戶(hù)定義的中斷(共224個(gè))類(lèi)型5類(lèi)型4類(lèi)型3類(lèi)型2類(lèi)型1類(lèi)型0保留的中斷(共27個(gè))專(zhuān)用的中斷(共5個(gè))0000:03FFH0000:007FH0000:007EH0000:0014H0000:0013H0000:0010H0000:000FH0000:000CH0000:000BH0000:0008H0000:0007H0000:0004H0000:0003H0000:0000H溢出中斷斷點(diǎn)中斷非屏蔽中斷單步中斷除數(shù)為0中斷8086/8088的中斷向量表在中斷向量表中,各中斷向量按中斷類(lèi)型碼從0到255順序存放。知道了中斷類(lèi)型號(hào),便可計(jì)算出相應(yīng)的中斷向量在表中存放的位置,稱(chēng)為中斷向量表地址,或稱(chēng)為中斷向量指針。從中斷向量表地址中取出中斷向量,便得到了該中斷類(lèi)型號(hào)的中斷服務(wù)程序入口地址。即中斷類(lèi)型號(hào)×4=中斷向量指針的低地址(中斷向量指針的低地址)→(IP)中斷類(lèi)型號(hào)×4+2=中斷向量指針的高地址(中斷向量指針的高地址)→(CS)CPU響應(yīng)中斷時(shí),只需要把中斷類(lèi)型碼N左移2位(乘以4),即可得到中斷向量在中斷向量表中的對(duì)應(yīng)地址4N(該中斷向量所占4個(gè)字節(jié)單元的第一個(gè)字節(jié)單元的地址),然后把由此地址開(kāi)始的兩個(gè)低字節(jié)單元的內(nèi)容裝入IP寄存器:IP←(4N,4N+1);再把兩個(gè)高字節(jié)單元的內(nèi)容裝入CS寄存器:CS←(4N+2,4N+3)。這就是使程序轉(zhuǎn)入中斷類(lèi)型碼為N的中斷服務(wù)程序的控制過(guò)程,至于中斷類(lèi)型碼N的來(lái)源,對(duì)于不同的中斷類(lèi)型(內(nèi)部中斷、外部中斷),情況有所不同,詳見(jiàn)后述。6.28086/8088的中斷系統(tǒng)87H65H43H21H0000:009FH0000:009CH例如,中斷類(lèi)型碼為27H的中斷所對(duì)應(yīng)的中斷向量應(yīng)存放在從0000H:009CH開(kāi)始的4個(gè)連續(xù)字節(jié)單元中。如果相應(yīng)存儲(chǔ)單元的內(nèi)容如下圖所示,那么27H號(hào)中斷的中斷服務(wù)程序的入口地址即為8765H:4321H。6.28086/8088的中斷系統(tǒng)4、8086/8088中斷的分類(lèi)⑴前5個(gè)是專(zhuān)用中斷(類(lèi)型0-4)
類(lèi)型0:除數(shù)為0中斷類(lèi)型1:?jiǎn)尾街袛囝?lèi)型2:NMI中斷類(lèi)型3:斷點(diǎn)中斷類(lèi)型4:溢出中斷
⑵保留的中斷(類(lèi)型號(hào)05-3FH):這是Intel公司為軟件、硬件開(kāi)發(fā)保留的中斷類(lèi)型,大部分用于系統(tǒng)中斷,如20H-3FH為DOS中斷調(diào)用。
⑶供用戶(hù)定義的中斷(類(lèi)型號(hào)40H-FFH):使用用戶(hù)自己定義的中斷,用戶(hù)必須把該中斷的中斷向量填寫(xiě)到中斷向量表中。填寫(xiě)方法有兩種:①用指令填寫(xiě)②用DOS功能調(diào)用來(lái)設(shè)置中斷向量(設(shè)置中斷向量:21號(hào)中斷的25H子功能;取中斷向量:21號(hào)中斷的35H子功能;)6.28086/8088的中斷系統(tǒng)三、外部中斷由外部的中斷請(qǐng)求信號(hào)啟動(dòng)的中斷,稱(chēng)為外部中斷,也稱(chēng)硬件中斷。8086CPU為外部中斷提供兩條引線,即NMI和INTR,用來(lái)輸入中斷請(qǐng)求信號(hào)。
1、非屏蔽中斷(NMI):不受中斷標(biāo)志位的控制,中斷類(lèi)型號(hào)為2,所以中斷向量放在0000:0008開(kāi)始的4個(gè)單元中。NMI中斷一般用于緊急情況的處理。
2、可屏蔽中斷(INTR):受中斷標(biāo)志位的控制,IF=1,CPU才能響應(yīng)INTR中斷。CPU響應(yīng)INTR中斷時(shí),往INTA引腳上發(fā)兩個(gè)負(fù)脈沖,外設(shè)接到第二個(gè)負(fù)脈沖后,立即往數(shù)據(jù)總線上送出中斷類(lèi)型碼,供CPU讀取。中斷響應(yīng)需要兩個(gè)總線周期,如下圖所示。6.28086/8088的中斷系統(tǒng)四、內(nèi)部中斷內(nèi)部中斷即軟件中斷,它是由于CPU執(zhí)行了INTn(含INT3)、INTO指令,或者由于除法出錯(cuò)以及進(jìn)行單步操作所引起的中斷,主要包括INTn指令中斷、斷點(diǎn)中斷、溢出中斷、除法錯(cuò)中斷以及單步中斷。它不受IF標(biāo)志的控制,但單步中斷受TF標(biāo)志的控制。6.28086/8088的中斷系統(tǒng)T1T2T3T4TITITIT1T2T3T4第一個(gè)總線周期第二個(gè)總線周期三個(gè)空閑狀態(tài)中斷類(lèi)型碼CLK____INTAAD7~AD0(1)INTn指令中斷
8086系統(tǒng)提供了直接調(diào)用中斷處理子程序的手段,這就是中斷指令I(lǐng)NTn。指令中的中斷類(lèi)型碼n告訴CPU調(diào)用哪個(gè)中斷處理子程序。(2)除法錯(cuò)中斷(類(lèi)型0)在執(zhí)行除法指令DIV或IDIV后,若所得的商超出了目標(biāo)寄存器所能表示的范圍,比如用數(shù)值0作除數(shù),則CPU立即產(chǎn)生一個(gè)0型中斷。(3)溢出中斷(類(lèi)型4)若上一條指令執(zhí)行的結(jié)果使溢出標(biāo)志位OF置1,則緊接著執(zhí)行INTO指令時(shí),將引起類(lèi)型為4的內(nèi)部中斷,CPU將轉(zhuǎn)入溢出錯(cuò)誤處理;若OF=0時(shí),則INTO指令執(zhí)行空操作,即INTO指令不起作用。INTO指令通常安排在算術(shù)運(yùn)算指令之后,以便在發(fā)生溢出時(shí)能及時(shí)處理。6.28086/8088的中斷系統(tǒng)(4)單步中斷(類(lèi)型1)當(dāng)把CPU標(biāo)志寄存器的TF位置為1以后,CPU便處于單步工作方式。在單步工作方式下,CPU每執(zhí)行完一條指令,就會(huì)自動(dòng)產(chǎn)生一個(gè)1型中斷,進(jìn)入1型中斷處理程序。此處理程序顯示CPU內(nèi)部各寄存器的內(nèi)容并告知某些附帶的信息。(5)斷點(diǎn)中斷(類(lèi)型3)
和單步中斷類(lèi)似,斷點(diǎn)中斷也是一種調(diào)試程序的手段,并且常常和單步中斷結(jié)合使用。對(duì)一個(gè)大的程序,不可能對(duì)整個(gè)程序全部用單步方式來(lái)調(diào)試,而只能先將程序中的某一錯(cuò)誤確定在程序中的一小段中,再對(duì)這一小段程序用單步方式跟蹤調(diào)試。斷點(diǎn)中斷就是用來(lái)達(dá)到這個(gè)目的的。在所有INTn形式的指令中,只有斷點(diǎn)中斷指令I(lǐng)NT3是一條單字節(jié)長(zhǎng)的指令,其他中斷指令都是兩字節(jié)指令。6.28086/8088的中斷系統(tǒng)內(nèi)部中斷的特點(diǎn)是:(1)中斷類(lèi)型碼由CPU內(nèi)部自動(dòng)提供(含從INTn指令中自動(dòng)提?。恍枰獔?zhí)行中斷響應(yīng)總線周期(INTA總線周期)去讀取中斷類(lèi)型碼。(2)除單步中斷外,所有內(nèi)部中斷都不可以用軟件的方法來(lái)禁止(屏蔽)。單步中斷可以通過(guò)軟件將TF標(biāo)志置1或清0來(lái)予以允許或禁止。(3)除單步中斷外,所有內(nèi)部中斷的優(yōu)先級(jí)都比外部中斷高。6.28086/8088的中斷系統(tǒng)五、中斷響應(yīng)和中斷處理過(guò)程如下圖所示??善帘沃袛嘁鄡蓚€(gè)步驟,即要先判斷IF是否為1,若IF=1則進(jìn)入中斷響應(yīng),此時(shí)CPU要讀取中斷類(lèi)型碼,然后進(jìn)入所有中斷都要做的事:⑴將標(biāo)志寄存器FR的內(nèi)容壓入堆棧⑵將中斷允許標(biāo)志IF和單步標(biāo)志TF清零⑶將斷點(diǎn)保護(hù)到堆棧中。所謂斷點(diǎn)就是指響應(yīng)中斷時(shí),主程序中當(dāng)前指令下面的一條指令的段寄存器CS的值和指令指針寄存器IP的值壓入堆棧,先壓CS,再壓IP的值。⑷根據(jù)當(dāng)前中斷的中斷類(lèi)型碼查中斷向量表,得到中斷向量(中斷服務(wù)程序入口地址)分別裝入CS和IP,從而轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序。⑸執(zhí)行中斷服務(wù)程序,結(jié)束后恢復(fù)斷點(diǎn),從而繼續(xù)執(zhí)行原來(lái)的程序。6.28086/8088的中斷系統(tǒng)中斷優(yōu)先級(jí)除法錯(cuò),INTn,INTO最高NMIINTR單步最低8086/8088中斷優(yōu)先級(jí)YYYYNNNNNYY①①Y②③④⑤⑥執(zhí)行IRET指令NN結(jié)束當(dāng)前指令除法錯(cuò),INTO,INTn?NMIINTR?TF=1?執(zhí)行下一條指令I(lǐng)F=1?內(nèi)部自動(dòng)形成中斷類(lèi)型碼N讀中斷類(lèi)型碼N標(biāo)志壓入堆棧令TEMP=TF清除IF和TFCS和IP壓入堆棧(4N,4N+1)IP(4N+2,4N+3)CS執(zhí)行中斷處理程序IP、CS出棧標(biāo)志寄存器出棧返回被中斷的主程序有NMI?TEMP=1?8086/8088中斷響應(yīng)和中斷處理過(guò)程需要說(shuō)明的是,在圖13.12所示的中斷響應(yīng)和處理過(guò)程中,其中的①~⑥步(含①′)是由處理器內(nèi)部的中斷系統(tǒng)硬件自動(dòng)完成的,即無(wú)需程序員的直接控制和干預(yù);其后的中斷處理過(guò)程則是通過(guò)執(zhí)行中斷服務(wù)程序(軟件)來(lái)完成的。6.28086/8088的中斷系統(tǒng)六、可屏蔽中斷的響應(yīng)和處理過(guò)程1、INTR中斷的全過(guò)程首先中斷請(qǐng)求信號(hào)INTR由外部設(shè)備產(chǎn)生,并送到8086的INTR引腳上。如果IF=1,則在CPU完成正在執(zhí)行的指令后,便開(kāi)始響應(yīng)中斷,(同時(shí)把下一跳指令的CS,IP壓入堆棧)步驟如下:⑴CPU讀取中斷類(lèi)型號(hào)n。CPU通過(guò)INTA發(fā)中斷響應(yīng)信號(hào)給接口,并啟動(dòng)中斷過(guò)程。這個(gè)響應(yīng)信號(hào)將使發(fā)中斷請(qǐng)求的接口把一個(gè)字節(jié)的中斷類(lèi)型號(hào)通過(guò)數(shù)據(jù)總線送給CPU;⑵按先后順序把PSW(即FR)、CS和IP壓入堆棧;⑶清除IF和TF標(biāo)志;⑷把4×n+2的字存儲(chǔ)單元中的內(nèi)容讀入CS中,把4×n的字存儲(chǔ)單元中的內(nèi)容讀入IP中,即得到中斷向量;⑸CPU從新的CS:IP值開(kāi)始執(zhí)行中斷服務(wù)程序,若允許中斷嵌套,則一般在中斷服務(wù)程序中保存寄存器后,就安排一條STI指令,以便響應(yīng)優(yōu)先權(quán)較高的中斷。在中斷服務(wù)程序末尾安排一條IRET返回指令。
6.28086/8088的中斷系統(tǒng)外設(shè)接口⑨IRET指令使舊的IP、CS、PSW彈出堆棧4N4N+2新的(IP)新的(CS)舊的(IP)舊的(CS)舊的(PSW)⑤現(xiàn)行PSW、CS、IP壓棧INTR____INTAIPCSPSW(FR)中斷類(lèi)型碼寄存器②CPU完成現(xiàn)行指令,發(fā)出中斷響應(yīng)信號(hào)Q中斷請(qǐng)求Q中斷屏蔽①接口發(fā)中斷請(qǐng)求信號(hào)INTR③CPU讀取中斷類(lèi)型碼N被中斷的程序.....IRET中斷服務(wù)程序...存儲(chǔ)器中斷向量表︽︾︽︾︽︾16位④清除IF和TF⑦轉(zhuǎn)入中斷服務(wù)程序⑩返回被中斷的程序⑧開(kāi)放中斷(可選)CPU⑥取CS、IP新值STI...︽︾可屏蔽中斷全過(guò)程至于不可屏蔽NMI中斷,與上述操作基本類(lèi)似,只是不需讀取中斷類(lèi)型碼,因?yàn)樗闹袛囝?lèi)型碼由CPU內(nèi)部自動(dòng)產(chǎn)生。2、中斷類(lèi)型號(hào)的獲得⑴除法錯(cuò)誤、單步中斷、非屏蔽中斷、斷點(diǎn)中斷和溢出中斷分別由CPU內(nèi)部自動(dòng)提供中斷類(lèi)型號(hào)(0-4)。⑵軟件中斷則是從指令流中,即在第2個(gè)字節(jié)中讀得中斷類(lèi)型號(hào)。⑶外部中斷INTR可以用不同的方法獲得中斷類(lèi)型號(hào),通常由硬件提供,如8259A芯片可以將中斷類(lèi)型號(hào)送到數(shù)據(jù)總線上,由CPU讀取而獲得。6.28086/8088的中斷系統(tǒng)6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)Intel8259A用于管理和控制8086/8088的外部中斷請(qǐng)求,實(shí)現(xiàn)優(yōu)先級(jí)判決,提供中斷類(lèi)型碼,屏蔽中斷輸入等功能。使用單片8259A可以管理8級(jí)中斷,采用級(jí)聯(lián)方式,可擴(kuò)充到64級(jí)(用9片8259A)。封裝形式28腳雙列直插(28-pinDIP),DIP:Dual-In-linePackage,如下頁(yè)圖所示。IR0IR7單片
INTINTA8259AINTRINTACPU...中斷請(qǐng)求
CPU8259A.....IR0IR7級(jí)聯(lián)主8259AIR0從...IR7
8259AIR0從...IR7INTAINTR123456789101112131428272625242322212019181716158259A
CS
WRRDD7D6D4D5D2D3D0D1CAS0CAS1GNDINTAIR7IR6IR4IR5IR2IR3IR0IR1INTCAS2SP/ENVCCA06.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)
--片選信號(hào)(ChipSelect)低電平有效,來(lái)自地址譯碼器的輸出只有有效時(shí),CPU才能對(duì)8259A進(jìn)行讀寫(xiě)操作。--寫(xiě)信號(hào),低電平有效,來(lái)自CPU的輸出;當(dāng)有效且有效時(shí),使8259A接受CPU送來(lái)的命令字。--讀信號(hào),低電平有效,來(lái)自CPU的輸出;當(dāng)有效且有效時(shí),使8259A將狀態(tài)信息放到數(shù)據(jù)總路線上,供
CPU檢測(cè)。D7-D0--雙向數(shù)據(jù)總線,接到系統(tǒng)數(shù)據(jù)總線的D7-D0上,用來(lái)傳送控制字、狀態(tài)字和中斷類(lèi)型號(hào)。IR7-IR0
--中斷請(qǐng)求信號(hào),輸入,來(lái)自外部接口電路。(單片時(shí))INT
--向CPU發(fā)出的中斷請(qǐng)求信號(hào)。(單片時(shí))CSWRCSWRRD6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)一、8259A的引腳如上頁(yè)圖所示,它有28個(gè)引腳,為標(biāo)準(zhǔn)芯片,即左下角為地,右上角為電源。WRRDRDCSCS--中斷響應(yīng)信號(hào),由此接收CPU發(fā)來(lái)的中斷響應(yīng)脈沖。INTAA0
--地址輸入信號(hào),用于對(duì)8259A內(nèi)部寄存器的尋址。CAS2-CAS0
--級(jí)聯(lián)線(CASCADE
LINES),傳送3位標(biāo)識(shí)碼,用于區(qū)分特定的從控制器。雙向:對(duì)于主片為輸出,對(duì)于從片為輸入。--從片/允許緩沖器信號(hào)。雙功能引腳:作為輸入時(shí),8259A作為主片(=1)8259A作為從片(=0)作為輸出時(shí),用來(lái)啟動(dòng)(允許)數(shù)據(jù)總線收發(fā)器(如8286)。究竟是作為輸入還是輸出,取決于8259A是否工作于“緩沖方式”(即8259A是否通過(guò)一個(gè)“數(shù)據(jù)總線收發(fā)器”與系統(tǒng)總線相連)SP/EN6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)SP/ENSP/EN
二、8259A的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器讀/寫(xiě)控制電路級(jí)連緩沖器/比較器中斷服務(wù)寄存器(ISR)中斷請(qǐng)求寄存器(IRR)優(yōu)先權(quán)判別器(PR)中斷屏蔽寄存器(IMR)控制邏輯
SP/EN。。。IR0IR1IR2IR6IR7內(nèi)部總線CAS0CAS1CAS2____INTAINT
WR
RDCSA0D7~D06.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)1、數(shù)據(jù)總線緩沖器2、讀寫(xiě)控制電路,一片8259A只占用兩個(gè)端口地址,由A0來(lái)選擇,其它高位地址譯碼輸出作為片選信號(hào)CS。WR、RD分別為寫(xiě)信號(hào)和讀信號(hào)。3、級(jí)聯(lián)緩沖器/比較器,擴(kuò)充中斷用。4、中斷請(qǐng)求寄存器IRR,8位寄存器,每一位對(duì)應(yīng)IR0-IR7,某根線上有中斷請(qǐng)求,則IRR中對(duì)應(yīng)位置1。5、中斷服務(wù)寄存器ISR,CPU當(dāng)前正處理的IRi中斷請(qǐng)求時(shí),該寄存器i位置1(i=0-7)。6.中斷屏蔽寄存器IMR,當(dāng)IMR的第i位為1時(shí),禁止IRi來(lái)的中斷請(qǐng)求。7、優(yōu)先級(jí)判別器PR,當(dāng)有多個(gè)中斷同時(shí)請(qǐng)求中斷時(shí),判別當(dāng)前優(yōu)先級(jí)最高的中斷請(qǐng)求進(jìn)入系統(tǒng)。8、控制邏輯,控制芯片內(nèi)個(gè)部件協(xié)調(diào)一致地工作??刂七壿嬛邪瑑蓚€(gè)寄存器組:初始化命令寄存器組:ICW1~ICW4
操作命令寄存器組:OCW1~OCW36.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)三、8259A的工作方式1中斷觸發(fā)方式,電平觸發(fā)方式或邊沿觸發(fā)方式(由低到高的正跳變),利用初始化命令字ICW1來(lái)設(shè)置。2中斷結(jié)束方式,中斷請(qǐng)求處理結(jié)束時(shí),需將ISR中相應(yīng)位清零。⑴自動(dòng)中斷結(jié)束方式(自動(dòng)EOI方式),中斷處理結(jié)束時(shí)自動(dòng)將ISR中相應(yīng)位清零,只需將初始化命令字ICW4中的AEOI置為1即可實(shí)現(xiàn)這種方式。⑵普通中斷結(jié)束方式(普通EOI方式),用在8259A的全嵌套方式下,即在CPU處理完一個(gè)中斷請(qǐng)求時(shí)需8259A發(fā)送一個(gè)EOI命令,8259A收到EOI后,將ISR中最高優(yōu)先級(jí)的置1位清零(即當(dāng)前正在處理的中斷)。用操作命令字OCW2中的EOI=1,SL=0,R=0的設(shè)置來(lái)實(shí)現(xiàn)。⑶特殊中斷結(jié)束方式,在非全嵌套方式下,通過(guò)向8259A發(fā)一條特殊中斷結(jié)束命令來(lái)判斷要清除ISR中置1位中的哪一位。用操作命令字OCW2中的EOI=1,SL=1,R=0的設(shè)置來(lái)實(shí)現(xiàn),此時(shí)OCW2中的L2、L1、L0這3位指出了到底要清除ISR中的哪一位。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)3、優(yōu)先級(jí)管理方式⑴全嵌套方式:全嵌套方式是8259A初始化后自動(dòng)進(jìn)入的基本工作方式。此時(shí)優(yōu)先級(jí)從IR0到IR7依次降低。當(dāng)某一中斷處理時(shí),可響應(yīng)比它高的中斷,但禁止比它低的或同級(jí)中斷進(jìn)入。當(dāng)某一中斷請(qǐng)求處理結(jié)束時(shí),CPU向8259A發(fā)送中斷結(jié)束命令EOI,以使ISR中相應(yīng)位清零。⑵特殊全嵌套方式:與⑴的普通全嵌套方式差不多,區(qū)別是CPU處理某一中斷時(shí),允許比它高的和與它同級(jí)的中斷請(qǐng)求進(jìn)入,而只禁止比它低的中斷請(qǐng)求。⑶自動(dòng)循環(huán)方式(普通EOI循環(huán)方式):在這種方式下,任何一級(jí)中斷請(qǐng)求被處理完后,CPU向8259A發(fā)送中斷結(jié)束命令EOI,以使ISR中優(yōu)先級(jí)最高的置1位清零,并重新賦給它最低優(yōu)先級(jí),而將最高優(yōu)先級(jí)賦給比它低一級(jí)的中斷請(qǐng)求,其它中斷請(qǐng)求的優(yōu)先級(jí)則以循環(huán)方式類(lèi)推。⑷特殊EOI循環(huán)方式,用戶(hù)根據(jù)要求用置優(yōu)先級(jí)命令指定最低優(yōu)先級(jí),例如設(shè)置IRi為最低優(yōu)先級(jí),則最高優(yōu)先級(jí)為IRi+1,其它各級(jí)按循環(huán)方式類(lèi)推。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)4、中斷屏蔽方式⑴普通屏蔽方式,將IMR中某一位或幾位置1,則其對(duì)應(yīng)的中斷被屏蔽(即這些中斷被禁止)。⑵特殊屏蔽方式,一般情況處理一個(gè)中斷時(shí),禁止同級(jí)或低級(jí)中斷進(jìn)入,但有些場(chǎng)合,在處理某個(gè)中斷時(shí),僅希望對(duì)本級(jí)屏蔽,可以響應(yīng)高級(jí)或低級(jí)中斷,此時(shí)采用這種方式。特殊屏蔽方式通過(guò)操作命令字OCW3中的ESMM和SMM同時(shí)置為1,并將IMR對(duì)應(yīng)于本級(jí)中斷的位置1來(lái)實(shí)現(xiàn)。5、連接系統(tǒng)總線的方式(1)緩沖方式(ICW4的BUF=1)8259A通過(guò)總線驅(qū)動(dòng)器(如8286)和數(shù)據(jù)總線相連。在緩沖方式下,8259A的作為輸出(有效),此時(shí),由ICW4的M/S位來(lái)定義(標(biāo)識(shí))本8259A是主片還是從片。SP/ENEN6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)(2)非緩沖方式(ICW4的BUF=0)即8259A直接與數(shù)據(jù)總線相連。在“非緩沖方式下”,8259A的作為輸入(有效)。此時(shí),由端來(lái)標(biāo)識(shí)本8259A是主片還是從片。在“非緩沖方式下”,ICW4的BUF=0,M/S位無(wú)意義。SP/ENSPSP/EN四、8259A的控制字及編程使用8259A的控制寄存器可分為兩組,一組是初始化命令字ICW1-ICW4;另一組是操作命令字OCW1~OCW3。每片8259A具有兩個(gè)內(nèi)部端口地址,一個(gè)偶地址端口(A0=0),一個(gè)奇地址端口(A0=1),其他高位地址碼由用戶(hù)定義,用來(lái)產(chǎn)生8259A的片選信號(hào)。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)1、初始化命令字,初始化命令字用來(lái)對(duì)8259A初始化,有四個(gè),設(shè)置次序依次為:ICW1、ICW2、ICW3和ICW4。(1)ICW1ICW1使用偶地址端口(A0=0),其中D4位為特征位(標(biāo)志位),此時(shí)該位固定為1,表示當(dāng)前寫(xiě)入的是ICW1(OCW1也用偶地址端口寫(xiě)入,但OCW1的D4位為0)。ICW1的格式如下:A7A6A51LTIMADISNGLIC40ICW1A0D7D6D5D4D3D2D1D06.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)解釋?zhuān)篒C4
規(guī)定初始化時(shí)是否要寫(xiě)入ICW4。IC4=0表示不寫(xiě)入ICW4,IC4=1表示寫(xiě)入ICW4。SNGL規(guī)定8259A的用法。SNGL=0表示為級(jí)聯(lián)方式,同時(shí)要寫(xiě)入ICW3;SNGL=1表示為單片方式,不要寫(xiě)入ICW3。ADI為配合8085工作時(shí)選用CALL指令字節(jié)數(shù)而設(shè),8086不用這一位。LTIM規(guī)定中斷檢測(cè)方式.LTIM=0表示邊沿觸發(fā),LTIM=1表示電平觸發(fā)。A5~A7在8085微處理器中用這幾位作中斷向量字,8086不用這三位。(2)ICW2ICW2使用奇地址端口(A0=1),緊跟在ICW1之后設(shè)置。ICW2的格式如下:6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)A15/T7A14/T6A13/T5A12/T4A11/T3A10A10A101ICW2A0D7D6D5D4D3D2D1D0對(duì)于8086系統(tǒng),ICW2的D7~D3位用來(lái)確定中斷類(lèi)型碼N的高5位T7~T3位,低3位D2~D0無(wú)定義;對(duì)于非8086系統(tǒng),ICW2的8位全部用來(lái)作中斷向量地址的高8位A15~A8。在8086系統(tǒng)中,8259A在中斷響應(yīng)周期的第二個(gè)總線周期內(nèi),從數(shù)據(jù)總線上向CPU送出8位中斷類(lèi)型碼N的值。其中高5位D7~D3即T7~T3,由ICW2在初始化編程時(shí)設(shè)定;低3位D2~D0則由8259A根據(jù)中斷進(jìn)入的引腳序號(hào)而自動(dòng)填入,從IR0~I(xiàn)R7依次為000~111。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)(3)ICW3ICW3只在級(jí)聯(lián)方式中使用,端口地址為奇地址,其格式如下:S7S6S5S4S3S2/ID2S1/ID1S0/ID01ICW3A0D7D6D5D4D3D2D1D0對(duì)于主片8259A,ICW3表示哪些IRi引腳接有從片8259A。接有從片8259A的相應(yīng)S位置1,否則置0。例如,若IR2、IR6上接有從片8259A,且其他IR引腳未接有從片8259A,則ICW3為01000100。對(duì)于從片8259A用ICW3中的ID2~I(xiàn)D0表示本8259A接在主片8259A的哪一根IR引腳上。與IR0~I(xiàn)R7分別對(duì)應(yīng)的ID碼為000~111。例如,若從片8259A接在主片8259A的IR6上,則從片8259A的ICW3應(yīng)設(shè)定為:ID2=1,ID1=1,ID0=0。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)(4)ICW4在8086系統(tǒng)中必須設(shè)置ICW4,端口地址為奇地址,其格式如下:000SFNMBUFM/SAEOIuPM1ICW4A0D7D6D5D4D3D2D1D0其中,μPM規(guī)定是哪種系統(tǒng)。μPM=0表示是8080/8085系統(tǒng),μPM=1表示是8086系統(tǒng)。AEOI表示中斷結(jié)束方式。AEOI=0為普通EOI方式,AEOI=1表示自動(dòng)EOI方式。BUF表示本8259A工作于緩沖方式還是非緩沖方式。BUF=1為緩沖方式,BUF=0為非緩沖方式。(BUFFER)6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)其中,μPM規(guī)定是哪種系統(tǒng)。μPM=0表示是8080/8085系統(tǒng),μPM=1表示是8086系統(tǒng)。AEOI表示中斷結(jié)束方式。AEOI=0為普通EOI方式,AEOI=1表示自動(dòng)EOI方式。BUF表示本8259A工作于緩沖方式還是非緩沖方式。BUF=1為緩沖方式,BUF=0為非緩沖方式。(BUFFER)在緩沖方式下,SP/EN引腳作為輸出能使信號(hào)給總線收發(fā)器。此時(shí),由M/S位來(lái)定義本8259A是主片還是從片。所謂8259A工作于緩沖方式,是指在多片8259A級(jí)聯(lián)的大系統(tǒng)中,8259A通過(guò)總線收發(fā)器(驅(qū)動(dòng)器)和數(shù)據(jù)總線相連。M/S位用來(lái)在緩沖方式下規(guī)定本8259A是主片還是從片。M/S=0表示是從片,M/S=1表示是主片。在非緩沖方式(BUF=0)下,M/S位無(wú)效。SFNM表示中斷嵌套方式。SFNM=0表示全嵌套方式,SFNM=1表示特殊全嵌套方式。8259A的初始化命令字(ICW)是在加電之后由CPU按特定的順序?qū)懭氲?。也就是說(shuō),各初始化命令字的識(shí)別一方面依賴(lài)于地址信號(hào)A0和初始化命令字中的特定標(biāo)識(shí)位,另一方面也與寫(xiě)入的先后次序有關(guān)。8259A的初始化順序及相應(yīng)的尋址標(biāo)志如下圖所示。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)開(kāi)始ICW1(A0=0D4=1)ICW2(A0=1)SNGL=0?(級(jí)聯(lián)方式?)ICW3(A0=1)IC4=1?ICW4(A0=1)準(zhǔn)備好接受中斷NNYY①在初始化操作過(guò)程的開(kāi)頭,總要依次寫(xiě)入命令字ICW1和ICW2。②只有當(dāng)ICW1中的SNGL位=0,才需寫(xiě)入ICW3。對(duì)于主片和從片均需寫(xiě)入ICW3,而且它們的格式不同。③只有當(dāng)ICW1中的IC4=1時(shí),才需寫(xiě)入ICW4。對(duì)于8086系統(tǒng),ICW4總是需要設(shè)置的。在系統(tǒng)中,單片8259A與80x86CPU配置時(shí),初始化要寫(xiě)入的預(yù)置命令字是:ICW1、ICW2、ICW4;而級(jí)聯(lián)系統(tǒng)要寫(xiě)入預(yù)置命令字是:ICW1、ICW2、ICW3和ICW4。初始化過(guò)程結(jié)束,8259A進(jìn)入所設(shè)置的狀態(tài)后,才能寫(xiě)入操作命令字(OCW)。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)2、操作命令字,有三個(gè)OCW1-OCW3,設(shè)置次序沒(méi)有規(guī)定先后,這點(diǎn)與ICW設(shè)置不同,使用時(shí)可根據(jù)需要靈活選擇不同的操作命令字寫(xiě)入到8259A中。當(dāng)然,也需注意奇、偶端口地址及有關(guān)標(biāo)識(shí)位的規(guī)定。(1)OCW1OCW1為中斷屏蔽操作命令字,用來(lái)實(shí)現(xiàn)中斷屏蔽功能,要求寫(xiě)入8259A的奇地址端口(A0=1)。OCW1的內(nèi)容被直接置入中斷屏蔽寄存器IMR中,其格式如下:M7M6M5M4M3M2M1M01OCW1A0D7D6D5D4D3D2D1D0其中M0~M7分別對(duì)應(yīng)8259A的IR0~I(xiàn)R7。當(dāng)OCW1中的Mi位為1時(shí),則相應(yīng)的IRi的中斷請(qǐng)求就被屏蔽。例如,若通過(guò)OCW1向中斷屏蔽寄存器寫(xiě)入代碼11110000,將導(dǎo)致中斷輸入IR7~I(xiàn)R4被屏蔽掉,而IR3~I(xiàn)R0撤銷(xiāo)屏蔽。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)(2)OCW2OCW2用來(lái)設(shè)置優(yōu)先級(jí)循環(huán)方式和中斷結(jié)束方式。占用偶地址端口(A0=0)。OCW2的格式如下:RSLEOI00L2L1L00OCW2A0D7D6D5D4D3D2D1D0其中,D4D3=00是OCW2的標(biāo)識(shí)位。R表示中斷優(yōu)先級(jí)是否按循環(huán)方式設(shè)置。R=1表示采用循環(huán)方式,R=0表示采用非循環(huán)方式。SL表示OCW2中的L2、L1、L0是否有效。SL=1表示有效,SL=0表示無(wú)效。EOI為中斷結(jié)束命令位。EOI=1使當(dāng)前ISR寄存器的相應(yīng)位清0。當(dāng)ICW4中的AEOI為0時(shí),ISR中的相應(yīng)置1位就要由該命令位來(lái)清除。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)L2、L1、L0在SL=1時(shí)配合R、SL、EOI的設(shè)置,用來(lái)確定一個(gè)中斷優(yōu)先級(jí)的編碼。L2、L1、L0的8種編碼000~111分別與IR0~I(xiàn)R7相對(duì)應(yīng)。由R、SL、EOI三位可以定義多種不同的中斷結(jié)束命令或優(yōu)先級(jí)循環(huán)方式。綜合起來(lái),R、SL、EOI的設(shè)置與其代表的意義如下表所示。R、SL、EOI的設(shè)置及意義RSLEOI意義001普通EOI命令011特殊EOI命令101普通EOI循環(huán)命令111特殊EOI循環(huán)命令000自動(dòng)EOI循環(huán)方式(復(fù)位)100自動(dòng)EOI循環(huán)方式(置位)110置優(yōu)先權(quán)命令010無(wú)操作6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)(3)OCW3OCW3的端口為偶地址(A0=0),其格式如下:ESMMSMM01PPRRIS0OCW3A0D7D6D5D4D3D2D1D0其中D4D3=01是OCW3的特征位。ESMM是特殊屏蔽方式允許位,SMM是特殊屏蔽方式位。當(dāng)ESMM為0時(shí),SMM的值不起用。當(dāng)ESMM為1時(shí),由SMM位決定是否工作在特殊屏蔽方式。當(dāng)ESMM=1,SMM=0時(shí),表示8259A不是工作在特殊屏蔽方式。當(dāng)ESMM=SMM=1時(shí),表示8259A工作在特殊屏蔽方式。P是查詢(xún)命令(PollCommand)標(biāo)識(shí)位。當(dāng)P=1時(shí),表示向8259A發(fā)查詢(xún)命令,查詢(xún)當(dāng)前是否有中斷請(qǐng)求,以及在有中斷請(qǐng)求時(shí),當(dāng)前正在請(qǐng)求的中斷最高優(yōu)先級(jí)是哪一級(jí)。查詢(xún)的中斷狀態(tài)字的格式如下:6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)IR------------W2W1W00A0D7D6D5D4D3D2D1D00:無(wú)中斷請(qǐng)求1:有中斷請(qǐng)求當(dāng)前正在請(qǐng)求的中斷的最高優(yōu)先級(jí)例6.1對(duì)8259A按下述要求進(jìn)行初始化編程:(1)工作于8086系統(tǒng),單片8259A,邊沿觸發(fā)方式。(2)中斷類(lèi)型碼初始值為08H,即IR0~I(xiàn)R7對(duì)應(yīng)的中斷類(lèi)型碼為08H~0FH。(3)中斷結(jié)束時(shí),用普通中斷結(jié)束命令,固定優(yōu)先級(jí)。8259A的端口地址為20H,21H。6.3可編程中斷控制器8259A(8259AProgrammableInterruptController-PIC)實(shí)現(xiàn)上述要求的初始化程序如下:MOVAL,13H;ICW1,邊沿觸發(fā),
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 5 觀察一瓶水教學(xué)設(shè)計(jì)-2023-2024學(xué)年科學(xué)一年級(jí)下冊(cè)教科版
- 標(biāo)識(shí)項(xiàng)目制作合同范本
- 4 保溫和散熱 教學(xué)設(shè)計(jì)-2023-2024學(xué)年科學(xué)五年級(jí)上冊(cè)人教鄂教版
- Unit 1 Lesson 5 Where Is Danny(教學(xué)設(shè)計(jì))-2024-2025學(xué)年冀教版(三起)英語(yǔ)四年級(jí)下冊(cè)
- 布料加工合同范本
- 法律合作建房合同范本
- 蜜餞工廠轉(zhuǎn)讓合同范本
- 20 美麗的小興安嶺 教學(xué)設(shè)計(jì)-2024-2025學(xué)年三年級(jí)語(yǔ)文上冊(cè)統(tǒng)編版
- 維修閥門(mén)合同范本
- 成華區(qū)租房合同范本
- 2025江西上饒經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)招商集團(tuán)限公司招聘29人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 石油行業(yè)海洋石油勘探與開(kāi)發(fā)方案
- 勞動(dòng)保護(hù)知識(shí)培訓(xùn)課件
- 山東工業(yè)職業(yè)學(xué)院《家政職業(yè)經(jīng)理人》2023-2024學(xué)年第一學(xué)期期末試卷
- 水果加工工廠規(guī)劃
- 十八洞精準(zhǔn)扶貧課件
- 2024年湖北省恩施利川市林業(yè)局直屬事業(yè)單位招聘18人歷年管理單位遴選500模擬題附帶答案詳解
- 第九單元跨學(xué)科實(shí)踐活動(dòng)8海洋資源的綜合利用與制鹽教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)下冊(cè)
- 河南省鄭州市外國(guó)語(yǔ)學(xué)校2025屆高考?jí)狠S卷英語(yǔ)試卷含解析
- 2024年教育創(chuàng)新:五年級(jí)下冊(cè)美術(shù)教案新解讀
- 中公遴選公務(wù)員筆試真題及答案
評(píng)論
0/150
提交評(píng)論