《中斷控制接口》由會員分享,可在線閱讀,更多相關(guān)《中斷控制接口(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第七章,中斷控制接口,教學內(nèi)容,8086/8088 CPU,的中斷系統(tǒng),8259A,的中斷控制器,中斷服務(wù)程序的編寫,中斷的基本概念,中斷最初是作為處理器與外部設(shè)備交換信息的一種控制方式提出的。由此,最初的中斷全部是對外部設(shè)備而言的,稱為,外部中斷或硬件中斷,。,隨著計算機技術(shù)的發(fā)展,中斷的范圍也隨之擴大,出現(xiàn)了,內(nèi)部/軟件中斷,的概念,它是為解決機器內(nèi)部運行時出現(xiàn)的異常以及為編程方便而提出的。,外部中斷或硬件中斷通常稱為,中斷,,軟件中斷或異常中斷通常稱為,異常(Exception)。,中斷源,中斷,請
2、求,當 前 程 序,中斷,服務(wù),程序,程序斷點,中斷返回,中斷響應(yīng),中斷的基本概念,不論哪種中斷都遵循同樣的中斷處理過程,中斷:處理器暫停執(zhí)行當前程序,轉(zhuǎn)而處理隨機發(fā)生的事件,處理,完畢后再返回到斷點處繼續(xù)執(zhí)行原來程序的過程,中斷請求,中斷判優(yōu),中斷響應(yīng),中斷處理,中斷返回,中斷系統(tǒng)的功能,能實現(xiàn)中斷響應(yīng)、中斷服務(wù)和中斷返回。,能實現(xiàn)中斷優(yōu)先級排隊。,能實現(xiàn)中斷嵌套。,8086/8088中斷系統(tǒng),PC,系列微機最多可以支持256種中斷,它們被分為四種類型:,內(nèi)部中斷和異常,軟件中斷,外部可屏蔽中斷,外部非屏蔽中斷,每個中斷和異常都指定了一個類型號代表不同的優(yōu)先級。,用中斷向量號0255區(qū)別。,
3、類型0表示最高優(yōu)先級的中斷,類型255最低優(yōu)先級的中斷。,可屏蔽中斷還需要借助專用中斷控制器Intel 8259A實現(xiàn)優(yōu)先權(quán)管理。,8086/8088的中斷類型,INTR,可屏蔽中斷源,8259A,中斷,控制器,IR,0,IR,1,IR,2,IR,3,IR,4,IR,5,IR,6,IR,7,外,設(shè),中,斷,源,INTA,非屏蔽中斷源,中斷邏輯,INTO,指令,單步,中斷,除法,錯誤,INT N,指令,CPU,NMI,斷點,中斷,內(nèi)部中斷,除法錯中斷,指令中斷,溢出中斷,單步中斷,外部中斷,非屏蔽中斷,可屏蔽中斷,8086/8088的中斷優(yōu)先權(quán),軟件中斷,除法錯中斷,指令中斷,溢出中斷,非屏蔽中
4、斷,可屏蔽中斷,單步中斷,高,低,8086/8088的中斷向量表,中斷類型號,:用來區(qū)別每一個中斷類型的號碼。,0255。,中斷向量,:中斷服務(wù)程序的入口地址(首地址),每個中斷向量占4字節(jié),:CS(高)IP(低),中斷向量表,:存放中斷向量的地址表。在內(nèi)存0段的03FFH區(qū)域。,中斷向量表,中斷向量在,中斷向量表,的地址=中斷類型號,N,4,例,.,中斷類型號為,20H,,,中斷服務(wù)程序的入口地址存放在,0000:0080H,開始的,4,個單元中。若:,(0080H)=10H,(0081H)=20H,(0082H)=30H,(0083H)=40H,則:,中斷服務(wù)程序的入口地址為:,4030:
5、2010H,可屏蔽中斷響應(yīng)流程,CPU,發(fā)INTA應(yīng)答信號,將標志寄存器的值推入堆棧,把,IF,和,TF,清零,將當前指令的地址推入堆棧,保護斷點。,由中斷類型碼,查找中斷表,找到中斷服務(wù)程序入口。,執(zhí)行中斷服務(wù)程序。,中斷服務(wù)程序執(zhí)行完后,返回斷點處繼續(xù)執(zhí)行原程序。,響應(yīng)的條件:IF=1,INTR為高電平,當前指令執(zhí)行完。,可屏蔽中斷響應(yīng)總線周期,第一個中斷響應(yīng)周期,第二個中斷響應(yīng)周期,8259A中斷控制器,Intel 8259A是可編程中斷控制器,可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中斷,8259A的基本功能,一片8259A可以管理8
6、級中斷,可擴展至64級,每一級中斷都可單獨被屏蔽或允許,在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號,8259A設(shè)計有多種工作方式,可通過編程選擇,8259A的內(nèi)部結(jié)構(gòu)和引腳,D,7,D,0,INTA,INT,中斷請求寄存器,中斷屏蔽寄存器,數(shù)據(jù),總線,緩沖器,IR0,IR7,讀/寫,控制,邏輯,級聯(lián),緩沖器,比較器,RD,WR,A,0,CS,CAS0,CSA1,CAS2,SP/EN,優(yōu)先權(quán)判別電路,中斷服務(wù)寄存器,控制邏輯,8259A的工作方式,普通全嵌套方式,特殊全嵌套方式,自動循環(huán)方式,特殊循環(huán)方式,優(yōu)先權(quán)固定方式,優(yōu)先權(quán)循環(huán)方式,設(shè)置優(yōu)先權(quán)方式,普通中斷結(jié)束方式,特殊中斷結(jié)束方式,自動中斷結(jié)
7、束方式,非自動中斷結(jié)束方式,結(jié)束中斷處理方式,屏蔽中斷源方式,普通屏蔽方式,特殊屏蔽方式,中斷觸發(fā)方式,邊沿觸發(fā)方式,電平觸發(fā)方式,數(shù)據(jù)線連接方式,緩沖方式,非緩沖方式,1.設(shè)置優(yōu)先權(quán)方式,普通全嵌套方式,8259A的中斷,優(yōu)先權(quán)順序固定不變,,從高到低依次為IR0、IR1、IR2、IR7,中斷請求后,8259A對,當前請求中斷中優(yōu)先權(quán)最高的中斷,IRi予以,響應(yīng),,將其向量號送上數(shù)據(jù)總線,對應(yīng)ISR的Di位置位,至到中斷結(jié)束(ISR的Di位復(fù)位),在ISR的Di位置位期間,,禁止再發(fā)生同級和低級優(yōu)先權(quán)的中斷,,但允許高級優(yōu)先權(quán)中斷的嵌套,特殊全嵌套方式:,能響應(yīng)同級中斷,嵌套,;,用于多片級
8、聯(lián),只對主片編程設(shè)置在特殊全嵌套方式;,1.設(shè)置優(yōu)先權(quán)方式,CPU,IR,0,IR,1,IR,7,IR,0,IR,1,IR,7,8259(主片),8259(從片),1.設(shè)置優(yōu)先權(quán)方式,優(yōu)先級自動循環(huán)方式:,優(yōu)先級是循環(huán)變化的:一個設(shè)備的中斷服務(wù)完成后,其優(yōu)先級自動降為最低,而將最高優(yōu)先級賦給原來比它低一級的中斷請求。,初始優(yōu)先級隊列是:,IR,0,-IR,7,,,1.設(shè)置優(yōu)先權(quán)方式,優(yōu)先級特殊循環(huán)方式:,可以設(shè)置開始的最低優(yōu)先級。,例如,設(shè)定IR,4,為最低優(yōu)先級,那么IR,5,就是最高優(yōu)先級,其余各級按循環(huán)方法類推。,2.結(jié)束中斷處理方式,什么是8259A的中斷結(jié)束?,8259A利用中斷服務(wù)
9、寄存器ISR判斷:,某位為,1,,表示正在進行中斷服務(wù);,該位為,0,,就是該中斷結(jié)束服務(wù)。,2.結(jié)束中斷處理方式,自動中斷結(jié)束方式,普通中斷結(jié)束方式,配合全嵌套優(yōu)先權(quán)方式使用,當CPU用輸出指令往8259A,發(fā)出普通中斷結(jié)束EOI命令,時,8259A就會把所有正在服務(wù)的中斷中優(yōu)先權(quán)最高的ISR位復(fù)位,實現(xiàn):,MOV AL,20H;OCW,2,=20H,OUT 20H,AL;端口地址=20H(偶地址),2.結(jié)束中斷處理方式,特殊中斷結(jié)束方式,配合循環(huán)優(yōu)先權(quán)方式使用,CPU在程序中向8259A發(fā)送一條特殊中斷結(jié)束命令,這個命令中指出了要清除哪個ISR位,3.屏蔽中斷源方式,普通屏蔽方式,將IMR
10、的Di位置1,則對應(yīng)的中斷IRi被屏蔽,,該中斷請求不能從8259A送到CPU。,如果IMR的Di位置0,則允許IRi中斷。,特殊屏蔽方式,將IMR的Di位置1,對應(yīng)的中斷IRi被屏蔽的同時,使ISR的Di位置0。,允許某些優(yōu)先級更低的中斷請求被響應(yīng)。,4.中斷觸發(fā)方式,邊沿觸發(fā)方式,8259A將中斷請求輸入端出現(xiàn)的上升沿作為中斷請求信號,電平觸發(fā)方式,中斷請求端出現(xiàn)的高電平是有效的中斷請求信號,5.數(shù)據(jù)線連接方式,緩沖方式,8259A的數(shù)據(jù)線需加緩沖器予以驅(qū)動,8259A把SP/EN引腳作為輸出端,輸出允許信號,用以鎖存或開啟緩沖器,非緩沖方式,SP/EN引腳為輸入端,若8259A級連,由其
11、確定是主片或從片,8259A的編程,初始化編程,8259A開始工作前,必須進行初始化編程,給8259A寫入,初始化命令字ICW,中斷操作編程,在8259A工作期間,可以寫入,操作命令字OCW,將選定的操作傳送給8259A,使之按新的要求工作,還可以讀取8259A的信息,以便了解它的工作狀態(tài),CPU,AD,7,AD,0,INTA,INTR,SP/EN,ISR,ICW,1,OCW,1,(,IMR,),ICW,2,OCW,2,ICW,3,OCW,3,ICW,4,PR,IRR,D,7,D,0,地址,譯碼,.,.,.,INT,INTA,CS,RD,WR,A,0,CAS,0,CAS,1,CAS,2,.,.
12、,.,IR,7,IR,0,1.初始化命令字ICW,初始化命令字ICW最多有4個,8259A在開始工作前必須寫入,必須按照ICW1ICW4順序?qū)懭?ICW1和ICW2是必須送的,ICW3和ICW4由工作方式?jīng)Q定,ICW1,1,LTIM,SNGL,IC4,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,表示可以任意,為1為0都可以(建議為0),1只能為1,作為標志,中斷觸發(fā)方式:,LTIM1,電平觸發(fā)方式,LTIM0,邊沿觸發(fā)方式,規(guī)定單片或級連方式:,SNGL1,單片方式,SNGL0,級連方式,是否寫入ICW4,IC41,要寫入ICW4,IC40,不寫入ICW4,即ICW4規(guī)定的
13、位全為0,ICW2,T,7,T,6,T,5,T,4,T,3,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,設(shè)置中斷向量號,T7,T3,為中斷向量號的高,5,位,低,3,位由,8259A,自動確定:,IR0,為,000,、,IR1,為,001,、,、,IR7,為,111,ICW3,S,7,S,6,S,5,S,4,S,3,S,2,/,ID,2,S,1,/,ID,1,S,0,/,ID,0,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,級連命令字,主片,8259A,:,Si,1,對應(yīng),IRi,接有從片;否則,IRi,沒有連接從片,從片,8259A,:,ID0,ID2
14、,編碼說明從片,INT,引腳接到主片哪個,IR,引腳,ICW4,0,0,0,SFNM,BUF,M/S,AEOI,PM,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,嵌套方式:,特殊全嵌套方式(,SFNM,1,),普通全嵌套方式(,SFNM,0,),數(shù)據(jù)線的緩沖方式:,緩沖方式(,BUF,1,),非緩沖方式(,BUF,0,),主片/從片選擇:,主片(,M/S=1,),從片(,M/S=0,),中斷結(jié)束方式:,自動中斷結(jié)束(,AEOI,1,),非自動中斷結(jié)束(,AEOI,0,),微處理器類型:,16,位,80 x86,(,PM,1,),8,位,8080/8085,(,PM,0,),
15、例:,設(shè)8086系統(tǒng)中,8259A的端口地址為20H、21H,電平觸發(fā)方式,單片8259A,中斷類型號為60H67H,全嵌套方式,一般結(jié)束方式,非緩沖方式。編寫初始化程序。,初始化8259A,mov al,1Bh;寫入ICW1,out 20h,al,mov al,60h;寫入ICW2,out 21h,al,mov al,1h;寫入ICW4,out 21h,al,中斷控制器的初始化程序段,2.操作命令字OCW,8259A工作期間,可以隨時接受操作命令字OCW,OCW共有3個:OCW1OCW3,寫入時沒有順序要求,需要哪個OCW就寫入那個OCW,OCW1(奇地址),M,7,M,6,M,5,M,4,
16、M,3,M,2,M,1,M,0,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,屏蔽命令字,內(nèi)容寫入中斷屏蔽寄存器IMR,DiMi對應(yīng)IRi,為1禁止IRi中斷;,為0允許IRi中斷。各位互相獨立。,OCW2(偶地址),R,SL,EOI,0,0,L2,L1,L0,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,R、SL和EOI配合使用,產(chǎn)生中斷結(jié)束EOI命令和改變優(yōu)先權(quán)順序,L2L0的3位編碼,指定IR引腳,OCW3(偶地址),0,ESMM,SMM,0,1,P,RR,RIS,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,ESMM、SMM,設(shè)置中斷屏蔽方式,ESMM=1、SMM=1:置特殊屏蔽,ESMM=1、SMM=0:清特殊屏蔽,P、RR和RIS,規(guī)定隨后讀取的,狀態(tài)字,含義,P=1,中斷查詢方式,P=0:,RR=1,RIS=0,讀IRR,RR=1,RIS=1,讀ISR,3.讀取狀態(tài)字,CPU可讀出的狀態(tài)字有:IRR、ISR、IMR和查詢字。,IMR,:隨時從奇地址口讀出。,IRR,:先設(shè)OCW3命令:P=0、RR=1、RIS=0,緊接