第五章數(shù)字量輸入輸出_第1頁(yè)
第五章數(shù)字量輸入輸出_第2頁(yè)
第五章數(shù)字量輸入輸出_第3頁(yè)
第五章數(shù)字量輸入輸出_第4頁(yè)
第五章數(shù)字量輸入輸出_第5頁(yè)
已閱讀5頁(yè),還剩95頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 5.1 5.1 概述概述 5.2 5.2 系統(tǒng)總線及接口系統(tǒng)總線及接口 5.3 5.3 中斷控制系統(tǒng)中斷控制系統(tǒng) 5.4 5.4 計(jì)數(shù)定時(shí)接口計(jì)數(shù)定時(shí)接口 5.5 5.5 并行輸入輸出接口并行輸入輸出接口 25.1 概述 5.1.1 I/O5.1.1 I/O信號(hào)的形式信號(hào)的形式1、開(kāi)關(guān)量:只有兩種穩(wěn)定的信號(hào),可以用兩個(gè)最基本的邏輯符號(hào)表示、開(kāi)關(guān)量:只有兩種穩(wěn)定的信號(hào),可以用兩個(gè)最基本的邏輯符號(hào)表示2、數(shù)字量:多位、數(shù)字量:多位0和和1按一定規(guī)則組合所表示的信號(hào)按一定規(guī)則組合所表示的信號(hào)3、脈沖量:兩種穩(wěn)態(tài)之間的變化、脈沖量:兩種穩(wěn)態(tài)之間的變化l 正跳變正跳變:由:由0變到變到1l 負(fù)跳變負(fù)

2、跳變:由:由1變到變到0 4、模擬量:數(shù)值和時(shí)間上都能連續(xù)變化的信號(hào)、模擬量:數(shù)值和時(shí)間上都能連續(xù)變化的信號(hào) 35.1.2 I/O5.1.2 I/O接口接口 接口的含義:接口的含義:l 狹義上:連接計(jì)算機(jī)和狹義上:連接計(jì)算機(jī)和I/O設(shè)備的部件;設(shè)備的部件;l 廣義上:還包括接口電路的管理驅(qū)動(dòng)程序;廣義上:還包括接口電路的管理驅(qū)動(dòng)程序;1、 I/O接口的功能接口的功能(1)信號(hào)的形式變換:非數(shù)字信號(hào)變換成二進(jìn)制數(shù)字信號(hào);)信號(hào)的形式變換:非數(shù)字信號(hào)變換成二進(jìn)制數(shù)字信號(hào);(2)電平轉(zhuǎn)換和放大)電平轉(zhuǎn)換和放大(3)鎖存及緩沖)鎖存及緩沖(4) I/O定向定向(5)并行及串行)并行及串行I/O的轉(zhuǎn)換的

3、轉(zhuǎn)換l 并行方式:接口和并行方式:接口和I/O設(shè)備之間以并行方式傳送;設(shè)備之間以并行方式傳送;l 串行方式:一位一位地進(jìn)行傳送;串行方式:一位一位地進(jìn)行傳送;42、 I/O的內(nèi)容分類的內(nèi)容分類(1)數(shù)據(jù)信息:數(shù)據(jù)信息可分為數(shù)字量、模擬量和開(kāi)關(guān)量。數(shù)據(jù)信息:數(shù)據(jù)信息可分為數(shù)字量、模擬量和開(kāi)關(guān)量。 (2)狀態(tài)信息:狀態(tài)信息是狀態(tài)信息:狀態(tài)信息是CPU與外設(shè)之間交換數(shù)據(jù)時(shí)的聯(lián)絡(luò)信息。與外設(shè)之間交換數(shù)據(jù)時(shí)的聯(lián)絡(luò)信息。(3)控制信息:控制信息用來(lái)設(shè)置控制信息:控制信息用來(lái)設(shè)置I/O外設(shè)外設(shè)(包括包括I/O接口接口)的工作模式、的工作模式、 命令字等有關(guān)信息。如命令字等有關(guān)信息。如“啟動(dòng)啟動(dòng)”,“停止停止

4、”信息。信息。3、 I/O接口的構(gòu)成接口的構(gòu)成(1)端口:構(gòu)成)端口:構(gòu)成I/O接口的基本單元。接口的基本單元。較低地址端口存放較低字節(jié)內(nèi)容,較高端口存放較高字節(jié)的內(nèi)容較低地址端口存放較低字節(jié)內(nèi)容,較高端口存放較高字節(jié)的內(nèi)容(2)端口的分類:)端口的分類:數(shù)據(jù)端口:?jiǎn)蜗蜉斎?、單向輸出、雙向數(shù)據(jù)端口:?jiǎn)蜗蜉斎?、單向輸出、雙向狀態(tài)端口狀態(tài)端口控制端口:輸入、輸出指令控制端口:輸入、輸出指令55.1.3 I/O編址兩種兩種I/O編址方式:編址方式:存儲(chǔ)器映象和存儲(chǔ)器映象和I/O端口尋址端口尋址 1、存儲(chǔ)器映象編址:從存儲(chǔ)器地址中分出存儲(chǔ)器映象編址:從存儲(chǔ)器地址中分出一部分一部分給給I/O端口使用,每

5、個(gè)端口使用,每個(gè) I/O端口被看成一個(gè)存儲(chǔ)器單元,用訪問(wèn)存儲(chǔ)器的方法訪問(wèn)端口被看成一個(gè)存儲(chǔ)器單元,用訪問(wèn)存儲(chǔ)器的方法訪問(wèn)I/O端口端口優(yōu)點(diǎn):優(yōu)點(diǎn):無(wú)無(wú)須專門的須專門的I/O指令和專門的指令和專門的I/O控制信號(hào)也能完成控制信號(hào)也能完成I/O;2、 I/O端口單獨(dú)編址:使用專門的端口單獨(dú)編址:使用專門的I/O指令和控制信號(hào)進(jìn)行指令和控制信號(hào)進(jìn)行I/O;優(yōu)點(diǎn):優(yōu)點(diǎn):I/O指令和存儲(chǔ)器分別編址,各自都有完整的地址空間;指令和存儲(chǔ)器分別編址,各自都有完整的地址空間;兩種方式優(yōu)缺點(diǎn)互補(bǔ);兩種方式優(yōu)缺點(diǎn)互補(bǔ);65.1.4 I/O的控制方式1. 無(wú)條件傳送方式無(wú)條件傳送方式 無(wú)條件傳送方式是假設(shè)輸入接口數(shù)據(jù)

6、已經(jīng)準(zhǔn)備好,或者輸出設(shè)備是無(wú)條件傳送方式是假設(shè)輸入接口數(shù)據(jù)已經(jīng)準(zhǔn)備好,或者輸出設(shè)備是空閑的,此時(shí)空閑的,此時(shí)CPU無(wú)需查詢狀態(tài),直接用無(wú)需查詢狀態(tài),直接用IN和和OUT指令完成與接口之指令完成與接口之間的數(shù)據(jù)傳送。間的數(shù)據(jù)傳送。 2. 查詢傳送方式查詢傳送方式 利用查詢方式輸入數(shù)據(jù)之前,利用查詢方式輸入數(shù)據(jù)之前,CPU要查詢輸入數(shù)據(jù)是否準(zhǔn)備好;利要查詢輸入數(shù)據(jù)是否準(zhǔn)備好;利用查詢方式輸出數(shù)據(jù)之前,用查詢方式輸出數(shù)據(jù)之前,CPU要查詢輸出設(shè)備是否空閑。只有確認(rèn)外要查詢輸出設(shè)備是否空閑。只有確認(rèn)外設(shè)已經(jīng)具備了傳送條件后,才能用設(shè)已經(jīng)具備了傳送條件后,才能用IN和和OUT指令完成數(shù)據(jù)傳送。指令完成數(shù)

7、據(jù)傳送。 73、中斷控制傳送方式、中斷控制傳送方式 中斷控制的輸入和輸出方式,也成中斷傳送方式。當(dāng)外設(shè)的輸入中斷控制的輸入和輸出方式,也成中斷傳送方式。當(dāng)外設(shè)的輸入數(shù)據(jù)準(zhǔn)備好或接受數(shù)據(jù)的鎖存器空時(shí),主動(dòng)向數(shù)據(jù)準(zhǔn)備好或接受數(shù)據(jù)的鎖存器空時(shí),主動(dòng)向CPU發(fā)出中斷請(qǐng)求,使發(fā)出中斷請(qǐng)求,使CPU中斷原來(lái)執(zhí)行的程序(主程序),轉(zhuǎn)去執(zhí)行為外設(shè)服務(wù)的輸入或輸中斷原來(lái)執(zhí)行的程序(主程序),轉(zhuǎn)去執(zhí)行為外設(shè)服務(wù)的輸入或輸出操作,服務(wù)完畢出操作,服務(wù)完畢CPU再繼續(xù)執(zhí)行原來(lái)的程序。再繼續(xù)執(zhí)行原來(lái)的程序。4、直接存儲(chǔ)器訪問(wèn)方式、直接存儲(chǔ)器訪問(wèn)方式DMA5、其他方式:、其他方式:如如I/O處理機(jī)方式處理機(jī)方式85.2

8、系統(tǒng)總線及接口 5.2.1 5.2.1 總線概述總線概述1 1、總線的特性總線的特性(1 1)多信號(hào)源)多信號(hào)源 (2 2)被分時(shí)使用)被分時(shí)使用 (3 3)由主設(shè)備控制)由主設(shè)備控制2 2、總線的分級(jí)、總線的分級(jí)(1 1)片內(nèi)總線)片內(nèi)總線 (2 2)系統(tǒng)級(jí)總線:計(jì)算機(jī)機(jī)箱內(nèi)部,插卡與插卡之間的連接總線;)系統(tǒng)級(jí)總線:計(jì)算機(jī)機(jī)箱內(nèi)部,插卡與插卡之間的連接總線;(3 3)設(shè)備級(jí)總線:計(jì)算機(jī)機(jī)箱外部,)設(shè)備級(jí)總線:計(jì)算機(jī)機(jī)箱外部,I/OI/O設(shè)備和計(jì)算機(jī)之間的連接總線;設(shè)備和計(jì)算機(jī)之間的連接總線; 95.2.2 5.2.2 系統(tǒng)總線標(biāo)準(zhǔn)系統(tǒng)總線標(biāo)準(zhǔn)1 1、PC/XTPC/XT及及ISAISA總線

9、總線(1 1)總線信號(hào))總線信號(hào)(2 2)總線周期:)總線周期:CPUCPU執(zhí)行一條指令的時(shí)間稱為指令周期。執(zhí)行一條指令的時(shí)間稱為指令周期。系統(tǒng)的總線周期分為系統(tǒng)的總線周期分為CPUCPU驅(qū)動(dòng)和驅(qū)動(dòng)和DMACDMAC驅(qū)動(dòng)驅(qū)動(dòng)CPUCPU驅(qū)動(dòng)的總線周期驅(qū)動(dòng)的總線周期l存儲(chǔ)器讀總線周期存儲(chǔ)器讀總線周期 l存儲(chǔ)器寫總線周期存儲(chǔ)器寫總線周期lI/OI/O讀總線周期讀總線周期I/OI/O寫總線周期寫總線周期 DMAC驅(qū)動(dòng)的總線周期驅(qū)動(dòng)的總線周期l DMA存儲(chǔ)器讀周期存儲(chǔ)器讀周期l DMA存儲(chǔ)器寫周期存儲(chǔ)器寫周期105.3 中斷控制系統(tǒng)1、中斷及返回、中斷及返回 所謂所謂“中斷中斷”是指是指CPU在正常執(zhí)

10、行程在正常執(zhí)行程序序的過(guò)程中,由于的過(guò)程中,由于內(nèi)部?jī)?nèi)部/外部事件外部事件或由程序或由程序的預(yù)先安排的預(yù)先安排,引起,引起CPU暫時(shí)中斷當(dāng)前程序暫時(shí)中斷當(dāng)前程序的運(yùn)行而轉(zhuǎn)去的運(yùn)行而轉(zhuǎn)去執(zhí)行為內(nèi)部執(zhí)行為內(nèi)部/外部事件或預(yù)外部事件或預(yù)先安排的事件服務(wù)的子程序先安排的事件服務(wù)的子程序,待中斷服務(wù)待中斷服務(wù)子程序執(zhí)行完畢后,子程序執(zhí)行完畢后,CPU再返回到暫停處再返回到暫停處(斷點(diǎn))繼續(xù)執(zhí)行原來(lái)的程序(斷點(diǎn))繼續(xù)執(zhí)行原來(lái)的程序,這一過(guò)程,這一過(guò)程稱為中斷,其示意圖如圖稱為中斷,其示意圖如圖5-1所示。所示。 現(xiàn)行程序 斷點(diǎn) 中斷服務(wù)程序 圖5-1 中斷過(guò)程示意圖 5.3.1 中斷的基本概念中斷的基本概

11、念112 2、中斷系統(tǒng)的功能、中斷系統(tǒng)的功能(1 1)發(fā)出中斷請(qǐng)求信號(hào):原始信號(hào)、經(jīng)過(guò)管理后輸往)發(fā)出中斷請(qǐng)求信號(hào):原始信號(hào)、經(jīng)過(guò)管理后輸往CPUCPU的信號(hào)的信號(hào)(2 2)定向中斷服務(wù)程序)定向中斷服務(wù)程序(3 3)主程序的暫停及返回)主程序的暫停及返回?cái)帱c(diǎn)的保護(hù)和返回?cái)帱c(diǎn)的保護(hù)和返回現(xiàn)場(chǎng)的保護(hù)和返回現(xiàn)場(chǎng)的保護(hù)和返回3、中斷技術(shù)的優(yōu)點(diǎn)、中斷技術(shù)的優(yōu)點(diǎn)(1)并行操作)并行操作(CPU與外設(shè)與外設(shè))(2)實(shí)時(shí)處理)實(shí)時(shí)處理(測(cè)控信號(hào)測(cè)控信號(hào))(3)故障處理)故障處理(掉電保護(hù)等掉電保護(hù)等)(4)分時(shí)操作)分時(shí)操作(多任務(wù)或多用戶系統(tǒng)多任務(wù)或多用戶系統(tǒng))124、中斷源:、中斷源:能引起中斷的設(shè)備或

12、事件稱為中斷源。能引起中斷的設(shè)備或事件稱為中斷源。(1) 中斷源種類中斷源種類l設(shè)備中斷(設(shè)備中斷(硬中斷硬中斷)l指令中斷(指令中斷(軟中斷軟中斷) l故障中斷(故障中斷(狀態(tài)中斷狀態(tài)中斷)l實(shí)時(shí)時(shí)鐘中斷(實(shí)時(shí)時(shí)鐘中斷(定時(shí)中斷定時(shí)中斷) lCPU內(nèi)部運(yùn)算產(chǎn)生的內(nèi)部運(yùn)算產(chǎn)生的某些錯(cuò)誤所引起的中斷某些錯(cuò)誤所引起的中斷 13(2) 中斷源識(shí)別中斷源識(shí)別通常有兩種方法:通常有兩種方法:查詢中斷和矢量中斷查詢中斷和矢量中斷。查詢中斷查詢中斷 查詢中斷時(shí)采用軟件或硬件查詢技術(shù)來(lái)確定發(fā)出中斷請(qǐng)求的中斷源。查詢中斷時(shí)采用軟件或硬件查詢技術(shù)來(lái)確定發(fā)出中斷請(qǐng)求的中斷源。 多個(gè)中斷源共用一個(gè)中斷服務(wù)入口程序,進(jìn)

13、入中斷服務(wù)程序后查詢多個(gè)中斷源共用一個(gè)中斷服務(wù)入口程序,進(jìn)入中斷服務(wù)程序后查詢方式有:方式有:l軟件查詢:軟件查詢:首先讀取中斷源狀態(tài)并查詢檢測(cè),然后根據(jù)狀態(tài)檢測(cè)情首先讀取中斷源狀態(tài)并查詢檢測(cè),然后根據(jù)狀態(tài)檢測(cè)情況作相應(yīng)的中斷處理。況作相應(yīng)的中斷處理。l硬件查詢硬件查詢1:通過(guò)串行順序鏈電路端口讀取引起中斷的最高優(yōu)先級(jí):通過(guò)串行順序鏈電路端口讀取引起中斷的最高優(yōu)先級(jí)中斷源的編碼,然后根據(jù)該編碼(計(jì)算出入口地址)轉(zhuǎn)入相應(yīng)的處中斷源的編碼,然后根據(jù)該編碼(計(jì)算出入口地址)轉(zhuǎn)入相應(yīng)的處理程序。理程序。l硬件查詢硬件查詢2:中斷相應(yīng)信號(hào):中斷相應(yīng)信號(hào)-INTA觸發(fā)從串行順序鏈電路中獲取終觸發(fā)從串行順序

14、鏈電路中獲取終端類信號(hào)。根據(jù)類型號(hào)轉(zhuǎn)入相應(yīng)的處理程序(硬件查詢端類信號(hào)。根據(jù)類型號(hào)轉(zhuǎn)入相應(yīng)的處理程序(硬件查詢2類似矢量類似矢量中斷)中斷) 14矢量中斷矢量中斷 矢量中斷又稱矢量中斷又稱向量中斷向量中斷,通常是,通常是由中斷向量來(lái)指示中斷服務(wù)程序由中斷向量來(lái)指示中斷服務(wù)程序的入口地址的入口地址。每個(gè)中斷源都預(yù)先指定一個(gè)矢量標(biāo)志,要求。每個(gè)中斷源都預(yù)先指定一個(gè)矢量標(biāo)志,要求外設(shè)在提出中外設(shè)在提出中斷請(qǐng)求時(shí)提供該中斷矢量標(biāo)志斷請(qǐng)求時(shí)提供該中斷矢量標(biāo)志。當(dāng)。當(dāng)CPU響應(yīng)某個(gè)中斷源的中斷請(qǐng)求時(shí)響應(yīng)某個(gè)中斷源的中斷請(qǐng)求時(shí),控制邏輯就將該控制邏輯就將該中斷源的矢量標(biāo)志送入中斷源的矢量標(biāo)志送入CPU,CP

15、U根據(jù)矢量標(biāo)志自動(dòng)指根據(jù)矢量標(biāo)志自動(dòng)指向相應(yīng)的中斷服務(wù)程序的入口地址向相應(yīng)的中斷服務(wù)程序的入口地址,轉(zhuǎn)入中斷服務(wù)程序。,轉(zhuǎn)入中斷服務(wù)程序。 每個(gè)每個(gè)中斷源中斷源對(duì)應(yīng)一個(gè)對(duì)應(yīng)一個(gè)中斷服務(wù)入口程序,中斷服務(wù)入口程序,CPUCPU響應(yīng)中斷時(shí),響應(yīng)中斷時(shí),通過(guò)中通過(guò)中斷電路獲取中斷矢量斷電路獲取中斷矢量(或中斷類型號(hào)),(或中斷類型號(hào)),根據(jù)中斷矢量根據(jù)中斷矢量轉(zhuǎn)入該中斷源的轉(zhuǎn)入該中斷源的中斷服務(wù)程序。中斷服務(wù)程序。155、中斷的分類、中斷的分類 內(nèi)部中斷也稱內(nèi)部中斷也稱軟件中斷軟件中斷,是由處理器,是由處理器檢測(cè)到異常情況檢測(cè)到異常情況或或執(zhí)行軟件執(zhí)行軟件中斷指令中斷指令所引起的一種中斷。所引起的一

16、種中斷。(1)內(nèi)部中斷)內(nèi)部中斷除法出錯(cuò)中斷除法出錯(cuò)中斷(除法指令除法指令操作結(jié)果溢出操作結(jié)果溢出(除數(shù)位除數(shù)位0),引起,引起0號(hào)中斷號(hào)中斷);INTO溢出中斷溢出中斷(當(dāng)當(dāng)OF=1,并且執(zhí)行,并且執(zhí)行INTO指令,引起指令,引起4號(hào)中斷號(hào)中斷);INT nINT n中斷中斷(執(zhí)行執(zhí)行INT n中斷指令中斷指令(相當(dāng)于子程序調(diào)用指令相當(dāng)于子程序調(diào)用指令),引起的中,引起的中斷斷);斷點(diǎn)中斷斷點(diǎn)中斷(在程序某斷點(diǎn)在程序某斷點(diǎn)插入插入單個(gè)字節(jié)單個(gè)字節(jié)的的INT3指令代碼指令代碼,當(dāng)執(zhí)行到,當(dāng)執(zhí)行到INT3,引發(fā)的,引發(fā)的3號(hào)中斷號(hào)中斷類型類型);單步中斷單步中斷(當(dāng)當(dāng)TF=1時(shí),每執(zhí)行一條指令,

17、自動(dòng)轉(zhuǎn)入時(shí),每執(zhí)行一條指令,自動(dòng)轉(zhuǎn)入1號(hào)中斷號(hào)中斷類型的服務(wù)類型的服務(wù) 程序程序)。 16(2) 外部中斷外部中斷硬件中斷硬件中斷 外部中斷也稱外部中斷也稱硬件中斷硬件中斷,是由,是由CPU的的外部中斷請(qǐng)求信號(hào)觸發(fā)的一外部中斷請(qǐng)求信號(hào)觸發(fā)的一種中斷種中斷,分為不可屏蔽中斷,分為不可屏蔽中斷NMI和可屏蔽中斷和可屏蔽中斷INTR。(1)非屏蔽中斷請(qǐng)求非屏蔽中斷請(qǐng)求NMI ( (上升沿觸發(fā)上升沿觸發(fā)) ) 非屏蔽中斷請(qǐng)求由不受中斷允許標(biāo)志位非屏蔽中斷請(qǐng)求由不受中斷允許標(biāo)志位IF的影響,的影響,中斷類型碼為中斷類型碼為2 2。(2 2)可屏蔽中斷可屏蔽中斷INTR (INTR (高電平觸發(fā)高電平觸發(fā)

18、) ) 若若CPUCPU發(fā)現(xiàn)有可屏蔽中斷請(qǐng)求,發(fā)現(xiàn)有可屏蔽中斷請(qǐng)求,CPUCPU將將根據(jù)中斷允許標(biāo)志位根據(jù)中斷允許標(biāo)志位IFIF的狀態(tài)的狀態(tài)決定是否響應(yīng)決定是否響應(yīng)。如果。如果IF=0IF=0,表示,表示CPUCPU處于關(guān)中斷狀態(tài),屏蔽處于關(guān)中斷狀態(tài),屏蔽INTRINTR線上的中線上的中斷,斷,CPUCPU不理會(huì)該中斷請(qǐng)求而繼續(xù)執(zhí)行下一條指令;不理會(huì)該中斷請(qǐng)求而繼續(xù)執(zhí)行下一條指令;如果如果IF=1IF=1,表示,表示CPUCPU處于開(kāi)中斷狀態(tài),允許處于開(kāi)中斷狀態(tài),允許INTRINTR線上的中斷,線上的中斷,CPUCPU執(zhí)行完現(xiàn)行指令后轉(zhuǎn)入中斷執(zhí)行完現(xiàn)行指令后轉(zhuǎn)入中斷響應(yīng)周期響應(yīng)周期。 17(3

19、 3)中斷處理順序)中斷處理順序 中斷處理順序即中斷處理順序即按中斷優(yōu)先權(quán)按中斷優(yōu)先權(quán)從高到低從高到低的排隊(duì)順序?qū)χ袛嘣吹呐抨?duì)順序?qū)χ袛嘣催M(jìn)行響應(yīng)進(jìn)行響應(yīng),80868086系統(tǒng)的中斷處理次序如下:系統(tǒng)的中斷處理次序如下:(1 1)除法錯(cuò)誤中斷、溢出中斷、)除法錯(cuò)誤中斷、溢出中斷、INT nINT n指令中斷、斷點(diǎn)中斷。指令中斷、斷點(diǎn)中斷。(2 2)非屏蔽中斷)非屏蔽中斷NMINMI。(3 3)可屏蔽中斷)可屏蔽中斷INTRINTR。(4 4)單步中斷。)單步中斷。 186 6 中斷向量表中斷向量表 中斷向量中斷向量就是中斷服務(wù)程序的就是中斷服務(wù)程序的入口地址表入口地址表。把系統(tǒng)中的所有中斷向把

20、系統(tǒng)中的所有中斷向量集中起來(lái)放到存儲(chǔ)器的某一區(qū)域量集中起來(lái)放到存儲(chǔ)器的某一區(qū)域(03ffH)內(nèi),這個(gè)存放中斷向量的內(nèi),這個(gè)存放中斷向量的存存儲(chǔ)區(qū)就叫中斷向量表儲(chǔ)區(qū)就叫中斷向量表(或中斷矢量表),即(或中斷矢量表),即每一個(gè)中斷服務(wù)程序與表內(nèi)每一個(gè)中斷服務(wù)程序與表內(nèi)的中斷向量具有一一對(duì)應(yīng)關(guān)系的中斷向量具有一一對(duì)應(yīng)關(guān)系。 中斷向量表分為三部分:中斷向量表分為三部分:專用中斷專用中斷、備用中斷備用中斷和和用戶中斷用戶中斷。(1 1)專用中斷專用中斷:類型類型0 0類型類型4 4,共有,共有5 5種類型。專用中斷的中斷服務(wù)程種類型。專用中斷的中斷服務(wù)程序的入口地址由系統(tǒng)負(fù)責(zé)裝入,用戶不能隨意修改。序的

21、入口地址由系統(tǒng)負(fù)責(zé)裝入,用戶不能隨意修改。(2 2)備用中斷備用中斷:類型類型5 5類型類型3FH3FH,這是,這是IntelIntel公司為軟、硬件開(kāi)發(fā)保留公司為軟、硬件開(kāi)發(fā)保留的中斷類型,一般不允許用戶改作其他用途。的中斷類型,一般不允許用戶改作其他用途。(3 3)用戶中斷用戶中斷:類型類型40H40H類型類型FFHFFH,為用戶可用中斷,其中斷服務(wù)程,為用戶可用中斷,其中斷服務(wù)程序的入口地址由用戶程序負(fù)責(zé)裝入序的入口地址由用戶程序負(fù)責(zé)裝入19 除 法 中 斷 入 口 單 步 中 斷 入 口 N M I 中 斷 入 口 斷 點(diǎn) 中 斷 入 口 溢 出 中 斷 入 口 類 型 5 中 斷 入

22、 口 IP C S 0 0 0 0 H 0 0 0 4 H 0 0 0 8 H 0 0 0 C H 0 0 1 0 H 0 0 1 4 H 類 型 3 1 H 中 斷 入 口 類 型 3 2 H 中 斷 入 口 0 0 C 4 H 0 0 C 8 H 類 型 0 F F H 中 斷 入 口 0 3 F C H 8 0 8 6 的 中 斷 向 量 表 專 用 中 斷 備 用 中 斷 用 戶 中 斷 205.3.2 可編程中斷控制電路可編程中斷控制電路Intel 8259A可編程外部中斷控制器的功能可編程外部中斷控制器的功能可對(duì)可對(duì)8個(gè)中斷源實(shí)現(xiàn)個(gè)中斷源實(shí)現(xiàn)優(yōu)先級(jí)優(yōu)先級(jí)控制控制 可擴(kuò)展至對(duì)可擴(kuò)展至

23、對(duì)64個(gè)中斷源實(shí)現(xiàn)優(yōu)先級(jí)控制個(gè)中斷源實(shí)現(xiàn)優(yōu)先級(jí)控制 可編程設(shè)置不同工作方式可編程設(shè)置不同工作方式根據(jù)中斷源向根據(jù)中斷源向x86提供不同中斷類型碼提供不同中斷類型碼 218259A引腳及功能引腳及功能 見(jiàn)見(jiàn)P297的圖的圖5.19數(shù)據(jù)線數(shù)據(jù)線D7D0-8位;位;片選信號(hào)片選信號(hào)-低電平有效;低電平有效;A0-地址引腳;地址引腳;讀寫信號(hào)讀寫信號(hào)-低電平有效;低電平有效;INT-中斷請(qǐng)求信號(hào);中斷請(qǐng)求信號(hào);IR7IR0-外部中斷請(qǐng)求外部中斷請(qǐng)求8個(gè);個(gè);CAS2CAS0-多片多片8259A的級(jí)聯(lián)的級(jí)聯(lián)2218259A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu) -中斷請(qǐng)求寄存器中斷請(qǐng)求寄存器IRR 保存從保存從IR0IR

24、7來(lái)的中斷請(qǐng)求信號(hào),來(lái)的中斷請(qǐng)求信號(hào),某位某位=1表示對(duì)應(yīng)的表示對(duì)應(yīng)的IRi有中有中斷請(qǐng)求斷請(qǐng)求 中斷服務(wù)寄存器中斷服務(wù)寄存器ISR 保存所有正在服務(wù)的中斷源,保存所有正在服務(wù)的中斷源,某位某位=1表示對(duì)應(yīng)的表示對(duì)應(yīng)的IRi中斷正在被中斷正在被服務(wù)服務(wù) 中斷屏蔽寄存器中斷屏蔽寄存器IMR 存放中斷屏蔽字,存放中斷屏蔽字,某位某位=1表示對(duì)應(yīng)的表示對(duì)應(yīng)的IRi輸入被屏蔽輸入被屏蔽 中斷優(yōu)先權(quán)判別電路中斷優(yōu)先權(quán)判別電路 確定是否向確定是否向CPU發(fā)出中斷請(qǐng)求,中斷響應(yīng)時(shí)確定發(fā)出中斷請(qǐng)求,中斷響應(yīng)時(shí)確定ISR的哪位應(yīng)置的哪位應(yīng)置位及把相應(yīng)中斷的類型碼放到數(shù)據(jù)總線上位及把相應(yīng)中斷的類型碼放到數(shù)據(jù)總線上

25、 232、 8259A的工作過(guò)程的工作過(guò)程8259A對(duì)中斷請(qǐng)求的處理過(guò)程如下:對(duì)中斷請(qǐng)求的處理過(guò)程如下: 當(dāng)某當(dāng)某IRi有效時(shí),有效時(shí),IRR相應(yīng)位置相應(yīng)位置1 若有效的若有效的IRi未被屏蔽,則未被屏蔽,則向向CPU發(fā)出中斷請(qǐng)求發(fā)出中斷請(qǐng)求 檢測(cè)到檢測(cè)到第第1個(gè)個(gè)INTA信號(hào)信號(hào)后,后,置置ISRi=1,IRRi=0 檢測(cè)到檢測(cè)到第第2個(gè)個(gè)INTA信號(hào)信號(hào)后,后,把把ISRi=1中最高優(yōu)先級(jí)的中斷中最高優(yōu)先級(jí)的中斷類型碼放到類型碼放到DB上上 若工作在若工作在AEOI方式,在第方式,在第2個(gè)個(gè)INTA#結(jié)束時(shí),使結(jié)束時(shí),使ISRi復(fù)位;復(fù)位;否則由否則由CPU發(fā)出發(fā)出EOI命令使命令使ISR

26、i復(fù)位復(fù)位243、 8259A的工作方式的工作方式8259A的工作方式有如下幾類:的工作方式有如下幾類: 中斷優(yōu)先方式與中斷嵌套中斷優(yōu)先方式與中斷嵌套 中斷結(jié)束處理方式中斷結(jié)束處理方式 屏蔽中斷源的方式屏蔽中斷源的方式 中斷觸發(fā)方式中斷觸發(fā)方式 級(jí)聯(lián)工作方式級(jí)聯(lián)工作方式25(1)中斷優(yōu)先方式與中斷嵌套)中斷優(yōu)先方式與中斷嵌套中斷優(yōu)先方式中斷優(yōu)先方式 兩類優(yōu)先級(jí)控制方式:兩類優(yōu)先級(jí)控制方式:固定優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí)固定優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí)固定優(yōu)先級(jí)方式固定優(yōu)先級(jí)方式 所有中斷請(qǐng)求所有中斷請(qǐng)求IRi的中斷優(yōu)先級(jí)固定不變的中斷優(yōu)先級(jí)固定不變 優(yōu)先級(jí)排列順序可編程改變優(yōu)先級(jí)排列順序可編程改變 加電后加電后

27、8259A的默認(rèn)方式,默認(rèn)優(yōu)先級(jí)順序從高到低為的默認(rèn)方式,默認(rèn)優(yōu)先級(jí)順序從高到低為IR0IR7最低級(jí)IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最高級(jí)最高級(jí)最低級(jí)優(yōu)先級(jí)優(yōu)先級(jí)IR7IR6IR5IR4IR3IR2IR1IR0默認(rèn)優(yōu)先級(jí)默認(rèn)優(yōu)先級(jí)優(yōu)先級(jí)可編程改變優(yōu)先級(jí)可編程改變26(1)中斷優(yōu)先方式與中斷嵌套(續(xù))中斷優(yōu)先方式與中斷嵌套(續(xù)) 循環(huán)優(yōu)先級(jí)方式循環(huán)優(yōu)先級(jí)方式 中斷源輪流處于最高優(yōu)先級(jí),即自動(dòng)中斷優(yōu)先級(jí)循環(huán)中斷源輪流處于最高優(yōu)先級(jí),即自動(dòng)中斷優(yōu)先級(jí)循環(huán) 初始優(yōu)先級(jí)順序可用編程改變初始優(yōu)先級(jí)順序可用編程改變 某中斷請(qǐng)求某中斷請(qǐng)求IRi被處理后,被處理后

28、,其優(yōu)先級(jí)別自動(dòng)降為最低,原來(lái)比它其優(yōu)先級(jí)別自動(dòng)降為最低,原來(lái)比它低一級(jí)的中斷上升為最高級(jí)低一級(jí)的中斷上升為最高級(jí) IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低級(jí)最低級(jí)最高級(jí)最高級(jí)最高級(jí)最高級(jí)最低級(jí)最低級(jí)ISR內(nèi)容內(nèi)容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服務(wù)結(jié)束以前的服務(wù)結(jié)束以前0101000001000000IR4的服務(wù)結(jié)束以后的服務(wù)結(jié)束以后ISRi27(1)中斷優(yōu)先方式與中斷嵌套(續(xù))中斷優(yōu)先方式與中斷嵌套(續(xù))中斷嵌套中斷嵌套方式方式 在中斷處理過(guò)程中允許被更高優(yōu)先級(jí)的事件所中斷稱為中斷嵌套。在中斷處理過(guò)程中允許被更高優(yōu)先級(jí)的事

29、件所中斷稱為中斷嵌套。8259A有兩種中斷嵌套方式:有兩種中斷嵌套方式:普通全嵌套方式(默認(rèn)方式)普通全嵌套方式(默認(rèn)方式) 中斷正被處理時(shí),只有更高優(yōu)先級(jí)的事件可以打斷當(dāng)前的中中斷正被處理時(shí),只有更高優(yōu)先級(jí)的事件可以打斷當(dāng)前的中斷處理過(guò)程而被服務(wù)。斷處理過(guò)程而被服務(wù)。特殊全嵌套方式特殊全嵌套方式 中斷正被處理時(shí),允許同級(jí)或更高優(yōu)先級(jí)的事件可以打斷當(dāng)中斷正被處理時(shí),允許同級(jí)或更高優(yōu)先級(jí)的事件可以打斷當(dāng)前的中斷處理過(guò)程而被服務(wù)。前的中斷處理過(guò)程而被服務(wù)。注注: 特殊全嵌套僅用于多個(gè)特殊全嵌套僅用于多個(gè)8259A級(jí)連時(shí)的主級(jí)連時(shí)的主8259A,而,而不不能用能用于從屬于從屬8259A或單或單825

30、9A系統(tǒng)。系統(tǒng)。28D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:從片的從片的INT被主片封被主片封鎖,故更鎖,故更高高級(jí)別的級(jí)別的IR0-IR2中斷也無(wú)法中斷也無(wú)法得到響應(yīng)得到響應(yīng)特殊嵌套方式:特殊嵌套方式:因主片不封鎖從片的因主片不封鎖從片的INT,故級(jí)別高的,故級(jí)別高的IR0-IR2中斷可以得到響應(yīng)。中斷可以得到響應(yīng)。( (但但I(xiàn)R3-IR7仍被本從仍被本從片封鎖片封鎖) )C.假定假定IR3發(fā)生中發(fā)生中斷斷,并獲得服務(wù)并獲得服務(wù)一般嵌套方式:一般嵌套方式:IR4的中斷被服務(wù)的中斷被服務(wù)時(shí),這些中斷將時(shí),這些中斷將被封鎖。被封鎖。B.特殊嵌

31、套方式:特殊嵌套方式:IR4的中斷被服的中斷被服務(wù) 時(shí) , 只 封 鎖務(wù) 時(shí) , 只 封 鎖IR5-IR7。A.INTE.從從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7n一般全嵌套方式與特殊全嵌套方式的區(qū)別一般全嵌套方式與特殊全嵌套方式的區(qū)別 去去CPU29(2)中斷結(jié)束處理方式)中斷結(jié)束處理方式當(dāng)某一當(dāng)某一IRi中斷被服務(wù)時(shí),中斷被服務(wù)時(shí),ISR中的相應(yīng)位中的相應(yīng)位ISRi=1。當(dāng)服務(wù)結(jié)束后,。當(dāng)服務(wù)結(jié)束后,則必須清零該則必須清零該ISRi位。使位。使ISRi=0是通過(guò)向是通過(guò)向8259A發(fā)出中斷結(jié)束命令發(fā)出中斷結(jié)束命令(EOI命令)實(shí)現(xiàn)的。命令)實(shí)現(xiàn)的。三種三種EOI

32、命令命令 自動(dòng)自動(dòng)EOI(AEOI)(自動(dòng)(自動(dòng)EOI方式)方式) 非指定非指定EOI(NSEOI)(正常(正常EOI方式)方式) 指定指定EOI(SEOI)(特殊(特殊EOI方式方式) AEOI:在第在第2個(gè)個(gè)INTA結(jié)束時(shí),由結(jié)束時(shí),由8259A使使ISRi自動(dòng)復(fù)位;自動(dòng)復(fù)位; 因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷不能用于中斷嵌套方式嵌套方式30(2)中斷結(jié)束處理方式)中斷結(jié)束處理方式 SEOI:由:由CPU發(fā)出一條發(fā)出一條SEOI命命令,該令,該EOI命令中指出了所要復(fù)命令中指出了所要復(fù)位的位的ISR的位號(hào)。的位號(hào)。 用于特殊屏蔽方

33、式用于特殊屏蔽方式 NSEOI:由由CPU發(fā)出正常發(fā)出正常EOI命命令,該令,該EOI命令使命令使ISRi=1的位中的位中優(yōu)先級(jí)最高的那一位復(fù)位。優(yōu)先級(jí)最高的那一位復(fù)位。 用于普通全嵌套方式用于普通全嵌套方式特殊全嵌套方式下的特殊全嵌套方式下的EOI處理處理只有當(dāng)從只有當(dāng)從PIC的中斷全部的中斷全部處理完后,才能向主處理完后,才能向主PIC發(fā)發(fā)EOI命令命令I(lǐng)RET中斷服務(wù)程序向從PIC發(fā)EOI命令讀從PIC的ISR全0?向主PIC發(fā)EOI命令Y恢復(fù)現(xiàn)場(chǎng)N31(3)屏蔽中斷源的方式)屏蔽中斷源的方式IMR屏蔽字決定了屏蔽字決定了允許或禁止允許或禁止某位某位IRi所對(duì)應(yīng)的中斷所對(duì)應(yīng)的中斷:IMi

34、=1 禁禁止,止, IMi=0 允許。允許。特殊屏蔽方式:特殊屏蔽方式: 提供了允許較低優(yōu)先級(jí)的中斷能夠得到響應(yīng)的特殊手段。提供了允許較低優(yōu)先級(jí)的中斷能夠得到響應(yīng)的特殊手段。 原理原理:假定當(dāng)前正在處理:假定當(dāng)前正在處理IR6,先,先進(jìn)入特殊屏蔽方式,然后進(jìn)入特殊屏蔽方式,然后設(shè)置設(shè)置IM6=1。這時(shí),除。這時(shí),除IR6外的所有中斷請(qǐng)求均能得到響應(yīng)。外的所有中斷請(qǐng)求均能得到響應(yīng)。 特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。命令結(jié)束中斷。32(4)中斷觸發(fā)方式)中斷觸發(fā)方式邊沿觸發(fā):邊沿觸發(fā):IRi出現(xiàn)上升沿表示有中斷請(qǐng)求出現(xiàn)上升沿表示有中斷請(qǐng)求 電平觸發(fā):電平觸發(fā):IRi出

35、現(xiàn)高電平表示有中斷請(qǐng)求出現(xiàn)高電平表示有中斷請(qǐng)求在第在第1個(gè)個(gè)INTA#結(jié)束前,結(jié)束前,IRi必須保持高電平必須保持高電平 (5)級(jí)聯(lián)工作方式)級(jí)聯(lián)工作方式單片單片8259A可支持可支持8個(gè)中斷源;個(gè)中斷源;采用多片采用多片8259A級(jí)連,可最多支持級(jí)連,可最多支持64個(gè)中斷源。個(gè)中斷源。n片片8259A可支持可支持7n+1個(gè)中斷源;個(gè)中斷源;級(jí)連時(shí)只能有一片級(jí)連時(shí)只能有一片8259A為主片,其余的均為從屬片;為主片,其余的均為從屬片;涉及到的涉及到的8259A引腳包括:引腳包括: CAS0-CAS2 SP/EN IRi INT33級(jí)連電路連接方法344、 8259A的編程使用的編程使用8259

36、A的控制命令分為:的控制命令分為: 初始化命令字初始化命令字ICW ICW1ICW4 向向8259A寫入寫入ICW的過(guò)程稱為的過(guò)程稱為初始化編程初始化編程 操作命令字操作命令字OCW OCW1OCW3 向向8259A寫入寫入OCW的過(guò)程稱為的過(guò)程稱為操作方式編程操作方式編程35(1)8259A內(nèi)部寄存器的尋址方法內(nèi)部寄存器的尋址方法CSRDWRA0D4D3讀寫操作010000寫寫OCW2寫寫OCW3寫寫ICW1寫寫ICW2,ICW3,ICW4,OCW1(順序?qū)懭腠樞驅(qū)懭?00101x1xx00101xx讀出讀出IRR、ISR讀出讀出IMRn需要需要CS#、A0、RD#、WR#和和D4、D3的配

37、合的配合n內(nèi)部寄存器的訪問(wèn)方法如下表:內(nèi)部寄存器的訪問(wèn)方法如下表: 36(2)8259A的初始化順序的初始化順序 8259的初始化流程如圖的初始化流程如圖 注意次序不可顛倒注意次序不可顛倒 寫寫ICW1寫寫ICW2級(jí)連?級(jí)連?寫寫ICW3需需ICW4?寫寫ICW4NNYY(3)8259A的控制命令字的控制命令字初始化初始化8259A必須從必須從ICW1開(kāi)始開(kāi)始 寫寫ICW1意味著重新初始化意味著重新初始化8259A 寫入寫入ICW1后,后,8259A的狀態(tài)如下:的狀態(tài)如下: 清除清除ISR和和IMR(全全0); 將中斷優(yōu)先級(jí)設(shè)成初始狀態(tài):將中斷優(yōu)先級(jí)設(shè)成初始狀態(tài):IR0最高,最高,IR7最低;

38、最低; 設(shè)定為一般屏蔽方式;設(shè)定為一般屏蔽方式; 采用非自動(dòng)中斷結(jié)束方式;采用非自動(dòng)中斷結(jié)束方式; 狀態(tài)讀出邏輯預(yù)置為讀狀態(tài)讀出邏輯預(yù)置為讀IRR。37ICW1初始化字初始化字LTIM: 觸發(fā)方式觸發(fā)方式 =1 高電平觸發(fā)高電平觸發(fā) =0 上升沿觸發(fā)上升沿觸發(fā)SNGL: 級(jí)連控制級(jí)連控制 =1 單片單片 =0 級(jí)連級(jí)連IC4: ICW4控制控制 =1 要寫要寫ICW4 =0 不寫不寫ICW4(默認(rèn)(默認(rèn)ICW4為全為全0)A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC438ICW2中斷向量碼中斷向量碼T7T3: 中斷向量碼的高中斷向量碼的高

39、5位位T2T0: 最低最低3位為中斷源的序號(hào)位為中斷源的序號(hào)IRn 000111分別對(duì)應(yīng)分別對(duì)應(yīng)IR0IR7 由由8259A根據(jù)中斷源的序號(hào)自動(dòng)填入根據(jù)中斷源的序號(hào)自動(dòng)填入 例如:例如:若若ICW2命令字為命令字為48H=0100 1000B,則,則IR0的中斷向量碼的中斷向量碼為為48H=0100 1000B,IR7的中斷向量碼為的中斷向量碼為4FH=0100 1111B,等等。,等等。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x x39ICW3級(jí)連控制字級(jí)連控制字 主片的級(jí)聯(lián)控制字主片的級(jí)聯(lián)控制字 Si=1 對(duì)應(yīng)對(duì)應(yīng)IRi線上連接了從片線上

40、連接了從片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0從片的級(jí)聯(lián)控制字從片的級(jí)聯(lián)控制字 ID2ID0 標(biāo)識(shí)碼,說(shuō)明本從片連接到主片的哪個(gè)標(biāo)識(shí)碼,說(shuō)明本從片連接到主片的哪個(gè)IR引腳上。引腳上。 000111分別對(duì)應(yīng)分別對(duì)應(yīng)IR0IR7。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID040ICW3級(jí)連控制字(續(xù))級(jí)連控制字(續(xù))ICW3必須與主從片的連接關(guān)系一致:必須與主從片的連接關(guān)系一致:例如,主片的例如,主片的IR4與從片的與從片的INT線連接,則主片的線連接,則主片的ICW3=10

41、H,從片的從片的ICW3=04H。中斷響應(yīng)時(shí),主片通過(guò)級(jí)連線中斷響應(yīng)時(shí),主片通過(guò)級(jí)連線CAS2-CAS0送出被允許中斷的從送出被允許中斷的從片標(biāo)識(shí)碼,各從片用自己的片標(biāo)識(shí)碼,各從片用自己的ICW3與與CAS2-CAS0比較,二者一比較,二者一致的從片才可發(fā)送中斷向量碼。致的從片才可發(fā)送中斷向量碼。41ICW4中斷結(jié)束方式字中斷結(jié)束方式字 SFNM: 特殊全嵌套特殊全嵌套1 特殊全嵌套方式特殊全嵌套方式0 一般全嵌套方式一般全嵌套方式 AEOI: 自動(dòng)自動(dòng)EOI1 自動(dòng)自動(dòng)EOI方式方式0 非自動(dòng)非自動(dòng)EOI方式方式A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNMBU

42、F M/S AEOI 1 BUF: 緩沖方式緩沖方式 M/S: 主主/從緩沖選擇從緩沖選擇BUF M/S 1 1 緩沖方式緩沖方式/主主PIC 1 0 緩沖方式緩沖方式/從從PIC 0 x 非緩沖方式非緩沖方式/正常正常42(4)8259A的操作命令字的操作命令字OCW OCW用于設(shè)置用于設(shè)置8259的工作狀態(tài)的工作狀態(tài)在初始化后寫入在初始化后寫入OCW的寫入順序可任意的寫入順序可任意寫入地址要求:寫入地址要求: OCW1必須寫入奇地址端口必須寫入奇地址端口(A0=1) OCW2,OCW3必須寫入偶地址端口必須寫入偶地址端口(A0=0) 43OCW1中斷屏蔽字中斷屏蔽字 Mi=1 中斷請(qǐng)求線中

43、斷請(qǐng)求線IRi被屏蔽被屏蔽(不允許中斷不允許中斷) =0 允許該允許該IRi中斷中斷 OCW1將寫入將寫入IMR寄存器。寄存器。A0=1時(shí)讀時(shí)讀OCW1可讀出設(shè)置的可讀出設(shè)置的IMR內(nèi)容。內(nèi)容。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M044OCW2中斷結(jié)束和優(yōu)先級(jí)循環(huán)中斷結(jié)束和優(yōu)先級(jí)循環(huán) L2L0: 優(yōu)先級(jí)編碼優(yōu)先級(jí)編碼R: 優(yōu)先級(jí)自動(dòng)循環(huán)優(yōu)先級(jí)自動(dòng)循環(huán)SL: 指定優(yōu)先級(jí)指定優(yōu)先級(jí)EOI: 結(jié)束中斷命令結(jié)束中斷命令 A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0R SL EOI0

44、0 1 非指定非指定EOI命令命令(NSEOI), 全嵌套方式全嵌套方式0 1 1 指定指定EOI命令命令(SEOI),全嵌,全嵌 套方式,按套方式,按L2-L0編碼復(fù)位編碼復(fù)位ISR 1 0 1 NSEOI 命令,優(yōu)先級(jí)自動(dòng)循環(huán)命令,優(yōu)先級(jí)自動(dòng)循環(huán)1 0 0 自動(dòng)自動(dòng)EOI,設(shè)置優(yōu)先級(jí)自動(dòng)循環(huán),設(shè)置優(yōu)先級(jí)自動(dòng)循環(huán)0 0 0 自動(dòng)自動(dòng)EOI,取消優(yōu)先級(jí)自動(dòng)循環(huán),取消優(yōu)先級(jí)自動(dòng)循環(huán) (固定優(yōu)先級(jí)固定優(yōu)先級(jí)) 1 1 SEOI命令,按命令,按L2-L0編碼循環(huán)編碼循環(huán) 優(yōu)先級(jí)優(yōu)先級(jí)(L2-L0設(shè)為最低優(yōu)先級(jí)設(shè)為最低優(yōu)先級(jí))1 1 0 按按L2-L0編碼循環(huán)優(yōu)先級(jí)編碼循環(huán)優(yōu)先級(jí)(L2-L0 設(shè)為最低

45、優(yōu)先級(jí)設(shè)為最低優(yōu)先級(jí)) 45OCW3屏蔽方式和讀出控制字屏蔽方式和讀出控制字 ESMM: 允許使能特殊屏蔽方式允許使能特殊屏蔽方式SMM: 特殊屏蔽方式特殊屏蔽方式ESMM SMM1 1 特殊屏蔽方式置位特殊屏蔽方式置位1 0 特殊屏蔽方式復(fù)位特殊屏蔽方式復(fù)位0 x 非特殊屏蔽方式非特殊屏蔽方式P(Polling): =1 查詢方式查詢方式 =0 非查詢方式非查詢方式A0 D7D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P RR RISRR: 讀寄存器讀寄存器RIS: ISR/IRR選擇選擇RR RIS1 1 讀讀ISR1 0 讀讀IRR0 x 無(wú)效無(wú)效46OC

46、W3(續(xù))(續(xù))查詢方式允許查詢方式允許8259A不工作于中斷方式,而是以查詢方式工作。不工作于中斷方式,而是以查詢方式工作。 CPU先寫一個(gè)先寫一個(gè)D2=1的的OCW3,再對(duì)同一地址讀入,即可得到,再對(duì)同一地址讀入,即可得到如下?tīng)顟B(tài)字節(jié):如下?tīng)顟B(tài)字節(jié): I x x x x R2 R1 R0 I=1表示有中斷請(qǐng)求,中斷請(qǐng)求號(hào)為表示有中斷請(qǐng)求,中斷請(qǐng)求號(hào)為R2-R0 此查詢步驟可反復(fù)執(zhí)行,以響應(yīng)多個(gè)同時(shí)發(fā)生此查詢步驟可反復(fù)執(zhí)行,以響應(yīng)多個(gè)同時(shí)發(fā)生 的中斷。的中斷。 讀讀IRR/ISR:寫入此命令后,隨后再對(duì)同一地址讀,即可得到:寫入此命令后,隨后再對(duì)同一地址讀,即可得到IRR或或ISR的內(nèi)容。的

47、內(nèi)容。475、8259A編程舉例編程舉例按以下要求初始化按以下要求初始化8259A: 接口地址為接口地址為20H和和21H; 中斷為上升沿觸發(fā);單片中斷為上升沿觸發(fā);單片8259A;不寫;不寫ICW4; 與與IR0-IR3對(duì)應(yīng)的中斷向量碼為對(duì)應(yīng)的中斷向量碼為08H-0BH; IR4-IR7不使用。不使用。根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下:根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下: ICW1 = 0001 0010 = 12H ICW2 = 08H 中斷向量碼中斷向量碼 OCW1 = 1111 0000 = 0F0H 中斷屏蔽字中斷屏蔽字 48 5、8259A編程舉例(續(xù))編程舉例(續(xù))初始化程

48、序如下:初始化程序如下:INIT8259A:MOVDX,20H;A0=0,寫,寫ICW1MOVAL,12H;上升沿觸發(fā),單片,不寫;上升沿觸發(fā),單片,不寫ICW4OUTDX,ALMOVDX,21H;A0=1,寫,寫ICW2,OCW1MOVAL,08H;ICW2OUTDX,ALMOVAL,0F0H;OCW1:屏蔽:屏蔽IR4-IR7OUTDX,AL49 特殊屏蔽例:特殊屏蔽例: CLI ;IR4中斷處理程序中斷處理程序CLIMOV AL,68H ;OCW3:0 1 1 0 1 0 0 0OUT 0C0H,AL ;設(shè)置特殊屏蔽方式;設(shè)置特殊屏蔽方式IN AL,0C2H OR AL,10H ;屏蔽;

49、屏蔽IR4;10H0001 0000OUT 0C2H,AL STI ;IR7請(qǐng)求,響應(yīng),返回請(qǐng)求,響應(yīng),返回50 CLIIN AL,0C2H ;讀出屏蔽字;讀出屏蔽字AND AL,0EFH ;EFH=1110 1111清除清除IMR4OUT 0C2H,ALMOV AL,48H ;OCW3:0 1 0 0 1 0 0 0OUT 0C0H,AL ;取消特殊屏蔽;取消特殊屏蔽STI ;繼續(xù);繼續(xù)IR4中斷服務(wù)中斷服務(wù)MOV AL,20H ;OCW2:0 0 1 0 0 0 0 0 (EOI)OUT 0C0,ALIRET516、 PC機(jī)中斷程序設(shè)計(jì)機(jī)中斷程序設(shè)計(jì)1)主程序)主程序保存原中斷向量保存原中

50、斷向量設(shè)置自己的中斷向量設(shè)置自己的中斷向量初始化堆棧指針初始化堆棧指針設(shè)置設(shè)置8259A的中斷屏蔽字(其他的已由操作系統(tǒng)設(shè)置)的中斷屏蔽字(其他的已由操作系統(tǒng)設(shè)置)STI2)中斷服務(wù)程序)中斷服務(wù)程序保存所用到的寄存器內(nèi)容保存所用到的寄存器內(nèi)容中斷服務(wù)程序主體中斷服務(wù)程序主體恢復(fù)進(jìn)入時(shí)保存的寄存器內(nèi)容恢復(fù)進(jìn)入時(shí)保存的寄存器內(nèi)容發(fā)發(fā)EOI命令(必要時(shí)可提前)命令(必要時(shí)可提前)STI(必要時(shí)可提前)(必要時(shí)可提前)IRET52中斷程序舉例中斷程序舉例PC機(jī)中主機(jī)中主8259A的的I/O地址為地址為20H和和21H,中斷向量碼為,中斷向量碼為08H;中斷請(qǐng)求從中斷請(qǐng)求從IR6引入,故引入,故中斷類

51、型號(hào)為中斷類型號(hào)為0EH;主程序如下:主程序如下:;保存原來(lái)的中斷向量;保存原來(lái)的中斷向量movah,35hmoval,0eh;中斷類型碼;中斷類型碼int21h;取原中斷向量(在;取原中斷向量(在es:bx中)中)movsave_ip,bx;保存原來(lái)的中斷向量;保存原來(lái)的中斷向量movsave_cs,es53;設(shè)置自己的中斷向量設(shè)置自己的中斷向量pushdsmovdx,offset my_intmovax,seg my_intmovds,ax;DS:DX的內(nèi)容為的內(nèi)容為my_int的首地址的首地址movah,25hmoval,0ehint21h ;設(shè)置自己的中斷向量;設(shè)置自己的中斷向量pop

52、ds;初始化堆棧指針初始化堆棧指針movsp,my_stack_top ;設(shè)置設(shè)置8259A的中斷屏蔽字的中斷屏蔽字inal,21handal,10111111b;開(kāi)放;開(kāi)放IR6中斷中斷out21h,alsti 54 子程序如下:子程序如下:my_int proc farpusha popamoval,20h;EOI命令,命令,00100000B out20h,al;寫;寫OCW2stiiretmy_int endp55實(shí)驗(yàn)安排(14周和16周) 周三上午周三上午08:3012:00 自動(dòng)化自動(dòng)化C072+C073(半半) 周四上午周四上午08:3012:00 自動(dòng)化自動(dòng)化C071+C073

53、(半半) 周四下午周四下午14:3018:00 生醫(yī)生醫(yī)C071+C072565.4 計(jì)數(shù)/定時(shí)接口5.4.1 基本概念基本概念計(jì)數(shù)定時(shí)接口電路需要討論的問(wèn)題:計(jì)數(shù)定時(shí)接口電路需要討論的問(wèn)題:1、計(jì)數(shù)容量、計(jì)數(shù)容量 2、計(jì)數(shù)頻率、計(jì)數(shù)頻率3、計(jì)數(shù)過(guò)程、計(jì)數(shù)過(guò)程4、輸出信號(hào)、輸出信號(hào)572、定時(shí)功能的實(shí)現(xiàn)方法、定時(shí)功能的實(shí)現(xiàn)方法:(1)軟件延時(shí))軟件延時(shí)利用微處理器執(zhí)行一個(gè)延時(shí)程序段實(shí)現(xiàn)利用微處理器執(zhí)行一個(gè)延時(shí)程序段實(shí)現(xiàn)不用硬件,但占用不用硬件,但占用CPU時(shí)間、定時(shí)精度不高,隨系統(tǒng)時(shí)鐘頻率改變時(shí)間、定時(shí)精度不高,隨系統(tǒng)時(shí)鐘頻率改變(2)不可編程的硬件定時(shí))不可編程的硬件定時(shí)采用分頻器、單穩(wěn)電路

54、或簡(jiǎn)易定時(shí)電路控制定時(shí)時(shí)間采用分頻器、單穩(wěn)電路或簡(jiǎn)易定時(shí)電路控制定時(shí)時(shí)間定時(shí)電路簡(jiǎn)單、定時(shí)時(shí)間可以在一定范圍改變定時(shí)電路簡(jiǎn)單、定時(shí)時(shí)間可以在一定范圍改變(3)可編程的硬件定時(shí))可編程的硬件定時(shí)軟件硬件相結(jié)合、用可編程定時(shí)器芯片構(gòu)成一個(gè)方便靈活的定時(shí)電路軟件硬件相結(jié)合、用可編程定時(shí)器芯片構(gòu)成一個(gè)方便靈活的定時(shí)電路具有多種工作方式、能夠輸出多種控制信號(hào)具有多種工作方式、能夠輸出多種控制信號(hào)585.4.2 計(jì)數(shù)/定時(shí)器 82531、 8253的結(jié)構(gòu)和工作原理 1 8253 圖 2-1 8253 的 引 腳 圖 GATE1 GATE2 OUT2 (M SB ) D0 OUT1 GND C S W R

55、2 3 4 OUT0 5 6 7 8 9 10 11 23 22 21 20 19 18 17 16 15 VCC D7 24 12 14 13 D6 D5 D4 D3 D2 D1 GATE0 R D A1 C LK1 C LK2 A0 C LK0 591)D0-D7:計(jì)算機(jī)總線;:計(jì)算機(jī)總線; :計(jì)算機(jī)寫命令:計(jì)算機(jī)寫命令OUT有效;有效; :計(jì)算機(jī)讀命令:計(jì)算機(jī)讀命令I(lǐng)N有效;有效; :由地址總線高位(比如:由地址總線高位(比如A2-A9)通過(guò))通過(guò)138譯碼器和與非門等組合而成譯碼器和與非門等組合而成WR_RD_CS_CS A1 A0I/O地址地址讀操作讀操作RD寫操作寫操作WR0 0

56、00 0 10 1 00 1 140H41H42H43H讀計(jì)數(shù)器讀計(jì)數(shù)器0讀計(jì)數(shù)器讀計(jì)數(shù)器1讀計(jì)數(shù)器讀計(jì)數(shù)器2無(wú)操作無(wú)操作寫計(jì)數(shù)器寫計(jì)數(shù)器0寫計(jì)數(shù)器寫計(jì)數(shù)器1寫計(jì)數(shù)器寫計(jì)數(shù)器2寫控制字寫控制字602)A0,A1:分別對(duì)應(yīng):分別對(duì)應(yīng)3個(gè)計(jì)數(shù)器和控制字寄存器;個(gè)計(jì)數(shù)器和控制字寄存器;3)三個(gè)獨(dú)立的十六位計(jì)數(shù)器:)三個(gè)獨(dú)立的十六位計(jì)數(shù)器:CPU可對(duì)其進(jìn)行工作方式設(shè)定、計(jì)數(shù)次可對(duì)其進(jìn)行工作方式設(shè)定、計(jì)數(shù)次數(shù)的預(yù)置。每當(dāng)對(duì)數(shù)的預(yù)置。每當(dāng)對(duì)CLK口的計(jì)數(shù)結(jié)束時(shí),口的計(jì)數(shù)結(jié)束時(shí),OUT口會(huì)有一個(gè)結(jié)束標(biāo)志。口會(huì)有一個(gè)結(jié)束標(biāo)志。GATE門控信號(hào),用于控制計(jì)數(shù)的進(jìn)行。門控信號(hào),用于控制計(jì)數(shù)的進(jìn)行。4)計(jì)數(shù)啟動(dòng):)

57、計(jì)數(shù)啟動(dòng):8253計(jì)數(shù)器的計(jì)數(shù)過(guò)程,可以直接用程序來(lái)啟動(dòng),也可以設(shè)計(jì)數(shù)器的計(jì)數(shù)過(guò)程,可以直接用程序來(lái)啟動(dòng),也可以設(shè)置成接在置成接在GATE口外部電路的信號(hào)啟動(dòng),分別稱為軟件啟動(dòng)和硬件啟動(dòng)。口外部電路的信號(hào)啟動(dòng),分別稱為軟件啟動(dòng)和硬件啟動(dòng)。預(yù)置寄存器預(yù)置寄存器OUT減減1計(jì)數(shù)器計(jì)數(shù)器輸出鎖存器輸出鎖存器GATECLK61計(jì)數(shù)器的計(jì)數(shù)器的3個(gè)引腳說(shuō)明:個(gè)引腳說(shuō)明:q CLK時(shí)鐘輸入信號(hào)時(shí)鐘輸入信號(hào)在計(jì)數(shù)過(guò)程中,此引腳上每輸入一個(gè)時(shí)鐘信號(hào)(在計(jì)數(shù)過(guò)程中,此引腳上每輸入一個(gè)時(shí)鐘信號(hào)(下降沿下降沿),計(jì)數(shù)器的計(jì)數(shù)),計(jì)數(shù)器的計(jì)數(shù)值減值減1q GATE門控輸入信號(hào)門控輸入信號(hào)控制計(jì)數(shù)器工作,可分成控制計(jì)數(shù)

58、器工作,可分成電平控制電平控制和和上升沿控制上升沿控制兩種類型兩種類型q OUT計(jì)數(shù)器輸出信號(hào)計(jì)數(shù)器輸出信號(hào)當(dāng)一次計(jì)數(shù)過(guò)程結(jié)束(計(jì)數(shù)值減為當(dāng)一次計(jì)數(shù)過(guò)程結(jié)束(計(jì)數(shù)值減為0),),OUT引腳上將產(chǎn)生一個(gè)輸出信號(hào)引腳上將產(chǎn)生一個(gè)輸出信號(hào)q計(jì)數(shù)初值存于預(yù)置寄存器;計(jì)數(shù)初值存于預(yù)置寄存器;q在計(jì)數(shù)過(guò)程中,減法計(jì)數(shù)器的值不斷遞減,在計(jì)數(shù)過(guò)程中,減法計(jì)數(shù)器的值不斷遞減,q而預(yù)置寄存器中的預(yù)置不變。而預(yù)置寄存器中的預(yù)置不變。q輸出鎖存器用于寫入鎖存命令時(shí),鎖定當(dāng)前計(jì)數(shù)值輸出鎖存器用于寫入鎖存命令時(shí),鎖定當(dāng)前計(jì)數(shù)值622、 8253的的編程(1)寫方式控制字寫方式控制字 計(jì)數(shù)器計(jì)數(shù)器讀寫格式讀寫格式工作方式工

59、作方式數(shù)制數(shù)制D7D6D5D4D3D2D1D00 二進(jìn)制二進(jìn)制1 十進(jìn)制十進(jìn)制00 計(jì)數(shù)器計(jì)數(shù)器001 計(jì)數(shù)器計(jì)數(shù)器110 計(jì)數(shù)器計(jì)數(shù)器211 非法非法00 計(jì)數(shù)器鎖存命計(jì)數(shù)器鎖存命令令 01 只讀寫低字節(jié)只讀寫低字節(jié)10 只讀寫高字節(jié)只讀寫高字節(jié)11 先讀寫低字節(jié)先讀寫低字節(jié) 后讀寫高字節(jié)后讀寫高字節(jié)000 方式方式0001 方式方式1010 方式方式2011 方式方式3100 方式方式4101 方式方式5控制字寫入控制字控制字寫入控制字I/O地址(地址(A1A011)633、 8253的工作方式的工作方式 (1)方式)方式0:計(jì)數(shù)結(jié)束中斷:計(jì)數(shù)結(jié)束中斷GATEOUTCLK 031244方式

60、方式0WR設(shè)設(shè)定定工工作作方方式式設(shè)設(shè)定定計(jì)計(jì)數(shù)數(shù)初初值值計(jì)計(jì)數(shù)數(shù)值值送送入入計(jì)計(jì)數(shù)數(shù)器器計(jì)計(jì)數(shù)數(shù)過(guò)過(guò)程程計(jì)計(jì)數(shù)數(shù)結(jié)結(jié)束束GATE=1 允許計(jì)數(shù);允許計(jì)數(shù);GATE=0/下降沿下降沿 禁止計(jì)數(shù)禁止計(jì)數(shù)CPU 寫計(jì)數(shù)器操作寫計(jì)數(shù)器操作 寫低字節(jié)后終止上次計(jì)數(shù),寫低字節(jié)后終止上次計(jì)數(shù), 寫高字節(jié)后開(kāi)始新的計(jì)數(shù)寫高字節(jié)后開(kāi)始新的計(jì)數(shù)64(2)方式)方式1:可編程單穩(wěn)脈沖:可編程單穩(wěn)脈沖設(shè)設(shè)定定工工作作方方式式設(shè)設(shè)定定計(jì)計(jì)數(shù)數(shù)初初值值硬硬件件啟啟動(dòng)動(dòng)計(jì)計(jì)數(shù)數(shù)值值送送入入計(jì)計(jì)數(shù)數(shù)器器計(jì)計(jì)數(shù)數(shù)過(guò)過(guò)程程計(jì)計(jì)數(shù)數(shù)結(jié)結(jié)束束GATEOUTCLK 031244方式方式1WR GATE=正跳變正跳變 1.啟動(dòng)計(jì)數(shù)啟動(dòng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論