




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 第第5章章 數字量輸入輸出數字量輸入輸出5.1 輸入輸入/輸出接口(輸出接口(I/O接口)接口)存存儲儲器器I/OI/O接接口口輸輸入入設設備備I/OI/O接接口口輸輸出出設設備備CPUI/OI/O接接口口AB: Address BusDB: Data BusCB: Control Bus1 . I/O接口的功能接口的功能 I/O接口是計算機與外部輸入或輸出設備接接口是計算機與外部輸入或輸出設備接的界面。的界面。I/O接口擔當的功能:接口擔當的功能: 1) 信號的形式變換(數信號的形式變換(數/模或模模或模/數);數); 2) 電平轉換與放大;電平轉換與放大; 3) 鎖存與緩沖鎖存與緩沖(輸
2、入口必須有三態門特輸入口必須有三態門特性性,輸出口必須有鎖存功能輸出口必須有鎖存功能); 4) 信息流的方向控制(輸入或輸出的識信息流的方向控制(輸入或輸出的識別);別); 5)地址識別;)地址識別; 6) 并行與串行的轉換;并行與串行的轉換; 2 . I/O接口分類接口分類 1)、數據口、數據口: 通過數據口傳輸數據信息。通過數據口傳輸數據信息。 2)、狀態口、狀態口: 通過狀態口計算機了解外部設備的狀態信息。通過狀態口計算機了解外部設備的狀態信息。 3)、控制口:、控制口: 通過控制口計算機發送對外部設備的控制命令。通過控制口計算機發送對外部設備的控制命令。3 . I/O接口的一般構成接口
3、的一般構成注:注: 無論數據信息、狀態信息,還是控制信息,都是通過無論數據信息、狀態信息,還是控制信息,都是通過CPU的數據總線的數據總線DB在在CPU與端口間傳送的。與端口間傳送的。AB總線傳送端口的地址信息。總線傳送端口的地址信息。CB總線傳送方總線傳送方向信息。向信息。 例例 IN AL ,PORT-D4. I/O接口的編址方式接口的編址方式 在進行接口設計時,應賦予接口一個唯一在進行接口設計時,應賦予接口一個唯一編號編號稱為端口地址稱為端口地址(或端口號或端口號)。這樣接口才。這樣接口才具有地址識別能力。具有地址識別能力。 因此,在進行接口設計時就涉及編址問題因此,在進行接口設計時就涉
4、及編址問題I/O接口有兩種編址方式:接口有兩種編址方式: 統一編址和獨立編址。統一編址和獨立編址。1). 統一編址統一編址把外設接口與內存統一進行把外設接口與內存統一進行編址。各占據統一地址空間編址。各占據統一地址空間的不同部分。的不同部分。特點:特點:v訪問存儲器和訪問訪問存儲器和訪問I/O接口接口使用相同指令;使用相同指令;v訪問存儲器和訪問訪問存儲器和訪問I/O接口接口使用相同控制信號。使用相同控制信號。 缺點缺點v內存可用地址空間減小。內存可用地址空間減小。0地址空間地址空間(共共1MB)內存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H2). 獨立編址獨
5、立編址外設地址空間和內存地址空間外設地址空間和內存地址空間相互獨立相互獨立。優點:內存地址空間不受優點:內存地址空間不受I/O編址的影響。編址的影響。缺點:訪問存儲器和訪問缺點:訪問存儲器和訪問I/O接口使用不同指令,接口使用不同指令,I/O指令功能較弱,指令功能較弱,且使用不同的讀寫控制信號。且使用不同的讀寫控制信號。00000H內存地址空間內存地址空間內存空間(1MB)I/O空間(64KB)FFFFHFFFFFHI/O地址空間地址空間0000H8088CPU接口設計采用什么編址方式?接口設計采用什么編址方式?8088CPU訪問訪問I/O端口使用指令是端口使用指令是IN或或OUT,訪問存儲器
6、使用的指令,訪問存儲器使用的指令是是MOV。訪問訪問I/O接口還是存儲器的控制信號有別:接口還是存儲器的控制信號有別:M/IO=0,訪問存儲器;,訪問存儲器; =1,訪問,訪問I/O接口;接口;8088內存尋址空間為:內存尋址空間為:00000HFFFFFH; I/O接口尋址空間:接口尋址空間:0000HFFFFH由此可知,由此可知,8088CPU的的I/O編址方式是:編址方式是: 采用采用I/O獨立編址方式。獨立編址方式。 所以,所以,I/O接口使用接口使用8088CPU的的A15A0進行編址。進行編址。IBM PC只使用了只使用了1024個個I/O地址地址(03FFH),使用,使用8088
7、CPU的的A9A0進行編址。進行編址。5. I/O數據的傳送方式數據的傳送方式 1)、直接傳送方式;、直接傳送方式; 2)、查詢方式;、查詢方式; 3)、中斷方式;、中斷方式; 4)、直接存儲器訪問方式(、直接存儲器訪問方式(DMA) DMACHOLDHLDA;5.2 簡單接口電路簡單接口電路v5.2.1 一般接口電路的基本結構一般接口電路的基本結構命令口命令口(鎖存器)(鎖存器)數據線數據線控制線控制線狀態線狀態線DBCBAB數據輸入口數據輸入口( 三態門)三態門)數據輸出口數據輸出口(鎖存器)(鎖存器)狀態口狀態口( 三態門)三態門)譯碼譯碼電路電路控制控制邏輯邏輯接接外外設設接接主主機機
8、數據輸入口和狀態口:數據輸入口和狀態口:必須具有三態門特性。必須具有三態門特性。數據輸出口和命令口:數據輸出口和命令口:必須具有鎖存器特性。必須具有鎖存器特性。5.2.2 CPU總線與總線與I/O接口的連接接口的連接 1. 8088CPU總線涉及的連接線總線涉及的連接線: (1)數據線)數據線D7D0; (2)地址線)地址線A15A0,IBM-PC機僅使用機僅使用A9A0; (3)控制線;)控制線;其中,其中,AEN是是DMA(直接數據存取)和(直接數據存取)和I/O區別信區別信號,號,AEN= 1,為,為I/O的的DMA訪問訪問 0,為,為I/O的的cpu訪問訪問(直接直接/查詢查詢/中斷中
9、斷)AENIOMRDIORIOMWRIOW和),/,(),/,(簡單接口與簡單接口與CPU總線連接涉及的連接線:總線連接涉及的連接線:(1)數據線:)數據線:8位位I/O口口D7D0 1位位I/O口口Di(2)控制線,又叫)控制線,又叫I/O使能線。使能線。 簡單簡單I/O接口芯片沒有地址線!接口芯片沒有地址線!2. 簡單簡單I/O接口與接口與CPU總線的連接方法總線的連接方法 (1)數據線對應連接數據線對應連接; (2) CPU地址總線與地址總線與 或與或與 經譯碼電路輸出接經譯碼電路輸出接I/O芯片的使能引腳。芯片的使能引腳。AENIOMWRIOW和)/,(AENIOMRDIOR和)/,(
10、例例1. 簡單按鍵輸入接口簡單按鍵輸入接口設計要點設計要點:輸入口芯片選擇具有三態門特性芯片輸入口芯片選擇具有三態門特性芯片,比如比如74LS244/74LS245,利用地址線利用地址線AB9-0經譯碼電路和控制經譯碼電路和控制信號信號IOR 和和AEN參與芯片使能控制。參與芯片使能控制。 3 簡單簡單I/O接口設計舉例接口設計舉例地址譯碼電路及地址譯碼芯片的功能:地址譯碼電路及地址譯碼芯片的功能: 將地址信息經過地址譯碼電路及地址譯碼將地址信息經過地址譯碼電路及地址譯碼芯片輸出后滿足芯片輸出后滿足I/O接口芯片使能引腳有效需接口芯片使能引腳有效需要。要。 本例按鍵接口地址若安排為本例按鍵接口
11、地址若安排為87H,則地址譯,則地址譯碼電路可有下面兩種方法:碼電路可有下面兩種方法:方法一:使用邏輯電路方法一:使用邏輯電路方法二:使用地址譯碼芯片方法二:使用地址譯碼芯片 選擇使用選擇使用74LS138譯碼器構成譯碼電路譯碼器構成譯碼電路 Y0 G1 Y1G2 A Y2G2 B Y 3Y4A Y 5B Y 6C Y 7片選信號輸出譯碼允許信號地址信號74LS138邏輯圖:74LS138的真值表:(注意:輸出低電平有效)的真值表:(注意:輸出低電平有效)可以看出,當譯碼允許信號有效時,可以看出,當譯碼允許信號有效時,Yi是輸入是輸入A、B、C的的函數,即函數,即 Y=f(A,B,C)1111
12、1111X X X 其 他 值011111111 1 1 1 0 0101111111 1 0 1 0 0110111111 0 1 1 0 0111011111 0 0 1 0 0111101110 1 1 1 0 0111110110 1 0 1 0 0111111010 0 1 1 0 0111111100 0 0 1 0 0Y7Y6Y5Y4Y3Y2Y1Y0C B AG1 G2A G2B例例2 設計一個按鍵輸入口和一個設計一個按鍵輸入口和一個LED顯示輸出口。顯示輸出口。要求:要求:(1)用)用74LS273作為輸出接口,把數據送到作為輸出接口,把數據送到7段數段數碼管,碼管,74LS2
13、73的地址假設為的地址假設為F0H;(2)用)用74LS244作為輸入口,讀入開關作為輸入口,讀入開關K0K3的的狀態,狀態,74LS244的地址假設為的地址假設為F1H;編程,當開關的狀態分別為編程,當開關的狀態分別為00001111時,在時,在7段段數碼管上對應顯示數碼管上對應顯示0F。(7段碼表見下頁段碼表見下頁)O1 I1O2 I2O3 I3O4 I4G1 K0K3+5VGG2AG2BCBA1174LS244D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 OEQ7 abcdefgDP74068個個反相器反相器74LS273Rx81174LS138D0D7IOWIORY0Y1
14、F0H = 0000 0000 1111 0000F1H = 0000 0000 1111 0001&1A7A4A15A8A3A2A1A0D0D1D2D3譯碼電路譯碼電路輸入口輸入口F1H輸出口輸出口F0H符號符號形狀形狀7段碼段碼.gfedcba符號符號形狀形狀7段碼段碼.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C00111001501101101D01011110601111101E01111001700000111F01110001相應程序段如下
15、相應程序段如下:Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HLEABX, Seg7;取;取7段碼表基地址段碼表基地址MOVAH, 0GO:MOVDX, 0F1H;開關接口的地址為;開關接口的地址為F1HINAL, DX;讀入開關狀態;讀入開關狀態ANDAL, 0FH ;保留低;保留低4位位MOVSI, AX;作為;作為7段碼表的表內位移量段碼表的表內位移量MOVAL, BX+SI;取;取7段碼段碼MOVDX, 0F0H;7段數碼管接口的地址為段數碼管接口的地址為F0HOUTDX, AL 例例3:用查
16、詢方式輸出接口設計:用查詢方式輸出接口設計 方案:方案: 設計外設狀態端口,地址為設計外設狀態端口,地址為3FBH,狀態,狀態位接在數據線第位接在數據線第5位位(bit5),(,(=1忙,忙,=0準備好)準備好) 設計數據輸出端口,地址為設計數據輸出端口,地址為3F8H試畫出其電路圖。試畫出其電路圖。NY輸入狀態信息BUSY?取數并輸出數據準備輸出數據例例4. 查詢輸出編程查詢輸出編程 CPU輸出數據前,先查詢外設的狀態端口的狀態信輸出數據前,先查詢外設的狀態端口的狀態信息,若息,若BUSY=0,表示空閑,則執行輸出指令把數據送,表示空閑,則執行輸出指令把數據送入入I/O接口的數據端口。接口的
17、數據端口。BUSY(1位)數據端口(8位)狀態端口(1位)數據端口地址狀態端口地址NY輸入狀態信息BUSY?取數并輸出數據準備輸出數據程序段程序段:WT1: IN AL, S_PORT ;從狀態端口;從狀態端口S_PORT讀入狀態讀入狀態AND AL,01H ;BUSY=0?JNZ WT1 ;BUSY=1,返回繼續等待,返回繼續等待MOV AL, DOUT ;BUSY=0,取準備傳送的數據,取準備傳送的數據OUT D_PORT,AL ;從數據端口;從數據端口D_PORT輸出數據輸出數據接口接口D_PORTS_PORT 例例5:查詢輸入編程:查詢輸入編程 若若CPU需要外設輸入數據時,狀態端口讀
18、入狀態需要外設輸入數據時,狀態端口讀入狀態信息信息READY=1為準備好。編程讀入數據。為準備好。編程讀入數據。NY輸入狀態信息READY?輸入數據READY(1位)數據端口(8位)狀態端口(1位)數據端口地址狀態端口地址程序段程序段:LT: IN AL, S_PORT ;從;從狀態口狀態口S_PORT讀入狀態讀入狀態AND AL,80H;檢查;檢查READY=1?JZ LT;READY=0,返回繼續等待,返回繼續等待IN AL, D_PORT;READY=1,從,從數據口數據口D_PORT;讀入數據;讀入數據D_PORTS_PORT接口接口1、設狀態端口地址為、設狀態端口地址為60H,數據輸
19、入端口地址為數據輸入端口地址為61H,外部狀態信息通過數據線外部狀態信息通過數據線D0輸入,輸入,D0=1為準備好,請用為準備好,請用查詢方式寫出讀入外部數據的查詢方式寫出讀入外部數據的程序段。程序段。NY輸入狀態信息READY?輸入數據舉一反三舉一反三 2、設狀態端口地址為、設狀態端口地址為086H,外設狀態信息通過數據線外設狀態信息通過數據線D7輸輸入入D7=1表示忙碌。數據端口表示忙碌。數據端口地址為地址為085H,請用查詢方式,請用查詢方式寫出寫出CPU從存儲器緩沖區從存儲器緩沖區Buffer送出送出1000個數據給外個數據給外設的程序段。設的程序段。NY輸入狀態信息BUSY?取數并輸
20、出數據設置循環次數CX=1000設置Buffer指針SI修改Buffer指針CX-1送CXCX=0?NY數據傳送結束 看懂硬件接口圖看懂硬件接口圖,編程完成計算機甲從編程完成計算機甲從I/O口連口連續讀入續讀入100個數個數,計算機乙從計算機乙從I/O口輸出口輸出100個數。個數。IOR對于計算機甲對于計算機甲: 狀態口地址為狀態口地址為230H,狀態信息從數據線狀態信息從數據線D0輸入輸入,D0=0表示數表示數據口數據已準備好據口數據已準備好,D0=1表示數據口數據還沒有數據。表示數據口數據還沒有數據。 數據口地址為數據口地址為232H。對于計算機乙:對于計算機乙: 狀態口地址為狀態口地址為
21、231H,狀態信息從數據線,狀態信息從數據線D0輸入輸入,D0=0表示表示數據口數據已被取走數據口數據已被取走,D0=1表示數據口數據還為被取走。表示數據口數據還為被取走。 數據口地址為數據口地址為234H。5.3 中斷控制系統中斷控制系統v5.3.1 中斷的基本概念中斷的基本概念v什么是中斷什么是中斷?與生活場景的比較與生活場景的比較正在看書正在看書電話鈴響電話鈴響接電話接電話繼續看書繼續看書執行程序執行程序事件發生事件發生事件處理事件處理繼續執行程序繼續執行程序中斷處理中斷處理中斷請求及響應中斷請求及響應實際場景實際場景計算機計算機中斷返回中斷返回中斷的定義中斷的定義 CPU執行程序時,由
22、于發生了某種隨機執行程序時,由于發生了某種隨機的事件的事件(外部或內部外部或內部),引起,引起CPU暫時中斷正暫時中斷正在運行的程序,轉去執行一段特殊的服務程在運行的程序,轉去執行一段特殊的服務程序序(稱為中斷服務程序或中斷處理程序稱為中斷服務程序或中斷處理程序),以,以處理該事件,該事件處理完后又返回被中斷處理該事件,該事件處理完后又返回被中斷的程序繼續執行,這一過程稱為中斷。的程序繼續執行,這一過程稱為中斷。中斷源中斷源v引起引起CPU中斷的事件中斷的事件中斷源。例如:中斷源。例如:外設外設請求輸入輸出數據,報告故障等。請求輸入輸出數據,報告故障等。事件事件掉電、硬件故障、軟件錯誤、非法操
23、作、定時掉電、硬件故障、軟件錯誤、非法操作、定時時間到等。時間到等。v中斷源分為:外部中斷、內部中斷中斷源分為:外部中斷、內部中斷內部中斷:內部中斷:CPU內部執行程序時自身產生的中斷。內部執行程序時自身產生的中斷。外部中斷:外部中斷:CPU以外的設備、部件產生的中斷。以外的設備、部件產生的中斷。v 8086/8088的外部中斷信號:的外部中斷信號:INTR、NMIINTR可屏蔽中斷請求,高電平有效,受可屏蔽中斷請求,高電平有效,受IF標志的標志的控制。控制。IF=1時,執行完當前指令后時,執行完當前指令后CPU對它作出響應。對它作出響應。 NMI非屏蔽中斷請求,上升沿有效,任何時候非屏蔽中斷
24、請求,上升沿有效,任何時候CPU都要響應此中斷請求信號。都要響應此中斷請求信號。中斷過程中斷過程v五個步驟:五個步驟:中斷請求中斷請求中斷判優中斷判優(有時還要進行中斷源識別有時還要進行中斷源識別)中斷響應中斷響應中斷服務中斷服務中斷返回中斷返回 5.3.2 8088的中斷系統的中斷系統 v與中斷有關的與中斷有關的8088CPU信號線:信號線:NMI、INTR、INTAv8088系統的中斷源(最多可處理系統的中斷源(最多可處理256個)個)INTA1. 8086/8088中斷源類型中斷源類型內部中斷內部中斷除法出錯:類型號除法出錯:類型號0,商大于目的操作數所能表達的范,商大于目的操作數所能表
25、達的范圍時產生。圍時產生。單步中斷:類型號單步中斷:類型號1,TF=1時產生(當前指令需執行完)時產生(當前指令需執行完)斷點中斷:類型號斷點中斷:類型號3,這是一個軟件中斷,即,這是一個軟件中斷,即INT 3指令。指令。溢出中斷:類型號溢出中斷:類型號4,這是一個軟件中斷,即,這是一個軟件中斷,即INTO指令。指令。軟件中斷:即軟件中斷:即INT n指令,類型號指令,類型號n(0-255)。外部中斷外部中斷非屏蔽中斷非屏蔽中斷NMI:類型號:類型號2,不可用軟件屏蔽,不可用軟件屏蔽,CPU必必須響應它。須響應它。可屏蔽中斷可屏蔽中斷INTR:類型號由可編程中斷控制器:類型號由可編程中斷控制器
26、8259提提供。供。IF=1時時CPU才能響應。才能響應。 2. 中斷源的識別方法中斷源的識別方法中斷類型碼中斷類型碼 8088系統采用中斷類型碼來識別不同的系統采用中斷類型碼來識別不同的中斷源,每個中斷源都有一個與它相對應的中斷源,每個中斷源都有一個與它相對應的中斷類型碼中斷類型碼 。溢出、斷點、除法出錯、單步、非屏蔽中斷溢出、斷點、除法出錯、單步、非屏蔽中斷NMI的類型碼為的類型碼為固定值固定值軟件中斷軟件中斷INT n的類型碼的類型碼由指令給出由指令給出可屏蔽中斷的類型碼可屏蔽中斷的類型碼由編程人員給可編程中斷控由編程人員給可編程中斷控制器制器8259定義給出(講定義給出(講8259可編
27、程控制器時詳可編程控制器時詳講)。講)。可以供用戶使用的類型碼可以供用戶使用的類型碼n=40H0FFH.3. 獲取中斷服務程序入口方法獲取中斷服務程序入口方法 查中斷向量表(查中斷向量表(IVT) v按某種按某種規律規律存放各類中斷的存放各類中斷的中斷服務程序的入口地址中斷服務程序的入口地址(段和(段和偏移偏移中斷向量中斷向量 )的數據表稱為)的數據表稱為中斷向量表中斷向量表。 中斷向量表存放規律:中斷向量表存放規律: (1)表的地址位于內存的)表的地址位于內存的00000H003FFH,大小為,大小為1KB,共共256個中斷向量;個中斷向量; (2)每個中斷向量占用)每個中斷向量占用4 By
28、tes,低字為段內偏移,低字為段內偏移IP,高,高字為段基址字為段基址CS (3)按)按0255號順序依次放置各中斷向量;號順序依次放置各中斷向量; 根據中斷類型號獲得中斷服務程序入口的方法根據中斷類型號獲得中斷服務程序入口的方法: (n為為中斷中斷類型號類型號) 中斷向量在中斷向量在IVT中的存放地址(偏移地址)中的存放地址(偏移地址)4n 向向中斷向量表中斷向量表中寫入中斷向量,就是中中寫入中斷向量,就是中斷向量表的設置。斷向量表的設置。將中斷向量寫入中斷向量表有兩種方法。將中斷向量寫入中斷向量表有兩種方法。(1)使用使用INT 21H;(2)依據中斷向量表的存儲規律)依據中斷向量表的存儲
29、規律用傳送指令用傳送指令.中斷向量表的初始化問題和方法中斷向量表的初始化問題和方法(1)使用)使用INT 21H,向中斷向量表放置中斷向量,向中斷向量表放置中斷向量編程步驟編程步驟:AH中預置功能號,中預置功能號, AH=25H;AL中預置中斷類型碼;中預置中斷類型碼;DS:DX中預置中斷服務程序的入口地址;中預置中斷服務程序的入口地址; (DS內是段地址,內是段地址,DX內是偏移地址內是偏移地址)執行執行INT 21H 設中斷服務程序的入口地址標號為設中斷服務程序的入口地址標號為INTSUB,中,中斷類型碼為斷類型碼為40H, 編寫程序段設置中斷向量編寫程序段設置中斷向量。解解: PUSH
30、DS ;將;將DS入棧,保存入棧,保存DS MOV AH, 25H ;送功能號;送功能號 MOV AL, 40H ;送中斷類型碼;送中斷類型碼 MOV DX, OFFSET INTSUB ;取;取INTSUB的偏移地址的偏移地址 MOV AX,SEG INTSUB ;取;取INTSUB的段基址的段基址 MOV DS,AX ;段基址送;段基址送DS INT 21H ;系統功能調用;系統功能調用 POP DS ;恢復;恢復DS 例題例題 例題:例題: 中斷類型碼為中斷類型碼為48H的中斷處理子程序的的中斷處理子程序的名字為名字為int48h,編寫程序段將該中斷處理子,編寫程序段將該中斷處理子程序的
31、入口地址程序的入口地址CS:IP放入向量表。放入向量表。(2)用傳送指令將中斷服務程序的入)用傳送指令將中斷服務程序的入口地址放入向量表口地址放入向量表中斷向量表的初始化中斷向量表的初始化 CLI PUSH DS MOV AX,0 MOV DS,AX MOV SI,48H*4 MOV AX,OFFSET int48h MOV SI,AX MOV AX,SEG int48h MOV SI+2,AX POP DS STI4. 8086/8088 CPU的中斷響應過程的中斷響應過程 (系統自動完成)(系統自動完成)內部中斷響應過程內部中斷響應過程 無無INTA (中斷響應中斷響應)周期周期中斷類型碼
32、固定或由指令給出中斷類型碼固定或由指令給出響應過程主要步驟:響應過程主要步驟: PUSH FLAG;標志寄存器內容保護;標志寄存器內容保護 IF=0; 關中斷關中斷 PUSH CS; 保護斷點的段基地址保護斷點的段基地址 PUSH IP; 保護斷點的偏移地址保護斷點的偏移地址 自動獲取中斷類型碼自動獲取中斷類型碼,取中斷向量送入取中斷向量送入IP和和CS; 外部中斷響應過程外部中斷響應過程非屏蔽中斷:與內部中斷響應過程類似。非屏蔽中斷:與內部中斷響應過程類似。 可屏蔽中斷可屏蔽中斷 第一次第一次INTA中斷響應,通知中斷控制器中斷響應,通知中斷控制器PIC進行優先級排進行優先級排 隊判優處理;
33、隊判優處理; 第二次第二次INTA響應,通知中斷控制器響應,通知中斷控制器PIC把中斷類型碼放到把中斷類型碼放到 DB上,上,CPU讀入;讀入; PUSH FLAG; IF=0; PUSH CS; PUSH IP; 依據中斷控制器依據中斷控制器PIC送來的中斷類型碼送來的中斷類型碼,取中斷向量送入取中斷向量送入IP 和和CS;5. 中斷處理(中斷服務)中斷處理(中斷服務)中斷服務子程序要做的工作(編程人員做)中斷服務子程序要做的工作(編程人員做)(1)保護現場保護現場(PUSH) ;(2)開中斷開中斷(STI); (3)進行中斷處理進行中斷處理 (中斷服務的具體內容);(中斷服務的具體內容);
34、(4)恢復現場恢復現場(POP) ;(5)中斷返回中斷返回(IRET) ;8088系統中各中斷的優先級系統中各中斷的優先級v優先級從高到低順序如下:優先級從高到低順序如下:內部(除單步中斷)中斷內部(除單步中斷)中斷NMIINTR單步中斷單步中斷5.4、中斷控制器、中斷控制器8259A1、8259A基本構成與引腳信號基本構成與引腳信號2、8259A工作過程工作過程3、8259A的工作方式的工作方式4、8259A編程方法編程方法 IRR是一個是一個8位寄存器,用于鎖存所有從位寄存器,用于鎖存所有從IRi引腳輸入的中斷請引腳輸入的中斷請求信號。求信號。保存從保存從IR0IR7來的中斷請求信號,某位
35、來的中斷請求信號,某位=1表示對應的表示對應的IRi有中斷請求。有中斷請求。 中斷源中斷源數據總線緩沖器讀/寫控制電路級聯緩沖器/比較器控制電路中斷服務寄存器ISR中斷屏蔽寄存器IMR優先權判別器PR中斷請求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.中斷請求中斷請求寄存器寄存器IRR 1、8259A基本構成與引腳信號基本構成與引腳信號* * PR PR用于識別各中斷請求的優先權級別,并進行優先權管理。用于識別各中斷請求的優先權級別,并進行優先權管理。* * 若若IRRIRR有幾位被置位,且未被屏蔽,表明有多個中斷源同時申請中斷。有
36、幾位被置位,且未被屏蔽,表明有多個中斷源同時申請中斷。則由則由PRPR確定是否向確定是否向CPUCPU發出中斷請求,中斷響應時確定發出中斷請求,中斷響應時確定ISRISR的哪位應置位及的哪位應置位及把相應中斷的類型碼放到數據總線上把相應中斷的類型碼放到數據總線上 。優先權優先權判別器判別器PR 數據總線緩沖器讀/寫控制電路級聯緩沖器/比較器控制電路中斷服務寄存器ISR中斷屏蔽寄存器IMR優先權判別器PR中斷請求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.中斷源中斷源 *中斷服務寄存器中斷服務寄存器ISR為為8位寄存器,用于記錄已被位
37、寄存器,用于記錄已被CPU響響應的中斷。應的中斷。中斷服務中斷服務寄存器寄存器ISR 數據總線緩沖器讀/寫控制電路級聯緩沖器/比較器控制電路中斷服務寄存器ISR中斷屏蔽寄存器IMR優先權判別器PR中斷請求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.中斷源中斷源若若ISR中有多中有多個位被置位,個位被置位,是什么原因?是什么原因? *中斷屏蔽寄存器中斷屏蔽寄存器IMR也是也是8位寄存器,用于存放對中斷位寄存器,用于存放對中斷請求的屏蔽信息,其內容可編程設定。請求的屏蔽信息,其內容可編程設定。 *當當IMR中某位被置位,對應的中斷請求就
38、被屏蔽。中某位被置位,對應的中斷請求就被屏蔽。則則IRR對應的位雖被置位,但不能送出它的中斷請求信號給對應的位雖被置位,但不能送出它的中斷請求信號給CPU,由此實現對各中斷有選擇的屏蔽。,由此實現對各中斷有選擇的屏蔽。中斷屏蔽中斷屏蔽寄存器寄存器IMR 數據總線緩沖器讀/寫控制電路級聯緩沖器/比較器控制電路中斷服務寄存器ISR中斷屏蔽寄存器IMR優先權判別器PR中斷請求寄存器IRR.A0CAS0CAS1CAS2RDWRCSD7D0EN/SPINTINTAIR0IR7IR1.中斷源中斷源引腳功能引腳功能 地址線地址線A A0 0用以選擇用以選擇8259A8259A內部不同寄存器。內部不同寄存器。
39、* *在在80888088系統中,系統中,82598259的的A A0 0與與CPUCPU的的A A0 0相連,相連,82598259具有偶、奇兩個地址;具有偶、奇兩個地址;* *在在80868086系統中,系統中,82598259的的D D7 7DD0 0與系統數據線低與系統數據線低8 8位相連,為使位相連,為使CPUCPU通過通過D7D0D7D0與與82598259傳遞傳遞8 8位數據信息,所以位數據信息,所以82598259的的A A0 0應與應與8086 CPU8086 CPU的的A A1 1相連,相連,用用CPUCPU的的A A0 0 參與參與82598259的譯碼,的譯碼,8259
40、8259具有兩個偶地址。具有兩個偶地址。例例.8088CPU與單片中斷控制器與單片中斷控制器8259接口設計接口設計,要求要求8259在系統中的口地址是在系統中的口地址是84H,85H。例例 8086CPU與單片中斷控制器與單片中斷控制器8259接口設計,接口設計,要求要求8259在系統中的口地址在系統中的口地址84H,86H。引腳功能引腳功能 * *級聯線級聯線CASCAS2 2CASCAS0 0 在主從式中斷管理系統中,全部在主從式中斷管理系統中,全部8259A8259A的的CASCAS2 2CASCAS0 0與對應端相連。與對應端相連。 * *作為主片的作為主片的8259A8259A,其
41、,其CASCAS2 2CASCAS0 0為輸出線,在為輸出線,在CPUCPU響應中響應中斷時,用來輸出級聯設備編碼,選中對應的從片;斷時,用來輸出級聯設備編碼,選中對應的從片; * *作為從片的作為從片的8259A8259A,其,其CASCAS2 2CASCAS0 0為輸入線,接收來自主片為輸入線,接收來自主片的設備編碼。的設備編碼。8259AVCCGNDIR0IR7(INTR) INT(CPU數據總D0D7INTACSCAS0CAS3SP/EN(CPU)WR(CPU)RD(8088A0)A0級聯線級聯線 每一片每一片8259A可管理可管理8級中斷,通過級聯,級中斷,通過級聯, 最多可以管理最
42、多可以管理64級中斷。級中斷。2、8259A工作過程工作過程 8259A對中斷請求的處理過程如下:對中斷請求的處理過程如下:(1)當某)當某IRi有效時,有效時,IRR相應位置相應位置1;(2)若有效的)若有效的IRi未被屏蔽,則向未被屏蔽,則向CPU發出中斷請發出中斷請求求INT;(3)檢測到第)檢測到第1個個INTA信號后,信號后,置置ISRi=1,IRRi=0 ;(4)檢測到第)檢測到第2個個INTA信號后,信號后,把中斷類型碼放把中斷類型碼放到到DB上;上;(5)若工作在)若工作在AEOI(自動中斷結束方式)方式,自動中斷結束方式)方式,在第在第2個個INTA結束時,使結束時,使ISR
43、i復位;否則需在中復位;否則需在中斷服務程序結束斷服務程序結束IRET之前發出之前發出EOI命令使命令使ISRi復復位。位。 8259A具有十分靈活的運行方式,可以通過編具有十分靈活的運行方式,可以通過編程設定工作方式,滿足用戶對中斷管理的不同要求。程設定工作方式,滿足用戶對中斷管理的不同要求。 8259A在開始使用前,首先寫入在開始使用前,首先寫入 初始化命令字初始化命令字,使其處,使其處于預定的初始狀態;初始化命令字設定后,在整個系統工作過程于預定的初始狀態;初始化命令字設定后,在整個系統工作過程中保持不變;中保持不變; 操作命令字操作命令字用來控制用來控制8259A執行不同的操作方式。初
44、始化執行不同的操作方式。初始化命令字設置后,在命令字設置后,在8259A工作期間的任何時刻都可設置操作命工作期間的任何時刻都可設置操作命令字,且允許重置操作命令字動態地改變令字,且允許重置操作命令字動態地改變8259A的操作方式。的操作方式。 3、8259A編程方法編程方法初始化命令字初始化命令字初始化命令字有初始化命令字有4個個 : ICW1 (寫入偶地址(寫入偶地址 低地址)低地址) ICW2 (寫入奇地址(寫入奇地址 高地址)高地址) ICW3 (寫入奇地址(寫入奇地址 高地址)高地址) ICW4 (寫入奇地址(寫入奇地址 高地址)高地址)8259的初始化流程如圖的初始化流程如圖注意次序
45、不可顛倒!且每個初注意次序不可顛倒!且每個初始化命令字必須寫入規定的始化命令字必須寫入規定的8259地址口。地址口。 寫寫ICW1寫寫ICW2級連?級連?寫寫ICW3需需ICW4?寫寫ICW4NNYY 注意:注意: 寫寫ICW1時,時,8259外部外部8個中斷請求輸入均恢復為開放狀態,且個中斷請求輸入均恢復為開放狀態,且優先級為優先級為IR0最高,其次最高,其次IR1,IR7最低。最低。 A0是指是指8259地址線地址線A0,A0=0表示輸入表示輸入8259A低地址端口;低地址端口;ICW2格式格式 ICW2用于設置用于設置IR0IR7中斷類型碼。中斷類型碼。例:若例:若ICW2命令字為命令字
46、為48H,則,則IR0的中斷向量碼為的中斷向量碼為48H,IR7的中斷向量碼為的中斷向量碼為4FH,等等。,等等。 注意:注意: A01,表示,表示ICW2輸入輸入8259A高地址端口。高地址端口。1A0T7T6T5T4T3XXX中斷類型碼的高 5位由程序設定中斷類型碼的低 3位,自動填入 IR0 0 0 0 IR1 0 0 1 IR2 0 1 0 IR3 0 1 1 IR4 1 0 0 IR5 1 0 1 IR6 1 1 0 IR7 1 1 1 D7 D6 D5 D4 D3 D2 D1 D0表示IC W 2 必須寫入奇地 址T7-T3:8088/8086要求用戶定義的中斷類型碼的高要求用戶定
47、義的中斷類型碼的高5位位例例 IBM PC/XT機與機與8259接口及中斷源,接口及中斷源,8259端口地址為端口地址為20H、21H,中斷源類型碼為中斷源類型碼為08H-0FH。ICW3格式ICW3是在級聯方式下設置的初始化命令字。是在級聯方式下設置的初始化命令字。應根據級聯硬件電路的實際連接情況分別對主片和從片設置初始化命令字應根據級聯硬件電路的實際連接情況分別對主片和從片設置初始化命令字ICW3。1A000000ID2ID1ID0從片標識符 D7 D6 D5 D4 D3 D2 D1 D0從片從片1A0S7S6S5S4S3S2S1S0Si=0:IRi上無從片Si=1:IRi上有從片 D7
48、D6 D5 D4 D3 D2 D1 D0主片主片例如,主片的例如,主片的IR4與從片的與從片的INT線連接,則主片的線連接,則主片的ICW3=10H,從片的,從片的ICW3=04H。再例再例 設主片設主片8259地址為地址為20H、21H,從片從片8259地址為地址為80H、81H,根據級聯硬件電路具體連接,分別確定主、從片,根據級聯硬件電路具體連接,分別確定主、從片ICW3。 ICW4格式格式000SFNMBUFM/SAEOI PM0:8080/8085系統1:8086/8088系統0:非自動EOI1:自動EOI0:從片(D3=1)1:主片(D3=1)0:非緩沖1:緩沖0:非特殊全嵌套1:特
49、殊全嵌套 D7 D6 D5 D4 D3 D2 D1 D01A0vSFNM: 嵌套方式嵌套方式1 特殊全嵌套方特殊全嵌套方式,在使用多片式,在使用多片8259A時,主片即選時,主片即選用特殊全嵌套方式。用特殊全嵌套方式。0 一般全嵌套方一般全嵌套方式式vAEOI: 中斷結束方式中斷結束方式1 自動自動EOI方式方式0 非自動非自動EOI方式方式BUF M/S 1 1 緩沖方式緩沖方式/主主PIC 1 0 緩沖方式緩沖方式/從從PIC 0 x 非緩沖方式非緩沖方式/正常正常自動自動EOI方式方式在第在第2個個INTA響應周期得到服務的響應周期得到服務的ISRi自動自動清零;清零;非自動非自動EOI
50、方式方式在中斷服務程序結束返回之前,通過發中在中斷服務程序結束返回之前,通過發中斷結束命令使斷結束命令使ISRi清零;清零;注:初始化若不寫注:初始化若不寫ICW4,8259為非自動為非自動EOI方式。方式。緩沖方式緩沖方式硬件電路中硬件電路中SP/EN引腳作為引腳作為8259數據線上緩沖器數據線上緩沖器驅動信號使用時。驅動信號使用時。非緩沖方式非緩沖方式硬件電路中主片硬件電路中主片8259SP/EN引腳接引腳接+5V,從片從片8259SP/EN接地。接地。特殊全嵌套方式特殊全嵌套方式同級及更高級中斷源允許中斷請求。同級及更高級中斷源允許中斷請求。一般全嵌套方式一般全嵌套方式同級及更低級中斷源
51、不允許中斷請求。同級及更低級中斷源不允許中斷請求。例題例題解:其初始化程序如下解:其初始化程序如下:MOV AL,13H;設置;設置ICW1=0001 0 x11,即采用邊沿,即采用邊沿 ;觸發,單片,需要;觸發,單片,需要ICW4OUT 80H,AL;ICW1寫入地址寫入地址80H(A0=0)MOV AL,18H;ICW2=0001 1000,確定,確定ICW2的高的高5位位OUT 81H,AL;ICW2寫入地址寫入地址81H(A0 =1)MOV AL,0DH;ICW4=0000 1101,即普通嵌套方式,即普通嵌套方式, ;緩沖方式,非自動中斷結束方式,用;緩沖方式,非自動中斷結束方式,用
52、 ;于;于8086/8088OUT 81H,AL;ICW4寫入地址寫入地址81H(A0 =1) 單片單片8259A的端口地址是的端口地址是80H和和81H,采用邊沿觸發,普,采用邊沿觸發,普通嵌套方式,緩沖方式,非自動中斷結束方式,需要通嵌套方式,緩沖方式,非自動中斷結束方式,需要ICW4,中斷類型碼是中斷類型碼是18H1FH,請對,請對8259A進行初始化。進行初始化。例例 設主片設主片8259地址為地址為20H、21H,從片從片8259地址為地址為80H、 81H。 主片主片8259四個初始化字分別為:四個初始化字分別為:ICW1=00010 x01BICW2=40HICW3=04HICW
53、4=00010001B從片從片8259四個初始化字分別為:四個初始化字分別為:ICW1=00010 x01BICW2=48HICW3=02HICW4=00000001B編程對編程對8259級聯系統初始化級聯系統初始化,并說明主從片各初始化內容。并說明主從片各初始化內容。操作(工作)命令字操作(工作)命令字 向向8259A寫入初始化命令字后,寫入初始化命令字后, 自動進入操作命令狀態,在自動進入操作命令狀態,在任何時刻都可以設置操作命令字,選擇其不同的操作方式。任何時刻都可以設置操作命令字,選擇其不同的操作方式。 操作命令字用于規定中斷屏蔽、中斷結束、優先權循環和中操作命令字用于規定中斷屏蔽、中
54、斷結束、優先權循環和中斷狀態的讀出和查詢等等。斷狀態的讀出和查詢等等。 操作命令字有三個,根據需要設置。操作命令字有三個,根據需要設置。向向8259發操作命令字沒發操作命令字沒有順序要求,但必須寫入規定口地址。有順序要求,但必須寫入規定口地址。 OCW1 (寫入奇地址(寫入奇地址高地址)高地址) OCW2 (寫入偶地址(寫入偶地址低地址)低地址) OCW3 (寫入偶地址(寫入偶地址低地址)低地址) OCW1OCW1的功能用來動態地設置中斷源的屏蔽狀態。的功能用來動態地設置中斷源的屏蔽狀態。1 D7 D6 D5 D4 D3 D2 D1 D0A0M7M6M5M4M3M2M1M0Mi=0:開放IRi
55、中斷請求Mi=1:禁止IRi中斷請求例例 OCW1OCW133H33H 表示表示IRIR5 5、 IRIR4 4、 IRIR1 1、 IRIR0 0引腳上的中引腳上的中斷被屏蔽,其余中斷請求允許;斷被屏蔽,其余中斷請求允許;OCW2中斷結束和優先級循環中斷結束和優先級循環 L2L0:指定最低優先級編碼;指定最低優先級編碼;R: 指定優先級是否自動循環;指定優先級是否自動循環;SL: 指定指定L2L0是否有效;是否有效;EOI: 結束中斷命令;結束中斷命令;OCW2可以拆分出若干操作命令。可以拆分出若干操作命令。 A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0
56、L2 L1 L0OCW2可以拆分為如下操作命令: R SL EOI 0 0 1 非指定非指定EOI 命令命令(NSEOI) 0 1 1 指定指定EOI 命令命令(SEOI),按,按L2-L0編碼復位編碼復位ISR i 1 0 1 NSEOI 命令,優先級自動循環命令,優先級自動循環 1 0 0 設置優先級自動循環設置優先級自動循環 0 0 0 取消優先級自動循環取消優先級自動循環(固定優先級固定優先級) 1 1 1 SEOI 命令,按命令,按L2-L0編碼循環優先級編碼循環優先級(L2-L0設設 為最低優先級為最低優先級) 1 1 0 按按L2-L0編碼循環優先級編碼循環優先級(L2-L0設為最低優先設為最低優先 級級) 例例. 對對8259寫操作命令字,使寫操作命令字,使IR5優先級最低,優先級最低,不循環。不循環。 OCW2=01000101B例例.對對8259寫操作命令字,清零寫操作命令字,清零ISR5且使且使IR5優優先級最低,優先級循環。先級最低,優先級循環。 OCW2=11100101B例例.對對8259寫操作命令字,清零寫操作命令字,清零ISR5。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專科醫生調考練習試題及答案
- 藥理學復習試題含答案
- 融資居間服務合同(9篇)
- 產品銷售代理合同(28篇)
- JAVA方法重載試題及答案
- 數據庫考試實施方案試題及答案
- 電視節目制作合同(4篇)
- 店面租賃合同匯編(18篇)2
- 汽車維修技術發動機系統試題集萃
- 國際商務禮儀與文化測試題集
- 湖北省武漢市武昌區2025屆高三5月質量檢測考試語文及參考答案
- 核電站鋼板混凝土結構技術標準
- 《兒童健康保障課件:理性選擇與購買策略》
- 中國多聚甲醛行業發展分析及投資價值預測研究報告2025-2028版
- 房建工程總承包EPC項目技術標(投標方案)(技術標)
- 贛州城投招聘試題及答案
- 2025屆海南中考地理高頻考點模擬檢測試題(一模)含解析
- 輸血流程培訓試題
- 企業安全生產知識題庫
- 2025-2030方塊地毯行業市場現狀供需分析及重點企業投資評估規劃分析研究報告
- 鋼筋混凝土蓄水池施工方案
評論
0/150
提交評論