第9章 中斷控制接口8259A_第1頁(yè)
第9章 中斷控制接口8259A_第2頁(yè)
第9章 中斷控制接口8259A_第3頁(yè)
第9章 中斷控制接口8259A_第4頁(yè)
第9章 中斷控制接口8259A_第5頁(yè)
已閱讀5頁(yè),還剩86頁(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)介

1、9.1 中斷控制接口8259A教學(xué)重點(diǎn)n 8088 CPU的中斷系統(tǒng)(復(fù)習(xí)的中斷系統(tǒng)(復(fù)習(xí) P99)n8259A的中斷工作過(guò)程和工作方式的中斷工作過(guò)程和工作方式n8259A的初始化的初始化復(fù)習(xí): 中斷操作 P99斷點(diǎn)斷點(diǎn)主程序主程序中斷服務(wù)程序中斷服務(wù)程序中斷請(qǐng)求中斷請(qǐng)求對(duì)外設(shè)對(duì)外設(shè)進(jìn)行處理進(jìn)行處理繼續(xù)執(zhí)行繼續(xù)執(zhí)行返回?cái)帱c(diǎn)返回?cái)帱c(diǎn)nCPU在執(zhí)行程序中,在執(zhí)行程序中,被被內(nèi)部?jī)?nèi)部或或外部外部的事的事件所打斷,轉(zhuǎn)去執(zhí)件所打斷,轉(zhuǎn)去執(zhí)行一段預(yù)先安排好行一段預(yù)先安排好的的中斷服務(wù)程序中斷服務(wù)程序;服務(wù)結(jié)束后,又服務(wù)結(jié)束后,又返返回回原來(lái)的原來(lái)的斷點(diǎn)斷點(diǎn),繼,繼續(xù)執(zhí)行原來(lái)的程序續(xù)執(zhí)行原來(lái)的程序流程流程中

2、斷傳送流程返回8088中斷系統(tǒng)n8088的中斷系統(tǒng)采用的中斷系統(tǒng)采用向量中斷機(jī)制向量中斷機(jī)制n能夠處理能夠處理256個(gè)中斷個(gè)中斷n用中斷向量號(hào)用中斷向量號(hào)0 255區(qū)別區(qū)別n可屏蔽中斷還需要借助專用可屏蔽中斷還需要借助專用中斷控制器中斷控制器Intel 8259A實(shí)現(xiàn)實(shí)現(xiàn)優(yōu)先權(quán)管理優(yōu)先權(quán)管理1、8088的中斷類型(P100)非屏蔽中斷源非屏蔽中斷源中斷邏輯中斷邏輯INTO指令指令單步單步中斷中斷除法除法錯(cuò)誤錯(cuò)誤INT N指令指令CPUINTRNMI可屏蔽中斷源可屏蔽中斷源8259A中斷中斷控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外設(shè)設(shè)中中斷斷源源 INTA(1) 內(nèi)部中斷

3、n內(nèi)部中斷內(nèi)部中斷是由于是由于8088內(nèi)部執(zhí)行程序出現(xiàn)異內(nèi)部執(zhí)行程序出現(xiàn)異常引起的程序中斷常引起的程序中斷n利用內(nèi)部中斷,微處理器為用戶提供了發(fā)利用內(nèi)部中斷,微處理器為用戶提供了發(fā)現(xiàn)、調(diào)試并解決程序執(zhí)行時(shí)異常情況的有現(xiàn)、調(diào)試并解決程序執(zhí)行時(shí)異常情況的有效途徑效途徑n例如,例如,ROM-BIOS和和DOS系統(tǒng)利用內(nèi)部中系統(tǒng)利用內(nèi)部中斷為程序員提供了各種斷為程序員提供了各種功能調(diào)用功能調(diào)用(INT 21)(2) 外部中斷n外部中斷是由于外部中斷是由于8088外部提出外部提出中斷請(qǐng)求中斷請(qǐng)求引起引起的程序中斷的程序中斷n利用外部中斷,微機(jī)系統(tǒng)可以實(shí)時(shí)響應(yīng)外部利用外部中斷,微機(jī)系統(tǒng)可以實(shí)時(shí)響應(yīng)外部設(shè)備

4、的數(shù)據(jù)傳送請(qǐng)求,能夠及時(shí)處理外部意設(shè)備的數(shù)據(jù)傳送請(qǐng)求,能夠及時(shí)處理外部意外或緊急事件外或緊急事件n外部中斷外部中斷的原因是處理器外部隨機(jī)產(chǎn)生的,的原因是處理器外部隨機(jī)產(chǎn)生的,所以是真正的所以是真正的中斷中斷(Interrupt)n內(nèi)部中斷內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異常,的原因是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被稱為所以經(jīng)常被稱為異常異常(Exception) 非屏蔽中斷n通過(guò)非屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷通過(guò)非屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷請(qǐng)求,微處理器請(qǐng)求,微處理器無(wú)法禁止無(wú)法禁止,將在當(dāng)前指令執(zhí)行結(jié),將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個(gè)中斷被稱為非屏蔽中斷束予以響應(yīng),這

5、個(gè)中斷被稱為非屏蔽中斷n8088的非屏蔽中斷的的非屏蔽中斷的向量號(hào)為向量號(hào)為2,非屏蔽中斷請(qǐng)求,非屏蔽中斷請(qǐng)求信號(hào)為信號(hào)為NMIn非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:如:n電源掉電前的數(shù)據(jù)保護(hù)電源掉電前的數(shù)據(jù)保護(hù)可屏蔽中斷n外部通過(guò)外部通過(guò)可屏蔽中斷可屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中請(qǐng)求信號(hào)向微處理器提出的中斷,微處理器在斷,微處理器在允許可屏蔽中斷允許可屏蔽中斷的條件下,在當(dāng)前的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)指令執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號(hào),這個(gè)中斷就是可屏蔽中斷信號(hào),這個(gè)中斷就是可屏蔽中斷n8

6、088的可屏蔽中斷請(qǐng)求和響應(yīng)信號(hào)分別是的可屏蔽中斷請(qǐng)求和響應(yīng)信號(hào)分別是INTR和和INTA*;由;由IF標(biāo)志控制可屏蔽中斷是否允許響應(yīng);標(biāo)志控制可屏蔽中斷是否允許響應(yīng);向量號(hào)來(lái)自外部中斷控制器向量號(hào)來(lái)自外部中斷控制器n8088通常需要配合通常需要配合中斷控制器中斷控制器8259A共同處理可屏共同處理可屏蔽中斷蔽中斷n可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)中斷標(biāo)志IF的狀態(tài)nIF0:可屏蔽中斷:可屏蔽中斷不會(huì)不會(huì)被響應(yīng)被響應(yīng)n關(guān)中斷、禁止中斷、中斷屏蔽關(guān)中斷、禁止中斷、中斷屏蔽n系統(tǒng)復(fù)位,使系統(tǒng)復(fù)位,使IF0n任何一個(gè)中斷被響應(yīng),使任何一個(gè)中斷被響應(yīng),使IF0n

7、執(zhí)行指令執(zhí)行指令CLI,使,使IF0nIF1:可屏蔽中斷:可屏蔽中斷會(huì)會(huì)被響應(yīng)被響應(yīng)n開(kāi)中斷、允許中斷、中斷開(kāi)放開(kāi)中斷、允許中斷、中斷開(kāi)放n執(zhí)行指令執(zhí)行指令STI,使,使IF1n執(zhí)行指令執(zhí)行指令I(lǐng)RET恢復(fù)原恢復(fù)原IF狀態(tài)狀態(tài)明明確確IF標(biāo)標(biāo)志志的的狀狀態(tài)態(tài)是是關(guān)關(guān)鍵鍵2、中斷向量表n中斷向量:中斷向量:中斷服務(wù)程序的中斷服務(wù)程序的入口地址入口地址(首地址)(首地址)n邏輯地址含有段地址邏輯地址含有段地址CS和偏移地址和偏移地址IP(32位)位)n每個(gè)中斷向量的每個(gè)中斷向量的低字是偏移地址低字是偏移地址、高字是段地址高字是段地址,需占用需占用4個(gè)字節(jié)個(gè)字節(jié)n8088微處理器從物理地址微處理器從

8、物理地址000H開(kāi)始,依次安排各開(kāi)始,依次安排各個(gè)中斷向量,向量號(hào)也從個(gè)中斷向量,向量號(hào)也從0開(kāi)始開(kāi)始n256個(gè)中斷占用個(gè)中斷占用1KB區(qū)域,就形成區(qū)域,就形成中斷向量表中斷向量表向量號(hào)為向量號(hào)為N的中斷向量的物理地址的中斷向量的物理地址N4圖圖2-16 中斷向量表中斷向量表003FFH 003FCH 00080H 0007CH 00014H 00012H 0000CH 00008H 00004H 00000H 專用 中斷向量 (5 個(gè)) 系統(tǒng)保留 中斷向量 (27 個(gè)) 用戶可用 中斷向量(224 個(gè)) 16 位 CS IP 255 號(hào)向量 32 號(hào)向量 31 號(hào)向量 5 號(hào)向量 4 號(hào)向量

9、(溢出) 3 號(hào)向量 2 號(hào)向量(非屏蔽) 1 號(hào)向量(單步) 0 號(hào)向量(除法錯(cuò)) (2) 中斷向量和中斷向量表中斷向量和中斷向量表(斷點(diǎn))中斷的響應(yīng)過(guò)程中斷的響應(yīng)過(guò)程 當(dāng)當(dāng)CPU在在INTR引腳上接收到一個(gè)引腳上接收到一個(gè)高電平高電平的的中斷請(qǐng)求信號(hào)中斷請(qǐng)求信號(hào),并且當(dāng)前的并且當(dāng)前的中斷允許標(biāo)志為中斷允許標(biāo)志為1時(shí),時(shí),CPU就會(huì)在當(dāng)前指令執(zhí)行就會(huì)在當(dāng)前指令執(zhí)行完以后,開(kāi)始完以后,開(kāi)始響應(yīng)外部的中斷請(qǐng)求響應(yīng)外部的中斷請(qǐng)求。具體地說(shuō),就是。具體地說(shuō),就是CPU往往INTA引腳上發(fā)引腳上發(fā)兩個(gè)負(fù)脈沖兩個(gè)負(fù)脈沖,外設(shè)接到第,外設(shè)接到第2個(gè)負(fù)脈沖以后,立個(gè)負(fù)脈沖以后,立即往數(shù)據(jù)線上給即往數(shù)據(jù)線上給

10、CPU送來(lái)送來(lái)中斷類型碼中斷類型碼。CPU依次作下面幾件依次作下面幾件事:事: (1) 從從數(shù)據(jù)總線數(shù)據(jù)總線上讀取上讀取中斷類型碼中斷類型碼,將其存入內(nèi)部暫存器。,將其存入內(nèi)部暫存器。 (2) 將將標(biāo)志寄存器標(biāo)志寄存器的值推入的值推入堆棧堆棧。 (3) 把標(biāo)志寄存器的把標(biāo)志寄存器的中斷允許標(biāo)志中斷允許標(biāo)志IF和和單步標(biāo)志單步標(biāo)志TF清清零零。將將IF清零是為了能夠在中斷響應(yīng)過(guò)程中暫時(shí)屏蔽外部其他中清零是為了能夠在中斷響應(yīng)過(guò)程中暫時(shí)屏蔽外部其他中斷,以免還沒(méi)有完成對(duì)當(dāng)前中斷的響應(yīng)過(guò)程而又被另一個(gè)中斷,以免還沒(méi)有完成對(duì)當(dāng)前中斷的響應(yīng)過(guò)程而又被另一個(gè)中斷請(qǐng)求所打斷,清除斷請(qǐng)求所打斷,清除TF是為了避

11、免是為了避免CPU以單步方式執(zhí)行中斷以單步方式執(zhí)行中斷處理子程序。處理子程序。 (4) 將將斷點(diǎn)斷點(diǎn)保護(hù)到保護(hù)到堆棧堆棧中。中。斷點(diǎn)斷點(diǎn):是指響應(yīng)中斷時(shí),主程:是指響應(yīng)中斷時(shí),主程序中當(dāng)前指令下面的一條指令的地址,即序中當(dāng)前指令下面的一條指令的地址,即代碼段寄存器代碼段寄存器CS的值和的值和指令指針指令指針I(yè)P的值。只有保護(hù)了斷點(diǎn),才能在中斷處的值。只有保護(hù)了斷點(diǎn),才能在中斷處理子程序執(zhí)行完以后,正確返回到原程序繼續(xù)執(zhí)行。理子程序執(zhí)行完以后,正確返回到原程序繼續(xù)執(zhí)行。 (5) 根據(jù)根據(jù)中斷類型碼中斷類型碼,到,到中斷向量表中斷向量表中找到中找到中斷向量中斷向量,再根據(jù)中斷向量轉(zhuǎn)入相應(yīng)的再根據(jù)中

12、斷向量轉(zhuǎn)入相應(yīng)的中斷處理子程序中斷處理子程序。 例如:中斷類型碼為例如:中斷類型碼為0BH,則此中斷對(duì)應(yīng)的中斷向量的,則此中斷對(duì)應(yīng)的中斷向量的首字節(jié)在首字節(jié)在0BH4=2CH處,于是處,于是CPU在在0段的段的002CH,002DH,002EH,002FH這這4個(gè)字節(jié)中取得中斷向量,并個(gè)字節(jié)中取得中斷向量,并將前兩個(gè)字節(jié)中的內(nèi)容裝入將前兩個(gè)字節(jié)中的內(nèi)容裝入IP,將后兩個(gè)字節(jié)中的內(nèi)容裝,將后兩個(gè)字節(jié)中的內(nèi)容裝入入CS。這樣,。這樣,CPU要執(zhí)行的下一條指令就是中斷處理子程要執(zhí)行的下一條指令就是中斷處理子程序的第一條指令,也就是說(shuō),序的第一條指令,也就是說(shuō),CPU轉(zhuǎn)入了對(duì)中斷處理子程序轉(zhuǎn)入了對(duì)中斷

13、處理子程序的執(zhí)行。的執(zhí)行。4、中斷處理子程序的結(jié)構(gòu)模式(1) 中斷處理子程序的開(kāi)始必須通過(guò)一系列推入堆中斷處理子程序的開(kāi)始必須通過(guò)一系列推入堆棧指令來(lái)進(jìn)一步棧指令來(lái)進(jìn)一步保護(hù)保護(hù)中斷時(shí)的中斷時(shí)的現(xiàn)場(chǎng)現(xiàn)場(chǎng),即保護(hù),即保護(hù)CPU各寄存器的值各寄存器的值 (2) 設(shè)置中斷允許標(biāo)志設(shè)置中斷允許標(biāo)志IF來(lái)來(lái)開(kāi)放中斷開(kāi)放中斷,以允許級(jí)別,以允許級(jí)別較高的中斷請(qǐng)求進(jìn)入。較高的中斷請(qǐng)求進(jìn)入。(STI)(3) 中斷處理中斷處理的具體內(nèi)容的具體內(nèi)容 (4) 中斷處理子程序的尾部則是一系列彈出堆棧指中斷處理子程序的尾部則是一系列彈出堆棧指令,使得各寄存器恢復(fù)進(jìn)入中斷處理時(shí)的值。令,使得各寄存器恢復(fù)進(jìn)入中斷處理時(shí)的值

14、。(恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng))(5) 最后是最后是中斷返回指令中斷返回指令I(lǐng)RET,中斷返回指令的執(zhí),中斷返回指令的執(zhí)行會(huì)使堆棧中保存的斷點(diǎn)值和標(biāo)志值分別裝入行會(huì)使堆棧中保存的斷點(diǎn)值和標(biāo)志值分別裝入IP,CS和標(biāo)志寄存器和標(biāo)志寄存器。中斷處理子程序在位置上也必須是固定裝配的,而不是浮動(dòng)的。中斷處理子程序在位置上也必須是固定裝配的,而不是浮動(dòng)的。裝配的起始地址由裝配的起始地址由中斷向量表中斷向量表給出。給出。9.1 中斷控制器8259AnIntel 8259A是可編程中斷控制器是可編程中斷控制器ICn可用于管理可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中

15、斷的可屏蔽中斷n8259A的基本功能的基本功能n一片一片8259A可以可以管理管理8級(jí)中斷級(jí)中斷,可擴(kuò)展至,可擴(kuò)展至64級(jí)級(jí)n每一級(jí)中斷都可每一級(jí)中斷都可單獨(dú)被屏蔽或允許單獨(dú)被屏蔽或允許n在中斷響應(yīng)周期,可提供相應(yīng)的在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號(hào)中斷向量號(hào)n8259A設(shè)計(jì)有多種工作方式,可通過(guò)編程選擇設(shè)計(jì)有多種工作方式,可通過(guò)編程選擇一、 8259A的內(nèi)部結(jié)構(gòu)和引腳D7D0INTAINT中斷請(qǐng)求寄存器中斷請(qǐng)求寄存器中斷屏蔽寄存器中斷屏蔽寄存器數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器IR0IR7讀讀/寫寫控制控制邏輯邏輯級(jí)聯(lián)級(jí)聯(lián)緩沖器緩沖器比較器比較器RDWRA0CSCAS0CSA1CAS2SP/E

16、N優(yōu)先權(quán)判別電路優(yōu)先權(quán)判別電路中斷服務(wù)寄存器中斷服務(wù)寄存器控制邏輯控制邏輯1 1、讀寫控制邏輯、讀寫控制邏輯 該部件接收來(lái)自該部件接收來(lái)自CPU的讀寫命令,完成規(guī)的讀寫命令,完成規(guī)定的操作。操作過(guò)程由定的操作。操作過(guò)程由 、A0、 、 等等輸入信號(hào)共同控制。在輸入信號(hào)共同控制。在CPU寫寫8259A時(shí),時(shí),把寫入數(shù)據(jù)送至相應(yīng)的寄存器中。在把寫入數(shù)據(jù)送至相應(yīng)的寄存器中。在CPU讀讀8259A時(shí),相應(yīng)寄存器的內(nèi)容輸出到數(shù)時(shí),相應(yīng)寄存器的內(nèi)容輸出到數(shù)據(jù)總線上據(jù)總線上 CSWRRD2. 中斷控制寄存器n中斷請(qǐng)求寄存器中斷請(qǐng)求寄存器IRRn保存保存8條外界中斷請(qǐng)求信號(hào)條外界中斷請(qǐng)求信號(hào)IR0IR7的的請(qǐng)

17、求狀態(tài)請(qǐng)求狀態(tài)nDi位為位為1表示表示IRi引腳引腳有中斷請(qǐng)求有中斷請(qǐng)求;為;為0表示無(wú)請(qǐng)求表示無(wú)請(qǐng)求n中斷服務(wù)寄存器中斷服務(wù)寄存器ISRn保存正在被保存正在被8259A服務(wù)著服務(wù)著的的中斷狀態(tài)中斷狀態(tài)nDi位為位為1表示表示IRi中斷中斷正在服務(wù)正在服務(wù)中;為中;為0表示表示沒(méi)有被服務(wù)沒(méi)有被服務(wù)n中斷屏蔽寄存器中斷屏蔽寄存器IMRn保存對(duì)中斷請(qǐng)求信號(hào)保存對(duì)中斷請(qǐng)求信號(hào)IR的屏蔽狀態(tài)的屏蔽狀態(tài)nDi位為位為1表示表示IRi中斷中斷被屏蔽被屏蔽(禁止);為(禁止);為0表示表示允許允許 3 3、優(yōu)先權(quán)電路、優(yōu)先權(quán)電路 優(yōu)先權(quán)電路優(yōu)先權(quán)電路(Priority PR)負(fù)責(zé)檢查中斷源的負(fù)責(zé)檢查中斷源的

18、中斷中斷請(qǐng)求請(qǐng)求的的優(yōu)先級(jí)優(yōu)先級(jí),并與,并與“正在服務(wù)中的中斷正在服務(wù)中的中斷”進(jìn)行比進(jìn)行比較,確定是否將這個(gè)中斷請(qǐng)求送給處理器。較,確定是否將這個(gè)中斷請(qǐng)求送給處理器。 假定中斷源的中斷比正在服務(wù)中的中斷具有更假定中斷源的中斷比正在服務(wù)中的中斷具有更高高的優(yōu)先權(quán),則的優(yōu)先權(quán),則PR就使就使INT線變?yōu)楦唠娖?,送給線變?yōu)楦唠娖剑徒oCPU,為它提出申請(qǐng),并在中斷響應(yīng)時(shí)將它記入為它提出申請(qǐng),并在中斷響應(yīng)時(shí)將它記入ISR的對(duì)的對(duì)應(yīng)位中。如果中斷源的中斷優(yōu)先級(jí)應(yīng)位中。如果中斷源的中斷優(yōu)先級(jí)等于等于或或低于低于正在正在服務(wù)中的中斷優(yōu)先級(jí),則服務(wù)中的中斷優(yōu)先級(jí),則PR不為其提出申請(qǐng)。不為其提出申請(qǐng)。 4

19、4、控制邏輯、控制邏輯 控制邏輯按初始化設(shè)置的工作方式控制控制邏輯按初始化設(shè)置的工作方式控制8259A的全部工作。該電路可根據(jù)的全部工作。該電路可根據(jù)IRR的內(nèi)的內(nèi)容和容和PR判斷結(jié)果向判斷結(jié)果向CPU發(fā)中斷請(qǐng)求信號(hào)發(fā)中斷請(qǐng)求信號(hào)INT,并接受并接受CPU發(fā)回的中斷響應(yīng)信號(hào)發(fā)回的中斷響應(yīng)信號(hào) ,使,使8259A進(jìn)入中斷服務(wù)狀態(tài)進(jìn)入中斷服務(wù)狀態(tài) INTA8259A8259A引腳信號(hào)引腳信號(hào)一、與CPU的接口信號(hào)主要包括nD0D7,三態(tài),8位雙向數(shù)據(jù)線,CPU與8259A之間利用這個(gè)數(shù)據(jù)總線傳送數(shù)據(jù)及命令 n ,寫信號(hào) n ,讀信號(hào) nA0,地址選擇信號(hào),用來(lái)對(duì)8259A內(nèi)部的2個(gè)端口地址進(jìn)行選擇

20、 WRRD8259A8259A引腳信號(hào)引腳信號(hào)n ,片選輸入信號(hào),低電平有效 nINT,由82C59A向CPU輸出的中斷請(qǐng)求信號(hào) n ,輸入信號(hào),接收CPU送來(lái)的中斷響應(yīng)信號(hào) CSINTA A0 RD* WR* CS*功能功能 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1寫入寫入ICW1、OCW2和和OCW3寫入寫入ICW2ICW4和和OCW1讀出讀出IRR、ISR和查詢字和查詢字讀出讀出IMR數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)6. 中斷級(jí)聯(lián)n一個(gè)系統(tǒng)中,一個(gè)系統(tǒng)中,8259A可以級(jí)聯(lián),有一個(gè)主可以級(jí)聯(lián),有一個(gè)主8259A,若干個(gè)

21、(若干個(gè)(最多最多8個(gè)個(gè))從)從8259An級(jí)聯(lián)時(shí),主級(jí)聯(lián)時(shí),主8259A的的三條級(jí)連線三條級(jí)連線CAS0CAS2作作為為輸出線輸出線,連至每個(gè)從,連至每個(gè)從8259A的的CAS0CAS2n每個(gè)每個(gè)從從8259A的中斷請(qǐng)求信號(hào)的中斷請(qǐng)求信號(hào)INT,連至主,連至主8259A的一個(gè)中斷請(qǐng)求輸入端的一個(gè)中斷請(qǐng)求輸入端IRn主主8259A的的INT線連至線連至CPU的中斷請(qǐng)求輸入端的中斷請(qǐng)求輸入端nSP*/EN*在非緩沖方式下,規(guī)定該在非緩沖方式下,規(guī)定該8259A是主片是主片(SP*1)還是從片()還是從片(SP*0)8259A8259A引腳信號(hào)引腳信號(hào) / 從片編程緩沖器使能信號(hào)。該信號(hào)從片編程緩

22、沖器使能信號(hào)。該信號(hào)有有兩種功能兩種功能:n當(dāng)當(dāng)8259A8259A工作在工作在緩沖方式緩沖方式時(shí),該引腳為時(shí),該引腳為輸出,輸出,作數(shù)據(jù)總線緩沖器的使能信號(hào)作數(shù)據(jù)總線緩沖器的使能信號(hào)(EN*),即,即用它來(lái)控制用它來(lái)控制數(shù)據(jù)收發(fā)器數(shù)據(jù)收發(fā)器的工作的工作n當(dāng)當(dāng)8259A8259A工作在工作在非緩沖方式非緩沖方式時(shí),該引腳為時(shí),該引腳為輸輸入,入,用來(lái)指明該用來(lái)指明該8259A是是主片主片( / 1時(shí)時(shí))還是還是從片從片( / 0時(shí)時(shí)) SPENSPSPENEN 82598259中斷工作方式中斷工作方式 以以8259A單片使用為例,說(shuō)明可屏蔽中斷處理的單片使用為例,說(shuō)明可屏蔽中斷處理的過(guò)程過(guò)程

23、1.當(dāng)一條或多條中斷請(qǐng)求線當(dāng)一條或多條中斷請(qǐng)求線IR0IR7變高時(shí),設(shè)置變高時(shí),設(shè)置相應(yīng)的相應(yīng)的中斷請(qǐng)求寄存器中斷請(qǐng)求寄存器IRR位位 2.PR對(duì)對(duì)中斷優(yōu)先權(quán)中斷優(yōu)先權(quán)和和中斷屏蔽寄存器中斷屏蔽寄存器的狀態(tài)進(jìn)行判的狀態(tài)進(jìn)行判斷之后,如果某中斷斷之后,如果某中斷優(yōu)先權(quán)最高優(yōu)先權(quán)最高且為且為允許中斷狀允許中斷狀態(tài)態(tài),就向,就向CPU發(fā)高電平中斷申請(qǐng)信號(hào)發(fā)高電平中斷申請(qǐng)信號(hào)INT,請(qǐng)求,請(qǐng)求中斷服務(wù)中斷服務(wù) 3.如果如果CPU中斷允許標(biāo)志中斷允許標(biāo)志IF=1,則,則CPU響應(yīng)中斷,響應(yīng)中斷,給給8259A送出送出中斷響應(yīng)信號(hào)中斷響應(yīng)信號(hào) INTA中斷處理過(guò)程中斷處理過(guò)程4. 8259A接到來(lái)自接到來(lái)

24、自CPU的第一個(gè)的第一個(gè) 信號(hào)時(shí),當(dāng)前信號(hào)時(shí),當(dāng)前中斷服務(wù)寄存器中斷服務(wù)寄存器(ISR)中相應(yīng)位中相應(yīng)位置位置位,并把,并把IRR中中相應(yīng)位復(fù)位相應(yīng)位復(fù)位。同時(shí),。同時(shí),82C59A準(zhǔn)備向數(shù)據(jù)總線發(fā)送準(zhǔn)備向數(shù)據(jù)總線發(fā)送中斷類型碼中斷類型碼 5. 在在8259A接收到第二個(gè)接收到第二個(gè) 后,后,發(fā)送發(fā)送中斷類型碼中斷類型碼,如果是在如果是在自動(dòng)結(jié)束中斷自動(dòng)結(jié)束中斷方式下,在這個(gè)方式下,在這個(gè) 負(fù)脈沖負(fù)脈沖結(jié)束時(shí)結(jié)束時(shí)復(fù)位復(fù)位ISR的相應(yīng)位。在的相應(yīng)位。在非自動(dòng)中斷結(jié)束非自動(dòng)中斷結(jié)束方式方式下,下,ISR相應(yīng)位要由相應(yīng)位要由中斷服務(wù)程序結(jié)束中斷服務(wù)程序結(jié)束時(shí)發(fā)出的時(shí)發(fā)出的EOI命令來(lái)命令來(lái)復(fù)位復(fù)位

25、 INTAINTAINTA二、8259A的中斷過(guò)程 P233CAS0CAS2D0D7SP/ENIR0IR7CPU響應(yīng)周期響應(yīng)周期8259A工作波形工作波形INT第一個(gè)周期第一個(gè)周期T1 T2 T3 T4ALECLK 第二個(gè)周期第二個(gè)周期T1 T2 T3 T4第一個(gè)前保持為高電平第一個(gè)前保持為高電平 INTALOCK動(dòng)畫動(dòng)畫三、 8259A的工作方式 P228普通普通全嵌套方式全嵌套方式特殊特殊全嵌套方式全嵌套方式自動(dòng)自動(dòng)循環(huán)方式循環(huán)方式特殊特殊循環(huán)方式循環(huán)方式優(yōu)先權(quán)優(yōu)先權(quán)固定固定方式方式優(yōu)先權(quán)優(yōu)先權(quán)循環(huán)循環(huán)方式方式設(shè)置優(yōu)先權(quán)設(shè)置優(yōu)先權(quán)方式方式普通普通中斷結(jié)束方式中斷結(jié)束方式特殊特殊中斷結(jié)束方式

26、中斷結(jié)束方式自動(dòng)自動(dòng)中斷結(jié)束方式中斷結(jié)束方式非自動(dòng)非自動(dòng)中斷結(jié)束方式中斷結(jié)束方式結(jié)束中斷結(jié)束中斷處理方式處理方式屏蔽中斷屏蔽中斷源方式源方式普通屏蔽普通屏蔽方式方式特殊屏蔽特殊屏蔽方式方式中斷觸發(fā)中斷觸發(fā)方式方式邊沿邊沿觸發(fā)方式觸發(fā)方式電平電平觸發(fā)方式觸發(fā)方式數(shù)據(jù)線連接數(shù)據(jù)線連接方式方式緩沖方式緩沖方式非緩沖方式非緩沖方式n完全嵌套方式完全嵌套方式 n特殊全嵌套方式特殊全嵌套方式 n優(yōu)先級(jí)自動(dòng)循環(huán)方式優(yōu)先級(jí)自動(dòng)循環(huán)方式 n優(yōu)先級(jí)特殊循環(huán)方式優(yōu)先級(jí)特殊循環(huán)方式 1. 設(shè)置優(yōu)先權(quán)方式1)完全嵌套方式全嵌套方式 全嵌套方式是全嵌套方式是8259A被被初始化后自動(dòng)初始化后自動(dòng)進(jìn)入的基本進(jìn)入的基本工作方

27、式,在這種方式下,由各個(gè)工作方式,在這種方式下,由各個(gè)IRi端引入的中斷端引入的中斷請(qǐng)求具有請(qǐng)求具有固定的中斷級(jí)別固定的中斷級(jí)別。IR0具有具有最高最高優(yōu)先級(jí),優(yōu)先級(jí),IR7具有具有最低最低優(yōu)先級(jí),其他級(jí)順序類推。優(yōu)先級(jí),其他級(jí)順序類推。 采用完全嵌套方式時(shí),采用完全嵌套方式時(shí),ISR寄存器中某位置寄存器中某位置“1”,表示表示CPU當(dāng)前正在處理這一級(jí)中斷請(qǐng)求,當(dāng)前正在處理這一級(jí)中斷請(qǐng)求,8259A將將允許比它級(jí)別高的中斷請(qǐng)求進(jìn)入允許比它級(jí)別高的中斷請(qǐng)求進(jìn)入,打斷當(dāng)前的中斷服,打斷當(dāng)前的中斷服務(wù)程序而被優(yōu)先處理,但務(wù)程序而被優(yōu)先處理,但禁止與它同級(jí)或比它級(jí)別低禁止與它同級(jí)或比它級(jí)別低的其他中斷

28、請(qǐng)求進(jìn)入的其他中斷請(qǐng)求進(jìn)入。采用這種完全嵌套方式,中斷。采用這種完全嵌套方式,中斷嵌套的深度取決于整個(gè)中斷系統(tǒng)所具有的中斷級(jí)數(shù),嵌套的深度取決于整個(gè)中斷系統(tǒng)所具有的中斷級(jí)數(shù),在一個(gè)具有在一個(gè)具有8級(jí)中斷的系統(tǒng)中,最大的中斷嵌套深度級(jí)中斷的系統(tǒng)中,最大的中斷嵌套深度為為8。1)完全嵌套方式n在中斷嵌套過(guò)程中,中斷服務(wù)寄存器在中斷嵌套過(guò)程中,中斷服務(wù)寄存器ISR的內(nèi)容將不斷變化,最后有可能使的內(nèi)容將不斷變化,最后有可能使(ISR)FFH,表示當(dāng)前有,表示當(dāng)前有8級(jí)中斷請(qǐng)求正在被服級(jí)中斷請(qǐng)求正在被服務(wù),務(wù),首先結(jié)束的應(yīng)是最高級(jí)的中斷首先結(jié)束的應(yīng)是最高級(jí)的中斷,待,待CPU由高級(jí)到低級(jí)將全部中斷處理結(jié)

29、束返由高級(jí)到低級(jí)將全部中斷處理結(jié)束返回到主程序時(shí),回到主程序時(shí),ISR寄存器將重新復(fù)位為寄存器將重新復(fù)位為全全“0”。2 2)特殊全嵌套方式)特殊全嵌套方式n基本與全嵌套方式相同,唯一的區(qū)別是,在處理基本與全嵌套方式相同,唯一的區(qū)別是,在處理中斷時(shí),如果有中斷時(shí),如果有同級(jí)中斷產(chǎn)生同級(jí)中斷產(chǎn)生,也會(huì)被系統(tǒng)相應(yīng)。,也會(huì)被系統(tǒng)相應(yīng)。n特殊全嵌套方式一般用于特殊全嵌套方式一般用于8259A級(jí)連系統(tǒng)中的主級(jí)連系統(tǒng)中的主片片的中斷優(yōu)先級(jí)。的中斷優(yōu)先級(jí)。3 3)優(yōu)先級(jí)自動(dòng)循環(huán)方式)優(yōu)先級(jí)自動(dòng)循環(huán)方式n該方式一般用于系統(tǒng)中該方式一般用于系統(tǒng)中多個(gè)中斷源優(yōu)先級(jí)相等的多個(gè)中斷源優(yōu)先級(jí)相等的場(chǎng)合場(chǎng)合。該方式下,優(yōu)

30、先級(jí)隊(duì)列是變化的,一個(gè)設(shè)。該方式下,優(yōu)先級(jí)隊(duì)列是變化的,一個(gè)設(shè)備備進(jìn)入中斷進(jìn)入中斷后,其后,其優(yōu)先級(jí)變成最低優(yōu)先級(jí)變成最低。n一開(kāi)始時(shí),一開(kāi)始時(shí),IR0的優(yōu)先級(jí)最高,的優(yōu)先級(jí)最高,IR7優(yōu)先級(jí)最低。優(yōu)先級(jí)最低。如果系統(tǒng)進(jìn)入如果系統(tǒng)進(jìn)入IRX的中斷服務(wù),則此后的中斷服務(wù),則此后IRX+1的優(yōu)的優(yōu)先級(jí)為最高,先級(jí)為最高,IRX為最低。為最低。4 4)優(yōu)先級(jí)特殊循環(huán)方式)優(yōu)先級(jí)特殊循環(huán)方式n基本與優(yōu)先級(jí)自動(dòng)循環(huán)方式相似,唯一的基本與優(yōu)先級(jí)自動(dòng)循環(huán)方式相似,唯一的不同是:不同是:一開(kāi)始的最低優(yōu)先級(jí)是由編程決一開(kāi)始的最低優(yōu)先級(jí)是由編程決定的。定的。具體做法見(jiàn)具體做法見(jiàn)OCW2的設(shè)置的設(shè)置2. 結(jié)束中斷處

31、理方式結(jié)束中斷處理方式什么是什么是8259A的中斷結(jié)束?的中斷結(jié)束?8259A利用中斷服務(wù)寄存器利用中斷服務(wù)寄存器ISR判斷:判斷:n某位為某位為1,表示正在進(jìn)行中斷服務(wù);,表示正在進(jìn)行中斷服務(wù);n該位為該位為0,就,就是該中斷結(jié)束服務(wù)是該中斷結(jié)束服務(wù)。這里說(shuō)明如何使這里說(shuō)明如何使ISR某位為某位為0,不反映,不反映CPU的工作狀態(tài)。的工作狀態(tài)。n1 1)自動(dòng)中斷結(jié)束方式)自動(dòng)中斷結(jié)束方式 在中斷服務(wù)程序中,在中斷服務(wù)程序中,中斷返回之前中斷返回之前,不不需要發(fā)需要發(fā)出出中斷結(jié)束命令中斷結(jié)束命令就會(huì)自動(dòng)清除該中斷源所對(duì)應(yīng)的就會(huì)自動(dòng)清除該中斷源所對(duì)應(yīng)的ISR位,實(shí)際上,在位,實(shí)際上,在CPU發(fā)出

32、第發(fā)出第2個(gè)個(gè) 信號(hào)時(shí),信號(hào)時(shí),8259A即即自動(dòng)清除自動(dòng)清除ISR中的對(duì)應(yīng)位中的對(duì)應(yīng)位。該方式主要。該方式主要是怕沒(méi)有經(jīng)驗(yàn)的程序員忘記在中斷服務(wù)程序中給是怕沒(méi)有經(jīng)驗(yàn)的程序員忘記在中斷服務(wù)程序中給出中斷結(jié)束命令。出中斷結(jié)束命令。 設(shè)置方法見(jiàn)設(shè)置方法見(jiàn)ICWICW4 4的設(shè)置的設(shè)置INTA2.2.結(jié)束中斷的處理方式結(jié)束中斷的處理方式n2 2)普通的中斷結(jié)束方式)普通的中斷結(jié)束方式 用于用于全嵌套方式全嵌套方式下,當(dāng)下,當(dāng)CPUCPU向向82598259發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令時(shí),時(shí),82598259自動(dòng)把自動(dòng)把ISRISR中中最高非零位位復(fù)位最高非零位位復(fù)位,即表明,即表明結(jié)束了當(dāng)前最高優(yōu)先

33、級(jí)中斷。結(jié)束了當(dāng)前最高優(yōu)先級(jí)中斷。n3 3)特殊的中斷結(jié)束方式)特殊的中斷結(jié)束方式 用于用于非全嵌套方式非全嵌套方式,如果無(wú)法確定當(dāng)前正在處理的,如果無(wú)法確定當(dāng)前正在處理的是哪一級(jí)中斷,則使用該方式。使用該中斷結(jié)束方是哪一級(jí)中斷,則使用該方式。使用該中斷結(jié)束方式時(shí),式時(shí),CPUCPU通過(guò)通過(guò)82598259的的OCWOCW2 2來(lái)得知當(dāng)前正在處理的是來(lái)得知當(dāng)前正在處理的是那個(gè)中斷,并使該中斷對(duì)應(yīng)的那個(gè)中斷,并使該中斷對(duì)應(yīng)的ISRISR位復(fù)位。位復(fù)位。1 1)普通屏蔽方式)普通屏蔽方式 利用操作命令字利用操作命令字OCWl,使屏蔽寄存器,使屏蔽寄存器IMR中的一位中的一位或數(shù)位或數(shù)位置置1來(lái)屏蔽

34、一個(gè)或數(shù)個(gè)中斷源的中斷請(qǐng)求。若要來(lái)屏蔽一個(gè)或數(shù)個(gè)中斷源的中斷請(qǐng)求。若要開(kāi)放某一個(gè)中斷源的中斷請(qǐng)求,則將開(kāi)放某一個(gè)中斷源的中斷請(qǐng)求,則將IMR中相應(yīng)的位清中相應(yīng)的位清0。 這種屏蔽方式可在這種屏蔽方式可在兩種情況兩種情況下使用。下使用。其一其一是當(dāng)是當(dāng)CPU在在執(zhí)行主程序時(shí),要求禁止響應(yīng)某級(jí)或某幾級(jí)中斷時(shí),可執(zhí)行主程序時(shí),要求禁止響應(yīng)某級(jí)或某幾級(jí)中斷時(shí),可在主程序中將在主程序中將IMR寄存器的相應(yīng)位置寄存器的相應(yīng)位置“1”;其二其二是是CPU在處理某級(jí)中斷過(guò)程中,要求禁止級(jí)別比它高的某一級(jí)在處理某級(jí)中斷過(guò)程中,要求禁止級(jí)別比它高的某一級(jí)或某幾級(jí)中斷時(shí),可在中斷服務(wù)程序中將或某幾級(jí)中斷時(shí),可在中斷

35、服務(wù)程序中將IMR寄存器的寄存器的相應(yīng)位置相應(yīng)位置“1” 。 3. 屏蔽中斷源方式屏蔽中斷源方式2 2)特殊屏蔽方式)特殊屏蔽方式 在某些場(chǎng)合,執(zhí)行某一個(gè)中斷服務(wù)程序時(shí),要求允許另在某些場(chǎng)合,執(zhí)行某一個(gè)中斷服務(wù)程序時(shí),要求允許另一個(gè)優(yōu)先級(jí)比它一個(gè)優(yōu)先級(jí)比它低或高低或高的中斷請(qǐng)求被響應(yīng),此時(shí)可采用的中斷請(qǐng)求被響應(yīng),此時(shí)可采用特特殊屏蔽方式殊屏蔽方式。它可通過(guò)。它可通過(guò)OCW3來(lái)設(shè)定。來(lái)設(shè)定。 具體的做法是:在執(zhí)行某級(jí)中斷服務(wù)程序時(shí),將具體的做法是:在執(zhí)行某級(jí)中斷服務(wù)程序時(shí),將屏蔽寄屏蔽寄存器存器中本級(jí)中斷的對(duì)應(yīng)位置中本級(jí)中斷的對(duì)應(yīng)位置“1 1”,首先屏蔽掉本級(jí)中斷,首先屏蔽掉本級(jí)中斷,同時(shí)將同時(shí)

36、將當(dāng)前中斷服務(wù)寄存器當(dāng)前中斷服務(wù)寄存器的對(duì)應(yīng)位置的對(duì)應(yīng)位置“0 0”。(原因:。(原因:當(dāng)前中斷服務(wù)寄存器的高優(yōu)先級(jí)中斷位會(huì)阻止系統(tǒng)響應(yīng)低當(dāng)前中斷服務(wù)寄存器的高優(yōu)先級(jí)中斷位會(huì)阻止系統(tǒng)響應(yīng)低級(jí)中斷),則任意中斷都可打斷該中斷程序。級(jí)中斷),則任意中斷都可打斷該中斷程序。 特殊屏蔽方式當(dāng)相應(yīng)一個(gè)高優(yōu)先級(jí)中斷時(shí)就像是沒(méi)有發(fā)特殊屏蔽方式當(dāng)相應(yīng)一個(gè)高優(yōu)先級(jí)中斷時(shí)就像是沒(méi)有發(fā)生中斷一樣,因?yàn)榈蛢?yōu)先級(jí)中斷也可以打斷該中斷。生中斷一樣,因?yàn)榈蛢?yōu)先級(jí)中斷也可以打斷該中斷。 4. 中斷觸發(fā)方式n邊沿觸發(fā)方式邊沿觸發(fā)方式n8259A將中斷請(qǐng)求輸入端出現(xiàn)的將中斷請(qǐng)求輸入端出現(xiàn)的上升沿上升沿作為中斷請(qǐng)求信號(hào)作為中斷請(qǐng)求

37、信號(hào)n電平觸發(fā)方式電平觸發(fā)方式n中斷請(qǐng)求端出現(xiàn)的中斷請(qǐng)求端出現(xiàn)的高電平高電平是有是有效的中斷請(qǐng)求信號(hào)效的中斷請(qǐng)求信號(hào)5. 數(shù)據(jù)線連接方式n緩沖方式緩沖方式n8259A的數(shù)據(jù)線需加緩沖器予以驅(qū)動(dòng)的數(shù)據(jù)線需加緩沖器予以驅(qū)動(dòng)n8259A把把SP*/EN*引腳作為輸出端,輸出允引腳作為輸出端,輸出允許信號(hào),用以鎖存或開(kāi)啟緩沖器許信號(hào),用以鎖存或開(kāi)啟緩沖器n非緩沖方式非緩沖方式nSP*/EN*引腳為輸入端引腳為輸入端n若若8259A級(jí)連,由其確定是主片或從片級(jí)連,由其確定是主片或從片 CAS0 IR0CAS1 IR1CAS2 IR2 IR3INTA IR4 IR5INT IR6 IR7SP/EN CAS

38、0INTA CAS1 CAS2INT IR0 IR1SP/EN IR7CAS0 IR0CAS1 IR1CAS2 IR2 IR3INTA IR4 IR5INT IR6 IR7SP/ENINTAINTR+5V8259級(jí)聯(lián)工作示意圖級(jí)聯(lián)工作示意圖8259A芯片的級(jí)聯(lián)使用芯片的級(jí)聯(lián)使用n8259A級(jí)聯(lián)使用時(shí),主級(jí)聯(lián)使用時(shí),主8259A上沒(méi)有上沒(méi)有連接從連接從8259A的的IRi端,可直接與中斷源相連。端,可直接與中斷源相連。n在在8259A級(jí)聯(lián)系統(tǒng)中,某一片從級(jí)聯(lián)系統(tǒng)中,某一片從8259A的的IRi端端接收到一個(gè)或多個(gè)中斷請(qǐng)求信號(hào)時(shí),經(jīng)過(guò)判優(yōu)可接收到一個(gè)或多個(gè)中斷請(qǐng)求信號(hào)時(shí),經(jīng)過(guò)判優(yōu)可確定當(dāng)前的最高級(jí)

39、中斷得到響應(yīng),并通過(guò)確定當(dāng)前的最高級(jí)中斷得到響應(yīng),并通過(guò)INT向向主主8259A發(fā)出請(qǐng)求;經(jīng)主發(fā)出請(qǐng)求;經(jīng)主8259A再次判優(yōu)確認(rèn)是再次判優(yōu)確認(rèn)是當(dāng)前最高級(jí)中斷時(shí),向當(dāng)前最高級(jí)中斷時(shí),向CPU發(fā)出中斷請(qǐng)求信號(hào)發(fā)出中斷請(qǐng)求信號(hào)INT,以后的過(guò)程與單級(jí)使用時(shí)類似。對(duì),以后的過(guò)程與單級(jí)使用時(shí)類似。對(duì)CPU來(lái)來(lái)說(shuō),說(shuō),8259A的單級(jí)使用和級(jí)聯(lián)使用區(qū)別不大。的單級(jí)使用和級(jí)聯(lián)使用區(qū)別不大。8259A芯片的級(jí)聯(lián)使用芯片的級(jí)聯(lián)使用n第第1個(gè)個(gè)INTA有效時(shí),主有效時(shí),主8259A將將級(jí)聯(lián)地址級(jí)聯(lián)地址從從CAS2CAS0 3端輸出給所有的從端輸出給所有的從8259A芯片,芯片,到第到第2個(gè)個(gè)INTA有效時(shí),與

40、主有效時(shí),與主8259A發(fā)出的發(fā)出的級(jí)聯(lián)地級(jí)聯(lián)地址相符址相符的從的從8259A將向?qū)⑾駽PU送出當(dāng)前的中斷類型送出當(dāng)前的中斷類型碼碼n,以后的操作過(guò)程與單級(jí)使用時(shí)相同。,以后的操作過(guò)程與單級(jí)使用時(shí)相同。n當(dāng)從當(dāng)從8259A引入的中斷處理過(guò)程引入的中斷處理過(guò)程結(jié)束結(jié)束時(shí),時(shí),CPU應(yīng)應(yīng)能送出能送出兩個(gè)兩個(gè)EOI結(jié)束命令,一個(gè)送給結(jié)束命令,一個(gè)送給主主8259A,用來(lái)將主用來(lái)將主8259A中的中的ISR寄存器的相應(yīng)位清寄存器的相應(yīng)位清“0”;另一個(gè)送給另一個(gè)送給從從8259A,用來(lái)將從,用來(lái)將從8259A中的中的ISR寄存器相應(yīng)位清寄存器相應(yīng)位清“0”,才標(biāo)志一次中斷處理過(guò)程,才標(biāo)志一次中斷處理過(guò)

41、程的結(jié)束。的結(jié)束。8259級(jí)聯(lián)工作示意圖級(jí)聯(lián)工作示意圖8259工作示意圖工作示意圖命令字和初始化編程命令字和初始化編程 8259A是根據(jù)收到是根據(jù)收到CPU的的命令字命令字進(jìn)行工作的。進(jìn)行工作的。CPU的命令字分兩類:一類是的命令字分兩類:一類是初始化命令初始化命令,稱為,稱為初初始化命令字始化命令字(Initialization Command Word, ICW),初始化命令字往往是在系統(tǒng)啟動(dòng)時(shí),由初始,初始化命令字往往是在系統(tǒng)啟動(dòng)時(shí),由初始化程序設(shè)置的。初始化命令字一旦設(shè)定,一般在系化程序設(shè)置的。初始化命令字一旦設(shè)定,一般在系統(tǒng)工作過(guò)程中就統(tǒng)工作過(guò)程中就不再改變不再改變。另一類是。另一類

42、是操作命令操作命令,稱,稱為為操作命令字操作命令字(Operation Command Word, OCW)。在初始化后,。在初始化后,CPU用這些控制字來(lái)控制用這些控制字來(lái)控制8259A執(zhí)行不同的操作,如中斷屏蔽、中斷結(jié)束、執(zhí)行不同的操作,如中斷屏蔽、中斷結(jié)束、優(yōu)先權(quán)循環(huán)和中斷狀態(tài)的優(yōu)先權(quán)循環(huán)和中斷狀態(tài)的讀出和查詢讀出和查詢等等1. 初始化命令字ICWn初始化命令字初始化命令字ICW最多有最多有4個(gè)個(gè)n8259A在開(kāi)始工作前必須寫入在開(kāi)始工作前必須寫入n必須按照必須按照ICW1ICW4順序?qū)懭腠樞驅(qū)懭雗ICW1和和ICW2是必須送的是必須送的nICW3和和ICW4由工作方式?jīng)Q定由工作方式?jīng)Q定

43、流程流程D7D6D5D4D3D2D1D0 芯片控制初始化命令字芯片控制初始化命令字(ICW1) ICW1應(yīng)應(yīng)寫寫入入偶地址偶地址端口,即端口,即A A0 00 0, ICW1ICW1舉例舉例例某8086微機(jī)系統(tǒng)中,使用單片8259A,中斷請(qǐng)求信號(hào)為上升沿觸發(fā),需要設(shè)置ICW4,端口地址為20H和22H,則其初始化命令字ICW1應(yīng)為:0001001113H,設(shè)置ICW1的指令為: MOV AL,13H OUT 20H,AL設(shè)置中斷類型碼高設(shè)置中斷類型碼高5位的初始化命令字位的初始化命令字(ICW2) 8259A在第在第2個(gè)中斷響應(yīng)總線周期向個(gè)中斷響應(yīng)總線周期向CPU提供的提供的8位中斷類型碼位中

44、斷類型碼,實(shí)際上是由,實(shí)際上是由兩部分兩部分構(gòu)構(gòu)成,其中,成,其中,高高5位位T7T3是由用戶通過(guò)編程確是由用戶通過(guò)編程確定的,這就是初始化命令字定的,這就是初始化命令字ICW2,類型碼,類型碼的的低低3位位,由,由8259A內(nèi)部電路內(nèi)部電路自動(dòng)產(chǎn)生自動(dòng)產(chǎn)生,分,分別對(duì)應(yīng)于別對(duì)應(yīng)于8個(gè)中斷源的中斷請(qǐng)求信號(hào)個(gè)中斷源的中斷請(qǐng)求信號(hào)IR0I R7的 編 號(hào) , 即的 編 號(hào) , 即 I R0為為 0 0 0 , I R1為為 001, ,IR7為為 111 設(shè)置中斷類型碼高設(shè)置中斷類型碼高5位的初始化命令字(位的初始化命令字(ICW2) ICW2應(yīng)應(yīng)寫寫入入奇地址奇地址端口,即端口,即Al1,格式如

45、,格式如圖所示圖所示 標(biāo)識(shí)主片從片初始化命令字標(biāo)識(shí)主片從片初始化命令字(ICW3) 只有當(dāng)系統(tǒng)中有多片只有當(dāng)系統(tǒng)中有多片8259A級(jí)聯(lián)級(jí)聯(lián)時(shí)才需時(shí)才需要設(shè)置要設(shè)置ICW3,單片,單片8259A時(shí)不用設(shè)置,時(shí)不用設(shè)置,寫寫入入奇地址奇地址單元。單元。 當(dāng)多片當(dāng)多片8259A級(jí)聯(lián)時(shí),級(jí)聯(lián)時(shí),ICW3用來(lái)指出用來(lái)指出主片上連接從片以及從片連接到主片的情況主片上連接從片以及從片連接到主片的情況,所以,所以,ICW3有有主從兩種主從兩種格式。格式。 注意:注意:當(dāng)級(jí)連時(shí)主當(dāng)級(jí)連時(shí)主82598259的的CAS0-2CAS0-2線作線作輸出輸出,從,從82598259的的CAS0-2CAS0-2作作輸入線輸

46、入線。其內(nèi)部傳送的數(shù)據(jù)即為從片上。其內(nèi)部傳送的數(shù)據(jù)即為從片上ICW3ICW3的低的低3 3位位 標(biāo)識(shí)主片從片初始化命令字標(biāo)識(shí)主片從片初始化命令字(ICW3)初始化命令字(初始化命令字(ICW3)方式控制初始化命令字(方式控制初始化命令字(ICW4) 當(dāng)當(dāng)ICW1中的中的D01時(shí),初始化時(shí),初始化8259A時(shí)需要寫入時(shí)需要寫入ICW4。ICW4寫寫入入奇地址奇地址端端口口. .1616位位(80868088)(80868088)系統(tǒng)系統(tǒng)必須必須設(shè)置設(shè)置ICW4. .其格式如圖所示其格式如圖所示 方式控制初始化命令字(方式控制初始化命令字(ICW4)二、二、82C59A初始化編程邏輯初始化編程邏輯

47、 n8259A進(jìn)入正常工作之前,系統(tǒng)進(jìn)入正常工作之前,系統(tǒng)必須必須對(duì)每個(gè)對(duì)每個(gè)8259A進(jìn)行進(jìn)行初始化設(shè)置初始化設(shè)置 n初始化是通過(guò)編程將初始化命令字初始化是通過(guò)編程將初始化命令字按順序按順序?qū)憣懭肴?2C59A的端口實(shí)現(xiàn)的,的端口實(shí)現(xiàn)的,82C59A的初始的初始化流程如圖所示化流程如圖所示 8259A芯片的初始化流程P237寫寫ICW1 A0=0寫寫ICW2 A0=1SNGL=1 IC4=1寫寫ICW3 A0=1寫寫ICW4 A0=1是是否否是是否否按順序?qū)Π错樞驅(qū)0=1端端口寫入命令字口寫入命令字初始化編程初始化編程 例:某某8086微機(jī)系統(tǒng)中有一片微機(jī)系統(tǒng)中有一片8259A,中,中斷請(qǐng)

48、求信號(hào)為斷請(qǐng)求信號(hào)為電平電平觸發(fā),中斷類型碼為觸發(fā),中斷類型碼為40H47H,中斷優(yōu)先級(jí)管理采用,中斷優(yōu)先級(jí)管理采用普通全嵌普通全嵌套套方式,中斷結(jié)束方式采用方式,中斷結(jié)束方式采用自動(dòng)結(jié)束自動(dòng)結(jié)束方式,方式,系統(tǒng)中系統(tǒng)中未使用數(shù)據(jù)緩沖器未使用數(shù)據(jù)緩沖器,系統(tǒng)分配給,系統(tǒng)分配給8259A的端口地址為的端口地址為20H和和21H,試對(duì)該,試對(duì)該82C59A進(jìn)行初始化編程進(jìn)行初始化編程 初始化編程初始化編程 分析:分析:由于系統(tǒng)中使用單片由于系統(tǒng)中使用單片8259A,所以初始化,所以初始化時(shí)不需要時(shí)不需要ICW3,本例中,本例中82C59A要求工作在非緩沖要求工作在非緩沖方式,故在硬件上將方式,故在

49、硬件上將SP*/EN*接接+5V,ICW4中的中的(MS* )位無(wú)意義,可設(shè)置為位無(wú)意義,可設(shè)置為0 對(duì)對(duì)82C59A的初始化程序如下:的初始化程序如下: MOV AL,00011011B ;設(shè)置;設(shè)置ICW1初始化命令字初始化命令字 OUT 20H,AL ;將;將ICW1輸出到輸出到偶地址偶地址端口端口 MOV AL,01000000B ;ICW2中斷類型號(hào)基值中斷類型號(hào)基值 OUT 21H,AL ;將;將ICW2送入送入奇地址奇地址端口端口 MOV AL,00001011B ;ICW4 OUT 21H,AL ;將;將ICW4送入送入奇地址奇地址瑞口瑞口 3. 8259A3. 8259A的命

50、令字的命令字OCW設(shè)置時(shí)沒(méi)有次序要求設(shè)置時(shí)沒(méi)有次序要求,但對(duì)地址有要求但對(duì)地址有要求. 中斷屏蔽操作命令字中斷屏蔽操作命令字OCWl OCWl用來(lái)實(shí)現(xiàn)對(duì)中斷源的屏蔽功能,用來(lái)實(shí)現(xiàn)對(duì)中斷源的屏蔽功能,OCWl的內(nèi)容被直接置入的內(nèi)容被直接置入IMR屏蔽寄存器屏蔽寄存器,編程要求寫入編程要求寫入奇地址奇地址. .其格式如圖所示其格式如圖所示 3.1 OCW13.1 OCW1格式格式3.23.2 優(yōu)先級(jí)循環(huán)方式和中斷結(jié)束方式操作優(yōu)先級(jí)循環(huán)方式和中斷結(jié)束方式操作命令字命令字OCW2 OCW2有兩個(gè)功能:設(shè)置有兩個(gè)功能:設(shè)置中斷結(jié)束方式中斷結(jié)束方式和和優(yōu)先級(jí)優(yōu)先級(jí)循環(huán)方式循環(huán)方式,要求寫入,要求寫入偶地址

51、偶地址端口,其格式如圖所示。端口,其格式如圖所示。中斷結(jié)束方式:中斷結(jié)束方式:1.1.自動(dòng)結(jié)束自動(dòng)結(jié)束 2.2.一般的結(jié)束方式一般的結(jié)束方式 3.3.特殊的中斷結(jié)束方式特殊的中斷結(jié)束方式優(yōu)先級(jí)方式:優(yōu)先級(jí)方式:1.1.全嵌套全嵌套 2.2.特殊全嵌套特殊全嵌套 3.3.優(yōu)先級(jí)自動(dòng)循環(huán)優(yōu)先級(jí)自動(dòng)循環(huán) 4.4.優(yōu)先級(jí)特殊循環(huán)優(yōu)先級(jí)特殊循環(huán)OCW2 操作命令字操作命令字OCW2nD7(R):用于規(guī)定中斷優(yōu)先級(jí)是否設(shè)置為用于規(guī)定中斷優(yōu)先級(jí)是否設(shè)置為循環(huán)方循環(huán)方式式 D71,為為優(yōu)先權(quán)循環(huán)優(yōu)先權(quán)循環(huán)方式;方式;D70,為為非循環(huán)方式非循環(huán)方式nD6(SL):用于規(guī)定:用于規(guī)定OCW2中的中的L2 L1

52、L0是否有效是否有效 D6l,表示,表示D2D0有效;有效;D60,表示無(wú)效,表示無(wú)效nD5 (EOI),中斷結(jié)束命令位中斷結(jié)束命令位。如果。如果ICW4中中D1(AEOI)位為位為l,表示中斷采用表示中斷采用自動(dòng)結(jié)束方式自動(dòng)結(jié)束方式。在中斷自動(dòng)結(jié)束方式下,當(dāng)。在中斷自動(dòng)結(jié)束方式下,當(dāng)CPU第第2個(gè)負(fù)脈沖結(jié)束時(shí),中斷服務(wù)寄存器個(gè)負(fù)脈沖結(jié)束時(shí),中斷服務(wù)寄存器ISR中相應(yīng)位會(huì)中相應(yīng)位會(huì)自自動(dòng)清除,動(dòng)清除,但如果但如果AEOI為為0,則,則ISRi位就要用位就要用EOI命令來(lái)消除。命令來(lái)消除。EOI命令是通過(guò)命令是通過(guò)OCW2中的中的D5位設(shè)置的。位設(shè)置的。 EOI=1EOI=1:用于設(shè)置:用于設(shè)置

53、中斷結(jié)束中斷結(jié)束方式方式 EOI=0EOI=0:用于設(shè)置:用于設(shè)置中斷優(yōu)先級(jí)循環(huán)中斷優(yōu)先級(jí)循環(huán)方式方式 EOI=0 R=1,SL=0 EOI=0 R=1,SL=0 寫入寫入OCW2OCW2則使得則使得8259A8259A工作于工作于優(yōu)優(yōu) 先級(jí)自動(dòng)循環(huán)方式先級(jí)自動(dòng)循環(huán)方式 R=0,SL=0 R=0,SL=0 寫入寫入OCW2OCW2則使得則使得8259A8259A結(jié)束自動(dòng)結(jié)束自動(dòng) 循環(huán)方式循環(huán)方式 R=1,SL=1 R=1,SL=1 寫入寫入OCW2OCW2則使得則使得8259A8259A工作于工作于中斷特中斷特 殊循環(huán)方式殊循環(huán)方式,最低優(yōu)先級(jí)由,最低優(yōu)先級(jí)由L2L1L0L2L1L0指定。指定

54、。設(shè)置優(yōu)先級(jí)循環(huán)設(shè)置優(yōu)先級(jí)循環(huán)EOI=1EOI=1 R=0,SL=0 R=0,SL=0 寫入寫入OCW2OCW2即向即向8259A8259A發(fā)送了一個(gè)發(fā)送了一個(gè) 一般中斷結(jié)束命令一般中斷結(jié)束命令 (清空(清空ISRISR中當(dāng)前最高優(yōu)先級(jí)對(duì)應(yīng)的中當(dāng)前最高優(yōu)先級(jí)對(duì)應(yīng)的ISiISi位)位) R=0,SL=1 R=0,SL=1 寫入寫入OCW2OCW2即向即向8259A8259A發(fā)送了一個(gè)發(fā)送了一個(gè) 特殊中斷結(jié)束命令特殊中斷結(jié)束命令 (清空(清空ISRISR中中L2L1L0L2L1L0指定的指定的ISiISi位)位) R=1,SL=0 R=1,SL=0 寫入寫入OCW2OCW2使使8259A8259A

55、工作于中斷優(yōu)先級(jí)工作于中斷優(yōu)先級(jí) 自動(dòng)循環(huán)方式自動(dòng)循環(huán)方式并且為并且為一般中斷結(jié)束一般中斷結(jié)束方式方式 R=1,SL=1 R=1,SL=1 寫入寫入OCW2OCW2使使8259A8259A工作于中斷優(yōu)先級(jí)工作于中斷優(yōu)先級(jí) 特殊循環(huán)方式特殊循環(huán)方式并且為并且為一般中斷結(jié)束一般中斷結(jié)束方式方式設(shè)置結(jié)束方式設(shè)置結(jié)束方式操作命令字操作命令字OCW2nD4、D3,D4 D300,OCW2的的標(biāo)志位標(biāo)志位nD2D0(L2 L1 L0),有,有兩個(gè)用途兩個(gè)用途:當(dāng):當(dāng)OCW2給出給出特殊的中斷結(jié)束命令特殊的中斷結(jié)束命令時(shí),時(shí),L L2 2、L L1 1和和L L0 0指出具體應(yīng)清除指出具體應(yīng)清除中斷服務(wù)寄存

56、器中的哪一位中斷服務(wù)寄存器中的哪一位. .當(dāng)當(dāng)OCW2給出給出特殊的優(yōu)特殊的優(yōu)先級(jí)循環(huán)方式先級(jí)循環(huán)方式命令時(shí),命令時(shí),L2、L1和和L0指出循環(huán)開(kāi)始時(shí)指出循環(huán)開(kāi)始時(shí)哪個(gè)中斷的優(yōu)先級(jí)最低哪個(gè)中斷的優(yōu)先級(jí)最低操作命令字操作命令字OCW2 特殊屏蔽方式和中斷查詢方式操作命令特殊屏蔽方式和中斷查詢方式操作命令OCW3 有有3個(gè)功能:個(gè)功能:n設(shè)置和撤消設(shè)置和撤消特殊屏蔽特殊屏蔽方式方式n設(shè)置設(shè)置中斷查詢中斷查詢方式方式n設(shè)置讀出設(shè)置讀出ISR或或IRR寄存器的內(nèi)容寄存器的內(nèi)容n編程寫入編程寫入偶地址偶地址屏蔽方式:屏蔽方式:1.1.普通屏蔽普通屏蔽 2.2.特殊屏蔽特殊屏蔽 操作命令操作命令OCW3

57、操作命令操作命令OCW3(1)設(shè)置屏蔽方式)設(shè)置屏蔽方式 ESMM稱為稱為特殊屏蔽允許位特殊屏蔽允許位,SMM稱為稱為特殊屏蔽方式位特殊屏蔽方式位,這兩位的組合決定是這兩位的組合決定是設(shè)置特殊屏蔽還是撤銷屏蔽設(shè)置特殊屏蔽還是撤銷屏蔽當(dāng)當(dāng)ESMM、SMM11時(shí),將時(shí),將8259A設(shè)置為設(shè)置為特殊屏蔽特殊屏蔽方式,方式,即只屏蔽本級(jí)中斷請(qǐng)求,允許高級(jí)的或低級(jí)的中斷申請(qǐng)即只屏蔽本級(jí)中斷請(qǐng)求,允許高級(jí)的或低級(jí)的中斷申請(qǐng)進(jìn)入進(jìn)入 當(dāng)當(dāng)ESMM、SMM10時(shí),時(shí),撤消特殊屏蔽方式撤消特殊屏蔽方式,恢復(fù)原來(lái),恢復(fù)原來(lái)的優(yōu)先級(jí)控制的優(yōu)先級(jí)控制當(dāng)當(dāng)ESMM0時(shí),不能建立特殊屏蔽方式,時(shí),不能建立特殊屏蔽方式,S

58、MM位也不位也不起作用起作用設(shè)設(shè)D2、D1、D0這這3位均為位均為0,則,則設(shè)置的特殊屏蔽方式字設(shè)置的特殊屏蔽方式字OCW3=68H,撤消特殊屏蔽方式字撤消特殊屏蔽方式字OCW348H nOCW3的中斷查詢功能的中斷查詢功能 OCW3的的D2位即位即P位位為為中斷查詢方式中斷查詢方式位。當(dāng)位。當(dāng)P=1時(shí),使時(shí),使8259A處于處于中斷查詢方式中斷查詢方式,即,即CPU向向8259A偶地址偶地址端口寫入一個(gè)端口寫入一個(gè)查詢命令查詢命令OCW30CH后,再執(zhí)行輸入指令后,再執(zhí)行輸入指令(IN AL 偶地址偶地址),CPU便可讀入便可讀入8259A提供的提供的查詢字查詢字。查詢字反映了當(dāng)查詢字反映了

59、當(dāng)前有無(wú)中斷請(qǐng)求,以及中斷請(qǐng)求中優(yōu)先級(jí)最高的前有無(wú)中斷請(qǐng)求,以及中斷請(qǐng)求中優(yōu)先級(jí)最高的是哪一個(gè)是哪一個(gè)。8259A的查詢字格式如圖的查詢字格式如圖操作命令操作命令OCW3(2)設(shè)置中斷查詢功能)設(shè)置中斷查詢功能操作命令操作命令OCW3(2)設(shè)置中斷查詢功能)設(shè)置中斷查詢功能nOCW3的讀操作功能的讀操作功能 (P=0前提下)前提下) 8259A內(nèi)部有內(nèi)部有3個(gè)寄存器個(gè)寄存器(IRR、IMR、ISR)可供可供CPU讀出其當(dāng)前的狀態(tài),讀出其當(dāng)前的狀態(tài),CPU在在發(fā)讀命令之前,須先指定讀取哪個(gè)寄存器,發(fā)讀命令之前,須先指定讀取哪個(gè)寄存器,然后再發(fā)然后再發(fā)IN指令到指令到偶地址偶地址,才能讀取,才能讀

60、取IRR和和ISR中的內(nèi)容。當(dāng)所讀的寄存器不變,就中的內(nèi)容。當(dāng)所讀的寄存器不變,就不必每次都指定所要讀取的寄存器。在不必每次都指定所要讀取的寄存器。在8259A初始化后,自動(dòng)指向讀初始化后,自動(dòng)指向讀IRR 操作命令操作命令OCW3(3)讀出寄存器內(nèi)容)讀出寄存器內(nèi)容 OCW3中的中的D1,D0兩位用來(lái)指定具體讀兩位用來(lái)指定具體讀ISR和和IRR中的哪一個(gè)寄存器中的哪一個(gè)寄存器 當(dāng)當(dāng)RR、RIS11時(shí),表示時(shí),表示CPU的下一條的下一條IN指令指令要讀取要讀取ISR寄存器的內(nèi)容寄存器的內(nèi)容當(dāng)當(dāng)RR、RIS=10時(shí),表示時(shí),表示CPU的下一條的下一條IN指令指令要讀要讀IRR寄存器的內(nèi)容寄存器的

溫馨提示

  • 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)論