版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6章:中斷控制方式主講老師:廉迎戰(zhàn)副教授
本章學(xué)習(xí)目標(biāo)
掌握有關(guān)中斷的基本概念、中斷優(yōu)先級、中斷嵌套、中斷屏蔽、中斷向量等基本概念。掌握可編程中斷控制器8259A的功能、內(nèi)部結(jié)構(gòu)、工作方式及初始化命令和操作命令定義、使用方法,服務(wù)程序的基本編寫方法。了解8086/8088中斷系統(tǒng)中的中斷源分類、IBM-PC機(jī)中斷系統(tǒng)結(jié)構(gòu)。6.2.1中斷概念1、中斷:使CPU掛起正在運(yùn)行的程序而轉(zhuǎn)去執(zhí)行特殊事件的操作。2、中斷源:引起中斷的事件3、中斷作用: (1)分時處理 (2)故障處理 (3)實(shí)時處理4、中斷請求定義:用某種信號通知CPU指明某臺外設(shè)正在請求需要中斷現(xiàn)行程序的執(zhí)行。條件:第一、外設(shè)本身的準(zhǔn)備工作已完成;第二、系統(tǒng)允許該外設(shè)發(fā)中斷請求。6.2中斷處理一個中斷的過程,就是妥善處理以下一些基本問題的過程:1)如何識別中斷源。2)何時檢查中斷輸入信號及其處理辦法。3)如何開放和關(guān)閉中斷。4)如何識別優(yōu)先級較高的中斷。5)如何保護(hù)和恢復(fù)中斷的現(xiàn)場。6)如何把控制轉(zhuǎn)給中斷服務(wù)程序。5、中斷源類型:IO外圍設(shè)備(鍵盤、打印機(jī))實(shí)時時鐘(時鐘)故障(電源斷電)中斷程序指令和軟件故障(INTR、溢出、除0)外中斷(硬中斷):外設(shè)的I/O請求——可屏蔽中斷INTR
電源掉電/奇偶錯——非屏蔽中斷NMI
內(nèi)中斷(軟中斷):INT指令/CPU錯(除法錯、溢出、斷點(diǎn)、INTn)6、中斷系統(tǒng)應(yīng)具備功能:實(shí)現(xiàn)中斷響應(yīng)中斷處理中斷返回中斷優(yōu)先級排隊(duì)中斷嵌套中斷響應(yīng)的條件1)設(shè)置中斷請求允許觸發(fā)器,發(fā)出中斷請求信號2)設(shè)置中斷屏蔽觸發(fā)器,當(dāng)此觸發(fā)器為“1”時,允許外設(shè)的中斷請求才能被送出至CPU。3)CPU處于開中斷狀態(tài)。4)CPU在一條現(xiàn)行指令結(jié)束之后響應(yīng)中斷。6.2.2中斷處理過程和中斷返回中斷過程包括:中斷請求、中斷排隊(duì)、中斷響應(yīng)、中斷服務(wù)和中斷返回。1、中斷請求:中斷源(指令\引腳)向CPU發(fā)送的中斷信號。2、中斷排隊(duì):CPU內(nèi)部據(jù)優(yōu)先級,進(jìn)行中斷排隊(duì),確定響應(yīng)次序。3、中斷響應(yīng):CPU內(nèi)部響應(yīng)中斷自動完成關(guān)中斷保護(hù)斷點(diǎn)(CS:IP→(SP))保護(hù)斷點(diǎn)(IF→(SP))形成中斷源的中斷服務(wù)程序人口地址[(中斷碼*4→CS:IP)采用向量表法]4、中斷服務(wù)(中斷服務(wù)程序)中斷入口:保護(hù)現(xiàn)場(PUSH XX寄存器)開中斷(IF=1)中斷處理(功能實(shí)現(xiàn))關(guān)中斷(IF=0)恢復(fù)現(xiàn)場(POP XX寄存器)中斷返回(IRET)5、中斷返回中斷返回恢復(fù)斷點(diǎn)(CS:IP←(SP))恢復(fù)斷點(diǎn)(IF←(SP))開中斷注:中斷服務(wù)程序的入口地址——中斷矢量6.中斷響應(yīng)和處理流程中斷響應(yīng)的過程1)發(fā)出中斷響應(yīng)信號。2)同時自動關(guān)中斷,即置中斷允許觸發(fā)器IF為“0”。3)保存斷點(diǎn)。4)保護(hù)現(xiàn)場。5)輸入到中斷服務(wù)程序邏輯的入口地址。6.中斷服務(wù)程序框圖保護(hù)有關(guān)寄存器開中斷中斷處理關(guān)中斷恢復(fù)有關(guān)寄存器中斷返回圖中斷服務(wù)程序框圖返回本節(jié)7、中斷屏蔽寄存器中斷屏蔽觸發(fā)器:8位。當(dāng)此觸發(fā)器在程序控制下,使觸發(fā)器相應(yīng)位置“1”時,允許中斷(EI);若觸發(fā)器相應(yīng)位置“0”時,則關(guān)閉中斷(DI)。8、開中斷和關(guān)中斷標(biāo)志寄存器:中斷控制位IF(InterruptEnableFlag)。當(dāng)IF=“1”時,CPU開中斷(可屏蔽中斷)
當(dāng)IF=“0”時,CPU關(guān)中斷(可屏蔽中斷)9、中斷源管理方式中斷源管理方式分兩種:固定入口地址法中斷向量表法
8086/8088CPU采用中斷向量表法
6.2.3中斷優(yōu)先權(quán)管理1.中斷優(yōu)先級:當(dāng)CPU正在處理中斷時,能響應(yīng)更高級別的中斷請求,而屏蔽掉同級或較低級別的中斷請求。
2.中斷屏蔽觸發(fā)器:當(dāng)此觸發(fā)器在程序控制下,使觸發(fā)器相應(yīng)位置“1”時,允許中斷(EI);若觸發(fā)器輸出端置“0”時,則關(guān)閉中斷(DI)。
3、中斷優(yōu)先權(quán)管理方法:軟件法、硬件法軟件優(yōu)先權(quán)管理 利用軟件優(yōu)先次序確定中斷源的優(yōu)先次序。 方法:所有中斷源請求信號“或”送CPU申請中斷 查詢流程確定中斷的優(yōu)先級 特點(diǎn):簡單、易實(shí)現(xiàn)、時間長。硬件優(yōu)先權(quán)管理 利用硬件(中斷優(yōu)先權(quán)編碼電路、鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路等)確定中斷源優(yōu)先次序 方法:中斷優(yōu)先權(quán)編碼電路 組成:硬件編碼電路和比較器組成中斷源申請均送CPU的引腳編碼器送出優(yōu)先權(quán)的最高編碼,據(jù)此獲得相應(yīng)的中斷服務(wù)程序入口地址CPU響應(yīng)中斷過程中,比較器判斷高級別的中斷請求才被響應(yīng)。鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路 組成:硬件邏輯電路代替查詢過程各中斷源通過一個特定的信號串行連接形成鏈,無中斷請求,該信號可串行通過各中斷源。當(dāng)鏈中某一個中斷源請求,該信號在相關(guān)的鏈上被CPU響應(yīng)。鏈?zhǔn)诫娐穬?yōu)先次序決定中斷源的次序。CTC、PIO、SIO、8259
特點(diǎn):硬件復(fù)雜、速度快。4.中斷優(yōu)先排隊(duì)與中斷源的識別
(1)程序查詢識別(軟件查詢法)(2)硬件串行順序鏈識別(硬件查詢法)(3)中斷向量法識別(4)單級中斷處理和多級中斷處理(1)、程序查詢識別中斷方法(2)、硬件串行順序鏈識別中斷方法(3)、
中斷向量編碼示意圖同時中斷請求的處理方法(a)單級中斷處理(b)多級中斷處理(4).單級中斷處理和多級中斷處理:單級中斷處理不允許其他設(shè)備再中斷CPU的程序;多級中斷處理允許優(yōu)先級高的中斷打斷優(yōu)先級低的中斷服務(wù)程序。(3)多級中斷結(jié)構(gòu)(4)
單級中斷結(jié)構(gòu)6.2.4.18086中斷能力8086微處理器有處理256種中斷的能力。采用向量中斷法每個中斷源分配給一個中斷類型碼,在0~255之間,用一字節(jié)表示,也稱為256種類型中斷。256種類型中斷分為硬件中斷和軟件中斷。硬件中斷:NMI和INTR。軟件中斷:異常事件或執(zhí)行中斷指令I(lǐng)NTn。6.2.48086/8088中斷系統(tǒng)軟件中斷(內(nèi)部)硬件中斷(外部)INTn指令中斷邏輯斷點(diǎn)中斷溢出中斷單步中斷除數(shù)為0中斷(3)(4)(1)(0)非屏蔽中斷請求(2)中斷控制器8259A可屏蔽中斷請求NMIINTR8086
中斷源分配圖INTOINT3OF=1TF=16.2.4.28086中斷分類1.硬件中斷(外部中斷)外部電路產(chǎn)生的中斷稱為硬件中斷,又分為非屏蔽中斷和可屏蔽中斷兩大類??善帘沃袛嘟?jīng)CPU的INTR引腳輸入,若IF=1,CPU開放中斷,可以響應(yīng)中斷請求。若IF=0,CPU不響應(yīng)中斷,即屏蔽中斷。非屏蔽中斷經(jīng)CPU的NMI引腳輸入,不受IF的限制,只要NMI有請求,CPU一定響應(yīng),故稱為非屏蔽中斷。2.軟件中斷(內(nèi)部中斷)處理器執(zhí)行一條INTn指令的中斷。n為中斷類型碼,可指向任何一種中斷類型。當(dāng)執(zhí)行一條INTn指令后,程序就自動轉(zhuǎn)向n類型中斷的處理程序中去。分類:除法0、單步1、斷點(diǎn)3、溢出4、軟件6.2.4.38086中斷優(yōu)先級和中斷類型碼1.中斷優(yōu)先級響應(yīng)次序?yàn)椋撼ㄥe誤、溢出、INTnNMI非屏蔽中斷INTR可屏蔽中斷(判定IF=1YES響應(yīng))單步中斷2.中斷類型碼除法錯誤、溢出、單步、斷點(diǎn)、NMI中斷專用中斷由硬件產(chǎn)生INTn軟件中斷包含在指令中外部可屏蔽中斷INTR由硬件電路向CPU提供中斷類型碼(00H---0XFFH)6.2.4.4中斷向量與中斷向量表1、中斷向量:每種中斷處理程序的入口地址稱為中斷向量。2、中斷向量表:
8086將內(nèi)存最低地址的1K單元作為中斷向量表,每個中斷向量對應(yīng)一個中斷類型碼,存放256種中斷處理程序的入口地址,每個地址占4字節(jié)(段地址:偏移地址)。中斷向量表的分配如下圖所示:03FFH03FCHType225CSIP:0083HCSType32IP0080H007FHCSType31IP007CH:CSType5IP0014H0013HCSType4IPCSType3IPIPIPIPCSCSCS0010H000FH000CH000FH0008H0007H0004H0003H0000HType2Type1Type0:224保留27個用戶定義個8086
專用
5
個溢出中斷斷點(diǎn)中斷非屏蔽中斷單步中斷除數(shù)為0地址由低變高中斷操作的5個步驟:(1)取中斷類型號(2)計算中斷向量地址(3)取中斷向量,偏移地址送IP,段地址送CS(4)轉(zhuǎn)入中斷處理程序(5)中斷返回到INT指令的下一條指令例:BIOS中斷INT4AH
4AH4=128H4AH4+2=12AH(128H)IP(12AH)CS3、設(shè)置中斷向量表: 步驟:編制中斷服務(wù)程序、安排存儲空間中斷服務(wù)程序的入口地址注入中斷向量表。
A、設(shè)置8086中斷向量方法:例:中斷服務(wù)程序的入口地址INTSUB,中斷碼為40H。VECTAB SEGMENT AT 0000 ORG 0100HADDRP DW 2 DUP(?)VECTAB ENDSCODE SEGMENT ------ CLIPUSH DSMOV AX,VECTABMOV DS,AXMOV ADDRP,OFFSET INTSUBMOV ADDRP+2,SEG INTSUBPOP DSSTI ------CODE ENDS4、8086/8088對中斷源的采樣有幾條指令是在緊跟其后的一條指令也被執(zhí)行完才去采樣:
1)對段寄存器的裝入指令
2)STI和IRET指令
3)WAIT指令
4)HLT指令6.2.4.5、8086中斷程序的編寫步驟:主程序:(1)設(shè)置中斷向量(INTTAB=CS:IP)(2)設(shè)置8086CPU中斷允許位
FLAGS中的IF位=1
允許中斷(STI開中斷)
=0禁止中斷(CLI關(guān)中斷)
(3)編寫系統(tǒng)主程序
8086中斷處理子程序:保存工作寄存器(PUSH)開中斷(STI)中斷處理程序關(guān)中斷(CLI)恢復(fù)工作寄存器(POP)中斷返回(IRET)
例:利用中斷方式讀取60H端口內(nèi)容,并且在61H端口輸出。中斷類型號為0FH。解:中斷類型號:0FH程序過程:主程序:1、CLI2、設(shè)置中斷向量3、STI4、主程序內(nèi)容5、中斷服務(wù)程序:解:程序:VECTAB SEGMENT AT 0000 ORG 00F0HADDRP DW 2 DUP(?)VECTAB ENDSSTACKSEGMENTDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACKSTART:CLI;1、關(guān)中斷解:PUSHDS;2、設(shè)置中斷矢量MOVAX,0000HMOVDS,AXMOVAX,OFFSETIRQ7SUBMOVSI,ADDRPMOV[SI],AXMOVAX,SEGIRQ7SUBMOVSI,ADDRP+2MOV[SI],AXPOPDSSTI;3、開中斷A1:JMPA1;4、主程序解:中斷子程序IRQ7SUB: 5、中斷服務(wù)子程序PUSHAXSTIINAL,61HOUT60H,AL
CLIPOPAXSTIIRETCODEENDSENDSTART
6.2.5.1、
IBMPC中斷向量設(shè)置方法:
IBMPCDOS功能調(diào)用(21H)存取中斷向量設(shè)置中斷向量(將中斷向量存放至中斷向量表中):AH=25HAL=中斷類型號DS:DX=中斷向量INT21H取中斷向量(從中斷向量表中取中斷向量送到ES:BX中AH=35HAL=中斷類型號INT21H返回時送ES:BX=中斷向量IBMPC6.2.5IBMPC中斷處理(選講)中斷向量表的初始化方法一:采用DOS系統(tǒng)功能調(diào)用。即INT21H的25H號功能調(diào)用。方法二:將中斷服務(wù)程序的入口地址直接裝入中斷向量表中。IBMPC例1 用DOS功能調(diào)用存取中斷向量
MOVAL,NMOVAH,35HINT21H;取原中斷向量
PUSHESPUSHBX;保存原中斷向量
PUSHDSMOVAX,SEGINTHANDMOVDS,AXMOVDX,OFFSETINTHANDMOVAL,NMOVAH,25HINT21H;設(shè)置新的中斷向量POPDS……POPDXPOPDSMOVAL,NMOVAH,25HINT21H;恢復(fù)原中斷向量RET;INTHAND:……IRET該程序Verygood!6.2.5.2、IBMPC中斷程序的編寫步驟:主程序:(1)設(shè)置中斷向量(DOS調(diào)用AH=25H,AH=35H)(2)設(shè)置CPU中斷允許位
FLAGS中的IF位=1
允許中斷(STI開中斷)
=0禁止中斷(CLI關(guān)中斷)
(3)設(shè)置中斷屏蔽位
I/O端口
21H中斷屏蔽寄存器
中斷屏蔽位=0允許中斷
=1禁止中斷76543210定時器鍵盤打印機(jī)中斷屏蔽寄存器21H76543210中斷命令寄存器20HEOIMOVAL,20HOUT20H,ALIBMPC中斷處理子程序:保存工作寄存器(PUSH)開中斷(STI)中斷處理程序關(guān)中斷(CLI)送中斷結(jié)束命令(EOI,僅對硬中斷)恢復(fù)工作寄存器(POP)中斷返回(IRET)
例2.
編寫一個中斷處理程序,要求在主程序運(yùn)行期間,每隔10秒響鈴一次,同時顯示‘Thebellisring!’dsegsegmentcount dw1mess db'Thebellisring!',0ah,0dh,'$'dsegendscsegsegmentmainprocfarassumecs:cseg,ds:dseg,es:dsegstart:pushdsmovax,axpushaxmovax,dsegmovds,ax
moval,1ch ;
movah,35hint21h
;取原中斷向量
pushespushbx;保存原中斷向量
pushds
movdx,offsetringmovax,segringmovds,axmoval,1chmovah,25hint21h
;設(shè)置新的中斷向量
popds
inal,21handal,11111110bout21h,al
;設(shè)置中斷屏蔽位,允許定時器中斷
sti;開中斷
movdi,2000delay:movsi,3000delay1:decsijnzdelay1decdijnzdelay
;主程序工作(期間每秒產(chǎn)生中斷18.2次)
popdxpopdsmoval,1chmovah,25hint21h
;恢復(fù)原中斷向量
retmainendp二重循環(huán)延時程序,在此期間等待中斷發(fā)生ringprocfarpushdspushaxpushcxpushdx
movax,dseg ;取數(shù)據(jù)段的段地址
movds,axsti;開中斷,允許更高級的中斷
deccountjnzexit
movdx,offsetmessmovah,09int21h
;顯示‘Thebellisring!’
mov dx,100;聲音持續(xù)時間,50個高電平,50個低電平
in al,61h;喇叭的端口地址為61h,教材P129中內(nèi)容
andal,11111100bsound: xoral,2 out61h,al movcx,140hwait1: loopwait1 dec dx jnesound
;響鈴
movcount,182;182/18.2=10秒,每隔10秒響鈴一次exit: cli;關(guān)中斷
mov al,20h out 20h,al ;置EOI pop dx pop cx pop ax pop ds iretringendpcsegendsendstart
脈沖寬度的設(shè)置6.2.6.1、中斷系統(tǒng)應(yīng)具有的功能多中斷源請求,軟件可禁止與允許每個請求。中斷優(yōu)先級判別功能,響應(yīng)優(yōu)先級別最高的請求。中斷嵌套功能,高級別中斷可中斷較低級別的中斷。響應(yīng)中斷后,能自動轉(zhuǎn)向中斷處理程序,處理結(jié)束后自動返回主程序。每片管理8個中斷源,MAX2級,64個中斷源。實(shí)現(xiàn)多級嵌套優(yōu)先級管理多種工作模式6.2.6中斷控制器8259中斷系統(tǒng)的組成微處理器應(yīng)有處理中斷請求的機(jī)制與相關(guān)硬件電路:接收請求,響應(yīng)請求,保護(hù)現(xiàn)場,轉(zhuǎn)向中斷服務(wù)程序,處理完返回。外圍應(yīng)有一個與處理器匹配的中斷控制器:管理多個中斷源,優(yōu)先級裁決,中斷源屏蔽等功能。依處理器的結(jié)構(gòu)編寫中斷處理程序,安排相關(guān)的系統(tǒng)初始化。6.2.6.28259A的結(jié)構(gòu)和引腳1.功能及工作特點(diǎn)1)可用9片8259A來構(gòu)成64級主從式中斷系統(tǒng)。2)每一級中斷都可以屏蔽或允許。3)8259A可提供相應(yīng)的中斷向量,從而能迅速地轉(zhuǎn)至中斷服務(wù)程序。4)通過編程使8259A工作在多種不同的方式。5)工作時只需要一組+5V電源。2、8259A可編程中斷控制器結(jié)構(gòu):中斷請求寄存器(IRR):8位寄存器,可寄存儲8個請求輸入(IR0~IR7)的狀態(tài)。優(yōu)先權(quán)裁決器:對請求源與正在被服務(wù)的中斷級進(jìn)行比較,裁決出優(yōu)先級最高者。CPU設(shè)定。中斷服務(wù)寄存器(ISR):8位,與IRR對應(yīng),記錄正被處理的請求。IRn被響應(yīng),ISRn被置1;IRn處理結(jié)束,ISRn置0。中斷屏蔽寄存器(IMR):8位,某位置1對應(yīng)IRR位的請求被屏蔽??刂七壿嫞杭拇?259A的命令字,多種工作方式的控制,向處理器發(fā)INT,接收INTA#。級聯(lián)緩沖與比較器:多片8259A級聯(lián)時,對從片的標(biāo)識碼進(jìn)行寄存與比較。MAX2級=64中斷。3.結(jié)構(gòu)框圖圖8259A的方框圖4.8259A的引腳圖8259A的引腳中斷控制器8259A的主要引腳信號說明D7~D0:數(shù)據(jù)總線,雙向,與系統(tǒng)數(shù)據(jù)線連接。CS#:片選信號,確定芯片在系統(tǒng)I/O空間位置。A0:地址線,8259A占相鄰的2個I/O地址,與CS#信號配合,A0=0選偶端口,A0=1選奇端口。CAS2~CAS0:級聯(lián)線,雙向。在主從級聯(lián)結(jié)構(gòu)中,主片輸出,從片輸入。主片發(fā)從片標(biāo)識碼,從片比較,符合時輸出中斷類型碼。SP#/EN#:雙向信號。輸入時為SP#,硬接線確定主從;輸出時為EN#,作為DB緩沖允許。INT:中斷請求,輸出,與相連。INTA#:中斷響應(yīng),輸入,與8086INTA#相連。5.8259A的工作原理
第一個負(fù)脈沖到達(dá)時,8259A做到:1)使IRR的鎖存功能失效。2)使當(dāng)前中斷服務(wù)寄存器ISR中的相應(yīng)位置1。3)便IRR寄存器中的相應(yīng)位清零。第二個負(fù)脈沖到達(dá)時,8259A完成:1)將中斷類型寄存器中的內(nèi)容ICW2,送到數(shù)據(jù)總線的D7~D0,CPU將此作為中斷類型碼。2)第二個脈沖結(jié)束時,8259A會將第一個脈沖到來時設(shè)置的當(dāng)前中斷服務(wù)寄存器ISR的相應(yīng)位清零。6.8259A寄存器及I/O端口的識別表
8259A讀寫操作及地址CSRDWRA0功能8259A端口PC/XT機(jī)端口0010讀IRR,ISR偶地址20H0011讀IMR奇地址21H0100寫ICW1,OCW2,OCW3偶地址20H0101寫ICW2,ICW3,ICW4,OCW1奇地址21H011×無操作
1×××無操作
6.2.6.3中斷觸發(fā)方式和中斷響應(yīng)過程1.中斷觸發(fā)方式(1)邊沿觸發(fā)方式(2)電平觸發(fā)方式(3)中斷查詢方式2.中斷響應(yīng)過程1)當(dāng)一條或多條中斷請求線,IR7~I(xiàn)R0=8259=“1”,同時,使中斷請求鎖存器IRRn=“1”。2)在IRR接收與IMR比較,----響應(yīng),比較PR。若高,8259AINT=1,若低,8259AINT=0,向CPU發(fā)高電平有效信號INT,請求中斷服務(wù)。3)CPU當(dāng)前一條指令執(zhí)行完畢,且IF=1時,CPU響應(yīng)中斷請求,進(jìn)入中斷響應(yīng)總線周期。(CPU送-INTA=0ISRn=1IRRNn=0),并且送中斷類型碼。4)8259A接到來自CPU的第一個脈沖,把允許中斷的最高優(yōu)先級請求位,置入服務(wù)寄存器ISR,并把IRR中對應(yīng)的位清零。
5)第二個負(fù)脈沖到達(dá)時,CPU產(chǎn)生中斷類型碼,CS:IP=中斷向量執(zhí)行中斷服務(wù)程序
6)
中斷結(jié)束,CPU發(fā)IRET;8259清除ISRn=0
3.中斷響應(yīng)總線周期時序4.中斷控制器:8259A的級連IR0IR1IR2::IR7SP#/EN#INTA#INT8259ACAS0CAS1CAS2IR0IR1IR2::IR7SP#/EN#INTA#INT8259ACAS0CAS1CAS2IR0IR1IR2::IR7SP#/EN#INTA#INT8259ACAS0CAS1CAS2最多64條中斷請求線+5SLAVE1SLAVE2SLAVE0
;SLAVE7MASTER:80866.2.6.4、8259A的工作方式8259A中斷觸發(fā)方式:電平觸發(fā);邊沿觸發(fā);程序觸發(fā)6.2.6.4、8259A的工作方式8259A中斷優(yōu)先權(quán)設(shè)置方式普通全嵌套方式;固定優(yōu)先級,IR0最高,IR7最低。(默認(rèn))特殊完全嵌套方式:與(a)基本相同,響應(yīng)同級中斷請求。(主片設(shè)置特殊方式)優(yōu)先級自動循環(huán)方式:某級被響應(yīng)后,降為最低。如IR4被響應(yīng)后,優(yōu)先級順序變?yōu)椋篒R5,IR6,IR7,IR0,IR1,IR2,IR3,IR4。優(yōu)先級特殊循環(huán)方式;編程指定最低優(yōu)先級,其它同(C)。6.2.6.4、8259A的工作方式8259A屏蔽中斷源方式普通屏蔽方式:對應(yīng)IMR為1位的中斷請求將被屏蔽。特殊屏蔽方式:執(zhí)行中斷程序時,動態(tài)改變優(yōu)先級結(jié)構(gòu),屏蔽本級,允許較低級請求被服務(wù)。中斷時清除ISR=0
特殊屏蔽方式是在中斷服務(wù)程序中使用,用于中斷嵌套,(低級別可以打斷高級別).6.2.6.4、8259A的工作方式8259A結(jié)束中斷處理方式:
ISRn被清0,中斷結(jié)束。中斷自動結(jié)束方式(EOI):8259A收到INTA#后自動把ISRn位清0。一般的中斷結(jié)束方式:8086發(fā)命令清除ISR中級最高的位,結(jié)束中斷。特殊的中斷結(jié)束方式:用于優(yōu)先權(quán)循環(huán)情況,將ISR中指定位清0。注意:級聯(lián)方式不用自動EOI方式,中斷結(jié)束用一般和特殊.一個中斷結(jié)束可能發(fā)兩次EOI(一次主、一次從),分別清除主從片的ISR。6.2.6.4、8259A的工作方式8259A連接總線方式緩沖方式:8259A通過總線驅(qū)動器和數(shù)據(jù)總線相連,這就是緩沖方式。非緩沖方式:當(dāng)系統(tǒng)中只有單片8259A時,一般將它直接與數(shù)據(jù)總線相連中斷查詢方式CPU不是通過對中斷申請的響應(yīng)而是靠主動查詢實(shí)現(xiàn)對外部接口的服務(wù)。中斷級聯(lián)方式主—從:主片工作特殊全嵌套方式;從片工作與全嵌套方式,允許同級中斷。圖8259A緩沖方式下級連結(jié)構(gòu)圖8259A非緩沖方式下級連結(jié)構(gòu)返回本節(jié)6.2.6.5、8259A的命令字(Commandword,CW):8259A工作方式設(shè)定及運(yùn)行中的控制,均由8086發(fā)來的命令字(1字節(jié)代碼)決定。命令字分初始化命令字和操作命令字兩種,系統(tǒng)向8259A兩個端口之一寫入。8259A根據(jù)接收命令字的端號,特征位及順序決定命令字的屬性。6.2.4.5.1、初始化命令字(InitializationCommandWord,ICW)有ICW1~ICW4四個初始化命令字,有接收順序要求。ICW1:硬件設(shè)置
LTIM=1中斷請求電平觸發(fā),LTIM=0中斷請求邊沿觸發(fā)。
SNGL=1單片8259A系統(tǒng),SNGL=0多片8259A系統(tǒng)。ICW2:中斷類型碼設(shè)定,最低3位由IRn的n值定。ICW3:在多片8259A系統(tǒng)中依主片、從片而定。主片:有1位其IR連有從片用8位。從片:INT連到主片IR哪端,用最后3位。ICW4:工作方式設(shè)定
SFNM=1特殊全嵌套、SFNM=0非特殊全嵌套。
AEOI=1中斷自動結(jié)束、AEOI=0一般中斷結(jié)束。
BUF=0,DB無緩沖,SP#/EN#用作SP#。
BUF=1,DB有緩沖,主從片軟件定。
M/S=1為主片、M/B=0為從片。PM=1,8086系統(tǒng)、PM=0,8085系統(tǒng)。6.2.6.5.2、操作命令字:(OperationCommandWord,OCW)共有OCW1~OCW3三個操作命令字。8259A在運(yùn)行期間可接收8086發(fā)來的OCW,對工作方式進(jìn)行控制,OCW無接收順序要求,有端口號要求。OCW1:屏蔽命令字,有1位對應(yīng)請求被封。OCW2:優(yōu)先級循環(huán)及EOI方式設(shè)定。OCW3:特殊屏蔽方式,中斷查詢方式及讀寄存器。1M7M6M5M4M3M2M1M01=屏蔽IRn請求0=不屏蔽IRnA0D7D6D5D4D3D2D1D01、中斷屏蔽(操作命令字(OCW1))2、中斷結(jié)束操作命令字(OCW2)0RSLE0I00L2L1L0A0D7D6D5D4D3D2D1D0001011101111000100110010普通EOI方式特殊的EOI方式普通EOI循環(huán)方式特殊EOI循環(huán)方式自動EOI循環(huán)(復(fù)位)自動EOI循環(huán)(置位)置位優(yōu)先權(quán)命令無效000—IR0001—IR1010—IR2011—IR3100—IR4101—IR5110—IR6111—IR7當(dāng)SL=1時,由L2~L0指出中斷結(jié)束命令中需要清除ISR中的哪一位等等R—優(yōu)先權(quán)循環(huán)控制位R=1循環(huán),R=0固定EOI—自動返回3、控制8259運(yùn)行方式操作命令字(OCW3)00ESMMSMM01PRRRISA0D7D6D5D4D3D2D1D00X:無效10:特殊屏蔽方式復(fù)位11:特殊屏蔽方式置位0X:無效10:下次RD#有效,讀IRR11:下次RD#有效,讀ISM1:查詢8259狀態(tài)0:不查詢標(biāo)志位4、8259查詢字IRn端口0I--------W2W1W0A0D7D6D5D4D3D2D1D01:中斷0:不6.2.6.6、8259A級聯(lián)使用的初始化編程舉例
1、8259編程步驟:CLI初始化程序預(yù)置中斷向量表中斷服務(wù)程序8259初始化STI例:中斷結(jié)束命令和普通全嵌套方式使用單片8259、上升沿、碼40H、普通嵌套、非緩沖、8086、非EOI方式。ICW1=13H;ICW2=40H、ICW4=01H IR4中斷請求
IR3、IR6中斷請求響應(yīng)過程。 (P189) 2、8259A級聯(lián)使用的初始化編程舉例
某系統(tǒng)中設(shè)置兩片8259實(shí)現(xiàn)中斷控制,它們之間采用級聯(lián)方式連接,一片從8259的INT端與主8259的IR3相連,在當(dāng)前主8259的IR0和IR5端上分別引入兩個中斷請求,從8259的IR2和IR3端也分別引入兩個中斷請求,如下圖所示。
已知主8259引入的中斷類型碼分別為40H和45H,它們的中斷服務(wù)程序在同一段中,其段基址為1000H,偏移地址分別為1050H和2060H,而由從8259引入的中斷請求IR2和IR3的中斷類型碼分別為32H和33H,它們的中斷服務(wù)程序的段基址為2000H,偏移地址分別為5440H和3620H,那么首先應(yīng)將四個中斷入口寫入中斷入口地址表中,如圖所示。
若已知主8259的端口地址為FFE8H和FFE9H,從8259的端口地址為FFEAH和FFEBH,應(yīng)分別對主8259和從8259進(jìn)行初始化編程。主8259ICWICW1A0=000010001B=11HICW2A0=101000000B=40HICW3A0=100001000B=80HICW4A0=100010001B=11H特殊全嵌套方式、非緩沖、非自動EOIOCW1A0=111010110B=D6HOCW2A0=000100000B=20H對主8259的初始化程序段發(fā)如下所示:MOV AL,11HMOV DX,0FFE8H ;定義ICW1:級聯(lián)方式,邊緣觸發(fā)OUT DX,AL ;并且設(shè)置ICW4MOV AL,40HMOV DX,0FFE9HOUT DX,AL ;定義ICW2:中斷類型碼為40H~47HMOV AL,08HOUT DX,AL ;定義ICW3:主8259的IR3接有從8259的INTMOV AL,11HOUT DX,AL ;定義ICW4:特殊完全嵌套,非自動EOIMOV AL,0D6HOUT DX,AL ;定義OCW1:屏蔽掉IR0、IR3、IR5以外的中斷源MOV AL,20HMOV DX,0FFE8HOUT DX,AL ;定義OCW2:普通EOI結(jié)束方式從8259ICWICW1A0=000010001B=11HICW2A0=100110000B=30HICW3A0=100000011B=03HICW4A0=100010001B=11HOCW1A0=111110011B=F3HOCW2A0=000100000B=20H對從8259的初始化程序段發(fā)如下所示:MOV AL,11HMOV DX,0FFFAHOUT DX,AL ;定義ICW1:級聯(lián)方式,邊緣觸發(fā)MOV AL,30HMOV DX,0FFFBHOUT DX,AL ;定義ICW2:中斷類型碼30H~37HMOV AL,03HOUT DX,AL ;定義ICW3:從82
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園工作總結(jié)感恩每一天
- 2024年設(shè)備監(jiān)理師考試題庫含答案(綜合卷)
- 演藝經(jīng)紀(jì)人的工作總結(jié)
- 服裝行業(yè)的搭配顧問工作總結(jié)
- 建材行業(yè)行政后勤工作總結(jié)
- 2025年高考?xì)v史一輪復(fù)習(xí)之文化傳承與文化創(chuàng)新
- 花藝裝飾行業(yè)美工工作技能總結(jié)
- 2024年設(shè)備監(jiān)理師考試題庫及答案【真題匯編】
- 2024消防安全知識教育總結(jié)范文(35篇)
- 農(nóng)村蓋房傷亡合同(2篇)
- 大慶市2025屆高三年級第二次教學(xué)質(zhì)量檢測(二模)政治試卷(含答案)
- 2025年內(nèi)蒙古阿拉善額濟(jì)納旗事業(yè)單位引進(jìn)48人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年內(nèi)江資中縣融媒體中心招考聘用新媒體工作人員3人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 裝修材料合同范例
- 【7地RJ期末】安徽省合肥市廬江縣2023-2024學(xué)年七年級上學(xué)期期末地理試題(含解析)
- 共用線路三方協(xié)議合同范例
- 戰(zhàn)略規(guī)劃的關(guān)鍵要點(diǎn)
- 社會工作服務(wù)質(zhì)量保障措施
- 雅禮中學(xué)2024-2025學(xué)年初三創(chuàng)新人才選拔數(shù)學(xué)試題及答案
- 冬季高空作業(yè)施工方案
- 山西云時代技術(shù)有限公司招聘筆試題目
評論
0/150
提交評論