第八章 中斷技術(shù)、DMA控制器.ppt_第1頁
第八章 中斷技術(shù)、DMA控制器.ppt_第2頁
第八章 中斷技術(shù)、DMA控制器.ppt_第3頁
第八章 中斷技術(shù)、DMA控制器.ppt_第4頁
第八章 中斷技術(shù)、DMA控制器.ppt_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第八章 中斷技術(shù)、DMA控制器,主 要 內(nèi) 容,中斷的基本原理 中斷的實現(xiàn)方法 中斷控制器8259A DMA控制器8237,中 斷 的 基 本 原 理,所謂中斷,就是指當CPU正在執(zhí)行程序時,外設(shè)(或其它中斷源)向CPU發(fā)出請求,CPU暫停當前程序的執(zhí)行,轉(zhuǎn)向該外設(shè)服務(或稱中斷服務)程序,當中斷服務程序運行結(jié)束后,返回原程序繼續(xù)執(zhí)行的過程。,中 斷 的 基 本 原 理,中斷過程 包括:中斷請求,中斷判優(yōu),中斷響應,中斷處理,中斷返回五個過程。 中斷優(yōu)先權(quán) 軟件查詢法 是在CPU響應中斷后,用軟件查詢以確定是哪些外設(shè)申請中斷,并判斷它們的優(yōu)先權(quán),中 斷 的 基 本 原 理,硬件優(yōu)先權(quán)排隊電路

2、中斷優(yōu)先權(quán)排隊電路 可用硬件編碼器和比較器組成的優(yōu)先權(quán)排隊電路,中 斷 的 基 本 原 理,硬件優(yōu)先權(quán)排隊電路 鏈式優(yōu)先權(quán)排隊電路也稱雛菊花鏈 將所有的中斷源排成一個鏈。各中斷源在鏈中的前后順序是根據(jù)中斷源優(yōu)先級別的高低來排列。排在鏈前面的優(yōu)先級最高。,中 斷 的 基 本 原 理,中斷響應 中斷響應的條件: 有中斷請求信號 中斷請求沒有被屏蔽 中斷是開放的 CPU在現(xiàn)行指令執(zhí)行結(jié)束時響應中斷,中 斷 的 基 本 原 理,中斷響應 關(guān)中斷 保存斷點 保護現(xiàn)場 給出中斷服務程序入口地址,并轉(zhuǎn)入該服務程序 恢復現(xiàn)場 從中斷返回,8086 8088 中 斷 系 統(tǒng),8086/8088的中斷源 8086

3、/8088系統(tǒng)的中斷源分為外部中斷(中斷源來自CPU外部)和內(nèi)部中斷(來自CPU內(nèi)部的中斷) 內(nèi)部中斷 除法溢出中斷0號中斷 單步中斷1號中斷 INT指令中斷 溢出中斷4號中斷,8086 8088 中 斷 系 統(tǒng),外部中斷 非屏蔽中斷 非屏蔽中斷的優(yōu)先權(quán)高于可屏蔽中斷。其中斷請求信號是發(fā)生在NMI上的電壓跳變(邊沿觸發(fā))。 可屏蔽中斷 出現(xiàn)在INTR線上的請求信號是電平觸發(fā)的。只有當中斷允許標志位IF為1時,CPU才能響應INTR的中斷請求。如果IF為0,即使INTR端有中斷請求信號CPU也不會響應。這種情況稱為中斷屏蔽。,8086 8088 中 斷 系 統(tǒng),中斷向量表 8086/8088系統(tǒng)

4、支持最多256個中斷,對應每一個中斷,都有一個中斷服務程序,該中斷服務程序的入口地址稱為中斷向量。每個中斷向量占用4個字節(jié),前兩個字節(jié)為服務程序的IP(偏移量),后兩個字節(jié)為服務程序的CS(段地址)。,8259A 中 斷 控 制 器,8259A的結(jié)構(gòu)及邏輯功能 功能 管理和控制80 x86的外部中斷請求 實現(xiàn)中斷判優(yōu) 提供中斷向量 屏蔽中斷輸入 使用單片8259A可以管理8級中斷,采用級聯(lián)方式,最多可管理64級中斷,8259A 中 斷 控 制 器,結(jié)構(gòu),8259A 中 斷 控 制 器,結(jié)構(gòu) 中斷請求寄存器IRR 優(yōu)先級分析器 中斷服務寄存器ISR 中斷屏蔽寄存器IMR 數(shù)據(jù)總線緩沖器 讀/寫邏

5、輯 級聯(lián)緩沖器,8259A 中 斷 控 制 器,8259A的引腳,8259A 中 斷 控 制 器,中斷響應過程 (1)外部設(shè)備在中斷請求輸入線(IR7 IR0)上發(fā)了中斷請求,使中斷請求寄存器IRR的相應位置位。 (2)IRR的內(nèi)容與IMR的內(nèi)容相“與”,結(jié)果送給優(yōu)先級分析器。中斷優(yōu)先級分析器把優(yōu)先級最高的中斷請求送到控制電路。 (3)控制電路將接收到的中斷請求向CPU輸出INT信號。,8259A 中 斷 控 制 器,中斷響應過程 (4)若CPU是處在開中斷狀態(tài),則在當前指令執(zhí)行完以后,接收到INT信號,輸出一個中斷響應脈沖,進入第一個中斷響應周期。 (5)8259A的腳上收到脈沖信號,就將最

6、高優(yōu)先級所對應的IRR位清除,并將對應的ISR位置位。 (6)CPU啟動第二個中斷響應周期,輸出另一個脈沖,在這個周期8259A向數(shù)據(jù)總線輸出一個中斷向量碼。 (7)CPU讀取該中斷向量碼,把它乘以4,得到中斷服務程序入口地址,轉(zhuǎn)入該中斷服務程序。這樣一個中斷響應周期就完成了。,8259A 中 斷 控 制 器,8259A的編程 8259A的初始化編程 由CPU向8259A寫初始化命令字ICW 初始化命令字ICW的格式及功能如下 1、ICW1 2、ICW2,8259A 中 斷 控 制 器,3、ICW3 4、ICW4,8259A 中 斷 控 制 器,8259A的工作方式編程 1、OCW1是中斷屏蔽

7、命令字,D7D0分別控制對應的IRQ7IRQ0上的中斷請求被屏蔽還是開放?!?”是屏蔽,“0”是開放。 2、OCW2是用來設(shè)置中斷優(yōu)先級循環(huán)方式和發(fā)送EOI命令。通過偶地址寫OCW2且命令字的D4D3位都是“0”,標志著是對OCW2設(shè)置,若D4D3位是01則是OCW3,D4為1則是ICW1。,8259A 中 斷 控 制 器,3、OCW3用于控制讀中斷狀態(tài)、查詢及屏蔽方式,此時要求8259A的引腳A0為0即偶地址。 例:設(shè)8259A初始化后屏蔽IR2,設(shè)置特殊屏蔽方式,允許開放優(yōu)先級低的中斷。設(shè)端口地址為20H和21H。,8259A 中 斷 控 制 器,8259A的操作方式 查詢方式 中斷屏蔽

8、緩沖模式 中斷嵌套模式 中斷優(yōu)先權(quán)旋轉(zhuǎn) 中斷結(jié)束命令 讀8259A狀態(tài) 8259A的級聯(lián),可 編 程 DMA 控 制 器 8237A,利用DMA方式傳送數(shù)據(jù)時,數(shù)據(jù)的傳送過程完全由硬件控制,這種電路稱為DMA控制器(DMAC)。需要數(shù)據(jù)傳送時,DMAC向CPU提出申請,CPU讓出總線控制權(quán),由DMAC直接控制地址總線、數(shù)據(jù)總線和控制總線,讓存儲器與高速的外部設(shè)備直接交換數(shù)據(jù),CPU不再干預,這樣大大減少了中間過程,提高了數(shù)據(jù)傳送速度。,可 編 程 DMA 控 制 器 8237A,8237A的結(jié)構(gòu)和功能 引腳信號,可 編 程 DMA 控 制 器 8237A,內(nèi)部結(jié)構(gòu) 8237A有4個獨立的DMA

9、通道,24個內(nèi)部寄存器。,可 編 程 DMA 控 制 器 8237A,內(nèi)部寄存器 基址寄存器和當前地址寄存器 基字節(jié)計數(shù)寄存器和當前字節(jié)計數(shù)寄存器 暫時地址寄存器 狀態(tài)寄存器 命令寄存器 暫存寄存器 方式寄存器 屏蔽寄存器 請求寄存器 8237A的先后觸發(fā)器 此觸發(fā)器保證16位寄存器的讀寫操作,以先低字節(jié)后高字節(jié)的順序操作。,可 編 程 DMA 控 制 器 8237A,8237A的工作方式 單字節(jié)傳送方式 DMA傳送時,僅傳送一個字節(jié)。 塊傳送方式 塊傳送方式由一個DMA請求啟動傳送整個一個數(shù)據(jù)塊,在整個數(shù)據(jù)傳送期間,系統(tǒng)總線一直被DMAC所控制,每傳送一個數(shù)據(jù),計數(shù)寄存器的值減1。 請求傳送

10、方式 在請求傳送方式下8237A被編程為連續(xù)傳送,直至遇到T/C或外部來的 為止,或者直到DREQ不再有效為止。 級聯(lián)方式 多個8237A進行級聯(lián)時,將其中一個DMAC作為主片,其他作為從片。,可 編 程 DMA 控 制 器 8237A,8237A初始化編程 設(shè)置方式寄存器 PC機BIOS在初始化時,將方式寄存器初始化為單字節(jié)傳送方式、地址遞增、通道0為讀傳送、自動預置(方式字為58H)、通道1、2、3為校驗傳送、禁止自動預置,其方式字為41H、42H、43H。 設(shè)置命令寄存器 初始化必須設(shè)置命令寄存器,以確定其工作時序、優(yōu)先級方式、DREQ和DACK的有效電平及是否允許工作等。 清除先后觸發(fā)

11、器 先/后觸發(fā)器是一個指針,當它為0時,對低字節(jié)進行操作,當它為1時,對高字節(jié)進行操作。,可 編 程 DMA 控 制 器 8237A,設(shè)置地址和字節(jié)計數(shù)器 8237A每個通道有四個16位的寄存器。這四個寄存器是基地址寄存器和當前地址寄存器以及基本字節(jié)計數(shù)寄存器和當前字節(jié)計數(shù)寄存器。 清除屏蔽寄存器 屏蔽寄存器是一個4位寄存器,每一位代表一個通道。當它為1時,向該通道的DMA請求被禁止;為0時,則允許。,可 編 程 定 時 器 計 數(shù) 器 8253,8253的結(jié)構(gòu)和功能 8253采用N溝道MOS工藝制成,有三個獨立的16位計數(shù)器,只需要一組5V電源。 8253的內(nèi)部結(jié)構(gòu),可 編 程 DMA 控

12、制 器 8237A,8253的內(nèi)部結(jié)構(gòu) 數(shù)據(jù)總線緩沖器 它是8位雙向三態(tài)緩沖器,可直接連接到數(shù)據(jù)總線上。初始化編程時,CPU寫入8253的方式控制字和計數(shù)初值、CPU從計數(shù)器中讀取的當前計數(shù)值都經(jīng)這里傳送。 讀/寫控制邏輯 產(chǎn)生相應的控制信號,來選擇讀/寫操作的端口及控制數(shù)據(jù)的傳送方向。 計數(shù)器0、1、2 三個計數(shù)器的內(nèi)部結(jié)構(gòu)相同,但相互獨立。計數(shù)器從時鐘輸入端接收時鐘脈沖或事件計數(shù)脈沖。 控制字寄存器 控制字寄存器是8位的,只能寫不能讀。寫入的內(nèi)容包括計數(shù)器的工作方式或計數(shù)器的初值,可 編 程 定 時 器 計 數(shù) 器 8253,8253的引腳信號 8253的功能 定時 計數(shù),可 編 程 定

13、時 器 計 數(shù) 器 8253,8253的方式控制字 (1)SC1、SC0:用于選擇計數(shù)器 SC1 SC0 選擇的計數(shù)器 0 0 計數(shù)器0 0 1 計數(shù)器1 1 0 計數(shù)器2 (2)RW1、RW0:讀/寫控制位 RW1 RW0 操作 0 0 計數(shù)器鎖存 0 1 讀/寫低字節(jié) 1 0 讀/寫高字節(jié) 1 1 先讀/寫低字節(jié),后讀/寫高字節(jié),可 編 程 定 時 器 計 數(shù) 器 8253,(3)M2、M1、M0:方式選擇位 M2 M1 M0 方式選擇 0 0 0 方式0 0 0 1 方式1 0 1 0 方式2 0 1 1 方式3 1 0 0 方式4 1 0 1 方式5 (4)BCD:選擇計數(shù)格式。BCD

14、=1,十進制計數(shù)。BCD=0,二進制計數(shù)。,可 編 程 定 時 器 計 數(shù) 器 8253,8253的工作方式 方式0計數(shù)結(jié)束產(chǎn)生中斷 在這種方式下,寫入控制字之后,輸出端OUT為低電平作為初始電平,并且在計數(shù)值到達0之前一直保持低電平。當計數(shù)到達0時,輸出端OUT為高電平,并且一直保持高電平,除非寫入新的計數(shù)值。,可 編 程 定 時 器 計 數(shù) 器 8253,方式1可重復觸發(fā)的單穩(wěn)態(tài)觸發(fā)器 寫入控制字之后,輸出端OUT以高電平作為起始電平,計數(shù)初值送到初值寄存器后,再經(jīng)過一個時鐘周期,便送到計數(shù)執(zhí)行部件。另一方面,門控信號GATE上升沿到來時,邊沿觸發(fā)器觸發(fā),下一個時鐘脈沖時,輸出端OUT變?yōu)?/p>

15、低電平,并在計數(shù)到達0以前一直保持低電平。,可 編 程 定 時 器 計 數(shù) 器 8253,方式2一分頻器 寫入控制字之后,輸出端OUT變?yōu)楦唠娖阶鳛槌跏紶顟B(tài),當計數(shù)初值寫入初值寄存器后,下一個時鐘脈沖時,計數(shù)器初值被寫到計數(shù)執(zhí)行部件,然后計數(shù)執(zhí)行部件作減1計數(shù)。減到1(不是減到0)時,輸出OUT變?yōu)榈碗娖健?可 編 程 定 時 器 計 數(shù) 器 8253,方式3方波發(fā)生器 寫入控制字之后,輸出端OUT出現(xiàn)高電平作為起始電平。計數(shù)初值送到初值寄存器后,下一個時鐘脈沖到來時,計數(shù)執(zhí)行部件獲得初始計數(shù)值,并開始作減1計數(shù)。當計數(shù)計到一半時,輸出變?yōu)榈碗娖?,計?shù)器繼續(xù)作減1計數(shù),計數(shù)到終值時,輸出變?yōu)楦?/p>

16、電平,從而完成一個周期。之后,馬上自動進入下一個周期。由此不斷進行下去,產(chǎn)生周期為N個時鐘脈沖寬度的輸出。,可 編 程 定 時 器 計 數(shù) 器 8253,方式4軟件觸發(fā)的選通 寫入控制字之后,輸出端 OUT變?yōu)楦唠娖阶鳛槌跏茧娖?,計?shù)初值送到初值寄存器,再經(jīng)過一個時鐘周期,計數(shù)執(zhí)行部件獲得計數(shù)初值,并開始計數(shù)。當計數(shù)器減到0的時候,輸出端OUT變?yōu)榈碗娖?,此低電平持續(xù)一個時鐘周期,然后又自動變?yōu)楦唠娖讲⒁恢本S持高電平。一般將此負脈沖作為選通信號。當計數(shù)值N被送到計數(shù)初值寄存器后,在下一個時鐘周期,計數(shù)初值被送到計數(shù)執(zhí)部件,之后,計數(shù)執(zhí)行部件作減1計數(shù),又經(jīng)過N個時鐘周期后,才輸出一個負脈沖作為

17、選通脈沖。,可 編 程 定 時 器 計 數(shù) 器 8253,硬件觸發(fā)的選通 寫入控制字之后,輸出端OUT出現(xiàn)高電平作為起始電平。寫入計數(shù)值之后,必須有門控信號GATE的上升沿到來,才在下一個時鐘周期將計數(shù)初值送到計數(shù)執(zhí)行部件。此后,計數(shù)執(zhí)行部件作減1計數(shù),計數(shù)到達0的時候,輸出端出現(xiàn)一個寬度為1個時鐘周期的負脈沖,然后又自動變?yōu)楦唠娖?,并將持續(xù)不變。此輸出負脈沖可以用作選通脈沖,它是通過硬件電路產(chǎn)生的門控信號上升沿觸發(fā)后得到的,所以叫硬件觸發(fā)的選通脈沖。,可 編 程 定 時 器 計 數(shù) 器 8253,8253的初始化編程 系統(tǒng)初始化時,由BIOS對8253進行初始化,并進行檢查,程序如下: 1.對計數(shù)器0的初始化 CLI ;關(guān)中斷 MOV AL,36H ;選擇計數(shù)器0,雙字節(jié),方式3,二進制計數(shù)的控制字 OUT 43H,AL ;送控制字寄存器 MOV AL,0 ;置初值為0 OUT 40H,AL ;把低字節(jié)(LSB)送到定時器(計數(shù)器)寄存器 OUT 40H,AL ;把高字節(jié)(MSB)送到定時器(計數(shù)器)寄存器,可 編 程 定 時 器 計 數(shù) 器 8253,8253的初始化編程 2對計數(shù)器1的初始化 MOV AL,54H ;選擇計數(shù)器1,寫低字節(jié),方式2,M進制計

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論