微型計(jì)算機(jī)輸入輸出和中斷課件.ppt

上傳人:w****2 文檔編號(hào):15676163 上傳時(shí)間:2020-08-29 格式:PPT 頁數(shù):71 大?。?.50MB
收藏 版權(quán)申訴 舉報(bào) 下載
微型計(jì)算機(jī)輸入輸出和中斷課件.ppt_第1頁
第1頁 / 共71頁
微型計(jì)算機(jī)輸入輸出和中斷課件.ppt_第2頁
第2頁 / 共71頁
微型計(jì)算機(jī)輸入輸出和中斷課件.ppt_第3頁
第3頁 / 共71頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《微型計(jì)算機(jī)輸入輸出和中斷課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《微型計(jì)算機(jī)輸入輸出和中斷課件.ppt(71頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、1,第7章 輸入/輸出和中斷,2,I/O接口: 將外設(shè)連接到總線上的一組邏輯電路的總稱。 用以實(shí)現(xiàn)外設(shè)與主機(jī)之間的信息交換 I/O端口: 接口中的寄存器,可以由CPU讀或?qū)?7.1 外設(shè)接口的一般結(jié)構(gòu),3,7,4,CPU同外設(shè)間交換的信息由三類: 1. 數(shù)據(jù)信息,2.狀態(tài)信息: 表示外設(shè)當(dāng)前所處的工作狀態(tài)。,3.控制信息: 由CPU發(fā)出的,用于控制I/O接口的工作方式以及外設(shè)的啟動(dòng)和停止等。,5,7.2 CPU與外設(shè)交換數(shù)據(jù)的方式,7.2.1 程序控制傳遞方式,特點(diǎn):(1)以CPU為中心,控制來自CPU,通過預(yù)先編寫好的I/O程序?qū)崿F(xiàn)數(shù)據(jù)的傳送。 (2)速度較低,傳送路徑經(jīng)過CPU內(nèi)部寄存器同

2、時(shí)數(shù)據(jù)I/O響應(yīng)也比較慢。,6,1.無條件傳送方式 (同步傳送方式) 外設(shè)的工作時(shí)間已知,必須在CPU限定的指令時(shí)間內(nèi)準(zhǔn)備就緒,并完成數(shù)據(jù)的接收或發(fā)送。 方法:把I/O指令插入到程序中,當(dāng)程序執(zhí)行到該指 令時(shí),外設(shè)已作好準(zhǔn)備,于是在此指令時(shí)間內(nèi)完成數(shù)據(jù)傳送任務(wù)。 優(yōu)點(diǎn):軟件及接口硬件簡(jiǎn)單 缺點(diǎn):CPU效率低,只適用于簡(jiǎn)單外設(shè),適應(yīng)范圍較窄,7,2. 查詢傳送方式(異步傳送方式) 當(dāng)CPU同外設(shè)不同步且不知道外設(shè)工作速率時(shí),可采用此方式傳送。傳送前,CPU必須先對(duì)外設(shè)進(jìn)行狀態(tài)檢測(cè)。,適用場(chǎng)合: 外設(shè)并不總是準(zhǔn)備好 對(duì)傳送速率和效率要求不高 對(duì)外設(shè)及接口的要求: 外設(shè)應(yīng)提供設(shè)備狀態(tài)信息 接口應(yīng)具備

3、狀態(tài)端口,8,完成一次傳送過程的步驟如下: (1) 通過執(zhí)行一條輸入指令,讀取所選外設(shè)的當(dāng)前狀態(tài) (2) 根據(jù)該設(shè)備的狀態(tài)決定程序去向,外設(shè) “忙”或“未準(zhǔn)備就緒” 重復(fù)檢測(cè)外設(shè)狀態(tài) 外設(shè) “空”或“準(zhǔn)備就緒” 發(fā)出I/O指令,進(jìn)行一次數(shù)據(jù)傳送。,9,優(yōu)點(diǎn):軟件比較簡(jiǎn)單 缺點(diǎn):CPU效率低,數(shù)據(jù)傳送的實(shí)時(shí)性差,速 度較慢,10,3中斷傳送方式 無條件傳遞和查詢傳送的缺點(diǎn)是:CPU和外設(shè)只能串行工作。 為提高系統(tǒng)的工作效率,充分發(fā)揮CPU的高速運(yùn)算能力,引入了“中斷”系統(tǒng),利用中斷來實(shí)現(xiàn)CPU與外設(shè)之間的數(shù)據(jù)傳送,這就是中斷傳送方式。,特點(diǎn):外設(shè)在需要時(shí)向CPU提出請(qǐng)求,CPU再去為 它服務(wù)。服

4、務(wù)結(jié)束后或在外設(shè)不需要時(shí),CPU可執(zhí)行自己的程序。 中斷使CPU和外設(shè)以及外設(shè)之間能并行工作。,11,工作過程: 在中斷傳送方式中,通常在程序中安排好某一時(shí)刻啟動(dòng)某一臺(tái)外設(shè),然后CPU繼續(xù)執(zhí)行其主程序,當(dāng)外設(shè)完成數(shù)據(jù)傳送的準(zhǔn)備后,向CPU發(fā)出中斷請(qǐng)求信號(hào),在CPU可以響應(yīng)中斷的條件下,現(xiàn)行主程序被“中斷”,轉(zhuǎn)去執(zhí)行“中斷服務(wù)程序”,在“中斷服務(wù)程序”中完成一次CPU與外設(shè)之間的數(shù)據(jù)傳送,傳送完成后仍返回被中斷的主程序,從斷點(diǎn)處繼續(xù)執(zhí)行。,優(yōu)點(diǎn):CPU效率高,實(shí)時(shí)性好,速度快 缺點(diǎn):程序編制較為復(fù)雜,12,以上三種I/O方式的共性,均需CPU作為中介: 軟件: 外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CP

5、U執(zhí)行 程序來完成的 硬件: I/O接口和存儲(chǔ)器的讀寫控制信號(hào)、地址信號(hào) 都是由CPU發(fā)出的 缺點(diǎn):程序的執(zhí)行速度限定了傳送的最大速度,13,7.2.2 DMA(直接存儲(chǔ)器存取)傳遞方式 外設(shè)和內(nèi)存之間直接傳送數(shù)據(jù)的方式,即DMA傳送方式。在DMA傳送方式中,對(duì)這一數(shù)據(jù)傳送過程進(jìn)行控制的硬件稱為DMA控制器(DMAC)。 特點(diǎn): 外設(shè)直接與存儲(chǔ)器進(jìn)行數(shù)據(jù)交換 ,不需要CPU干預(yù)也不需軟件介入。 總線由DMA控制器(DMAC)進(jìn)行控制(CPU要放棄總線控制權(quán)),內(nèi)存/外設(shè)的地址和讀寫控制信號(hào)均由DMAC提供。,14,1. DMA操作的基本方法 (1)周期挪用(Cycle Stealing) (2

6、)周期擴(kuò)散 (3)CPU停機(jī)方式 最常用,最簡(jiǎn)單的傳送方式,15,2. DMA的傳送方式 (1)單字節(jié)傳送方式 每次DMA傳送只傳送一個(gè)字節(jié)就立即釋放總線。 (2)成組傳送方式 DMAC在申請(qǐng)到總線后,將一組數(shù)據(jù)傳送完后才釋放總線,而不管中間DREQ是否有效。 (3)請(qǐng)求傳送方式(查詢傳送方式) 成組傳送,但每傳送一個(gè)字節(jié)后,DMAC查DREQ,有效傳,無效掛起。,16,.DMAC(DMA控制器)的基本功能 (1)能接收外設(shè)的請(qǐng)求,向CPU發(fā)出DMA請(qǐng)求信號(hào)。 (2)當(dāng)接到CPU發(fā)出DMA響應(yīng)信號(hào)后,DMAC接管對(duì)總線的控制,進(jìn)入DMA方式。 (3)能尋址存儲(chǔ)器,即能輸出地址信息和修改地址。

7、(4)能向存儲(chǔ)器和外設(shè)發(fā)相應(yīng)的讀/寫控制信號(hào)。 (5)能控制傳送的字節(jié)數(shù),判斷DMA是否結(jié)束。 (6)在DMA傳送結(jié)束后,能結(jié)束DMA請(qǐng)求信號(hào),釋放總線,使CPU恢復(fù)正常工作。,17,7.3 中斷技術(shù) 7.3.1 概述 中斷外設(shè)隨機(jī)地(指主程序運(yùn)行到任何一條指令時(shí))或程序預(yù)先安排產(chǎn)生中斷請(qǐng)求信號(hào),暫停CPU正在運(yùn)行的程序,轉(zhuǎn)入執(zhí)行稱為中斷服務(wù)的子程序,中斷服務(wù)完畢后,返回到主程序被中斷處繼續(xù)執(zhí)行的過程。 中斷源引起中斷的事件,18,通常中斷源有以下幾種: (1) 輸入、輸出設(shè)備: 如鍵盤、顯示器和打印機(jī)等; (2) 數(shù)據(jù)通道; (3) 實(shí)時(shí)控制過程中的各種參數(shù); (4) 故障源: 如掉電保護(hù)等

8、; (5) 控制系統(tǒng)的現(xiàn)場(chǎng)測(cè)試信號(hào)以及軟件中斷。 中斷系統(tǒng)應(yīng)具有以下功能: 1. 能實(shí)現(xiàn)中斷響應(yīng)、中斷服務(wù)和中斷返回 2. 能實(shí)現(xiàn)中斷優(yōu)先級(jí)排隊(duì) 3. 能實(shí)現(xiàn)中斷嵌套 ,19,7.3.2 中斷過程 1.中斷過程 一個(gè)完整的中斷基本過程包括:中斷請(qǐng)求、中斷判優(yōu)、中斷響應(yīng)、中斷處理及中斷返回等五個(gè)基本過程。 (1)中斷請(qǐng)求 當(dāng)某一外部中斷源要求CPU中斷時(shí),首先要向CPU發(fā)出中斷請(qǐng)求,該請(qǐng)求信號(hào)被存放在中斷源接口電路的中斷請(qǐng)求觸發(fā)器中暫存,并通過INTR或NMI信號(hào)線引入CPU 。,20,(2)中斷判優(yōu) 由于中斷請(qǐng)求是隨機(jī)的,在某一瞬間有可能出現(xiàn)兩個(gè)或兩個(gè)以上中斷源同時(shí)提出請(qǐng)求的情況。這時(shí)必須根據(jù)

9、中斷源的輕重緩急,給每個(gè)中斷源確定一個(gè)中斷級(jí)別 中斷優(yōu)先權(quán) 。,另一個(gè)作用能實(shí)現(xiàn)中斷嵌套 。,21,(3)中斷響應(yīng) CPU每執(zhí)行完一條指令后,查詢是否有中斷請(qǐng)求。當(dāng)查詢到有中斷請(qǐng)求且此時(shí)CPU允許中斷(即IF=1,開中斷),CPU響應(yīng)中斷。 響應(yīng)中斷后系統(tǒng)做的工作: 自動(dòng)關(guān)中斷;通過使IF清零來實(shí)現(xiàn) 保存FR和斷點(diǎn); 形成中斷入口地址。通過中斷矢量,查詢中斷地址表實(shí)現(xiàn)。,22,(4)中斷處理 執(zhí)行中斷服務(wù)程序 中斷服務(wù)開始要用壓棧指令(PUSH)將要用到的寄存器內(nèi)容壓入堆棧,以便返回到主程序時(shí)能正確運(yùn)行。保護(hù)現(xiàn)場(chǎng) 中斷服務(wù)程序結(jié)束后,用POP指令把所保存的有關(guān)寄存器的內(nèi)容從堆棧彈出,以便恢復(fù)到

10、中斷前的狀態(tài)。恢復(fù)現(xiàn)場(chǎng),23,(5)中斷返回 通常在中斷返回前,要用指令開中斷,以便再次響應(yīng)中斷,然后執(zhí)行中斷返回指令,24,2. 中斷優(yōu)先權(quán) (1)軟件查詢方式,7,7,25,(2)硬件優(yōu)先權(quán)排隊(duì)電路。 簡(jiǎn)單硬件方式菊花鏈法或鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路。 專用硬件方式可編程的中斷控制器,7,26,7.4 8086/8088的中斷系統(tǒng) 7.4.1 中斷結(jié)構(gòu) 1.中斷分類,27,硬件中斷由外部硬件產(chǎn)生的,也稱外部中斷。,軟件中斷CPU根據(jù)軟件的某些指令或者軟件對(duì)標(biāo)志寄存器某個(gè)標(biāo)志位的設(shè)置而產(chǎn)生的,由于它與外部中斷電路完全無關(guān),故稱為內(nèi)部中斷。 ,28,2中斷向量表 存放中斷地址的一段內(nèi)存空間稱中斷向量表

11、。,存放各類中斷的中斷服務(wù)程序的入口地址 位于內(nèi)存的00000000000003FFH(即00000003FFH)大小為1KB,共256個(gè)入口地址 每個(gè)入口地址占用4個(gè)單元,依次為IP:CS, 低字為段內(nèi)偏移,高字為段基址,29,中斷向量表,00000H,003FFH,1KB,30,IP,CS,中斷類型碼與中斷向量所在位置(中斷向量地址指針)之間的對(duì)應(yīng)關(guān)系為: 中斷向量地址指針=4*中斷類型碼,C,3,31,例:中斷類型碼為20H(32)的中斷源所對(duì)應(yīng)的中斷服務(wù)程序首址存放在00000080H(4*20H=80H)開始的4 個(gè)單元中。若在0080H至0083H這4個(gè)單元中存放的值分別為10H、

12、20H、30H、40H,則該系統(tǒng)中20H號(hào)中斷所對(duì)應(yīng)的中斷處理(服務(wù))程序入口地址為40302010H,32,7.4.2 內(nèi)部中斷軟中斷 在8086/8088系統(tǒng)中,通過執(zhí)行中斷指令或由CPU 本身啟動(dòng)的中斷稱為內(nèi)部中斷(也稱軟件中斷)。 除單步中斷外,內(nèi)部中斷無法用軟件禁止,即不受IF的影響。 1、內(nèi)部中斷的類型 (1)0型中斷除法出錯(cuò)中斷 (2)1型中斷單步中斷 (3)3型中斷斷點(diǎn)中斷 (4)4型中斷溢出中斷 (5)INT n指令中斷,33,2內(nèi)部中斷的處理過程 如何獲取相應(yīng)的中斷類型碼 專用中斷:中斷類型碼是自動(dòng)形成的。 幾種類型碼為:類型0、1、3、4。 對(duì)于INT n指令,其類型碼為

13、指令中給定的n。,34,取得了類型碼后的處理過程: 類型碼*4 向量表指針。 標(biāo)志寄存器FR入棧,保護(hù)各個(gè)標(biāo)志。 清除IF和TF標(biāo)志,屏蔽新的INTR中斷和單步中斷。 保存斷點(diǎn)(斷點(diǎn)處IP和CS壓棧,先壓CS后壓IP)。 從中斷向量表中取出中斷服務(wù)程序入口地址分別送入IP和CS中。 按新的地址執(zhí)行中斷服務(wù)程序。,35,7.4.3 外部中斷硬中斷 非屏蔽中斷NMI引腳產(chǎn)生的中斷,不受IF控制,類型號(hào)為2。 可屏蔽中斷由CPU的INTR端接收可屏蔽中斷。受IF控制,只有當(dāng)IF=1, 在一條指令執(zhí)行結(jié)束后,CPU才能響應(yīng)可屏蔽中斷的請(qǐng)求。,36,1. 外部中斷的響應(yīng) CPU采樣到非屏蔽中斷請(qǐng)求時(shí),自

14、動(dòng)提供中斷類型號(hào)2,然后根據(jù)中斷類型號(hào),查找中斷向量表指針,其后的處理與內(nèi)部中斷一樣。 當(dāng)INTR信號(hào)有效,如IF=1,則CPU執(zhí)行完一條指令后,進(jìn)入可屏蔽中斷響應(yīng)周期。在中斷響應(yīng)周期中CPU從數(shù)據(jù)線中獲取外部設(shè)備的中斷類型碼。,37,2.外部中斷處理過程 在外部中斷響應(yīng)周期中,CPU獲取了外部中斷類型 碼之后的中斷處理過程,與前述的軟中斷過程順序是一樣的,不再贅述。 如果把CPU中斷響應(yīng)周期的動(dòng)作和前面講到的中斷響應(yīng)過程結(jié)合起來,當(dāng)一個(gè)可屏蔽中斷被響應(yīng)時(shí),CPU實(shí)際執(zhí)行了7個(gè)總線周期,即:,38, 執(zhí)行第一個(gè)INTA周期。 執(zhí)行第二個(gè)INTA周期,被響應(yīng)的外設(shè)通過D0D7的8位數(shù)據(jù)線提供中斷

15、類型碼n(由8259A提供),CPU接到類型碼后,將它左移兩位,形成向量表指針存入暫存器。 執(zhí)行一個(gè)總線寫周期,把FR壓棧。同時(shí)IF和TF為0,以禁止中斷響應(yīng)過程中其他可屏蔽中斷的進(jìn)入,同時(shí)也禁止了中斷過程中出現(xiàn)單步中斷。,39, 執(zhí)行一個(gè)總線寫周期,CS壓棧。 執(zhí)行一個(gè)總線寫周期,IP壓棧。 執(zhí)行一個(gè)總線讀周期,從中斷向量表中取出中斷服務(wù)程序入口地址的偏移量送IP中。 執(zhí)行一個(gè)總線周期,從中斷向量表中取出中斷服務(wù)程序入口地址的段值送CS。 對(duì)于非屏蔽與軟中斷跳過第、步,從第步開始執(zhí)行到第步。,40,7.4.4 各類中斷的優(yōu)先權(quán)及中斷響應(yīng) 8086/8088系統(tǒng)中,中斷優(yōu)先權(quán)次序從高到低為:除

16、法出錯(cuò)、INTn、INTO、NMI、INTR、單步中斷。 除單步之外的內(nèi)部?jī)?yōu)先權(quán)最高,其次是非屏蔽中斷,再次是可屏蔽中斷,而單步最低。,41,7.5 8259A可編程中斷控制器 7.5.1 8259A的功能 1.功能 Intel 8259A 是與8086系列CPU兼容的可編程中斷控制器,它的主要功能為: (1)具有8級(jí)優(yōu)先權(quán)控制,級(jí)連可擴(kuò)展至64級(jí)。 (2)每一級(jí)中斷都可以屏蔽或允許。 (3)在中斷響應(yīng)周期,8259A可提供相應(yīng)的中斷向量號(hào)(中斷類型號(hào))。 (4)8259A的工作方式,可通過編程來進(jìn)行選擇。,7.5.2 8259A的結(jié)構(gòu)及工作原理,7,42,(1)8259A的內(nèi)部結(jié)構(gòu),8位寄存

17、器,是8259A與外設(shè)中斷源的接口。通過IR7IR0與8個(gè)中斷源相接。當(dāng)有某個(gè)中斷源申請(qǐng)中斷時(shí),使IRR的相應(yīng)位置1。最多可同時(shí)接收8個(gè)中斷源的中斷申請(qǐng)。,8位寄存器,用于設(shè)置中斷請(qǐng)求的屏蔽信號(hào)。第i位被置1時(shí),與之對(duì)應(yīng)的IRi被屏蔽,不能向CPU發(fā)INT信號(hào)??赏ㄟ^軟件設(shè)置其內(nèi)容,確定每個(gè)中斷請(qǐng)求的屏蔽狀態(tài)。設(shè)置IMR也可起到改變中斷請(qǐng)求優(yōu)先級(jí)的效果。,8位寄存器,寄存所有正在被服務(wù)的中斷級(jí)。第i位置1表示CPU正為IRi中斷源服務(wù),該信號(hào)一直保持到CPU處理完該中斷服務(wù)程序?yàn)橹?。該中斷處理結(jié)束前,要使用指令清除這一位。ISR可被CPU讀出。當(dāng)有多位置1時(shí),表示發(fā)生了中斷嵌套。,對(duì)在IRR中

18、的中斷請(qǐng)求,經(jīng)判斷確定最高的優(yōu)先權(quán),并在中斷響應(yīng)用周期把它選通送至ISR,8位雙向三態(tài)緩沖器,是8259A與系統(tǒng)數(shù)據(jù)總線的接口。8259A通過它接收CPU發(fā)來的控制字,也通過它向CPU發(fā)送中斷類型代碼和狀態(tài)信息。,接收CPU的讀/寫命令。CS和地址線A0決定訪問8259A的哪個(gè)寄存器。,用于多塊8259A的連接,使中斷可由8級(jí)擴(kuò)展到64級(jí),7,43, 8259A的引腳,雙功能信號(hào)。當(dāng)8259A工作于緩沖器方式時(shí),它作為控制緩沖器傳送方式的輸出信號(hào);當(dāng)工作于非緩沖方式時(shí),用于規(guī)定其是主8259A還是從8259A,44,8259A的工作原理 當(dāng)系統(tǒng)通電后,首先應(yīng)對(duì)8259A初始化。(由CPU執(zhí)行一

19、段程序,向可編程芯片寫入若干命令字,規(guī)定其工作狀態(tài),使其處于準(zhǔn)備就緒的狀態(tài)。) 8259A對(duì)外部中斷請(qǐng)求處理過程如下: (1) 當(dāng)有IR0IR7變 高,則IRR的相應(yīng)位置1。 (2) 若中斷請(qǐng)求線中至少有一條是中斷允許的,則 由 INT 引腳向CPU發(fā)出中斷請(qǐng)求。 (3) 若CPU處于開中斷狀態(tài),則在當(dāng)前指令執(zhí)行完后,用INTA信號(hào)作為響應(yīng)。,45,(4) 8259A接到INTA后,使最高優(yōu)先權(quán)的ISR位置1,而相應(yīng)的IRR位復(fù)位。在此周期中,8259A不向系統(tǒng)數(shù)據(jù)總線送任何內(nèi)容。 (5) 在中斷響應(yīng)周期的第二個(gè)信號(hào)期間8259A向數(shù)據(jù)總線輸送一個(gè)8位指針(向量號(hào)或類型號(hào)),CPU讀取此類型號(hào)

20、,類型號(hào)*4作為地址就可從中斷向量表中取出中斷服務(wù)程序入口地址。 (6) 若8259A工作在自動(dòng)結(jié)束中斷AEOI方式(Automatic End Of Interrupt),在第二個(gè)INTA結(jié)束時(shí),使中斷源在ISR的相應(yīng)位復(fù)位。否則,直至中斷服務(wù)程序執(zhí)行到EOI命令,才使ISR的相應(yīng)位復(fù)位。,46,7.5.3 8259A的編程 8259A的編程分兩部分: (1)初始化編程 由CPU向8259A送24字節(jié)的初始化命令字ICW (2)工作方式編程 由CPU向8259A送三個(gè)字節(jié)的工作命令字OCW,以規(guī)定8259A的工作方式。該命令字可在8259A初始化命令字ICW后的任何時(shí)間寫入。,47,1. 8

21、259A的初始化編程 8259A的初始化命令字共4個(gè)(ICW1ICW4) 設(shè)置過程如圖:,7,48,0,49,(2)寫初始化命令字ICW2中斷類型控制字 ( 中斷類型碼 ) 用來定義中斷類型碼的高5位,74,50,(3) 寫初始化指令字ICW3主/從片初始化 (級(jí)連控制字),51,(4) 寫初始化命令字ICW4方式控制字 對(duì)于8086/8088系統(tǒng)是必須設(shè)置的初始化命令字,74,1,52,2. 8259A的操作命令字 三個(gè)操作命令字OCW1OCW3。 在設(shè)置操作命令字時(shí),順序上沒有嚴(yán)格的要求,但端口地址上有嚴(yán)格的規(guī)定。 OCW1必須寫入奇地址端口(A0=1) OCW2和OCW3必須寫入偶地址端

22、口(A0=0),53, 操作命令字OCW1 屏蔽操作命令字 用來設(shè)置或清除對(duì)中斷的屏蔽(設(shè)置IMR的值),75,54,(2) 操作命令字OCW2中斷方式命令字 設(shè)置優(yōu)先級(jí)循環(huán)和中斷結(jié)束方式,64,75,若ICW4設(shè)置正常結(jié)束訪問,則在IRET前寫OCW2, 使EOI=1,ISR復(fù)位,1. 若OCW2中設(shè)置特殊優(yōu)先級(jí)循環(huán)方式時(shí),最低優(yōu)先級(jí)編碼。 2. OCW2中設(shè)置特殊中斷命令結(jié)束,指具體清除哪一位。,55,(3) 操作命令字OCW3狀態(tài)操作命令字 設(shè)置和撤銷特殊屏蔽方式、設(shè)置中斷查詢方式、 設(shè)置對(duì)8259A內(nèi)部寄存器的讀出命令,7,56,注意: 1. 如何區(qū)分OCW2,OCW3? 用D3位,即

23、兩個(gè)操作命令字的標(biāo)識(shí)位,2. 如何區(qū)分ICW1,OCW2,OCW3?,57,7.5.4 8259A的工作方式 1中斷嵌套方式 (1)全嵌套方式 當(dāng)工作在全嵌套方式時(shí),8259A寫入初始化命令字后,中斷優(yōu)先權(quán)是固定的,即IR0優(yōu)先權(quán)最高,IR7優(yōu)先權(quán)最低。當(dāng)CPU響應(yīng)中斷時(shí),申請(qǐng)中斷的優(yōu)先權(quán)最高的中斷源在ISR中相應(yīng)位置位,而且把它的中斷向量號(hào)(類型碼)送到數(shù)據(jù)總線,在此中斷源的中斷服務(wù)程序完成前,與它同級(jí)或優(yōu)先權(quán)更低的中斷源申請(qǐng)被屏蔽,只有優(yōu)先權(quán)比它高的中斷源的申請(qǐng)才允許。,58,(2)特殊全嵌套方式級(jí)連情況 與全嵌套方式不同之處: 當(dāng)某一從片中斷請(qǐng)求被響應(yīng)后,主片不封鎖從片的INT輸入端,使

24、該從片優(yōu)先級(jí)更高的中斷源的請(qǐng)求能得到響應(yīng)。 當(dāng)從片中斷處理快要結(jié)束時(shí),用軟件檢查從片中斷服務(wù)寄存器ISR的內(nèi)容是否為0,若為0,則這個(gè)從片的中斷請(qǐng)求是唯一的,此時(shí)連發(fā)兩個(gè)中斷結(jié)束命令EOI,使主片、從片都結(jié)束中斷。若只發(fā)一個(gè)EOI命令則只結(jié)束從片,不結(jié)束主片中斷。,59,2中斷優(yōu)先級(jí)循環(huán)方式 8259A中有兩種改變優(yōu)先權(quán)的辦法 自動(dòng)循環(huán)方式 當(dāng)某一個(gè)中斷源服務(wù) 完以后,它的優(yōu)先級(jí) 變成最低的 。,7,60,(2) 特殊循環(huán)方式 如果中斷源的優(yōu)先權(quán)需要任意改變,就必須工作 在特殊循環(huán)方式下。此時(shí),可用程序通過寫OCW2 來改變優(yōu)先權(quán)。 例如: 設(shè)置IR5為最低優(yōu)先權(quán),則IR6的優(yōu)先權(quán)就變 為最高

25、。這時(shí)OCW2最高三位為110,而最低三位 L2L0應(yīng)為101(最低優(yōu)先權(quán)編碼)。,OCW2: 1 1 0 0 0 1 0 1,61,3. 中斷屏蔽 8259A的8條中斷請(qǐng)求線的每一條都可根據(jù)需要單獨(dú)屏蔽,可通過寫入OCW1的命令字來實(shí)現(xiàn)。 8259A有兩種屏蔽方式:,(1) 普通屏蔽方式 特點(diǎn):當(dāng)執(zhí)行某一級(jí)中斷服務(wù)程序時(shí),只允許比該級(jí)優(yōu)先級(jí)高的中斷源申請(qǐng)中斷,不允許同級(jí)或低級(jí)的中斷源申請(qǐng)中斷。 方法:用OCW1將IMR寄存器某一位或幾位置1,即可將相應(yīng)的中斷請(qǐng)求屏蔽掉。 使用情況:當(dāng)CPU執(zhí)行主程序時(shí),可將不希望響應(yīng)的中斷源屏蔽;當(dāng)CPU執(zhí)行某中斷服務(wù)程序時(shí),可將不希望響應(yīng)的比此優(yōu)先級(jí)高的中

26、斷源屏蔽。,62,(2) 特殊屏蔽方式 特點(diǎn):CPU正在處理某一級(jí)中斷時(shí),只可對(duì)本級(jí)中斷進(jìn)行屏蔽,允許級(jí)別比它高的或比它低的中斷源申請(qǐng)中斷。 方法:在某級(jí)中斷服務(wù)程序中首先用OCW3設(shè)置該方式(即D6D5=11),然后設(shè)置OCW1使該級(jí)的中斷申請(qǐng)被屏蔽,只有寫入這兩個(gè)控制字之后,才能使中斷屏蔽寄存器IMR中該級(jí)中斷位被屏蔽(=1),不允許發(fā)生同級(jí)中斷,同時(shí)使中斷服務(wù)寄存器ISR相應(yīng)位置0,允許比該級(jí)低級(jí)別的中斷源申請(qǐng)中斷。 若想退出此方式,通過設(shè)置OCW3的D6D5=10,再執(zhí)行輸出指令即可。 使用情況:在中斷處理過程中,需要?jiǎng)討B(tài)改變系統(tǒng)的優(yōu)先級(jí)結(jié)構(gòu)時(shí)。,63,4. 程序查詢方式 CPU利用查

27、詢命令(OCW3中D2=1)獲得當(dāng)前請(qǐng)求服務(wù)的優(yōu)先級(jí)。此時(shí)8259A內(nèi)部仍進(jìn)行8級(jí)中斷請(qǐng)求的判優(yōu)和屏蔽管理。查詢命令發(fā)出后,執(zhí)行一條輸入指令,可得到查詢字。,D7=1 有中斷請(qǐng)求 D7=0 無中斷請(qǐng)求,當(dāng)前發(fā)出中斷請(qǐng)求級(jí)別最高的中斷信號(hào),64,5. 中斷結(jié)束命令 根據(jù)不同的工作方式8259A可以有幾種不同的結(jié) 束方法。 (1)自動(dòng)中斷結(jié)束方式(AEOI) 特點(diǎn):中斷服務(wù)寄存器ISR的相應(yīng)位清零是由硬件自動(dòng)完成的。當(dāng)某一級(jí)中斷被CPU響應(yīng)后,CPU送回第一個(gè)INTA中斷響應(yīng)信號(hào),使ISR的相應(yīng)位置1,當(dāng)?shù)诙€(gè)INTA負(fù)脈沖結(jié)束時(shí),自動(dòng)將ISR的相應(yīng)位置0。 實(shí)現(xiàn)方法:通過將ICW4的D1位設(shè)置為

28、1實(shí)現(xiàn)。 使用環(huán)境:適用不要求中斷嵌套的情況。,65,(2)非自動(dòng)中斷結(jié)束方式(EOI) 特點(diǎn):中斷返回前,必須用指令向8259A發(fā)中斷結(jié)束命令,即使ICW4的D1=0。若級(jí)連,發(fā)2個(gè)。 方法:首先將ICW4的D1=0,定為正常中斷結(jié)束方式,然后用OUT向8259A的偶地址端口輸出OCW2操作控制字(OCW2的D7D6D5=001),實(shí)現(xiàn)自動(dòng)結(jié)束命令。 使用環(huán)境:一般的中斷結(jié)束方式只能應(yīng)用于全嵌套方式下,不能用于優(yōu)先級(jí)自動(dòng)循環(huán)方式和優(yōu)先級(jí)特殊循環(huán)方式。因?yàn)橐话阒袛嘟Y(jié)束方式結(jié)束的中斷是尚未處理完的級(jí)別最高的中斷。若中斷級(jí)別改變,會(huì)使整個(gè)中斷過程混亂。,66,(3)特殊中斷結(jié)束方式 特點(diǎn):通過用指

29、令發(fā)一中斷結(jié)束命令,同時(shí)給出結(jié)束中斷的中斷源是哪一級(jí),使該中斷源的中斷服務(wù)寄存器ISR的相應(yīng)位置0。 使用環(huán)境:可應(yīng)用在任何情況下,但要在中斷處理中給出中斷結(jié)束命令。 使用方法:首先將ICW4的D1=0,定為正常中斷結(jié)束方式,然后通過將OCW2的D7D6D5=011或111,D2D1D0位指出結(jié)束中斷處理的中斷源號(hào),使該中斷源在中斷服務(wù)寄存器ISR中的相應(yīng)位清零。,67,6. 讀8259A 的狀態(tài) 8259A的IRR、ISR、IMR的狀態(tài),可通過讀命令讀入CPU,供用戶了解8259A的工作情況。 (1) 在讀命令之前,輸出一個(gè)OCW3,令其RR=1,RIS=0(D1D0=10),可利用讀命令讀

30、入中斷請(qǐng)求寄存器IRR的狀態(tài)。若RR=1,RIS=1(D1D0=11),可利用讀命令讀入中斷服務(wù)寄存器ISR的狀態(tài)。 (2) 對(duì)奇地址端口(A0=1)進(jìn)行讀操作,可讀得中斷屏蔽寄存器IMR的值。,68,7. 5.5 由多片8259A組成的主從式中斷系統(tǒng) 在一個(gè)系統(tǒng)中若中斷源多于8個(gè),必須采用多片8259A進(jìn)行級(jí)連。其中有一片主8259A,若干片從8259A,可把中斷源擴(kuò)展到64個(gè)。,7,69,7.5.6 8259A的編程實(shí)例 1.初始化編程 例7-1:對(duì)IBM PC/XT機(jī)中使用的8259A初始化編程。硬件連 接如圖。,7,70,設(shè)置ICW1為邊沿觸發(fā),單片8259A需要ICW4。 方式字:

31、00010011B,MOV AL,13H ; OUT 20H,AL,設(shè)置ICW2 類型碼為 00001000B(IR0),MOV AL,08H ; OUT 21H,AL,設(shè)置ICW4,全嵌套方式,緩沖方式,正常EOI 。 方式字: 00001101B,MOV AL,0DH ; OUT 21H,AL,根據(jù)系統(tǒng)要求初始化編程如下:,在IBM PC機(jī)中,只有一片8259A,可接外部8級(jí)中斷,8259A的端口地址為20H和21H。對(duì)8259A的初始化規(guī)定:邊沿觸發(fā)方式,緩沖方式,中斷結(jié)束為EOI命令方式,中斷優(yōu)先權(quán)管理采用全嵌套方式。8級(jí)中斷源類型碼為08H-0FH。,71,初始化完成后,8259A處于全嵌套工作方式,可以響應(yīng)外部中斷。根據(jù)要求設(shè)置8259A的操作命令字OCW1OCW2 (1)如允許時(shí)鐘,鍵盤,異步通信卡(COM1)中斷,設(shè)置OCW1為0ECH(屏蔽字)。11101100B MOV AL,0ECH OUT 21H,AL,(2)由于正常EOI,因此在中斷服務(wù)程序結(jié)束后,返回?cái)帱c(diǎn)前必須對(duì)OCW2寫入00100000B即20H作結(jié)束中斷操作命令。 MOV AL,20H ;設(shè)置OCW2的值為20H OUT 20H,AL IRET ;中斷返回,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!