微型計算機原理及接口技術第8章-86序列微型計算機的中斷系統課件_第1頁
微型計算機原理及接口技術第8章-86序列微型計算機的中斷系統課件_第2頁
微型計算機原理及接口技術第8章-86序列微型計算機的中斷系統課件_第3頁
微型計算機原理及接口技術第8章-86序列微型計算機的中斷系統課件_第4頁
微型計算機原理及接口技術第8章-86序列微型計算機的中斷系統課件_第5頁
已閱讀5頁,還剩66頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 8 章 86系列微型計算機的中斷系統 本章主要內容8.1 中斷的基本概念 8.2 中斷的處理 8.3 8086/8088中斷系統 8.4 可編程中斷控制器8259A 8.1.1 中斷的定義和作用8.1 中斷的基本概述 定義:指當CPU正在處理某件事情的時候,突然發生的某一外部事件(如一個電平的變化,一個脈沖沿的發生或定時器的計數溢出等)請求CPU迅速去處理,此時若條件允許,CPU暫時停止當前的工作,轉去處理所發生的事情。處理完該事件以后,再回到原來被終止的地方(斷點),繼續原來的工作,這樣一個完整的過程稱為中斷 實現中斷功能的部件稱為中斷系統。8.1.1 中斷的定義和作用產生中斷的事件源稱

2、為中斷源。 外部設備中斷源控制對象中斷源故障中斷源定時脈沖中斷源中斷系統功能:實現中斷響應、中斷服務及中斷返回實現中斷優先權排隊 實現中斷嵌套 作用:提高CPU的工作效率 提高實時數據的處理時效 可以實現多任務多用戶管理中斷過程: 中斷申請 中斷響應 中斷處理 中斷返回8.1.1 中斷的定義和作用CPU響應中斷的條件: (1)CPU開放中斷,即CPU工作于中斷方式 (2)目前申請中斷的優先級別最高 (3)當前沒有發生復位(RESET)、保持(HOLD)和非屏蔽中斷請求(NMI)。 (4)若中斷請求同時滿足條件13,CPU并不立即響應,而只有等到CPU將當前指令運行結束后,才能響應中斷。(5)若

3、當前執行的指令是開中斷指令(STI)和中斷返回指令(IRET),則他們執行完后再執行一條指令,CPU才能響應INTR請求。 8.1.2 中斷響應8.1 中斷的基本概述 在響應過程中,中斷系統將自動完成以下幾件事:(1)關中斷。 (2)保存斷點。 (3)形成中斷入口地址。 8.1.2 中斷響應關閉中斷的原因:一是對于電平觸發的中斷,當CPU響應中斷后,如果不關中斷,則本次中斷有可能會觸發新的中斷;其次中斷是CPU從正在執行的主程序轉向執行中斷服務程序,執行完畢后再回到主程序的過程,所以CPU響應中斷后,要保護斷點和保護現場,在這個過程中,是不允許被其他外設的中斷請求打斷的。 問題:1)當多個中斷

4、源同時向CPU發出中斷請求的情況。這時,CPU首先響應哪一個中斷請求并執行其中斷服務程序 ?2)當CPU已在中斷處理狀態時,如果另一個外設又發出了中斷請求信號,這時CPU是否中斷當前的中斷處理程序而接受更需要緊急處理的中斷 ?8.1.3 中斷的優先級8.1 中斷的基本概述 中斷的優先權 中斷優先級分配方法:軟件方案 硬件方案 軟硬件結合方案 8.1.3 中斷的優先級1. 軟件方案 中斷優先權由查詢順序決定,先查詢的中斷源具有高的優先權 鏈形電路:利用外設在系統中的物理位置來決定其中斷優先權的 8.1.3 中斷的優先級2. 硬件方案 編碼電路 8.1.3 中斷的優先級特點:邏輯簡單,編程方便,但

5、是優先級一旦固定很難改變。 通過可編程中斷控制器(如8259A)實現對中斷優先級的管理。8.1.3 中斷的優先級2. 軟硬件結合方案 特點:具有硬件方案的邏輯簡單、響應中斷快速等優點,又可以通過軟件控制命令字和操作命令字對中斷優先級進行靈活設置。8.1.4 中斷嵌套8.1 中斷的基本概述 在某一時刻,CPU正在執行某個中斷服務程序時,若CPU的中斷是開放的,如果有級別更高的中斷源請求中斷時,CPU可以把正在執行的中斷服務程序暫停下來而響應和處理中斷優先權更高中斷源的中斷請求,等到處理完后,再返回原來中斷服務程序的斷點處繼續執行 條件:CPU開中斷有級別更高的中斷源請求一旦CPU響應中斷,就可轉

6、入中斷服務程序之中,中斷服務程序的一般結構如下: 8.2 中斷的處理PUSH AX ;保護現場.PUSH BX STI ;開中斷 ;中斷處理CLI ;關中斷POP BX ;恢復現場.POP AX ;STI ;開中斷IRET ;中斷返回(1)保護現場 對象:一些寄存器這些寄存器在主程序和中斷服務程序都使用。由用戶保護寄存器的這段程序稱為保護現場,實質上是執行PUSH指令將需要保護的寄存器內容推入堆棧。 8.2 中斷的處理 (2)開中斷CPU接收并響應一個中斷后自動關閉中斷。如何要實現中斷嵌套,需要開中斷。 (3)中斷服務中斷服務程序的核心就是對某些情況進行處理,如傳輸數據、處理掉電緊急保護和各種

7、報警狀態等。(4)關中斷 呼應前面開中斷,以便下面的恢復現場的工作順利而不被打斷。 8.2 中斷的處理 (5)恢復現場 在返回主程序前要將用戶保護的寄存器內容從堆棧中彈出,以便返回主程序后繼續正確執行主程序。(6)開中斷并返回 此處的開中斷對應CPU響應中斷后自動關閉中斷。在返回主程序前,也就是中斷服務程序的第二條指令往往是開中斷指令。8.3 8086/8088中斷系統中斷特點: 矢量型中斷,有256個中斷矢量號(設備號) (0255)中斷分類非屏蔽中斷可屏蔽中斷NMI引入,1個,不受IF的屏蔽INTR引入,多個,受IF的屏蔽CPU根據軟件中的某條指令或者軟件對標志寄存器中的設置而產生的硬件中

8、斷軟件中斷(外部中斷)(內部中斷)8.3 8086/8088中斷系統軟件中斷硬件中斷8.3.1 中斷矢量和中斷矢量表8.3 8086/8088中斷系統中斷矢量:是中斷處理子程序的入口地址,每個中斷類型對應一個中斷矢量中斷中斷矢量號代碼 (0255) 中斷服務程序 一一對應一一對應中斷矢量表:在內存中,開辟一個區域存放中斷服務程序的入口地址的表。對于8086,這個區域的首地址00000H(固定)問題:已知中斷矢量號代碼,怎樣找到中斷服務程序的入口地址?8.3.1 中斷矢量和中斷矢量表8.3.1 中斷矢量和中斷矢量表 中斷矢量表范圍: 00000H 003FFH(1KB) 每一個中斷服務程序的入口

9、地址占四個字節單元(2564=1024B),高字節放的是段地址(CS),低字節放的是偏移地址(IP) 每個中斷源對應一個中斷服務程序,每一個中斷服務程序都有固定的入口地址中斷矢量號N中斷矢量表的地址中斷矢量表中斷服務程序的入口 地址(CS,IP) 48.3.1 中斷矢量和中斷矢量表例8-1: 鍵盤中斷的矢量號為09H,它的中斷服務程序入口地址為0BA9H:0125H,求它在中斷矢量表中的地址及相應單元內容 解:鍵盤中斷對應的中斷矢量表位于0000:0024H (09H4=24H)開始的4單元 這4個單元的內容見表:又稱為軟件中斷,分為專用中斷和指令中斷兩部分。 8.3.2 內部中斷8.3 80

10、86/8088中斷系統1. 專用中斷(1) 0號中斷這是除法出錯中斷。在執行除法指令時,若發現除數為0或商超出了寄存器所能表示的范圍(雙字/字的范圍為-32 768 +65 535;字/字節的范圍為-128 +255)時,CPU會立即產生一個矢量號為00H的0型中斷,轉入相應的除法出錯處理程序。由于0號中斷沒有相應的中斷指令,也不是由外部硬件引起的,通常稱為“自陷”中斷。8.3.2 內部中斷(2) 1號中斷當將CPU內標志寄存器的陷阱標志TF位置1后,CPU每執行完一條指令,會產生1號矢量中斷。常被用來作為調試程序的單步操作手段,所以又稱為單步中斷或陷阱中斷。(3) 3號中斷CPU執行INT

11、3而產生的中斷,此指令是單字節指令。3號中斷和單步中斷一樣,也是8086提供的一種調試手段。它用于設置程序中的斷點,故稱為斷點中斷,用INT或INT 3指令表示。INT n指令的矢量號就是給定的n。 INT n主要是用于系統定義或用戶自定義的軟件中斷。CPU執行INT n指令,產生矢量地址號為n的中斷,稱為n號矢量中斷。 8.3.2 內部中斷(4) 4號中斷當CPU內部溢出標志位OF被置1,執行溢出中斷指令INTO后,會產生4號中斷。若標志OF為0,則此指令不起作用。INTO指令為程序員提供了一種算術運算溢出時的處理手段。INTO指令通常安排在算術指令之后,以便在運算過程中,一旦產生溢出錯誤能

12、及時進行處理。 2. 指令中斷INT n內部中斷特點:8.3.2 內部中斷中斷矢量號由CPU內部自動提供,不需要執行中斷響應總線周期去讀取矢量號 除單步中斷外,所有內部中斷都不可以用軟件屏蔽,即都不能通過執行CLI指令使IF清0來禁止對它們的響應 除單步中斷外,所有內部中斷的優先級別均高于外部中斷 軟中斷不具有隨機性 8.3.3 外部中斷8.3 8086/8088中斷系統1. 非屏蔽中斷中斷請求NMI特點:對NMI請求的響應不受中斷標志位IF的控制中斷矢量號為2NMI中斷優先級別高于可屏蔽中斷相應過程:將矢量號乘以4,得到中斷矢量地址0008H;把CPU的標志寄存器內容壓入堆棧,保護各標志位狀

13、態;清除IF和TF標志,屏蔽INTR中斷和單步中斷;保存斷點,即把斷點處的IP和CS內容壓入堆棧(先壓CS,再壓入IP);從中斷矢量表中取中斷服務程序的入口地址,分別送至CS和IP中;按CS和IP的地址執行NMI中斷服務程序;當執行到中斷返回指令IRET,則恢復斷點處的IP、CS值,恢復標志寄存器內容,于是CPU就返回到中斷斷點處繼續執行原來的程序。 8.3.3 外部中斷用途:用于處理系統的重大故障,如掉電事故8.3.3 外部中斷2. 可屏蔽中斷特點:對INTR請求的響應受中斷標志位IF的控制中斷矢量號為不固定,中斷優先級及屏蔽狀態有中斷控制器8259A控制中斷響應需要兩個總線周期中斷請求中斷

14、響應INTRINTA發送兩個負脈沖信號,第一個通知外設,它發生的中斷請求已被響應,第二個通知中斷源送出中斷矢量號8.3.3 外部中斷8259A8.3.3 外部中斷CPU響應外部中斷、并進入中斷子程序的過程中,要依次做幾件事:(1)從數據總線上讀取中斷矢量號,將其存入內部暫存器(2)將標志寄存器FR的值進棧(3)把FR的中斷允許標志IF和單步標志TF清零(4)將斷點保護到堆棧中 斷點:是指響應中斷時,主程序中當前指令下面的一條指令的地址,包括CS和IP的值(5)依據獲得的中斷矢量號,到內存中斷矢量表中找到中斷矢量,再依據該中斷矢量轉入相應的中斷服務程序8.3.4 中斷矢量表的初始化8.3 808

15、6/8088中斷系統 中斷矢量表并不常駐內存原因PC系列各機型啟動過程中,首先由ROM BIOS自測試代碼對ROM BIOS控制的中斷矢量進行初始化裝入8086/8088系統:裝入01FH共32個中斷矢量80286以上CPU系統:裝入077H共120個中斷矢量若用戶開發的應用程序采用INT N形式調用,則要將中斷服務程序入口地址提前存入中斷矢量表中所選定的單元中方法:用串指令 用DOS系統功能調用 直接裝入法 8.3.4 中斷矢量表的初始化1. 用串指令串指令STOSW將AX寄存器中的內容寫入附加段的DI所指向的目標偏移地址單元中,只要將ES設定為0,DI中設定為n4,使用STOSW指令即可完

16、成中斷服務程序首地址的裝入。 .CLI;關中斷MOV AX ,0 MOV ES , AX ;置附加段基地址為0MOW DI , n4 ;置附加段偏移地址到DIMOV AX ,OFFSET INT_VCE ;置中斷程序的首地址的偏移 ;量到AXCLDSTOSWMOV AX ,SEG INT_VCE ;置中斷程序首地址的段基 ;地址到AXSTOSWSTI ;開中斷.8.3.4 中斷矢量表的初始化利用軟件中斷指令“INT 21H”以及專門為更新中斷服務程序地址的25H號功能來設置中斷地址有兩個非常顯著的優點:DOS會采取措施用最安全可行的方法來存放中斷矢量。使用時,范圍更廣泛。 8.3.4 中斷矢量

17、表的初始化2. 用DOS系統功能調用 使用25H功能時要求:AL中存放中斷矢量號;DS中存放中斷服務程序所在段的基地址;DX 中存放中斷服務程序的首地址與其所在段的首地址之間的偏移量(偏移地址)。例如,將中斷矢量號為60H的中斷地址置入。PUSH DSMOV DX,SEG INT60H ;段地址送DSMOV DS, DXMOV DX,OFFSET INT60H ;偏移地址送DXMOV AL,60H ;中斷矢量號送ALMOV AH,25HINT 21HPOP DS 8.3.4 中斷矢量表的初始化 若的外設的中斷矢量號為6BH,則此中斷矢量號對應的中斷矢量表地址為001ACH開始的4個存儲單元。設

18、中斷服務程序所在段的基地址是1000H,偏移地址為2000H,可用傳送指令將已知的中斷服務程序首地址置入中斷矢量表中。 8.3.4 中斷矢量表的初始化3. 直接裝入法 MOV AX,0MOV DS,AX ;設置數據段的段基地址為0MOV AX,2000HMOV WORD PTR01ACH,AX ;對偏移地址為01ACH單元 ;送雙字MOV AX,1000H MOV WORD PTR01ACH+28.4 可編程中斷控制器8259A功能: 在有多個中斷源系統中,協助CPU實現對外部中斷的管理,對它們進行優先級排隊后向CPU發出中斷請求信號特點:單片8259A能管理8級中斷。若采用級聯工作方式,可以

19、用9片8259A構成64級主從式中斷系統具有中斷判優邏輯功能,且對每一級中斷都可以屏蔽或允許中斷響應后,能將預置的中斷類型碼自動提供給CPU8259A通過編程可以工作在多種不同的方式,從而能方便的滿足多種類型微機中斷系統的需要8.4.1 8259A內部結構8.4 可編程中斷控制器8259A8.4.1 8259A內部結構數據總線緩沖器:與DB掛接(低8位),傳送控制字狀態信息,中斷向量。有了緩沖器,可直接掛接在總線上,沒有緩沖器的設備,不能直接掛接在總線上讀/寫控制邏輯:接收CPU 的讀/寫控制命令和片選控制信息 RD: 由IN指令產生,實現讀8259A(內部寄存器) WR:由OUT指令產生,實

20、現寫8259A(命令字) A0:地址碼,選擇內部控制寄存器 A0=0:選擇內部偶地址 A0=1:選擇內部奇地址 CS:片選信號,凡是掛總線上的芯片都需分配一個來自于系統譯碼電路的選通信號級聯緩沖器/比較器:用于多8259A系統,也稱緩沖方式SP/EN:雙功能信號,用于級聯控制緩沖方式時,EN=0,表示允許8259A通過緩沖存儲器輸出 EN=1,表示CPU寫8259A非緩沖方式時,SP表示主從關系,SP=1,表示主片,SP=0表示從片中斷請求觸發器(IRR): 8位寄存器,用來存放由外部輸入的中斷申請信號IR0IR7 。當某一個IRi端呈現高電平時,該寄存器的相應位置1,顯然,最多有8個中斷請求

21、信號同時進入IR0IR7端,則IRR將被置全“1”。至于被置“1”的請求能否進入IRR的下一級判優電路還取決于中斷屏蔽寄存器IMR中相應位的狀態 8.4.1 8259A內部結構8.4.1 8259A內部結構中斷服務寄存器(ISR): 8位寄存器,用來存放或記錄正在服務中的所有中斷請求(如在多重嵌套時)。當某一級中斷請求被響應,則ISR中相應位被置“1”,CPU執行它的中斷服務程序期間,一直保持到該級中斷處理過程結束為止。在多重中斷時,ISR中可能有多位同時被置“1”,ISR可同時記錄多個中斷請求 中斷屏蔽寄存器(IMR): 8位寄存器,用來存放對各級中斷請求的屏蔽信息。由CPU設置,以決定某個

22、中斷源是否被屏蔽,當該寄存器中某一位置“1”時,表示禁止該中斷請求進入系統。通過IMR寄存器可實現對各級中斷的有選擇的屏蔽8.4.1 8259A內部結構中斷優先級排隊電路(PR):用來判別已進入IRR中的各中斷請求的優先級別。當有多個中斷請求同時產生并經IMR允許進入系統后,先由PR電路判定當前哪一個中斷請求具有最高優先級,然后由系統首先響應這一級中斷,并轉去執行相應的中斷服務程序。當出現多重中斷時,由PR判定是否允許所出現的新的請求去打斷正在處理的中斷服務而被優先處理。一般的處理原則是允許高級中斷打斷低中斷,反之不行 控制邏輯:依據中斷請求寄存器IRR的位置情況和優先級排隊電路PR的判定結果

23、,向8259A內部其他部件發出控制信號,并向CPU發出中斷請求信號INT和接收來自CPU的中斷響應信號INTA,控制8259A進入中斷服務狀態8.4.2 8259A的引腳功能8.4 可編程中斷控制器8259A8.4.3 8259A的工作原理8.4 可編程中斷控制器8259A1. 8259A中斷控制過程 8.4.3 8259A的工作原理(1)8259A接收外部中斷,IRR有8位,對IR0IR7,IRR接收來自某一引腳的中斷請求后,對應位置1,鎖存請求(2)邏輯電路根據IMR中的對應位是否屏蔽決定是否讓其進入優先級排隊電路。IMR中對應位為0,則允許進入,若對應位為1,則封鎖(3)中斷優先級排隊電

24、路把新進入的中斷請求和當前正在進行的以及排隊等待的進行重新排隊,決定最高優先級(4)ISR寄存器存放的是當前進行的中斷服務的標志,如果新來的優先級足夠高,則8259A會通過邏輯電路使輸出端INT向CPU發中斷請求。此時若IF=1,則CPU在執行完當前指令后,就可以響應中斷8.4.3 8259A的工作原理對8086CPU而言,響應中斷申請后,向8259A回送兩個負脈沖INTA第一個INTA到達時,8259A做3件事: IRR鎖存功能失效,不接受任何申請 使ISR相應位置位,提供判優依據 使IRR清零第二個INTA到達時,8259A做3件事: 恢復IRR功能 將中斷類型號送上數據總線的D7D0,傳

25、給CPU 如果方式控制字(ICW4),自動中斷結束位為1,那么在第二個脈沖結束時,8259A會將第一個INTA脈沖到來時設置的ISR清02. 中斷請求觸發方式 8.4.3 8259A的工作原理注意:電平觸發方式中,中斷請求的電平信號持續時間不能太長,否則出現重復中斷現象;也不能太短,否則出現中斷請求丟失現象邊沿觸發方式中,不會出現重復中斷現象或中斷請求丟失現象電平觸發方式邊沿觸發方式高電平有效上升沿有效8.4.3 8259A的工作原理3. 中斷矢量號的設置中斷類型碼肯定是連續的,它們在中斷類型表中的位置取決于D7D3 位的狀態D7D6D5D4D3D2D1D0與用戶選擇類型碼有關,選擇系統沒有占

26、用的0 0 0 IR00 0 1 IR10 1 0 IR20 1 1 IR31 0 0 IR41 0 1 IR51 1 0 IR61 1 1 IR7例8-2:D7D3=01000 則中斷類型碼將40H47H,該控制字由指令送到8259A,當CPU響應中斷時,由第二個INTA信號將它取走,送給CPU,取得中斷服務程序入口地址8.4.3 8259A的工作原理4. 中斷結束方式(1)普通EOI方式 當任何一級的中斷服務結束時,CPU執行一段中斷結束程序,給8259A回送一個EOI結束命令,將ISR中當前最高級別的中斷標志清0注:該方式只有當前結束的中斷過程是所有申請中斷標志中級別最高時,才使用這種方

27、式。如果在中斷服務程序中,曾經修改過中斷級別,則決不能采用這種方式普通EOI方式特殊EOI方式自動EOI方式8.4.3 8259A的工作原理(2)特殊EOI方式當中斷服務程序結束時,CPU給8259A回送EOI命令的同時,將當前結束的中斷級別也會送給8259A。8259A可以將ISR中指定位清0。該方式可以在任何情況下使用 (3)自動EOI方式特點:中斷服務程序中不用程序結束,只要執行IRET指 令即可,CPU響應中斷時就將對應的ISR清“0”。 缺點:任何一級中斷在執行中斷服務程序期間,在8259中沒有任何標記,如果出現了新的中斷不管級別高低,只要IF=1,就能響應,造成“重復嵌套”現象的發

28、生 8.4.3 8259A的工作原理5. 8259A的優先級管理方式中斷優先級確定后,一般的處理原則: 高級中斷打斷低級中斷而被優先處理,禁止低級打斷高級或同級中斷相互打斷中斷屏蔽方式完全嵌套方式自動循環方式特殊完全嵌套方式(自學)8.4.3 8259A的工作原理(1)完全嵌套方式系統復位后自動進入的一種默認的基本方式,8259A的8個中斷源在該方式下自動將IR0設置為最高級,IR7級別最低。要求在中斷服務程序結束之前,執行一段程序,將要結束的中斷請求的ISR相應位清“0”,以便響應下一級的中斷請求。CPU響應中斷時,要占用兩個總線周期(2個INTA信號)并且進行斷點(CS:IP,4字節)和現

29、場(FR, 2字節以及其它資源)保護,占用大量的棧空間在中斷嵌套的過程中,CPU每響應一次中斷進入中斷服務程序后,執行一條STI指令,將IF置“1”,否則高級中斷將無法進入系統8.4.3 8259A的工作原理任何一級中斷處理完畢,CPU應向8259A回送EOI結束命令,以便8259A將ISR寄存器中的相應位清“0”,標志級中斷結束普通EOI方式特殊EOI方式自動EOI方式(2)自動循環方式特點:改變中斷請求優先級別基本思想:任何一級中斷處理完,它的優先級別就被改為最低級,而將最高級賦給原來比他們低一級的中斷請求8.4.3 8259A的工作原理 普通EOI循環方式 當任何一級中斷被處理完后,CP

30、U給8259A回送普通EOI命令,8259A接收到這一命令后,將ISR寄存器中優先級最高的位清“0”,并賦給它最低優先級,而將最高級賦給它的下一級普通EOI循環方式自動EOI循環方式特殊EOI循環方式 自動EOI循環方式 任何一級中斷響應后,在中斷響應總線周期中,由第二個中斷響應信號INTA的后沿自動將ISR寄存器中相應位清“0”,并立即改變各級中斷的優先級別。改變方案與普通EOI循環方式相同(重復嵌套!)8.4.3 8259A的工作原理 特殊EOI循環方式 利用置位優先權指令對任何一個中斷源(IRi)設置為最低級別,那么IRi+1應該是最高級別,其它各級按循環方式類推注意:使用置位優先權指令

31、后,正在處理的中斷不一定在尚未處理完的中斷中具有最高優先級,在該方式下只能是特殊EOI方式(3)中斷屏蔽方式 CPU可以利用CLI指令,將IF清“0”,禁止一切可屏蔽中斷,不能有選擇的屏蔽,8259A可以有選擇的屏蔽,可以響應任何級別的中斷,也可以屏蔽任何級別的中斷普通屏蔽方式特殊屏蔽方式8.4.3 8259A的工作原理 普通屏蔽方式將IMR中的1位或某幾位置“1”,就可屏蔽中斷請求CPU執行主程序時,禁止響應某級或某幾級,IMR中相應位置“1”CPU在處理某級中斷時,禁止高級別的某級或某幾級,IMR中相應位置“1” 特殊屏蔽方式 當CPU正在處理某級中斷時,要求對本級中斷進行屏蔽,而允許優先

32、級比他高或低的中斷進入系統,可利用控制寄存器的SMM位置位,使8259A進入這種特殊的屏蔽方式(4) 特殊完全嵌套方式 級聯方式下有效,自學8.4.3 8259A的工作原理6. 8259A中斷過程步驟 當一條或幾條中斷請求線(IRQ0IRQ7)變成高電平,則使IRR相應位置“1” 可用IMR對IRR進行屏蔽。通過優先級分析電路即PR,把當前未屏蔽的最高優先級的中斷請求從INT輸出,送至CPU的INTR端 若CPU是處于開中斷狀態,則在執行完當前指令后,便進入中斷響應周期,一個中斷響應周期共占用兩個總線周期,在此期間,CPU發出兩個中斷響應信號。8259A在收到CPU的第1個中斷應答信號后,將I

33、SR中的中斷優先級最高的那一位置“1”,而將IRR的相應位復位成“0” 8259A在收到第2個信號后,將把對應的中斷向量(中斷類型號n)送到數據線,CPU讀入該中斷向量經乘4換算后便可轉入相應的中斷服務子程序 中斷響應結束后,若在自動結束中斷(AEOI)方式下,8259A在第2個脈沖結束時,會將ISR中相應位為“1”的位自動復位成“0”。若是非自動結束中斷方式(EOI),則該位的“1”狀態將一直保持到中斷過程結束,由CPU發EOI命令才能復位成0 8.4.4 8259A的控制字及工作方式 8.4 可編程中斷控制器8259A每片包含兩個內部端口地址,一個偶地址端口(A0=0),一個奇地址端口(A

34、0=1),其它高位地址碼由用戶定義,用來做8259A的片選信號(CS)8259A中ISR、IRR及IMR的內容可以通過寫控制命令字來加以改變。有兩種類型的控制命令字:初始化命令字ICW:(ICW1ICW4),它們必須在初始化時寫入。并且,一旦寫入,一般在系統運行過程中就不再改變工作方式命令字或操作命令字OCW:(OCW1OCW3)它們必須在初始化命令后方能寫入。它們用來對中斷處理過程作動態控制。在一個系統運行過程中,操作命令字可以被多次設置8.4.4 8259A的控制字及工作方式1. 初始化命令字 8.4.4 8259A的控制字及工作方式(1)ICW1芯片初始化命令字 標記:A0=0,D4=1

35、標記ICW1,因為OCW2和OCW3也要求A0=0例8-2 8259A工作在80 x86CPU系統中,工作方式為級聯、邊沿觸發,需設ICW4。MOV AL,00010101B;OUT 20H,AL ;A00,20H為8259A在微機 ;中的I/O端口地址8.4.4 8259A的控制字及工作方式(2)ICW2設置中斷類型碼初始化命令字,緊跟在ICW1之后,定義中斷類型碼的高5位,低3位由IRi確定 。 標記:A0=1D7D6D5D4D3T7T6T5D2D1D0T4T3A10A9A8A01與用戶選擇類型碼有關,選擇系統沒有占用的0 0 0 IR00 0 1 IR10 1 0 IR20 1 1 IR

36、31 0 0 IR41 0 1 IR51 1 0 IR61 1 1 IR7注:中斷類型碼一定是連續的!8.4.4 8259A的控制字及工作方式(3)ICW3 級聯方式初始化字,緊跟在ICW2之后, 標記:A0=1 自學(4)ICW4 對于8086/8088系統是必須設置的預置命令字 方式控制初始化命令字,寫ICW4的標記為A0=18.4.4 8259A的控制字及工作方式當8259A經預置ICWi后,已進入初始狀態,便可接受來自IRi端的中斷請求,然后自動進入操作命令字狀態,準備接受由CPU寫入8259A的操作命令字OCWi8259A有3個操作命令字,即OCW1OCW3,操作命令字是在應用程序中

37、設置的對OCWi的操作,次序上沒有嚴格的要求對端口地址有嚴格的規定,即OCW1必須寫入奇地址端口,OCW2和OCW3必須寫入偶地址端口2. 操作命令字 8.4.4 8259A的控制字及工作方式當8259A經預置ICWi后,已進入初始狀態,便可接受來自IRi端的中斷請求,然后自動進入操作命令字狀態,準備接受由CPU寫入8259A的操作命令字OCWi8259A有3個操作命令字,即OCW1OCW3,操作命令字是在應用程序中設置的對OCWi的操作,次序上沒有嚴格的要求對端口地址有嚴格的規定,即OCW1必須寫入奇地址端口,OCW2和OCW3必須寫入偶地址端口8.4.4 8259A的控制字及工作方式(1)OCW1中斷屏蔽操作命令字,標

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論