版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章輸入輸出和中斷技術(shù)第6章節(jié)目錄6.1輸入輸出系統(tǒng)概述6.2簡單接口電路6.3輸入輸出的控制方式6.4中斷技術(shù)6.5可編程中斷控制器8259A章第6章作業(yè)7章6.1輸入輸出系統(tǒng)概述處理器和主存儲(chǔ)器之外的部分統(tǒng)稱為輸入輸出系統(tǒng),它包括輸入輸出設(shè)備、輸入輸出接口和輸入輸出軟件。計(jì)算機(jī)在運(yùn)行過程中所需要的程序和數(shù)據(jù)由外設(shè)輸入,而結(jié)果要輸出到外設(shè)去。接口輸入輸出系統(tǒng)電源CPU內(nèi)存內(nèi)存接口鍵盤、鼠標(biāo)、顯示器打印機(jī)、聲音輸入輸出、圖形輸入、視頻輸入輸出用戶交互接口外存接口磁盤機(jī)磁帶機(jī)光盤機(jī)通信接口終端MODEM電傳機(jī)ADCDAC數(shù)字化儀器測控接口系統(tǒng)總線1、I/O接口要解決的問題一、I/O接口的基本功能速度匹配問題 外設(shè)與CPU相比,速度差距很大。信號(hào)電平和驅(qū)動(dòng)能力問題 CPU的信號(hào)電平05V,而外設(shè)的電平范圍寬,需要驅(qū)動(dòng)功率大。信號(hào)形式匹配問題 外設(shè)的信號(hào)可以是數(shù)字量、開關(guān)量、模擬量等。信息格式問題 外設(shè)可以是串行信號(hào)、并行信號(hào)等。時(shí)序配合問題 外設(shè)有自己的時(shí)序與控制邏輯,與CPU不一致。I/O地址譯碼與設(shè)備選擇把選中的外設(shè)與總線相接,未選中的外設(shè)與總線隔離(高阻態(tài))
信息的輸入與輸出通過接口可以向外設(shè)輸入或輸出數(shù)據(jù)。信息轉(zhuǎn)換
信息格式變換、電平轉(zhuǎn)換、碼制轉(zhuǎn)換、傳送管理及聯(lián)絡(luò)控制等功能。命令、數(shù)據(jù)和狀態(tài)的緩沖與鎖存接口電路有信息緩沖能力。可以解決速度匹配問題,實(shí)現(xiàn)CPU與外設(shè)之間的同步。2、I/O接口的功能串行接口的功能1、發(fā)送時(shí)將并行數(shù)據(jù)轉(zhuǎn)換為串行。2、接收時(shí)相反。3、發(fā)送時(shí)將TTL電平轉(zhuǎn)換為-15V--+15V。4、接收時(shí)相反。5、異步發(fā)送與接收。接口外設(shè)CPU計(jì)算機(jī)DBWRRDINTRCS譯碼電路AB二、I/O接口的編址方式1、CPU與I/O接口通信是通過一組寄存器實(shí)現(xiàn)的。
I/O信息的三種類型:數(shù)據(jù)、命令、狀態(tài)。傳送這三類信息的通道分別稱為:
數(shù)據(jù)端口(I、O)、命令端口(O)、狀態(tài)端口(I)2、不同接口具有的端口數(shù)各不相同,計(jì)算機(jī)中為每一個(gè)端口都賦予一個(gè)唯一編號(hào),稱為端口地址(或端口號(hào)、接口地址)。端口有兩種編址方式:統(tǒng)一編址和獨(dú)立編址。接口外設(shè)CPU計(jì)算機(jī)命令端口數(shù)據(jù)端口狀態(tài)端口DBWRRDINTRCS譯碼電路AB每個(gè)端口有自己的地址編號(hào)
①統(tǒng)一編址把外設(shè)端口與內(nèi)存統(tǒng)一進(jìn)行編址。各占據(jù)統(tǒng)一地址空間的不同部分。0地址空間(共1MB)內(nèi)存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H端口的兩種編址方式:統(tǒng)一編址和獨(dú)立編址優(yōu)點(diǎn):指令統(tǒng)一,靈活;訪問控制信號(hào)統(tǒng)一。缺點(diǎn):內(nèi)存可用地址空間減小
②獨(dú)立編址外設(shè)地址空間和內(nèi)存地址空間相互獨(dú)立。優(yōu)點(diǎn):內(nèi)存地址空間不受I/O編址的影響缺點(diǎn):需要專用I/O指令,功能較少應(yīng)用:Z-80系列和x86系列均采用此方式。如:存儲(chǔ)器讀寫用MOV指令
I/O接口讀寫用IN或OUT指令8088/8086CPU的I/O編址方式采用I/O獨(dú)立編址方式(但地址線與存儲(chǔ)器共用)地址線上的地址信號(hào)用IO/M
來區(qū)分:IO/M=1時(shí)為I/O地址,IO/M=0時(shí)為存儲(chǔ)器地址。I/O操作只使用20根地址線中的16根:A15
~A0可尋址的I/O端口數(shù)為64K(65536)個(gè)I/O地址范圍為0~FFFFHIBMPC只使用了1024個(gè)I/O地址(0~3FFH)三、8086/8088I/O端口訪問
四、8086/8088
I/O端口地址的譯碼2、I/O接口地址譯碼電路的設(shè)計(jì)原理與存儲(chǔ)器譯碼電路的設(shè)計(jì)思路一樣,由A0A15與IO/M信號(hào)一起進(jìn)行譯碼即可。1、根據(jù)系統(tǒng)提供的三總線信號(hào)為A0~A19、D0~D7、RD、WR、IO/M等設(shè)計(jì)譯碼電路并與系統(tǒng)進(jìn)行連接。A15~A12與非門IO/MA15~A12與非門IO/M用于存儲(chǔ)器芯片選通用于I/O芯片選通8088最小模式下的原理圖
8284A地址總線(20根)READYRESETALEA19~A8AD7~AD0地址鎖存儲(chǔ)器8282(三片)DENDT/RIO/MWRRDHOLDHLDAINTRINTACLK收發(fā)器8286(一片)數(shù)據(jù)總線(8根)控制總線READYRESET8088MN/MX+5VA0~A19D0~D7存儲(chǔ)器系統(tǒng)I/O接口節(jié)6.2簡單接口電路數(shù)據(jù)線控制線狀態(tài)線DBCBAB數(shù)據(jù)輸入寄存器(or三態(tài)門)數(shù)據(jù)輸出寄存器(鎖存器)狀態(tài)寄存器(or三態(tài)門)命令寄存器譯碼電路控制邏輯一、接口電路的基本結(jié)構(gòu)CPU外設(shè)
數(shù)據(jù)輸入/輸出寄存器——暫存輸入/輸出的 數(shù)據(jù)命令寄存器——存放控制命令,用來設(shè)定接 口功能、工作參數(shù)和工作方式。狀態(tài)寄存器——保存外設(shè)當(dāng)前狀態(tài),以供 CPU讀取。1、接口電路中寄存器的作用數(shù)據(jù)輸入接口必須具有三態(tài)輸出能力,以便與總線掛接外設(shè)有數(shù)據(jù)保持能力時(shí)—可用三態(tài)門實(shí)現(xiàn)外設(shè)無數(shù)據(jù)保持能力時(shí)—用三態(tài)輸出的鎖存器實(shí)現(xiàn)數(shù)據(jù)輸出接口常用鎖存器實(shí)現(xiàn)2、數(shù)據(jù)輸入/輸出接口電路的要求
三態(tài)門:高電平、低電平、高阻態(tài)通常一個(gè)器件中包含8個(gè)三態(tài)門常用芯片:74LS244應(yīng)用例子:開關(guān)接口二、簡單數(shù)據(jù)輸入接口設(shè)計(jì)。。。。74LS244I0I3。。。。E1數(shù)據(jù)總線E1=0輸入E1=1高阻數(shù)據(jù)總線……CS1CS2地址譯碼器三、簡單的輸入接口舉例接口電路圖如下:83FCH~83FFH譯碼器鎖存器:由D觸發(fā)器構(gòu)成(具有鎖存功能)通常一個(gè)器件包含8個(gè)D觸發(fā)器常用芯片:
74LS27374LS374四、簡單的輸出接口舉例SCPDiQi0XX01↑111↑00S74LS273MOVDX,0FFFFHMOVAL,01000001BOUTDX,AL.........11+5VRD0|D7CPQ0Q7...D0~D774LS273R??????A0A1A7A8A9A15IOW&&≥74LS273可以直接做輸出接口,但不能直接做輸入接口(不能直接連接CPU總線)。74LS374既可做輸入電路,也可做輸出電路。OEQ0D0D1Q1Q2D2D3Q3GNDVCCQ7D7D6Q6Q5D5D4Q4CP1011155120DiOECPQi101000xx1高阻圖6-774LS374引線圖和真值表(D)CPQ1Di1(CP)OEQi圖6-874LS374內(nèi)部結(jié)構(gòu)&A15A14A13A12A11A10A9A8&A7A6A5A4A3A2A1A0111≥1LOWD0~D7CPQ0Q1Q6Q7OED0~D774LS374用作輸出接口74LS374用作輸入接口D0~D7CPD0D1D7OED0~D7譯碼電路A0~A15IOR外設(shè)選通五、輸入/輸出接口綜合應(yīng)用例子根據(jù)開關(guān)狀態(tài)在7段數(shù)碼管上顯示數(shù)字或符號(hào)共陽極7段數(shù)碼管結(jié)構(gòu)用74LS273作為輸出接口,把數(shù)據(jù)送到7段數(shù)碼管用74LS244作為輸入口,讀入開關(guān)K0~K3的狀態(tài)當(dāng)開關(guān)的狀態(tài)分別為0000~1111時(shí),在7段數(shù)碼管上對應(yīng)顯示’0’~’F’當(dāng).gfedcba的值為C0H(11000000)時(shí),顯示0O1I1O2I2O3I3O4I4E1
K0~K3+5VGG2AG2BCBA≥174LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7
abcdefgDP7406反相器74LS273Rx8≥174LS138D0~D7IOWIORY0Y1&≥1A7~A4A15~A8A3A2A1A0D0D1D2D3譯碼器Rx4F0H=0000000011110000F1H=0000000011110001
符號(hào)形狀7段碼.gfedcba符號(hào)形狀7段碼.gfedcba’0’00111111’8’01111111’1’00000110’9’01100111’2’01011011’A’01110111’3’01001111’B’01111100’4’01100110’C’00111001’5’01101101’D’01011110’6’01111101’E’01111001’7’00000111’F’01110001相應(yīng)程序段如下: ……Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,67H,77H,7CH,39H,5EH,79H,71H …… LEA BX,Seg7 ;取7段碼表基地址 MOV AH,0GO:
MOV DX,0F1H ;開關(guān)接口的地址為F1H IN AL,DX ;讀入開關(guān)狀態(tài)
AND AL,0FH ;保留低4位
MOV SI,AX ;作為7段碼表的表內(nèi)位移量
MOV AL,[BX+SI] ;取7段碼
MOV DX,0F0H ;7段數(shù)碼管接口的地址為F0H OUT DX,AL JMP GO節(jié)6.3輸入輸出的控制方式
無條件傳送查詢式傳送中斷方式傳送直接存儲(chǔ)器存取(DMA,DirectMemoryAccess)主機(jī)與外設(shè)之間數(shù)據(jù)傳送的控制方式有以下四種:一、無條件傳送方式適用于總是處于準(zhǔn)備好狀態(tài)的外設(shè)以下外設(shè)可采用無條件傳送方式:開關(guān)發(fā)光器件(如發(fā)光二極管、7段數(shù)碼管、燈泡等)繼電器步進(jìn)電機(jī)優(yōu)點(diǎn):軟件及接口硬件簡單缺點(diǎn):只適用于簡單外設(shè),適應(yīng)范圍較窄A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15≥1&≥1IORD0圖6-12開關(guān)K通過輸入接口與系統(tǒng)的連接K+5V10K二、查詢方式適用于外設(shè)并不總是準(zhǔn)備好,而且對傳送速率、傳送效率要求不高的場合。CPU在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀態(tài)——“你準(zhǔn)備好沒有?”對外設(shè)的要求:應(yīng)提供設(shè)備狀態(tài)信息對接口的要求:需要提供狀態(tài)端口優(yōu)點(diǎn):軟件比較簡單缺點(diǎn):CPU效率低,數(shù)據(jù)傳送的實(shí)時(shí)性差,速度較慢。CPU接口外設(shè)系統(tǒng)總線狀態(tài)數(shù)據(jù)控制圖6-13查詢工作方式示意圖取外設(shè)狀態(tài)外設(shè)準(zhǔn)備就緒否傳送數(shù)據(jù)NY傳送完否NY結(jié)束圖6-14單一外設(shè)時(shí)查詢方式流程圖1號(hào)外設(shè)準(zhǔn)備就緒NY對1號(hào)外設(shè)服務(wù)2號(hào)外設(shè)準(zhǔn)備就緒NY對2號(hào)外設(shè)服務(wù)3號(hào)外設(shè)準(zhǔn)備就緒NY對3號(hào)外設(shè)服務(wù)n號(hào)外設(shè)準(zhǔn)備就緒NY對n號(hào)外設(shè)服務(wù)圖6-15多個(gè)外設(shè)時(shí)的查詢工作方式流程圖三、中斷方式
CPU無需循環(huán)查詢外設(shè)狀態(tài),而是外部設(shè)備在需要進(jìn)行數(shù)據(jù)傳送時(shí)才中斷CPU正在進(jìn)行的工作,讓CPU來為其服務(wù)。即CPU在沒有外設(shè)請求時(shí)可以去做更重要的事情,有請求時(shí)才去傳輸數(shù)據(jù),從而大大提高了CPU的利用率。優(yōu)點(diǎn):CPU效率高,實(shí)時(shí)性好,速度快。缺點(diǎn):程序編制較為復(fù)雜。主程序IP繼續(xù)執(zhí)行主程序執(zhí)行中斷服務(wù)子程序壓棧出棧返回主程序IP(下)6.3.4DMA傳輸
前三種I/O方式都需要CPU作為中介:
1)軟件方面:外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過 CPU執(zhí)行程序來完成的;
2)硬件方面:I/O接口和存儲(chǔ)器的讀寫控制信號(hào)、地 址信號(hào)都是由CPU發(fā)出的(總線由CPU控制)。CPU外設(shè)外設(shè)存儲(chǔ)器缺點(diǎn):程序的執(zhí)行速度限定了傳送的最大速度 (約為幾十KB/秒)。
DMA傳輸:外設(shè)直接與存儲(chǔ)器進(jìn)行數(shù)據(jù)交換,CPU不再擔(dān)當(dāng)數(shù)據(jù)傳輸?shù)闹薪檎?;總線由DMA控制器(DMAC)進(jìn)行控制(CPU要放棄總線控制權(quán)),內(nèi)存/外設(shè)的地址和讀寫控制信號(hào)均由DMAC提供。CPU外設(shè)外設(shè)存儲(chǔ)器優(yōu)點(diǎn):數(shù)據(jù)傳輸由DMA控制器即硬件來控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之間交換,可以達(dá)到很高的傳輸速率(可達(dá)幾MB/秒)DMA傳送原理示意圖
①系統(tǒng)總線CPUDMAC存儲(chǔ)器外設(shè)AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACK②③④⑤AENIOWIORMEMWMEMR①外設(shè)發(fā)出DMA請求信號(hào)DRQ②DMAC向CPU申請總線HOLD③CPU響應(yīng),釋放總線控制權(quán),并發(fā)出HLDA信號(hào)④DMAC得到總線控制權(quán),并向外設(shè)發(fā)出響應(yīng)信號(hào)DACK⑤由DMAC發(fā)出各種控制信號(hào),控制外設(shè)與存儲(chǔ)器之間的數(shù)據(jù)傳送⑥數(shù)據(jù)傳送完后,DMAC撤銷HOLD信號(hào)⑦CPU釋放HLDA信號(hào),并重新控制總線⑥⑦1)當(dāng)外設(shè)準(zhǔn)備好,可以進(jìn)行DMA傳送時(shí),外設(shè)向DMA控制器發(fā)出“DMA傳送請求”信號(hào)(DRQ);DMA控制器的工作過程:4)DMA控制器收到HLDA信號(hào)后,就開始控制總線,并向外設(shè)發(fā)出DMA響應(yīng)信號(hào)DACK;3)CPU在完成當(dāng)前總線周期后會(huì)立即對HOLD信號(hào)進(jìn)行響應(yīng)。響應(yīng)包括兩個(gè)動(dòng)作:
①CPU將數(shù)據(jù)總線、地址總線和相應(yīng)的控制信號(hào)線均置為高阻態(tài),由此放棄對總線的控制權(quán)。②CPU向DMA控制器發(fā)出“總線響應(yīng)”信號(hào)(HLDA)。2)DMA控制器收到請求后,向CPU發(fā)出“總線請求”信號(hào)HOLD,表示希望占用總線;5)DMA控制器送出地址信號(hào)和相應(yīng)的控制信號(hào),實(shí)現(xiàn)外設(shè)與內(nèi)存或內(nèi)存與內(nèi)存之間的直接數(shù)據(jù)傳送;例如,向I/O接口發(fā)出讀信號(hào),同時(shí)往地址總線上發(fā)出存儲(chǔ)器的地址和存儲(chǔ)器寫信號(hào)和AEN信號(hào),即可從外設(shè)向內(nèi)存?zhèn)魉鸵粋€(gè)字節(jié)。
6)DMA控制器自動(dòng)修改地址和字節(jié)計(jì)數(shù)器,并判斷是否需要重復(fù)傳送操作。當(dāng)規(guī)定的數(shù)據(jù)傳送完后,DMA控制器就撤銷發(fā)往CPU的HOLD信號(hào)。CPU檢測到HOLD失效后,緊接著撤銷HLDA信號(hào),并在下一時(shí)鐘周期重新開始控制總線。
節(jié)6.4中斷技術(shù)6.4.1中斷的基本概念正在看書電話鈴響接電話繼續(xù)看書實(shí)際場景執(zhí)行程序事件發(fā)生事件處理繼續(xù)執(zhí)行程序計(jì)算機(jī)中斷處理中斷請求及響應(yīng)中斷返回中斷的定義CPU執(zhí)行程序時(shí),由于發(fā)生了某種隨機(jī)的事件(外部或內(nèi)部),引起CPU暫時(shí)中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)程序(稱為中斷服務(wù)程序或中斷處理程序),以處理該事件,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,這一過程稱為中斷。與子程序的區(qū)別?只有執(zhí)行到CALL時(shí)才調(diào)用子程序,而中斷是隨機(jī)的。中斷源引起CPU中斷的事件——中斷源。例如:外設(shè)——請求輸入輸出數(shù)據(jù),報(bào)告故障等事件——掉電、硬件故障、軟件錯(cuò)誤、非法操作、定時(shí)時(shí)間到等。中斷源分為:外部中斷、內(nèi)部中斷內(nèi)部中斷:CPU內(nèi)部執(zhí)行程序時(shí)自身產(chǎn)生的中斷(如INT指令、溢出、被0除等)外部中斷:CPU以外的設(shè)備、部件產(chǎn)生的中斷
8086/8088的外部中斷信號(hào):INTR、NMIINTR——可屏蔽中斷請求,高電平有效,受IF標(biāo)志的控制。IF=1時(shí),執(zhí)行完當(dāng)前指令后CPU對它作出響應(yīng)。NMI——非屏蔽中斷請求,上升沿有效,任何時(shí)候CPU都要響應(yīng)此中斷請求信號(hào)。Vcc(5V)A15A16/S3A17/S4A18/S5A19/S6SS0(HIGH)MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)IO/M(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8088地A14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLK地為何計(jì)算機(jī)中要引入中斷?避免了CPU不斷檢測外設(shè)狀態(tài)的過程,提高了CPU的利用率。實(shí)現(xiàn)對特殊事件的實(shí)時(shí)響應(yīng)。如多任務(wù)系統(tǒng)操作系統(tǒng)中:缺頁中斷設(shè)備中斷各類異常實(shí)時(shí)鐘,。。。等中斷過程五個(gè)步驟:中斷請求中斷判優(yōu)(有時(shí)還要進(jìn)行中斷源識(shí)別)中斷響應(yīng)中斷服務(wù)中斷返回以下以外部中斷為主介紹這五個(gè)步驟。1)中斷請求外設(shè)接口(中斷源)發(fā)出中斷請求信號(hào),送到CPU的INTR或NMI引腳;中斷請求信號(hào):邊沿請求,電平請求
例如,NMI為邊沿請求,INTR為電平請求中斷請求信號(hào)應(yīng)保持到中斷被處理為止;CPU響應(yīng)中斷后,中斷請求信號(hào)應(yīng)及時(shí)撤銷。在8086/8088系統(tǒng)中,外設(shè)的中斷要經(jīng)過8259A可編程中斷控制器(PIC)的排隊(duì)判優(yōu)后向CPU發(fā)出。CPUINTRINTAIR0IR1IR7D0~D7INTAINTCSA0RDWRD0~D7RDWR。。。8259ASP/ENCAS0CAS1CAS2中斷源2)中斷判優(yōu)多個(gè)中斷源產(chǎn)生中斷,CPU首先為誰服務(wù)? ——中斷優(yōu)先級(jí)排隊(duì)問題。中斷優(yōu)先級(jí)控制要處理兩種情況:對同時(shí)產(chǎn)生的中斷:應(yīng)首先處理優(yōu)先級(jí)別較高的中斷;若優(yōu)先級(jí)別相同,則按先來先服務(wù)的原則處理;對非同時(shí)產(chǎn)生的中斷:低優(yōu)先級(jí)別的中斷處理程序允許被高優(yōu)先級(jí)別的中斷源所中斷——即允許中斷嵌套。中斷優(yōu)先級(jí)的控制方法硬件判優(yōu)——鏈?zhǔn)脚袃?yōu)、并行判優(yōu)(中斷向量法)軟件判優(yōu)——順序查詢中斷請求,先查詢的先服務(wù)(即先查詢的優(yōu)先級(jí)別高)通常將中斷判優(yōu)與中斷源識(shí)別合并在一起進(jìn)行處理。x86系統(tǒng)中,這項(xiàng)任務(wù)由PIC和CPU共同完成。軟件判優(yōu)CPUD0~D7INTR并行輸入接口≥1中斷請求寄存器IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7圖6-18軟件判優(yōu)的結(jié)構(gòu)原理圖斷點(diǎn)保護(hù)IRQ0IRQ1IRQ7中斷返回YYYNNN中斷源0的中斷服務(wù)程序中斷源1的中斷服務(wù)程序中斷源7的中斷服務(wù)程序圖6-19軟件中斷優(yōu)先權(quán)查詢流程圖中斷矢量法:為不同的中斷源提供不同的中斷類型碼(中斷向量碼),即為每一個(gè)中斷分配一個(gè)編號(hào),CPU根據(jù)類型碼確定中斷源。(8086/8088即采用此種方法)硬件判優(yōu)鏈?zhǔn)脚袃?yōu):將中斷源構(gòu)成一個(gè)鏈。INTAinCPUINTAINTR外設(shè)1外設(shè)2外設(shè)接口1菊花鏈邏輯電路外設(shè)接口2外設(shè)3外設(shè)接口3≥1菊花鏈邏輯電路菊花鏈邏輯電路┇I(xiàn)REQIREQIREQ中斷確認(rèn)鏈?zhǔn)脚袃?yōu)電路原理圖(教材圖6.20)
INTAinINTAin中斷確認(rèn)中斷確認(rèn)鏈中越往左,中斷源的級(jí)別越高。菊花鏈邏輯電路INTAinIREQINTR&=1
≥1INTAoutDB三態(tài)門中斷向量碼E外設(shè)接口中斷確認(rèn)菊花鏈邏輯電路3)中斷響應(yīng)在每條指令的最后一個(gè)時(shí)鐘周期,CPU檢測INTR或NMI信號(hào)。若以下條件成立,則CPU響應(yīng)中斷:當(dāng)前指令執(zhí)行完。對INTR,還應(yīng)滿足以下條件當(dāng)前指令是STI和IRET,則下條指令也要執(zhí)行完。當(dāng)前指令帶有LOCK、REP等指令前綴時(shí),則把它們看成一個(gè)整體,要求完整地執(zhí)行完;對INTR,CPU應(yīng)處于開中斷狀態(tài),即IF=1;當(dāng)前沒有復(fù)位(RESET)和保持(HOLD)信號(hào)。若NMI和
INTR
同時(shí)發(fā)生,則首先響應(yīng)NMI。CPU中斷響應(yīng)時(shí),要做下述三項(xiàng)工作:向中斷源發(fā)出/INTA中斷響應(yīng)信號(hào);斷點(diǎn)保護(hù),包括CS、IP和PSW(FLAGS)。這主要是保證中斷結(jié)束后能返回被中斷的程序。獲得中斷服務(wù)程序首地址(入口地址)。如何得到中斷處理程序的首地址?固定入口法中斷向量法(8086采用的方法)4)中斷處理(中斷服務(wù))中斷服務(wù)子程序特點(diǎn)為“遠(yuǎn)”過程(類型為FAR)要用IRET指令返回中斷服務(wù)子程序要做的工作保護(hù)現(xiàn)場(PUSHreg’s)
開中斷(STI)
進(jìn)行中斷處理
關(guān)中斷(CLI)恢復(fù)現(xiàn)場(POPreg’s)
中斷返回(IRET)
5)中斷返回執(zhí)行中斷返回指令I(lǐng)RETIRET指令將使CPU把堆棧內(nèi)保存的斷點(diǎn)信息彈出到IP、CS和FLAG中,保證被中斷的程序從斷點(diǎn)處能夠繼續(xù)往下執(zhí)行。IPLIPHCSLCSHFLAGLFLAGHSP進(jìn)入中斷服務(wù)程序時(shí)IPLIPHCSLCSHFLAGLFLAGHSPIPCSFLAG中斷返回后6.4.28088的中斷系統(tǒng)與中斷有關(guān)的控制線為:NMI、INTR、/INTA8088系統(tǒng)的中斷源內(nèi)部中斷除法溢出:類型號(hào)0,商大于目的操作數(shù)所能表達(dá)的范圍時(shí)產(chǎn)生。單步中斷:類型號(hào)1,TF=1時(shí)產(chǎn)生(當(dāng)前指令需執(zhí)行完)斷點(diǎn)中斷:類型號(hào)3,這是一個(gè)軟件中斷,即INT3指令。溢出中斷:類型號(hào)4,這是一個(gè)軟件中斷,即INTO指令。軟件中斷:即INTn指令,類型號(hào)n(0-255)。外部中斷非屏蔽中斷NMI:類型號(hào)2,不可用軟件屏蔽,CPU必須響應(yīng)它??善帘沃袛郔NTR:類型號(hào)由PIC提供。IF=1時(shí)CPU才能響應(yīng)。一、8086/8088中斷源類型NMIINTR中斷邏輯軟件中斷指令溢出中斷除法錯(cuò)單步中斷非屏蔽中斷請求中斷控制器8259APIC8086/8088CPU內(nèi)部邏輯斷點(diǎn)中斷可屏蔽中斷請求n430128088系統(tǒng)采用中斷類型(向量)碼來識(shí)別不同的中斷源,每個(gè)中斷源都有一個(gè)與它相對應(yīng)的中斷類型碼。溢出、斷點(diǎn)、除法溢出、單步、非屏蔽中斷的類型碼為固定值軟件中斷的類型碼由指令給出可屏蔽中斷的類型碼由PIC給出CPU響應(yīng)INTR中斷時(shí),會(huì)產(chǎn)生兩個(gè)中斷響應(yīng)總線周期,要求PIC在第2個(gè)中斷響應(yīng)總線周期把中斷類型碼放到數(shù)據(jù)總線上,供CPU讀入。二、中斷向量表(IVT)
存放各類中斷的中斷服務(wù)程序的入口地址(段和偏移);表的地址位于內(nèi)存的00000H~003FFH,共256個(gè)入口;每個(gè)入口占用4Bytes,低字為段內(nèi)偏移,高字為段基址;根據(jù)中斷類型號(hào)獲得中斷服務(wù)程序入口的方法:(n為中斷類型號(hào))中斷向量在IVT中的存放地址=n×4例如:中斷類型碼為21H,其中斷向量存放在0000H:0084H(21H*4=84H)開始的4個(gè)字節(jié)單元中。CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量中斷類型0的中斷向量中斷類型1的中斷向量中斷類型2的中斷向量中斷類型3的中斷向量中斷類型4的中斷向量中斷類型32的中斷向量中斷類型255的中斷向量00000H00004H00008H0000CH00010H00014H00080H00084H003FCH003FFH6-23中斷向量表結(jié)構(gòu)中斷處理程序STIPUSHDS…IRETINT4AHNOPF0類型49H中斷向量0600類型4BH中斷向量180:1240:1250:1260:1270:1280:1290:12A0:12B0:12C0:12D0:12E0:12F②1806F000IPCS③F000:1806④⑤從堆棧中彈出FLAG、CS、IP向量計(jì)算=4AH4=128H①FLAG、CS、IP入棧等三、軟中斷的執(zhí)行過程四、8086/8088CPU的中斷響應(yīng)過程
內(nèi)部中斷響應(yīng)過程
無中斷響應(yīng)周期中斷類型碼固定或由指令(INTn)給出響應(yīng)過程步驟: ①將類型碼乘4,計(jì)算出中斷向量的地址 ②標(biāo)志寄存器入棧
③
清除IF、TF,即屏蔽新的INTR和單步中斷
④保存斷點(diǎn),將斷點(diǎn)處的CS壓棧
⑤將斷點(diǎn)處的IP壓棧 ⑥(IP)=(n*4+1):(n*4+0) ⑦(CS)=(n*4+3):(n*4+2) ⑧執(zhí)行中斷服務(wù)程序。中斷響應(yīng)過程(續(xù))外部中斷響應(yīng)過程非屏蔽中斷,與內(nèi)部中斷響應(yīng)過程類似
可屏蔽中斷(時(shí)序見圖6.24)
①/INTA(1),PIC進(jìn)行優(yōu)先級(jí)排隊(duì)判優(yōu)處理 ②/INTA(2),PIC把中斷類型碼放到DB上,由CPU讀入
③壓棧FLAG ④清除IF、TF⑤CS入棧
⑥
IP入棧 ⑦(IP)=(n*4+1):(n*4+0)
⑧(CS)=(n*4+3):(n*4+2)T1T2T3T4T1T2T3T4中斷類型碼CLKALELOCKINTAD0~D7第一個(gè)INTA總線周期第一個(gè)INTA總線周期圖6-248086/8088對INTR的中斷響應(yīng)時(shí)序·······IRET1、FLAGS、CS、IP入棧2、清除IF、TF3、轉(zhuǎn)中斷服務(wù)處理程序INTHAND(通過中斷矢量表)產(chǎn)生中斷1、FLAGS、CS、IP出棧2、返回?cái)帱c(diǎn),繼續(xù)執(zhí)行下一條指令中斷返回····INTHAND:;PROGRAMINEXECUTION可屏蔽中斷的執(zhí)行過程8088系統(tǒng)中各中斷的優(yōu)先級(jí)優(yōu)先級(jí)從高到低順序如下:內(nèi)部中斷NMIINTR單步中斷節(jié)6.5可編程中斷控制器8259APIC,ProgrammableInterruptController可對8個(gè)中斷源實(shí)現(xiàn)優(yōu)先級(jí)控制
可擴(kuò)展至對64個(gè)中斷源實(shí)現(xiàn)優(yōu)先級(jí)控制
可編程設(shè)置不同工作方式根據(jù)中斷源向x86提供不同中斷類型碼可編程芯片:可以用程序設(shè)置芯片的工作方式,控制其工作過程。
A0:是8259A內(nèi)部寄存器的選擇信號(hào)。它與/WR、/RD、 /CS等信號(hào)相配合,對不同的內(nèi)部寄存器進(jìn)行讀寫。 使用中,通常接地址總線的A1或A0等。
INT:8259A中斷請求輸出信號(hào),直接接到CPU的INTR輸 入端。/INTA:中斷響應(yīng)輸入信號(hào)。在中斷響應(yīng)過程中CPU的中斷 響應(yīng)信號(hào)由此端進(jìn)入8259A。
CAS0---CAS2:級(jí)聯(lián)控制線。當(dāng)多片8259A級(jí)聯(lián)工作時(shí),其 中一片為主片,其他均為從片。
主片8259A:CAS0---CAS2為輸出;
從片8259A:CAS0--CAS2為輸入。當(dāng)某從片提出中斷請求時(shí),主片通過CAS0--CAS2送出 相應(yīng)的編碼給從片,使從片的中斷被允許。
SP/EN:為雙功能引線。 當(dāng)8259A工作在緩沖模式時(shí),它為輸出,用以控制緩沖器的傳送方向: 當(dāng)數(shù)據(jù):CPU8259A時(shí),SP/EN輸出為高電平; 當(dāng)數(shù)據(jù):8259ACPU時(shí),SP/EN輸出為低電平。 在8259A工作在非緩沖模式時(shí),它為輸入,用于指定8259A是主片還是從片:
SP=1的8259A為主片,SP=0的8259A為從片。只有一個(gè)8259A時(shí),它應(yīng)接高電平。IR0--IR7:為中斷請求輸入信號(hào),與外設(shè)的中斷請求線相連。上升沿或高電平(可通過編程設(shè)定)時(shí)表示有中斷請求到達(dá)。CPUINTRINTAIR0IR1IR7D0~D7INTAINTCSA0RDWRD0~D7RDWR。。。8259ASP/ENCAS0CAS1CAS2級(jí)連電路連接方法6.5.18259A的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器讀/寫控制電路級(jí)聯(lián)緩沖/比較器D0~D7CAS0CAS1CAS2SP/ENRDWDA0CS內(nèi)部控制邏輯電路當(dāng)前終端服務(wù)寄存器(ISR)優(yōu)先權(quán)判別電路中斷請求電路(IRR)中斷屏蔽寄存器(IMR)內(nèi)部總線INTINTA圖6-278259A內(nèi)部結(jié)構(gòu)框圖8259A的內(nèi)部結(jié)構(gòu)中斷請求寄存器IRR保存從IR0~I(xiàn)R7來的中斷請求信號(hào),某位為1表示對應(yīng)的IRi有中斷請求。中斷服務(wù)寄存器ISR
保存所有正在服務(wù)的中斷源,某位為1表示對應(yīng)的IRi中斷正在被服務(wù)
,可能同時(shí)有幾位為1。中斷屏蔽寄存器IMR存放中斷屏蔽字,某位=1表示對應(yīng)的IRi輸入被屏蔽。中斷優(yōu)先權(quán)判別電路
確定是否向CPU發(fā)出中斷請求,中斷響應(yīng)時(shí)確定ISR的哪位應(yīng)置位及把相應(yīng)中斷的類型碼放到數(shù)據(jù)總線上
。
6.5.28259A的工作過程8259A對外部可屏蔽中斷請求的處理過程如下:當(dāng)某IRi有效時(shí),IRR相應(yīng)位置1。若有效的IRi未被屏蔽,則向CPU發(fā)出中斷請求。若CPU處于開中斷狀態(tài),則在當(dāng)前指令執(zhí)行完后,發(fā)/INTA。檢測到第1個(gè)/INTA信號(hào)后,置ISRi=1,IRRi=0。檢測到第2個(gè)/INTA信號(hào)后,把ISRi=1中最高優(yōu)先級(jí)的中斷類型碼放到DB上。若工作在AEOI方式,在第2個(gè)/INTA結(jié)束時(shí),使ISRi復(fù)位;否則由CPU發(fā)出EOI命令使ISRi復(fù)位。6.5.38259A的工作方式8259A的工作方式:中斷觸發(fā)方式屏蔽中斷源的方式中斷優(yōu)先方式中斷嵌套方式中斷結(jié)束處理方式
級(jí)聯(lián)工作方式一、中斷觸發(fā)方式邊沿觸發(fā)
IRi出現(xiàn)上升沿表示有中斷請求
電平觸發(fā)
IRi出現(xiàn)高電平表示有中斷請求,但應(yīng)及時(shí)撤除高電平,否則可能引起第二次中斷。在第1個(gè)/INTA結(jié)束前,IRi必須保持高電平。
二、屏蔽中斷源的方式普通屏蔽方式:IMR屏蔽字決定了允許或禁止某位IRi所對應(yīng)的中斷:
IMi=1
禁止,IMi=0
允許(即正常屏蔽方式)。特殊屏蔽方式:提供了允許較低優(yōu)先級(jí)的中斷能夠得到響應(yīng)的特殊手段。原理:假定當(dāng)前正在處理IR6,先進(jìn)入特殊屏蔽方式,然后設(shè)置IM6=1。這時(shí),除IR6外的所有中斷請求均能得到響應(yīng)。特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。三、中斷優(yōu)先方式中斷優(yōu)先方式
兩類優(yōu)先級(jí)控制方式:固定優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí)固定優(yōu)先級(jí)方式所有中斷請求IRi的中斷優(yōu)先級(jí)固定不變優(yōu)先級(jí)排列順序可通過編程改變加電后8259A的默認(rèn)方式,默認(rèn)優(yōu)先級(jí)順序從高到低為IR0~I(xiàn)R7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低級(jí)最高級(jí)最高級(jí)最低級(jí)優(yōu)先級(jí)IR7IR6IR5IR4IR3IR2IR1IR0默認(rèn)優(yōu)先級(jí)優(yōu)先級(jí)可編程改變
循環(huán)優(yōu)先級(jí)方式
中斷源輪流處于最高優(yōu)先級(jí),即自動(dòng)中斷優(yōu)先級(jí)循環(huán)初始優(yōu)先級(jí)順序可用編程改變某中斷請求IRi被處理后,其優(yōu)先級(jí)別自動(dòng)降為最低,原來比它低一級(jí)的中斷上升為最高級(jí)。
21076543最高級(jí)最低級(jí)IR7IR6IR5IR4IR3IR2IR1IR001000000IR4的服務(wù)結(jié)束以后IR7IR6IR5IR4IR3IR2IR1IR076543210最低級(jí)最高級(jí)ISR內(nèi)容IR4的服務(wù)結(jié)束以前01010000ISRi在中斷處理過程中允許被更高優(yōu)先級(jí)的事件所中斷稱為中斷嵌套。8259A有兩種中斷嵌套方式:普通全嵌套方式(默認(rèn)方式)
一中斷正被處理時(shí),只有更高優(yōu)先級(jí)的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。特殊全嵌套方式
一中斷正被處理時(shí),允許同級(jí)或更高優(yōu)先級(jí)的事件打斷當(dāng)前的中斷處理過程而被服務(wù)。四、中斷嵌套方式僅用于多個(gè)8259A級(jí)連時(shí)的主8259A。D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:從片的INT被主片封鎖,故更高級(jí)別的IR0-IR2中斷也無法得到響應(yīng)特殊嵌套方式:因主片不封鎖從片的INT,故級(jí)別高的IR0-IR2中斷可以得到響應(yīng)。(但I(xiàn)R3-IR7仍被本從片封鎖)C.假定IR3發(fā)生中斷,并獲得服務(wù)一般嵌套方式:IR4的中斷被服務(wù)時(shí),這些中斷將被封鎖。B.特殊嵌套方式:IR4的中斷被服務(wù)時(shí),只封鎖IR5-IR7。A.INTE.從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式與特殊全嵌套方式的區(qū)別
去CPU五、中斷結(jié)束處理方式當(dāng)某一IRi中斷被服務(wù)時(shí),ISR中的相應(yīng)位ISRi=1。當(dāng)服務(wù)結(jié)束后,則必須清零該ISRi位。使ISRi=0是通過向8259A發(fā)出中斷結(jié)束命令(EOI命令)實(shí)現(xiàn)的。三種EOI命令自動(dòng)EOI(AEOI)——(自動(dòng)EOI方式)非指定EOI(NSEOI)——(正常EOI方式)指定EOI(SEOI)——(特殊EOI方式)
AEOI:在第2個(gè)/INTA結(jié)束時(shí),由8259A使ISRi自動(dòng)復(fù)位;因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式NSEOI:由CPU發(fā)出正常EOI命令,該EOI命令使ISRi=1的位中優(yōu)先級(jí)最高的那一位復(fù)位。用于普通全嵌套方式SEOI:由CPU發(fā)出一條SEOI命令,該EOI命令中指出了所要復(fù)位的ISR的位號(hào)。
用于特殊屏蔽方式中斷服務(wù)程序┇向從PIC發(fā)EOI命令讀從PIC的ISR全0?向主PIC發(fā)EOI命令YIRET恢復(fù)現(xiàn)場N特殊全嵌套方式下的EOI處理只有當(dāng)從8259A的中斷全部處理完后,才能向主8259A發(fā)EOI命令。六、級(jí)聯(lián)工作方式單片8259A可支持8個(gè)中斷源;采用多片8259A級(jí)聯(lián),可最多支持64個(gè)中斷源。 n片8259A可支持8*(n-1)+8-(n-1)=7n+1個(gè)中斷源;級(jí)聯(lián)時(shí)只能有一片8259A為主片,其余的均為從片;涉及到的8259A引腳包括:CAS0---CAS2SP/ENIRiINT
主片8259AIR0IR1IR2IR3IR4IR5IR6IR7INTINTRINTAINTA
從片1IR0IR1IR2IR3IR4IR5IR6IR7INTINTA
從片8IR0IR1IR2IR3IR4IR5IR6IR7INTINTA···級(jí)連電路連接方法主片、從片有不同的地址;主片、從片分別進(jìn)行編程。6.5.48259A的編程使用8259A的控制命令分為初始化命令字ICWICW1~I(xiàn)CW4向8259A寫入ICW的過程稱為初始化編程操作命令字OCW
OCW1~OCW3向8259A寫入OCW的過程稱為操作方式編程8259A內(nèi)部寄存器的尋址方法/CS/RD/WRA0D4D3讀寫操作010000寫OCW2寫OCW3寫ICW1寫ICW2,ICW3,ICW4,OCW1(順序?qū)懭?00101x1xx00101xx讀出IRR、ISR(由OCW3區(qū)分)讀出IMR需要/CS、A0、/RD、/WR和D4、D3的配合內(nèi)部寄存器的訪問方法如下表:8259A的初始化順序
8259的初始化流程注意次序不可顛倒!寫ICW1寫ICW2級(jí)連?寫ICW3需ICW4?寫ICW4NNYY8259A的控制命令字初始化8259A必須從ICW1開始寫ICW1意味著重新初始化8259A寫入ICW1后,8259A的狀態(tài)如下:清除ISR和IMR(全0);將中斷優(yōu)先級(jí)設(shè)成初始狀態(tài):IR0最高,IR7最低;設(shè)定為一般屏蔽方式;采用非自動(dòng)中斷結(jié)束方式;狀態(tài)讀出邏輯預(yù)置為讀IRR。ICW1——初始化字LTIM:觸發(fā)方式=1高電平觸發(fā)=0上升沿觸發(fā)SNGL:級(jí)連控制=1單片=0級(jí)連IC4:ICW4控制=1要寫ICW4=0不寫ICW4(默認(rèn)ICW4為全0)A0 D7 D6 D5 D4 D3 D2 D1 D0
0 x
x x 1LTIM xSNGL
IC4如要求上升沿觸發(fā)、單片8259A,寫ICW4,則ICW1=?Single?LevelTriggeredMode?00010011B=13HICW2——中斷向量碼T7~T3:中斷向量碼的高5位T2~T0:最低3位為中斷源的序號(hào)IRn000~111分別對應(yīng)IR0~I(xiàn)R7由8259A根據(jù)中斷源的序號(hào)自動(dòng)填入
例如: 若ICW2命令字為48H,則IR0的中斷向量碼為48H,IR7的中斷向量碼為4FH,等等。A0 D7 D6 D5 D4 D3 D2 D1 D0
1 T7
T6 T5 T4 T3 x x
xICW3——級(jí)連控制字
主片的級(jí)聯(lián)控制字
Si=1對應(yīng)IRi線上連接了從片
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 S7
S6 S5 S4 S3 S2 S1
S0從片的級(jí)聯(lián)控制字
ID2~I(xiàn)D0標(biāo)識(shí)碼,說明本從片連接到主片的哪個(gè)IR引腳上。000~111分別對應(yīng)IR0~I(xiàn)R7。
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 0
0 0 0 0 ID2 ID1
ID0ICW3——級(jí)連控制字(續(xù))ICW3必須與主從片的實(shí)際連接關(guān)系一致:
例如,主片的IR4與唯一從片的INT線連接,則主片的ICW3=10H,從片的ICW3=04H。中斷響應(yīng)時(shí),主片通過級(jí)連線CAS2-CAS0送出被允許中斷的從片標(biāo)識(shí)碼,各從片用自己的ICW3與CAS2-CAS0比較,二者一致的從片才可發(fā)送中斷向量碼。ICW4——中斷結(jié)束方式字
SFNM:特殊全嵌套1特殊全嵌套方式0一般全嵌套方式AEOI:自動(dòng)EOI1自動(dòng)EOI方式0非自動(dòng)EOI方式A0 D7 D6 D5D4 D3 D2 D1 D0
1 0
0 0SFNM BUF M/S AEOI
1BUF:緩沖方式M/S:主/從緩沖選擇BUFM/S 11緩沖方式/主PIC 10緩沖方式/從PIC 0x非緩沖方式/正常Master/Slave
?SpecialFullNested?OCW1——中斷屏蔽字
Mi=1中斷請求線IRi被屏蔽(不允許中斷)=0允許該IRi中斷OCW1將寫入IMR寄存器。A0=1時(shí)讀OCW1可讀出設(shè)置的IMR內(nèi)容。A0 D7 D6 D5 D4 D3 D2 D1 D0
1 M7
M6 M5 M4 M3 M2 M1
M0OCW2——中斷結(jié)束和優(yōu)先級(jí)循環(huán)
L2~L0:優(yōu)先級(jí)編碼R:優(yōu)先級(jí)自動(dòng)循環(huán)嗎?SL:指定優(yōu)先級(jí)嗎?EOI:結(jié)束中斷命令(非AEOI方式)
RSLEOI001非指定EOI命令(NSEOI),全嵌套方式011指定EOI命令(SEOI),全嵌套方式,按L2-L0編碼復(fù)位ISR101NSEOI命令,優(yōu)先級(jí)自動(dòng)循環(huán)100自動(dòng)EOI,設(shè)置優(yōu)先級(jí)自動(dòng)循環(huán)000自動(dòng)EOI,取消優(yōu)先級(jí)自動(dòng)循環(huán)(固定優(yōu)先級(jí))111SEOI命令,按L2-L0編碼循環(huán)優(yōu)先級(jí)(L2-L0設(shè)為最低優(yōu)先級(jí))110按L2-L0編碼循環(huán)優(yōu)先級(jí)(L2-L0設(shè)為最低優(yōu)先級(jí))
A0 D7 D6 D5 D4 D3 D2 D1 D0
0 R
SL EOI 0 0 L2 L1
L0OCW3——屏蔽方式和讀出控制字
ESMM:允許使能特殊屏蔽方式SMM:
特殊屏蔽方式ESMMSMM11特殊屏蔽方式置位10特殊屏蔽方式復(fù)位0x非特殊屏蔽方式P(Polling):=1查詢方式
=0非查詢方式A0 D7 D6 D5 D4 D3 D2 D1 D0
0 0ESMMSMM 0 1 P RR RISRR:讀寄存器RIS:ISR/IRR選擇RRRIS11讀ISR10讀IRR0x無效EnableSpecialMaskMode?ReadRegister?ReadInterruptServiceregister?查詢方式允許8259A不工作于中斷方式,而是以查詢方式工作。CPU先寫一個(gè)D2=1的OCW3,再對同一地址讀入,即可得到如下狀態(tài)字節(jié):
IxxxxR2R1R0
I=1表示有中斷請求,最高優(yōu)先級(jí)中斷請求號(hào)為R2-R0
此查詢步驟可反復(fù)執(zhí)行,以響應(yīng)多個(gè)同時(shí)發(fā)生的中斷。讀IRR/ISR:寫入此命令后,隨后再對同一地址讀,即可得到IRR或ISR的內(nèi)容。8259A應(yīng)用在IR0端輸入脈沖,產(chǎn)生中斷,查看寄存器AX的內(nèi)容。CSIR0CS7A0A1P0D0-D73F0H譯碼電路8259A應(yīng)用舉例1CODESEGMENTASSUMECS:CODE
ORG100HSTART:MOVDX,3F0HMOVAX,13H;ICW1OUTDX,AXMOVDX,3F2HMOVAL,80H;ICW2OUTDX,AXMOVAX,01OUTDX,AX;ICW4MOVAX,0OUTDX,AX;OCW1
;SETINTENABLEMOVAX,0MOVDS,AXMOVSI,200HMOVAX,OFFSETHINTMOVDS:[SI],AXADDSI,2MOVDS:[SI],0100HMOVAX,0STIWAITING:CMPAX,55HJNEWAITINGNOPJMPSTARTHINT:MOVAX,55HNOPCLIIRETCODEENDSENDSTART中斷服務(wù)程序中斷的觸發(fā)方式中斷向量IR0的中斷入口地址如何得到?中斷服務(wù)程序的功能問題:A0 D7 D6 D5 D4 D3 D2 D1 D0
0 x
x x 1LTIM xSNGL
IC4ICW1A0 D7 D6 D5 D4 D3 D2 D1 D0
1 T7
T6 T5 T4 T3 x x
xICW2A0 D7 D6 D5 D4 D3 D2 D1 D0
1 S7
S6 S5 S4 S3 S2 S1
S0A0 D7 D6 D5 D4 D3 D2 D1 D0
1 0
0 0 0 0 ID2 ID1
ID0ICW3A0 D7 D6 D5D4 D3 D2 D1 D0
1 0
0 0SFNM BUF M/S AEOI
1ICW4A0 D7 D6 D5 D4 D3 D2 D1 D0
1 M7
M6 M5 M4 M3 M2 M1
M0OCW1A0 D7 D6 D5 D4 D3 D2 D1 D0
0 R
SL EOI 0 0 L2 L1
L0OCW2A0 D7 D6 D5 D4 D3 D2 D1 D0
0 0ESMMSMM 0 1 P RR RISOCW38259A應(yīng)用舉例2編寫程序,要求CPU在執(zhí)行連接到8259A上的IR3中斷源的中斷服務(wù)程序時(shí),能響應(yīng)比IR3級(jí)別低的中斷申請。IR3比IR3低的中斷;IR3中斷服務(wù)程序;執(zhí)行IR3中斷處理CLI;關(guān)中斷MOVDX,04A2HINAL,DX;讀原來屏蔽字ORAL,08H;屏蔽IR3OUTDX,AL;設(shè)置OCW1MOVDX,04A0H
MOVAL,68H;設(shè)置OCW3OUTDX,AL;設(shè)置特殊屏蔽方式STI;開中斷。。。;此間可響應(yīng)比IR3;低的中斷。。。;接上面程序CLIMOVDX,4A0HMOVAL,48HOUTDX,AL;取消特殊屏蔽方式MOVDX,4A2HINAL,DXANDAL,0F7HOUTDX,AL;取消對IR3的屏蔽MOVDX,4A0HMOVAL,20HOUTDX,AL;發(fā)中斷結(jié)束命令STI;開中斷IRET8259A編程舉例按以下要求初始化8259A:接口地址為20H和21H;中斷為上升沿觸發(fā);單片8259A;不寫ICW4;與IR0-IR3對應(yīng)的中斷向量碼為08H-0BH;IR4-IR7不使用。根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下:ICW1=00010010=12HICW2=08H中斷向量碼OCW1=11110000=0F0H中斷屏蔽字INIT8259A: MO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026福建廈門市第三幼兒園招聘1人考試備考試題及答案解析
- 2026廣東茂名市信宜市選聘市外教師21人考試參考題庫及答案解析
- 水下機(jī)器人:探索藍(lán)色疆域的智能裝備革命
- 2026年上海市寶山區(qū)新江灣實(shí)驗(yàn)學(xué)校編內(nèi)教師公開招聘筆試備考題庫及答案解析
- 2026江蘇蘇州東吳財(cái)產(chǎn)保險(xiǎn)股份有限公司重客業(yè)務(wù)部社會(huì)招聘考試備考題庫及答案解析
- 2026福建廈門市集美區(qū)海怡實(shí)驗(yàn)幼兒園招聘2人考試備考題庫及答案解析
- 2026福建廈門市集美區(qū)西濱小學(xué)非在編教師招聘1人考試備考試題及答案解析
- 2026湖南長沙農(nóng)村商業(yè)銀行股份有限公司招聘員工2人筆試備考試題及答案解析
- 2026年舟山市志愿服務(wù)聯(lián)合會(huì)公開招聘工作人員的備考題庫參考答案詳解
- 2026年海南師范大學(xué)招聘備考題庫及一套答案詳解
- 責(zé)任督學(xué)培訓(xùn)課件
- 關(guān)于安吉物流市場的調(diào)查報(bào)告
- 三年級(jí)科學(xué)上冊蘇教版教學(xué)工作總結(jié)共3篇(蘇教版三年級(jí)科學(xué)上冊知識(shí)點(diǎn)整理)
- 抑郁病診斷證明書
- 心電監(jiān)測技術(shù)操作考核評(píng)分標(biāo)準(zhǔn)
- 歷史時(shí)空觀念的教學(xué)與評(píng)價(jià)
- 維克多高中英語3500詞匯
- 《LED顯示屏基礎(chǔ)知識(shí)培訓(xùn)》
- 第五屆全國輔導(dǎo)員職業(yè)能力大賽案例分析與談心談話試題(附答案)
- LY/T 2501-2015野生動(dòng)物及其產(chǎn)品的物種鑒定規(guī)范
- GB/T 6529-2008紡織品調(diào)濕和試驗(yàn)用標(biāo)準(zhǔn)大氣
評(píng)論
0/150
提交評(píng)論