




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Ch.6 輸入輸出和中斷技術(shù)本章內(nèi)容基本概念 I/O端口的編址 輸入輸出的基本方法:無條件、查詢、中斷、DMA中斷中斷基本概念8086/8088中斷系統(tǒng)8259中斷控制器*DMA*DMA的基本概念DMA工作過程DMA的三種傳輸方式 第1頁/共99頁 6.1 輸入/輸出接口(I/O接口) 6.1.1 概述 什么是I/O接口?把外設(shè)連接到總線上的一組邏輯電路的總稱。實現(xiàn)外設(shè)與主機之間的信息交換。 I/O接口要解決的問題 速度匹配(Buffer) 信號電平和驅(qū)動能力(電平轉(zhuǎn)換器、驅(qū)動器) 信號形式匹配(A/D、D/A) 信息格式(字節(jié)流、塊、數(shù)據(jù)包、幀) 時序匹配(定時關(guān)系) 總線隔離(三態(tài)門)第2
2、頁/共99頁 I/O接口的功能 I/O地址譯碼與設(shè)備選擇 把選中的與總線相接,未選中的與總線隔離(高阻態(tài)) 數(shù)據(jù)的緩沖與暫存 緩解接口與CPU工作速度的差異 對外設(shè)進行監(jiān)測、控制與管理,中斷處理 信號電平與類型的轉(zhuǎn)換 形式、格式、電平、功率、碼制等 第3頁/共99頁 6.1.2 I/O接口的編址方式 I/O端口: I/O信息的三種類型:數(shù)據(jù)、命令、狀態(tài)。傳送這三類信息的通道分別稱為:數(shù)據(jù)端口(I、O)、命令端口(O)、狀態(tài)端口(I)。 不同外設(shè)具有的端口數(shù)各不相同,計算機中為每一個端口都賦予一個惟一編號稱為端口地址(或端口號)。 端口有兩種編址方式:統(tǒng)一編址和獨立編址。第4頁/共99頁 1.
3、統(tǒng)一編址把外設(shè)接口與內(nèi)存統(tǒng)一進行編址。各占據(jù)統(tǒng)一地址空間的不同部分。優(yōu)點指令統(tǒng)一,靈活;訪問控制信號統(tǒng)一,使用同一組的地址/控制信號。 缺點內(nèi)存可用地址空間減小0地址空間(共1MB)內(nèi)存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H第5頁/共99頁 2. 獨立編址外設(shè)地址空間和內(nèi)存地址空間相互獨立。優(yōu)點:內(nèi)存地址空間不受I/O編址的影響缺點:I/O指令功能較弱,使用不同的讀寫控制信號00000H內(nèi)存地址空間內(nèi)存空間(1MB)I/O空間(64KB)FFFFHFFFFFHI/O地址空間0000H第6頁/共99頁 例如:8088/8086系統(tǒng) 8088總線A19-A0A
4、9-A0MEMR、MEMWIOR、IOW 、AEN存儲器訪問I/O訪問第7頁/共99頁 8088/8086 CPU的I/O編址方式采用I/O獨立編址方式(但地址線與存儲器共用)地址線上的地址信號用 來區(qū)分: 時為I/O地址I/O操作只使用20根地址線中的16根: A15 A0可尋址的I/O端口數(shù)為64K(65536)個I/O地址范圍為0FFFFHIBM PC只使用了1024個I/O地址(03FFH)IO/M=1IO/M第8頁/共99頁 6.1.3 I/O端口地址的譯碼 、 、 A15 A0OUT指令將使總線的 信號有效IN指令將使總線的 信號有效當(dāng)接口只有一個端口時,16位地址線一般應(yīng)全部參與
5、譯碼,譯碼輸出直接選擇該端口;當(dāng)接口具有多個端口時,則16位地址線的高位參與譯碼(決定接口的基地址),而低位則用于確定要訪問哪一個端口。 例如: 某外設(shè)接口有4個端口,地址為2F0H2F3H,則其基地址為2F0H,由A15A2譯碼得到,而A1、A0用來確定4個端口中的某一個。IORIOWIOW IOR第9頁/共99頁 6.1.4 I/O數(shù)據(jù)的傳送方式 并行 一個數(shù)據(jù)單位(通常為字節(jié))的各位同時傳送 速度快、距離短、成本高 例:PC機的并行接口(通常用于連接打印機) 串行 數(shù)據(jù)按位進行傳送 速度慢、距離遠、成本低 例: PC機的串行接口(通常用于串行通信)第10頁/共99頁 6.2.1 接口電路
6、的基本結(jié)構(gòu)6.2 簡單接口電路數(shù)據(jù)線控制線狀態(tài)線DBCBAB數(shù)據(jù)輸入寄存器(or 三態(tài)門)數(shù)據(jù)輸出寄存器(鎖存器)狀態(tài)寄存器(or 三態(tài)門)命令寄存器譯碼電路控制邏輯接外設(shè)接主機第11頁/共99頁 數(shù)據(jù)輸入/輸出寄存器暫存輸入/輸出的數(shù)據(jù) 命令寄存器存放控制命令,用來設(shè)定接口功能、工作參數(shù)和工作方式。 狀態(tài)寄存器保存外設(shè)當(dāng)前狀態(tài),以供CPU讀取。第12頁/共99頁簡單接口電路 數(shù)據(jù)輸入接口 必須具有三態(tài)輸出能力,以便與總線掛接 外設(shè)有數(shù)據(jù)保持能力時可用三態(tài)門實現(xiàn) 外設(shè)無數(shù)據(jù)保持能力時用三態(tài)輸出的鎖存器實現(xiàn) 數(shù)據(jù)輸出接口 常用鎖存器實現(xiàn)第13頁/共99頁 三態(tài)門:高電平、低電平、高阻態(tài) 通常一個
7、器件中包含8個三態(tài)門 常用芯片:74LS244(教材圖) 應(yīng)用例子:開關(guān)接口 工作波形圖如下:A0A15IOR#譯碼輸出D0D7開關(guān)狀態(tài)地址有效第14頁/共99頁簡單的輸入接口舉例n接口電路圖如下:83FCH83FFH譯碼器第15頁/共99頁 鎖存器:由D觸發(fā)器構(gòu)成 通常一個器件包含8個D觸發(fā)器 常用芯片:(教材圖、圖6.6) 74LS273 74LS374(具有三態(tài)輸出的鎖存器,內(nèi)部結(jié)構(gòu)見圖6.8) 應(yīng)用例子:發(fā)光二極管接口簡單的輸出接口舉例譯碼器=1=1.+5VRD0D7CPQ0Q7.D0D7A0A15IOW#74LS273R第16頁/共99頁輸入/輸出接口綜合應(yīng)用例子 根據(jù)開關(guān)狀態(tài)在7段
8、數(shù)碼管上顯示數(shù)字或符號 共陽極7段數(shù)碼管結(jié)構(gòu)見教材圖 用74LS273作為輸出接口,把數(shù)據(jù)送到7段數(shù)碼管 74LS273的地址假設(shè)為F0H 用74LS244作為輸入口,讀入開關(guān)K0K3的狀態(tài) 74LS244的地址假設(shè)為F1H 當(dāng)開關(guān)的狀態(tài)分別為00001111時,在7段數(shù)碼管上對應(yīng)顯示0F (7段碼表見下頁)第17頁/共99頁 符號形狀7段碼.gfedcba符號形狀7段碼.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C00111001501101101D01011
9、110601111101E01111001700000111F01110001第18頁/共99頁O1 I1O2 I2O3 I3O4 I4#E1 K0K3+5VGG2AG2BCBA174LS244D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7 abcdefgDP74068個反相器74LS273Rx8174LS138D0D7IOW#IOR#Y0Y1F0H = 0000 0000 1111 0000F1H = 0000 0000 1111 0001&1A7A4A15A8A3A2A1A0D0D1D2D3譯碼電路第19頁/共99頁相應(yīng)程序段如下:Seg7DB3FH,06H,5B
10、H,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HLEABX, Seg7;取7段碼表基地址MOVAH, 0GO:MOVDX, 0F1H;開關(guān)接口的地址為F1HINAL, DX;讀入開關(guān)狀態(tài)ANDAL, 0FH;保留低4位MOVSI, AX;作為7段碼表的表內(nèi)位移量MOVAL, BX+SI;取7段碼MOVDX, 0F0H;7段數(shù)碼管接口的地址為F0HOUTDX, ALJMPGO第20頁/共99頁6.3 輸入輸出的控制方式 主機與外設(shè)之間數(shù)據(jù)傳送的控制方式有以下四種: 無條件傳送 查詢式傳送 中斷方式傳送 直接存儲器存取(DMA, Dire
11、ct Memory Access)第21頁/共99頁6.3.1 無條件傳送方式 適用于總是處于準(zhǔn)備好狀態(tài)的外設(shè) 以下外設(shè)可采用無條件傳送方式: 開關(guān) 發(fā)光器件(如發(fā)光二極管、7段數(shù)碼管、燈泡等) 繼電器 步進電機 優(yōu)點:軟件及接口硬件簡單 缺點:只適用于簡單外設(shè),適應(yīng)范圍較窄第22頁/共99頁6.3.2 查詢方式傳送 適用于外設(shè)并不總是準(zhǔn)備好,而且對傳送速率、傳送效率要求不高的場合。 CPU在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀態(tài)“你準(zhǔn)備好沒有?” 對外設(shè)的要求:應(yīng)提供設(shè)備狀態(tài)信息 對接口的要求:需要提供狀態(tài)端口 優(yōu)點:軟件比較簡單 缺點:CPU效率低,數(shù)據(jù)傳送的實時性差, 速度較慢第23頁/共99
12、頁查詢方式的流程圖超時?READY?與外設(shè)進行數(shù)據(jù)交換超時錯讀入并測試外設(shè)狀態(tài)YNYN傳送完?防止死循環(huán)復(fù)位計時器NY注:多個外設(shè)時,查詢流程見教材圖第24頁/共99頁例:用查詢方式進行輸出外設(shè)狀態(tài)端口地址為3FBH,第5位(bit5)為狀態(tài)標(biāo)志(=1忙,=0準(zhǔn)備好)外設(shè)數(shù)據(jù)端口地址為3F8H,寫入數(shù)據(jù)會使?fàn)顟B(tài)標(biāo)志置1 ;外設(shè)把數(shù)據(jù)讀走后又把它置0。試畫出其電路圖。(電路圖見下頁)第25頁/共99頁D5D7-D0A9|A31&A15|A101IOWD7-D03F8H外設(shè)D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0狀態(tài)端口GG2AG2BCBAA2A1A07
13、4LS138Y01IORY3OE74LS374CPQQDSSTROBE3FBH程序段?第26頁/共99頁6.3.3 中斷方式傳送 CPU無需循環(huán)查詢外設(shè)狀態(tài),而是外部設(shè)備在需要進行數(shù)據(jù)傳送時才中斷CPU正在進行的工作,讓CPU來為其服務(wù)。即CPU在沒有外設(shè)請求時可以去做更重要的事情,有請求時才去傳輸數(shù)據(jù),從而大大提高了CPU的利用率。 優(yōu)點:CPU效率高,實時性好,速度快。 缺點:程序編制較為復(fù)雜。第27頁/共99頁6.3.4 DMA傳輸 前面三種I/O方式都需要CPU作為中介: 外設(shè) CPU 內(nèi)存 兩個含義:1)軟件:外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CPU執(zhí)行程序來完成的(PIO方式);2)硬
14、件:I/O接口和存儲器的讀寫控制信號、地址信號都是由CPU發(fā)出的(總線由CPU控制)。 缺點:程序的執(zhí)行速度限定了傳送的最大速度(約為幾十KB/秒)解決:DMA傳輸?shù)?8頁/共99頁 DMA傳輸: 外設(shè) 內(nèi)存 外設(shè)直接與存儲器進行數(shù)據(jù)交換 ,CPU不再擔(dān)當(dāng)數(shù)據(jù)傳輸?shù)闹薪檎撸?總線由DMA控制器(DMAC)進行控制(CPU要放棄總線控制權(quán)),內(nèi)存/外設(shè)的地址和讀寫控制信號均由DMAC提供。 優(yōu)點:數(shù)據(jù)傳輸由DMA硬件來控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之間交換,可以達到很高的傳輸速率(可達幾MB/秒)第29頁/共99頁幾個基本概念 總線控制權(quán)、mater、slave DMAC編程周期:slave DMA
15、C控制總線進行數(shù)據(jù)傳輸周期:master DMA的數(shù)據(jù)傳輸形式:基本的:MEMI/O擴充的:MEMMEM I/O I/O第30頁/共99頁DMA傳送原理示意圖 系統(tǒng)總線CPUDMAC存儲器外設(shè)接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACKAENIOWIORMEMWMEMR 外設(shè)發(fā)出DMA請求 DMAC向CPU申請總線 CPU完成當(dāng)前總線周期后響應(yīng),并釋放總線控制權(quán) DMAC得到總線控制權(quán),并發(fā)出DMA響應(yīng)信號 由DMAC發(fā)出各種控制信號,控制外設(shè)與存儲器之 間的數(shù)據(jù)傳送 數(shù)據(jù)傳送完后,DMAC撤銷HOLD信號 CPU釋放HLDA信號,并重
16、新控制總線第31頁/共99頁nDMA控制器的工作過程1)當(dāng)外設(shè)準(zhǔn)備好,可以進行DMA傳送時,外設(shè)向DMA控制器發(fā)出“DMA傳送請求”信號(DRQ);2)DMA控制器收到請求后,向CPU發(fā)出“總線請求”信號HOLD,表示希望占用總線;3)CPU在完成當(dāng)前總線周期后會立即對HOLD信號進行響應(yīng)。響應(yīng)包括兩個動作:一是CPU將數(shù)據(jù)總線、地址總線和相應(yīng)的控制信號線均置為高阻態(tài),由此放棄對總線的控制權(quán)。另一方面,CPU向DMA控制器發(fā)出“總線響應(yīng)”信號(HLDA)。4)DMA控制器收到HLDA信號后,就開始控制總線,并向外設(shè)發(fā)出DMA響應(yīng)信號DACK;第32頁/共99頁nDMA控制器的工作過程(續(xù))5)
17、DMA控制器送出地址信號和相應(yīng)的控制信號,實現(xiàn)外設(shè)與內(nèi)存或內(nèi)存與內(nèi)存之間的直接數(shù)據(jù)傳送;例如,向I/O接口發(fā)出讀信號,同時往地址總線上發(fā)出存儲器的地址和存儲器寫信號和AEN信號,即可從外設(shè)向內(nèi)存?zhèn)魉鸵粋€字節(jié)。6)DMA控制器自動修改地址和字節(jié)計數(shù)器,并判斷是否需要重復(fù)傳送操作。當(dāng)規(guī)定的數(shù)據(jù)傳送完后,DMA控制器就撤銷發(fā)往CPU的HOLD信號。CPU檢測到HOLD失效后,緊接著撤銷HLDA信號,并在下一時鐘周期重新開始控制總線。 第33頁/共99頁 DMA的三種傳輸方式: 連續(xù)傳送(塊傳送) DMAC申請到總線后,將一塊數(shù)據(jù)傳送完后才釋放總線,而不管中間DREQ是否有效。 單次傳送(每次傳送一個
18、字節(jié)) 每個DMA周期只傳送一個字節(jié)就立即釋放總線。 按需傳送(猝發(fā)傳送) 只要I/O接口的數(shù)據(jù)緩沖可用,就進行傳送。 (注:I/O接口需要有一定大小的FIFO緩沖)第34頁/共99頁YN允許DMADMA請求?DMAC請求總線CPU響應(yīng), DMAC獲總線控制權(quán)DMA傳送一個字節(jié)塊結(jié)束?地址增量,計數(shù)器減量DMAC釋放總線Y 數(shù)據(jù)塊傳送N第35頁/共99頁NYN允許DMADMAC請求總線CPU響應(yīng), DMAC獲總線控制權(quán)DMA傳送一個數(shù)據(jù)塊結(jié)束?釋放總線至少一個總線周期地址增量,計數(shù)器減量DMAC釋放總線Y 每次傳送一個字節(jié)測試I/O的DREQ DMA請求?第36頁/共99頁NYCPU響應(yīng), D
19、MAC獲總線控制權(quán)DMA傳送一個字節(jié)塊結(jié)束?測試I/O的DREQ 有效?地址增量,計數(shù)器減量釋放總線,請求中斷無效,釋放總線允許DMADMA請求?DMAC請求總線 按需傳送YNYN第37頁/共99頁一個總線周期TDMAC控制總線,共傳送n個數(shù)據(jù)DMA1DMA2DMAnCPU重新控制總線CPU對總線控制連續(xù)傳送TDMA共傳送n個數(shù)據(jù)DMA1DMA2DMAn單次傳送DMA3T按需傳送DMA傳送k個數(shù)據(jù)DMA傳送n-k個數(shù)據(jù)FIFO可用FIFO滿FIFO可用FIFO滿圖例:DMA傳輸方式示意圖:第38頁/共99頁6.4 中斷技術(shù)6.4.1 中斷的基本概念什么是中斷?與生活場景的比較正在看書電話鈴響接
20、電話繼續(xù)看書執(zhí)行程序事件發(fā)生事件處理繼續(xù)執(zhí)行程序中斷處理中斷請求及響應(yīng)實際場景計算機中斷返回第39頁/共99頁中斷的定義 CPU執(zhí)行程序時,由于發(fā)生了某種隨機的事件(外部或內(nèi)部),引起CPU暫時中斷正在運行的程序,轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)程序(稱為中斷服務(wù)程序或中斷處理程序),以處理該事件,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,這一過程稱為中斷。第40頁/共99頁中斷源 引起CPU中斷的事件中斷源。例如: 外設(shè)請求輸入輸出數(shù)據(jù),報告故障等 事件掉電、硬件故障、軟件錯誤、非法操作、定時時間到等 中斷源分為:外部中斷、內(nèi)部中斷 內(nèi)部中斷:CPU內(nèi)部執(zhí)行程序時自身產(chǎn)生的中斷 外部中斷:CPU以外的
21、設(shè)備、部件產(chǎn)生的中斷 8086/8088的外部中斷信號:INTR、NMI INTR可屏蔽中斷請求,高電平有效,受IF標(biāo)志的控制。IF=1時,執(zhí)行完當(dāng)前指令后CPU對它作出響應(yīng)。 NMI非屏蔽中斷請求,上升沿有效,任何時候CPU都要響應(yīng)此中斷請求信號。第41頁/共99頁為何計算機中要引入中斷? 提高數(shù)據(jù)傳輸率; 避免了CPU不斷檢測外設(shè)狀態(tài)的過程,提高了CPU的利用率。 實現(xiàn)對特殊事件的實時響應(yīng)。如多任務(wù)系統(tǒng)操作系統(tǒng)中: 缺頁中斷 設(shè)備中斷 各類異常 實時鐘,。等第42頁/共99頁中斷過程五個步驟:中斷請求中斷判優(yōu)(有時還要進行中斷源識別)中斷響應(yīng)中斷服務(wù)中斷返回以下以外部中斷為主介紹這五個步驟
22、。第43頁/共99頁1)中斷請求外設(shè)接口(中斷源)發(fā)出中斷請求信號,送到CPU的INTR或NMI引腳;中斷請求信號:邊沿請求,電平請求例如,NMI為邊沿請求,INTR為電平請求中斷請求信號應(yīng)保持到中斷被處理為止;CPU響應(yīng)中斷后,中斷請求信號應(yīng)及時撤銷。在8086/8088系統(tǒng)中,外設(shè)的中斷要經(jīng)過8259A可編程中斷控制器(PIC)的排隊判優(yōu)后向CPU發(fā)出: (I/O接口) PIC CPUn1第44頁/共99頁)中斷源識別 計算機中的中斷源有很多,CPU必須識別是哪一個設(shè)備產(chǎn)生中斷。識別中斷源有兩個方法: 軟件查詢。將中斷信號從數(shù)據(jù)總線讀入,用程序進行判別,如教材圖和圖。 中斷矢量法。由中斷源
23、提供中斷類型號,CPU根據(jù)類型確定中斷源。(8086/8088即采用此種方法)第45頁/共99頁)中斷判優(yōu) 多個中斷源產(chǎn)生中斷,CPU首先為誰服務(wù)?中斷優(yōu)先級排隊問題。 中斷優(yōu)先級控制要處理兩種情況: 對同時產(chǎn)生的中斷:應(yīng)首先處理優(yōu)先級別較高的中斷;若優(yōu)先級別相同,則按先來先服務(wù)的原則處理; 對非同時產(chǎn)生的中斷:低優(yōu)先級別的中斷處理程序允許被高優(yōu)先級別的中斷源所中斷即允許中斷嵌套。 中斷優(yōu)先級的控制方法 硬件判優(yōu)鏈?zhǔn)脚袃?yōu)、并行判優(yōu)(中斷向量法) 軟件判優(yōu)順序查詢中斷請求,先查詢的先服務(wù)(即先查詢的優(yōu)先級別高) 通常將中斷判優(yōu)與中斷源識別合并在一起進行處理。 x86系統(tǒng)中,這項任務(wù)由PIC和CP
24、U共同完成。第46頁/共99頁INTAinCPUINTAINTR外設(shè)1外設(shè)2外設(shè)接口1菊花鏈邏輯電路外設(shè)接口2外設(shè)3外設(shè)接口31菊花鏈邏輯電路菊花鏈邏輯電路IREQIREQIREQ中斷確認鏈?zhǔn)脚袃?yōu)電路原理圖(教材圖) INTAinINTAin中斷確認中斷確認第47頁/共99頁菊花鏈邏輯電路INTAinIREQINTR&=1 1INTAoutDB三態(tài)門中斷向量碼E外設(shè)接口中斷確認菊花鏈邏輯電路第48頁/共99頁3)中斷響應(yīng) 在每條指令的最后一個時鐘周期,CPU檢測INTR或NMI信號。若以下條件成立,則CPU響應(yīng)中斷: 當(dāng)前指令執(zhí)行完。對INTR,還應(yīng)滿足以下條件 當(dāng)前指令是STI和IR
25、ET,則下條指令也要執(zhí)行完。 當(dāng)前指令帶有LOCK、REP等指令前綴時,則把它們看成一個整體,要求完整地執(zhí)行完; 對INTR,CPU應(yīng)處于開中斷狀態(tài),即IF=1; 當(dāng)前沒有復(fù)位(RESET)和保持(HOLD)信號。 若NMI和 INTR 同時發(fā)生,則首先響應(yīng)NMI。第49頁/共99頁3)中斷響應(yīng)(續(xù)) CPU中斷響應(yīng)時,要做下述三項工作: 向中斷源發(fā)出INTA中斷響應(yīng)信號; 斷點保護,包括CS、IP和PSW(FLAGS)。這主要是保證中斷結(jié)束后能返回被中斷的程序。 獲得中斷服務(wù)程序首地址(入口)。如何得到中斷處理程序的首地址? 固定入口法 中斷向量法常用第50頁/共99頁4)中斷處理(中斷服務(wù)
26、) 中斷服務(wù)子程序特點 為”遠”過程(類型為FAR) 要用IRET指令返回 中斷服務(wù)子程序要做的工作 保護現(xiàn)場(PUSH regs) 開中斷(STI) 進行中斷處理 恢復(fù)現(xiàn)場(POP regs) 中斷返回(IRET) 第51頁/共99頁5)中斷返回 執(zhí)行中斷返回指令I(lǐng)RET IRET指令將使CPU把堆棧內(nèi)保存的斷點信息彈出到IP、CS和FLAG中,保證被中斷的程序從斷點處能夠繼續(xù)往下執(zhí)行。IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHCSLCSHFLAGLFLAGHSPIPCSFLAG進入中斷服務(wù)程序時中斷返回后第52頁/共99頁6.4.2 8088的中斷系統(tǒng) 與中斷有關(guān)的控制線
27、為:NMI、INTR、INTA# 8088系統(tǒng)的中斷源 內(nèi)部中斷 除法溢出:類型號0,商大于目的操作數(shù)所能表達的范圍時產(chǎn)生。 單步中斷:類型號1,TF=1時產(chǎn)生(當(dāng)前指令需執(zhí)行完) 斷點中斷:類型號3,這是一個軟件中斷,即INT 3指令。 溢出中斷:類型號4,這是一個軟件中斷,即INTO指令。 軟件中斷:即INT n指令,類型號n(0-255)。 外部中斷 非屏蔽中斷NMI:類型號2,不可用軟件屏蔽,CPU必須響應(yīng)它。 可屏蔽中斷INTR:類型號由PIC提供。IF=1時CPU才能響應(yīng)。第53頁/共99頁NMIINTR中斷邏輯軟件中斷指令溢出中斷除法錯單步中斷非屏蔽中斷請求中斷控制器8259AP
28、IC8086/8088CPU8086/8088CPU內(nèi)部邏輯斷點中斷8086/8088中斷源類型可屏蔽中斷請求n43012第54頁/共99頁中斷源的識別 8088系統(tǒng)采用中斷類型碼來識別不同的中斷源,每個中斷源都有一個與它相對應(yīng)的中斷類型碼 。 溢出、斷點、除法溢出、單步、非屏蔽中斷的類型碼為固定值 軟件中斷的類型碼由指令給出 可屏蔽中斷的類型碼由PIC給出 CPU響應(yīng)INTR中斷時,會產(chǎn)生兩個中斷響應(yīng)總線周期(教材圖),要求PIC在第2個中斷響應(yīng)總線周期把中斷類型碼放到數(shù)據(jù)總線上,供CPU讀入。第55頁/共99頁中斷向量表(IVT) 存放各類中斷的中斷服務(wù)程序的入口地址(段和偏移)中斷向量
29、表的地址位于內(nèi)存的00000H003FFH,大小為1KB,共256個中斷向量 每個中斷向量占用4 Bytes,低字為段內(nèi)偏移,高字為段基址 根據(jù)中斷類型號獲得中斷服務(wù)程序入口的方法: (n為中斷類型號) 中斷向量在IVT中的存放地址4n第56頁/共99頁中斷向量表的初始化 初始化將中斷服務(wù)程序的入口地址放入向量表 例:中斷類型碼為48H的中斷處理子程序的名字為int48h,編寫程序段將該中斷處理子程序的入口地址放入向量表。第57頁/共99頁中斷向量表的初始化 CLI MOV AX,0 MOV DS,AX MOV SI,48H*4 MOV AX,OFFSET int48h MOV SI,AX M
30、OV AX,SEG int48h MOV SI+2,AX STI第58頁/共99頁8086/8088 CPU的中斷響應(yīng)過程 內(nèi)部中斷響應(yīng)過程 無INTA#周期 中斷類型碼固定或由指令給出 響應(yīng)過程主要步驟: PUSH FLAG IF=0 PUSH CS PUSH IP 取中斷向量送入IP和CS第59頁/共99頁中斷響應(yīng)過程(續(xù))外部中斷響應(yīng)過程 非屏蔽中斷,與內(nèi)部中斷響應(yīng)過程類似 可屏蔽中斷(時序見教材圖6.24) INTA#(1),PIC進行優(yōu)先級排隊判優(yōu)處理 INTA#(2),PIC把中斷類型碼放到DB上,CPU讀入 PUSH FLAG IF=0 PUSH CS PUSH IP 取中斷向量
31、送入IP和CS與內(nèi)部中斷一樣第60頁/共99頁8088系統(tǒng)中各中斷的優(yōu)先級 優(yōu)先級從高到低順序如下: 內(nèi)部中斷 NMI INTR 單步中斷第61頁/共99頁NYNYNNNNNYY執(zhí)行指令執(zhí)行完否?取指令I(lǐng)F=1?內(nèi)部中斷?NMI?INTR?TF=1?類型碼=0255類型碼=2類型碼=1中斷響應(yīng),讀回類型碼FLAG入棧TEMPTFTF=TF=0CS、IP入棧計算向量表地址高字CS低字IP執(zhí)行中斷服務(wù)程序NMI?TEMP=1?轉(zhuǎn)入中斷服務(wù)程序恢復(fù)CS和IP恢復(fù)FLAGS返回被中斷的程序YYYYNIRET指令的操作8086/8088的中斷處理流程第62頁/共99頁NMI、INTR、單步和除法錯中斷同
32、時產(chǎn)生時的中斷處理過程DIVTF=1IF=1INTRNMIPUSH FLAGS、CS、IPCLEAR IF & TF,中斷入口CS:IP除法錯NMI(IF、TF = 0)PUSH FLAGS、CS、IPCLEAR IF & TF,中斷入口CS:IPNMI中斷處理程序除法錯中斷處理程序(IF、TF = 0) 返回執(zhí)行下條指令識別出INTR(IF、TF = 1) 返回INTR仍然有效繼續(xù)單步執(zhí)行程序INTR中斷處理程序INTRPUSH FLAGS、CS、IPCLEAR IF & TF,中斷入口CS:IP單步 (IF、TF = 0)PUSH FLAGS、CS、IPCLEAR
33、IF & TF,中斷入口CS:IP單步中斷處理程序(IF、TF = 0) 返回(IF、TF = 1) 返回第63頁/共99頁6.5 可編程中斷控制器8259A PIC,Programmable Interrupt Controller 可對8個中斷源實現(xiàn)優(yōu)先級控制 可擴展至對64個中斷源實現(xiàn)優(yōu)先級控制 可編程設(shè)置不同工作方式 根據(jù)中斷源向x86提供不同中斷類型碼 引腳分配及功能見教材圖第64頁/共99頁8259A的內(nèi)部結(jié)構(gòu) 8259A的內(nèi)部結(jié)構(gòu)(教材圖) 中斷請求寄存器IRR 保存從IR0IR7來的中斷請求信號,某位=1表示對應(yīng)的IRi有中斷請求 中斷服務(wù)寄存器ISR 保存所有正在服務(wù)
34、的中斷源,某位=1表示對應(yīng)的IRi中斷正在被服務(wù) 中斷屏蔽寄存器IMR 存放中斷屏蔽字,某位=1表示對應(yīng)的IRi輸入被屏蔽 中斷優(yōu)先權(quán)判別電路 確定是否向CPU發(fā)出中斷請求,中斷響應(yīng)時確定ISR的哪位應(yīng)置位及把相應(yīng)中斷的類型碼放到數(shù)據(jù)總線上 第65頁/共99頁6.5.2 8259A的工作過程 8259A對中斷請求的處理過程如下: 當(dāng)某IRi有效時,IRR相應(yīng)位置1 若有效的IRi未被屏蔽,則向CPU發(fā)出中斷請求 檢測到第1個INTA#信號后,置ISRi=1,IRRi=0 檢測到第2個INTA#信號后,把ISRi=1中最高優(yōu)先級的中斷類型碼放到DB上 若工作在AEOI方式,在第2個INTA#結(jié)束
35、時,使ISRi復(fù)位;否則由CPU發(fā)出EOI命令使ISRi復(fù)位第66頁/共99頁6.5.3 8259A的工作方式 8259A的工作方式有如下幾類: 中斷優(yōu)先方式與中斷嵌套 中斷結(jié)束處理方式 屏蔽中斷源的方式 中斷觸發(fā)方式 級聯(lián)工作方式第67頁/共99頁中斷優(yōu)先方式與中斷嵌套中斷優(yōu)先方式 兩類優(yōu)先級控制方式:固定優(yōu)先級和循環(huán)優(yōu)先級固定優(yōu)先級方式所有中斷請求IRi的中斷優(yōu)先級固定不變優(yōu)先級排列順序可編程改變加電后8259A的默認方式,默認優(yōu)先級順序從高到低為IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低級最高級最高級最低級優(yōu)先級IR7IR6IR5IR
36、4IR3IR2IR1IR0默認優(yōu)先級優(yōu)先級可編程改變第68頁/共99頁中斷優(yōu)先方式與中斷嵌套(續(xù)) 循環(huán)優(yōu)先級方式 中斷源輪流處于最高優(yōu)先級,即自動中斷優(yōu)先級循環(huán) 初始優(yōu)先級順序可用編程改變 某中斷請求IRi被處理后,其優(yōu)先級別自動降為最低,原來比它低一級的中斷上升為最高級 IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低級最高級最高級最低級ISR內(nèi)容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服務(wù)結(jié)束以前0101000001000000IR4的服務(wù)結(jié)束以后ISRi第69頁/共99頁中斷優(yōu)先方式與中斷嵌套(續(xù)) 中斷嵌套方式 在中斷處理過程中允許
37、被更高優(yōu)先級的事件所中斷稱為中斷嵌套。8259A有兩種中斷嵌套方式:普通全嵌套方式(默認方式) 一中斷正被處理時,只有更高優(yōu)先級的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。特殊全嵌套方式 一中斷正被處理時,允許同級或更高優(yōu)先級的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。注: 特殊全嵌套僅用于多個8259A級連時的主8259A,而不能用于從屬8259A或單8259A系統(tǒng)。第70頁/共99頁D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:從片的INT被主片封鎖,故更高級別的IR0-IR2中斷也無法得到響應(yīng)特殊嵌套方式:因主片不封鎖從片的INT,故級別高的IR0-IR2中斷
38、可以得到響應(yīng)。(但IR3-IR7仍被本從片封鎖)C.假定IR7發(fā)生中斷,并獲得服務(wù)一般嵌套方式:IR4的中斷被服務(wù)時,這些中斷將被封鎖。B.特殊嵌套方式:IR4的中斷被服務(wù) 時 , 只 封 鎖IR5-IR7。A.INTE.從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7n一般全嵌套方式與特殊全嵌套方式的區(qū)別 去CPU第71頁/共99頁中斷結(jié)束處理方式 當(dāng)某一IRi中斷被服務(wù)時,ISR中的相應(yīng)位ISRi=1。當(dāng)服務(wù)結(jié)束后,則必須清零該ISRi位。使ISRi=0是通過向8259A發(fā)出中斷結(jié)束命令(EOI命令)實現(xiàn)的。 三種EOI命令 自動EOI(AEOI)(自動EOI方式) 非指
39、定EOI(NSEOI)(正常EOI方式) 指定EOI(SEOI)(特殊EOI方式)第72頁/共99頁 AEOI:在第2個INTA#結(jié)束時,由8259A使ISRi自動復(fù)位; 因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式 SEOI:由CPU發(fā)出一條SEOI命令,該EOI命令中指出了所要復(fù)位的ISR的位號。 用于特殊屏蔽方式 NSEOI:由CPU發(fā)出正常EOI命令,該EOI命令使ISRi=1的位中優(yōu)先級最高的那一位復(fù)位。 用于普通全嵌套方式第73頁/共99頁中斷服務(wù)程序向從PIC發(fā)EOI命令讀從PIC的ISR全0?向主PIC發(fā)EOI命令YIRET恢復(fù)現(xiàn)場Nn特殊全嵌套方式下的EO
40、I處理n只有當(dāng)從PIC的中斷全部處理完后,才能向主PIC發(fā)EOI命令第74頁/共99頁屏蔽中斷源的方式 IMR屏蔽字決定了允許或禁止某位IRi所對應(yīng)的中斷:IMi=1 禁止, IMi=0 允許。 特殊屏蔽方式: 提供了允許較低優(yōu)先級的中斷能夠得到響應(yīng)的特殊手段。 原理:假定當(dāng)前正在處理IR6,先進入特殊屏蔽方式,然后設(shè)置IM6=1。這時,除IR6外的所有中斷請求均能得到響應(yīng)。 特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。第75頁/共99頁 特殊屏蔽例:。 ;IR4中斷處理程序CLIMOV AL,68H ;OCW3:0 1 1 0 1 0 0 0OUT 0C0H,AL ;設(shè)置特殊屏蔽方式IN AL
41、,0C2H OR AL,10H ;屏蔽IR4OUT 0C2H,AL STI。 ;IR7請求,響應(yīng),返回。CLI ;為設(shè)命令字IN AL,0C2H ;讀出屏蔽字AND AL,0EFH ;清除IMR4OUT 0C2H,ALMOV AL,48H ;OCW3:0 1 0 0 1 0 0 0OUT 0C0H,AL ;取消特殊屏蔽STI。 ;繼續(xù)IR4中斷服務(wù)MOV AL,20H ;OCW2:0 0 1 0 0 0 0 0 (EOI)OUT 0C0,ALIRET 第76頁/共99頁中斷觸發(fā)方式 邊沿觸發(fā) IRi出現(xiàn)上升沿表示有中斷請求 電平觸發(fā) IRi出現(xiàn)高電平表示有中斷請求 在第1個INTA#結(jié)束前,I
42、Ri必須保持高電平 第77頁/共99頁級聯(lián)工作方式 單片8259A可支持8個中斷源; 采用多片8259A級連,可最多支持64個中斷源。n片8259A可支持7n+1個中斷源; 級連時只能有一片8259A為主片,其余的均為從屬片; 涉及到的8259A引腳包括: CAS0-CAS2 SP#/EN# IRi INT第78頁/共99頁級連電路連接方法第79頁/共99頁6.5.4 8259A的編程使用 8259A的控制命令分為 初始化命令字ICW ICW1ICW4 向8259A寫入ICW的過程稱為初始化編程 操作命令字OCW OCW1OCW3 向8259A寫入OCW的過程稱為操作方式編程第80頁/共99頁
43、8259A內(nèi)部寄存器的尋址方法CS# RD# WR#A0D4D3讀寫操作讀寫操作010000寫OCW2寫OCW3寫ICW1寫ICW2,ICW3,ICW4,OCW1(順序?qū)懭?00101x1xx00101xx讀出IRR、ISR讀出IMRn需要CS#、A0、RD#、WR#和D4、D3的配合n內(nèi)部寄存器的訪問方法如下表: 第81頁/共99頁8259A的初始化順序 8259的初始化流程如圖 注意次序不可顛倒 寫ICW1寫ICW2級連?寫ICW3需ICW4?寫ICW4NNYY第82頁/共99頁8259A的控制命令字 初始化8259A必須從ICW1開始 寫ICW1意味著重新初始化8259A 寫入ICW1后
44、,8259A的狀態(tài)如下: 清除ISR和IMR(全0); 將中斷優(yōu)先級設(shè)成初始狀態(tài):IR0最高,IR7最低; 設(shè)定為一般屏蔽方式; 采用非自動中斷結(jié)束方式; 狀態(tài)讀出邏輯預(yù)置為讀IRR。第83頁/共99頁ICW1初始化字 LTIM: 觸發(fā)方式 =1 高電平觸發(fā) =0 上升沿觸發(fā) SNGL: 級連控制 =1 單片 =0 級連 IC4: ICW4控制 =1 要寫ICW4 =0 不寫ICW4(默認ICW4為全0)A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC4第84頁/共99頁ICW2中斷向量碼 T7T3: 中斷向量碼的高5位 T2T0: 最低3位
45、為中斷源的序號IRn 000111分別對應(yīng)IR0IR7 由8259A根據(jù)中斷源的序號自動填入 例如:若ICW2命令字為48H,則IR0的中斷向量碼為48H,IR7的中斷向量碼為4FH,等等。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x x第85頁/共99頁ICW3級連控制字 主片的級聯(lián)控制字 Si=1 對應(yīng)IRi線上連接了從片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0n從片的級聯(lián)控制字從片的級聯(lián)控制字 nID2ID0 標(biāo)識碼,說明本從片連接到主片的哪標(biāo)識碼,說明本從片連接到主片的哪個
46、個IR引腳上。引腳上。 000111分別對應(yīng)分別對應(yīng)IR0IR7。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0第86頁/共99頁ICW3級連控制字(續(xù)) ICW3必須與主從片的連接關(guān)系一致:例如,主片的IR4與從片的INT線連接,則主片的ICW3=10H,從片的ICW3=04H。 中斷響應(yīng)時,主片通過級連線CAS2-CAS0送出被允許中斷的從片標(biāo)識碼,各從片用自己的ICW3與CAS2-CAS0比較,二者一致的從片才可發(fā)送中斷向量碼。第87頁/共99頁ICW4中斷結(jié)束方式字 SFNM: 特殊全嵌套1 特殊全嵌套方式0 一般全嵌套方式 AEO
47、I: 自動EOI1 自動EOI方式0 非自動EOI方式A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI 1nBUF: 緩沖方式緩沖方式 M/S: 主主/從緩沖選擇從緩沖選擇BUF M/S 1 1 緩沖方式緩沖方式/主主PIC 1 0 緩沖方式緩沖方式/從從PIC 0 x 非緩沖方式非緩沖方式/正常正常第88頁/共99頁8259A的操作命令字OCW OCW用于設(shè)置8259的工作狀態(tài) 在初始化后寫入 OCW的寫入順序可任意 寫入地址要求: OCW1必須寫入奇地址端口(A0=1) OCW2,OCW3必須寫入偶地址端口(A0=0) 第89頁/共99頁OCW1中斷屏蔽字 Mi=1 中斷請求線IRi被屏蔽(不允許中斷) =0 允許該IRi中斷 OCW1將寫入IMR寄存器。 A0=1時讀OCW1可讀出設(shè)置的IMR內(nèi)容。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M0第90頁/共99頁OCW2中斷結(jié)束和優(yōu)先級循環(huán) L2L0: 優(yōu)先級編碼 R: 優(yōu)先級自動循環(huán) SL: 指定優(yōu)先級 EOI: 結(jié)束中斷命令 R SL EOI 0 0 1 非指定EOI 命令(NSEOI),全嵌套方式 0 1 1 指定EO
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)蒙古和林格爾縣2025年初三第一次(3月一模)語文試題試卷含解析
- 山西省大同市礦區(qū)重點名校2025年普通高中畢業(yè)班摸底考試語文試題(一模66C)含解析
- 飛行器的設(shè)計與制造作業(yè)指導(dǎo)書
- 甘肅省酒泉市四校2024-2025學(xué)年高一下學(xué)期4月期中聯(lián)考政治試題(原卷版+解析版)
- 武漢市青山區(qū)2025年初三第一次聯(lián)考生物試題試卷含解析
- 【檢查表】工貿(mào)企業(yè)有限空間安全生產(chǎn)執(zhí)法檢查參考標(biāo)準(zhǔn)
- 安徽省淮北五校聯(lián)考2024-2025學(xué)年度八年級下冊3月月考歷史試題(含答案)
- 中學(xué)新教學(xué)樓家具采購項目招標(biāo)文件
- 項目委托代購合同協(xié)議
- 門窗玻璃購買合同協(xié)議
- (二模)2024~2025學(xué)年度蘇錫常鎮(zhèn)四市高三教學(xué)情況調(diào)研(二)物理試卷(含答案)
- 事件網(wǎng)絡(luò)輿情傳播機制的建模與仿真-全面剖析
- 初中信息技術(shù)蘇科版(2023)七年級下冊第七單元 跨學(xué)科主題學(xué)習(xí)-絲綢之路公開課教案及反思
- 2025年高考語文作文預(yù)測52篇(含范文)
- GB/T 36572-2018電力監(jiān)控系統(tǒng)網(wǎng)絡(luò)安全防護導(dǎo)則
- GB/T 19066.1-2003柔性石墨金屬波齒復(fù)合墊片分類
- 常見的圓柱截切體名師優(yōu)質(zhì)課賽課一等獎市公開課獲獎?wù)n件
- 《蔣公的面子劇本》
- 《工廠供電》第六版習(xí)習(xí)題解答(不全)
- 國內(nèi)常見模具鋼牌號對照表
- 解聘證明范本
評論
0/150
提交評論