資源描述:
《微機(jī)原理與接口技術(shù)(朱紅)第7章 中斷.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫。
1、1第7章中斷控制接口2第一節(jié)中斷概述從第六章的介紹中,我們知道Cpu與外部設(shè)備的數(shù)據(jù)傳送方式有3種,分別是程序控制、中斷控制方式和直接存儲(chǔ)器存取方式(DMA)。這3種方式都有賴于硬件電路的支持。硬件電路一般采用集成接口芯片。中斷控制數(shù)據(jù)傳送方式,也需要接口部件。本章詳細(xì)介紹:中斷控制數(shù)據(jù)傳送方式的原理和過程,以及可編程中斷控制接口芯片8259A的原理、結(jié)構(gòu)、編程和應(yīng)用。3中斷的概念*什么是中斷?所謂中斷就是當(dāng)CPU正常運(yùn)行程序時(shí),由于隨機(jī)的事件包括內(nèi)部事件和外部事件)引起CPU暫時(shí)中止正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行請(qǐng)求中斷的中斷源的中斷服務(wù)
2、程序,中斷服務(wù)結(jié)束后再返回到主程序的斷點(diǎn)位置,繼續(xù)原來被中斷的操作。這一過程被稱為中斷。*中斷源廣義地說,能引起CPU產(chǎn)生程序中斷的隨機(jī)事件就是中斷源。例如:外設(shè)故障、傳輸錯(cuò)誤、定時(shí)器時(shí)間到等都可以是中斷源;某外設(shè)需要傳送數(shù)據(jù)向CPU發(fā)出中斷請(qǐng)求,該外設(shè)即是中斷源。對(duì)主機(jī)來說,系統(tǒng)掉電、硬件故障、軟件錯(cuò)誤、設(shè)置斷點(diǎn)、單步操作等也是中斷源。以指令形式給出的中斷是指令中斷源INT20。4*中斷優(yōu)先級(jí)當(dāng)系統(tǒng)中多個(gè)中斷源同時(shí)到來時(shí),就需要對(duì)中斷源排個(gè)隊(duì),優(yōu)先級(jí)高的中斷的服務(wù)程序先執(zhí)行,再執(zhí)行優(yōu)先級(jí)別低的中斷服務(wù)程序。中斷優(yōu)先級(jí)的排列,可以是軟
3、件查詢方式,也可以利用硬件電路實(shí)現(xiàn)。軟件查詢的方式的硬件電路簡(jiǎn)單,但需要用程序來控制優(yōu)先級(jí)的順序,適用于小型微機(jī)系統(tǒng)。硬件電路實(shí)現(xiàn)優(yōu)先級(jí)排列,不必利用程序控制,后面講到的中斷控制接口芯片8259A就是集成了硬件排隊(duì)電路。5*中斷嵌套在滿足中斷響應(yīng)的條件下,高優(yōu)先級(jí)的中斷打斷當(dāng)前低優(yōu)先級(jí)的中斷服務(wù)程序的執(zhí)行。同樣,這個(gè)中斷服務(wù)程序的執(zhí)行過程中,也會(huì)被更高優(yōu)先級(jí)的中斷請(qǐng)求打斷……,直到最后一個(gè)未被打斷的高優(yōu)先級(jí)的中斷服務(wù)程序,Cpu執(zhí)行完該程序后,返回上一個(gè)被打斷的中斷服務(wù)程序的斷點(diǎn)處,繼續(xù)執(zhí)行這個(gè)中斷服務(wù)程序,執(zhí)行完后再返回它的上一個(gè)被
4、打斷的中斷服務(wù)程序的斷點(diǎn)處……,直到返回到主程序的斷點(diǎn)處,繼續(xù)執(zhí)行主程序。P196圖7.1*中斷類型號(hào)每個(gè)中斷源的編號(hào),每個(gè)編號(hào)對(duì)應(yīng)了各自的中斷服務(wù)子程序,中斷響應(yīng)時(shí),必須首先獲得中斷類型號(hào),有了中斷類型號(hào),才能找到對(duì)應(yīng)的中斷服務(wù)程序的位置。6中斷的處理全過程*中斷過程中斷的全過程分為以下五步:中斷請(qǐng)求,中斷判優(yōu),中斷響應(yīng),中斷服務(wù)(處理),中斷返回。◎中斷請(qǐng)求中斷源向CPU發(fā)出的信號(hào),對(duì)于指令中斷,該指令就是中斷請(qǐng)求信號(hào)。對(duì)于硬件中斷,CPU在每條指令結(jié)束時(shí)采樣。中斷請(qǐng)求分為邊沿請(qǐng)求和電平請(qǐng)求。請(qǐng)求信號(hào)由低到高或有高到低的跳變?yōu)檫呇?/p>
5、觸發(fā)請(qǐng)求;請(qǐng)求信號(hào)為高電平或低電平為電平觸發(fā)請(qǐng)求?!蛑袛嗯袃?yōu)多個(gè)中斷請(qǐng)求同時(shí)到來時(shí),將中斷源進(jìn)行優(yōu)先級(jí)排隊(duì),優(yōu)先級(jí)高的先被響應(yīng)。1、軟件判優(yōu)2、硬件判優(yōu)7中斷的處理全過程◎中斷響應(yīng)中斷響應(yīng)就是在滿足中斷響應(yīng)條件時(shí),CPU“中斷”現(xiàn)正在進(jìn)行的處理任務(wù),轉(zhuǎn)向中斷請(qǐng)求相對(duì)應(yīng)的處理程序的過程。中斷響應(yīng)過程中系統(tǒng)會(huì)自動(dòng)完成下列動(dòng)作:*關(guān)中斷,在進(jìn)入到中斷服務(wù)程序的過程中,不會(huì)被高級(jí)別的中斷源打斷,如果允許嵌套,則在中斷服務(wù)程序中,用指令開中斷。*標(biāo)志寄存器壓入堆棧*保護(hù)斷點(diǎn),將被打斷程序的斷點(diǎn)處的段地址和偏移地址入棧*保護(hù)現(xiàn)場(chǎng)*轉(zhuǎn)到中斷請(qǐng)求所對(duì)
6、應(yīng)的處理程序(控制權(quán)轉(zhuǎn)移:方法有固定入口地址;矢量中斷)8中斷的處理全過程◎中斷處理(服務(wù))中斷處理就是執(zhí)行中斷服務(wù)程序,完成中斷源提出的處理要求。實(shí)際上是軟件編程問題。中服程序與子程序的區(qū)別:隨機(jī)事件與意料之中事件;對(duì)主程序透明與不透明。中服程序中需要保護(hù)現(xiàn)場(chǎng)與恢復(fù)現(xiàn)場(chǎng)。對(duì)中斷處理中用到的寄存器入棧保護(hù)。若允許中斷嵌套,應(yīng)該在中服程序中開中斷(STI)。9中斷的處理全過程◎中斷返回中斷返回就是CPU控制權(quán)由中服程序轉(zhuǎn)移到被中斷程序的過程。用IRET指令。CPU在執(zhí)行IRET指令時(shí),會(huì)自動(dòng)將標(biāo)志寄存器的值和斷點(diǎn)地址的值從堆棧彈出到相應(yīng)
7、的寄存器。中斷響應(yīng)時(shí)會(huì)自動(dòng)關(guān)中斷,如果此時(shí)允許中斷嵌套,則在中斷服務(wù)程序開始處用指令開中斷。如果不允許嵌套,開中斷指令通常放在中斷返回指令I(lǐng)RET的前面。表明只有該中斷服務(wù)程序執(zhí)行完畢后,CPU才可以響應(yīng)其他中斷。10中斷處理過程(續(xù))開中斷信息工程學(xué)院信息論教研室11中斷處理過程(續(xù))127.3中斷識(shí)別什么是中斷識(shí)別CPU管理多個(gè)中斷源時(shí),在收到中斷源發(fā)出的中斷請(qǐng)求后,需判斷是哪一個(gè)中斷源提出的中斷請(qǐng)求,以便對(duì)它進(jìn)行服務(wù)(或處理)中斷識(shí)別的方法查詢中斷法向量中斷法13查詢中斷法CPU響應(yīng)中斷后,轉(zhuǎn)入執(zhí)行一特定地址的中斷服務(wù)程序,該中
8、斷服務(wù)程序查詢狀態(tài)口,確定發(fā)出中斷請(qǐng)求的外設(shè),然后進(jìn)行相應(yīng)的處理。14查詢中斷服務(wù)程序外設(shè)的中斷優(yōu)先級(jí)由查詢的次序決定向量中斷法8086/8088系統(tǒng)支持256個(gè)中斷,系統(tǒng)中并非都加以利用。但對(duì)于每個(gè)利用的中斷號(hào),都要編