




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
大連理工大學自動化系微機原理第七章中斷系統7.1計算機中斷系統7.28086/8088的中斷結構7.3中斷控制器Intel8259A什么是中斷?與生活場景的比較正在看書電話鈴響接電話繼續看書執行程序事件發生事件處理繼續執行程序中斷處理中斷請求及響應實際場景計算機中斷返回7.1計算機中斷系統CPU執行程序時,由于發生了某種隨機的事件(外部或內部),引起CPU暫時中斷正在運行的程序,轉去執行一段特殊的服務程序(稱為中斷服務程序或中斷處理程序),以處理該事件,該事件處理完后又返回被中斷的程序繼續執行,這一過程稱為中斷。中斷的作用并行操作,提高工作效率CPU與外設同時工作,多個外設同時工作。實現實時處理在控制系統中,有些參量要求計算機能快速處理,用中斷方式容易實現。故障處理出現故障,提出中斷申請,要求計算機及時響應。中斷源任何能引發中斷的事件都稱為中斷源,可分為:硬件中斷源:I/O設備,系統時鐘,故障源等軟件中斷源:程序中斷指令(INT3),指令運行出錯(INTO)等8086/8088的外部中斷信號:INTR、NMIINTR——可屏蔽中斷請求,高電平有效,受IF標志的控制。IF=1時,執行完當前指令后CPU對它作出響應。NMI——非屏蔽中斷請求,上升沿有效,任何時候CPU都要響應此中斷請求信號。中斷工作過程中斷請求中斷響應關中斷斷點保護中斷識別現場保護中斷服務恢復現場開中斷中斷返回中斷服務是進行數據交換的實質性環節外設通過硬件信號的形式向CPU引腳發送信號,該信號維持直至被響應為止。
滿足一定條件,CPU進入中斷響應周期CPU每條指令執行完將會檢測中斷輸入引腳;對于可屏蔽中斷請求,CPU應處于開中斷狀態;中斷請求時,沒有更高級別的中斷請求發生;中斷請求應保持到被響應為止。CPU響應中斷后將自動關閉中斷,不經用戶打開,CPU將不再受理其他中斷請求。
CPU響應中斷后將自動保護斷點地址,以便中斷后繼續執行原程序,并保護狀態寄存器。
識別中斷發生的原因,找到相應的中斷服務程序入口。
對CPU的工作環境(主要是寄存器)進行保護,以便將來恢復。一般是將其壓入堆棧。
針對不同的中斷源所進行的特定的服務,CPU執行事先編制好的中斷服務程序。完成中斷服務后,CPU應返回斷點去執行原來的工作,此時應恢復原來的工作環境。
CPU響應中斷后,一般會自動關閉中斷,用戶要主動打開,否則,整個中斷過程中,不會再響應其他中斷利用IRET,CPU會將斷點從堆棧彈出,于是程序返回斷點繼續執行原來的程序。中斷系統的功能(一)實現中斷及返回檢測中斷當中斷允許時,CPU在每條指令的最后一個時鐘周期檢測中斷請求。響應中斷時保護斷點和現場
斷點自動保護,現場要在中斷服務程序中保護斷點:CPU響應中斷時,會停止當前執行程序,轉去執行中斷處理程序,原程序被打斷的地方斷點地址:中斷處理程序結束后,返回原程序恢復執行的第一條指令的地址,又稱“返回地址”?,F場是指進入中斷服務程序之前CPU各個寄存器的狀態。
中斷服務完成時將中斷申請信號撤銷中斷服務完成后恢復現場和斷點,返回原程序中斷服務程序返回斷點中斷處理斷點CS:IP+1正常程序CS:IP繼續執行流程中斷傳送流程返回(二)對中斷進行控制對中斷申請進行控制中斷傳送是一種效率更高的程序傳送方式進行傳送的中斷服務程序是預先設計好的中斷請求是外設隨機向CPU提出的CPU對請求的檢測是有規律的:一般是在每條指令的最后一個時鐘周期采樣中斷請求輸入引腳例1一個輸入設備的中斷接口電路CQD+5V160HD0AA
中斷允許觸發器B
中斷申請觸發器DCQRB
地址
譯碼
器INTR162HIOWA15~A0IORINTA
緩沖器
緩沖器中斷類型碼(0FH)三態三態D7~D0D7~D0EOC外設電路說明外設準備好數據后,發EOC信號(負脈沖),把數據放到接口線上,同時置“1”中斷申請觸發器。執行如下指令,置中斷允許觸發器為“1”,開放中斷
MOVAL,01HMOVDX,160HOUTDX,AL若禁止中斷,則執行如下指令
MOVAL,00HMOVDX,160HOUTDX,AL當INTR為高電平,且CPU中斷開放(IF=1),則CPU響應中斷。在中斷響應周期,INTA有效,讀取中斷類型碼,清除中斷申請觸發器。在中斷服務程序中讀取外設數據
MOVDX,162HINAL,DX對中斷響應進行控制標志寄存器Flag中IF標志可控制CPU是否查詢INTR引腳STIIF=1允許中斷CLIIF=0禁止中斷(三)實現優先權排隊當系統中多個中斷源同時發出中斷請求時,CPU按照重要性和急迫性(中斷優先級)擇優響應:不同優先級同時請求時,CPU先響應高優先級中斷;CPU在處理低優先級中斷時,若出現高優先級中斷請求,則轉去處理高優先級中斷(中斷嵌套);CPU在處理高優先級中斷時,若出現低優先級中斷請求,暫不響應;CPU在處理中斷時,若出現同級別中斷請求,則等當前中斷處理完后,才處理新的請求。(四)尋找中斷源
有中斷申請時需要查找中斷源,以決定中斷服務程序入口地址。預先約定當有中斷申請時,則轉到固定地址執行中斷服務程序。電路簡單,但一般只能為幾個中斷源服務。查詢
在中斷服務程序中查詢中斷源。向量中斷(應答方式)響應中斷時,CPU發中斷響應信號,中斷源收到此信號發出中斷類型碼(中斷向量號),CPU根據中斷類型碼決定中斷服務程序入口地址。中斷源查找和中斷優先級排隊的實現軟件查詢中斷源CPU響應中斷后用軟件查詢申請中斷的外設查詢方法優點查詢次序即是優先權次序;省硬件,不需要硬件排隊電路。缺點:轉至服務程序入口時間長A15A0~譯碼器地址IORINTRD7~D0源ABCDEFGH20H三態緩沖器中斷申請觸發器查詢程序
INAL,20HLEABX,BRNTABCIRCLE:SHRAL,1JCGETABADDBX,2ORAL,ALJNZCIRCLEJMPERRORGETAB:JMPCS:[BX]BRNTABDWSUB1,SUB2,SUB3,SUB4DWSUB5,SUB6,SUB7,SUB8CF0DSTMSBLSB鏈式優先權排隊電路(應答方式)電路說明每個接口有一個中斷允許輸入IEI和中斷允許輸出IEO,只有IEI為高電平時才允許該接口芯片發中斷請求;IEO=IEI?INTINT表示該設備有中斷請求;每個接口芯片的中斷請求輸出為OC門,具有負邏輯的“線或”關系;響應中斷時由INTA從接口讀取中斷矢量。外設2IEIIEO接口2外設1IEIIEO接口1SEL1外設3IEIIEO接口3SEL2SEL3+5VD7~D0INTAINTRIORIOWINTAinCPUINTAINTR外設1外設2外設接口1菊花鏈邏輯電路外設接口2外設3外設接口3≥1菊花鏈邏輯電路菊花鏈邏輯電路┇IREQIREQIREQ中斷確認鏈式優先權排隊電路(應答方式)INTAinINTAin中斷確認中斷確認中斷優先權編碼電路中斷請求寄存
器中斷服務寄存
器優先權編碼器優先權編碼器B2B1B0A2A1A0A>B比較器INTRIR0IR1IR2IR3IR4IR5IR6IR7電路說明中斷請求寄存器由IR0~IR7可分別引入8個外設的中斷請求。優先權編碼器把當前最高優先級的中斷輸入進行編碼后輸出。中斷服務寄存器記錄正在服務的中斷申請。中斷申請的最高級與正在服務的最高級比較,只有申請級高于服務級才能提出中斷申請(INT)。7.28086/8088的中斷結構8086中斷8088的中斷系統采用向量中斷機制能夠處理256個中斷用中斷類型碼(中斷向量號)0~255區別可屏蔽中斷還需要借助專用中斷控制器Intel8259A實現優先權管理8086CPU中斷分為兩類硬件中斷:由外部請求引起的中斷軟件中斷:由指令執行引起的中斷非屏蔽中斷源中斷邏輯INTO指令單步中斷除法錯誤INTN指令CPUINTRNMI可屏蔽中斷源8259A中斷控制器IR0IR1IR2IR3IR4IR5IR6IR7外設中斷源
INTA內部中斷除法錯中斷指令中斷溢出中斷單步中斷外部中斷非屏蔽中斷可屏蔽中斷(一)硬件中斷可屏蔽中斷可屏蔽中斷申請輸入為INTR引腳,高電平有效,該中斷受IF控制,CPU在每條指令的最后一個T狀態檢測該引腳。由IF標志控制可屏蔽中斷是否允許響應;中斷類型碼來自外部中斷控制器。CPU響應中斷后,使INTA有效,從外設讀取中斷類型碼。可屏蔽中斷主要用于主機與外設交換數據
8086/8088有256個中斷類型,用1個字節進行編碼稱為中斷類型碼,每個中斷類型碼對應4個字節的中斷服務程序入口地址。中斷標志IF的狀態IF=0:可屏蔽中斷不會被響應關中斷、禁止中斷、中斷屏蔽系統復位,使IF=0任何一個中斷被響應,使IF=0執行指令CLI,使IF=0IF=1:可屏蔽中斷會被響應開中斷、允許中斷、中斷開放執行指令STI,使IF=1執行指令IRET恢復原IF狀態明確IF標志的狀態是關鍵非屏蔽中斷非屏蔽中斷申請輸入為NMI引腳,上升沿有效,該中斷不受CPU控制,中斷類型碼為2(INT2)。非屏蔽中斷一般用于非常事件:PC/XT機中用于系統板上RAM奇偶錯;I/O通道奇偶錯和8087異常中斷。(二)軟件中斷由于8086/8088內部執行程序出現異常引起的程序中斷DIV和IDIV指令(INT0)INT指令(INTn)INTO指令(INT4)單步中斷(INT1)
⑴除法錯中斷DIV和IDIV指令(INT0)若除數為0或商超過寄存器所能表達的范圍,則產生類型為0的軟件中斷,稱為除法錯中斷。例如:movbl,0idivbl ;除數BL=0,產生除法錯中斷movax,200hmovbl,1divbl ;商=200H,不能用AL表達 ;產生除法錯中斷⑵指令中斷在執行中斷調用指令INTn時產生的一個中斷類型碼為n(0~255)的內部中斷,稱為指令中斷其中中斷類型碼為3的指令中斷比較特別(生成一個字節的指令代碼:11001100),常用于程序調試,被稱為斷點中斷例如:DEBUG.EXE調試程序的運行命令G設置的斷點,就是利用INT3指令實現的⑶溢出中斷若OF=1,則指令INTO引起類型碼為4的軟件中斷在執行溢出中斷指令INTO時,若溢出標志OF為1,則產生一個中斷類型碼為4的內部中斷,被稱為溢出中斷例如:movax,2000haddax,7000h
;2000H+7000H=9000H,溢出:OF=1into ;因為OF=1,所以產生溢出中斷⑷單步中斷若單步中斷TF為1,則在每條指令執行結束后產生一個中斷類型碼為1的內部中斷,稱為單步中斷例如:DEBUG.EXE調試程序的單步命令T就利用單步中斷實現對程序的單步調試PC機的中斷優先順序NMIN軟件中斷INTRTF=1中斷響應周期讀中斷類型碼下條指令現行指令IF=1NNNNYYYYY查詢中斷的順序,決定了各種中斷源的優先權軟件中斷除法錯中斷指令中斷溢出中斷非屏蔽中斷可屏蔽中斷單步中斷高低NYNYNNNNNYY執行指令執行完否?取指令IF=1?內部中斷?NMI?INTR?TF=1?類型碼=0~255類型碼=2類型碼=1中斷響應,讀類型碼FLAG入棧TEMP←TFIF=TF=0CS、IP入棧計算向量表地址高字→CS,低字→IP執行中斷服務程序NMI?TEMP=1?轉入中斷服務程序恢復CS和IP恢復FLAGS返回被中斷的程序YYYYNIRET指令的操作8086/8088的中斷處理流程PC機的中斷向量中斷向量:中斷服務程序的入口地址(首地址)邏輯地址含有段地址CS和偏移地址IP(32位)。每個中斷向量的低字是偏移地址、高字是段地址,需占用4個字節8086/8088微處理器從物理地址000H開始,依次安排各個中斷向量,向量號也從0開始8086/8088CPU在內存00000H~003FFH的1KB地址空間內,為256個中斷建立一個中斷向量表,中斷向量表就是中斷服務程序入口地址表。類型255指針除數為0
單步非屏蔽斷點溢出003FCH00000H00004H00008H0000CH00010HCSIP段地址偏移量每個中斷類型碼對應4個字節的程序入口地址,中斷類型碼乘以4便可得到中斷向量表中存放中斷服務程序入口地址的存儲單元的偏移量。0~4:專用中斷類型5~1FH:保留中斷類型(可修改中斷服務程序)20H~0FFH:用戶可用中斷類型其中:8~0FH是8個硬件中斷中斷類型碼為N的中斷向量的物理地址=N×4例:INT21H指令調用第21號中斷服務程序,其入口地址存放在中斷向量表中84H~87H的連續4個字節。(21H×4=84H)偏移量低8位偏移量高8位段地址低8位段地址高8位87H86H85H84HIPCSINTR引腳信號說明多個外設中斷源通過8259A中斷優先級管理器連接到INTR引腳,外設中斷源的優先級由8259A進行管理
IR0~IR7優先級由高到低,通常對應的中斷類型碼為08H~0FH。(IR0~IR7的編號恰好對應中斷類型碼的低3位)例:IR0對應中斷類型碼08HIR0IR1IR2IR3IR4IR5IR6IR78259AINTINTR8086外設中斷源1外設中斷源8IBMPC/AT機中一般使用兩片8259A級連8259級聯后可管理15個外設,只能兩級級聯優先級:01(8……15)3…7
高低IR8~IR15的中斷向量:70H~77HIR0IR1IR2IR3IR4IR5IR6IR7
主片8259AINTRINTRCPUIR8IR9IR10IR11IR12IR13IR14IR15從片8259AINTR中斷響應過程中斷檢測
CPU在每條指令執行的最后一個時鐘周期檢測中斷請求,如果出現以下之一,則進入中斷響應周期。有軟件中斷有NMI中斷信號有INTR中斷信號,而且CPU允許中斷響應,即IF=1獲取中斷類型碼進入中斷響應周期以后,若是INTR,則產生INTA信號,中斷源通過數據總線的低8位將中斷類型碼傳送給CPU;若是NMI,則類型碼是2;若程序出錯產生中斷,則使用默認的類型碼;若是中斷指令,則指令中有類型碼。保護斷點系統自動將標志寄存器壓入堆棧,清除TF和IF,并將斷點處的CS和IP壓入堆棧,先壓CS后壓IP。得到中斷向量系統根據中斷類型碼形成中斷服務程序的入口地址,轉入中斷服務程序執行,每個中斷都有自己的處理程序。中斷服務處理進入中斷服務程序后,通常由以下步驟組成保護現場,開中斷中斷處理關中斷,恢復現場,又開中斷用中斷返回指令(IRET)返回中斷返回:從堆棧中恢復斷點處CS:IP和FLAG內部中斷服務程序編寫內部中斷服務程序與編寫子程序類似利用過程定義偽指令PROC/ENDP第1條指令通常為開中斷指令STI最后用中斷返回指令IRET通常采用寄存器傳遞參數主程序需要調用中斷服務程序調用前,需要設置中斷向量設置必要的入口參數利用INTn指令調用中斷服務程序處理出口參數例7.1編寫80H號中斷服務程序,并調用功能:具有顯示以“0”結尾字符串的功能,利用INT10H實現字符顯示字符串緩沖區首地址為入口參數:
DS:DX(段地址:偏移地址)傳遞參數光標處寫字符(BIOS功能調用INT10H)功能號:AH=0EH入口參數:AL=字符的ASCII碼;數據段intoff dw? ;用于保存偏移地址intseg dw? ;用于保存段基地址intmsg db‘AInstructionInterrupt!’,0dh,0ah,0以“0”結尾回車、換行;代碼段movax,3580h ;利用DOS功能35H號int21h ;獲取原80H中斷向量movintoff,bx ;保存偏移地址movintseg,es ;保存段基地址獲取中斷向量(DOS功能調用INT21H)功能號:AH=35H入口參數:AL=中斷向量號出口參數:ES:BX=中斷向量(段地址:偏移地址);設置新中斷向量pushdsmovdx,offsetnew80h;取中斷程序偏移地址movax,segnew80h;取中斷程序段地址movds,axmovax,2580hint21hpopds設置中斷向量(DOS功能調用INT21H)功能號:AH=25H入口參數:AL=中斷向量號DS:DX=中斷向量(段地址:偏移地址);中斷調用,設置入口參數:
DS=段地址(已設置)
DX=偏移地址movdx,offsetintmsg int80h
;調用80H中斷服務程序AInstructionInterrupt!程序功能;主程序返回movdx,intoff ;恢復原中斷向量movax,intsegmovds,ax ;改變DSmovax,2580hint21h ;因緊接著返回DOSmovax,4c00h ;故無需恢復DSint21h設置中斷向量(DOS功能調用INT21H)功能號:AH=25H入口參數:AL=中斷向量號DS:DX=中斷向量(段地址:偏移地址);80H號內部中斷服務程序:;顯示字符串(以“0”結尾);入口參數:DS:DX=緩沖器首地址new80h proc ;過程定義
sti
;開中斷
pushax ;保護寄存器
pushbx pushsi movsi,dxnew1: moval,[si];讀取欲一個顯示字符
cmpal,0;為結尾“0”,則結束
jznew2 movbx,0;采用ROM-BIOS功能調用
movah,0eh int10h incsi;準備顯示下一個字符
jmpnew1光標處寫字符(BIOS功能調用INT10H)功能號:AH=0EH入口參數:AL=字符的ASCII碼new2: popsi ;恢復寄存器
popbx popax
iret;中斷返回new80h endp;過程(中斷服務程序)結束AInstructionInterrupt!程序功能7.3中斷控制器INTEL8259A(一)功能簡介8259A是與8086系列CPU兼容的可編程中斷控制器(PIC),用于管理8086/8088的可屏蔽中斷。具有8級優先權控制,通過級聯可擴展至64級每一級中斷都可以屏蔽和允許。中斷響應時提供中斷類型碼。中斷申請可以有電平觸發,也可有邊沿觸發。中斷響應周期,可提供相應的中斷向量號有多種工作方式,可通過編程選擇。(二)8259內部結構INTAINT數據總線
緩沖器讀/寫控制邏輯級連緩沖比較SP/EN控制電路控制邏輯初始化命令
寄存器組操作命令寄存器組
中斷
請求
寄存
器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7
中斷服務寄存器(ISR)中斷優先級分析器中斷屏蔽寄存器
(IMR)D7~D0RDWRCSA0CAS1CAS2CAS0內部結構說明中斷請求寄存器IRR保存8條外界中斷請求信號IR0~IR7的請求狀態Di位為1表示IRi引腳有中斷請求;為0表示無請求中斷服務寄存器ISR保存正在被8259A服務著的中斷狀態Di位為1表示IRi中斷正在服務中;為0表示沒有被服務中斷屏蔽寄存器IMR保存對中斷請求信號IR的屏蔽狀態Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許中斷優先級分析器決定中斷申請的優先級;控制邏輯中包含兩個寄存器組初始化命令寄存器組:ICW1~ICW4操作命令寄存器組:OCW1~OCW3級聯邏輯控制8259A的主從工作方式。D7~D0雙向,三態數據線,可直接與系統總線相連。IR7~IR08個外部中斷請求輸入引腳,可為高電平有效或上升沿有效。RD讀信號,輸入,低電平有效,若有效則把8259A內部寄存器數據讀入到CPU。WR寫信號,輸入,低電平有效,若有效則把數據寫入到8259A的內部寄存器。1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2(三)8259A引腳圖CS片選信號,低電平有效,給8259A分配地址。A0用于選擇8259A內部不同寄存器。INT中斷申請線,輸出,高電平有效,8259A的中斷申請輸出引腳(可連接8086的INTR)。INTA輸入,低電平有效,有效時8259A輸出中斷類型碼1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2CAS2~CAS0級聯信號線,當8259A為主片時為輸出引腳,從片時為輸入引腳。收到第一個INTA時,主片通過這三根線通知有中斷申請的從片在第二個INTA時送出中斷類型碼。1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2SP/EN:在非緩沖工作方式時,SP有效,輸入,決定8259A為主片還是從片。
SP=1表示是主8259A,SP=0表示是從8259A;在緩沖工作方式時,EN有效,輸出,由它打開總線緩沖器。
EN=1表示允許總線緩沖器輸入,
EN=0表示允許總線緩沖器輸出;1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A與計算機的連接(一)8259A單片工作方式的接口電路D7~D0D7~D0RDWRINTINTAA0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7CAS2CAS1CAS0IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7日時鐘鍵盤保留COM2COM1硬盤軟盤打印機+5VIORIOWINTRINTAA1A13A15A14A10A12A1174LS3074LS04A9+5VA8A7A6A5+5VCBA74LS138Y1Y0G2AG2BG1電路說明8259A數據線與控制線對應連接到系統總線;由74LS30(8輸入與非門)和74LS138(三-八譯碼器)對地址線進行譯碼決定端口地址,地址為020H~03FH;8086使用低8位數據線與8259A傳遞信息。8086的A1接到8259的A0線上,使用偶地址;CAS2CAS1CAS0未接,SP/EN接正電源;地址范圍范圍A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
00000000001XXXXX0020H~003FH(二)兩片8259A級聯工作管理15級中斷+5VD7~D0INT8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7CAS2CAS1CAS0D7~D0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15CAS2CAS1CAS0INTINTA2CS(020H
~03FH)(0A0H~0BFH)INTA1CSINTARDWRA0INTARDWRA0D7~D0實時鐘改向INT0A協處理器CSINTRINTAIORIOWA1說明從片8259A的中斷申請端INT接主片的IR2主片的SP/EN接+5V,從片的SP/EN接地,主從片的CAS2、CAS1、CAS0對應連接。主片的端口地址INTA1CS為020H~03FH,從片的端口地址INTA2CS為0A0~0BFH.8086系統主從芯片都用偶地址傳遞信息。三.8259A的工作方式1、設置優先級的方式:(1)全嵌套方式(2)特殊全嵌套方式(3)優先級自動循環方式(4)優先級特殊循環方式2、屏蔽中斷源的方式:(1)普通屏蔽方式(2)特殊屏蔽方式3、中斷結束處理方式(1)中斷自動結束(2)一般的中斷結束方式(3)特殊的中斷結束方式4、連接系統總線的方式(1)緩沖方式(2)非緩沖方式5、引入中斷請求的方式(1)邊沿觸發(2)電平觸發(3)查詢方式1.中斷優先方式與中斷嵌套中斷優先方式
兩類優先級控制方式:固定優先級和循環優先級固定優先級方式所有中斷請求IRi的中斷優先級固定不變優先級排列順序可編程改變加電后8259A的默認方式,默認優先級順序從高到低為IR0~IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低級最高級最高級最低級優先級IR7IR6IR5IR4IR3IR2IR1IR0默認優先級優先級可編程改變循環優先級方式
中斷源輪流處于最高優先級,即自動中斷優先級循環初始優先級順序可用編程改變某中斷請求IRi被處理后,其優先級別自動降為最低,原來比它低一級的中斷上升為最高級
IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低級最高級最高級最低級ISR內容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服務結束以前0101000001000000IR4的服務結束以后ISRi中斷嵌套方式在中斷處理過程中允許被更高優先級的事件所中斷稱為中斷嵌套。8259A有兩種中斷嵌套方式:普通全嵌套方式(默認方式)
一中斷正被處理時,只有更高優先級的事件可以打斷當前的中斷處理過程而被服務。特殊全嵌套方式
一中斷正被處理時,允許同級或更高優先級的事件可以打斷當前的中斷處理過程而被服務。注:特殊全嵌套僅用于多個8259A級連時的主8259A,而不能用于從屬8259A或單8259A系統。D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:從片的INT被主片封鎖,故更高級別的IR0-IR2中斷也無法得到響應特殊嵌套方式:因主片不封鎖從片的INT,故級別高的IR0-IR2中斷可以得到響應。(但IR3-IR7仍被本從片封鎖)C.假定IR3發生中斷,并獲得服務一般嵌套方式:IR4的中斷被服務時,這些中斷將被封鎖。B.特殊嵌套方式:IR4的中斷被服務時,只封鎖IR5-IR7。A.INTE.從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式與特殊全嵌套方式的區別
去CPU8259A使用的優先級設置方式全嵌套方式8259A初始化之后未作其他優先級方式的設置,中斷優先級0~7處理,0最高。特殊全嵌套方式基本與全嵌套方式相同,只是處理某一級中斷時,如果有同級的中斷請求,也給予響應,從而實現一種對于同級中斷請求的特殊嵌套。一般用于8259A級聯的系統中,主片工作在特殊全嵌套方式,從片處于其他優先級方式。優先級自動循環方式多個中斷源優先級相當的場合。一個設備中斷服務后,自動將優先級將為最低。初始化時,最高優先級為0。優先級特殊循環方式與優先級自動循環方式比,最低優先級由編程設定。如,設IR5為最低優先級,IR6則為最高。2.中斷結束處理方式當某一IRi中斷被服務時,ISR中的相應位ISRi=1。當服務結束后,則必須清零該ISRi位,即ISRi=0。使ISRi=0是通過向8259A發出中斷結束命令(EOI命令)實現的。三種EOI命令自動EOI(AEOI)——(自動EOI方式)非指定EOI(NSEOI)——(一般EOI方式)指定EOI(SEOI)——(特殊EOI方式)
AEOI(自動EOI方式):在第2個INTA結束時,由8259A使ISRi自動復位;因不保留當前正在服務的中斷的狀態,故AEOI不能用于中斷嵌套方式NSEOI(一般EOI方式):由CPU發出正常EOI命令,該EOI命令使ISRi=1的位中優先級最高的那一位復位。用于普通全嵌套方式
SEOI(特殊EOI方式):非全嵌套方式下,用當前的ISR無法確定哪一級中斷為最后響應和處理的中斷,所以要采用這種結束方式。由CPU發出一條SEOI命令,該EOI命令中指出了所要復位的ISR的位號。中斷服務程序┇向從PIC發EOI命令讀從PIC的ISR全0?向主PIC發EOI命令YIRET恢復現場N特殊全嵌套方式下的EOI處理只有當從PIC的中斷全部處理完后,才能向主PIC發EOI命令3.屏蔽中斷源的方式普通屏蔽方式:IMR屏蔽字決定了允許或禁止某位IRi所對應的中斷:IMi=1禁止,IMi=0允許。特殊屏蔽方式:提供了允許較低優先級的中斷能夠得到響應的特殊手段。原理:假定當前正在處理IR6,先進入特殊屏蔽方式,然后設置IM6=1。這時,除IR6外的所有中斷請求均能得到響應。一般在中斷處理程序中使用。特殊屏蔽方式中只能用SEOI命令結束中斷。4.中斷觸發方式邊沿觸發IRi出現上升沿表示有中斷請求,中斷請求輸入端出現上升沿觸發信號后,可一直保持高電平電平觸發IRi出現高電平表示有中斷請求中斷得到響應后,輸入端必須及時撤除高電平,以防不該有的第二次中斷在第1個INTA結束前,IRi必須保持高電平
查詢方式設備通過8259A發中斷請求信號,但8259A不使用INT信號向CPU發中斷請求CPU內部中斷運行觸發起復位,禁止外部對CPU的中斷請求CPU使用軟件查詢確認中斷源對外設來講是中斷方式請求服務,對CPU來講是查詢方式確定服務對象5.連接總線方式緩沖方式多片級聯的系統中,8259A使用總線驅動器和數據總線連接。SP/EN端與總線驅動器的允許端連接,在輸出狀態字或中斷類型碼時,SP/EN為低電平,用于啟動總線驅動器非緩沖觸發用于單片或片數很少的級聯系統中SP/EN作為輸入端,表明8259A的主從關系6.級聯工作方式單片8259A可支持8個中斷源;采用多片8259A級連,可最多支持64個中斷源。n片8259A可支持7n+1個中斷源;級連時只能有一片8259A為主片,其余的均為從片;涉及到的8259A引腳包括:CAS0-CAS2SP/ENIRiINT四.8259A編程字8259A的控制命令分為初始化命令字ICWICW1~ICW4向8259A寫入ICW過程稱為初始化編程操作命令字OCW
OCW1~OCW3向8259A寫入OCW過程稱為操作方式編程(一)初始化命令字ICW1(InitialCommandWord,初始化字):芯片控制初始化命令字
A0=0,D4=1
表示對ICW1編程D0(IC4)D0=1需要ICW4;D0=0不需要ICW4(默認ICW4為全0)A00IC4SNGLADILTIM1A7A6A5D7D6D5D4D3D2D1D0D1(SNGL)D1=1為單片8259工作方式;D1=0為級聯工作方式,此時要用ICW3指明級聯端D2(ADI)指明8080/8085系統中地址間距,8086系統不用D3(LTIM)D3=1中斷請求是電平觸發方式;D3=0上升沿觸發方式。A00IC4SNGLADILTIM1A7A6A5D7D6D5D4D3D2D1D0D5~D7(A5~A7)8080/8085系統中斷服務程序頁面地址,8086系統不用注:初始化命令字一般在初始化8259時才寫入,而且寫入有嚴格的順序,先寫ICW1,最后寫ICW4A00IC4SNGLADILTIM1A7A6A5D7D6D5D4D3D2D1D0ICW2:中斷類型碼的初始化命令字A0=1,跟在ICW1后表示對ICW2編程T7~T3
為8086系統中的中斷類型碼的高5位,低3位根據申請端自動填充。T2~T0:最低3位為中斷源的序號IRn000~111分別對應IR0~IR7由8259A根據中斷源的序號自動填入
例若ICW2=00001000B,則8259A的IR3引腳上的中斷請求的中斷類型碼為00001011即0x0BA01D7D6D5D4D3D2D1D0A15/T7A14/T6A13/T5A12/T4A11/T3A10A9A8ICW3(級聯控制字):主/從芯片初始化命令字
A0=1,且ICW1的D1=0(SNGL),跟在ICW2表示對ICW3編程主片Si=1表示對應的IRi引腳接有從片從片ID2~ID0對應從片的標識位,ID2~ID0與從片連接到主片的輸入端相對應。A0D7D6D5D4D3D2D1D01S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0100000ID2ID1ID0主片從片ICW3必須與主從片的連接關系一致:
例如,主片的IR4與從片的INT線連接,主片的ICW3=10H(00010000B),從片的ICW3=04H(00000100B)。中斷響應時,主片通過級連線CAS2-CAS0送出被允許中斷的從片標識碼,各從片用自己的ICW3與CAS2-CAS0比較,二者一致的從片才可發送中斷向量碼。ICW4(中斷結束方式字):方式控制初始化命令字A0=1,且ICW1的D0=1,跟在其他初始化字后表示對ICW4編程D0(pm)
D0=1為8086/8088處理器體系;
D0=0為80/85處理器體系D1(AEOI)
D1=1自動結束中斷方式,在第二個INTA清ISR中的對應位;D1=0非自動結束中斷方式,中斷結束時發EOI命令清ISR中的對應位A0AEOIM/SBUFD7D6D5D4D3D2D1D01000SFNMupmD2(M/S)在緩沖方式下(BUF=1),選擇主片和從片,M/S=1為主片,M/S=0為從片。在非緩沖方式下,由SP/EN引腳設定主片和從片。D3(BUF)D3=1為緩沖工作方式,SP/EN為緩沖選通信號。單片系統都置1;D3=0為非緩沖工作方式。A0AEOIM/SBUFD7D6D5D4D3D2D1D01000SFNMupmD4(SFNM)D4=1特殊全嵌套方式,此時允許同級中斷再次進入,一般用于多片級聯方式;D4=0普通全嵌套方式,禁止同級中斷再次進入。A0AEOIM/SBUFD7D6D5D4D3D2D1D01000SFNMupm(二)操作命令字
OCW用于設置8259的工作狀態在初始化后寫入OCW的寫入順序可任意寫入地址要求:寫入OCW1必須A0=1寫入OCW2,OCW3必須A0=0
OCW1
(OperationCommandWord):中斷屏蔽操作命令字
A0=1表示設置OCW1Mi=1表示屏蔽IRi輸入中斷請求例屏蔽鍵盤
IN AL,22H ORAL,02H/ANDAL,0FDH OUT22H,ALA0D7D6D5D4D3D2D1D01M7M6M5M4M3M2M1M0OCW2:設置優先級循環及中斷結束方式A0=0,且D4D3
=
00,表示對OCW2編程R優先權循環狀態
R=1優先權自動循環;R=0優先權不循環SL
設定標志,指明L2、L1、L0是否有效。
SL=1由L2、L1、L0指明中斷號或最低優先權EOI
中斷結束命令標志,為1,非自動結束方式時清ISi
一般EOI指令為MOVAL,20HOUT20H,ALA0D7D6D5D4D3D2D1D00RSLEOI00L1L0L2RSLEOI001非特殊EOI結束中斷命令,清除當前的中斷響應011特殊EOI命令,清除由L2L1L0指示的中斷響應101特殊EOI命令,清除當前的中斷響應,優先級循環一次100設置8259A在中斷自動結束模式下按優先級自動循環方式工作000取消8259A在中斷自動結束模式下的優先級自動循環工作方式111結束由L2~L0指示的中斷,并使L2~L0為最低優先級110設定最低優先級特殊循環,此時由L2~L0指出最低優先級010無操作3.OCW3:設置/取消特殊屏蔽方式,設置中斷查詢方式,讀內部寄存器A0=0,且D4D3
=
01,表示對OCW3編程ESMMSMM11設置特殊屏蔽,只要內部IF=1,無優先級,未屏蔽中斷申請均可進入
10取消特殊屏蔽
0*SMM無任何作用A0D7D6D5D4D3D2D1D000ESMMSMM01RRRISPP=1,設置8259A為查詢工作方式,此時8259A不發INT信號,CPU通過查詢指令決定服務程序。 查詢得到格式如下表所示I=1表示有中斷請求W2W1W0為當前最高優先級的中斷請求中斷號A0D7D6D5D4D3D2D1D00W1W0W2IXXXXA0D7D6D5D4D3D2D1D000ESMMSMM01RRRISPP=0,由RR和RIS設置下一個讀取的寄存器
RRRIS10在下一個A0=0端口讀IRR11在下一個A0=0端口讀ISR
若下一個A0=1,則讀取IMR寄存器
例:讀取ISR到AL中;讀取IMR到AL中
moval,0BHmoval,0AHout20H,alout20H,alINal,20HINal,22H
A0D7D6D5D4D3D2D1D000ESMMSMM01RRRISP8259A的工作過程1.中斷源通過IR0~IR7向8259A發中斷請求,使得8259A的中斷請求寄存器IRR的相應位置1。2.IRR中經中斷屏蔽寄存器IMR允許后的置位位進入優先權判別器PR,PR將其中最高優先權的中斷請求從INT輸出,送至CPU的INTR端。3.若CPU處于開中斷狀態,則在當前指令執行結束后,啟動中斷響應總線操作,發出兩個負脈沖作為響應信號。4.8259A接收到第一個負脈沖,完成如下工作:(1)使ISR相應位置1,表示CPU已為該中斷請求服務。(2)使IRR的相應位清0。5.8259A接收到第二個負脈沖,將中斷類型號送上數據總線。中斷類型號由用戶編程和中斷請求引腳IRi的序號i共同決定(CPU讀取中斷類型號,經響應過程后,進入中斷服務程序,直到服務結束返回)。6.若8259A工作在自動結束中斷方式AEOI,則8259A清除ISR的相應位,否則直至中斷服務結束,發出EOI命令,才能使ISR中的相應位清0。五.8259A初始化編程舉例(一)8259A初始化編程順序級聯方式?ICW1ICW2ICW3要ICW4?ICW4NYYN(二)IBMPC/XT機單片8259A初始化要求:端口地址為20H和22H接收8個中斷請求信號為邊沿觸發選擇全嵌套方式,IR0為最高優先級,IR7為最低優先級,緩沖方式設定IR0中斷類型碼為08H注:8259A的地址線A0連接到系統地址總線的A1上A0AEOIM/SBUFD7D6D5D4D3D2D1D01000SFNMupmICW4A00IC4SNGLADILTIM1A7A6A5D7D6D5D4D3D2D1D0ICW1A01XXXT3T4T7T6T5D7D6D5D4D3D2D1D0ICW2初始化程序段INTA0_0EQU20HINTA0_1EQU22HMOV
AL,
13H;(00010011B)OUT
INTA0_0,AL;ICW1(邊沿觸發、單片、寫ICW4)MOV
AL,
08H;(00001000B)OUT
INTA0_1,
AL
;ICW2(IR0中斷類型碼為08H)MOV
AL,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 九年級化學上冊 第一單元 走進化學世界課題2 化學是一門以實驗為基礎的科學第2課時 對人體吸入的空氣和呼出的氣體的探究教學設計 (新版)新人教版
- 2024秋五年級英語上冊 Unit 4 What can you do課時5 Let's learn-Write and say教學設計 人教PEP
- 2023一年級數學上冊 一 生活中的數第3課時 玩具教學設計 北師大版
- 2023四年級數學下冊 五 動物世界-小數的意義和性質信息窗1 小數的意義第3課時教學設計 青島版六三制
- 行業作風動員會
- 2024-2025學年高中語文 第三單元 縱論人生 闡釋哲理 第9課 覓渡覓渡渡何處教學設計 語文版選修《中國現當代散文鑒賞》
- 8 神奇的肥皂粉 (教學設計)人教版(2012)美術五年級下冊
- 2023七年級道德與法治下冊 第二單元 做情緒情感的主人第四課 揭開情緒的面紗 第1框 青春的情緒教學設計 新人教版
- 2024年五年級英語上冊 Unit 3 My father is a writer Fun Facts教學設計 人教精通版(三起)
- 三年級下冊科學教學設計-太陽與影子-青島版
- 子宮肌瘤課件PPT(共38張PPT)
- 《學前教育科學研究方法》全套課件(完整版)
- API-620 大型焊接低壓儲罐設計與建造
- 部編統編版五年級下冊道德與法治全冊教案教學設計與每課知識點總結
- 部編版三年級道德與法治下冊第6課《我家的好鄰居》精品課件(含視頻)
- 浙江省杭州市介紹(課堂PPT)
- 工程設計變更管理臺賬
- 路面及綠化帶拆除和修復方案
- 001壓力管道安裝安全質量監督檢驗報告
- 全日制專業學位研究生《環境生態學》課程案例教學模式探討
- 供應商本項目管理、技術、服務人員情況表
評論
0/150
提交評論