版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6章輸入/輸出和中斷
輸入/輸出及接口輸入/輸出的傳送方式中斷技術(shù)
80X86/Pentium中斷系統(tǒng)
8259A可編程中斷控制器中斷程序設(shè)計
計算機(jī)
外設(shè)接口鍵盤鼠標(biāo)CRT打印機(jī)繪圖儀存貯器功能單一:(1)傳送方式單一(傳送一個字節(jié))(2)品種單一,RAM、ROM(控制信號確定)(3)格式單一(并行數(shù)字信號)(4)工作速度匹配外設(shè)功能復(fù)雜:(1)僅作輸入、僅作輸出、入/出兼作。(2)格式多種(并串),位數(shù)多種(3)外設(shè)品種繁多(光、機(jī)、電、聲、磁等)(4)信號形式有脈沖、模擬量或數(shù)字量(5)速度不匹配6.1輸入/輸出及接口為什么外設(shè)不能象存貯器一樣直接掛在CPU上?
6.1輸入/輸出及接口6.1.1I/O信息的組成
(1)數(shù)據(jù)信息——要交換的數(shù)據(jù)本身①數(shù)字量:按一定的編碼標(biāo)準(zhǔn)(2#,ASCII碼)由若干位組合所表示的數(shù)或字符。如:鍵盤、CRT、打印機(jī)等設(shè)備與CPU交換的信息。②模擬量:現(xiàn)場信息(如溫度、壓力、流量、位移等非電量)經(jīng)過傳感器而轉(zhuǎn)換成的電量(電壓、電流)。模擬量經(jīng)過A/D、D/A轉(zhuǎn)換器在CPU與外設(shè)間交換。③開關(guān)量:一位2#信息:0、1。如:開關(guān)的斷開與閉合;控制電機(jī)的啟、停等。通常這些開關(guān)量要經(jīng)過相應(yīng)的電平轉(zhuǎn)換才能與計算機(jī)連接。數(shù)據(jù)信息、狀態(tài)信息及控制信息(2)狀態(tài)信息——在CPU與外設(shè)之間交換數(shù)據(jù)時的聯(lián)絡(luò)信息。對輸入接口,CPU是否準(zhǔn)備好接收數(shù)據(jù),“READY”準(zhǔn)備好?對輸出接口,外設(shè)是否準(zhǔn)備好接收數(shù)據(jù),“BUSY”外設(shè)忙嗎?(3)控制信息——CPU發(fā)給外設(shè)的命令信息。
如:設(shè)置I/O設(shè)備工作模式的信息等。CPU通過發(fā)送控制信息控制外設(shè)的工作。數(shù)據(jù)的傳送可采用并行(n位同時傳送)
串行(一位一位地傳送)6.1.2I/O接口概述I/O接口的功能①對輸入/輸出數(shù)據(jù)進(jìn)行緩沖、隔離和鎖存;②完成信息格式的變換,如串-并轉(zhuǎn)換等;③實現(xiàn)電氣特性的匹配;④選擇設(shè)備或地址譯碼等。2.I/O接口的構(gòu)成實現(xiàn)各寄存器端口尋址操作
實現(xiàn)接口電路中的各寄存器端口的讀/寫操作和時序控制實現(xiàn)對CPU數(shù)據(jù)總線速度和驅(qū)動能力的匹配端口從編程角度看,接口內(nèi)部主要包括一個或多個CPU可以進(jìn)行讀/寫操作的寄存器,又稱為I/O端口。各I/O端口由端口地址區(qū)分。按存放信息的不同,I/O端口可分為三種類型
數(shù)據(jù)端口:用于存放CPU與外設(shè)間傳送的數(shù)據(jù)信息
狀態(tài)端口:用于暫存外設(shè)的狀態(tài)信息
控制端口:用于存放CPU對外設(shè)或接口的控制信息,控制外設(shè)或接口的工作方式。CPU對外設(shè)輸入/輸出的控制,
是I/O接口概述通過對接口電路中各I/O端口的讀/寫操作完成。6.1.3I/O端口的編址I/O端口獨立編址(I/O映射方式)指主存地址空間和I/O端口地址空間相互獨立,分別編址。CPU通過指令來區(qū)分是訪問I/O口還是存儲單元。例:Intel的80X86系列、Z80系列優(yōu)點:主存和I/O端口的地址可用范圍都比較大。
缺點:I/O指令的功能一般比較弱,在I/O操作中必須借助CPU的寄存器進(jìn)行中轉(zhuǎn)。2.端口與存儲器統(tǒng)一編址(存儲器映射方式)指I/O端口與存儲器共享一個尋址空間,又稱為統(tǒng)一編址。在這種系統(tǒng)中,CPU可以用同樣的指令對I/O端口和存儲器單元的進(jìn)行訪問。例:motorola的M6800系列、日立H8S單片機(jī)系列優(yōu)點:對I/O口的訪問靈活方便,有利于提高端口數(shù)據(jù)的處理能力。
缺點:I/O端口占用了主存地址,相對減少了主存的可用范圍。8086/8088通過改變M/IO、IO/M來區(qū)分對MEM還是對I/O操作。用IN和OUT指令傳送數(shù)據(jù)。在80X86CPU中,若用直接尋址方式尋址外設(shè),可尋址256個端口;當(dāng)用DX間接尋址外設(shè),則端口地址是16位的,可尋址216=64K個端口地址。I/O地址的譯碼與存儲器地址譯碼原理相同,但具備自己的特點:I/O地址空間足夠大,容忍一定程度的浪費(fèi);I/O訪問的頻度遠(yuǎn)低于存儲器訪問,而且不同的外設(shè)其操作互相獨立,所以編址時不太強(qiáng)調(diào)地址的連續(xù)。I/O尋址通常采用的是部分譯碼。對于8086系統(tǒng)而言,最低端的地址線A0往往不參與譯碼,選擇其中的偶地址作為I/O地址。80X86采用I/O與MEM分別獨立編址。PC/XT、PC/AT的I/O空間分配見書表6-1Pentium系列微機(jī)系統(tǒng)的I/O空間分配見書表6-2
在PC/XT中,擴(kuò)展總線上用A9~A0作為外設(shè)端口譯碼(部分譯碼方式),共可尋址210=1K個端口。當(dāng)A9=0時,尋址主機(jī)板上的512個端口。當(dāng)A9=1時,尋址I/0卡上的512個端口。
80386微處理器或此后的微處理器構(gòu)成的微機(jī)系統(tǒng),采用全譯碼的方法,端口為64K個字節(jié)端口或32K個字端口。I/O端口地址選用的原則自行設(shè)計接口電路或給微機(jī)系統(tǒng)添加接口卡時,必須避免端口地址發(fā)生沖突。申明保留的地址,不要使用。用戶可使用300H--31FH地址。6.1.3I/O端口的編址6.1.4簡單的I/O接口I/O接口硬件分類不可編程可編程
8253定時/計數(shù)器
8259中斷控制器
通用接口
8257DMA8250、8251串行接口芯片或
8255、8155并行接口芯片軟盤控制器8271、8272
專用接口
CRT8275
鍵盤顯示8279
不可編程的I/O接口屬簡單的I/O接口,典型的芯片是三態(tài)緩沖器和數(shù)據(jù)鎖存器。
如:74LS244,245;74LS373,374
增強(qiáng)總線的負(fù)載能力并隔離簡單的I/O接口1.三態(tài)緩沖器
在總線結(jié)構(gòu)的微機(jī)系統(tǒng)中,任一時刻只能有一個設(shè)備利用總線進(jìn)行數(shù)據(jù)傳送,輸入設(shè)備的數(shù)據(jù)線應(yīng)通過三態(tài)門與系統(tǒng)相連。
常用緩沖器:74LS244(單向),74LS245(雙向)。2.數(shù)據(jù)鎖存器
輸出設(shè)備利用鎖存器接受CPU輸出的數(shù)據(jù)。使某輸出設(shè)備鎖存器的控制端處于觸發(fā)狀態(tài),數(shù)據(jù)通過該鎖存器。當(dāng)觸發(fā)信號消失,數(shù)據(jù)鎖存在鎖存器中,外設(shè)側(cè)數(shù)據(jù)不隨總線側(cè)數(shù)據(jù)的變化而變化,使慢速的外設(shè)有足夠的時間處理數(shù)據(jù)。常用鎖存器:74LS373,低電平鎖存,高電平直通
74LS273,上升沿將數(shù)據(jù)Di輸出簡單的I/O接口上升沿將上升沿之前的數(shù)據(jù)打入273,并由273輸出。6.2輸入/輸出的傳送方式在微型計算機(jī)系統(tǒng)中,CPU與外設(shè)之間進(jìn)行信息交換,其輸入和輸出的傳送方式一般可分為三種:程序控制的輸入和輸出中斷控制的輸入和輸出直接存儲器存?。―MA)6.2.1
程序控制的輸入和輸出程序控制的輸入和輸出方式是指在程序中安排相應(yīng)的I/O指令來控制輸入和輸出,完成和外設(shè)之間信息交換的傳送方式。在這種方式中何時進(jìn)行數(shù)據(jù)的傳送是預(yù)先知道的,所以可以根據(jù)需要把有關(guān)的I/O指令插入到程序中相應(yīng)位置。無條件傳送方式和查詢傳送方式
(1)無條件傳送方式(同步傳送方式)實現(xiàn)方法:CPU不查詢外設(shè)工作狀態(tài),與外設(shè)速度的匹配通過在軟件上延時完成,在程序中直接用I/O指令,完成與外設(shè)的數(shù)據(jù)傳送。特點:適用于外設(shè)動作時間已知,在CPU與外設(shè)進(jìn)行數(shù)據(jù)傳送時,外設(shè)保證已準(zhǔn)備好的情況。軟硬件十分簡單,適用于慢速外設(shè)。輸出時用373或374,373是低電平鎖存,高電平直通!若用273,則在上升沿輸出并鎖存數(shù)據(jù)。【例6-1】采用無條件傳送方式的I/O接口電路,實現(xiàn)發(fā)光二極管顯示開關(guān)的開合狀態(tài)。NEXT:MOV DX,PORT_IN IN AL,DX ;通過輸入接口讀入開關(guān)狀態(tài)
NOT AL OUT DX,AL ;通過輸出接口控制發(fā)光二極管顯示
CALL DELAY JMP NEXT
無條件傳送方式(同步傳送方式)該例中輸入接口和輸出接口使用相同的口地址,不會出現(xiàn)矛盾。(2)查詢傳送——一種CPU主動、外設(shè)被動的I/O操作方式實現(xiàn)方法:
特點:避免了對端口的“盲讀”、“盲寫”,數(shù)據(jù)傳送的可靠性高,并且硬件接口相對簡單。缺點是CPU工作效率低,I/O響應(yīng)速度慢;
輸出:CPU對“外設(shè)BUSY?”進(jìn)行查詢,不忙,輸出。輸入:CPU查“外設(shè)數(shù)據(jù)READY?”,若準(zhǔn)備好,讀入。
外設(shè)要求:狀態(tài)口和數(shù)據(jù)口在有多個外設(shè)的系統(tǒng)中,CPU的查詢順序由外設(shè)的優(yōu)先級確定。
①查詢輸入(當(dāng)外設(shè)數(shù)據(jù)準(zhǔn)備好,讀入)輸入狀態(tài)信息READY?輸入數(shù)據(jù)NY編寫查詢式輸入程序如下:IN_TEST: IN AL,STATUS;讀入狀態(tài)信息
TESTAL,80H ;檢查READY是否為1 JZ IN_TEST ;條件不滿足,繼續(xù)查詢
IN AL,DATAS;條件滿足,讀入數(shù)據(jù)②查詢輸出(當(dāng)外設(shè)空閑時,輸出)編寫查詢式輸出程序如下:
MOV BX,OFFSETSTOREOUT_TEST: IN AL,STATUS ;讀入狀態(tài)信息
AND AL,80H ;檢查BUSY位
JNZ OUT_TEST ;BUSY則等待
MOV AL,[BX] ;空閑,則從緩沖區(qū)STORE中取數(shù)據(jù)
OUT DATAS,AL ;輸出數(shù)據(jù)
INC BX準(zhǔn)備輸出數(shù)據(jù)讀狀態(tài)端口
輸入數(shù)據(jù)BUSYNY6.2.2中斷控制的輸入和輸出發(fā)申請發(fā)申請中斷服務(wù)程序中斷服務(wù)程序中斷方式下CPU執(zhí)行程序流程外設(shè)CPU被動而外設(shè)主動的I/O操作方式,較大地提高了CPU的工作效率,并使系統(tǒng)具有了實時處理功能中斷傳送方式的特點1.CPU和外設(shè)大部分時間處在并行工作狀態(tài),2.中斷傳送方式提高了CPU的效率。中斷工作過程外設(shè)需要CPU服務(wù)時外設(shè)→I/O接口→向CPU發(fā)中斷請求,INTR=H(中斷請求有效)CPU執(zhí)行完當(dāng)前指令后,(注:若IF=1)CPU→I/O接口→外設(shè)發(fā)中斷響應(yīng),/INTA=LCPU執(zhí)行中斷服務(wù)程序,CPU←→I/O接口←→外設(shè)讀寫數(shù)據(jù)接口特點:
避免了CPU反復(fù)低效率的查詢,適用于CPU任務(wù)繁忙、而數(shù)據(jù)傳送不太頻繁的系統(tǒng)中。
缺點是硬件電路和處理過程都比較復(fù)雜;(中斷控制芯片)只在CPU響應(yīng)外設(shè)的中斷申請后,進(jìn)入數(shù)據(jù)傳送的過程。中斷可被響應(yīng)的條件:中斷請求觸發(fā)器置位;CPU內(nèi)部開放中斷;CPU未處理更高級中斷;CPU現(xiàn)行指令執(zhí)行完進(jìn)行傳送的中斷服務(wù)程序是預(yù)先設(shè)計好的中斷請求是外設(shè)隨機(jī)向CPU提出的CPU對請求的檢測是有規(guī)律的:一般是在每條指令的最后一個時鐘周期采樣中斷請求輸入引腳中斷傳送是一種效率更高的程序傳送方式:使用中斷方式時:外設(shè)準(zhǔn)備數(shù)據(jù),CPU執(zhí)行程序,CPU與外設(shè)并行工作;一旦外設(shè)準(zhǔn)備就緒,外設(shè)向CPU發(fā)中斷申請,CPU暫停原程序執(zhí)行,響應(yīng)中斷,進(jìn)行數(shù)據(jù)傳輸。此時,CPU與外設(shè)是串行工作。中斷控制的輸入輸出
DMA時,CPU讓出總線(如AB、DB、IO/M、RD、WR等)由DMAC接管后,用DMA方式的工作過程為:
①
CPU設(shè)置DMAC的工作方式,將存貯區(qū)首址、傳送字節(jié)數(shù)DMAC的內(nèi)部Reg。②
外設(shè)向DMA控制器發(fā)出DMA請求,DMA控制器向CPU發(fā)出HOLD信號。
中斷方式雖提高了CPU的效率,但仍然是通過CPU執(zhí)行程序來實現(xiàn)數(shù)據(jù)傳送。
缺點:①大量的數(shù)據(jù)在磁盤與內(nèi)存間交換需大量的時間。②高速I/O設(shè)備時或成組數(shù)據(jù)交換時,顯得速度太慢。早期DMA僅限于外設(shè)內(nèi)存間,隨著大規(guī)模集成電路技術(shù)的發(fā)展,還可在外設(shè)外設(shè)間,內(nèi)存內(nèi)存間進(jìn)行DMA傳送。6.2.3直接數(shù)據(jù)通道傳送(DMA方式)希望在外設(shè)與內(nèi)存間直接傳送數(shù)據(jù),這就是DMA方式。DMA的速度取決于MEM的工作速度。③
CPU接收到HOLD信號后,在現(xiàn)行的機(jī)器周期結(jié)束后發(fā)出HLDA信號,暫停正在執(zhí)行的程序,且放棄對三總線的控制。④
DMA控制器DMAC回應(yīng)外設(shè),表示響應(yīng)該請求。⑤
DMAC向存貯器送存貯單元地址,并分別向外設(shè)及內(nèi)存送IOR及MEMW,完成一次字節(jié)傳送。⑥數(shù)據(jù)塊長度計數(shù)器減一,重復(fù)⑤,直到傳送完畢。⑦DMA結(jié)束,撤消DMA請求(HOLD變低),CPU再次恢復(fù)對總線控制權(quán)。DMA
傳送方式過程CPUDMAC內(nèi)存外設(shè)總線響應(yīng)總線請求流程圖為:無條件傳送:慢速外設(shè),需與CPU保持同步查詢傳送:
簡單實用,效率較低中斷傳送:
外設(shè)主動,可與CPU并行工作,但每次傳送需要大量額外時間開銷DMA傳送:
DMAC控制,外設(shè)直接和存儲器進(jìn)行數(shù)據(jù)傳送,
適合大量、快速數(shù)據(jù)傳送傳送方式的比較:6.3中斷技術(shù)6.3.1中斷的基本概念
中斷——是一種使CPU終止正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作。1.中斷源——引起中斷的事件外部中斷源:①I/O設(shè)備,如鍵盤、顯示器(CRT)、打印機(jī)等。②數(shù)據(jù)通道,如磁盤、采樣電路等。③實時鐘,如外部所需的定時電路等。④故障源,如掉電、存儲器奇偶校驗錯等。內(nèi)部中斷源:①CPU指令執(zhí)行產(chǎn)生的異常,如被0除、溢出、單步執(zhí)行等。②執(zhí)行INT軟件中斷指令,如80x86微機(jī)系統(tǒng)中DOS功能調(diào)用INT21H、BIOS中斷調(diào)用INT10H等。中斷源產(chǎn)生中斷的隨機(jī)性,使中斷服務(wù)程序的執(zhí)行也具有隨機(jī)性,即何時執(zhí)行中斷服務(wù)程序不是在程序中安排好的。2.中斷處理過程(以可屏蔽中斷處理為例)(1)中斷請求硬件中斷(INTR或NMI);軟中斷:除數(shù)為0、溢出…。(2)中斷判優(yōu)在多個中斷源情況下,由設(shè)計者將它們事先排隊(硬件),當(dāng)同時到達(dá)時,CPU根據(jù)優(yōu)先級,處理當(dāng)前優(yōu)先級最高的中斷源。中斷判優(yōu)的另一作用是決定是否可能實現(xiàn)中斷嵌套。(3)中斷響應(yīng)
①IF=1,且INTR有請求
②送出INTA,外設(shè)將中斷類型碼DB
③中斷類型碼×4,找出中斷入口地址,轉(zhuǎn)中斷服務(wù)。(4)中斷處理①保護(hù)現(xiàn)場②開中斷,IF=1,保證可以實現(xiàn)中斷嵌套③執(zhí)行中斷服務(wù)④關(guān)中斷(IF=0),恢復(fù)現(xiàn)場(5)中斷返回
IRET恢復(fù)斷點CS、IP
恢復(fù)標(biāo)志寄存器6.3.2中斷優(yōu)先權(quán)1.軟件排優(yōu):中斷優(yōu)先級由軟件查詢順序決定
可事先給各中斷源安排一個中斷優(yōu)先級次序,當(dāng)多個中斷源同時申請時,按優(yōu)先級從高到低的次序來處理。①將各中斷源的中斷申請信號“或”(線與)起來,作為INTR信號;②同時將各申請信號(1)經(jīng)狀態(tài)端口讀入CPU進(jìn)行判斷,判斷時的先后順序即優(yōu)先權(quán)次序。這段查詢程序應(yīng)安排在中斷服務(wù)程序的開始。CPU查詢優(yōu)點:硬件簡單,無需判斷和確定優(yōu)先權(quán)的硬件排隊電路,隨時可修改優(yōu)先級。缺點:軟件查詢,耗費(fèi)時間,影響中斷響應(yīng)的實時性。2.硬件排優(yōu)⑴硬件排憂電路(菊花鏈電路)⑵專用硬件方式——可編程中斷控制器越靠近CPU的接口,中斷優(yōu)先級別越高。設(shè)某中斷源請求中斷“1”
則INTR=1;
CPU→INTA(0)。第一級菊花鏈邏輯電路輸出中斷應(yīng)答信號(1);同時輸出(0)到下一級菊花鏈邏輯電路;第二級菊花鏈邏輯電路輸出中斷應(yīng)答信號(0);同時輸出(1)到下一級菊花鏈邏輯電路;1015V00011111000011根據(jù)中斷優(yōu)先權(quán)處理中斷的一般原則1.不同級別中斷發(fā)生,按級別高低處理。2.當(dāng)處理低級別的中斷過程中,遇到高級別的中斷,暫停低,轉(zhuǎn)高的服務(wù)。3.當(dāng)處理高級別的過程中,遇到低級別或同一級別的中斷,不予理睬,待處理完后再服務(wù)低級別。4.同一級別按先后排隊。⑵專用硬件方式
——可編程中斷控制器(在PC機(jī)中解決中斷優(yōu)先權(quán)管理)6.480X86/Pentium中斷系統(tǒng)6.4.1中斷結(jié)構(gòu)1.外部中斷(1)非屏蔽中斷由NMI引腳出現(xiàn)中斷請求信號CPU產(chǎn)生的中斷稱為非屏蔽中斷。它不受中斷允許標(biāo)志IF的限制,其中斷類型號固定為2。當(dāng)NMI引腳上出現(xiàn)上升沿觸發(fā)時,表示非屏蔽中斷請求信號有效,CPU內(nèi)部會把該信號鎖存起來,但要求該信號的有效高電平持續(xù)2個時鐘周期以上。
CPU在執(zhí)行完當(dāng)前指令后立即響應(yīng)中斷請求。在PC機(jī)中:MEM或I/O通道有奇偶校驗錯或8087/80287產(chǎn)生異常都會產(chǎn)生NMI。(2)可屏蔽中斷由外部設(shè)備產(chǎn)生,從CPU的INTR端引入高電平觸發(fā)。可屏蔽中斷受中斷標(biāo)志IF的影響,在IF=1,INTR=1的情況下,CPU可響應(yīng)。
CPU響應(yīng)時送出兩個INTA脈沖,外設(shè)則送出中斷類型碼CPU。2.內(nèi)部中斷CPU根據(jù)某條指令或者對標(biāo)志Reg中某個標(biāo)志位的設(shè)置而產(chǎn)生,或由CPU本身啟動(除法出錯),與外部硬件無關(guān)。(1)除法出錯中斷——0型中斷
CPU執(zhí)行除法指令DIV、IDIV時,若發(fā)現(xiàn)除數(shù)為0或商超過了存放它的Reg所能表示的范圍,則產(chǎn)生0型中斷。其中斷處理由操作系統(tǒng)安排。(2)
單步調(diào)試中斷——1型中斷若TF=1,則CPU就處于單步工作方式。常用于程序調(diào)試。注:①當(dāng)執(zhí)行一條指令使TF=1,則下條指令立即產(chǎn)生1型中斷,
進(jìn)入單步中斷后TF=0,IF=0②在X86系統(tǒng)中,無將TF置1的指令。(配合PUSHF和POPF)(3)
INTO指令——4型中斷若算法操作結(jié)果產(chǎn)生溢出(OF=1),則執(zhí)行INTO指令后立即產(chǎn)
生一個中斷類型號為4的中斷。(4)INTn指令一般為雙字節(jié)指令。但I(xiàn)NT3——斷點中斷為單字節(jié)指令。在單步中斷服務(wù)過程中不會再引起單步中斷。以上 1,2,3中斷類型碼自動形成:0,1,4。所有軟中斷(除單步中斷)不受FR的影響80386及以上CPU來說,也可將中斷源分為中斷與異常兩類,異常可歸為三類:失效、陷阱和終止。失效:它在引起失效的指令啟動之后、執(zhí)行之前被檢測到,且在處理異常的中斷服務(wù)完成后返回該條指令,重新啟動并執(zhí)行完畢。陷阱:它是在產(chǎn)生陷阱的指令執(zhí)行完后才被報告,且其中斷服務(wù)程序結(jié)束后是返回到主程序中該條指令的下一條指令。終止:則是一種對引起異常的指令的確切位置無法確定的異常。中斷類型碼
X86共有256個中斷源,中斷類型碼:0~255。6.4.2中斷向量表中斷向量表
256個中斷源對應(yīng)256個中斷服務(wù)程序,將所有這些子程序的入口地址(中斷向量)
按序排放在一起,形成一個中斷向量表。中斷向量表位于CPU內(nèi)存區(qū)的最低1K字節(jié)
(0段0單元開始)。每個中斷向量占4個字節(jié):
4×256=1024(即00000H~003FFH)存放時:中斷程序入口地址的偏移量(IP,16位)在前,中斷處程序入口地址的段地址(CS,16位)在后。顯然有:中斷向量地址指針=4×中斷類型碼例:N=8中斷向量地址=4×8=32,即0020H.
從表中,知道了中斷類型號,便可計算出相應(yīng)的中斷向量在表中存放的位置,稱為中斷向量表地址,或稱為中斷向量指針。從中斷向量表地址中取出中斷向量,便得到了該中斷類型號的中斷服務(wù)程序入口地址。一般:若類型碼為N,則從0000:4×N單元讀一個字IP,從0000:4×N+2單元讀一個字CS。使用時應(yīng)選擇系統(tǒng)不用而為用戶保留的中斷類型碼。1.內(nèi)部中斷響應(yīng)過程(1)
當(dāng)內(nèi)部中斷發(fā)生時,或由INTn指令獲得中斷類型碼,或是按預(yù)定方式得到中斷類型碼(專用中斷:0、1、3、4);(2)將類型碼×4,作為中斷向量表的指針;(3)FR(PSW)入棧保護(hù),此操作類似于PUSHF;(4)清除IF和TF標(biāo)志(0→IF、0→TF,屏蔽新的INTR中斷和單步中斷);(5)把斷點處的IP和CS值壓入堆棧:先壓入CS值,再壓入IP值;(6)取中斷向量(中斷服務(wù)程序的入口地址),分別送至CS和IP。按新的地址執(zhí)行中斷服務(wù)子程序。6.4.3中斷響應(yīng)過程內(nèi)部中斷的特點:進(jìn)入中斷時,不需要執(zhí)行中斷響應(yīng)周期去獲得中斷類型碼。除單步中斷外,內(nèi)部中斷無法用軟件禁止,不受IF的影響。內(nèi)部中斷沒有隨機(jī)性,由指令在程序中的位置決定。除單步中斷外,內(nèi)部中斷優(yōu)先級高于硬件中斷。2.外部中斷響應(yīng)過程(1)非屏蔽中斷響應(yīng)中斷類型碼為2。當(dāng)NMI發(fā)生時,CPU在執(zhí)行完當(dāng)前指令后,轉(zhuǎn)去中斷類型碼為2的中斷服務(wù)子程序。響應(yīng)過程(除中斷類型碼獲得方式外)同內(nèi)部中斷。
CPU提供,不是外設(shè)提供。(2)可屏蔽中斷響應(yīng)
在INTR線上的請求信號(高電平)必須保持到當(dāng)前指令
的結(jié)束。當(dāng)INTR線有效且IF=1,則CPU在當(dāng)前指令執(zhí)行完畢后,響應(yīng)外部中斷請求,轉(zhuǎn)入中斷響應(yīng)周期。中斷響應(yīng)周期有2個,每個響應(yīng)周期由4個T組成,中間以空閑狀態(tài)(2~3個)隔開。見書246頁圖6-23。在每個中斷響應(yīng)周期,CPU都往引腳INTA發(fā)一個負(fù)脈沖信號;
請求中斷的外設(shè)在收到第2個INTA時,將中斷類型碼→DB(通常由8259傳送)。獲得中斷類型碼后,則轉(zhuǎn)入中斷處理過程(同內(nèi)部中斷)。
INTR共執(zhí)行7個總線周期。見書247頁①~④。
3.中斷響應(yīng)及處理過程舉例
設(shè)某輸入設(shè)備數(shù)據(jù)準(zhǔn)備就緒后向CPU申請可屏蔽中斷,中斷類型碼為80H,中斷響應(yīng)后執(zhí)行的服務(wù)子程序名為INTPROC。程序開始,首先應(yīng)對中斷向量表進(jìn)行安排,即先進(jìn)行中斷初始化。程序如下:…CLIPUSH DSMOV AX,0000H ;中斷向量指針的段基址MOV DS,AX MOV BX,0200H ;中斷向量指針的偏移量MOV AX,OFFSETINTPROC MOV [BX],AX ;偏移量→中斷向量表MOV AX,SEGINTPROCMOV [BX+2],AX ;段基址→中斷向量表POP DSSTI…(1)INTR有效,外設(shè)申請中斷
…MOV AX,2000HADD AX,AX (2)當(dāng)前指令結(jié)束后,CPU響應(yīng)中斷,執(zhí)行中斷響應(yīng)總線周期,獲得中斷類型碼(80H)1234:5678 MOV [SI],AX(3)當(dāng)前FR內(nèi)容壓棧,IF=TF=0
(4)斷點CS(1234H)、IP(5678H)壓棧 (5)查中斷向量表,中斷向量送CS、IP
(6)執(zhí)行中斷服務(wù)處理程序
INTPROC PROC … … MOV DX,DPORT IN AL,DX … … IRET INTPROC ENDP
(7)執(zhí)行IRET指令,恢復(fù)斷點,恢復(fù)FR IP=5678H,CS=1234H,回到斷點執(zhí)行
開中斷后,執(zhí)行任何指令期間都有可能接受到中斷申請。假設(shè)執(zhí)行下列程序中的ADD指令時收到中斷申請,且IF=1,則CPU響應(yīng)中斷。4.各類中斷的優(yōu)先權(quán)
1.實模式下的中斷與異常80386及其以上微處理器工作于實模式時,與8086/8088一樣??啥x256個中斷向量,中斷向量表在系統(tǒng)物理存儲器的最低1K字節(jié)區(qū)。中斷類型及各類中斷處理流程也基本相同。書248頁表6-4:8086~PentiumCPU在部分PC機(jī)中的中斷分配表。
6.4.480386/80486/PentiumCPU中斷系統(tǒng)
2.保護(hù)模式下的中斷與異常:與實模式相比有三點不同CPU根據(jù)中斷類型號從中斷描述符表IDT而不是中斷向量表獲取中斷服務(wù)程序入口的有關(guān)信息。斷過程中要對被中斷的程序代碼進(jìn)行保護(hù)若有出錯碼,還要將出錯碼壓入堆棧。(1)中斷描述符表IDT的起始位置通過中斷描述符表寄存器IDTR設(shè)置,置于內(nèi)存的任意區(qū)域。在整個系統(tǒng)中,IDT只有一個。它的作用同樣是通過類型號引導(dǎo)程序轉(zhuǎn)移到中斷或異常處理程序中去。IDT包含的是門描述符而不是中斷向量。門描述符可以是中斷門、陷阱門或任務(wù)門。IDT最多允許有256個門描述符,標(biāo)為門0~門255,對應(yīng)256種中斷類型。2.
保護(hù)模式下的中斷與異常(2)獲得中斷服務(wù)程序地址使用陷阱門或中斷門描述符進(jìn)入中斷服務(wù)程序入口。具體步驟見書249頁①~④
。
(3)中斷響應(yīng)及異常處理
①需要通過類型號判斷所要索引的門描述符是否超出IDT的界限。若超出,則引起一般保護(hù)異常錯誤。②從IDT中取得對應(yīng)的門描述符后要進(jìn)行一些相關(guān)檢查。③在保護(hù)模式下,除了可通過中斷門或陷阱門實現(xiàn)由當(dāng)前任務(wù)進(jìn)行中斷處理以外,也允許通過任務(wù)門實現(xiàn)由另一個任務(wù)完成中斷處理。中斷響應(yīng)時堆棧的變化情況6.58259A可編程中斷控制器中斷申請管理接口的主要功能:向CPU的引腳INTR發(fā)中斷申請信號當(dāng)有多個外設(shè)同時發(fā)出中斷請求時,能按照一定的優(yōu)先級順序,向CPU發(fā)出中斷申請,使CPU能優(yōu)先響應(yīng)優(yōu)先級最高的外部設(shè)備中斷申請。送中斷類型號在CPU中斷響應(yīng)周期,針對不同外設(shè)的中斷請求,向CPU傳送不同的中斷類型號,使CPU執(zhí)行相應(yīng)的中斷子程序。在IBMPC機(jī)由8259A可編程中斷控制器來完成。8259是PIC(可編程中斷控制器),集:中斷源優(yōu)先級排隊、辨認(rèn)、提供中斷類型碼為一體,對其編程,可管理8級中斷,級聯(lián)時共可管理到最多64級中斷。中斷申請管理接口INT中斷申請接口1網(wǎng)絡(luò)接口2硬盤接口3軟盤接口4打印機(jī)8088CPUINTRIF8259A的功能單片8259可以管理8級硬件中斷,用9片級聯(lián),組成主從方式,可以管理64級中斷。每一級中斷都可以由軟件屏蔽或允許。能判別芯片的IRi輸入端是否收到一個有效的中斷請求。若未被屏蔽,判其優(yōu)先級。對優(yōu)先級高的中斷源送INTR→CPU,并提供相應(yīng)的中斷向量號→
CPU。幾種工作方式可通過編程進(jìn)行選擇。6.5.18259A芯片的內(nèi)部結(jié)構(gòu)與引腳中斷請求寄存器(IRR,8位鎖存器)用來鎖存外設(shè)送來的IR7~IR0中斷請求信號。中斷屏蔽寄存器(IMR,8位Reg
)
用來設(shè)置中斷請求屏蔽信號。IMR第i位置1,則與它對應(yīng)的IRi中斷申請被屏蔽。中斷服務(wù)寄存器(ISR,8位Reg
)存放當(dāng)前正在服務(wù)的中斷級。
由優(yōu)先權(quán)判別電路根據(jù)IRR中各請求位優(yōu)先級別和IMR中屏蔽標(biāo)志,將允許中斷的最高優(yōu)先權(quán)請求位,選通到ISR中。在處理某級中斷的整個過程中,ISR中與它對應(yīng)的位始終保持1,只有服務(wù)完,在返回之前,才由中斷結(jié)束命令EOI將其清0。不進(jìn)行中斷服務(wù)的ISR各位恒等于0。8259A的內(nèi)部結(jié)構(gòu)優(yōu)先級分析器用來識別和管理各中斷請求信號的優(yōu)先級別??刂七壿嬁刂七壿嬰娐分?,有一組初始化命令字Reg:ICW1~I(xiàn)CW4一組操作命令字Reg:OCW1~OCW3。系統(tǒng)剛開始時,初始化命令字送8259A,以后過程中將保持不變,操作命令則用來在過程中控制中斷操作。
數(shù)據(jù)總線緩沖器——三態(tài)緩沖器8259A與CPU的數(shù)據(jù)總線接口??刂七壿嫲淳幊淘O(shè)定方式管理8259A的全部工作。讀/寫電路——完成來自CPU的讀寫命令,及與片選信號CS與A0(0或1)決定訪問片內(nèi)某個Reg。通過OUT指令,WR有效,把命令字寫入ICW和OCW。通過IN指令,RD有效,將IRR、ISR或IMR內(nèi)容通過數(shù)據(jù)總線讀入CPU。級聯(lián)緩沖/比較器(用于多片8259之間的連接)
主—從結(jié)構(gòu)中,作為主設(shè)的8259A,CAS2~CAS0是輸出線,作為從設(shè)的8259A,CAS2~CAS0是輸入線,兩者互連。
SP/EN——從片編程/緩沖器允許信號線,是個雙功能引腳。①緩沖器方式,輸出信號,控制緩沖器傳送方向。②非緩沖器方式,它是輸入信號,用于規(guī)定8259A是主(SP=1)還是從(SP=0)。在只有一片8259A的系統(tǒng)中,SP/EN接高電平。8259A各引腳見書P252,圖6-27。CS:是片選信號,其為低電平時,可對芯片讀寫。A0:與CS及WR或RD配合去讀寫8259的內(nèi)部寄存器,可直接接CPU的某位地址線。INT:中斷請求信號,接CPU的INTR。INTA:中斷允許線,接CPU的INTA。雙列直插式芯片,28個引腳。
鍵盤保留串口2
硬盤軟盤打印機(jī)IOW18.2Hz方波A0CS8259A總線A0數(shù)據(jù)線
IORRDWR片選譯碼IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A級連情況INTAINT
INTA
INTR串口1
上電后,由CPU執(zhí)行一段程序?qū)?259初始化(通過輸入初始化命令字實現(xiàn))。完成初始化后,8259A處于就緒狀態(tài)。當(dāng)外設(shè)發(fā)出中斷請求后,其對外部中斷請求的處理過程如下:
①若有若干IRi=1,則IRR中相應(yīng)位置1。②若對應(yīng)IMR中的相應(yīng)位為0(只要有一位為0),則8259A向CPUINTR。
③若IF=1,則CPU在執(zhí)行完當(dāng)前指令后,發(fā):INTA8259A。④ISR中對應(yīng)當(dāng)前最高優(yōu)先權(quán)的位為1,且IRR中相應(yīng)的位清0。
6.5.28259A芯片的工作過程及工作方式1.8259A芯片的工作過程⑤CPU發(fā)第二個INTA8259A,8259ADB上送8位的向量號N(即中斷類型號,初始化8259A時已設(shè)定好)。
CPU做:N×4從中斷向量表中取出中斷服務(wù)程序的入口地址。⑥若8259A為AEOI(自動結(jié)束中斷),則在第二個INTA尾,ISR中相應(yīng)的位復(fù)位。否則,至中斷服務(wù)程序結(jié)束,發(fā)出EOI命令使ISR中相應(yīng)位復(fù)位。CPU進(jìn)入響應(yīng)中斷的過程,繼而執(zhí)行中斷子程序。①取中斷類型號N②
當(dāng)前PSW的內(nèi)容入棧③清IF、TF標(biāo)志為0④當(dāng)前CS的內(nèi)容入棧⑤當(dāng)前IP的內(nèi)容入棧⑥
取內(nèi)存單元(0:N×4)字內(nèi)容送IP
取中斷子程⑦
取內(nèi)存單元(0:N×4+2)字內(nèi)容送CS
入口地址此時CS:IP指向中斷程序的入口,開始執(zhí)行中斷程序。保存現(xiàn)場與斷點CPU響應(yīng)中斷過程:執(zhí)行完中斷子程中最后一條指令I(lǐng)RET后,返回被中斷處,繼續(xù)執(zhí)行被中斷的程序。中斷優(yōu)先級固定
IR0IR1IR2IR3IR4IR5IR6IR7
高低
響應(yīng)某中斷請求,并服務(wù)于該中斷源時,與它同級或低級的中斷源的申請被屏蔽,而優(yōu)先級比它高的中斷源的申請可以響應(yīng)。用ISR中相應(yīng)位表示該中斷源正在被服務(wù)。②特殊全嵌套方式(適用于8259級聯(lián)的情況)
CPU
主8259AINT從8259AIR0IR1IR7IR0IR1IR7……特殊全嵌套普通全嵌套(1)中斷嵌套方式①普通全嵌套方式——常用方式,又稱全嵌套方式,適用于單片8259的情況。特征:2.8259A芯片的工作方式級聯(lián)時,必須采用特殊的全嵌套方式。
主片編程為特殊全嵌套方式:
當(dāng)處理一級中斷時,如果有同級的中斷請求,也會給予響應(yīng)。否則:當(dāng)從片8259IR2有中斷請求,若主片是普通全嵌套方式,則會屏蔽從片上的IR0、IR1(比IR2優(yōu)先級高)中斷請求。
這是因為從片上的8個IRi變成了主片的同一級。
而采用了特殊全嵌套方式后,對來自同一從片的較高優(yōu)先級請求則不會屏蔽。
EOI從從ISR是否全為0
EOI主NYIRET在從片的中斷處理程序快結(jié)束時,應(yīng)給
8259A發(fā)EOI(中斷結(jié)束)命令,方法是:
(a)向從片發(fā)EOI;
(b)讀從片的ISR內(nèi)容:
若為0,表示從片只有一個中斷源申請中斷,再向主片發(fā)一個EOI命令。
若不為0,表示從片存在兩個以上的中斷源在申請中斷,則不應(yīng)發(fā)EOI給主片。(2)中斷優(yōu)先權(quán)循環(huán)方式
一個系統(tǒng)的優(yōu)先權(quán)比較復(fù)雜,所以不能總規(guī)定IR0高…IR7低。8259A設(shè)計了兩種改變優(yōu)先權(quán)的方法。①自動循環(huán)方式——適用于設(shè)備的優(yōu)先權(quán)相等情況
當(dāng)一個設(shè)備受到中斷服務(wù)后,它的優(yōu)先級自動降到最低,其相鄰的中斷請求則變成最高的了。
例如:
IR0IR1IR2IR3IR4IR5IR6IR7
初始高低
若IR4有中斷請求,則處理IR4后,IR5成為最高優(yōu)先級,優(yōu)先級次序為:IR5IR6IR7IR0IR1IR2IR3IR4
IR4左循環(huán)至最低優(yōu)先級。
(3)中斷結(jié)束處理方式
當(dāng)中斷請求得到響應(yīng)時,ISR中相應(yīng)位置1,中斷服務(wù)結(jié)束時,必須使這個位復(fù)位以標(biāo)識中斷處理結(jié)束。這個中斷結(jié)束是指8259結(jié)束中斷,而不是CPU結(jié)束執(zhí)行中斷服務(wù)程序。②普通中斷結(jié)束(EOI)——適用于全嵌套方式
當(dāng)8259A工作在全嵌套方式時,則當(dāng)前服務(wù)過的中斷源就是中斷優(yōu)先權(quán)最高的源,可以用非特殊(普通)的EOI使它在ISR中的相應(yīng)位復(fù)位。
這個命令加在中斷服務(wù)程序的末尾處。①自動中斷結(jié)束(AEOI)——只能用于不要求中斷嵌套的情況在第二個INTA的后沿,8259A自動把ISR的對應(yīng)位清除。②特殊循環(huán)方式——適用于中斷源的優(yōu)先級需要任意改變的情況通過OCW2命令字設(shè)置當(dāng)前的最低優(yōu)先級IR5,使得有:
IR6IR7IR0…IR5。
不管是普通、還是特殊的中斷結(jié)束方式,在級聯(lián)系統(tǒng)中,中斷結(jié)束必須發(fā)送兩次EOI:
一次給從片,一次給主片。(向從片發(fā)EOI后,須檢查從片中的所有申請中斷的源是否全服務(wù)過。只有都服務(wù)過了,才能向主8259送另一個EOI命令)。(4)屏蔽中斷源方式——通過IMR編程可允許或禁止中斷①普通屏蔽方式
通過命令字OCW1設(shè)置IMR某位或某幾位為1,則屏蔽其中斷請求。該位置0,則允許該級中斷。③特殊結(jié)束中斷方式(SEOI)——非全嵌套方式下
當(dāng)8259A工作在非全嵌套模式時,8259A可能不能確定剛服務(wù)的源的等級,就要用特殊的EOI命令,在此中指出要清除哪個ISR位。(5)中斷觸發(fā)方式①電平觸發(fā)方式
8259A的引腳IRi上出現(xiàn)高電平表示有中斷請求。②邊沿觸發(fā)方式
8259A的引腳IRi上出現(xiàn)上升沿表示有中斷請求。用特殊屏蔽方式可以做到:屏蔽當(dāng)前中斷級(IMR對應(yīng)位為1);ISR中相應(yīng)位復(fù)位,則較本級低的中斷源申請可以得到響應(yīng)。②特殊屏蔽方式——用于開放較低級中斷請求
在8259中,當(dāng)一個中斷請求被響應(yīng)時,ISR對應(yīng)位置1。在該位未復(fù)位時,8259A會禁止所有優(yōu)先級比它低的中斷。
普通全嵌套方式特殊全嵌套方式自動循環(huán)方式特殊循環(huán)方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)循環(huán)方式設(shè)置優(yōu)先權(quán)方式普通中斷結(jié)束方式特殊中斷結(jié)束方式自動中斷結(jié)束方式非自動中斷結(jié)束方式結(jié)束中斷處理方式屏蔽中斷源方式普通屏蔽方式特殊屏蔽方式中斷觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式總結(jié):8259A是可編程中斷控制器,對其編程可以分為兩部分:①初始化編程:由CPU向8259A送2~4個字節(jié)的初始化命令字
ICW(InitializationCommandWord)。在8259A工作之前,必須寫入初始化命令字使其處于準(zhǔn)備就緒狀態(tài)。②操作方式編程:由CPU向8259A送三個字節(jié)的操作命令字
OCW(OperationCommandWord),以規(guī)定8259A的操作方式
OCW可在8259A已經(jīng)初始化以后的任何時間內(nèi)寫入。在8259A工作期間,OCW規(guī)定或設(shè)置其工作方式,動態(tài)地控制CPU處理中斷的過程。6.5.38259A命令字
1×
I3I4ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制處理部分控制部分00000000
ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級裁決器IRR中斷申請寄存器00000000
中斷屏蔽寄存器IMROCW2
10010100
00
01
OCW3OCW18259A中斷控制器
8259A內(nèi)部有9個可讀寫的寄存器4個初始化命令寄存器
ICW1、ICW2ICW3、ICW43個操作命令寄存器
OCW1(IMR)
OCW2、OCW3
當(dāng)前中斷服務(wù)寄存器ISR
中斷申請寄存器IRR
1×
I3I4ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制處理部分控制部分00000000
ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級裁決器IRR中斷申請寄存器00000000
中斷屏蔽寄存器OCW2
10010100
00
01
OCW3OCW18259A中斷控制器D0~D7A0CSRDWR80111A0100A08259A有兩個I/O端口地址對9個寄存器的讀寫均通過這兩個端口實現(xiàn)
寫入數(shù)據(jù)的特征位
寫入的先后順序區(qū)分是對哪個寄存器進(jìn)行操作根據(jù)
A0=0偶地址端口
A0=1奇地址端口8259A有4個初始化命令字ICW1~I(xiàn)CW4,用于接受CPU對8259的初始化命令。ICW1和ICW2是必須送的,ICW3和ICW4由工作方式?jīng)Q定。1.8259A的初始化命令字ICW(1)ICW1(初始化字)
特征:A0=0,ICW1中D4=1ICW1啟動了8259A中的初始化順序,自動發(fā)生以下事件:
①對中斷請求信號邊沿檢測電路復(fù)位;②清IMR、ISR;③指定IR0優(yōu)先級最高;④設(shè)定為普通屏蔽方式;⑤設(shè)定為非自動結(jié)束中斷方式。
IC4SNGL
ADILTIM
1
A5
A6
A7
0A0D7D6D5D4D3D2D1D0偶地址
1=需要ICW40=不需要ICW4
1=單片
0=級聯(lián)調(diào)用地址間隔:
1=間隔為4,80X86中不用
0=間隔為81=電平觸發(fā)
0=邊沿觸發(fā)中斷向量地址的A7~A5
(只用于8080/8085)取0識別碼ICW1
0000例:設(shè)8259A端口地址20H、21HMOVAL,13HOUT20H,AL中斷為邊沿觸發(fā),系統(tǒng)中一片8259A,要設(shè)ICW4.ICW1例:設(shè)8259A端口地址20H、21HMOVAL,13HOUT20H,AL中斷為邊沿觸發(fā),系統(tǒng)中一片8259A,要設(shè)ICW4.ICW1IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制00000000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器100
00001
10010100INTR(2)ICW2(中斷類型碼字)
寫入時A0=1。當(dāng)已知某中斷源的中斷類型碼時,應(yīng)填入ICW2,但其中高5位有效,低3位系統(tǒng)自動填入。
1
T3
T4
T5
T6
T7A0奇地址中斷類型自動填入IR0000IR1001…IR7111(3)ICW3(級聯(lián)控制字)
若系統(tǒng)中只有一片8259A,則不用ICW3;若有多片8259A級連,則主8259A和每一片從8259A都必須使用ICW3。
8259A最多允許有一片主8259A和8片從8259A級連,使中斷源擴(kuò)展至64個,這時主片與從片8259A的ICW3是不同的。
僅當(dāng)ICW1中D1為0才需寫ICW3.
S0
S1
S2
S3
S4
S5
S6
S7
1主片A0D7D6D5D4D3D2D1D0奇地址對應(yīng)每位Di表示IRi中斷請求線上有無從片1:有
0:無從片ID0ID1ID2
0
0
0
0
0
1A0D7D6D5D4D3D2D1D0奇地址無作用,常取0000001…110111相應(yīng)于主片IRi(i=0~7)級聯(lián)的從片編碼例:ICW3=F0H,表示IR7~I(xiàn)R4上有從片,IR3~I(xiàn)R0上無從片。(4)ICW4(方式控制字)定義8259是工作于8080/8085模式,還是工作于80X86模式,及中斷服務(wù)程序是否需要EOI命令(用以清除ISR,允許其他中斷)等。μPMAEOI
M/SBUFSFNM
0
0
0
1A0D7D6D5D4D3D2D1D0奇地址
1=80X86模式
0=8080/8085模式
1=自動EOI0=普通EOI0X:非緩沖方式
10:緩沖方式/從
11:緩沖方式/主
1=特殊的全嵌套方式
0=普通的全嵌套方式由ICW1決定是否要ICW4例:MOVAL,0DHOUT21H,AL普通全嵌套,普通EOI,緩沖方式。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制00000000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器100
00001
10010100INTR在寫入ICW1~I(xiàn)CW4后,8259A就緒,可接收中斷請求信號,若不再寫入OCW,則處于全嵌套中斷工作方式。2.8259A的操作命令字OCW在寫入ICW1~I(xiàn)CW4后,8259A就緒,可接收中斷請求信號,若不再寫入OCW,則處于全嵌套中斷工作方式。全嵌套中斷工作方式的特點:①優(yōu)先級固定IR0…….IR7
高低②當(dāng)CPU為某中斷源服務(wù)時,ISR相應(yīng)位置1。這時8259不再響應(yīng)同級或低級的中斷請求,直到高級中斷服務(wù)完畢,再執(zhí)行一條EOI命令為止。③當(dāng)高級中斷請求到來,且IF=1,CPU轉(zhuǎn)高級中斷服務(wù)。這時低級中斷服務(wù)的ISR位不復(fù)位,而高級中斷的ISR位又置1。當(dāng)高級中斷服務(wù)完畢,發(fā)EOI命令以及IRET,高級中斷源對應(yīng)的ISR位復(fù)位,程序返回到低級中斷程序的斷點處,又繼續(xù)執(zhí)行低級中斷服務(wù)程序。(1)OCW1(屏蔽控制字)
IMR相應(yīng)位置1,屏蔽;IMR相應(yīng)位置0,開放。該工作字放置于程序的任何地方,實現(xiàn)對某些中斷的屏蔽或開放,也就實現(xiàn)了對優(yōu)先權(quán)的改變。
M0
M1
M2
M3
M4
M5
M6
M7
1A0D7D6D5D4D3D2D1D0奇地址中斷屏蔽1=置屏蔽0=復(fù)位屏蔽
若需改變上述8259A的中斷控制方式,或為了屏蔽某些中斷,以及讀出8259A的一些狀態(tài)信息,如IRR、ISR、IMR的內(nèi)容,則必須寫入操作命令字OCW。工作命令字OCW1~OCW3,寫入順序上無特別要求。端口地址有嚴(yán)格規(guī)定:OCW1寫入奇地址端口(A0=1),
OCW2和OCW3寫入偶地址端口(A0=0)。(2)OCW2(中斷結(jié)束和優(yōu)先權(quán)循環(huán)控制字)
設(shè)置優(yōu)先級是否循環(huán),循環(huán)方式,中斷結(jié)束方式。
L0
L1
L2
0
0EOI
SL
R
0A0D7D6D5D4D3D2D1D0偶地址8259A的幾種不同工作方式OCW2標(biāo)志位000001…110111①系統(tǒng)中最低優(yōu)先級的編碼②SL=1時,要清除ISR中的哪一位。中斷優(yōu)先方式:1按左循環(huán)方式0非循環(huán)方式
IR0(高)…IR7(低)決定L2L1L0是否有效:1有效,指出最低優(yōu)先級。0無效,當(dāng)前被服務(wù)的中斷源左循環(huán)到最低優(yōu)先級。中斷結(jié)束命令位:1ISR中相應(yīng)位復(fù)位0在ICW4中給出
AEOIR:中斷優(yōu)先權(quán)是否循環(huán)
0:優(yōu)先級固定,IR0最高,IR7最低。
1:優(yōu)先級左循環(huán),當(dāng)前剛被服務(wù)的中斷源輪為最低優(yōu)先級。SL:特殊循環(huán)
0:當(dāng)前被服務(wù)的中斷源循環(huán)到最低優(yōu)先級,D2~D0無意義。
1:D2~D0有效,指出最低優(yōu)先級的中斷源。EOI:中斷結(jié)束命令
1:使ISR中的相應(yīng)位復(fù)位。當(dāng)ICW4中的AEOI=0
時,必須給出一個EOI。
0:在ICW4已給出AEOI.D2~D0:
①給定該系統(tǒng)中最低優(yōu)先級的編碼。②在OCW2給出特殊的中斷結(jié)束命令時,指明具體要清除當(dāng)前
ISR中的哪一位。R,SL,EOI三位組合可形成8259的幾種不同的工作方式,見P259。
L0
L1
L2
0
0EOI
SL
R
0A0D7D6D5D4D3D2D1D0RIS
RR
P
1
0SMMESMM
0
0A0D7D6D5D4D3D2D1D0偶地址未定義,常取0OCW3標(biāo)志是否工作于特殊屏蔽模式1中斷查詢命令0非查詢命令
在下一個RD脈沖10讀IRR(從A0=011讀ISR端口)決定下一個操作是否是讀操作10復(fù)位11置特殊屏蔽(3)OCW3(屏蔽和讀狀態(tài)控制字)①設(shè)置特殊屏蔽方式
D6D510復(fù)位為普通屏蔽方式
11置為特殊屏蔽方式②查詢中斷請求查詢外部事件是否有中斷請求。
i)寫OCW38259A,其中D2=1ii)讀查詢字(對同一地址)D0D1D2
I1:有中斷請求0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鑄件生產(chǎn)工藝協(xié)議
- 贈品選購合同指南
- 權(quán)威編寫原材料采購合同
- 出租車公司協(xié)議
- 戶外鞋銷售合同
- 真皮皮帶購銷合同
- 人才服務(wù)合同簽訂注意事項與建議
- 互聯(lián)網(wǎng)公司采購合同的簽訂技巧
- 購銷合同的簽訂要求
- 橋梁工程勞務(wù)分包協(xié)議書
- 監(jiān)理企業(yè)技術(shù)管理制度
- 幼兒園小班社會《環(huán)保小衛(wèi)士》課件
- 高速鐵路概論 課件 第3章 高速鐵路車站
- 10kv電力施工方案
- 2024年部編版語文五年級上冊全冊單元檢測題及答案(共8套)
- 譯林版(三起)(2024)三年級上冊英語期末復(fù)習(xí):Unit 1-Unit 8共8套單元測試卷匯編
- 2024基層醫(yī)療機(jī)構(gòu)院感防控管理能力提升培訓(xùn)考核試題及答案
- 普通外科國家臨床重點專科建設(shè)項目申報書
- 2020海灣JTW-LD-GST85B纜式線型感溫火災(zāi)探測器
- 微測網(wǎng)題庫完整版行測
- 110kV變電站專項電氣試驗及調(diào)試方案
評論
0/150
提交評論