




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第8章章 中斷技術中斷技術8.1 中中斷基礎斷基礎8.2 8086 CPU的中斷系統(tǒng)的中斷系統(tǒng)8.3 可編程中斷控制器可編程中斷控制器8259A8.4 8259A在微機中的編程應用在微機中的編程應用8.5 80486 CPU中斷系統(tǒng)中斷系統(tǒng)8.1 中斷基礎中斷基礎一、一、中斷的基本概念中斷的基本概念中斷:中斷:是指是指CPU在正常運行時,由于內、外部事件或由程序預在正常運行時,由于內、外部事件或由程序預先安排引起的,先安排引起的,CPU暫停正在運行的程序而轉去執(zhí)行內、外部暫停正在運行的程序而轉去執(zhí)行內、外部事件或預先安排的事件服務程序,待處理完畢后又回到原來被事件或預先安排的事件服務程序,待
2、處理完畢后又回到原來被中止的程序處繼續(xù)執(zhí)行的過程中止的程序處繼續(xù)執(zhí)行的過程中斷源:中斷源:產(chǎn)生中斷請求的外設或引發(fā)內部中斷的原因和事件。產(chǎn)生中斷請求的外設或引發(fā)內部中斷的原因和事件。中斷源通常有三類:中斷源通常有三類:一是外設請求,如實時時鐘請求、一是外設請求,如實時時鐘請求、I/O接口電路請求等;接口電路請求等;二是由硬件故障引起,如電源掉電、硬件損壞等;二是由硬件故障引起,如電源掉電、硬件損壞等;三是由軟件引起,如程序錯、設置斷點等。三是由軟件引起,如程序錯、設置斷點等。中斷請求:中斷請求:中斷源為獲得中斷源為獲得CPU處理而向處理而向CPU發(fā)出的請求信號。發(fā)出的請求信號。中斷響應:中斷響
3、應:CPU接到中斷源產(chǎn)生的中斷請求信號后,若決定響接到中斷源產(chǎn)生的中斷請求信號后,若決定響應此中斷請求,則向外設發(fā)出中斷響應信號的過程。應此中斷請求,則向外設發(fā)出中斷響應信號的過程。斷點:斷點:CPU處理中斷時,原程序的暫時中止處(即中斷返回后處理中斷時,原程序的暫時中止處(即中斷返回后繼續(xù)執(zhí)行的指令地址)。繼續(xù)執(zhí)行的指令地址)。8.1 中斷基礎中斷基礎中斷服務程序:中斷服務程序:中斷源產(chǎn)生中斷后請求中斷源產(chǎn)生中斷后請求CPU執(zhí)行的處理程序。執(zhí)行的處理程序。中斷處理:中斷處理:CPU執(zhí)行中斷服務程序的過程。執(zhí)行中斷服務程序的過程。中斷返回:中斷返回:當中斷服務程序運行結束后,返回原程序斷點處繼
4、當中斷服務程序運行結束后,返回原程序斷點處繼續(xù)執(zhí)行,稱為中斷返回。續(xù)執(zhí)行,稱為中斷返回。中斷屏蔽:中斷屏蔽:禁止中斷響應稱為中斷屏蔽。禁止中斷響應稱為中斷屏蔽。微機響應中斷的過程與執(zhí)行轉子指令微機響應中斷的過程與執(zhí)行轉子指令CALL的過程非常類似。但的過程非常類似。但中斷是隨機發(fā)生的。引起中斷的程序轉移示意圖如圖中斷是隨機發(fā)生的。引起中斷的程序轉移示意圖如圖8.1所示。所示。8.1 中斷基礎中斷基礎二、二、中斷優(yōu)先級與中斷嵌套中斷優(yōu)先級與中斷嵌套在微機系統(tǒng)中,通常都會有多個外部設備以中斷方式與在微機系統(tǒng)中,通常都會有多個外部設備以中斷方式與CPU進行通訊,即存在多個中斷源。因而往往出現(xiàn)以下情況
5、:進行通訊,即存在多個中斷源。因而往往出現(xiàn)以下情況:(1)多個中斷源在同一時間向)多個中斷源在同一時間向CPU發(fā)出中斷請求信號;發(fā)出中斷請求信號;(2)當)當CPU正在響應某一中斷源的請求,執(zhí)行相應中斷服務程正在響應某一中斷源的請求,執(zhí)行相應中斷服務程序時,又有別的中斷源產(chǎn)生新的中斷請求。序時,又有別的中斷源產(chǎn)生新的中斷請求。由于由于CPU在某一時刻只能響應一個中斷請求,對于上述在某一時刻只能響應一個中斷請求,對于上述兩種情況,就需要兩種情況,就需要CPU依據(jù)各中斷源所請求任務的輕重緩急,依據(jù)各中斷源所請求任務的輕重緩急,安排好中斷處理的次序。通過為每個中斷源指定安排好中斷處理的次序。通過為每
6、個中斷源指定CPU響應的響應的優(yōu)優(yōu)先級別先級別(簡稱(簡稱優(yōu)先級優(yōu)先級,也稱,也稱優(yōu)先權優(yōu)先權)確定)確定CPU響應哪個中斷源響應哪個中斷源的中斷請求,通常的中斷請求,通常CPU先響應優(yōu)先級高的中斷請求。先響應優(yōu)先級高的中斷請求。對于第一種情況,對于第一種情況,CPU選擇多個中斷源中優(yōu)先級最高的選擇多個中斷源中優(yōu)先級最高的中斷請求予以響應。中斷請求予以響應。對于第二種情況,當對于第二種情況,當CPU正在處理中斷時,也能響應優(yōu)正在處理中斷時,也能響應優(yōu)先級更高的中斷請求,但屏蔽同級或低級的中斷請求,這就是先級更高的中斷請求,但屏蔽同級或低級的中斷請求,這就是所謂所謂多重中斷多重中斷或或中斷嵌套中
7、斷嵌套。8.1 中斷基礎中斷基礎解決中斷的優(yōu)先級的方法:解決中斷的優(yōu)先級的方法:1軟件查詢方式軟件查詢方式優(yōu)點優(yōu)點:硬件簡單,不需要硬件排隊電硬件簡單,不需要硬件排隊電 路,可通過修改軟件的查詢順序來路,可通過修改軟件的查詢順序來改變中斷源的優(yōu)先級。改變中斷源的優(yōu)先級。缺點:缺點:當中斷源較多時耗時較長,當中斷源較多時耗時較長,影響中斷響應的實時性。影響中斷響應的實時性。8.1 中斷基礎中斷基礎2硬件排隊方式硬件排隊方式硬件排隊方式是指利用專門的硬件電路實現(xiàn)中斷源優(yōu)先硬件排隊方式是指利用專門的硬件電路實現(xiàn)中斷源優(yōu)先級的排隊。常用的有鏈式優(yōu)先級排隊和向量優(yōu)先級排隊兩種電級的排隊。常用的有鏈式優(yōu)先
8、級排隊和向量優(yōu)先級排隊兩種電路。路。(1)鏈式優(yōu)先級排隊)鏈式優(yōu)先級排隊8.1 中斷基礎中斷基礎8.1 中斷基礎中斷基礎(2)向量優(yōu)先級排隊)向量優(yōu)先級排隊 目前微機系統(tǒng)中多用專門的優(yōu)先級目前微機系統(tǒng)中多用專門的優(yōu)先級中斷控制器中斷控制器構成向構成向量優(yōu)先級中斷系統(tǒng)來管理中斷優(yōu)先級。用戶可以通過編程量優(yōu)先級中斷系統(tǒng)來管理中斷優(yōu)先級。用戶可以通過編程實現(xiàn)中斷源優(yōu)先級的靈活調整而無需改動硬件接口電路。實現(xiàn)中斷源優(yōu)先級的靈活調整而無需改動硬件接口電路。8.1 中斷基礎中斷基礎三、三、中斷中斷過程過程 一個完整的中斷處理過程一般都會包括中斷請求、中斷響一個完整的中斷處理過程一般都會包括中斷請求、中斷響
9、應、中斷處理和中斷返回幾個階段。應、中斷處理和中斷返回幾個階段。1中斷請求中斷請求中斷源能否向中斷源能否向CPU提出中斷請求取決于兩個條件:提出中斷請求取決于兩個條件:(1)中斷源(如外設)需要)中斷源(如外設)需要CPU為其服務,且其本身已經(jīng)準備為其服務,且其本身已經(jīng)準備就緒;就緒;(2)系統(tǒng)允許該中斷源提出申請。在多中斷源的情況下,為增)系統(tǒng)允許該中斷源提出申請。在多中斷源的情況下,為增加控制的靈活性,常常在外設接口電路中設置一個中斷屏蔽寄加控制的靈活性,常常在外設接口電路中設置一個中斷屏蔽寄存器,只有在該中斷源的中斷請求未被屏蔽時,其中斷請求才存器,只有在該中斷源的中斷請求未被屏蔽時,其
10、中斷請求才能送到能送到CPU。因此,只有滿足這兩個條件,中斷源才會通過發(fā)。因此,只有滿足這兩個條件,中斷源才會通過發(fā)送中斷請求信號向送中斷請求信號向CPU提出中斷請求。提出中斷請求。8.1 中斷基礎中斷基礎2中斷響應中斷響應CPU通常會在每條指令執(zhí)行結束后檢測有無中斷請求信通常會在每條指令執(zhí)行結束后檢測有無中斷請求信號發(fā)生,當檢測到有中斷請求發(fā)生時,號發(fā)生,當檢測到有中斷請求發(fā)生時,CPU有權決定是否對該有權決定是否對該中斷請求予以響應。若中斷請求予以響應。若CPU允許中斷,則予以響應,否則允許中斷,則予以響應,否則CPU不予響應。一旦不予響應。一旦CPU決定響應該中斷源的中斷請求,則進入中決
11、定響應該中斷源的中斷請求,則進入中斷響應周期。斷響應周期。CPU響應中斷時要自動完成以下三項任務:響應中斷時要自動完成以下三項任務:(1)關中斷。)關中斷。因為因為CPU響應中斷后,要進行必要的中斷處理,響應中斷后,要進行必要的中斷處理,在此期間不允許其它中斷源來打擾。在此期間不允許其它中斷源來打擾。(2)斷點保護。)斷點保護。通過內部硬件保存斷點及標志寄存器內容,以通過內部硬件保存斷點及標志寄存器內容,以便中斷處理完畢后能正確返回被中斷的原程序處繼續(xù)執(zhí)行。便中斷處理完畢后能正確返回被中斷的原程序處繼續(xù)執(zhí)行。(3)獲得中斷服務程序的入口地址。)獲得中斷服務程序的入口地址。CPU響應中斷后,將以
12、某響應中斷后,將以某種方式查找中斷源,獲得中斷服務程序的入口地址,轉向對應種方式查找中斷源,獲得中斷服務程序的入口地址,轉向對應的中斷服務程序。的中斷服務程序。 前兩步通常是由硬件完成的,而最后一步可由硬件或軟件前兩步通常是由硬件完成的,而最后一步可由硬件或軟件實現(xiàn)。實現(xiàn)。8.1 中斷基礎中斷基礎3中斷處理中斷處理中斷處理也叫中斷服務,是由中斷服務程序完成的,不中斷處理也叫中斷服務,是由中斷服務程序完成的,不同的中斷服務程序完成不同的功能,一般在中斷服務程序中要同的中斷服務程序完成不同的功能,一般在中斷服務程序中要做以下幾項工作。做以下幾項工作。(1)保護現(xiàn)場)保護現(xiàn)場主程序和中斷服務程序都要
13、使用主程序和中斷服務程序都要使用CPU內部寄存器等資源內部寄存器等資源,為使中斷處理程序不破壞主程序中寄存器的內容,應先將斷,為使中斷處理程序不破壞主程序中寄存器的內容,應先將斷點處各寄存器的內容壓入堆棧保護起來,再進入中斷處理。點處各寄存器的內容壓入堆棧保護起來,再進入中斷處理。(2)開中斷)開中斷在中斷響應階段,在中斷響應階段,CPU由硬件控制會自動執(zhí)行關中斷,由硬件控制會自動執(zhí)行關中斷,以保護以保護CPU在中斷響應時不會被再次中斷。但在某些情況下,在中斷響應時不會被再次中斷。但在某些情況下,有比該中斷更緊急的情況要處理時,應停止對該中斷的服務而有比該中斷更緊急的情況要處理時,應停止對該中
14、斷的服務而轉到優(yōu)先級更高的中斷服務程序,以實現(xiàn)中斷嵌套。中斷過程轉到優(yōu)先級更高的中斷服務程序,以實現(xiàn)中斷嵌套。中斷過程中,可以多次開放和關閉中斷,但一般只在程序的關鍵部分才中,可以多次開放和關閉中斷,但一般只在程序的關鍵部分才關閉中斷,其它部分則要開放中斷以允許中斷嵌套。關閉中斷,其它部分則要開放中斷以允許中斷嵌套。8.1 中斷基礎中斷基礎(3)中斷服務)中斷服務中斷服務是執(zhí)行中斷的主體部分,不同的中斷請求,有中斷服務是執(zhí)行中斷的主體部分,不同的中斷請求,有各自不同的中斷服務內容,需要根據(jù)中斷源所要完成的功能,各自不同的中斷服務內容,需要根據(jù)中斷源所要完成的功能,事先編寫相應的中斷服務程序存入
15、內存,等待中斷請求響應后事先編寫相應的中斷服務程序存入內存,等待中斷請求響應后調用執(zhí)行。調用執(zhí)行。(4)關中斷)關中斷 若在第二步中執(zhí)行了開中斷操作,則需關中斷以為恢復現(xiàn)若在第二步中執(zhí)行了開中斷操作,則需關中斷以為恢復現(xiàn)場做準備。場做準備。(5)恢復現(xiàn)場)恢復現(xiàn)場 當中斷服務處理完畢后,在返回主程序前需要將前面通過當中斷服務處理完畢后,在返回主程序前需要將前面通過PUSH指令保護的寄存器內容從堆棧中彈出,以便返回到主程序指令保護的寄存器內容從堆棧中彈出,以便返回到主程序后能繼續(xù)正確運行。注意后能繼續(xù)正確運行。注意POP指令的順序應按先進后出的原則指令的順序應按先進后出的原則與進棧指令一一對應。
16、與進棧指令一一對應。8.1 中斷基礎中斷基礎4中斷返回中斷返回在中斷服務程序的最后要安排一在中斷服務程序的最后要安排一條中斷返回指令條中斷返回指令IRET。執(zhí)行該指令,使。執(zhí)行該指令,使CPU轉到被中斷的程序中繼續(xù)執(zhí)行。轉到被中斷的程序中繼續(xù)執(zhí)行。一、一、8086中斷類型中斷類型8086 CPU的中斷系統(tǒng)可以處理256種不同類型的中斷。為了便于識別,8086系統(tǒng)中給每種中斷都賦予了一個中斷類型號,編號為0255。CPU可根據(jù)中斷類型號的不同來識別不同的中斷源。中斷源可以來自CPU內部,稱為內部中斷;也可以來自CPU外部,稱為外部中斷。如圖8.7所示。8.2 8086 CPU的中斷系統(tǒng)的中斷系統(tǒng)
17、1外部中斷外部中斷外部中斷也被稱為硬件中斷,是由外部設備通過硬件請求的方式所產(chǎn)生的中斷。外部中斷又可分為不可屏蔽中斷和可屏蔽中斷兩種。(1)不可屏蔽中斷NMI(2)可屏蔽中斷INTR2內部中斷內部中斷(1)除法錯中斷(2)單步中斷(3)溢出中斷(4)斷點中斷(5)中斷指令INT n8.2 8086 CPU的中斷系統(tǒng)的中斷系統(tǒng)二、二、8086 CPU響應中響應中斷的過程斷的過程圖8.8所示為8086中斷響應的流程8.2 8086 CPU的中斷系統(tǒng)的中斷系統(tǒng)8086 CPU系統(tǒng)對256種中斷規(guī)定了固定的優(yōu)先級。內部中斷(單步中斷除外)的優(yōu)先級高于外部中斷,外部中斷中不可屏蔽中斷的優(yōu)先級高于可屏蔽中
18、斷,單步中斷的優(yōu)先級最低。同時由圖8.8也可以看出,在CPU中斷響應過程中,其仍然能對不可屏蔽中斷NMI和單步中斷予以響應。8.2 8086 CPU的中斷系統(tǒng)的中斷系統(tǒng)表8-1 8086 CPU的中斷優(yōu)先級順序中 斷優(yōu) 先 級除法出錯、INTO、INT nNMIINTR單步最高 最低三、三、中斷向量及中斷向量表中斷向量及中斷向量表不同的中斷源對應不同的中斷服務程序,每個中斷服務程序都有一個惟一的程序入口地址,供CPU響應中斷后轉去執(zhí)行,這個惟一的程序入口地址稱為中斷向量。每個中斷向量都由段地址CS和偏移地址IP共4個字節(jié)組成。8086系統(tǒng)把這256個中斷向量集中起來,按對應的中斷類型號從小到大
19、的順序依次存放到了內存的最低端,這個存放中斷向量的存儲區(qū)稱為中斷向量表。8.2 8086 CPU的中斷系統(tǒng)的中斷系統(tǒng) 根據(jù)中斷向量表的格式,只要知道中斷類型號n就可以找到對應的中斷向量在中斷向量表中的位置,它們之間有如下關系:中斷向量地址中斷類型號n4 例如中斷類型號40H的中斷服務程序,其中斷向量為1234H:5678H,則該中斷向量地址為40H4100H,即在00100H開始的連續(xù)4個單元依次存放78H、56H、34H、12H。8.2 8086 CPU的中斷系統(tǒng)的中斷系統(tǒng)8.3 可編程中斷控制器可編程中斷控制器8259A一、一、8259A的內部結構和引腳的內部結構和引腳18259A的內部結
20、構8259A芯片采用NMOS工藝制造,使用單一5V電源供電。由數(shù)據(jù)總線緩沖器、讀/寫控制邏輯、級聯(lián)緩沖/比較器、中斷請求寄存器IRR、中斷屏蔽寄存器IMR、中斷服務寄存器ISR、優(yōu)先權分析器PR及控制邏輯8大部分組成。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器 可編程中斷控制器可編程中斷控制器 8 8個中斷源優(yōu)先級。個中斷源優(yōu)先級。 級聯(lián)可擴至級聯(lián)可擴至6464個。個。 可被屏蔽或允許??杀黄帘位蛟试S。 可提供不同類型中斷可提供不同類型中斷號。號。 可編程設置不同工作可編程設置不同工作方式。方式。1141528210111327262220D
21、13D7CAS1VCCA0INTA25IR7IR62423IR5IR4IR222IR319IR1CAS2.GND12D08259ACS1WERD4CAS018IR01716INTSP/EN第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器 8259A8259A引腳及功能引腳及功能 CS:CS:片選。片選。 WR:WR:寫信號。寫信號。 RD:RD:讀信號。讀信號。 D7-D0D7-D0:雙向數(shù)據(jù)線。:雙向數(shù)據(jù)線。 CAS2-CAS0CAS2-CAS0:級聯(lián)控制。:級聯(lián)控制。 SP/EN:SP/EN:主從片設置主從片設置/ /緩沖緩沖區(qū)區(qū) 收發(fā)控制。收
22、發(fā)控制。1141528210111327262220D13D7CAS1VCCA0INTA25IR7IR62423IR5IR4IR222IR319IR1CAS2.GND12D08259ACSWERD4CAS018IR01716INTSP/EN第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器 8259A8259A引腳及功能引腳及功能 INT:INT:中斷請求信號。中斷請求信號。 INTA:INTA:中斷響應信號。中斷響應信號。 IR7-IR0:IR7-IR0:中斷請求信中斷請求信號。號。 A0:A0:內部寄存器選擇。內部寄存器選擇。 114152821
23、0111327262220D13D7CAS1VCCA0INTA25IR7IR62423IR5IR4IR222IR319IR1CAS2.GND12D08259ACSWERD4CAS018IR01716INTSP/EN第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器中斷中斷請求請求寄存器寄存器優(yōu)先級優(yōu)先級分析器分析器中斷中斷服務服務寄存器寄存器中斷屏蔽寄存器中斷屏蔽寄存器控制邏輯控制邏輯數(shù)據(jù)總線數(shù)據(jù)總線緩沖器緩沖器讀讀/寫寫邏輯邏輯級聯(lián)緩沖級聯(lián)緩沖/比較器比較器INTAINTD7-D0RDWRA0CSCAS0CAS1CAS2.IR0IR7SP/EN中斷
24、請求寄存器(中斷請求寄存器(IRR):):8位,保存外設發(fā)來的中斷請求位,保存外設發(fā)來的中斷請求信號信號IR0-IR7。如請求信號為。如請求信號為高,則高,則IRR相應位置相應位置1。優(yōu)先級分析器(優(yōu)先級分析器(PR):):用來識別中斷請求信號優(yōu)先級。用來識別中斷請求信號優(yōu)先級。多個請求出現(xiàn)時,先響應最高的多個請求出現(xiàn)時,先響應最高的請求。如新出現(xiàn)的請求比現(xiàn)行的請求。如新出現(xiàn)的請求比現(xiàn)行的高,進入多重中斷。高,進入多重中斷。中斷服務寄存器(中斷服務寄存器(ISR):):8位,記錄正在處理的中斷位,記錄正在處理的中斷請求,將最高優(yōu)先級請求信請求,將最高優(yōu)先級請求信號號ISR相應位置相應位置1,當
25、服務,當服務完畢,完畢,ISR相應位清相應位清0。多。多重中斷時,會有多個重中斷時,會有多個ISR位位為為1。中斷屏蔽寄存器(中斷屏蔽寄存器(IMR):):8位,保存中斷請求的屏蔽信號。每位,保存中斷請求的屏蔽信號。每個中斷請求設置一個屏蔽位。如某個中斷請求設置一個屏蔽位。如某位置位置1,則與之對應的請求被屏蔽。,則與之對應的請求被屏蔽。數(shù)據(jù)總線緩沖器:數(shù)據(jù)總線緩沖器:8位雙向三態(tài),接收位雙向三態(tài),接收CPU送來的控制送來的控制字,或向字,或向CPU發(fā)送中斷向量號和狀發(fā)送中斷向量號和狀態(tài)信息。態(tài)信息。控制邏輯:控制邏輯:向向CPU發(fā)送中斷請求信號發(fā)送中斷請求信號INT和接收和接收CPU發(fā)送的中
26、發(fā)送的中斷響應信號斷響應信號INTA。它包。它包括括4個初始化命令字個初始化命令字ICW1ICW3和和3個操作個操作控制字控制字OCW1 OCW2。讀讀/寫邏輯:寫邏輯:接收來自接收來自CPU的讀的讀/寫命令。由寫命令。由CS、RD、WR、A0共同控制。共同控制。級聯(lián)緩沖級聯(lián)緩沖/比較器:比較器:實現(xiàn)多片實現(xiàn)多片8259級聯(lián)。級聯(lián)時,一片級聯(lián)。級聯(lián)時,一片8259作為主控制器,作為主控制器,IR7IR0每每一端都可接一片一端都可接一片8259作為從控制器,作為從控制器,共共9片,最多能處理片,最多能處理64個中斷請求個中斷請求信號。信號。8.3 可編程中斷控制器可編程中斷控制器8259A二、二
27、、 8259A的工作方式的工作方式1中斷觸發(fā)方式中斷觸發(fā)方式中斷觸發(fā)方式?jīng)Q定了外設以何種信號通知8259A有中斷請求,具體又分為邊沿觸發(fā)和電平觸發(fā)兩種。(1)邊沿觸發(fā)方式在邊沿觸發(fā)方式中,8259A將IRi輸入端出現(xiàn)的信號上升沿(正跳變)作為中斷請求信號觸發(fā)中斷申請,這種觸發(fā)方式的優(yōu)點是IRi端只在上升沿申請一次中斷,故該端可以一直保持高電平而不會誤判為多次中斷申請。(2)電平觸發(fā)方式在電平觸發(fā)方式中,8259A是將IRi輸入端出現(xiàn)高電平作為中斷請求信號觸發(fā)中斷申請。需要注意的是,在這種觸發(fā)方式下,當該中斷請求得到響應后,IRi輸入端必須及時撤除高電平,否則會引起不應有的第二次中斷申請。8.3
28、 可編程中斷控制器可編程中斷控制器8259A2中斷優(yōu)先級設置方式中斷優(yōu)先級設置方式(1)完全嵌套方式完全嵌套方式是8259A在初始化時自動進入的一種最基本的優(yōu)先級管理方式。在這種方式下,只要不重新設置優(yōu)先級別,IR0IR7就具有固定不變的優(yōu)先級,默認IR0優(yōu)先級最高,IR1次之,IR7優(yōu)先級最低。同時,高優(yōu)先級的中斷能夠中斷低優(yōu)先級的中斷服務,實現(xiàn)中斷嵌套。(2)自動循環(huán)方式自動循環(huán)優(yōu)先級方式可以改變IR7IR0優(yōu)先級。其變化規(guī)律是:初始時依然是IR0具有最高優(yōu)先級,IR7的優(yōu)先級最低,但當某個中斷請求被響應之后,它的優(yōu)先級就變?yōu)樽畹停南乱患壷袛嘧優(yōu)樽罡邇?yōu)先級,亦即優(yōu)先級是輪流的。例如當
29、IR4的中斷請求結束后,IR4的優(yōu)先級變?yōu)樽畹?,而相鄰的IR5變?yōu)樽罡邇?yōu)先級,IR6次之,依次類推。8.3 可編程中斷控制器可編程中斷控制器8259A(3)特殊完全嵌套方式在中斷嵌套時,除了高優(yōu)先級中斷可以中斷低優(yōu)先級的中斷服務外,對同一級別的中斷請求也能夠予以響應,從而實現(xiàn)同級中斷的特殊嵌套。例如對圖8.13所示的系統(tǒng),主片工作在特殊完全嵌套方式,從片工作在完全嵌套方式。當從片A的IR3引腳有中斷請求時,會將中斷請求送到主片的IR6引腳,該中斷被響應后,主片將對應的ISR6置位。如果此時從片A的IR2又出現(xiàn)中斷請求,則由于IR2的優(yōu)先級高于IR3,該中斷請求又會被送到主片的IR6引腳。對于主
30、片來說,這個中斷請求依然是IR6的中斷,若主片工作在完全嵌套方式,則不會予以響應,從而造成錯誤。但主片工作在特殊完全嵌套方式時,就可以響應同一級別的中斷請求,進行正常工作。(4)特殊循環(huán)方式特殊循環(huán)方式可通過編程指定初始最低優(yōu)先級中斷源,初始優(yōu)先級順序按循環(huán)方式重新排列。8.3 可編程中斷控制器可編程中斷控制器8259A8.3 可編程中斷控制器可編程中斷控制器8259A3中斷屏蔽方式中斷屏蔽方式中斷屏蔽方式是對8259A外部中斷源IR7IR0實現(xiàn)屏蔽的一種中斷管理方式,有普通屏蔽方式和特殊屏蔽方式兩種。(1)普通屏蔽方式8259A內部的中斷屏蔽寄存器IMR,其每一位對應一個中斷請求輸入端IRi
31、。將IMR的某位置1,則它對應的IR就被屏蔽,從而使這個中斷請求不能從8259A送到CPU;如果該位置0,則允許該IR中斷傳送給CPU。通過編程可設置IMR中的某位為1或為0。8.3 可編程中斷控制器可編程中斷控制器8259A(2)特殊屏蔽方式在某些特殊情況下,可能需要開放比本身優(yōu)先級別低的中斷請求,此時就可以使用特殊屏蔽方式來達到這一目的。在特殊屏蔽方式下,對IMR的某位置1時,同時也使ISR中的對應位清0。這樣,雖然系統(tǒng)當前仍然在處理一個較高級別的中斷,但由于8259A的屏蔽寄存器IMR對應于此中斷的位已經(jīng)被置1,且ISR中對應位被清0,因此外界看來好像CPU現(xiàn)在沒有處理任何中斷,從而實現(xiàn)
32、了對低優(yōu)先級中斷請求的響應。這是一種非正常的中斷優(yōu)先級排隊關系,所以稱為“特殊屏蔽方式”,這種方式在正常的應用系統(tǒng)中很少使用。8.3 可編程中斷控制器可編程中斷控制器8259A4中斷結束方式中斷結束方式中斷結束方式實際上就是對ISR中對應位的處理。當中斷結束時,必須使ISR寄存器中對應位清0,以表示該中斷源的中斷服務已結束,否則,就意味著中斷服務還在繼續(xù),致使比它優(yōu)先級低的中斷請求無法得到響應。8259A提供了以下3種中斷結束方式:(1)自動結束方式(AEOI)自動結束方式是利用中斷響應信號的第二個負脈沖的后沿,將ISR中的中斷服務標志位清除。這種中斷服務結束方式是由硬件自動完成的。由于ISR
33、中為“1”位的清除是在中斷響應過程中完成的,并非中斷服務程序的真正結束,若在中斷服務程序的執(zhí)行過程中有另外一個比當前中斷優(yōu)先級低的請求信號到來,則會使低優(yōu)先級中斷請求進入,打亂了正在服務的程序。AEOI是最簡單的中斷結束方式,通常只適用于只有一片8259A且不會出現(xiàn)中斷嵌套的情況。8.3 可編程中斷控制器可編程中斷控制器8259A(2)普通結束方式(EOI)普通結束方式配合完全嵌套優(yōu)先級工作方式使用。這種方式需要用戶在中斷服務程序結束之前,向8259A發(fā)送EOI命令來清除ISR中當前優(yōu)先級別最高位。因為在完全嵌套方式下,中斷優(yōu)先級是固定的,8259A總是響應優(yōu)先級最高的中斷,保存在ISR中的最
34、高優(yōu)先級的對應位,一定對應于正在執(zhí)行的服務程序,把其清零相當于結束了當前正在處理的中斷。(3)特殊EOI方式當系統(tǒng)工作于特殊完全嵌套方式下時,由于低優(yōu)先級的中斷可以中斷高優(yōu)先級的中斷服務,所以此時ISR中的最高優(yōu)先級的非零位不一定對應著最后一次處理的中斷(即當前正在處理的中斷)。如果采用一般EOI方式來結束中斷的話就可能產(chǎn)生錯誤,因此需要使用特殊EOI方式結束中斷。特殊EOI方式反映在程序中就是要發(fā)出一條特殊中斷結束命令,這個命令中指出了要清除ISR中的哪一位。8.3 可編程中斷控制器可編程中斷控制器8259A5連接系統(tǒng)總線的方式 8259A與系統(tǒng)總線的連接有緩沖和非緩沖兩種方式。 (1)非緩
35、沖方式非緩沖方式主要適用于中小型系統(tǒng)中只有一片或不多的幾片8259A情況。在這種方式下,各片8259A直接和數(shù)據(jù)總線相連,而無需通過總線驅動器;8259A的SP/EN端作為輸入端。當系統(tǒng)中只有一片8259A時,SP/EN端必須接+5V;當系統(tǒng)中有多片8259A時,主片的SP/EN端接+5V,從片的接地。(2)緩沖方式 緩沖方式多用在有多片8259A的大系統(tǒng)中。在這種方式中,8259A需要通過總線驅動器和數(shù)據(jù)總線相連。此時,將8259A的SP/EN端和總線驅動器的允許端相連,因為8259A工作在緩沖方式時,會在輸出狀態(tài)字或中斷類型碼的同時,從SP/EN端輸出一個低電平,此低電平正好可以作為總線驅
36、動器的啟動信號。8.3 可編程中斷控制器可編程中斷控制器8259A三、三、 8259A的級聯(lián)的級聯(lián)當系統(tǒng)中的外部中斷源數(shù)量大于8個時,就無法用一片8259A來進行管理,可采用多片8259A的級聯(lián)來管理這些中斷源,最多可以使用9個8259A芯片管理64個外部中斷源。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器 82598259初始化編程初始化編程 內部有兩組可編程序寄存器內部有兩組可編程序寄存器: : 一組為一組為4 4個初始化控制寄存器,用于存放個初始化控制寄存器,用于存放ICW1ICW1ICW4ICW4。 另一組為另一組為3 3個操作控制寄存
37、器,用于存放個操作控制寄存器,用于存放OCW1OCW1OCW3OCW3。寫入寫入ICW1寫入寫入ICW2寫入寫入ICW3級聯(lián)方式級聯(lián)方式?需要需要ICW4?寫入寫入ICW4準備接收中斷準備接收中斷NYYN1.1.初始化命令字初始化命令字 初始化命令字初始化命令字ICW1ICW1ICW4ICW4,要按一定順序,要按一定順序寫入。寫入。 兩個端口地址:兩個端口地址: ICW1ICW1使用使用A0=0A0=0端口;端口; ICW2ICW2ICW4ICW4使用使用A0=1A0=1端端口;口;第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器 82598259
38、初始化編程初始化編程(1)ICW1(1)ICW1:用于啟動:用于啟動82598259的初始化過程的初始化過程0001LTIM ADI SNGL IC40D0D3D4D5D6D7D1D2A0D7D7D5:D5: 8086/8088 8086/8088系統(tǒng)中,無意義。系統(tǒng)中,無意義。D4D4:ICW1ICW1的特征標志位,總是設置為的特征標志位,總是設置為1 1。D3D3:設置設置IRiIRi的觸發(fā)方式。的觸發(fā)方式。LTIM=1LTIM=1,電平,電平 觸發(fā);觸發(fā);LTIM=0LTIM=0,邊沿觸發(fā)。,邊沿觸發(fā)。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中
39、斷控制器(1)ICW1(1)ICW1:用于啟動:用于啟動82598259的初始化過程的初始化過程0001LTIM ADI SNGL IC40D0D3D4D5D6D7D1D2A0D2(ADI):D2(ADI):8086/80888086/8088中中, ,該位無效。該位無效。D1D1(SNGL)SNGL):表示單片還是級聯(lián)。表示單片還是級聯(lián)。SNGL=1,SNGL=1, 單片;單片;SNGL=0,SNGL=0,級聯(lián)。級聯(lián)。D0(IC4):D0(IC4):是否需要初始化是否需要初始化ICW4ICW4。IC4=1IC4=1, 需要初始化需要初始化ICW4ICW4;IC4=0IC4=0,不需要。,不需
40、要。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器(2)ICW2(2)ICW2:用于設置中斷類型號。:用于設置中斷類型號。T7T6T5T4T3ID2ID1ID01D0D3D4D5D6D7D1D2A0D7D7D3:D3:中斷類型號的高中斷類型號的高5 5位。位。D2D2D0D0:中斷類型號的低中斷類型號的低3 3位。位。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器(3)ICW3(3)ICW3:用于多片:用于多片82598259級聯(lián),級聯(lián),SNGL=0SNGL=0時設置。時設置。 主片格式:主片格式:
41、1D0D3D4D5D6D7D1D2A0D7D7D0:D0:分別與分別與IR7-IR0IR7-IR0對應。對應。Di=1Di=1,對應的,對應的 IRiIRi連有從片;否則,未連。連有從片;否則,未連。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器(3)ICW3(3)ICW3:用于多片:用于多片82598259級聯(lián),級聯(lián),SNGL=0SNGL=0時設置。時設置。 從片格式:從片格式:00000ID2ID1ID01D0D3D4D5D6D7D1D2A0D7D7D3:D3:未用,通常設置為未用,通常設置為0 0。D2D2D0D0:指示從片接到主片的哪個指
42、示從片接到主片的哪個IRIR端。端。第第 8 8 章章 中斷技術中斷技術 7.2 8259A7.2 8259A中斷控制器中斷控制器(4)ICW4(4)ICW4:用于設定:用于設定82598259的工作方式。的工作方式。000SFNM BUFM/S AEOI PM1D0D3D4D5D6D7D1D2A0D7D7D5:D5:未用,通常設置為未用,通常設置為0 0。D4D4:設置嵌套方式。設置嵌套方式。SFNM=1SFNM=1表示為特殊全嵌表示為特殊全嵌 套方式;套方式;SFNM=0SFNM=0表示為一般全嵌套方式。表示為一般全嵌套方式。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3
43、8259A中斷控制器中斷控制器(4)ICW4(4)ICW4:用于設定:用于設定82598259的工作方式。的工作方式。000SFNM BUFM/S AEOI PM1D0D3D4D5D6D7D1D2A0D3:D3:設置緩沖方式。設置緩沖方式。BUF=1BUF=1為緩沖;為緩沖;BUF=0BUF=0為為 非緩沖方式。非緩沖方式。D2D2:設置在緩沖方式下本片是主片還是從設置在緩沖方式下本片是主片還是從 片,只在片,只在BUF=1BUF=1時有效。時有效。M/S=1M/S=1為主片,為主片, M/S=0M/S=0為從片。為從片。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259
44、A中斷控制器中斷控制器(4)ICW4(4)ICW4:用于設定:用于設定82598259的工作方式。的工作方式。000SFNM BUFM/S AEOI PM1D0D3D4D5D6D7D1D2A0D1:D1:設置中斷結束方式。設置中斷結束方式。AE0I=1AE0I=1為自動中斷結束方為自動中斷結束方 式;式;AEOI=0AEOI=0為非自動結束方式。為非自動結束方式。D0D0:設置設置CPUCPU模式。模式。PM=1PM=1為為8086/80888086/8088模式;模式; PM=0PM=0為為8080/80858080/8085模式。模式。第第 8 8 章章 中斷技術中斷技術 8.3 8259
45、A8.3 8259A中斷控制器中斷控制器1.1.操作命令字操作命令字 82598259初始化后,可寫入操作命令字來設置對初始化后,可寫入操作命令字來設置對 8259 8259 的操作。的操作。 操作命令字無嚴格的寫入順序。操作命令字無嚴格的寫入順序。 OCW1OCW1必須寫入必須寫入A0=1A0=1端口。端口。 OCW2OCW2和和OCW3OCW3必須寫入必須寫入A0=0A0=0端口。端口。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器1.1.操作命令字操作命令字(1)OCW1(1)OCW1:用于設置中斷屏蔽操作字。:用于設置中斷屏蔽操作字。M7
46、M6M5M4M3M2M1M01D0D3D4D5D6D7D1D2A0D7D7D0D0:分別與分別與IR7IR7IR0IR0對應,對應,Mi=1,Mi=1,對應對應 中斷源中斷源IRiIRi被屏蔽;被屏蔽;Mi=0, IRiMi=0, IRi被被 允許。允許。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器1.1.操作命令字操作命令字(2)OCW2(2)OCW2:用于設置中斷優(yōu)先級和中斷結束方式。:用于設置中斷優(yōu)先級和中斷結束方式。RSLEOI00L2L1L00D0D3D4D5D6D7D1D2A0D7D7:設置中斷優(yōu)先級方式。設置中斷優(yōu)先級方式。R=1
47、R=1為循環(huán)優(yōu)為循環(huán)優(yōu) 先級;先級;R=0R=0為固定優(yōu)先級方式。為固定優(yōu)先級方式。D6D6:控制控制L2L2 L0L0是否有效。是否有效。SL=1SL=1,則,則L2L2 L0L0有效;有效;SL=0SL=0,L2L2 L0L0無效。無效。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器1.1.操作命令字操作命令字(2)OCW2(2)OCW2:用于設置中斷優(yōu)先級和中斷結束方式。:用于設置中斷優(yōu)先級和中斷結束方式。RSLEOI00L2L1L00D0D3D4D5D6D7D1D2A0D5D5:設置中斷結束方式。設置中斷結束方式。EOI=1EOI=1,在
48、中斷結束,在中斷結束 時,向時,向82598259發(fā)中斷結束命令發(fā)中斷結束命令EOIEOI,將,將ISRISR中中 最高優(yōu)先權位復位。最高優(yōu)先權位復位。EOI=0,EOI=0,不發(fā)不發(fā)EOIEOI。R SL EOI功能功能工作方式工作方式001一般一般EOI方式,全嵌套方式,全嵌套中斷結束中斷結束011特殊特殊EOI方式,全嵌套方式,全嵌套101一般一般EOI方式,優(yōu)先級自動方式,優(yōu)先級自動循環(huán)循環(huán)自動循環(huán)自動循環(huán)100自動自動EOI方式下,設置循環(huán)方式下,設置循環(huán)優(yōu)先級優(yōu)先級000自動自動EOI方式下,變?yōu)楣潭ǚ绞较拢優(yōu)楣潭▋?yōu)先級優(yōu)先級111特殊特殊EOI方式下,優(yōu)先級自方式下,優(yōu)先級自動
49、循環(huán),指定動循環(huán),指定ISR復位,并復位,并設為最低設為最低特殊循環(huán)特殊循環(huán)110設置優(yōu)先級,使設置優(yōu)先級,使L2-L0指定指定的低優(yōu)先級最低的低優(yōu)先級最低010無意義無意義D7-D5組合命令編碼第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器1.1.操作命令字操作命令字(2)OCW2(2)OCW2:用于設置中斷優(yōu)先級和中斷結束方式。:用于設置中斷優(yōu)先級和中斷結束方式。RSLEOI00L2L1L00D0D3D4D5D6D7D1D2A0D4D4和和D3D3:OCW2OCW2標志位,固定為標志位,固定為0 0。D2-D0D2-D0:中斷源編碼,在特殊循
50、環(huán)方式下指明中斷源編碼,在特殊循環(huán)方式下指明 IRIR的最低優(yōu)先級。的最低優(yōu)先級。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器1.1.操作命令字操作命令字(3)OCW3(3)OCW3:用于設置查詢和特殊屏蔽方式。:用于設置查詢和特殊屏蔽方式。0ESMM SMM01PRRRIS0D0D3D4D5D6D7D1D2A0D7D7:未定義,通常為未定義,通常為0 0。D6D6和和D5D5:設置特殊屏蔽方式。設置特殊屏蔽方式。ESMM=1,SMM=1ESMM=1,SMM=1 時,允許特殊屏蔽方式;時,允許特殊屏蔽方式;ESMM=1,SMM=0ESMM=1,
51、SMM=0時,時, 不允許特殊屏蔽方式;不允許特殊屏蔽方式;ESMM=0ESMM=0時,無效。時,無效。第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器1.1.操作命令字操作命令字(3)OCW3(3)OCW3:用于設置查詢和特殊屏蔽方式。:用于設置查詢和特殊屏蔽方式。0ESMM SMM01PRRRIS0D0D3D4D5D6D7D1D2A0D4D4和和D3D3:OCW3OCW3標志位。固定為標志位。固定為0 0和和1 1。D2D2:設置查詢方式。設置查詢方式。P=1P=1為查詢方式;為查詢方式;P=0P=0為非為非 查詢方式。查詢方式。第第 8 8
52、章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器 例例7-27-2某微機系統(tǒng)使用單片某微機系統(tǒng)使用單片8259A8259A管理中斷,接管理中斷,接口地址為口地址為20H20H和和21H21H,中斷為上升沿觸發(fā),與,中斷為上升沿觸發(fā),與IR0-IR3IR0-IR3對應的中斷類型號為對應的中斷類型號為08H-0BH08H-0BH,IR4-IR4-IR7IR7不使用。根據(jù)要求編寫不使用。根據(jù)要求編寫8259A8259A的初始化程序。的初始化程序。第第 7 7 章章 微機與外設間數(shù)據(jù)傳送微機與外設間數(shù)據(jù)傳送7.2 8259A7.2 8259A中斷控制器中斷控制器例例7-
53、27-2某微機使用單片某微機使用單片8259A8259A管理中斷,端管理中斷,端口地址為口地址為20H,21H,20H,21H,中斷為上升沿觸發(fā),中斷為上升沿觸發(fā),與與IR0-IR3IR0-IR3對應的中斷類型號為對應的中斷類型號為08H-0BH08H-0BH,IR4-IR7IR4-IR7未用。編寫未用。編寫82598259初始化程序。初始化程序。初始化程序:初始化程序: MOV DX,20H MOV AL,12H ;上升沿觸發(fā),單片不寫;上升沿觸發(fā),單片不寫ICW4 OUT DX,AL MOV DX,21H MOV AL,08H ;設置中斷類型號;設置中斷類型號08H OUT DX,AL M
54、OV AL,0F0H ;屏蔽;屏蔽IR4-IR7 OUT DX,AL0001LTIM ADI SNGL ICW40D0D3D4D5D6D7D1D2A0ICW1T7T6T5T4T3ID2ID1ID01D0D3D4D5D6D7D1D2A0ICW2M7M6M5M4M3M2M1M01D0D3D4D5D6D7D1D2A0OCW1第第 8 8 章章 中斷技術中斷技術 8.3 8259A8.3 8259A中斷控制器中斷控制器 例例 80868086系統(tǒng)中只有一片系統(tǒng)中只有一片8259A8259A,中斷請求信號,中斷請求信號使用電平觸發(fā)方式,全嵌套中斷優(yōu)先級,數(shù)據(jù)使用電平觸發(fā)方式,全嵌套中斷優(yōu)先級,數(shù)據(jù)總線無緩沖,采用中斷自動結束方式。中斷類總線無緩沖,采用中斷自動結束方式。中斷類型碼為型碼為20H-27H20H-27H,8259A8259A端口地址為端口地址為B0HB0H和和B1HB1H。根據(jù)要求編寫根據(jù)要求編寫8259A8259A初始化程序。初始化程序。第第 7 7 章章 微機與外設間數(shù)據(jù)傳送微機與外設間數(shù)據(jù)傳送7.2 8259A7.2 8259A中斷控制器中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論