《微處理器與接口技術(shù)》課件第5章 接口和中斷技術(shù)_第1頁
《微處理器與接口技術(shù)》課件第5章 接口和中斷技術(shù)_第2頁
《微處理器與接口技術(shù)》課件第5章 接口和中斷技術(shù)_第3頁
《微處理器與接口技術(shù)》課件第5章 接口和中斷技術(shù)_第4頁
《微處理器與接口技術(shù)》課件第5章 接口和中斷技術(shù)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

5.1 I/O接口技術(shù)5.1.1I/O接口概述1.I/O接口結(jié)構(gòu)接口之間交換的信息可以分為數(shù)據(jù)、狀態(tài)和控制三類。數(shù)據(jù)信息包括了數(shù)字量、模擬量和開關(guān)量;狀態(tài)信息反映了設(shè)備的工作狀態(tài),通過判斷狀態(tài)決定進(jìn)一步的操作;控制信息一般是微處理器發(fā)送給外設(shè),控制外設(shè)的工作過程。每個(gè)I/O接口內(nèi)部一般由這3類寄存器組成,這些寄存器稱為I/O端口,有端口地址與之對應(yīng),各類信息進(jìn)入不同的寄存器進(jìn)行處理。5.1 I/O接口技術(shù)5.1.1I/O接口概述2、I/O接口編址I/O地址指每個(gè)端口分配的一個(gè)地址,類似存儲(chǔ)單元分配的地址。因?yàn)橐粋€(gè)外部設(shè)備對應(yīng)一個(gè)或多個(gè)端口,所以有時(shí)也將I/O地址稱為外設(shè)地址。當(dāng)外設(shè)有多個(gè)端口時(shí),通常分配一塊連續(xù)的地址用于微處理器和外設(shè)訪問,這塊地址中最小地址稱為基地址。I/O地址有統(tǒng)一編址和獨(dú)立編址兩種方式。統(tǒng)一編址指I/O端口與存儲(chǔ)單元在同一個(gè)地址空間中進(jìn)行編址的方式。獨(dú)立編制指I/O地址空間和內(nèi)存地址空間是相互獨(dú)立的。5.1 I/O接口技術(shù)5.1.1I/O接口概述3、I/O接口尋址(1)在8086/8088系統(tǒng)中,外設(shè)端口地址空間是64KB,只使用低16位地址信號(hào)A15~A0譯碼,進(jìn)行外設(shè)端口的訪問。而內(nèi)存地址空間為1MB,使用全部地址信號(hào)完成內(nèi)存地址的訪問。對于只有一個(gè)I/O地址的外設(shè),通常A15~A0地址信號(hào)都參與譯碼,獲得外設(shè)的I/O地址;對于有若干個(gè)I/O地址的外設(shè),部分高位譯碼獲得外設(shè)的基地址,而低位地址用于確定外設(shè)中的某個(gè)端口。(2)當(dāng)8086/8088處理器處于最大模式,對I/O端口讀寫時(shí),要求控制信號(hào)(IOR)?或(IOW)?為低電平,對存儲(chǔ)器的讀寫時(shí),要求控制信號(hào)(MEMR)?或(MEMW)?為低電平控制信號(hào)。(3)8088/8086處理器的引腳IO/M?=1時(shí),表明正在對I/O端口進(jìn)行訪問,當(dāng)IO/M?=0時(shí),表明正在對外部設(shè)備進(jìn)行訪問。5.1 I/O接口技術(shù)5.1.2接口電路1、三態(tài)門接口74LS244是典型的三態(tài)輸出的緩沖器,引腳如圖所示。74LS244內(nèi)部由8個(gè)三態(tài)門構(gòu)成,兩個(gè)控制端E1和E2各控制4個(gè)三態(tài)門,當(dāng)一組控制端有效,這組的4個(gè)三態(tài)門導(dǎo)通,否則,則處于高阻狀態(tài)。三態(tài)門的這種“通斷”的特點(diǎn),可以作為輸入接口的控制。在作為輸入接口時(shí),輸入數(shù)據(jù)或狀態(tài)是要能夠保持的,例如開關(guān)狀態(tài)等。此外,74LS244還可以作為用于驅(qū)動(dòng)信號(hào)。對于數(shù)據(jù)的輸入,可以將兩個(gè)控制端并聯(lián)來控制8個(gè)三態(tài)門同時(shí)通斷,從而實(shí)現(xiàn)1個(gè)字節(jié)的讀取。對于狀態(tài)的輸入,可以連接8個(gè)開關(guān)或具有保持能力的外設(shè)。5.1 I/O接口技術(shù)5.1.2接口電路2、鎖存器接口輸出接口可以用D觸發(fā)器對輸出數(shù)據(jù)進(jìn)行鎖存,74LS273是典型的鎖存器,包含了8個(gè)D觸發(fā)器,其引腳如圖所示。D0~D7是數(shù)據(jù)輸入端,Q0~Q7是數(shù)據(jù)輸出端。引腳S為復(fù)位端,用于清除數(shù)據(jù),低電平有效。引腳CP為脈沖輸入端,在上升沿將輸入端輸入端的狀態(tài)鎖存在輸出端,保持到下一個(gè)脈沖上升沿。5.1 I/O接口技術(shù)5.1.2接口電路【例5-1】編寫程序讀取開關(guān)K0~K7的狀態(tài),并將狀態(tài)輸出到LED0~LED7,開關(guān)打開,點(diǎn)亮LED,開關(guān)閉合,熄滅LED,開關(guān)和LED共用地址1200H。MOV DX,1200HIN AL,DX ;讀取開關(guān)狀態(tài)OUT DX,AL ;輸出開關(guān)到LED5.2基本輸入輸出方式1.無條件傳送方式無條件傳輸方式是指數(shù)據(jù)傳輸過程中,微處理器不查詢或判斷外設(shè)的狀態(tài)而無條件進(jìn)行數(shù)據(jù)輸入輸出。這種傳輸方式的處理程序和接口電路都比較簡單,常用于數(shù)據(jù)隨時(shí)都可以被讀取的外設(shè),例如發(fā)光二極管、數(shù)碼管、開關(guān)、鍵盤、繼電器和和步進(jìn)電機(jī)等。對于數(shù)據(jù)量較少的應(yīng)用,無條件傳送是比較簡單實(shí)用的方式,但是為了保證數(shù)據(jù)傳送時(shí)外設(shè)都能處于準(zhǔn)備好的狀態(tài),通常不能頻繁進(jìn)行傳送。5.2基本輸入輸出方式2.查詢方式雖然無條件傳送方式能滿足數(shù)據(jù)交換的需求,但是,很多外設(shè)不是總處于“準(zhǔn)備好”或“空閑”的狀態(tài)。對于這類型的外設(shè),需要在數(shù)據(jù)傳送前查詢一下所處的狀態(tài),等到“準(zhǔn)備好”或“空閑”的狀態(tài)才傳送數(shù)據(jù),否則,就要等待。這種對外部設(shè)備狀態(tài)不斷查詢,根據(jù)外設(shè)的狀態(tài)進(jìn)行數(shù)據(jù)輸入和輸出的方式稱為查詢方式,或條件傳輸方式。為了實(shí)現(xiàn)查詢工作方式,外部設(shè)備除了需要傳送信息的數(shù)據(jù)端口,還需要一個(gè)提供狀態(tài)信息查詢的狀態(tài)端口。因此,查詢方式適用于與慢速、實(shí)時(shí)性要求不高的設(shè)備進(jìn)行數(shù)據(jù)交換。5.2基本輸入輸出方式3.中斷方式無條件和查詢兩種方式離不開8088/8086對外部設(shè)備的管理,在管理的過程中8088/8086不能執(zhí)行其他操作。為了提高工作效率,發(fā)揮快速的理的能力,因此,引入了中斷方式。中斷方式使不需要主動(dòng)處理外設(shè)的數(shù)據(jù)傳輸,在需要數(shù)據(jù)傳送時(shí),外設(shè)發(fā)出中斷請求,如果條件允許,在接到中斷請求后中斷當(dāng)前的程序,轉(zhuǎn)而執(zhí)行對應(yīng)的中斷服務(wù)子程序去處理外設(shè)的數(shù)據(jù)傳輸操作,在數(shù)據(jù)傳送結(jié)束后,6回到中斷的程序繼續(xù)執(zhí)行。這種方式使外設(shè)處于主動(dòng)地位,CPU處于被動(dòng)地位,在沒有中斷請求時(shí),CPU可以一直處理原有的工作,大大提高了利用率,同時(shí)也保證了對外設(shè)請求響應(yīng)的實(shí)時(shí)性。5.2基本輸入輸出方式4.直接存儲(chǔ)器存取方式由于無條件、查詢和中斷方式都離不開程序控制數(shù)據(jù)的輸入輸出,所以都稱為程序控制輸入輸出方式(PIO,ProgrammedInputandOutput)。為此,出現(xiàn)了不經(jīng)過微處理器,直接在存儲(chǔ)器和外設(shè)之間進(jìn)行數(shù)據(jù)交換的方式,即直接存儲(chǔ)器存?。―MA,DirectMemoryAccess)方式。采用DMA方式時(shí),微處理器放棄總線的控制,由DMA控制器(DMAC)及相關(guān)電路來控制存儲(chǔ)器與外設(shè)的數(shù)據(jù)交換,因此,數(shù)據(jù)傳輸速度取決于外設(shè)和內(nèi)存的速度,可以滿足高速外設(shè)數(shù)據(jù)傳輸?shù)男枨蟆?.3中斷概念及處理流程5.3.1中斷處理中斷指由于隨機(jī)事件使微處理器暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行處理該事件的服務(wù)程序,執(zhí)行完后,返回繼續(xù)執(zhí)行被暫停的程序的過程。在外部設(shè)備產(chǎn)生中斷的時(shí)候,8088/8086將PC中存儲(chǔ)的下一條執(zhí)行指令壓入堆棧保存并跳轉(zhuǎn)到中斷服務(wù)子程序。當(dāng)處理完中斷響應(yīng)后,從堆棧中恢復(fù)該條指令繼續(xù)執(zhí)行,這條指令稱為斷點(diǎn)。將引起中斷的事件稱為“中斷源”,分為內(nèi)部中斷源和外部中斷源兩類。5.3中斷概念及處理流程5.3.1中斷處理8088/8086中斷處理的過程可以分為中斷請求、中斷識(shí)別、中斷響應(yīng)、中斷處理及中斷返回5個(gè)步驟:1.中斷請求外設(shè)需要8088/8086處理事件時(shí),發(fā)出邊沿或電平觸發(fā)的中斷請求信號(hào)。通常對于能夠?qū)崟r(shí)響應(yīng)的中斷,采用邊沿觸發(fā),對不能實(shí)時(shí)響應(yīng)的中斷,采用電平觸發(fā),避免中斷請求信號(hào)會(huì)丟失。在8088/8086系統(tǒng)中,不可屏蔽中斷信號(hào)引腳NMI采用邊沿觸發(fā),可屏蔽中斷信號(hào)引腳INTR采用電平觸發(fā),INTR的中斷請求信號(hào)應(yīng)具有保持能力,維持到請求被響應(yīng)后,INTR信號(hào)及時(shí)撤除以避免多次響應(yīng)。5.3中斷概念及處理流程5.3.1中斷處理2.中斷識(shí)別考慮到中斷事件的產(chǎn)生是隨機(jī)的,存在多個(gè)中斷源同時(shí)發(fā)出中斷請求的情況,所以,必須根據(jù)中斷源的重要性給中斷源一個(gè)優(yōu)先級(jí)別,8088/8086優(yōu)先處理高級(jí)別中斷源的請求,再響應(yīng)低級(jí)別中斷源的請求。識(shí)別中斷事件及其判定優(yōu)先順序稱為中斷識(shí)別或中斷判優(yōu),有軟件和硬件兩種方法。軟件識(shí)別中斷源指由軟件判別各中斷源的優(yōu)先順序,需要INTR信號(hào)與數(shù)據(jù)總線配合處理。硬件識(shí)別中斷源是指采用硬件電路或中斷控制器來判別各中斷源的優(yōu)先順序。5.3中斷概念及處理流程5.3.1中斷處理4.中斷處理①保護(hù)現(xiàn)場:因?yàn)榧拇嫫鞯膬?nèi)容在中斷前后需要保持一致,如果中斷服務(wù)程序中用到相關(guān)的寄存器,需要在處理程序開頭將這些寄存器中的內(nèi)容保護(hù)起來,這稱為保護(hù)現(xiàn)場,然后,在處理程序末尾恢復(fù)這些寄存器的內(nèi)容,這稱為即恢復(fù)現(xiàn)場。②打開中斷:在響應(yīng)中斷時(shí)會(huì)自動(dòng)將IF置零,從而使屏蔽中斷,如果允許高級(jí)中斷請求能夠響應(yīng),形成中斷嵌套,則需要將IF置為1。③執(zhí)行中斷處理:不同中斷源的需要執(zhí)行不同的中斷服務(wù)程序。中斷服務(wù)程序不宜過長,減少中斷處理停留的時(shí)間,否則,會(huì)影響實(shí)時(shí)處理其它其中斷源的。④關(guān)閉中斷:中斷服務(wù)程序執(zhí)行完后,在返回原程序之前,為了確保正確恢復(fù)現(xiàn)場,避免在恢復(fù)過程中對高優(yōu)先級(jí)的中斷響應(yīng),需要關(guān)閉CPU的中斷。⑤恢復(fù)現(xiàn)場:把在步驟(1)中壓入堆棧的寄存器內(nèi)容按相反順序從出棧,使寄存器恢復(fù)響應(yīng)中斷前的狀態(tài)。5.3中斷概念及處理流程5.3.1中斷處理3.中斷響應(yīng)中斷源識(shí)別后,發(fā)出請求的中斷源中優(yōu)先級(jí)最高的中斷輸入到8088/8086的NMI或INTR引腳上,但是8088/8086并不是隨時(shí)都可以對中斷請求進(jìn)行響應(yīng)。8088/8086可以響應(yīng)中斷時(shí),除了要向中斷源發(fā)出應(yīng)答信號(hào),還要進(jìn)行如下處理:(1)將狀態(tài)標(biāo)志寄存器FLAGS壓入堆棧,保護(hù)硬件現(xiàn)場;(2)將斷點(diǎn)的段基地址和偏移地址壓入堆棧,保護(hù)斷點(diǎn);(3)獲得中斷服務(wù)程序入口。5.3中斷概念及處理流程5.3.1中斷處理4.中斷處理①保護(hù)現(xiàn)場:因?yàn)榧拇嫫鞯膬?nèi)容在中斷前后需要保持一致,如果中斷服務(wù)程序中用到相關(guān)的寄存器,需要在處理程序開頭將這些寄存器中的內(nèi)容保護(hù)起來,這稱為保護(hù)現(xiàn)場,然后,在處理程序末尾恢復(fù)這些寄存器的內(nèi)容,這稱為即恢復(fù)現(xiàn)場。②打開中斷:在響應(yīng)中斷時(shí)會(huì)自動(dòng)將IF置零,從而使屏蔽中斷,如果允許高級(jí)中斷請求能夠響應(yīng),形成中斷嵌套,則需要將IF置為1。③執(zhí)行中斷處理:不同中斷源的需要執(zhí)行不同的中斷服務(wù)程序。中斷服務(wù)程序不宜過長,減少中斷處理停留的時(shí)間,否則,會(huì)影響實(shí)時(shí)處理其它其中斷源的。④關(guān)閉中斷:中斷服務(wù)程序執(zhí)行完后,在返回原程序之前,為了確保正確恢復(fù)現(xiàn)場,避免在恢復(fù)過程中對高優(yōu)先級(jí)的中斷響應(yīng),需要關(guān)閉CPU的中斷。⑤恢復(fù)現(xiàn)場:把在步驟(1)中壓入堆棧的寄存器內(nèi)容按相反順序從出棧,使寄存器恢復(fù)響應(yīng)中斷前的狀態(tài)。5.3中斷概念及處理流程5.3.1中斷處理5.中斷返回中斷返回指完成中斷服務(wù)程序,返回被中斷程序的過程。為了能正確返回到原斷點(diǎn)處,在8086/8088的中斷服務(wù)程序的最后放置一條中斷返回指令I(lǐng)RET,中斷返回指令的作用實(shí)際上是恢復(fù)斷點(diǎn),也就是保護(hù)斷點(diǎn)的逆過程。5.3中斷概念及處理流程5.3.28086/8088中斷系統(tǒng)8086/8088的中斷系統(tǒng)可以處理256種中斷,每種中斷都有一個(gè)0~255中斷類型碼,根據(jù)中斷類型碼可以識(shí)別不同的中斷源,來自8088/8086外部的中斷源稱為外部中斷,來自8088/8086內(nèi)部的中斷源稱為內(nèi)部中斷,如所示。5.3中斷概念及處理流程5.3.28086/8088中斷系統(tǒng)1.內(nèi)部中斷內(nèi)部中斷指由于8088/8086內(nèi)部執(zhí)行程序出現(xiàn)異常產(chǎn)生的中斷,因?yàn)檫@類中斷與外部硬件電路無關(guān),也稱為軟件中斷,有5種類型。除法錯(cuò)中斷(0型中斷)單步中斷(1型中斷)斷點(diǎn)中斷(3型中斷)溢出中斷(4型中斷)自定義中斷5.3中斷概念及處理流程5.3.28086/8088中斷系統(tǒng)2.外部中斷外部中斷是指由外部硬件或接口產(chǎn)生的中斷,也稱為硬件中斷,8086/8088為非屏蔽中斷和可屏蔽中斷分別提供引腳NMI和INTR輸入中斷信號(hào)。(1) 非屏敲中斷非屏蔽中斷常用于處理掉電、停機(jī)等緊急情況或重大故障,通過在NMI引腳上輸入一個(gè)上升沿觸發(fā)信號(hào)通知8088/8086,類型碼為2。當(dāng)外部出現(xiàn)非屏蔽中斷,微處理器完成當(dāng)前指令后立即進(jìn)行中斷處理。(2) 屏蔽中斷可屏蔽中斷是指受IF標(biāo)志位影響,可以被屏蔽的中斷??善帘沃袛嗤ㄟ^在INTR引腳上輸入一個(gè)高電平信號(hào)通知8088/8086,當(dāng)IF為1時(shí),CPU可以響應(yīng)可屏蔽中斷源產(chǎn)生的請求,當(dāng)IF為0時(shí),8088/8086不響應(yīng)任何可屏蔽中斷源產(chǎn)生的請求。5.3中斷概念及處理流程5.3.28086/8088中斷系統(tǒng)3.中斷向量表在8086/8088的中斷系統(tǒng)中,所有256種中斷源都有中斷類型碼,長度為一個(gè)字節(jié)。根據(jù)類型碼可以找到中斷服務(wù)子程序的入口地址,這個(gè)入口地址就是中斷向量。在8086/8088系統(tǒng)中,中斷向量存放在內(nèi)存中00000H~003FFH的區(qū)域中,這個(gè)表稱為中斷向量表,中斷向量按照中斷類型碼順序存放,如圖5-7所示。每個(gè)中斷向量長度為4字節(jié),低位地址2個(gè)字節(jié)存放入口地址的偏移量,高位地址2字節(jié)存放段地址。根據(jù)類型碼計(jì)算中斷向量地址的公式為:中斷向量在表中的存放地址=n×4。例如,類型碼20H的中斷向量存放在4×20H=0080H開始的4個(gè)字節(jié)單元中,然后,將0080H和0081H內(nèi)存單元的內(nèi)容裝入IP,0082H和0083H內(nèi)存單元的內(nèi)容裝入CS,8088/8086就可以轉(zhuǎn)入類型碼20H的中斷服務(wù)子程序。5.3中斷概念及處理流程5.3.28086/8088中斷系統(tǒng)4.中斷處理過程(1)內(nèi)部中斷響應(yīng)過程。內(nèi)部中斷沒有INTA信號(hào)的響應(yīng)周期,也不會(huì)被IF位屏蔽,而且具有可預(yù)測性。內(nèi)部中斷的類型碼不需要從外部輸入,由指令給定或者硬件自動(dòng)形成。獲得類型碼后的處理過程如下:①類型碼乘以4獲得中斷向量的地址;②保護(hù)硬件現(xiàn)場,將狀態(tài)標(biāo)志寄存器壓棧;③IF和TF置零,屏蔽新中斷;④保存斷點(diǎn);⑤根據(jù)中斷向量地址,將中斷服務(wù)子程序的入口地址送IP和CS,轉(zhuǎn)入中斷服務(wù)子程序。5.3中斷概念及處理流程5.3.28086/8088中斷系統(tǒng)4.中斷處理過程(2)外部中斷響應(yīng)過程外部中斷分為非屏蔽和可屏蔽兩種。非屏蔽中斷響應(yīng)與NMI中斷和內(nèi)部中斷類似,不受IF標(biāo)志的屏蔽,沒有中斷響應(yīng)周期,也不用給出類型碼,自動(dòng)按類型碼2計(jì)算中斷向量地址,其后的處理過程和內(nèi)部中斷相同。可屏蔽中斷響應(yīng)必須滿足一定條件,當(dāng)發(fā)出請求信號(hào)時(shí),如果CPU的IF位為1,沒有屏蔽中斷,同時(shí),沒有內(nèi)部中斷、非可屏蔽中斷及總線請求,則CPU響應(yīng)該中斷。5.3中斷概念及處理流程5.3.28086/8088中斷系統(tǒng)4.中斷處理過程5.4中斷控制器8259A5.4.18259A的引腳及內(nèi)部結(jié)構(gòu)8259A是Intel公司的可編程中斷控制器(ProgrammableInterruptController)芯片,用于管理8086/8088系統(tǒng)的外部中斷,具有中斷優(yōu)先級(jí)判斷,提供類型碼,屏蔽中斷等功能。單片8259A可管理8個(gè)中斷源,多片可以進(jìn)行級(jí)聯(lián),9片8259A可以擴(kuò)展成為兩級(jí)64個(gè)中斷源的隔離。8259A有多種工作方式,可以通過編程進(jìn)行設(shè)置。5.4中斷控制器8259A

5.4中斷控制器8259A

5.4中斷控制器8259A5.4.18259A的引腳及內(nèi)部結(jié)構(gòu)2.8259A的內(nèi)部結(jié)構(gòu)5.4中斷控制器8259A5.4.28259A的工作方式8259A上電或復(fù)位后,需要進(jìn)行初始化指定工作方式,完成后,8259A處于就緒狀態(tài)。當(dāng)出現(xiàn)中斷請求后,8259A的處理過程如下:如果IR0~IR7上出現(xiàn)有效的中斷請求信號(hào),IRR對應(yīng)的位置1。如果中斷請求沒有被屏蔽,則通過INT引腳向8088/8086的INTR發(fā)出中斷請求信號(hào)。如果8088/8086響應(yīng)該中斷請求,發(fā)出兩個(gè)(INTA)?應(yīng)答信號(hào)。8259A接收到第一個(gè)(INTA)?脈沖,將ISR寄存器內(nèi)優(yōu)先級(jí)最高的中斷源對應(yīng)的位置1,并復(fù)位對應(yīng)的IRR中的位。當(dāng)接收到第二個(gè)(INTA)?脈沖時(shí),8259A把選定的中斷源所對應(yīng)的類型碼發(fā)送給8088/8086。根據(jù)類型碼從中斷向量表獲得中斷服務(wù)子程序的入口地址,并執(zhí)行相應(yīng)的中斷處理。如果8259A處于自動(dòng)中斷結(jié)束方式,在第二個(gè)(INTA)?脈沖結(jié)束時(shí),ISR寄存器中相應(yīng)的位自動(dòng)置0。處于非自動(dòng)中斷結(jié)束方式時(shí),在中斷服務(wù)子程序結(jié)束時(shí),還為要向8259A發(fā)送EOI命令,才能使ISR寄存器中相應(yīng)的位置1。5.4中斷控制器8259A5.4.28259A的工作方式1.中斷嵌套方式當(dāng)更高優(yōu)先級(jí)的中斷打斷當(dāng)前中斷處理,就會(huì)出現(xiàn)中斷嵌套。8088/8086提供了兩種中斷嵌套方式。普通(一般)全嵌套方式在中斷處理過程時(shí),不響應(yīng)同級(jí)和較低優(yōu)先級(jí)的中斷請求。(2)特殊全嵌套方式8259A工作在特殊全嵌套方式時(shí),如果從片中更高優(yōu)先級(jí)的的中斷源發(fā)出請求,則給予響應(yīng),常用于級(jí)聯(lián)情況。5.4中斷控制器8259A5.4.28259A的工作方式2.中斷優(yōu)先方式8259A提供了固定優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí)兩類控制方式。(1)固定優(yōu)先級(jí)方式8259A復(fù)位后處于固定優(yōu)先級(jí)方式,并且IR0的優(yōu)先級(jí)最高,IR7的優(yōu)先級(jí)最低,通常情況下中斷優(yōu)先級(jí)是固定不變的,但是可以編程改變順序。(2)循環(huán)優(yōu)先級(jí)方式當(dāng)高優(yōu)先級(jí)中斷頻繁產(chǎn)生時(shí),固定優(yōu)先級(jí)方式會(huì)使低優(yōu)先級(jí)中斷源的中斷請求經(jīng)常得不到處理。所以,可以采用自動(dòng)中斷循環(huán)優(yōu)先級(jí)方式。這種方式的中斷源的優(yōu)先級(jí)順序是會(huì)變化的,得到響應(yīng)處理的中斷源的優(yōu)先級(jí)自動(dòng)變?yōu)樽畹?,比它低一?jí)的中斷源變成最高優(yōu)先級(jí),其他中斷源依次排列。5.4中斷控制器8259A

5.4中斷控制器8259A5.4.28259A的工作方式4.屏蔽中斷源的方式(1)普通屏蔽方式這種屏蔽方式是通過指令將屏蔽字寫入IMR實(shí)現(xiàn)對中斷請求的開放和禁止,某位寫入1,中斷請求被禁止,寫入0,中斷請求被開放。(2)特殊屏蔽方式采用特殊屏蔽方式(SpecialMaskMode,SMM),可以在中斷服務(wù)程序?qū)懭胫袛嗥帘巫?,使ISR寄存器對應(yīng)當(dāng)前處理中斷的位置為1,同時(shí)使較低優(yōu)先級(jí)中斷對應(yīng)的位置為0,從而屏蔽了當(dāng)前正在處理的中斷,并開放了較低優(yōu)先級(jí)的中斷請求。特殊中斷屏蔽方式提供了響應(yīng)較低優(yōu)先級(jí)中斷請求的方法,但在這種方式影響了正常嵌套結(jié)構(gòu),被處理的程序不一定是當(dāng)前優(yōu)先級(jí)最高的中斷,所以正常EOI命令不能用于使ISR相應(yīng)的位復(fù)位。5.4中斷控制器8259A5.4.28259A的工作方式5.中斷請求觸發(fā)方式①邊沿觸發(fā)方式:當(dāng)8259A設(shè)置為邊沿觸發(fā)工作方式,則將IR引腳上出現(xiàn)上升沿作為中斷請求信號(hào)產(chǎn)生。②電平觸發(fā)方式:當(dāng)8259A設(shè)置為電平觸發(fā)工作方式,則將IR引腳上出現(xiàn)高電平作為中斷請求信號(hào)產(chǎn)生,在中斷請求得到響應(yīng)后要及時(shí)撤除高電平,否則可能引起第二次中斷。注意,無論哪種觸發(fā)方式,中斷請求信號(hào)都要維持高電平直到第一個(gè)中斷應(yīng)答信號(hào)(INTA)?結(jié)束之后,如果中斷請求信號(hào)提前變成低電平,8259A就會(huì)自動(dòng)認(rèn)為是IR7的中斷請求,通過在IR7的中斷服務(wù)子程序中直接返回,就可以濾除類似中斷請求的噪聲,如果IR7需要使用,也可以通過讀取ISR狀態(tài)來區(qū)分中斷請求和噪聲。5.4中斷控制器8259A5.4.28259A的工作方式6.級(jí)聯(lián)工作方式當(dāng)中斷源超過8個(gè),就需要采用級(jí)聯(lián)工作方式來管理中斷。其中,一片8259A是主片,中斷請求信號(hào)INT引腳與8088/8086的INTR連接。其余的8259A作為從片,其中斷請求信號(hào)INT引腳與與主片的IR引腳連接。5.4中斷控制器8259A5.4.28259A的編程上電或復(fù)位后,必須給8259A設(shè)定工作方式才能正常的工作,這個(gè)過程稱為初始化,此外,在8259A工作的時(shí)候,還需要改變工作方式,或查詢寄存器狀態(tài),這些操作都是通過編程寫入命令字完成。8259A的命令字包括了初始化命令字ICW(InitializationCommandWord),用于對8259A進(jìn)行初始化,以及操作命令字OCW(OperationCommandWord),用于控制操作和查詢狀態(tài)。因此,8259A的編程可以分為初始化和操作控制編程兩個(gè)步驟。初始化編程:編寫程序向8259A寫入2-4個(gè)ICW,使8259A處于設(shè)定的工作方式。操作控制編程:編寫程序向8259A寫入OCW,設(shè)置8259A的操作方式或查詢內(nèi)部寄存器狀態(tài)。5.4中斷控制器8259A5.4.28259A的編程1.初始化命令字ICW(1)初始化命令字ICW1寫入ICW1就意味著要對8259A進(jìn)行初始化,寫入ICW1后,8259A自動(dòng)清除中斷服務(wù)寄存器ISR和中斷屏蔽寄存器IMR,設(shè)置默認(rèn)的中斷優(yōu)先級(jí)順序?yàn)椋篒R0是最高優(yōu)先級(jí),IR7是最低優(yōu)先級(jí),采用普通屏蔽方式和非自動(dòng)中斷結(jié)束方式,并將狀態(tài)讀出電路預(yù)置為讀寄存器IRR。ICW1的設(shè)定功能如圖所示。D4:ICW1的特征位。D3:為1時(shí),IR0~IR7高電平觸發(fā),為0時(shí),IR0~IR7上升沿觸發(fā)。D1:為1時(shí),單片8259A,為0時(shí),級(jí)聯(lián)方式。D0:為1時(shí),寫ICW4,為0時(shí),默認(rèn)值,不寫ICW4。例如:要求電平沿觸發(fā)、多片級(jí)聯(lián)、不寫ICW4,則將00011000=18H寫入ICW1。5.4中斷控制器8259A5.4.28259A的編程1.初始化命令字ICW(2) 初始化命令字ICW2ICW2是中斷類型碼寄存器,用于保存類型碼,在初始化時(shí),只需設(shè)定高5位的值,最后3位可以是任意值,如圖所示。當(dāng)8088/8086響應(yīng)中斷后,8259A將中斷源編號(hào)自動(dòng)填入后3位發(fā)送給8088/8086。ICW2命令字中各位的含義如下:D7~D3:中斷向量碼高5位。D2~D0:IR0~IR7的中斷源序號(hào)。例如,ICW2被設(shè)置為20H,即中斷類型碼為20H~27H。5.4中斷控制器8259A5.4.28259A的編程1.初始化命令字ICW(3)初始化命令字ICW3ICW3是級(jí)聯(lián)控制字,僅用于級(jí)聯(lián)方式,表明主片和從片的連接關(guān)系,主片和從片的ICW3格式不同,如圖所示。主片的D7~D0:為1時(shí),對應(yīng)IR引腳上連接了從片,否則,沒有連接從片。從片的D2~D0:從片標(biāo)識(shí)碼,表示連接到第幾個(gè)IR引腳上。注意,主片ICW3各位必須與與相連從片ICW3的序號(hào)一致,例如,從片的INT連接主片的IR6,主片ICW3的S6位應(yīng)該為1,從片的ICW3為06H。主片級(jí)聯(lián)控制字從片級(jí)聯(lián)控制字5.4中斷控制器8259A5.4.28259A的編程1.初始化命令字ICW(4)初始化命令字ICW4ICW4是中斷結(jié)束方式字,用于設(shè)定級(jí)聯(lián)方式下的優(yōu)先級(jí)管理方式、主從方式以及中斷結(jié)束方式等,如圖所示。D4:為1時(shí),特殊全嵌套方式,為0時(shí),一般全嵌套方式。D3~D2:值為0X時(shí),非緩沖方式;值為10時(shí),主片,緩沖方式;值為11時(shí),從片,緩沖方式。D1:為1時(shí),自動(dòng)EOI方式,為0時(shí),非自動(dòng)EOI方式。5.4中斷控制器8259A5.4.28259A的編程2.操作命令字OCW(

溫馨提示

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

評論

0/150

提交評論