




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第九章中斷技術(shù)一、中斷的基本概念二、中斷控制器Intel8259A三、IBMPC/XT的基本中斷系統(tǒng)四、PC/AT(80286)中8259的使用情況六、中斷服務(wù)程序的編程五、Pentium的中斷系統(tǒng)簡介——CPU在正常運(yùn)行程序時(shí),由于程序的預(yù)先安排或計(jì)算機(jī)內(nèi)外部事件,引起CPU中斷正在運(yùn)行的程序,而轉(zhuǎn)到為預(yù)先安排的事件或內(nèi)外部事件服務(wù)的程序中去。1.中斷一、中斷的基本概念中斷源中斷請求當(dāng)前程序中斷服務(wù)程序程序斷點(diǎn)中斷返回中斷響應(yīng)movah,2int21haddal,1movah,2movdl,alint21h預(yù)先安排的事件:計(jì)算機(jī)內(nèi)外部事件:如:除法溢出;電源故障;內(nèi)存錯(cuò)誤;鍵盤輸入;與不同外設(shè)的信息交換;等。
(1)實(shí)時(shí)處理在計(jì)算機(jī)用于工業(yè)控制時(shí),由于很多控制參數(shù)發(fā)生變化的頻率很高,計(jì)算機(jī)要及時(shí)地獲得它們的變化情況。當(dāng)有關(guān)參數(shù)發(fā)生變化時(shí),外部設(shè)備則向計(jì)算機(jī)發(fā)出中斷請求信號(hào),要求計(jì)算機(jī)進(jìn)行處理,從而達(dá)到實(shí)時(shí)數(shù)據(jù)處理的目的。
(2)故障處理在計(jì)算機(jī)運(yùn)行時(shí),往往會(huì)發(fā)生一些無法事先預(yù)料到的故障,如電源、內(nèi)存或運(yùn)算溢出等。當(dāng)這些故障出現(xiàn)時(shí),故障源向CPU發(fā)出中斷請求,CPU對故障進(jìn)行自動(dòng)處理。
(3)同步操作在很多計(jì)算機(jī)系統(tǒng)中,外設(shè)與CPU經(jīng)常同時(shí)工作。由于外設(shè)的工作速度較慢,所以CPU啟動(dòng)外設(shè)后,繼續(xù)運(yùn)行其它程序,而這時(shí)外設(shè)也進(jìn)行數(shù)據(jù)的準(zhǔn)備工作。當(dāng)外設(shè)將數(shù)據(jù)準(zhǔn)備完畢后,向CPU發(fā)出中斷請求,CPU暫停當(dāng)前工作,進(jìn)行相應(yīng)的數(shù)據(jù)處理工作。2.中斷的主要作用
常見的中斷源有:(1)一般的輸入、輸出設(shè)備。如鍵盤、鼠標(biāo)、打印機(jī)等;(2)數(shù)據(jù)通道中斷源,如磁盤等;(3)實(shí)時(shí)時(shí)鐘。如PC機(jī)的計(jì)時(shí)時(shí)鐘;(4)系統(tǒng)故障。如電源故障、計(jì)算溢出等;(5)斷點(diǎn)。通常為調(diào)試程序而人為設(shè)置的中斷點(diǎn)。3.中斷源在計(jì)算機(jī)系統(tǒng)中,發(fā)出中斷請求的來源稱為中斷源。4.中斷的類型PC系列微機(jī)最多可以支持256種中斷,它們被分為四種類型:
?
異常(由指令的執(zhí)行引起的同步事件,與指令密切相關(guān),如溢出,段不存在等)
?軟件中斷(INTn,INTO)
?外部可屏蔽中斷(與指令的執(zhí)行無關(guān)的事件,通常由外部事件如I/O設(shè)備的
?外部非屏蔽中斷請求所引起的對CPU的請求)每個(gè)中斷都指定了一個(gè)類型碼,也稱為中斷號(hào)。對應(yīng)每一種中斷應(yīng)當(dāng)有一個(gè)中斷服務(wù)程序(ISP)(InterruptServiceProgram——ISP)中斷類型碼通過一個(gè)地址指針表與中斷服務(wù)程序的入口地址相聯(lián)系:在實(shí)模式下:該表稱為中斷向量表;在保護(hù)模式下:該表稱為中斷描述符表。00000H00004H003FCH0型中斷向量1型中斷向量255型中斷向量n型中斷向量……4*n(1)異常是指令執(zhí)行過程中引起的內(nèi)部異常操作處理。包括除法錯(cuò)誤異常、調(diào)試異常、斷點(diǎn)中斷等。異常中斷的例子:0型——除法錯(cuò)誤異常1型——調(diào)試異常…...(2)軟件中斷執(zhí)行有定義的INTn指令而引發(fā)的中斷,稱為軟件中斷。軟件中斷使用05H、10H~0FFH中的若干個(gè)中斷號(hào);軟件中斷進(jìn)一步分為BIOS中斷和DOS中斷。異常和軟件中斷是由處理器內(nèi)部產(chǎn)生的。(3)外部可屏蔽中斷
?外部可屏蔽中斷是處理器響應(yīng)各種外部硬件中斷的最常用的方法,通過處理器的INTR引腳產(chǎn)生;?外部可屏蔽中斷受處理器內(nèi)部的中斷允許標(biāo)志位IF的控制;
?處理器只有一個(gè)INTR引腳可以接受外部可屏蔽中斷請求,為了管理眾多的外部中斷源,微機(jī)系統(tǒng)中采用可編程中斷控制器8259;?PC系列機(jī)通過兩片8259級連可以響應(yīng)15個(gè)外部中斷源。(4)外部非屏蔽中斷?為外部緊急請求提供服務(wù)的中斷,通過處理器的NMI引腳產(chǎn)生;?NMI與IF標(biāo)志的狀態(tài)無關(guān);?
NMI有一個(gè)專用的類型號(hào)02H;?使用非屏蔽中斷的典型例子是電源故障中斷。5.中斷的優(yōu)先級(權(quán))與中斷嵌套優(yōu)先級(權(quán))通常一個(gè)系統(tǒng)有多個(gè)中斷源,而CPU同一時(shí)刻只能響應(yīng)一個(gè)中斷源的請求,那么當(dāng)多個(gè)中斷源同時(shí)請求中斷服務(wù)時(shí),應(yīng)該先響應(yīng)哪一個(gè),有一個(gè)次序安排的問題。按中斷源的輕重緩急程度確定的優(yōu)先級別,稱為優(yōu)先級(權(quán))。1異常軟件中斷外部非屏蔽中斷外部可屏蔽中斷優(yōu)先級遞增作用——①當(dāng)多個(gè)中斷請求到達(dá)時(shí),CPU要響應(yīng)優(yōu)先權(quán)相對高的請求;
②當(dāng)CPU正在進(jìn)行中斷服務(wù)時(shí),優(yōu)先權(quán)相對高的中斷請求能中斷優(yōu)先權(quán)相對低的中斷服務(wù)。中斷嵌套1#中斷請求響應(yīng)返回1#中斷服務(wù)程序2#中斷請求響應(yīng)返回2#中斷服務(wù)程序3#中斷請求響應(yīng)返回3#中斷服務(wù)程序原主程序中斷優(yōu)先級3#>2#>1#?中斷嵌套可以有多級,具體級數(shù)原則上不限,只取決于堆棧深度。當(dāng)CPU正在響應(yīng)某一中斷源的請求,執(zhí)行為其服務(wù)的中斷服務(wù)程序時(shí),如果有優(yōu)先級更高的中斷源發(fā)出請求,CPU將中止正在執(zhí)行的中斷服務(wù)程序而轉(zhuǎn)入為新的中斷源服務(wù),等新的中斷服務(wù)程序執(zhí)行完后,再返回到被中止的中斷服務(wù)程序,這一過程稱為中斷嵌套。
1中斷優(yōu)先判斷可分為軟件處理和硬件處理兩種方式。中中中中中中中中斷斷斷斷斷斷斷斷源源源源源源源源12345678輸入端口(地址:20H)INTR保護(hù)現(xiàn)場中斷1申請中斷2申請中斷3申請外設(shè)1中斷服務(wù)程序恢復(fù)現(xiàn)場,中斷返回軟件查詢接口軟件查詢流程
?
軟件方式電源故障
磁盤
鍵盤輸入
打印輸出
外設(shè)2中斷服務(wù)程序外設(shè)3中斷服務(wù)程序YYYNN先判斷的,優(yōu)先級高
?
硬件優(yōu)先權(quán)排隊(duì)電路——了解使用硬件進(jìn)行中斷優(yōu)先權(quán)排隊(duì)主要有以下兩種方式:
8-3優(yōu)先權(quán)編碼組中斷輸入
優(yōu)先權(quán)寄存器CPU數(shù)據(jù)總線
A1A2A3
B1B2B3A>BINTR比較器方式中斷優(yōu)先排隊(duì)電路比較器方式
在圖中優(yōu)先權(quán)寄存器中存放的是當(dāng)前在服務(wù)的中斷碼,如沒有中斷服務(wù)則為0,當(dāng)有中斷請求到來時(shí),從中斷輸入A端輸入的中斷信號(hào)被編碼,并與B端的在服務(wù)中斷號(hào)進(jìn)行比較,如A小于或等于B則從INTR端輸出一低電平。否則為高電平,向CPU發(fā)出中斷申請信號(hào)。當(dāng)優(yōu)先權(quán)較高的中斷優(yōu)先權(quán)較低的中斷服務(wù)時(shí),進(jìn)入優(yōu)先權(quán)較高的中斷服務(wù)前,要先保存上次在服務(wù)的中斷號(hào),當(dāng)本次中斷結(jié)束時(shí),要將上次在服務(wù)的中斷號(hào)送回到優(yōu)先權(quán)寄存器。
比較器雛菊花環(huán)電路方式
F/F1F/F2F/F3F/F4中斷輸入1中斷輸入2中斷輸入3中斷輸入4
中斷響應(yīng)(來自CPU)中斷輸出1中斷輸出2中斷輸出3中斷輸出4
雛菊花環(huán)電路優(yōu)先權(quán)排隊(duì)電路
當(dāng)中斷輸入n發(fā)中斷信號(hào)時(shí),如沒有在服務(wù)中斷,同時(shí),中斷是開放的,則CPU響應(yīng)中斷請求n。每個(gè)中斷輸入可屏蔽其下一級的中斷請求信號(hào)的輸出,并可將屏蔽信號(hào)傳遞到下面的各級。當(dāng)有某級中斷在服務(wù)時(shí),比它級別高的中斷輸入請求中斷時(shí),高級別中斷將被CPU響應(yīng),同時(shí)屏蔽其以下的各級中斷。從而達(dá)到了中斷優(yōu)先排隊(duì)的目的。當(dāng)中斷請求被響應(yīng)時(shí),CPU將停止當(dāng)前運(yùn)行的程序,轉(zhuǎn)入中斷服務(wù)程序,而每個(gè)中斷服務(wù)程序都有一個(gè)程序的入口地址,這個(gè)入口地址就是中斷向量。000000000C00013C1F1F3C:0100(1F4C0)PUSHAXPUSHBX003FF中斷向量表INT3中斷服務(wù)程序中斷向量6.中斷向量與中斷向量表(中斷描述符表)內(nèi)存中存放一組中斷向量的區(qū)域被稱為中斷向量表。當(dāng)中斷被響應(yīng)后,CPU根據(jù)中斷的類型號(hào),計(jì)算出中斷向量在中斷向量表中的位置,然后從表中取出中斷向量(中斷服務(wù)程序的入口地址),并進(jìn)入中斷服務(wù)程序。中斷向量表?中斷向量表存放在內(nèi)存最低端的1K單元之中,物理地址00000H~003FFH.00000H00004H003FCH0型中斷向量1型中斷向量255型中斷向量n型中斷向量……4*n中斷向量表包含256個(gè)中斷向量。每個(gè)中斷向量占用兩個(gè)字(4個(gè)字節(jié)),高地址字為中斷服務(wù)程序所在代碼段的段基址,低地址字為代碼段中中斷服務(wù)程序第一條指令的偏移量。1中斷描述符表——了解7.中斷指令STI——開中斷指令(將標(biāo)志寄存器中的中斷標(biāo)志位IF置1,允許CPU響應(yīng)來自INTR引腳的中斷請求)CLI——關(guān)中斷指令(將標(biāo)志寄存器中的中斷標(biāo)志位IF清0,使CPU不響應(yīng)來自INTR引腳的中斷請求)INTn——軟件中斷指令(n為中斷號(hào),調(diào)用n號(hào)中斷服務(wù)程序。)
①將標(biāo)志寄存器壓棧②將TF置0,禁止單步操作,將IF置0,使CPU處于關(guān)中斷狀態(tài)③斷點(diǎn)的CS、IP壓棧④從中斷向量表取n號(hào)中斷向量IP、CS⑤轉(zhuǎn)向n號(hào)中斷服務(wù)程序IRET——中斷返回指令(中斷服務(wù)程序的出口指令,從棧頂彈出6個(gè)字節(jié)依次寫入IP、CS和標(biāo)志寄存器)8.CPU響應(yīng)中斷的工作過程
(1)關(guān)閉中斷:多數(shù)CPU在發(fā)出響應(yīng)中斷信號(hào)時(shí),自動(dòng)關(guān)閉中斷。
(2)保留斷點(diǎn):CPU響應(yīng)中斷后,為了在處理完中斷請求后正確返回到主程序,CPU要將返回地址(IP+1,CS)壓入棧內(nèi)保存起來。
(3)保護(hù)現(xiàn)場:由于中斷具有很強(qiáng)的隨機(jī)性,所以,為了能保證中斷返回后主程序正確運(yùn)行,要將有關(guān)寄存器和運(yùn)行狀態(tài)壓入棧內(nèi)保護(hù)起來。
(4)進(jìn)行中斷服務(wù)程序:要進(jìn)行中斷服務(wù)程序,就要取得入口地址,不同的CPU有不同的取得入口地址方式,8086/8088CPU是通過中斷矢量形成入口地址的。當(dāng)?shù)玫饺肟诘刂泛?,CPU就開始運(yùn)行中斷服務(wù)程序。
(5)恢復(fù)現(xiàn)場:當(dāng)中斷服務(wù)程序結(jié)束時(shí),將已保護(hù)的有關(guān)寄存器和狀態(tài)從棧中彈出,為主程序的正確運(yùn)行作好準(zhǔn)備。
(6)開放中斷并返回:在中斷服務(wù)程序的最后,要開放中斷為以后的中斷請求作好準(zhǔn)備,然后使用中斷返回指令(如8086/8088中的IRET)返回到主程序。二、簡單中斷電路——了解1.設(shè)置中斷請求觸發(fā)器——每一個(gè)中斷源要能發(fā)出中斷請求信號(hào),且這個(gè)信號(hào)能保持,一直到CPU響應(yīng)這個(gè)中斷。CPUI/ORDINTR地址總線數(shù)據(jù)總線A7~A0D7~D0數(shù)據(jù)端口數(shù)據(jù)RQD外設(shè)Ready+5V2.設(shè)置中斷屏蔽觸發(fā)器——只有當(dāng)此觸發(fā)器置1時(shí),外設(shè)請求才被送至CPU。CPURDINTR外設(shè)數(shù)據(jù)端口地址譯碼器地址譯碼器控制端口QDQDD7~D0CSR+5VWR1中斷請求中斷屏蔽ReadyA15~A0CPU內(nèi)部有一中斷允許觸發(fā)器,由STI和CLI控制;CPU復(fù)位時(shí),中斷允許觸發(fā)器為“0”;中斷響應(yīng)后CPU也關(guān)中斷。三、中斷控制器Intel8259A——了解
Intel8259A是兼容于8080/8085、8086/8088和80286系列的可編程中斷控制器,其功能主要有:1)單片8259A可管理8級中斷;2)通過級連,可管理多于8級的中斷,在不增加其它電路的前提下,可使用8片8259A構(gòu)成64級主從式中斷系統(tǒng);3)每一級中斷都可通過編程使之被屏蔽或被允許;4)8259A可通過編程被設(shè)定為幾種不同的工作方式。1.功能數(shù)據(jù)總線緩沖器讀/寫邏輯級聯(lián)緩沖比較器控制邏輯
ISR優(yōu)先權(quán)電路
IRRIMRIR0IR7D7~D0INTAINTRDWRA0CSCAS0CAS1CAS2SP/EN內(nèi)部數(shù)據(jù)總線2.結(jié)構(gòu)IR18位雙向三態(tài)。是與CPU進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)通道,CPU對它的讀出和寫入都是通過該緩沖器進(jìn)行的。用于CPU對8259A進(jìn)行讀寫控制用于多片8259A進(jìn)行級連根據(jù)設(shè)定的工作方式管理整個(gè)芯片的工作8位寄存器。用于存放來自外設(shè)的中斷請求信號(hào),當(dāng)某引腳有中斷請求信號(hào)時(shí),相應(yīng)的位被置1。00010110IRR8位寄存器。用于存放正在處理的中斷請求信號(hào),8259A在接收到CPU的響應(yīng)信號(hào)(INTA)后,使相應(yīng)位置1。00010100ISR用于識(shí)別和管理各種中斷請求信號(hào)的優(yōu)先級別。8位寄存器。用于存放對中請求的屏蔽信息。當(dāng)某位被編程設(shè)置為1時(shí),則相應(yīng)的中斷請求信號(hào)被屏蔽,不會(huì)被送到CPU.10000001IMRCSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2D7~D0數(shù)據(jù)總線(雙向)RD讀輸入WR寫輸入A0選擇內(nèi)部寄存器地址CS片選CAS2~CAS2級連線SP/EN從程序/充許緩沖INT中斷輸出INTA中斷響應(yīng)輸入IR0~IR7中斷請求輸入8259管腳對照表12822732642552462372282192010191118121713161415管腳信號(hào)3.工作方式[1]設(shè)置優(yōu)先級的方式(1)全嵌套方式全嵌套方式是8259最常用的工作方式。初始化后若沒有再設(shè)置其它優(yōu)先級方式(如優(yōu)先權(quán)旋轉(zhuǎn)),8259自動(dòng)進(jìn)入全嵌套方式。其特點(diǎn)是:
?中斷請求優(yōu)先級順序是IRQ0——IRQ7。
?當(dāng)一個(gè)中斷被響應(yīng)時(shí),中斷服務(wù)寄存器ISR相應(yīng)的位被置為“1”,且保持到中斷服務(wù)程序在返回前發(fā)中斷結(jié)束命令為止。
?在ISR位置位期間,禁止再發(fā)生同級或較低級的中斷,較高級的中斷請求仍能產(chǎn)生中斷。
?每個(gè)中斷請求可分別由IMR相應(yīng)位屏蔽。1(2)特殊全嵌套特殊全嵌套方式同全嵌套方式只有一點(diǎn)不同,即:在特殊全嵌套方式下,當(dāng)正處理某一級中斷時(shí),又有同級的中斷請求產(chǎn)生時(shí),8259A也會(huì)響應(yīng),從而實(shí)現(xiàn)一種對同級中斷請求的特殊嵌套。特殊全嵌套方式一般用于多片8259A級連的系統(tǒng)中。1(3)優(yōu)先級自動(dòng)旋轉(zhuǎn)方式優(yōu)先級自動(dòng)旋轉(zhuǎn)方式一般用于系統(tǒng)中有多個(gè)優(yōu)先級相等的中斷源的情況。在這種方式下,優(yōu)先級隊(duì)列是變化的,一個(gè)設(shè)備受到服務(wù)后,其優(yōu)先級自動(dòng)降到最低。初始優(yōu)先級隊(duì)列是固定的,為:IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7(由高到低)。如果這時(shí)IRQ1有中斷請求,則在完成其中斷服務(wù)后,優(yōu)先級隊(duì)列變?yōu)椋ㄓ筛叩降停篒RQ0IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7IRQ1
優(yōu)先級自動(dòng)旋轉(zhuǎn)方式由操作命令字OCW2設(shè)定。1(4)優(yōu)先級特殊旋轉(zhuǎn)方式
優(yōu)先級特殊旋轉(zhuǎn)方式與優(yōu)先級自動(dòng)旋轉(zhuǎn)方式只有一點(diǎn)不同,即:在優(yōu)先級特殊旋轉(zhuǎn)方式中,初始的最低優(yōu)先級由編程來決定,例如,設(shè)定IRQ3為最低優(yōu)先級,那么,IRQ4即為最高優(yōu)先級。
優(yōu)先級自動(dòng)旋轉(zhuǎn)方式也是由操作命令字OCW2設(shè)定。1[2]屏蔽中斷源的方式(1)普通屏蔽方式
在該方式中,8259A的每一條中斷請求線都可根據(jù)需要設(shè)置屏蔽,從而使這個(gè)中斷請求不能從8259A送到CPU??梢酝ㄟ^操作命令字OCW1來設(shè)置屏蔽。8259A內(nèi)部有一個(gè)中斷屏蔽寄存器IMR,它的每一位對應(yīng)了一個(gè)中斷請求輸入,通過設(shè)置OCW1,使IMR中任一位或幾位為1,當(dāng)某位為1時(shí),對應(yīng)的中斷請求被屏蔽。1(2)特殊屏蔽方式
在某些應(yīng)用場合,希望能動(dòng)態(tài)地改變系統(tǒng)的優(yōu)先級結(jié)構(gòu),即在執(zhí)行中斷服務(wù)程序的某一部分時(shí),希望禁止某些較低級的中斷請求,而在執(zhí)行中斷服務(wù)程序的另一部分時(shí),又能夠開放比自己級別低的中斷請求。要達(dá)到這種目的,可采用特殊屏蔽方式。設(shè)置了特殊屏蔽方式后,未被OCW1屏蔽的中斷,不管其優(yōu)先級如何,都可申請中斷。
特殊屏蔽方式由操作命令字OCW3來設(shè)置。1[3]
結(jié)束中斷處理的方式(1)自動(dòng)中斷結(jié)束方式(AEOI)
自動(dòng)中斷結(jié)束方式由初始化命令字ICW4設(shè)置。1(2)非自動(dòng)中斷結(jié)束方式
在這種方式下,當(dāng)中斷服務(wù)程序結(jié)束返回時(shí),必須向8259A送中斷結(jié)束命令(EOI),8259A在接到該命令后,將中斷服務(wù)寄存器中相應(yīng)位復(fù)位。它有兩種情況:
?非特殊EOI命令:在全嵌套方式下,EOI命令能自動(dòng)地把當(dāng)前ISR中優(yōu)先級最高的一位清0。因?yàn)樵谌短追绞街?,最高的非零ISR位對應(yīng)了最后一次被響應(yīng)和被處理的中斷。也就是當(dāng)前正在處理的中斷,所以,它的復(fù)位相當(dāng)于結(jié)束了當(dāng)前正在處理的中斷。
?特殊EOI命令:在非全嵌套方式下,因無法確定最后響應(yīng)的是哪一級中斷,故應(yīng)向8259A發(fā)特殊EOI命令。這個(gè)命令指出了要清除當(dāng)前中斷服務(wù)寄存器ISR中的哪一位。
兩種EOI命令由操作命令字OCW2設(shè)定。1[4]中斷查詢方式[5]
多片級連方式一個(gè)8259A主片至多帶8個(gè)從片,因此可擴(kuò)展控制64個(gè)中斷源。所有的主片和從片均分別進(jìn)行初始化,且可設(shè)定為不同的工作方式。[6]緩沖方式
8259A不向CPU發(fā)INT請求信號(hào),而由CPU發(fā)查詢命令來獲得對請求設(shè)備的中斷優(yōu)先級。其特點(diǎn)是:?外部設(shè)備仍然通過8259A發(fā)中斷請求信號(hào)要求CPU進(jìn)行服務(wù),但8259A不是用INT信號(hào)向CPU發(fā)中斷請求信號(hào)。?CPU內(nèi)部的中斷觸發(fā)器復(fù)位,禁止外部對CPU的中斷請求。?CPU使用軟件查詢確認(rèn)中斷源,進(jìn)而對外部設(shè)備進(jìn)行中斷服務(wù)。
通過OCW3發(fā)出查詢命令。1
?緩沖方式:在多片8259A級連的大系統(tǒng)中,8259A通過總線驅(qū)動(dòng)器和數(shù)據(jù)總線相連,這就是緩沖方式。
?非緩沖方式:當(dāng)系統(tǒng)中只有單片8259A,一般將它直接與數(shù)據(jù)總線相連;另外,在一些不太大的系統(tǒng)中,即使有幾片8259A級連工作,也可以將8259A直接與數(shù)據(jù)總線相連。這種連接即為非緩沖方式。
緩沖方式由ICW4設(shè)置。
18259A的編程結(jié)構(gòu)8259的編程結(jié)構(gòu)由三組共10個(gè)寄存器構(gòu)成,每個(gè)寄存器均為8位。4.8259A的編程
初始化命令字ICW(InitializationCommandWord)通常是系統(tǒng)開機(jī)時(shí),由初始化程序填寫,且在整個(gè)系統(tǒng)工作過程中保持不變。初始化命令字必須按順序填寫。下面我們討論來討論它的格式及填寫規(guī)則。(1)ICW1
[1]初始化命令字1—需要ICW40—不需要ICW41—單片8259A0—級連調(diào)用地址間距(僅用于MCS—80/85模式)1—電平觸發(fā)方式0—邊沿觸發(fā)方式中斷向量地址(僅用于MCS—80/85模式)A0
D7D6D5D4D3D2D1D0
0A7A6A51LTIMADISNGLICW41A15A14A13A12A11A10A9A8
T7T6T5T4T3
中斷向量地址的A15~A8位(MCS—8080/8085模式)中斷向量地址的T7~T3位(8086/8088模式)A0
D7D6D5D4D3D2D1D01(2)ICW2注:T7~T3—中斷向量類型碼高位,由編程決定。低三位—自動(dòng)設(shè)置為IR0~IR7的類型編碼。D7D6D5D4D3D2D1D0IR7T7T6T5T4T3111IR6T7T6T5T4T3110IR5T7T6T5T4T3101IR4T7T6T5T4T3100IR3T7T6T5T4T3011IR2T7T6T5T4T3010IR1T7T6T5T4T3001IR0T7T6T5T4T30008259A傳送的中斷向量1S7S6S5S4S3S2S1S0
1—IR輸入帶有一個(gè)從控制器0—IR輸入不帶一個(gè)從控制器A0
D7D6D5D4D3D2D1D01100000
ID2ID1ID0從控制器ID,編碼000~111分別對應(yīng)0~7IR輸入從片。A0
D7D6D5D4D3D2D1D01(3)ICW3(主控制器)ICW3(從控制器)
1—86/88模式0—80/85模式1—自動(dòng)EOI0—正常EOI0X非緩沖方式10緩沖方式/從控制器11緩沖方式/主控制器1—特殊全嵌套方式0—非特殊全嵌套方式A0
D7D6D5D4D3D2D1D01(4)ICW4000SFNMBUFM/SAEOIμPM8259A初始化過程的流程圖如圖所示。ICW1ICW2ICW3ICW4級連方式?需要ICW4?準(zhǔn)備接受中斷請求No(SGNL=1)
Yes(SGNL=0)
No(ICW4=0)
Yes(ICW4=1)由CPU向8259A送三個(gè)字節(jié)的操作命令字OCW(OperationCommandWord),用以規(guī)定8259A的工作方式,如:
?中斷屏蔽
?結(jié)束中斷
?優(yōu)線權(quán)旋轉(zhuǎn)
?中斷狀態(tài)等。
操作命令字是在應(yīng)用程序中設(shè)置的,設(shè)置時(shí),順序上沒有嚴(yán)格的要求。[2]操作命令字1M7M6M5M4M3M2M1M0中斷屏蔽1——置屏蔽0——復(fù)位屏蔽A0
D7D6D5D4D3D2D1D01(1)OCW1OCW1是中斷屏蔽命令字,命令格式如圖。命令字中的M7~M0對應(yīng)IMR的各位。Mi=1表示該中斷被屏蔽,Mi=0表示該中斷開放。命令格式如圖。
?R、SL、EOI的不同組合決定了8259A的幾種工作方式。
?L2~L0這幾位確定當(dāng)SL=1時(shí)指定的特殊結(jié)束或特殊循環(huán)時(shí)的中斷優(yōu)先級。0R
SLEOI0
0
L2L1L0001非特殊EOI命令011特殊EOI命令101按非特殊EOI命令旋轉(zhuǎn)100以自動(dòng)EOI方式旋轉(zhuǎn)(設(shè)置)自動(dòng)旋轉(zhuǎn)000以自動(dòng)EOI方式旋轉(zhuǎn)(清除)111按特殊EOI命令旋轉(zhuǎn)110置優(yōu)先權(quán)命令010無操作0000有0011效0102的0113中1004斷1015請1106求1117級別(2)OCW2A0
D7D6D5D4D3D2D1D00中斷結(jié)束特殊旋轉(zhuǎn)00
ESMMSMM0
1
P
RR
RIS1=查詢命令0=非查詢命令用于控制8259A的運(yùn)行方式。命令格式如圖。(3)OCW3A0
D7D6D5D4D3D2D1D00讀寄存器命令01010011無作用在下一個(gè)讀脈沖時(shí)讀IRR在下一個(gè)讀脈沖時(shí)讀ISR特殊屏蔽方式01010011無作用復(fù)位特殊屏蔽置特殊屏蔽[3]初始化編程PC機(jī)中使用單片8259A,定義地址為:20H、21H,8259A的工作方式設(shè)置如下:(1)固定優(yōu)先權(quán)級別:IR0最高,IR7最低;(2)8個(gè)中斷類型碼分別是08H~0FH;(3)中斷請求信號(hào)采用邊沿觸發(fā)方式;(4)中斷服務(wù)結(jié)束時(shí),采用一般中斷結(jié)束命令(EOI);(5)采用一般屏蔽方式。初始化程序如下:初始化命令字:
ICW1:00010011B13H
ICW2:00001000B08H
ICW4:00000001B01H程序:MOVAL,13HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,01HOUT21H,AL三、IBMPC/XT的基本中斷系統(tǒng)——了解中斷類型
IBMPC/XT中有兩種類型的中斷:
(1)內(nèi)部中斷:即軟件中斷。包括被零除、單步、溢出和中斷指令(INTn)等。這是由8088執(zhí)行指令產(chǎn)生的中斷。
(2)外部中斷:
8088A有兩條外部中斷請求線——非屏蔽中斷請求線NMI
和
可屏蔽中斷請求線INTR。
?
非屏蔽中斷NMI。非屏蔽中斷來源于三方:系統(tǒng)板的RAM在讀寫時(shí)產(chǎn)生奇偶校驗(yàn)錯(cuò);
I/O通道中的擴(kuò)展選件出現(xiàn)奇偶校驗(yàn)錯(cuò);協(xié)處理器8087的異常狀態(tài)產(chǎn)生的中斷。
?可屏蔽中斷INTR。由外部設(shè)備通過一片8259A產(chǎn)生的中斷請求。8087中斷請求RAM奇偶錯(cuò)I/O通道檢查錯(cuò)NMI屏蔽寄存器屏蔽位8253定時(shí)器鍵盤未用異步通信卡(輔)異步通信卡(主)硬盤軟盤并行打印機(jī)NMIINTR01234567優(yōu)先級8088CPU8259A擴(kuò)充卡插槽2.
中斷向量表
8088在內(nèi)存的前1k字節(jié)建立了一個(gè)中斷向量表,可存儲(chǔ)256個(gè)中斷向量,每個(gè)中斷向量占用4個(gè)字節(jié),分別存放中斷服務(wù)程序入口地址的段地址和偏移量。每個(gè)中斷向量以類型碼加以區(qū)別,如:Int21hInt10h鍵盤中斷類型碼9當(dāng)執(zhí)行中斷時(shí),CPU將類型碼乘以4后,得到中斷向量地址,進(jìn)而得到IP和CS的值,它就是中斷服務(wù)程序的入口地址,程序由此轉(zhuǎn)入中斷服務(wù)程序執(zhí)行。000000000C00013C1F1F3C:0100(1F4C0)PUSHAXPUSHBX003FF中斷向量表INT3中斷服務(wù)程序中斷向量表6-3中斷向量表地址(Hex)類型碼中斷名稱0—30除以04—71單步8—B2非屏蔽C—F3斷點(diǎn)10—134溢出14—175打印屏幕18—1B6保留1D—1F7保留20—238定時(shí)器24—279鍵盤28—2BA保留的硬中斷2C—2FB異步通信(COM2)30—33C異步通信(COM1)34—37D硬盤
38—3BE軟盤3C—3FF并行打印機(jī)地址(Hex)類型碼中斷名稱40—4310視頻顯示I/O調(diào)用44—4711設(shè)備檢測調(diào)用48—4B12存儲(chǔ)器容量檢測4C—4F13軟/硬盤I/O調(diào)用50—5314通信I/O調(diào)用54—5715盒式磁帶I/O調(diào)用58—5B16鍵盤I/O調(diào)用5C—5F17打印機(jī)I/O調(diào)用60—6318ROMBASIC64—6719引導(dǎo)程序入口68—6B1A時(shí)間調(diào)用6C—6F1B鍵盤CTRL-BREAK控制70—731C定時(shí)器報(bào)時(shí)74—771D顯示器參數(shù)表78—7B1E軟盤參數(shù)表地址(Hex)類型碼中斷名稱7C—7F1F字符點(diǎn)陣結(jié)構(gòu)參數(shù)表80—8320程序結(jié)束,返回DOS84—8721DOS系統(tǒng)功能調(diào)用88—8B22程序結(jié)束地址8C—8F23CTRL_BREAK退出地址90—9324標(biāo)準(zhǔn)錯(cuò)誤出口地址94—9725絕對磁盤讀98—9B26絕對磁盤寫9C—9F27程序結(jié)束,駐留內(nèi)存A0—FF28—3F為DOS保留100—17F40—5F保留180—19F60—67為用戶軟中斷保留1A0—1FF68—7F不用200—21780—85BASIC使用218—3C386—F0BASIC運(yùn)行時(shí),用于解釋3C4—3FFF1—FF未用3.
中斷的執(zhí)行
(1)
軟中斷當(dāng)PC機(jī)執(zhí)行INTn等指令時(shí),即產(chǎn)生了軟件中斷,其執(zhí)行過程如下:?棧指針SP減2,標(biāo)志寄存器內(nèi)容入棧,然后清除T和I標(biāo)志,以屏蔽中斷。?SP再次減2,將CS內(nèi)容入棧。?用中斷類型碼n乘4,計(jì)算中斷向量地址,將向量中的后兩個(gè)字節(jié)送CS寄存器。?SP再次減2,把IP內(nèi)容入棧,把中斷向量中的前兩個(gè)字節(jié)送至IP。?由當(dāng)前的CS和IP值作為段地址和偏移量,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序中去執(zhí)行。(2)硬中斷中斷響應(yīng)周期8088響應(yīng)中斷,到轉(zhuǎn)入中斷處理,要經(jīng)過兩個(gè)中斷響應(yīng)周期。T1T2T3T4T1T2T3T4第一個(gè)中斷響應(yīng)周期第二個(gè)中斷響應(yīng)周期CLKALEINTAAD7~AD0向量類型碼第一個(gè)INTA信號(hào):將在服務(wù)寄存器ISR相應(yīng)位置位,表示正在為響應(yīng)的那一級服務(wù);同時(shí)將中斷請求觸發(fā)器復(fù)位。為本級再次中斷請求做好準(zhǔn)備。第二個(gè)INTA信號(hào):要求8259A輸入中斷向量類型碼。執(zhí)行過程?接口設(shè)備通過中斷請求線IR0—IR7中的一條,將8259A內(nèi)部中斷觸發(fā)器IRR相應(yīng)位置1。?8259A收到IRn信號(hào)后,將其與同時(shí)申請中斷的信號(hào)及正掛起的中斷信號(hào)比較分析優(yōu)先級,若其級別最高,則由8259A的INT腳向CPU發(fā)出中斷請求信號(hào)INTR。
?
8088響應(yīng)中斷,連續(xù)發(fā)出兩個(gè)INTA信號(hào),第一個(gè)INTA信號(hào)將在服務(wù)寄存器ISR相應(yīng)位置位,表示正在為響應(yīng)的那一級服務(wù);同時(shí)將中斷請求觸發(fā)器復(fù)位。為本級再次中斷請求做好準(zhǔn)備。第二個(gè)INTA信號(hào)要求8259A輸入中斷向量類型碼。
?
8088收到8位類型碼后,將其乘4作為中斷向量的地址。
?
8088屏蔽中斷,保護(hù)現(xiàn)場,并由取得的中斷向量得到IP和CS的值。
?以CS和IP值為段地址和偏移量,轉(zhuǎn)入中斷服務(wù)程序。
PC/AT中,8259的使用情況為:2片8259級聯(lián),提供15級向量中斷。從片的INT接主片的IRQ2。
端口地址:主片20H、21H,從片A0H、A1H。
主片和從片均采用邊沿觸發(fā)。采用全嵌套優(yōu)先級排列方式采用非緩沖方式,主片接+5V,從片接地。主片的類型碼為08H~0FH,從片的類型碼為70H~77H。
四、PC/AT(80286)中8259的使用情況——了解[注]從兼容的角度出發(fā),奔騰的可屏蔽中斷類似于80286。盡管當(dāng)今的奔騰計(jì)算機(jī)中已找不到8259A芯片及相應(yīng)的電路,而發(fā)展到高級可編程中斷控制器(AdvancedProgrammableInterruptController)子系統(tǒng),但它是至今還適用的中斷資源及其優(yōu)先級排序的來歷。優(yōu)先級(按從高到低的順序):
IRQ0IRQ1IRQ8IRQ9IRQ10…IRQ15IRQ3IRQ4…IRQ7中斷向量資源分配用戶使用中斷向量資源分配用戶使用IRQ008H定時(shí)/計(jì)數(shù)器不可IRQ870H實(shí)時(shí)時(shí)鐘不可IRQ109H鍵盤控制器不可IRQ971H保留可用IRQ20AH級連占用不可IRQ1072H保留可用IRQ30BH串行口2可能IRQ1173H保留可用IRQ40CH串行口1可能IRQ1274HPS/2鼠標(biāo)可能IRQ50DH并行口2可用IRQ1375H協(xié)處理器不可IRQ60E軟盤控制器不可IRQ1476H硬盤IDE1不可IRQ70FH并行口1可能IRQ1577H硬盤IDE2不可硬中斷資源的分配五、Pentium的中斷系統(tǒng)簡介——了解故障陷阱流產(chǎn)INTn異常軟件中斷奔騰的中斷系統(tǒng)R/S(恢復(fù)/停止引腳)FLUSH(刷新引腳)SMI(系統(tǒng)管理引腳)INIT(初始化引腳)NMIINTR(IRQ15~IRQ0)硬件中斷故障——這類異常由引起異常的指令執(zhí)行之前報(bào)告的,斷點(diǎn)就是引起異常的指令的CS和EIP,因此,當(dāng)故障處理程序消除了故障后,用IRET指令返回至引起故障的指令處,原來的程序恢復(fù)執(zhí)行;陷阱——這類異常在引起異常的指令執(zhí)行后報(bào)告,斷點(diǎn)是引起異常的指令的下一條指令的CS和EIP,因此,當(dāng)異常處理程序用IRET指令返回時(shí),程序從引起異常的指令的下一條指令處恢復(fù)執(zhí)行;流產(chǎn)——這類異常不能恢復(fù)執(zhí)行。R/S——恢復(fù)或停止當(dāng)前指令的執(zhí)行。FLUSH——為低時(shí),將Cache的內(nèi)容寫回到主存。SMI——為低時(shí),向外界發(fā)出即將進(jìn)入系統(tǒng)管理模式的提示信號(hào)。2.可屏蔽中斷系統(tǒng)中相當(dāng)于使用了兩個(gè)中斷控制器8259A級聯(lián),共提供15級可屏蔽的硬中斷:第一個(gè)(主)控制器的I/O地址為20H和21H,它提供的8級中斷IRQo—IRQ7;第二個(gè)(從)控制器的I/O地址為A0H和A1H,它的8級中斷被定義為IRQ8一IRQ15。IRQ0定時(shí)器通道0的系統(tǒng)定時(shí)中斷IRQl鍵盤輸出緩沖器滿IRQ2級聯(lián)第二個(gè)(從)控制器IRQ3串行端口COM2IRQ4串行端口COMl1RQ5保留或并行端口2IRQ6軟盤控制器IRQ7并行打印機(jī)端口1IRQ8IRQ9IRQ101RQll1RQ121RQl3IRQl4IRQl5系統(tǒng)CMOS/實(shí)時(shí)時(shí)鐘保留,軟件定位至IRQ2(1NT0AH)保留,PCI聲卡與AGP顯卡保留保留或PS/2鼠標(biāo)協(xié)處理器在板硬盤IDEl通道在板硬
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)容運(yùn)營轉(zhuǎn)正述職報(bào)告
- 八上農(nóng)業(yè)課件教案
- 幼兒園五大領(lǐng)域知識(shí)講座
- 阿瓦提縣2025屆數(shù)學(xué)四年級第二學(xué)期期末質(zhì)量檢測試題含解析
- 陜西交通職業(yè)技術(shù)學(xué)院《傳感器與檢測技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西國際商貿(mào)學(xué)院《演化計(jì)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西工業(yè)職業(yè)技術(shù)學(xué)院《激光原理與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西服裝工程學(xué)院《計(jì)量分析方法與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西電子信息職業(yè)技術(shù)學(xué)院《數(shù)值計(jì)算方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西省咸陽百靈中學(xué)2025年高三寒假檢測試題英語試題含解析
- 村(居)民房屋翻建(新建)申請表
- 組織管理的技術(shù)-系統(tǒng)工程-錢學(xué)森共
- 可填充顏色的地圖(世界、中國、各省份)
- 腦卒中高危風(fēng)險(xiǎn)篩查流程
- 如何運(yùn)用ABC法則(銷售溝通)課件
- 氣道異物梗阻急救課件
- 硝酸銀化學(xué)品安全技術(shù)說明書MSDS
- 冶金廠設(shè)計(jì)基礎(chǔ)
- 西南聯(lián)大求學(xué)日記
- 楔狀缺損的修復(fù)課件
- 浙江省消防技術(shù)規(guī)范難點(diǎn)問題操作技術(shù)指南2023年
評論
0/150
提交評論