第6章輸入輸出技術(shù)_第1頁
第6章輸入輸出技術(shù)_第2頁
第6章輸入輸出技術(shù)_第3頁
第6章輸入輸出技術(shù)_第4頁
第6章輸入輸出技術(shù)_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第6章 輸入輸出技術(shù) 2第6章 基本輸入輸出接口v教學(xué)重點(diǎn)教學(xué)重點(diǎn) I/O接口電路的典型結(jié)構(gòu)接口電路的典型結(jié)構(gòu) 無條件傳送方式無條件傳送方式 查詢傳送方式查詢傳送方式 中斷工作過程中斷工作過程36.1 輸入輸出的基本方法輸入輸出的基本方法6.1.1 輸入輸出接口的概念及基本結(jié)構(gòu)輸入輸出接口的概念及基本結(jié)構(gòu)v為什么需要為什么需要I/O接口(電路)?接口(電路)?u微機(jī)的外部設(shè)備多種多樣微機(jī)的外部設(shè)備多種多樣u工作原理、驅(qū)動方式、信息格式、以及工作工作原理、驅(qū)動方式、信息格式、以及工作速度方面彼此差別很大速度方面彼此差別很大u它們不能與它們不能與CPU直接相連直接相連u必須經(jīng)過中間電路再與系統(tǒng)相連

2、必須經(jīng)過中間電路再與系統(tǒng)相連u這部分電路被稱為這部分電路被稱為I/O接口電路接口電路1. 接口電接口電路路46.1.1 輸入輸入/輸出接口概述輸出接口概述(續(xù)(續(xù)1)u什么是什么是I/O接口(電路)?接口(電路)?vI/O接口是位于系統(tǒng)與外設(shè)間、用來協(xié)助接口是位于系統(tǒng)與外設(shè)間、用來協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路vPC機(jī)系統(tǒng)板的可編程接口芯片、機(jī)系統(tǒng)板的可編程接口芯片、I/O總總線槽的電路板(適配器)都是接口電路線槽的電路板(適配器)都是接口電路56.1.1 輸入輸入/輸出接口概述輸出接口概述(續(xù)(續(xù)2)u什么是微機(jī)接口技術(shù)?什么是微機(jī)接口技術(shù)?v處理微機(jī)系

3、統(tǒng)與外設(shè)間聯(lián)系的技術(shù)處理微機(jī)系統(tǒng)與外設(shè)間聯(lián)系的技術(shù)v注意其軟硬結(jié)合的特點(diǎn)注意其軟硬結(jié)合的特點(diǎn)v根據(jù)應(yīng)用系統(tǒng)的需要,使用和構(gòu)造相應(yīng)根據(jù)應(yīng)用系統(tǒng)的需要,使用和構(gòu)造相應(yīng)的接口電路,編制配套的接口程序,支的接口電路,編制配套的接口程序,支持和連接有關(guān)的設(shè)備持和連接有關(guān)的設(shè)備62. 接口電路分類接口電路分類v 按接口電路的通用性按接口電路的通用性v 按數(shù)據(jù)傳送格式按數(shù)據(jù)傳送格式v 按接口是否可編程按接口是否可編程v 按時序控制方式按時序控制方式 專用接口 通用接口 并行接口 串行接口 可編程接口 不可編程接口 同步接口 異步接口 73. 接口的基本功能接口的基本功能 對輸入輸出數(shù)據(jù)進(jìn)行緩沖和鎖存對輸入輸

4、出數(shù)據(jù)進(jìn)行緩沖和鎖存輸出接口有輸出接口有鎖存環(huán)節(jié)鎖存環(huán)節(jié)輸入接口有輸入接口有緩沖環(huán)節(jié)緩沖環(huán)節(jié) 對信號的形式和數(shù)據(jù)的格式進(jìn)行變換對信號的形式和數(shù)據(jù)的格式進(jìn)行變換微機(jī)直接處理:微機(jī)直接處理:數(shù)字量數(shù)字量、開關(guān)量開關(guān)量、脈沖量脈沖量 對對I/O端口進(jìn)行尋址端口進(jìn)行尋址 與與CPU和和I/O設(shè)備進(jìn)行聯(lián)絡(luò)設(shè)備進(jìn)行聯(lián)絡(luò) 中斷管理中斷管理/DMA控制功能控制功能84. 接口電路的基本結(jié)構(gòu)接口電路的基本結(jié)構(gòu)控制總線控制總線CB地址總線地址總線ABI/O接口電路接口電路數(shù)據(jù)數(shù)據(jù)控制控制狀態(tài)狀態(tài)數(shù)據(jù)總線數(shù)據(jù)總線DBCPU外設(shè)外設(shè)控制寄存器控制寄存器狀態(tài)寄存器狀態(tài)寄存器數(shù)據(jù)寄存器數(shù)據(jù)寄存器96.1.2 外設(shè)接口的編

5、址方式外設(shè)接口的編址方式接口電路占用的接口電路占用的I/O端口有兩類編排形式端口有兩類編排形式vI/O端口單獨(dú)編址端口單獨(dú)編址I/O地址空間地址空間獨(dú)立獨(dú)立于存儲地址空間于存儲地址空間如如8086/8088vI/O端口與存儲器統(tǒng)一編址端口與存儲器統(tǒng)一編址它們它們共享共享一個地址空間一個地址空間如如M6800、51單片機(jī)單片機(jī)101. I/O端口與存儲器統(tǒng)一編址端口與存儲器統(tǒng)一編址v優(yōu)點(diǎn):優(yōu)點(diǎn):不需要專門的不需要專門的I/O指令指令I(lǐng)/O數(shù)據(jù)存取與存儲器數(shù)據(jù)數(shù)據(jù)存取與存儲器數(shù)據(jù)存取一樣靈活存取一樣靈活v缺點(diǎn):缺點(diǎn):I/O端口要占去部分存儲器端口要占去部分存儲器地址空間地址空間程序不易閱讀(不易分

6、清訪程序不易閱讀(不易分清訪問存儲器還是訪問外設(shè))問存儲器還是訪問外設(shè))內(nèi)存內(nèi)存部分部分I/O部分部分存存儲儲空空間間00000HFFFFFH112. I/O端口單獨(dú)編址端口單獨(dú)編址v優(yōu)點(diǎn):優(yōu)點(diǎn):I/O端口的地址空間獨(dú)立端口的地址空間獨(dú)立控制和地址譯碼電路相對簡控制和地址譯碼電路相對簡單單專門的專門的I/O指令使程序清晰易指令使程序清晰易讀讀v缺點(diǎn):缺點(diǎn):I/O指令沒有存儲器指令豐富指令沒有存儲器指令豐富內(nèi)存內(nèi)存空間空間I/O空間空間FFFFF0FFFF080 x86采用采用I/O端口獨(dú)立編址端口獨(dú)立編址12補(bǔ)充補(bǔ)充: 8088/8086的輸入輸出指令的輸入輸出指令v輸入指令輸入指令I(lǐng)N AL

7、,i8/DX;字節(jié)輸入字節(jié)輸入IN AX,i8/DX;字輸入字輸入v輸出指令輸出指令OUT i8/DX,AL;字節(jié)輸出字節(jié)輸出OUT i8/DX;字輸出字輸出136.1.3 輸入輸出的基本方法輸入輸出的基本方法v1. 程序控制方式程序控制方式v2. 中斷控制方式中斷控制方式v3. 直接存儲器存取控制方式直接存儲器存取控制方式v4. 通道方式通道方式v5. 外圍處理方式外圍處理方式14數(shù)據(jù)傳送方式數(shù)據(jù)傳送方式v程序控制下的數(shù)據(jù)傳送程序控制下的數(shù)據(jù)傳送通過通過CPU執(zhí)行程序執(zhí)行程序中的中的I/O指令來完成傳送,又分為:指令來完成傳送,又分為: 無條件傳送無條件傳送 查詢傳送查詢傳送 中斷傳送中斷傳

8、送v直接存儲器存取直接存儲器存?。―MA)傳送請求由外設(shè)傳送請求由外設(shè)向向DMA控制器(控制器(DMAC)提出,后者向)提出,后者向CPU申請總線,最后申請總線,最后DMAC利用系統(tǒng)總線來完成外利用系統(tǒng)總線來完成外設(shè)和存儲器間的數(shù)據(jù)傳送設(shè)和存儲器間的數(shù)據(jù)傳送vI/O處理機(jī)處理機(jī)CPU委托專門的委托專門的I/O處理機(jī)來管處理機(jī)來管理外設(shè),完成傳送和相應(yīng)的數(shù)據(jù)處理理外設(shè),完成傳送和相應(yīng)的數(shù)據(jù)處理151. 無條件傳送方式及其接口無條件傳送方式及其接口v在在CPU與慢速變化的設(shè)備交換數(shù)據(jù)時,可以認(rèn)為它與慢速變化的設(shè)備交換數(shù)據(jù)時,可以認(rèn)為它們總是處于們總是處于“就緒就緒”狀態(tài),隨時可以進(jìn)行數(shù)據(jù)傳送,狀態(tài)

9、,隨時可以進(jìn)行數(shù)據(jù)傳送,這就是無條件傳送,或稱立即傳送、同步傳送這就是無條件傳送,或稱立即傳送、同步傳送v適合于簡單設(shè)備,如適合于簡單設(shè)備,如LED 數(shù)碼管、按鍵數(shù)碼管、按鍵/按紐等按紐等v無條件傳送的接口和操作均十分簡單無條件傳送的接口和操作均十分簡單v這種傳送有前提:外設(shè)必須隨時處于就緒狀態(tài)這種傳送有前提:外設(shè)必須隨時處于就緒狀態(tài)6.2. 程序控制方式程序控制方式16無條件傳送:輸入示例無條件傳送:輸入示例IOR三三態(tài)態(tài)緩緩沖沖器器OEI/O裝裝置置地地址址譯譯碼碼器器CSD7D0A15A1A00160HMOV DX, 160HIN AL, DX17無條件傳送:輸入實(shí)例無條件傳送:輸入實(shí)例

10、MOV DX, 160HIN AL, DX74LS244+5V10K x 8G1 G2數(shù)據(jù)總線數(shù)據(jù)總線CSRD18無條件傳送:輸出示例無條件傳送:輸出示例地地址址譯譯碼碼器器數(shù)數(shù)據(jù)據(jù)鎖鎖存存器器A15A0A14-IOWCS0160H輸輸出出設(shè)設(shè)備備D7D0MOV DX, 160HMOV AL, BXOUT DX, AL19無條件傳送:輸出實(shí)例無條件傳送:輸出實(shí)例MOV DX, 160HMOV AL, BXOUT DX, AL+5V74LS373300 x 8LE OE數(shù)據(jù)總線數(shù)據(jù)總線CSWR20K7K1K0+5VLED0無條件傳送:輸入輸出接口無條件傳送:輸入輸出接口+5VD0D7A0A15C

11、LKLS06反相反相驅(qū)動器驅(qū)動器LS2738D鎖存器鎖存器LS244三態(tài)三態(tài)緩沖器緩沖器8000H譯碼譯碼LED7-G-IOW-IOR21無條件傳送:輸入輸出接口無條件傳送:輸入輸出接口next:mov dx,8000h;DX指向數(shù)據(jù)端口指向數(shù)據(jù)端口in al, dx;從輸入端口讀開關(guān)狀態(tài)從輸入端口讀開關(guān)狀態(tài)not al;反相反相out dx, al;送輸出端口顯示送輸出端口顯示call delay;調(diào)子程序延時調(diào)子程序延時jmp next;重復(fù)重復(fù)222. 查詢傳送方式及其接口查詢傳送方式及其接口vCPU先先了解了解(查詢)(查詢)外設(shè)外設(shè)的工作的工作狀態(tài)狀態(tài),在,在外設(shè)外設(shè)就緒就緒(可以交

12、換信息的情況下)實(shí)現(xiàn)(可以交換信息的情況下)實(shí)現(xiàn)數(shù)據(jù)的輸入或輸出數(shù)據(jù)的輸入或輸出v對多個外設(shè)的情況,則對多個外設(shè)的情況,則CPU按一定順序依按一定順序依次查詢(次查詢(輪詢輪詢)。先查詢的外設(shè)將優(yōu)先進(jìn))。先查詢的外設(shè)將優(yōu)先進(jìn)行數(shù)據(jù)交換行數(shù)據(jù)交換v查詢傳送的特點(diǎn)是:工作可靠,適用面寬,查詢傳送的特點(diǎn)是:工作可靠,適用面寬,但傳送效率低但傳送效率低23查詢傳送的兩個環(huán)節(jié)查詢傳送的兩個環(huán)節(jié)v查詢環(huán)節(jié)查詢環(huán)節(jié)尋址狀態(tài)口尋址狀態(tài)口讀取狀態(tài)寄存器的標(biāo)志位讀取狀態(tài)寄存器的標(biāo)志位若不就緒就繼續(xù)查詢,直至就緒若不就緒就繼續(xù)查詢,直至就緒v傳送環(huán)節(jié)傳送環(huán)節(jié)尋址數(shù)據(jù)口尋址數(shù)據(jù)口是輸入,通過輸入指令從數(shù)據(jù)口讀入數(shù)據(jù)是

13、輸入,通過輸入指令從數(shù)據(jù)口讀入數(shù)據(jù)是輸出,通過輸出指令向數(shù)據(jù)口輸出數(shù)據(jù)是輸出,通過輸出指令向數(shù)據(jù)口輸出數(shù)據(jù)輸入狀態(tài)輸入狀態(tài)就緒?就緒?數(shù)據(jù)交換數(shù)據(jù)交換YN241位位三態(tài)三態(tài)緩沖器緩沖器查詢輸入接口查詢輸入接口-IOR+5V8D鎖存器鎖存器8位位三態(tài)三態(tài)緩沖器緩沖器譯碼譯碼 A0A158000H8001HD0D7D0輸入輸入設(shè)備設(shè)備-IOR-STBRQDD0 =0,重復(fù)讀取狀態(tài)重復(fù)讀取狀態(tài)D0 =1,開始讀取數(shù)據(jù)開始讀取數(shù)據(jù)25查詢輸入接口查詢輸入接口 mov dx,8000h;DX指向狀態(tài)端口指向狀態(tài)端口status: in al,dx ;讀狀態(tài)端口讀狀態(tài)端口 test al,01h ;測試標(biāo)

14、志位測試標(biāo)志位D0 jz status ;D00,未就緒,繼續(xù)查詢,未就緒,繼續(xù)查詢 inc dx ;D01,就緒,就緒,DX指向數(shù)據(jù)端口指向數(shù)據(jù)端口in al,dx ;從數(shù)據(jù)端口輸入數(shù)據(jù)從數(shù)據(jù)端口輸入數(shù)據(jù)26查詢輸出接口查詢輸出接口8D鎖存器鎖存器譯碼譯碼1位位三態(tài)三態(tài)緩沖器緩沖器RQ A0A158000H8001HD0D7D7D+5V-ACK-IOW-IOR輸出輸出設(shè)備設(shè)備D7 =1,繼續(xù)讀狀態(tài),繼續(xù)讀狀態(tài)D7 =0,開始寫數(shù)據(jù),開始寫數(shù)據(jù)27查詢輸出接口mov dx,8000h ;DX指向狀態(tài)端口指向狀態(tài)端口status: in al,dx;讀取狀態(tài)端口的狀態(tài)數(shù)據(jù)讀取狀態(tài)端口的狀態(tài)數(shù)據(jù)t

15、est al,80h;測試標(biāo)志位測試標(biāo)志位D7jnz status;D71,未就緒,繼續(xù)查詢,未就緒,繼續(xù)查詢inc dx;D70,就緒,就緒,DX指向數(shù)據(jù)端口指向數(shù)據(jù)端口mov al,buf;變量變量buf送送ALout dx,al;將數(shù)據(jù)輸出給數(shù)據(jù)端口將數(shù)據(jù)輸出給數(shù)據(jù)端口286.3 中斷傳送方式中斷傳送方式程序程序斷點(diǎn)斷點(diǎn)主程序主程序中斷請求中斷請求為為外外設(shè)設(shè)繼繼續(xù)續(xù)執(zhí)執(zhí)行行返回斷點(diǎn)返回斷點(diǎn)vCPU在執(zhí)行程序在執(zhí)行程序中,被內(nèi)部或外中,被內(nèi)部或外部的事件所打斷,部的事件所打斷,轉(zhuǎn)去執(zhí)行一段預(yù)轉(zhuǎn)去執(zhí)行一段預(yù)先安排好的中斷先安排好的中斷服務(wù)程序;服務(wù)程序;v服務(wù)結(jié)束后,又服務(wù)結(jié)束后,又返回原

16、來的斷點(diǎn),返回原來的斷點(diǎn),繼續(xù)執(zhí)行原來的繼續(xù)執(zhí)行原來的程序程序提提供供服服務(wù)務(wù)中斷服務(wù)程序中斷服務(wù)程序入口入口6.3.1 中斷的基本概念中斷的基本概念1. 中斷的概念中斷的概念29 2. 中斷控制方式中斷控制方式v中斷傳送是一種效率更高的程序傳送方式中斷傳送是一種效率更高的程序傳送方式v進(jìn)行傳送的進(jìn)行傳送的中斷服務(wù)程序是預(yù)先設(shè)計(jì)好的中斷服務(wù)程序是預(yù)先設(shè)計(jì)好的v中斷請求是外設(shè)隨機(jī)向中斷請求是外設(shè)隨機(jī)向CPU提出的提出的vCPU對請求的檢測是有規(guī)律的對請求的檢測是有規(guī)律的:一般是在每:一般是在每條指令的最后一個時鐘周期采樣中斷請求輸條指令的最后一個時鐘周期采樣中斷請求輸入引腳入引腳v本書主要論述中

17、斷在輸入和輸出方面的應(yīng)用本書主要論述中斷在輸入和輸出方面的應(yīng)用v中斷還有著非常廣泛的應(yīng)用中斷還有著非常廣泛的應(yīng)用303. 中斷源中斷源v能夠引發(fā)中斷的事件被稱為能夠引發(fā)中斷的事件被稱為中斷源中斷源。通常,中斷源。通常,中斷源有兩類:有兩類:內(nèi)部中斷源內(nèi)部中斷源和和外部中斷源外部中斷源。v由處理機(jī)內(nèi)部產(chǎn)生的中斷事件稱為由處理機(jī)內(nèi)部產(chǎn)生的中斷事件稱為內(nèi)部中斷源內(nèi)部中斷源。常。常見的內(nèi)部中斷源有計(jì)算溢出、指令的單步運(yùn)行、執(zhí)見的內(nèi)部中斷源有計(jì)算溢出、指令的單步運(yùn)行、執(zhí)行特定的中斷指令等。行特定的中斷指令等。v由處理機(jī)之外的外圍設(shè)備產(chǎn)生的中斷事件由處理機(jī)之外的外圍設(shè)備產(chǎn)生的中斷事件稱為外部稱為外部中斷源

18、中斷源。常見的外部中斷源有外設(shè)的輸入。常見的外部中斷源有外設(shè)的輸入/輸出請求、輸出請求、定時時間到、電源掉電、設(shè)備故障等。定時時間到、電源掉電、設(shè)備故障等。 31三態(tài)三態(tài)緩沖器緩沖器中斷傳送與接口中斷傳送與接口(續(xù))(續(xù))+5V8D鎖存器鎖存器8位位三態(tài)三態(tài)緩沖器緩沖器RQ 譯碼譯碼8001H中斷向量號中斷向量號D0D7INTRD輸入輸入設(shè)備設(shè)備中斷允許中斷允許觸發(fā)器觸發(fā)器A0A15中斷請求中斷請求觸發(fā)器觸發(fā)器-IOR-INTA-STB該中斷向量號是提該中斷向量號是提前就確定,放在某前就確定,放在某個地方的個地方的根據(jù)中斷向量號,根據(jù)中斷向量號,轉(zhuǎn)到中斷服務(wù)程序,轉(zhuǎn)到中斷服務(wù)程序,開始讀數(shù)據(jù)開

19、始讀數(shù)據(jù)324. 中斷處理過程中斷處理過程v中斷請求中斷請求(外設(shè))(外設(shè))v中斷響應(yīng)(中斷響應(yīng)(CPU)v關(guān)中斷(關(guān)中斷(CPU)v斷點(diǎn)保護(hù)(斷點(diǎn)保護(hù)(CPU)v中斷識別中斷識別(硬件硬件/軟件軟件)v現(xiàn)場保護(hù)現(xiàn)場保護(hù)(用戶)(用戶)v中斷服務(wù)中斷服務(wù)(用戶)(用戶)v恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場(用戶)(用戶)v開中斷(開中斷(CPU/用戶)用戶)v中斷返回(用戶中斷返回(用戶)中斷服務(wù)是進(jìn)行數(shù)據(jù)交中斷服務(wù)是進(jìn)行數(shù)據(jù)交換的實(shí)質(zhì)性環(huán)節(jié)換的實(shí)質(zhì)性環(huán)節(jié)335. 中斷系統(tǒng)的功能中斷系統(tǒng)的功能 v 能進(jìn)入中斷和退出中斷,即完成上能進(jìn)入中斷和退出中斷,即完成上述中斷響應(yīng)和中斷返回的過程述中斷響應(yīng)和中斷返回的過程.

20、v 能對某些中斷進(jìn)行屏蔽,并在必要能對某些中斷進(jìn)行屏蔽,并在必要時開放時開放.v 能進(jìn)行優(yōu)先權(quán)排隊(duì)能進(jìn)行優(yōu)先權(quán)排隊(duì).v 提供中斷嵌套能力提供中斷嵌套能力. 346.3.2 8086中斷系統(tǒng)中斷系統(tǒng)v8086的中斷系統(tǒng)采用的中斷系統(tǒng)采用向量中斷向量中斷機(jī)制機(jī)制v一共可處理一共可處理256個中斷個中斷v采用中斷向量編號采用中斷向量編號0255,對,對256個中斷加以個中斷加以區(qū)別區(qū)別v可屏蔽中斷需借助專用的中斷控制器可屏蔽中斷需借助專用的中斷控制器 Intel 8259A對系統(tǒng)中的可屏蔽中斷資源進(jìn)行管理:對系統(tǒng)中的可屏蔽中斷資源進(jìn)行管理:擴(kuò)充系統(tǒng)的可屏蔽中斷資源,并管理它們:擴(kuò)充系統(tǒng)的可屏蔽中斷資

21、源,并管理它們:實(shí)現(xiàn)中斷優(yōu)先權(quán)比較實(shí)現(xiàn)中斷優(yōu)先權(quán)比較實(shí)現(xiàn)中斷源的識別實(shí)現(xiàn)中斷源的識別351. 8086中斷類型中斷類型v硬件中斷硬件中斷 軟件中斷軟件中斷 硬件中斷硬件中斷 硬件中斷,又稱硬件中斷,又稱外部中斷外部中斷,它是由處理器,它是由處理器外部的硬件、外圍設(shè)備的請求而引起的中斷。外部的硬件、外圍設(shè)備的請求而引起的中斷。8086有兩條硬件中斷請求信號線:有兩條硬件中斷請求信號線:NMI(非屏(非屏蔽中斷)和蔽中斷)和INTR(可屏蔽中斷)。(可屏蔽中斷)。368088的中斷類型的中斷類型中斷邏輯中斷邏輯INTO指令指令單步單步中斷中斷除法除法錯誤錯誤INT N指令指令CPUNMI8259A

22、中斷中斷控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外設(shè)設(shè)中中斷斷源源 -INTA可屏蔽中斷申請可屏蔽中斷申請 INTR不可屏蔽中斷申請不可屏蔽中斷申請可屏蔽中斷源可屏蔽中斷源不可屏蔽中斷源不可屏蔽中斷源內(nèi)部中斷內(nèi)部中斷37 軟件中斷軟件中斷(內(nèi)部中斷內(nèi)部中斷)v內(nèi)部中斷內(nèi)部中斷內(nèi)部機(jī)制產(chǎn)生內(nèi)部機(jī)制產(chǎn)生除法錯中斷除法錯中斷(0號)號)除運(yùn)算除運(yùn)算結(jié)果溢出時產(chǎn)生結(jié)果溢出時產(chǎn)生指令中斷指令中斷(n號)號)執(zhí)行執(zhí)行int n指令后產(chǎn)生(操作碼指令后產(chǎn)生(操作碼CDH)斷點(diǎn)中斷斷點(diǎn)中斷(3號)號)執(zhí)行執(zhí)行int 3指令(單字節(jié)指令操作碼指令(單字節(jié)指令操作碼CCH )用于在調(diào)試中設(shè)置

23、斷點(diǎn),程序遇斷點(diǎn)則中斷用于在調(diào)試中設(shè)置斷點(diǎn),程序遇斷點(diǎn)則中斷溢出中斷溢出中斷(4號)號)執(zhí)行執(zhí)行into指令,且前面運(yùn)算有指令,且前面運(yùn)算有溢出溢出(OF=1)時產(chǎn)生)時產(chǎn)生單步中斷單步中斷(1號)號)TF標(biāo)志置標(biāo)志置1后,每執(zhí)行一條子指令將發(fā)后,每執(zhí)行一條子指令將發(fā)生一次生一次v外部中斷外部中斷外部引腳觸發(fā)外部引腳觸發(fā)可屏蔽中斷可屏蔽中斷(外設(shè)提供向量號)(外設(shè)提供向量號)觸發(fā)觸發(fā)INTR引腳產(chǎn)生引腳產(chǎn)生非屏蔽中斷非屏蔽中斷(2號)號) 觸發(fā)觸發(fā)NMI引腳產(chǎn)生引腳產(chǎn)生38 中斷優(yōu)先權(quán)中斷優(yōu)先權(quán) v8086規(guī)定中斷優(yōu)先權(quán)從高到低的順序?yàn)椋阂?guī)定中斷優(yōu)先權(quán)從高到低的順序?yàn)椋?除法錯、溢出中斷指令除

24、法錯、溢出中斷指令I(lǐng)NTO、中斷指、中斷指令令I(lǐng)NT n 。 非屏蔽中斷非屏蔽中斷NMI。 可屏蔽中斷可屏蔽中斷INTR。 單步中斷。單步中斷。 392. 8088的中斷向量表的中斷向量表v中斷向量中斷向量:指示中斷服務(wù)程序的:指示中斷服務(wù)程序的入口地址入口地址,該,該地址包括:地址包括:偏移地址偏移地址IP 、段地址段地址CS (共共32位位)v每個中斷向量的低字是偏移地址、高字是段地每個中斷向量的低字是偏移地址、高字是段地址,需占用址,需占用4個字節(jié)(低對低,高對高)。個字節(jié)(低對低,高對高)。v8088 微處理器從物理地址微處理器從物理地址000H開始到開始到3FFH(1KB),依次安排

25、各個中斷向量,向量號從),依次安排各個中斷向量,向量號從0到到255。v256個中斷響亮所占用的個中斷響亮所占用的1KB區(qū)域,稱區(qū)域,稱中斷向量中斷向量表表幾個概念:向量號幾個概念:向量號N/中斷向量中斷向量/中斷服務(wù)程序的入口地址中斷服務(wù)程序的入口地址中斷向量的存放首址中斷向量的存放首址N44B4B中斷向量表1KB3FFH0H0號中斷向量號中斷向量IPCS255號中斷向量號中斷向量40v內(nèi)部中斷是由于內(nèi)部中斷是由于8086內(nèi)部執(zhí)行程序出現(xiàn)特殊情況內(nèi)部執(zhí)行程序出現(xiàn)特殊情況而引起而引起的中斷的中斷除法錯中斷:除法錯中斷:向量號為向量號為0指令中斷(指令中斷(int n):):向量號為向量號為n斷

26、點(diǎn)中斷(斷點(diǎn)中斷(int 3 ):):向量號為向量號為3溢出中斷(溢出中斷(into ) :向量號為向量號為4單步中斷:單步中斷:向量號為向量號為1內(nèi)部中斷的中斷向量號已由內(nèi)部中斷的中斷向量號已由Intel公司確定公司確定41v外部中斷是由于外部中斷是由于8086外部通過外部通過CPU引腳提出中斷引腳提出中斷請求而引起請求而引起的中斷的中斷非屏蔽中斷非屏蔽中斷(NMI):): 向量號為向量號為2v外部通過非屏蔽中斷外部通過非屏蔽中斷NMI請求,必須響應(yīng)請求,必須響應(yīng)v非屏蔽中斷主要用于處理系統(tǒng)的意外或故障(如奇偶校驗(yàn)或非屏蔽中斷主要用于處理系統(tǒng)的意外或故障(如奇偶校驗(yàn)或協(xié)處理器運(yùn)算錯誤等)協(xié)處

27、理器運(yùn)算錯誤等)可屏蔽中斷可屏蔽中斷(INTR):): 向量號向量號由中斷控制器提供由中斷控制器提供v外部通過可屏蔽中斷外部通過可屏蔽中斷 INTR 請求,由標(biāo)志位請求,由標(biāo)志位 IF 控制是否響應(yīng);控制是否響應(yīng);響應(yīng)時將產(chǎn)生有效的響應(yīng)時將產(chǎn)生有效的 INTA 信號信號v可屏蔽中斷主要用于外設(shè)中斷請求(請求交換數(shù)據(jù)等服務(wù))可屏蔽中斷主要用于外設(shè)中斷請求(請求交換數(shù)據(jù)等服務(wù))標(biāo)志位標(biāo)志位IF控制可屏蔽中斷的響應(yīng)控制可屏蔽中斷的響應(yīng)42中斷標(biāo)志中斷標(biāo)志IF的狀態(tài)的狀態(tài)vIF0:可屏蔽中斷不會被響應(yīng)(禁止中斷,關(guān)中斷,:可屏蔽中斷不會被響應(yīng)(禁止中斷,關(guān)中斷,中斷屏蔽)中斷屏蔽)系統(tǒng)復(fù)位,使系統(tǒng)復(fù)位

28、,使IF0任何一個中斷被響應(yīng),使任何一個中斷被響應(yīng),使IF0執(zhí)行指令執(zhí)行指令CLI,使,使IF0vIF1:可屏蔽中斷會被響應(yīng)(允許中斷,開中斷,中:可屏蔽中斷會被響應(yīng)(允許中斷,開中斷,中斷開放)斷開放)執(zhí)行指令執(zhí)行指令STI,使,使IF1v執(zhí)行指令執(zhí)行指令 IRET 后后IF 將恢復(fù)為中斷前的狀態(tài)將恢復(fù)為中斷前的狀態(tài)明確明確 IF 標(biāo)志的狀態(tài)是關(guān)鍵標(biāo)志的狀態(tài)是關(guān)鍵433. 8086中斷處理過程中斷處理過程 可屏蔽中斷的中斷過程可屏蔽中斷的中斷過程 v中斷源通過中斷控制器中斷源通過中斷控制器8259向向CPU發(fā)出中斷請求信號發(fā)出中斷請求信號 vCPU在每一個指令周期的最后一個時鐘周期采樣在每一

29、個指令周期的最后一個時鐘周期采樣INTR信信號線號線 v當(dāng)當(dāng)CPU響應(yīng)響應(yīng)可屏蔽級的中斷請求可屏蔽級的中斷請求時時,首先通過信號線向,首先通過信號線向8259連續(xù)發(fā)出連續(xù)發(fā)出兩個兩個負(fù)脈沖的負(fù)脈沖的中斷響應(yīng)信號中斷響應(yīng)信號。 vCPU暫停執(zhí)行當(dāng)前程序,而轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序暫停執(zhí)行當(dāng)前程序,而轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序 v CPU執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序 v返回斷點(diǎn),繼續(xù)執(zhí)行被打斷的程序返回斷點(diǎn),繼續(xù)執(zhí)行被打斷的程序 44 非屏蔽中斷和軟件中斷的執(zhí)行過程非屏蔽中斷和軟件中斷的執(zhí)行過程v查詢中斷的先后順序查詢中斷的先后順序決定了各中斷源的優(yōu)先級別決定了各中斷源的優(yōu)先級別軟件中斷軟件

30、中斷v除法錯中斷除法錯中斷v指令中斷指令中斷v溢出中斷溢出中斷非屏蔽中斷非屏蔽中斷可屏蔽中斷可屏蔽中斷單步中斷單步中斷高高低低458086的中斷響應(yīng)過程的中斷響應(yīng)過程N(yùn)MIN軟件中斷軟件中斷INTRTF=1中斷響應(yīng)周期中斷響應(yīng)周期讀中斷向量號讀中斷向量號下條指令下條指令現(xiàn)行指令現(xiàn)行指令I(lǐng)F1NNNNYYYYY執(zhí)行中斷服務(wù)執(zhí)行中斷服務(wù)468086的中斷響應(yīng)過程的中斷響應(yīng)過程(續(xù))(續(xù))Y還有還有NMIIF1標(biāo)志寄存器入棧標(biāo)志寄存器入棧TEMPTF,IFTF0CS:IP入棧入棧獲取中斷向量獲取中斷向量執(zhí)行服務(wù)程序執(zhí)行服務(wù)程序彈出彈出CS:IP彈出標(biāo)志寄存器彈出標(biāo)志寄存器返回被中斷程序返回被中斷程序

31、(1)保護(hù)標(biāo)志位)保護(hù)標(biāo)志位(2)保證轉(zhuǎn)移不受影響)保證轉(zhuǎn)移不受影響(3)保護(hù)斷點(diǎn)的地址)保護(hù)斷點(diǎn)的地址(4)獲得中斷程序地址)獲得中斷程序地址由中斷號由中斷號*4的地址單元開始連的地址單元開始連續(xù)續(xù)4字節(jié)內(nèi)容為字節(jié)內(nèi)容為IP、CS的值的值(5)中斷真正要完成的任務(wù))中斷真正要完成的任務(wù)中斷服務(wù)程序中斷服務(wù)程序NNY(6)中斷返回)中斷返回還原轉(zhuǎn)到中斷服務(wù)程序前的還原轉(zhuǎn)到中斷服務(wù)程序前的狀態(tài)狀態(tài)單步中斷單步中斷中斷嵌套中斷嵌套478086的中斷響應(yīng)過程的中斷響應(yīng)過程(續(xù))(續(xù))v8088各種中斷源的各種中斷源的優(yōu)先權(quán)優(yōu)先權(quán),實(shí)際上是,實(shí)際上是指指被識別的先后順序被識別的先后順序v多種中斷同時請

32、求時,多種中斷同時請求時,最先響應(yīng)最先響應(yīng)的則的則可能是可能是單步單步中斷或中斷或 NMI中斷中斷486.3.3 8259中斷控制器中斷控制器vIntel 8259A是可編程中斷控制器是可編程中斷控制器PICv可配合可配合CPU(I8080/85、I8086/88/286/386等)管等)管理可屏蔽中斷理可屏蔽中斷v8259A的基本功能的基本功能1片片8259A可以管理可以管理8級中斷,經(jīng)級聯(lián)最多可擴(kuò)展至級中斷,經(jīng)級聯(lián)最多可擴(kuò)展至64級級每一級中斷都可單獨(dú)被屏蔽或允許每一級中斷都可單獨(dú)被屏蔽或允許在中斷響應(yīng)周期,可提供相應(yīng)的調(diào)用指令(配合在中斷響應(yīng)周期,可提供相應(yīng)的調(diào)用指令(配合I8080/8

33、5 )或中斷向量號(配合或中斷向量號(配合I8086/88/286/386)8259A設(shè)計(jì)有多種工作方式,通過初始化編程進(jìn)行設(shè)置設(shè)計(jì)有多種工作方式,通過初始化編程進(jìn)行設(shè)置491. 8259A的內(nèi)部結(jié)構(gòu)和引腳的內(nèi)部結(jié)構(gòu)和引腳D7D0-INTAINT中斷請求寄存器中斷請求寄存器中斷屏蔽寄存器中斷屏蔽寄存器數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器IR0IR7讀讀/寫寫控制控制邏輯邏輯級聯(lián)級聯(lián)緩沖器緩沖器比較器比較器-RD-WRA0-CSCAS0CSA1CAS2-SP/-EN優(yōu)先權(quán)判別電路優(yōu)先權(quán)判別電路中斷服務(wù)寄存器中斷服務(wù)寄存器控制邏輯控制邏輯50 8259的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)v中斷請求寄存器中斷請求寄存器IR

34、R保存保存8條外界中斷請求信號條外界中斷請求信號IR0IR7的請求狀態(tài)的請求狀態(tài)Di位為位為1表示表示IRi引腳有中斷請求;為引腳有中斷請求;為0表示無請求表示無請求v中斷服務(wù)寄存器中斷服務(wù)寄存器ISR保存正在被保存正在被8259A服務(wù)著的中斷狀態(tài)服務(wù)著的中斷狀態(tài)Di位為位為1表示表示IRi中斷正在服務(wù)中;為中斷正在服務(wù)中;為0表示沒有被服務(wù)表示沒有被服務(wù)v中斷屏蔽寄存器中斷屏蔽寄存器IMR保存對中斷請求信號保存對中斷請求信號IR的屏蔽狀態(tài)的屏蔽狀態(tài)Di位為位為1表示表示IRi中斷被屏蔽(禁止);為中斷被屏蔽(禁止);為0表示允許表示允許51v優(yōu)先權(quán)判別器優(yōu)先權(quán)判別器PR 優(yōu)先權(quán)判別器(優(yōu)先權(quán)

35、判別器(PR)用來識別各中斷請求的優(yōu)先級別)用來識別各中斷請求的優(yōu)先級別 v讀讀/寫控制電路寫控制電路 讀讀/寫控制電路接收來自寫控制電路接收來自CPU的讀的讀/寫控制命令和片選控制寫控制命令和片選控制信息信息 v數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器 這是一個這是一個8位的雙向三態(tài)緩沖器,使位的雙向三態(tài)緩沖器,使8259和和CPU數(shù)據(jù)總線數(shù)據(jù)總線D7D0直接掛接,完成命令和狀態(tài)信息的傳送。直接掛接,完成命令和狀態(tài)信息的傳送。 52v控制電路控制電路 它是它是8259內(nèi)部的控制器,內(nèi)部的控制器,根據(jù)根據(jù)CPU對對8259編程設(shè)定的編程設(shè)定的工作方式產(chǎn)生工作方式產(chǎn)生內(nèi)部內(nèi)部控制信號控制信號,向,向CPU發(fā)

36、出中斷請求信號發(fā)出中斷請求信號INT,請求,請求CPU響應(yīng),同時產(chǎn)生與當(dāng)前中斷請求服務(wù)有關(guān)響應(yīng),同時產(chǎn)生與當(dāng)前中斷請求服務(wù)有關(guān)的控制信號,并的控制信號,并在接收到在接收到來自來自CPU的的中斷響應(yīng)信號中斷響應(yīng)信號后,后,將將中斷類型號送到數(shù)據(jù)總線中斷類型號送到數(shù)據(jù)總線。 v級聯(lián)緩沖級聯(lián)緩沖/比較器比較器 該功能部件用來實(shí)現(xiàn)多個該功能部件用來實(shí)現(xiàn)多個8259的級聯(lián)連接及數(shù)據(jù)緩沖的級聯(lián)連接及數(shù)據(jù)緩沖方式。方式。 53CAS0 IR0CAS1 IR1CAS2 IR2 IR3-INTA IR4 IR5INT IR6 IR7-SP/-EN CAS0-INTA CAS1 CAS2INT IR0 IR1-S

37、P/-EN IR7CAS0 IR0CAS1 IR1CAS2 IR2 IR3-INTA IR4 IR5INT IR6 IR7-SP/-EN-INTAINTR+5V8259級聯(lián)工作示意圖級聯(lián)工作示意圖8259A的級連的級連輸出得到響應(yīng)輸出得到響應(yīng)的從片編號的從片編號54中斷級連中斷級連v8259A可以可以級連級連,1個個主片主片最多可以級連最多可以級連8個個從片從片v級連時,級連時,主片主片的級連線的級連線CAS0CAS2連至每個從片連至每個從片的的CAS0CAS2,輸出被選中的從片編號輸出被選中的從片編號,v每個每個從片從片的中斷請求信號的中斷請求信號 INT,連至主,連至主8259A的一的一個

38、中斷請求輸入端個中斷請求輸入端IRx;主片;主片的的 INT 線連至線連至CPU的的中斷請求輸入端中斷請求輸入端INTRv在非緩沖方式下,引腳在非緩沖方式下,引腳-SP/-EN,通過接地指定該,通過接地指定該片充當(dāng)從片(片充當(dāng)從片(-SP0);反之若接高電平則該片充);反之若接高電平則該片充當(dāng)主片(當(dāng)主片(-SP1)。)。55 8259的引腳功能的引腳功能v8259芯片有芯片有28條引腳,雙列條引腳,雙列直插式封裝,直插式封裝,如圖如圖6.10所示。所示。圖圖6.10 8259芯片引腳定義芯片引腳定義562. 8259A的中斷過程的中斷過程CAS0CAS2D0D7-SP/-ENIR0IR7CP

39、U響應(yīng)周期響應(yīng)周期8259A工作波形工作波形INT第第1個總線周期個總線周期T1 T2 T3 T4ALECLK 第第2個總線周期個總線周期T1 T2 T3 T4第第1個個-INTA前保持高電平前保持高電平 -INTA-LOCK中斷向量主片輸出級聯(lián)信號從片接收573. 8259A的工作方式的工作方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自動循環(huán)方式自動循環(huán)方式特殊循環(huán)方式特殊循環(huán)方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)循環(huán)方式優(yōu)先權(quán)循環(huán)方式 設(shè)置優(yōu)先權(quán)方式設(shè)置優(yōu)先權(quán)方式普通中斷結(jié)束方式普通中斷結(jié)束方式特殊中斷結(jié)束方式特殊中斷結(jié)束方式自動中斷結(jié)束方式自動中斷結(jié)束方式非自動中斷結(jié)束方

40、式非自動中斷結(jié)束方式 結(jié)束中斷方式結(jié)束中斷方式 中斷屏蔽方式中斷屏蔽方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式 中斷觸發(fā)方式中斷觸發(fā)方式邊沿觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式電平觸發(fā)方式 數(shù)據(jù)線連接方式數(shù)據(jù)線連接方式緩沖方式緩沖方式非緩沖方式非緩沖方式 與與CPU配合方式配合方式與與8080/8085 CPU配合配合與與8086/8088 CPU配合配合 級連方式級連方式級連級連不級連不級連58(1)中斷結(jié)束處理方式)中斷結(jié)束處理方式什么是什么是8259A的中斷結(jié)束?的中斷結(jié)束?8259A利用中斷服務(wù)寄存器利用中斷服務(wù)寄存器ISR判斷:判斷:n某位為某位為1,表示正在進(jìn)行中斷服務(wù);,表

41、示正在進(jìn)行中斷服務(wù);n該位為該位為0,就是該中斷結(jié)束服務(wù)。,就是該中斷結(jié)束服務(wù)。 這里說明如何使這里說明如何使ISR某位為某位為0,不反映,不反映CPU的工作狀態(tài)。的工作狀態(tài)。59(1)中斷結(jié)束處理方式(續(xù))中斷結(jié)束處理方式(續(xù))自動中斷結(jié)束方式自動中斷結(jié)束方式普通中斷結(jié)束方式普通中斷結(jié)束方式 配合全嵌套優(yōu)先權(quán)方式使用配合全嵌套優(yōu)先權(quán)方式使用 當(dāng)當(dāng)CPU用輸出指令往用輸出指令往8259A發(fā)出普通中斷結(jié)發(fā)出普通中斷結(jié)束束EOI命令命令時,時,8259A就會把所有正在服務(wù)的中就會把所有正在服務(wù)的中斷中斷中優(yōu)先權(quán)最高的優(yōu)先權(quán)最高的ISR位位復(fù)位復(fù)位。特殊中斷結(jié)束方式特殊中斷結(jié)束方式 配合循環(huán)優(yōu)先權(quán)方

42、式使用配合循環(huán)優(yōu)先權(quán)方式使用 CPU在程序中向在程序中向8259A發(fā)送一條特殊中斷結(jié)發(fā)送一條特殊中斷結(jié)束命令,這個束命令,這個命令命令中中指出指出了要了要清除哪個清除哪個ISR位。位。60(2) 緩沖方式緩沖方式v緩沖方式緩沖方式8259A的數(shù)據(jù)線需加緩沖器予以驅(qū)動的數(shù)據(jù)線需加緩沖器予以驅(qū)動8259A把把SP*/EN*引腳作為輸出端,輸出允許引腳作為輸出端,輸出允許信號,用以鎖存或開啟緩沖器信號,用以鎖存或開啟緩沖器v非緩沖方式非緩沖方式SP*/EN*引腳為輸入端引腳為輸入端若若8259A級連,由其確定是主片或從片級連,由其確定是主片或從片 61(3)嵌套方式)嵌套方式v普通全嵌套方式普通全嵌

43、套方式8259A的中斷的中斷優(yōu)先權(quán)順序固定不變優(yōu)先權(quán)順序固定不變,從高到低依次為,從高到低依次為IR0、IR1、IR2、IR7中斷請求后,中斷請求后,8259A對對當(dāng)前請求中斷中優(yōu)先權(quán)最高的中當(dāng)前請求中斷中優(yōu)先權(quán)最高的中斷斷IRi予以予以響應(yīng)響應(yīng),將其向量號送上數(shù)據(jù)總線,對應(yīng),將其向量號送上數(shù)據(jù)總線,對應(yīng)ISR的的Di位置位,至到中斷結(jié)束(位置位,至到中斷結(jié)束(ISR的的Di位復(fù)位)位復(fù)位)在在ISR的的Di位置位期間,位置位期間,禁止禁止再發(fā)生再發(fā)生同級同級和和低級低級優(yōu)先權(quán)優(yōu)先權(quán)的的中斷中斷,但允許高級優(yōu)先權(quán)中斷的嵌套,但允許高級優(yōu)先權(quán)中斷的嵌套v特殊全嵌套方式特殊全嵌套方式 只禁只禁止止

44、低級低級優(yōu)先中斷優(yōu)先中斷v優(yōu)先權(quán)自動循環(huán)方式優(yōu)先權(quán)自動循環(huán)方式v優(yōu)先權(quán)特殊循環(huán)方式優(yōu)先權(quán)特殊循環(huán)方式62(4) 中斷屏蔽方式中斷屏蔽方式v普通屏蔽方式普通屏蔽方式將將IMR的的Di位置位置1,則對應(yīng)的中斷,則對應(yīng)的中斷IRi被屏蔽被屏蔽,該中斷請求不能從該中斷請求不能從8259A送到送到CPU如果如果IMR的的Di位置位置0,則允許,則允許IRi中斷產(chǎn)生中斷產(chǎn)生v特殊屏蔽方式特殊屏蔽方式將將IMR的的Di位置位置1,對應(yīng)的中斷,對應(yīng)的中斷IRi被屏蔽的同被屏蔽的同時,使時,使ISR的的Di位置位置063 優(yōu)先級的控制優(yōu)先級的控制v 固定優(yōu)先級 所謂固定優(yōu)先級,即是指8259的8個中斷源中,IR

45、0優(yōu)先級最高,IR1優(yōu)先級次之,依次降低,直到IR7優(yōu)先級最低,這個順序固定不變。v 循環(huán)優(yōu)先級 8259將中斷源IR0IR7按下標(biāo)序號順序構(gòu)成一個環(huán),有兩種規(guī)定方式: 自動優(yōu)先循環(huán)級。 該方式規(guī)定:剛被服務(wù)過的中斷源,其優(yōu)先級別被改為最低級,而將最高優(yōu)先級賦給原來比它低一級的中斷源,其它中斷源的優(yōu)先順序依中斷源順序環(huán)確定。例如:CPU對IR3的中斷服務(wù)剛結(jié)束時,IR3的優(yōu)先級別變?yōu)樽畹?,這時8259的8個中斷源優(yōu)先順序由高到低為IR4,IR5,IR6,IR7,IR0,IR1,IR2,IR3。 指定優(yōu)先循環(huán)級。 該方式規(guī)定:在OCW2中指定的中斷源,其優(yōu)先級別被設(shè)為最低級,其它中斷源的優(yōu)先順序

46、依中斷源順序環(huán)確定。例如:CPU在對IR3的中斷服務(wù)過程中,通過指令在OCW2中指定IR5具有最低優(yōu)先級,則IR3中斷服務(wù)結(jié)束時,2859A的8個中斷源優(yōu)先順序由高到低為IR6,IR7,IR0,IR1,IR2,IR3,IR4,IR5。 64優(yōu)先權(quán)方式優(yōu)先權(quán)方式v普通全嵌套方式8259A的中斷優(yōu)先權(quán)順序固定不變,從高到低依次為:IR0、IR1、IR2、IR7中斷請求后,8259A對當(dāng)前請求中斷中優(yōu)先權(quán)最高的中斷 IRi 予以響應(yīng),將其向量號送上數(shù)據(jù)總線,對應(yīng)ISR的 Di位置位,至到中斷結(jié)束(ISR的 Di 位復(fù)位)在ISR的 Di 位置位期間,禁止再發(fā)生同級和低級優(yōu)先權(quán)的中斷,但允許高級優(yōu)先權(quán)

47、中斷的嵌套v特殊全嵌套方式允許同級中斷嵌套(用于級連主片)v優(yōu)先權(quán)自動循環(huán)方式最高優(yōu)先權(quán)自動轉(zhuǎn)移到相鄰的低優(yōu)先級中斷源v優(yōu)先權(quán)特殊循環(huán)方式最高優(yōu)先權(quán)轉(zhuǎn)移到由指令指定的中斷源65(6) 中斷觸發(fā)方式中斷觸發(fā)方式v邊沿觸發(fā)方式邊沿觸發(fā)方式8259A將中斷請求輸入端出現(xiàn)的將中斷請求輸入端出現(xiàn)的上升沿作為中斷請求信號上升沿作為中斷請求信號v電平觸發(fā)方式電平觸發(fā)方式中斷請求端出現(xiàn)的高電平是有效中斷請求端出現(xiàn)的高電平是有效的中斷請求信號的中斷請求信號66(7) 中斷級連中斷級連v一個系統(tǒng)中,一個系統(tǒng)中,8259A可以級連,有一個主可以級連,有一個主8259A,若干個(最多若干個(最多8個)從個)從8259

48、Av級連時,主級連時,主8259A的三條級連線的三條級連線CAS0CAS2作作為輸出線,連至每個從為輸出線,連至每個從8259A的的CAS0CAS2v每個從每個從8259A的中斷請求信號的中斷請求信號INT,連至主,連至主8259A的一個中斷請求輸入端的一個中斷請求輸入端IRv主主8259A的的INT線連至線連至CPU的中斷請求輸入端的中斷請求輸入端vSP*/EN*在非緩沖方式下,規(guī)定該在非緩沖方式下,規(guī)定該8259A是主片是主片(SP*1)還是從片()還是從片(SP*0)67級連方式級連方式v不級連不級連只用只用1片,如片,如 PC/XTv級連級連使用使用29片,如片,如 PC/AT(2片)

49、片)-INTAINTRIR0IR7IR7IR0CAS0CAS2=010INTINTD0D768初始化編程初始化編程 8259A開始工作前,開始工作前, 用戶用戶必須必須對對8259A進(jìn)行進(jìn)行初始化初始化編程。通過寫入編程。通過寫入初始化命令字初始化命令字ICW對對8259A進(jìn)行初始化。進(jìn)行初始化。工作方式編程工作方式編程在在8259A工作期間工作期間 可以可以隨時隨時向向8259A寫入寫入操作命令字操作命令字OCW,使之,使之按用戶設(shè)置的新的工作方式進(jìn)行工作,用戶還可以按用戶設(shè)置的新的工作方式進(jìn)行工作,用戶還可以通過寫通過寫操作命令字操作命令字OCW通知通知8259A,下面的操作,下面的操作要

50、讀取要讀取8259A中的狀態(tài)信息,以便了解其工作情況。中的狀態(tài)信息,以便了解其工作情況。4. 8259A的編程的編程69 8259的初始化編程的初始化編程v8259初始化編程的主要任務(wù)有:初始化編程的主要任務(wù)有:v 復(fù)位復(fù)位8259芯片。芯片。v 設(shè)定中斷請求信號設(shè)定中斷請求信號INT有效的形式,是高電平有有效的形式,是高電平有效,還是上升沿有效。效,還是上升沿有效。v 設(shè)定設(shè)定8259工作在單片方式還是多片級聯(lián)方式。工作在單片方式還是多片級聯(lián)方式。v 設(shè)定設(shè)定8259管理的中斷類型號的基值,即管理的中斷類型號的基值,即0級級IR0所對應(yīng)的中斷類型號。所對應(yīng)的中斷類型號。v 設(shè)定各中斷級的優(yōu)先

51、次序,設(shè)定各中斷級的優(yōu)先次序, IR0最高,最高,IR7最低。最低。v 設(shè)定一次中斷處理結(jié)束時的結(jié)束方式。設(shè)定一次中斷處理結(jié)束時的結(jié)束方式。70(1)初始化命令字)初始化命令字ICWv初始化命令字初始化命令字ICW最多有最多有4個個v8259A在開始工作前必須寫入在開始工作前必須寫入v必須按照必須按照ICW1ICW4順序?qū)懭腠樞驅(qū)懭雟ICW1和和ICW2是必須送的是必須送的vICW3和和ICW4由工作方式?jīng)Q定由工作方式?jīng)Q定流程流程D7D6D5D4D3D2D1D071ICW11LTIMSNGLIC4D7D6D5D4D3D2D1D0表示可以任意表示可以任意為為1為為0都可以(建議為都可以(建議為0

52、) 1只能為只能為1,作為標(biāo)志,作為標(biāo)志中斷觸發(fā)方式:中斷觸發(fā)方式:LTIM1,電平觸發(fā)方式,電平觸發(fā)方式LTIM0,邊沿觸發(fā)方式,邊沿觸發(fā)方式 規(guī)定單片或級連方式:規(guī)定單片或級連方式:SNGL1,單片方式,單片方式SNGL0,級連方式,級連方式是否寫入是否寫入ICW4IC41,要寫入,要寫入ICW4IC40,不寫入,不寫入ICW4,即,即ICW4規(guī)定的位全為規(guī)定的位全為0必須寫入必須寫入A0=0的地址的地址72ICW2T7T6T5T4T3D7D6D5D4D3D2D1D0設(shè)置中斷向量號設(shè)置中斷向量號nT7T3為中斷向量號的高為中斷向量號的高5位位n低低3位由位由8259A自動確定:自動確定:n

53、IR0為為000、IR1為為001、IR7為為111必須寫入必須寫入A0=1的地址,且一定緊跟在的地址,且一定緊跟在ICW1之后寫入之后寫入73ICW3S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0級連命令字級連命令字n主片主片8259A:Si1對應(yīng)對應(yīng)IRi接有從片;接有從片;否則否則IRi沒有連接從片沒有連接從片n從片從片8259A:ID0ID2編碼說明從片編碼說明從片INT引腳接到主片哪個引腳接到主片哪個IR引腳引腳必須寫入必須寫入A0=1的地址,級連時緊跟在的地址,級連時緊跟在ICW2之后寫入之后寫入74ICW4000SFNMBUFM/SAEO

54、IPMD7D6D5D4D3D2D1D0嵌套方式:嵌套方式:n特殊全嵌套方式(特殊全嵌套方式(SFNM1)n普通全嵌套方式(普通全嵌套方式(SFNM0)數(shù)據(jù)線的緩沖方式:數(shù)據(jù)線的緩沖方式:n緩沖方式(緩沖方式(BUF1)n非緩沖方式(非緩沖方式(BUF0) 主片主片/從片選擇:從片選擇:n主片(主片(M/S=1)n從片(從片(M/S=0)中斷結(jié)束方式:中斷結(jié)束方式:n自動中斷結(jié)束(自動中斷結(jié)束(AEOI1)n非自動中斷結(jié)束(非自動中斷結(jié)束(AEOI0)微處理器類型:微處理器類型:n16位位80 x86( PM1)n8位位8080/8085( PM0)必須寫入必須寫入A0=1的地址,由的地址,由I

55、CW1最低位決定是否需要最低位決定是否需要758259芯片的初始化流程芯片的初始化流程 ICW4ICW4(A0=1A0=1)SNGL=0SNGL=0?ICW1ICW1的的IC4=1IC4=1?初始化完,準(zhǔn)備接受中斷請求輸入初始化完,準(zhǔn)備接受中斷請求輸入是是是是否否ICW1ICW1(A0=0A0=0,D4=1D4=1)ICW2ICW2(A0=0A0=0)ICW3ICW3(A0=0A0=0)否否76初始化主片8259Amov al,11h;寫入寫入ICW1out 20h,aljmp intr1intr1:mov al,08h;寫入寫入ICW2out 21h,aljmp intr2intr2:mov

56、 al,04h;寫入寫入ICW3out 21h,aljmp intr3intr3:mov al,1h;寫入寫入ICW4out 21h,al中斷控制器的初始化程序段77初始化從片8259Amov al,11h;寫入寫入ICW1out 0a0h,aljmp intr5intr5:mov al,70h;寫入寫入ICW2out 0a1h,aljmp intr6intr6:mov al,02h;寫入寫入ICW3out 0a1h,aljmp intr7intr7:mov al, 01h;寫入寫入ICW4out 0a1h,al中斷控制器的初始化程序段78 工作方式編程工作方式編程v8259工作方式編程主要完

57、成的任務(wù)是對中斷請求的工作方式編程主要完成的任務(wù)是對中斷請求的屏蔽、優(yōu)先級循環(huán)控制、中斷結(jié)束方式、內(nèi)部控制屏蔽、優(yōu)先級循環(huán)控制、中斷結(jié)束方式、內(nèi)部控制寄存器的查詢等。寄存器的查詢等。 v8259A工作期間,可以隨時接受操作命令字工作期間,可以隨時接受操作命令字OCWvOCW共有共有3個:個:OCW1OCW3v寫入時沒有順序要求,需要哪個寫入時沒有順序要求,需要哪個OCW就寫入那個就寫入那個OCWD7D6D5D4D3D2D1D079OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字屏蔽命令字內(nèi)容寫入中斷屏蔽寄存器內(nèi)容寫入中斷屏蔽寄存器IMRDiMi對應(yīng)對應(yīng)IRi,

58、為,為1禁止禁止IRi中斷;中斷;為為0允許允許IRi中斷。各位互相獨(dú)立。中斷。各位互相獨(dú)立。不是初始化的順序?qū)懭氩皇浅跏蓟捻樞驅(qū)懭階0=1地址的就是地址的就是OCW180OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和和EOI配合使配合使用用產(chǎn)生中斷結(jié)束產(chǎn)生中斷結(jié)束EOI命命令和改變優(yōu)先權(quán)順序令和改變優(yōu)先權(quán)順序L2L0的的3位編碼位編碼指定指定IR引腳引腳 必須寫入必須寫入A0=0的地址,由特征位與的地址,由特征位與ICW1區(qū)分區(qū)分81OCW30ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM設(shè)置中斷屏蔽方式設(shè)置中斷屏蔽方式P、R

59、R和和RIS規(guī)定隨后讀取的規(guī)定隨后讀取的狀態(tài)字狀態(tài)字含義含義必須寫入必須寫入A0=0的地址,由特征位與的地址,由特征位與ICW1、OCW2區(qū)分區(qū)分82讀取狀態(tài)字讀取狀態(tài)字vCPU可讀出可讀出IRR、ISR、IMR和查詢字和查詢字vA0為低,由為低,由OCW3中中RR和和RIS位設(shè)定讀位設(shè)定讀取取IRR或或ISR,由,由OCW3中中P位設(shè)定讀取位設(shè)定讀取查詢字查詢字v而而A0引腳為高電平時讀取的都是引腳為高電平時讀取的都是IMRv查詢字反映查詢字反映8259A是否有中斷請求是否有中斷請求83查詢字查詢字IW2W1W0D7D6D5D4D3D2D1D0中斷位中斷位I位為位為1,有外設(shè)請求中斷有外設(shè)請

60、求中斷W2W0的編碼的編碼當(dāng)前中斷請求的當(dāng)前中斷請求的最高優(yōu)先級最高優(yōu)先級84補(bǔ)充:補(bǔ)充: 命令字和狀態(tài)字的區(qū)別方法命令字和狀態(tài)字的區(qū)別方法 利用讀寫信號區(qū)別寫入的控制寄存器和利用讀寫信號區(qū)別寫入的控制寄存器和讀出的狀態(tài)寄存器讀出的狀態(tài)寄存器 利用地址信號區(qū)別不同利用地址信號區(qū)別不同I/O地址的寄存器地址的寄存器 由控制字中的標(biāo)志位說明是哪個寄存器由控制字中的標(biāo)志位說明是哪個寄存器 由芯片內(nèi)順序控制邏輯按一定順序識別由芯片內(nèi)順序控制邏輯按一定順序識別不同的寄存器不同的寄存器 由前面的控制字決定后續(xù)操作的寄存器由前面的控制字決定后續(xù)操作的寄存器接口電路中常用的方法接口電路中常用的方法85(1)與

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論