




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
微機原理與接口技術(第3版)7輸入輸出技術輸入/輸出系統(tǒng)概述程序控制方式中斷方式例題解析直接存儲器存取7.1.1輸入/輸出接口
1.接口電路主機對性能各異的外設進行控制,與它們交換信息,在主機與外設間設置一組電路界面,將CPU系統(tǒng)總線發(fā)出的控制信號、數(shù)據(jù)信號和地址信號轉換成外設所能識別和執(zhí)行的具體命令,而將外設發(fā)送給CPU的數(shù)據(jù)和狀態(tài)信息轉換成系統(tǒng)總線所能接受的信息,傳送給CPU。這就是輸入/輸出接口電路,簡稱I/O接口,也稱適配器。7.1輸入/輸出系統(tǒng)概述
I/O接口電路位于主機和外圍設備之間,起著“轉換器”的作用,協(xié)助完成輸入/輸出過程中的數(shù)據(jù)傳送和控制任務。I/O接口通過系統(tǒng)總線連接主機和外設,如圖7.1所示。主機設備控制器外圍設備I/O接口控制線數(shù)據(jù)線地址線……圖7.1外圍設備的連接7.1輸入/輸出系統(tǒng)概述2.接口電路分類
⑴按接口電路的通用性:可以分為專用接口和通用接口。
專用接口:是指針對某一種具體的外圍設備而設計的接口電路。
通用接口:是可供多種外圍設備使用的標準接口。⑵按數(shù)據(jù)傳送格式:可以分為并行接口和串行接口。
并行接口:是指接口與系統(tǒng)總線之間,接口與外圍設備之間,都按并行方式傳送數(shù)據(jù)。
串行接口:是指接口與外圍設備之間用串行方式傳送數(shù)據(jù),但與系統(tǒng)總線之間仍按并行方式傳送數(shù)據(jù)。7.1輸入/輸出系統(tǒng)概述⑶按接口是否可編程:可以分為可編程接口和不可編程接口。可編程接口:是指在不改變接口硬件的情況下,可通過編程修改接口的操作參數(shù),改變接口的工作方式和工作狀態(tài),從而提高接口功能的靈活性。不可編程接口:是指接口的工作方式和工作狀態(tài)完全由接口硬件電路決定,用戶不可通過編程加以修改。⑷按時序控制方式:可以分為同步接口和異步接口。
同步接口:是指接口與系統(tǒng)總線之間信息的傳送,由統(tǒng)一的時序信號同步控制。異步接口:是指接口與系統(tǒng)總線之間、接口與外圍設備之間的信息傳送不受統(tǒng)一的時序信號控制,而由異步應答方式傳送。7.1輸入/輸出系統(tǒng)概述3.接口的基本功能⑴數(shù)據(jù)緩沖功能:為了調(diào)節(jié)外圍設備傳送信息的速度與CPU處理速度較大的差異,可以在接口電路中設置數(shù)據(jù)寄存器,實現(xiàn)對輸入/輸出數(shù)據(jù)的緩沖和鎖存。⑵聯(lián)絡功能:接口電路接收CPU發(fā)來的控制命令,將它轉換為外圍設備所需的操作命令。同時,針對外圍設備的不同情況,CPU應能根據(jù)當前外圍設備的狀態(tài),采取相應的措施,為此接口電路就要記錄外圍設備送入的工作狀態(tài)信息,供CPU查詢。7.1輸入/輸出系統(tǒng)概述
⑶尋址功能:CPU對接口電路的訪問,實際上就是對這些寄存器的訪問。I/O接口內(nèi)部的寄存器稱為I/O端口,每個端口有一個端口地址。接口接收來自系統(tǒng)總線的尋址信息,經(jīng)過譯碼電路,選擇相應的寄存器,與總線進行信息交換。⑷預處理功能:系統(tǒng)總線采取并行傳送方式,如果是串行接口,那么接口就要完成數(shù)據(jù)的串—并轉換。另外,如果外圍設備與接口,接口與系統(tǒng)總線之間傳送的數(shù)據(jù)寬度、時序、負載不匹配,則接口要進行相應的匹配;如果外圍設備所用信號電平與系統(tǒng)總線不相同,則接口還要進行信號電平的轉換。7.1輸入/輸出系統(tǒng)概述
⑸中斷管理/DMA控制功能有些接口,為了能夠?qū)崿F(xiàn)以中斷方式與CPU交換信息,或以DMA方式與存儲器交換信息,往往在接口電路中設置中斷控制邏輯或DMA控制邏輯,以便能夠向主機提出中斷請求或DMA請求,反過來,對主機給予的請求應答能得到立即響應,即提供相應的處理。7.1輸入/輸出系統(tǒng)概述4.接口電路的基本結構通用接口電路的一般結構圖如圖7.2所示。圖7.2接口電路結構圖7.1輸入/輸出系統(tǒng)概述
⑴I/O端口:是I/O接口電路中能被CPU直接訪問的寄存器的地址。包括三種端口:數(shù)據(jù)端口、狀態(tài)端口和控制端口。①數(shù)據(jù)端口對來自或者送往CPU和內(nèi)存的數(shù)據(jù)起緩沖作用。數(shù)據(jù)輸出寄存器鎖存CPU送出的數(shù)據(jù)信息,以提供給外設;數(shù)據(jù)輸入寄存器暫存由外設傳遞給主機的數(shù)據(jù)信息。根據(jù)不同的需要,在接口電路中還可以設置不同的數(shù)據(jù)寄存器,從一個到幾十個不等。7.1輸入/輸出系統(tǒng)概述②狀態(tài)端口存放外圍設備或者接口部件本身的狀態(tài)。外設通過狀態(tài)寄存器存放向CPU提供的可查詢的外設狀態(tài)信息,CPU可通過數(shù)據(jù)線讀回,并根據(jù)外設的狀態(tài)信息采取相應措施。③控制端口存放CPU發(fā)出的命令,以便控制接口和設備的動作??刂萍拇嫫鹘邮諄碜訡PU的控制命令字,并將它們轉換為外設可識別的操作命令。7.1輸入/輸出系統(tǒng)概述
⑵地址譯碼器:對接口電路內(nèi)部寄存器地址進行譯碼,選中某一個寄存器。⑶控制邏輯:接收來自CPU的命令,控制接口中的各個部件協(xié)調(diào)工作。⑷其他:對于采用中斷方式或DMA方式與主機進行數(shù)據(jù)交換的外設,其接口電路還可以設置中斷/DMA控制邏輯部分。5.端口的編址方式第2章2.2.2小節(jié)中介紹了對I/O端口的兩種編址方式:I/O端口和內(nèi)存儲器統(tǒng)一編址方式,I/O端口單獨編址方式。7.1輸入/輸出系統(tǒng)概述7.1.2輸入/輸出的基本方法1.程序控制方式程序控制方式的特點是:依靠程序的控制來實現(xiàn)主機和外設的數(shù)據(jù)傳送。可分為無條件傳送方式和查詢方式。
無條件傳送方式又稱為同步傳送方式:要求外設和CPU始終是準備好的,CPU直接執(zhí)行輸入或輸出指令,便可實現(xiàn)數(shù)據(jù)傳送,其實質(zhì)是用程序定時同步傳送,一般用于固定外設在規(guī)定的時間進行信息交換。優(yōu)點:硬件、軟件都比較簡單,I/O接口中一般只需要數(shù)據(jù)端口。缺點:容易造成數(shù)據(jù)丟失。7.1輸入/輸出系統(tǒng)概述7.1輸入/輸出系統(tǒng)概述
查詢方式:是指CPU在傳送數(shù)據(jù)之前,要先檢查外設是否“準備好”,若沒有準備好,則繼續(xù)查詢其狀態(tài),直至外設準備好,即確認外圍設備已具備傳送條件之后,才能進行數(shù)據(jù)傳送。
缺點:CPU每傳送一個數(shù)據(jù),需要花費很多時間來等待外設進行數(shù)據(jù)傳送的準備,因此CPU的效率很低,且CPU與外設不能并行工作。
優(yōu)點:實現(xiàn)這種傳送方式的硬件接口電路簡單。2.中斷控制方式中斷是外圍設備“主動”通知CPU準備發(fā)送或接收數(shù)據(jù)。當外設需要與CPU進行數(shù)據(jù)交換時,便由中斷接口電路向CPU發(fā)出一個中斷請求信號,待CPU響應這一中斷請求后,便可通過中斷服務程序完成I/O信息交換。
優(yōu)點:由于CPU省去了對外設狀態(tài)查詢和等待的時間,從而使CPU與外設可以并行地工作,大大提高了CPU的效率。
缺點:中斷傳送每操作一次,CPU就會打斷原來執(zhí)行的程序去執(zhí)行一段中斷服務程序,時間開銷比較大,對速度較高的外設可能會產(chǎn)生信息丟失。7.1輸入/輸出系統(tǒng)概述3.直接存儲器存取控制方式直接存儲器存取(DirectMemoryAccess,DMA)方式是一種完全由硬件執(zhí)行I/O交換的方式。在這種方式中,CPU不參與數(shù)據(jù)的傳送,而是由DMA控制器來實現(xiàn)內(nèi)存與外設之間、外設與外設之間的直接快速傳送,幾乎沒有額外時間開銷,因此傳輸效率很高,并且減輕了CPU的負擔,這對于大批量數(shù)據(jù)塊的高速傳送特別有用。4.通道方式
通道是一個具有特殊功能的處理器,某些應用中稱其為輸入/輸出處理器(IOP),它可以實現(xiàn)對外圍設備的統(tǒng)一管理和外圍設備與內(nèi)存之間的數(shù)據(jù)傳送。這種提高CPU效率的辦法是以花費更多的硬件為代價的。7.1輸入/輸出系統(tǒng)概述5.外圍處理機方式外圍處理機(PeripheralProcessorUnit,PPU)方式是通道方式的進一步發(fā)展。由于PPU基本上獨立于主機工作,它承擔原來必須由CPU承擔的I/O操作,這就大大地減輕了CPU控制外設的負擔,從而有效地減少了CPU在I/O處理中的開銷。圖7.3外圍設備的輸入/輸出控制方式7.1輸入/輸出系統(tǒng)概述7.2.1無條件傳送
所謂無條件,就是假設外設已處于就緒狀態(tài),數(shù)據(jù)傳送時,程序不必再去查詢外設的狀態(tài),而直接執(zhí)行I/O指令進行數(shù)據(jù)傳輸。無條件傳送又稱為立即傳送、同步傳送。例如,有些簡單的輸入設備,如按鍵、開關等,相對于CPU而言,其狀態(tài)很少發(fā)生變化。只要CPU需要,可隨時讀取其狀態(tài)。有些簡單的輸出設備,如LED數(shù)碼管、交通信號燈等,可以隨時接受CPU發(fā)來的顯示數(shù)據(jù)。7.2
程序控制方式注意:①當簡單外設作為輸入設備時,其輸入數(shù)據(jù)的保持時間相對于CPU的處理時間要長得多,故輸入數(shù)據(jù)通常不用加鎖存器鎖存,直接使用三態(tài)緩沖器(即三態(tài)門)與系統(tǒng)數(shù)據(jù)總線相連即可。②當簡單外設作為輸出設備時,由于外設的速度較慢,CPU送出的數(shù)據(jù)必須在接口中保持一段時間,以適應外設的動作,因此輸出必須采用鎖存器。7.2
程序控制方式
一個典型的無條件傳送方式I/O接口電路如圖7.4所示,由輸入緩沖器、輸出鎖存器、端口地址譯碼器和相應的門電路組成。圖7.4
無條件傳送方式接口電路7.2
程序控制方式例7.1假設有兩個共陰極的發(fā)光二極管直接連接在CPU數(shù)據(jù)總線的D0和D7上,當?shù)刂窞?000H的時候,兩個發(fā)光二極管同時點亮。程序如下:MOVDX,0000HMOVAL,81HOUTDX,AL7.2
程序控制方式7.2.2查詢方式查詢方式又稱為條件傳送方式,CPU通過程序不斷查詢相應設備的狀態(tài),若狀態(tài)不符合要求,則CPU不能進行輸入/輸出操作,需要等待;只有當狀態(tài)信號符合要求時,CPU才能進行相應的輸入/輸出操作。查詢方式控制數(shù)據(jù)的輸入/輸出的流程如圖7.5所示。圖7.5
條件傳送示意圖7.2
程序控制方式圖7.6
查詢方式輸入接口電路查詢方式的CPU讀接口電路如圖7.6所示。其中選通信號有兩個作用:一是把外設的數(shù)據(jù)送到接口的鎖存器中;二是使接口中的一個D觸發(fā)器置1,從而使三態(tài)緩沖器的READY=1。7.2
程序控制方式
查詢方式的CPU寫接口電路如圖7.7所示。7.2
程序控制方式圖7.7
查詢方式輸出接口電路查詢方式的優(yōu)點:能較好地協(xié)調(diào)外設與CPU之間的定時關系,CPU和外設的操作能通過狀態(tài)信息得到同步,而且硬件結構比較簡單。查詢方式的缺點:CPU需要不斷查詢標志位的狀態(tài),這將占用CPU較多的時間,尤其是與中速或慢速的外圍設備交換信息時,CPU絕大部分時間都消耗在了查詢上,真正用于傳送數(shù)據(jù)的時間極少,CPU效率較低;傳輸完全在CPU控制下完成,對外部出現(xiàn)的異常事件無實時響應能力。7.2
程序控制方式例7.2假設接口的數(shù)據(jù)輸入端口地址為52H,狀態(tài)端口地址為56H,并且假設若狀態(tài)寄存器中第1位為1,則表示輸入緩沖器中已經(jīng)有1B準備好,可以進行輸入。實現(xiàn)從輸入設備輸入一串數(shù)據(jù)到內(nèi)存緩沖區(qū),如果遇到回車則結束,串最大為81。程序如下:
COM_SEGSEGMENTBUFFERDB82DUP(?);定義緩沖區(qū)COUNTDB?
COM_SEGENDS7.2
程序控制方式CODESEGMENTASSUMEDS:DATA_SEG,ES:COM_SEG,CS:CODESTART:MOVAX,COM_SEGMOVES,AXMOVDI,OFFESTBUFFERMOVCOUNT,DIMOVCX,81;設置最大循環(huán)次數(shù)CLDNEXT_IN:INAL,56H;讀入狀態(tài)信息TESTAL,02H;檢測第1位是否為1JZNEXT_IN;為0,數(shù)據(jù)未準備好,繼續(xù)讀入狀態(tài)檢測7.2
程序控制方式INAL,52H;數(shù)據(jù)準備好了,從數(shù)據(jù)輸入端口讀入ANDAL,7FH;將正確的數(shù)據(jù)存入緩沖區(qū)內(nèi)STOSBCMPAL,0DH;判斷是否為回車LOOPNENEXT_IN;不是則繼續(xù)輸入新的數(shù)據(jù)MOVAL,0AHSTOSBSUBDI,COUNTMOVCOUNT,DI;DI存放緩沖區(qū)內(nèi)數(shù)據(jù)的個數(shù)●●●CODEENDS7.2
程序控制方式7.3.1中斷的意義中斷系統(tǒng)在現(xiàn)代計算機系統(tǒng)中是非常重要的。其優(yōu)點如下:⑴同步操作中斷技術可以使CPU和外設同時工作。CPU在大部分時間里可與外設并行工作,大大提高了工作效率。⑵實時處理利用中斷技術可使計算機對被控對象的物理參數(shù)作出即時響應。⑶故障處理可以利用中斷系統(tǒng)及時地處理計算機在運行過程中出現(xiàn)的事先預料不到的情況或一些故障。7.3
中斷方式7.3.2中斷的判優(yōu)方法常用的判優(yōu)的方法有3種。1.軟件查詢法即由軟件來安排各中斷源的優(yōu)先級別。常用方法有屏蔽法和位移法。①屏蔽法基本思想:取連接外部中斷源端口的狀態(tài)字,然后檢查每一位,先檢查到的優(yōu)先級高。②位移法基本思想:將讀取的狀態(tài)字節(jié)大循環(huán)移位(RCL/RCR),每移動1位,判斷被移進CF的值是否為1,若是,轉去中斷;否則,繼續(xù)移一位再判斷。7.3
中斷方式
軟件查詢法的優(yōu)點:不需要額外的硬件電路,并且優(yōu)先權由查詢的次序來決定,首先查詢的即為優(yōu)先級最高的。軟件查詢法的缺點:不管外設是否有中斷請求都需要按次序逐一詢問,因而效率較低,特別是在中斷源較多的情況下,轉至中斷服務程序的時間較長。7.3
中斷方式2.硬件判優(yōu)電路法由專門的判優(yōu)電路決定中斷源的優(yōu)先級別,基本思想是:電路上面端口的中斷請求可以屏蔽下面的中斷請求。硬件查詢法的優(yōu)點:中斷源較多的情況下,轉至中斷服務程序的時間比軟件查詢法快。硬件查詢法的缺點:優(yōu)先權的次序是固定的,不能更改,并且增加了硬件設計的成本。3.專用硬件控制器8259是可編程中斷控制器,除了可以實現(xiàn)優(yōu)先權的排隊外,還可以提供中斷類型碼、屏蔽中斷輸入等功能,見7.3.3。7.3
中斷方式7.3.38259中斷控制器單片8259可以管理8級中斷,如果采用級聯(lián)方式。例如8片8259級聯(lián),則可管理64級中斷。1.8259的內(nèi)部結構和引腳功能⑴8259的內(nèi)部結構:有8個部分組成。①中斷請求寄存器(IRR):是一個8位的鎖存寄存器,用來鎖存外圍設備送來的IR0~IR7中斷請求信號。②中斷服務寄存器(ISR):是一個8位寄存器,用來存放已被CPU響應的中斷請求信號。7.3
中斷方式③中斷屏蔽寄存器(IMR):是一個8位寄存器,用來對各中斷請求設置屏蔽信息。④優(yōu)先權判別電路(PR):用來識別各中斷請求的優(yōu)先級別。在多個中斷請求信號同時出現(xiàn)并經(jīng)IMR允許進入系統(tǒng)后,先由PR選出其最高優(yōu)先級的中斷請求。⑤讀/寫控制電路:接收來自CPU的讀/寫控制命令和片選控制信息。⑥數(shù)據(jù)總線緩沖器:是一個8位的雙向三態(tài)緩沖器,使8259和CPU數(shù)據(jù)總線D7~D0直接掛接,完成命令和狀態(tài)信息的傳送,是8259與CPU交換數(shù)據(jù)的必經(jīng)之路。7.3
中斷方式⑦控制電路:是8259內(nèi)部的控制器,根據(jù)CPU對8259編程設定的工作方式產(chǎn)生內(nèi)部控制信號,向CPU發(fā)出中斷請求信號INT,請求CPU響應,同時產(chǎn)生與當前中斷請求服務有關的控制信號,并在接收到來自CPU的中斷響應信號后,將中斷類型號送到數(shù)據(jù)總線。⑧級聯(lián)緩沖/比較器:用來實現(xiàn)多個8259的級聯(lián)連接及數(shù)據(jù)緩沖方式。級聯(lián)時,一個8259芯片為主片,最多能連接8個8259從片,因此最多可以實現(xiàn)對64級中斷源的管理。7.3
中斷方式8259的內(nèi)部結構如圖7.8所示7.3
中斷方式圖7.88259芯片的內(nèi)部結構圖⑵8259的引腳功能8259芯片有28條引腳,雙列直插式封裝,如圖7.9所示。圖7.98259芯片引腳定義①D7~D0:
雙向數(shù)據(jù)總線,是8259與CPU的數(shù)據(jù)信息通道。②:片選信號線,輸入,低電平有效。③:寫信號,輸入,低電平有效。④:讀信號,輸入,低電平有效。⑤CAS2~CAS0:3根級聯(lián)線,主8259芯片與從8259芯片的連接線。⑥/:雙重功能線,主片或從片的設定/緩沖器讀/寫控制。⑦:中斷響應信號線,輸入⑧INT:中斷請求信號線,輸出⑨IR7~IR0:由外設或其他8259芯片輸入的中斷請求信號。7.3
中斷方式2.8259的中斷響應過程①有一條或若干條中斷請求輸入線(IR7~IR0)變?yōu)楦唠娖綍r(即有一個或多個相應設備發(fā)出中斷請求),8259內(nèi)部中斷請求寄存器IRR的相應位置1。②用中斷屏蔽寄存器IMR對IRR進行屏蔽,通過優(yōu)先權判別電路PR,將當前未屏蔽的各中斷源的中斷級別進行比較判別,從中選出優(yōu)先級別最高的中斷請求從INT輸出,送至CPU的INTR端。③CPU在收到8259發(fā)來的中斷請求信號INT后,如果當前指令執(zhí)行完且中斷允許標志位IF=1,則CPU向8259發(fā)出信號,進入中斷響應周期。7.3
中斷方式④8259收到CPU的第1個信號時,將ISR(中斷服務寄存器)中當前優(yōu)先級別最高的中斷請求所對應的位置1,IRR的相應位清0。⑤8259收到CPU發(fā)出的第2個信號后,通過數(shù)據(jù)線將對應的中斷類型碼n送至CPU。CPU根據(jù)讀入的中斷類型碼,在中斷向量表中找到相應的中斷服務程序入口地址,繼而轉去執(zhí)行中斷服務程序。如果8259工作在自動中斷結束方式下,則在第2個脈沖信號結束時,使被響應的中斷源在ISR中的對應位清0,否則,當中斷服務結束時,由安排的8259中斷結束命令EOI來使ISR的相應位復位,最后執(zhí)行IRET指令,返回主程序,結束本次中斷處理。7.3
中斷方式3.8259的工作方式⑴中斷結束方式當中斷結束時,應將ISR的相應位復位,以清除正在被服務的記錄。ISR的復位方式有以下幾種:①非自動結束方式:當中斷服務程序完成時,需提供一條EOI(中斷結束)
命令,使8259中ISR的相應位清除,讓ISR只記錄那些正在被服務而未服務完的中斷。非自動中斷結束有兩種方式:一般EOI方式、特殊EOI方式。這種工作方式下,在任一級中斷服務結束后,中斷返回之前,安排一條一般EOI命令。執(zhí)行該命令,則8259將ISR寄存器中級別最高的置1位清0。這種結束方式很簡單,但只有在當前結束的中斷總是位于未服務完的中斷中級別最高的中斷時,才能使用這種結束方式。當中斷服務程序結束,給8259發(fā)送EOI命令的同時,將當前結束的中斷級別也傳送給8259,使8259將ISR寄存器中指定級別的相應位清0,這種結束方式適用于在中斷服務程序中改變了中斷源的原有的中斷優(yōu)先權的場合。在這種情況下,如果用一般EOI方式,則可能產(chǎn)生錯誤的ISR復位。7.3
中斷方式②自動EOI方式這種方式在中斷服務程序結束時,不需要提供EOI命令,而是由8259在中斷響應周期的第2個中斷響應信號結束時,自動執(zhí)行一個EOI操作,將ISR寄存器中的相應位清0。需要注意的是:采用這種結束方式,在任何一級中斷的中斷服務過程中,ISR相應位已復位,8259中沒有留下任何標志,如果在此過程中出現(xiàn)了新的中斷請求,則只要IF=1,不管新出現(xiàn)的中斷級別如何,都將打斷正在執(zhí)行的中斷服務程序而被優(yōu)先執(zhí)行,這就有可能出現(xiàn)低級中斷打斷高級中斷或同級中斷相互打斷的現(xiàn)象,這種情況稱為“重復嵌套”,由于重復嵌套的深度無法控制,很可能造成某些高級中斷得不到及時處理的情況。7.3
中斷方式⑵緩沖方式用來指定系統(tǒng)總線與8259數(shù)據(jù)總線之間是否需要進行緩沖。①緩沖方式:可以通過對8259編程設置其工作在緩沖方式下。這時,/為輸出信號線,作為緩沖器的允許信號使用。=0,表示允許緩沖器輸出;=1,表示允許緩沖器輸入。②非緩沖方式:當設置8259芯片工作在非緩沖方式下時,/為輸入信號線,作為主從設定信號使用,以識別8259是主控制器還是從屬控制器。7.3
中斷方式⑶嵌套方式嵌套方式用于8259進行優(yōu)先級控制。①一般全嵌套方式:是指優(yōu)先級高的中斷可以打斷低級中斷服務,反之不能打斷。在這種方式下,由各個IRi端引入的中斷請求具有固定的中斷優(yōu)先級別,且優(yōu)先級順序由高到低依次為IR7~IR0。②特殊全嵌套方式:主要用于級聯(lián)方式。若不采用特殊全嵌套方式,則主8259芯片將把來自于同一個從8259芯片內(nèi)的不同級別中斷請求認為是同級的,而不予以響應。7.3
中斷方式⑷中斷屏蔽方式對優(yōu)先級的管理還可采用設置中斷屏蔽寄存器IMR的方式。中斷屏蔽有如下兩種實現(xiàn)方式:①一般屏蔽方式:可以通過將中斷屏蔽寄存器IMR中的某一位或某幾位置1,將某一級或幾級中斷請求屏蔽掉。②特殊屏蔽方式:可以實現(xiàn)在執(zhí)行高優(yōu)先級的中斷服務程序時,允許響應低級中斷源的中斷請求,從而使得任一級別的中斷都有機會得到響應。7.3
中斷方式⑸優(yōu)先級的控制①固定優(yōu)先級:是指8259的8個中斷源中,IR0優(yōu)先級最高,IR1優(yōu)先級次之,依次降低,直到IR7優(yōu)先級最低,這個順序固定不變。②循環(huán)優(yōu)先級:8259將中斷源IR0~IR7按下標序號順序構成一個環(huán)(即中斷源順序環(huán)),優(yōu)先級順序依此環(huán)規(guī)定,有兩種規(guī)定方式:自動優(yōu)先循環(huán)級:剛被服務過的中斷源,其優(yōu)先級別被改為最低級,而將最高優(yōu)先級賦給原來比它低一級的中斷源,其他中斷源的優(yōu)先順序依中斷源順序環(huán)確定。指定優(yōu)先循環(huán)級:在OCW2中指定的中斷源,其優(yōu)先級別被設為最低級,其他中斷源的優(yōu)先順序依中斷源順序環(huán)確定。7.3
中斷方式
4.8259芯片編程8259芯片中把若干個可用輸入/輸出指令直接訪問的控制位編排成7個8位的寄存器,并分為兩組。一組為初始化命令字ICW1~ICW4,另一組為工作命令字OCW1~OCW3,這兩組寄存器占用了兩個I/O地址。在IBM-PC中為20H和21H,如表7.1所示。7.3
中斷方式A0命令字0(20H)ICW1,OCW2,OCW31(21H)ICW2,ICW3,ICW4,OCW1表7.1IBM-PC中各命令字的地址分配8259的編程分為兩步:初始化編程和工作方式編程。①初始化編程:用來建立8259的基本工作條件。在系統(tǒng)加電和復位后,通過寫入初始化命令字ICW1~ICW4,來實現(xiàn)對8259的初始化操作,初始化命令字一經(jīng)確定,以后不再改變。②工作方式編程:用來完成對中斷過程的動態(tài)控制。在8259的工作階段,CPU可以在初始化后的任何時刻寫入工作命令字OCW1~OCW3,以規(guī)定或改變8259的工作方式,實現(xiàn)對8259的工作狀態(tài)、中斷方式和中斷響應次序等的控制和管理。7.3
中斷方式⑴8259的初始化編程初始化的主要任務:①復位8259芯片。②設定中斷請求信號INT有效的形式,是高電平有效,還是上升沿有效。③設定8259工作在單片方式還是多片級聯(lián)方式。④設定8259管理的中斷類型號的基值,即0級IR0所對應的中斷類型號。⑤設定各中斷級的優(yōu)先次序,IR0最高,IR7最低。⑥設定一次中斷處理結束時的結束方式。7.3
中斷方式初始化命令字ICW1用于規(guī)定8259的連接方式(單片或級聯(lián))和中斷源請求信號的有效形式(電平觸發(fā)或邊沿觸發(fā))。當=0、A0=0、D4=1時,表示當前寫入8259的是ICW1命令字,其格式如圖7.10所示。圖7.108259的ICW1格式7.3
中斷方式
初始化命令字ICW2用于設置中斷類型碼基值。所謂中斷類型碼基值,是指0級中斷源IR0所對應的中斷類型碼,它是一個可被8整除的正整數(shù)。ICW2的格式如圖7.11所示。圖7.118259的ICW2格式7.3
中斷方式
例如,在IBM-PC系列機中,ICW2的高5位在初始化編程中設置為00001,所以ICW2=08H,ICW2的口地址為21H。寫入初始化命令字ICW2可用以下程序:MOVAL,08HOUT21H,AL在其中斷系統(tǒng)中,若硬盤中斷的中斷請求線連接到8259的IR5上,當CPU響應硬盤中斷請求時,8259把IR5的編碼101作為低3位構成一個完整的8位中斷類型號0DH(00001101B),經(jīng)數(shù)據(jù)總線發(fā)送給CPU。7.3
中斷方式初始化命令字ICW3。
此命令字僅用于8259級聯(lián)方式。它指明從8259芯片的INT引腳與主8259芯片的哪一個中斷源請求信號(IR0~IR7中的哪一個)相連。主8259芯片的ICW3格式如圖7.12所示。圖7.12寫入主8259芯片的ICW3格式7.3
中斷方式
從8259芯片的ICW3格式如圖7.13所示。圖7.13寫入從8259芯片的ICW3格式7.3
中斷方式初始化命令字ICW4。只有當ICW1中的IC4(D0)=1時,才需設置ICW4命令字。D7、D6、D5是ICW4的特征標志,總為0。其格式和各位意義如圖7.14所示。圖7.148259芯片的ICW4格式7.3
中斷方式
8259的初始化從寫入ICW1開始,然后順序?qū)懭隝CW2、ICW3、ICW4,如圖7.15所示。圖7.158259芯片的初始化流程7.3
中斷方式⑵工作方式編程主要完成對中斷請求的屏蔽、優(yōu)先級循環(huán)控制、中斷結束方式、內(nèi)部控制寄存器的查詢等。OCW1~OCW33個命令字可由A0和D4、D3兩位特征標志加以區(qū)分,如表7.2所示。A0
D4D30(20H)1(21H)
0
0OCW2OCW1
0
1OCW3表7.2OCW1~OCW3的地址分配和命名字中的特征標志7.3
中斷方式工作命令字OCW1用來設置中斷源的屏蔽狀態(tài)并寫入IMR中,其格式如圖7.16所示。圖7.168259的OCW1格式
例如:IBM-PC機OCW1的口地址為21H,若需屏蔽IR4、IR5,則OCW1=30H。寫入IMR中的OCW1可用以下程序:MOVAL,30HOUT21H,AL7.3
中斷方式
工作命令字OCW2用于控制中斷結束方式及修改優(yōu)先權管理方式。命令字格式如圖7.17所示。圖7.178259的OCW2格式7.3
中斷方式OCW2工作命令與R、SL、EOI3位編碼的關系如表7.3所示。表7.3OCM2與R、SL、EOI3位編碼的關系RSLEOI操作001正常EOI中斷結束命令011特殊EOI中斷結束命令100置自動、循環(huán)、優(yōu)先級方式101自動、循環(huán)、正常中斷結束方式000自動、循環(huán)復位命令110特殊EOI循環(huán)置位命令111特殊EOI循環(huán)命令010無意義7.3
中斷方式工作命令字OCW3用于設定特殊的屏蔽方式和查詢方式,及讀取IRR/ISR寄存器等。命令字格式如圖7.18所示。圖7.188259的OCW3格式7.3
中斷方式5.80x86微機的中斷控制器⑴PC/XT微機的中斷控制器PC/XT微機的中斷控制器的核心部件是一個8259A芯片,通過該芯片擴展出8根可屏蔽中斷線IRQ0~IRQ7,接外部中斷源。PC/XT微機系統(tǒng)的8級可屏蔽中斷中,0、1、3、4、5、6、7已分別為系統(tǒng)配置的8253定時器、鍵盤、異步通信卡、硬盤、軟盤和并行打印機等設備所占用,只有第2級中斷IRQ2未用,可供用戶使用。用戶可以采用在用戶接口板上附加8259A中斷控制器的辦法,將系統(tǒng)板上的8259A中斷請求線進行擴充。7.3
中斷方式
在進行中斷擴充時,應注意以下幾點:①應選定系統(tǒng)暫不用的中斷請求線進行擴充,一般0、1、6、7級中斷是不能占用的。②為附加的8259A分配兩個端口地址,且不要與系統(tǒng)板上的I/O端口地址沖突。③在中斷系統(tǒng)開始工作之前,必須對附加的8259A進行初始化編程,以設定其工作方式。而系統(tǒng)板上的8259A初始化由系統(tǒng)在啟動時自動完成。7.3
中斷方式⑵PC/AT微機的中斷控制器PC/AT微機系統(tǒng)的中斷控制器由一個主片8259A和一個從片8259A組成,通過3個級聯(lián)端CAS2~CAS0發(fā)生關聯(lián),主片的INT端接至CPU的INTR端,而從片的INT端連接到主片的IR2端,從而形成一個具有15級向量中斷的硬件中斷系統(tǒng)。在這種以主、從8259A級聯(lián)的系統(tǒng)中,從片管理的8級中斷請求經(jīng)過排隊判優(yōu)后,再參與到主片前8級的排隊判優(yōu)。7.3
中斷方式⑵PC/AT微機的中斷控制器PC/AT微機系統(tǒng)的中斷控制器由一個主片8259A和一個從片8259A組成,通過3個級聯(lián)端CAS2~CAS0發(fā)生關聯(lián),主片的INT端接至CPU的INTR端,而從片的INT端連接到主片的IR2端,從而形成一個具有15級向量中斷的硬件中斷系統(tǒng)。在這種以主、從8259A級聯(lián)的系統(tǒng)中,從片管理的8級中斷請求經(jīng)過排隊判優(yōu)后,再參與到主片前8級的排隊判優(yōu)。7.3
中斷方式⑶80386/80486微機的中斷控制器一般是由若干個8259A芯片組成的,但是這些8259A不再是一個個獨立的芯片,它們和其他功能部件(如DMAC、定時器/計數(shù)器、總線控制器等)一起集成在一個超大規(guī)模的外圍芯片中。82380就是一種典型的VLSI接口芯片,它的中斷控制器包含3片8259A電路,分別稱做中斷層A、中斷層B和中斷層C。這3層串接起來產(chǎn)生一個總的中斷請求信號INT,接至CPU的INTR輸入端,它共支持20級硬件向量中斷,5級在82380芯片內(nèi),供片內(nèi)其他功能的部件使用,15級作為外部中斷請求輸入端,每個外部中斷請求端又可以擴充一片8259A作為從片。因此,最多可管理8×15=120個外部中斷源。7.3
中斷方式
82380中的每一層中斷控制邏輯與單片8259A基本相同。使用時有兩點區(qū)別:1)82380的每個中斷請求都可以獨立設置中斷向量,而不像8259A芯片那樣各個中斷向量自動連續(xù);2)當外接8259A作為從片時,在中斷響應周期,從片的編碼不是由CAS2~CAS0級聯(lián)送入,而是通過數(shù)據(jù)總線D7~D0傳輸。7.3
中斷方式6.應用舉例⑴8259在IBM-PC/XT微機系統(tǒng)中的應用例如:IBM-PC/XT微機系統(tǒng)中只使用了一片8259芯片,接受并處理8級外部中斷請求。系統(tǒng)分配給該8259芯片的端口地址號為20H和21H,且初始化設定為:8個中斷請求信號IR0~IR7均為邊沿觸發(fā);采用完全嵌套方式,IR0為最高優(yōu)先級,IR7為最低優(yōu)先級;設定IR0所對應的中斷類型號為8,則IR1對應的中斷類型號為9,依此類推。7.3
中斷方式其初始化程序編寫如下:INTA00EQU20H;8259端口0INTA01EQU21H;8259端口1┇MOVAL,13H;ICW1邊沿觸發(fā)、單片、需ICW4OUTINTA00,ALMOVAL,8OUTINTA01,AL;ICW2中斷類型碼的高5位MOVAL,9OUTINTA01,AL;ICW4全嵌套,8086系統(tǒng),非自動結束7.3
中斷方式⑵8259在80286/80386微機系統(tǒng)中的應用在80286/80386微機系統(tǒng)中,使用主、從兩片8259芯片級聯(lián),可管理15個硬件中斷源。其中:主8259芯片的地址為020H~021H,從8259芯片的地址為0A0H~0A1H;主片的CAS2~CAS0與從片的CAS2~CAS0互連,從片的INT引腳連至主片IR2;采用非緩沖方式,主片的/引腳接+5V,從片的/引腳接地;主、從片的中斷請求信號均采用邊沿觸發(fā);采用完全嵌套方式,優(yōu)先級的排列次序為IRQ0最高,依次為IRQ1、IRQ8~IRQ15,然后是IRQ3~IRQ7;設定IRQ0~IRQ7對應的中斷類型碼為8~0FH,IRQ8~IRQ15對應的中斷類型碼為70H~77H。7.3
中斷方式對8259的主片和從片的初始化程序編寫如下:;初始化8259主片INTA00EQU020H;8259主片端口0INTA01EQU021H;8259主片端口1
┇MOVAL,11H;ICW1邊沿觸發(fā),級聯(lián),需ICW4OUTINTA00,ALJMPSHORT$+2;I/O端口延時要求MOVAL,8OUTINTA01,AL;ICW2中斷類型碼的高5位JMPSHORT$+2;I/O端口延時要求MOVAL,04H;ICW3主片的IR2上接從片OUTINTA01,AL;JMPSHORT$+2;I/O端口延時要求MOVAL,01H;ICW4非緩沖,全嵌套,8088系統(tǒng)OUTINTA01,AL;非自動結束7.3
中斷方式
初始化8259從片INTB00EQU0A0H;8259從片端口0INTB01EQU0A1H;8259從片端口1┇MOVAL,11H;ICW1邊沿觸發(fā),級聯(lián),需ICW4OUTINTB00,ALJMPSHORT$+2;I/O端口延時要求MOVAL,70H;ICW2中斷類型號的高5位OUTINTB01,AL;JMPSHORT$+2;I/O端口延時要求MOVAL,02H;ICW3從片接主片的IR2OUTINTB01,AL;JMPSHORT$+2;I/O端口延時要求MOVAL,01H;ICW4非緩沖,全嵌套,8088系統(tǒng)OUTINTB01,AL;非自動結束┇7.3
中斷方式直接存儲器訪問(DirectMemoryAccess,DMA):是指外圍設備直接對計算機存儲器進行讀/寫操作的I/O方式。數(shù)據(jù)的I/O無須CPU執(zhí)行指令,也不經(jīng)過CPU內(nèi)部寄存器,而是利用系統(tǒng)的數(shù)據(jù)總線,由外設直接對存儲器寫入或讀出。在DMA方式中,對這一數(shù)據(jù)傳送過程進行控制的硬件稱為DMA控制器(DMAC)。7.4
直接存儲器存取7.4.1DMA的工作過程DMA傳送的基本特點:1)不經(jīng)過CPU,不破壞CPU內(nèi)各個寄存器的內(nèi)容,在存儲器和外圍設備之間,直接開辟高速的數(shù)據(jù)傳送通路。2)只用一個總線周期,就能完成存儲器和外圍設備之間的數(shù)據(jù)傳送。3)數(shù)據(jù)傳送速度僅受存儲器的存取速度和外圍設備傳輸特性的限制。7.4
直接存儲器存取DMA的工作過程如下:①當外設準備好,可以進行DMA傳送時,外設向DMA控制器發(fā)出DMA傳送請求信號DREQ。②DMA控制器收到請求后,向CPU發(fā)出“總線請求”信號HOLD,表示希望占用總線。③CPU在完成當前總線周期后,會立即對HOLD信號進行響應。響應包括兩個方面:一方面,CPU將數(shù)據(jù)總線、地址總線和相應的控制信號線均置為高阻態(tài),由此放棄對總線的控制權;另一方面,CPU向DMA控制器發(fā)出“總線響應”信號HLDA。7.4
直接存儲器存?、蹹MA控制器收到HLDA信號后,就開始控制總線,并向外設發(fā)出DMA響應信號DACK。⑤DMA控制器送出地址信號和相應的控制信號,實現(xiàn)外設與內(nèi)存或內(nèi)存與內(nèi)存之間的直接數(shù)據(jù)傳送。⑥DMA控制器自動修改地址和字節(jié)計數(shù)器,并據(jù)此判斷是否需要重復傳送操作。規(guī)定的數(shù)據(jù)傳送完后,DMA控制器就撤銷發(fā)往CPU的HOLD
信號。CPU檢測到HOLD失效后,緊接著撤銷HLDA信號,并在下一時鐘周期重新開始控制總線,繼續(xù)執(zhí)行原來的程序。7.4
直接存儲器存取典型的DMAC的工作電路和DMA工作過程波形如圖7.19所示圖7.19DMA控制器和工作波形7.4
直接存儲器存取1.DMA方式與程序控制方式比較數(shù)據(jù)的DMA方式傳送途徑和程序控制下數(shù)據(jù)傳送的途徑不同。程序控制下數(shù)據(jù)傳送的途徑必須經(jīng)過CPU;而采用DMA方式傳送數(shù)據(jù)不需要經(jīng)過CPU。程序控制下數(shù)據(jù)傳送的源地址、目的地址、地址的修改和、塊長的控制和數(shù)據(jù)傳送的控制信號是由CPU負責的;而DMA方式傳送數(shù)據(jù)則由DMA控制器提供源地址和目的地址,而且修改地址、控制傳送操作的結束和發(fā)出傳送控制信號也都由DMAC承擔,即DMA傳送數(shù)據(jù)方式是一種由硬件代替軟件的方法,因而數(shù)據(jù)傳送的速度提高了,縮短了數(shù)據(jù)傳送的響應時間。7.4
直接存儲器存取2.DMA方式與中斷控制方式比較DMA方式控制數(shù)據(jù)傳送不需要CPU介入,即不利用CPU內(nèi)部寄存器,所以,DMA方式只要執(zhí)行指令的某個機器周期結束,就可以響應DMA請求;而中斷方式控制需要等一條指令執(zhí)行結束后才能進行中斷響應。響應DMA請求,進入DMA方式時就不必保護CPU的現(xiàn)場。采用中斷控制的數(shù)據(jù)傳送,進入中斷服務(傳送數(shù)據(jù))之前,必須保護現(xiàn)場狀態(tài),這會大大延遲響應時間。因此,采用DMA控制數(shù)據(jù)傳送的另一個優(yōu)點是縮短了數(shù)據(jù)傳送的響應時間。7.4
直接存儲器存取3.DMA控制傳送存在的問題當DMA控制總線時,CPU不能讀取指令;若系統(tǒng)使用的是動態(tài)存儲器,而且是由CPU負責管理動態(tài)存儲器的刷新,則在DMA操作期間,存儲器的刷新將會停止;當DMAC占用總線時,CPU不能去檢測和響應來自系統(tǒng)中其他設備的中斷請求;DMA傳送也存在以下兩個額外開銷源。第1個額外開銷是總線訪問時間;第2個額外開銷是對DMAC的初始化;DMA控制數(shù)據(jù)傳送會增加硬件的投資,提高系統(tǒng)的成本。7.4
直接存儲器存取
DMA的適用場合:①硬盤和軟盤I/O。②快速通信通道I/O。③多處理機和多程序數(shù)據(jù)塊傳送。④掃描操作。⑤快速數(shù)據(jù)采集。⑥在PC/XT機中還采用DMA方式進行DRAM的刷新操作。7.4
直接存儲器存取
7.4.2DMA控制器82371.DMA控制器的功能①編程設定DMA的傳輸模式及其所訪問內(nèi)存的地址區(qū)域;②屏蔽或接受外圍設備的DMA請求(DREQ),當有多個設備同時請求時,還要進行優(yōu)先級排隊,首先接受最高級的請求;③向CPU轉達DMA請求,DMA控制器要向CPU發(fā)出總線請求信號HOLD(高電平有效),請求CPU放棄對總線的控制權;④接收CPU的總線響應信號(HLDA),接管總線控制權,實現(xiàn)對總線的控制。7.4
直接存儲器存取
⑤向相應外圍設備轉達DMA允許信號DACK。于是在DMA控制器的管理下,實現(xiàn)外圍設備和存儲器之間的數(shù)據(jù)直接傳送。⑥在傳送過程中進行地址修改和字節(jié)計數(shù)。在傳送完要求的字節(jié)數(shù)后,向CPU發(fā)出DMA結束信號(),撤銷總線請求(HRQ),將總線控制權交還給CPU。7.4
直接存儲器存取2.可編程DMA控制器Intel8237DMAC的主要性能和內(nèi)部結構主要性能如下:①使用單一+5V電源、單相時鐘、40條引腳、雙列直插式封裝。時鐘為3~5MHz,最高速率可達1.6Mbps。②含有4個相互獨立的通道,每個通道均有獨立的地址寄存器和字節(jié)數(shù)寄存器,而控制寄存器、狀態(tài)寄存器為4個通道所共用??梢圆捎眉壜?lián)方式擴充用戶所需要的通道。通道中地址寄存器的長度為16位,因而一次DMA傳送的最大數(shù)據(jù)塊的長度為64KB。7.4
直接存儲器存取③用戶通過編程,可以在4種操作類型和4種傳送方式之中任選一種。④每個通道的DMA請求可以分別被允許/禁止。⑤8237有4種工作方式:單字節(jié)傳送、數(shù)據(jù)塊傳送、請求傳送、級聯(lián)方式。⑥每個通道的DMA請求有不同的優(yōu)先權,可以利用程序設置為固定優(yōu)先權和循環(huán)優(yōu)先權兩種排序方式。⑦每個通道都有軟件的DMA請求。還各有一對聯(lián)絡信號線,以及通道請求信號DREQ和響應信號DACK,而且DREQ和DACK信號的有效電平可以通過編程來設定。⑧允許用輸入信號來結束DMA傳送或重新初始化。7.4
直接存儲器存取
8237的內(nèi)部寄存器的類型和數(shù)量如表7.4所示。表7.48237內(nèi)部寄存器7.4
直接存儲器存取寄存器名容量數(shù)量寄存器名容量數(shù)量基地址寄存器16位4狀態(tài)寄存器8位1基字節(jié)數(shù)寄存器16位4命令寄存器8位1當前地址寄存器16位4暫存寄存器8位1當前字節(jié)寄存器16位4方式寄存器8位4地址暫存寄存器16位1屏蔽寄存器8位1字節(jié)暫存寄存器16位1請求寄存器8位18237內(nèi)部結構如圖7.20所示。7.4
直接存儲器存取4個獨立的DMA通道。每個通道都有一個16位的基地址寄存器、一個16位的基字節(jié)數(shù)計數(shù)器、一個16位的當前地址寄存器、一個16位的當前字節(jié)數(shù)計數(shù)器以及一個8位的方式寄存器;共5個寄存器DMA請求服務之前,CPU編程對給定的命令字和方式控制字進行譯碼,以確定DMA的工作方式,并控制產(chǎn)生所需要的定時信號
3.8237的外部引腳7.4
直接存儲器存取圖7.218237引腳圖1.與CPU相連的引腳A3~A0:低8位地址線的低4位,雙向、三態(tài)當CPU控制總線時,輸入,表示8237A內(nèi)部寄存器的地址信號;當DMA操作時,輸出,表示存儲器的地址。A7~A4:低8位地址線的高4位,三態(tài)、輸出僅用在進行DMA操作時,提供訪問存儲器低字節(jié)的高4位地址。D7~D0:數(shù)據(jù)線,雙向、三態(tài)。當CPU控制總線時,表示CPU訪問8237A寄存器的數(shù)據(jù)通道;當DMA操作時,表示訪問存儲器的高8位地址A15~A8。IOR:I/O讀信號,雙向、三態(tài)、低電平有效當CPU控制總線時,輸入,CPU利用它讀出8237A
內(nèi)部寄存器;當DMA操作時,輸出,與MEMW配合實現(xiàn)DMA寫操作。
MEMW,MEMR,IOW,CS,HREQ,HLDA2.與外設相連的引腳DREQ3~DREQ0:DMA請求信號,輸入、有效電平可由工作方式命令字確定。DACK3~DACK0:DMA響應信號,輸出、有效電平可由工作方式命令字確定。一般利用該信號選中某端口,實現(xiàn)
I/O
存儲器的傳送。3.其它引腳
CLK:時鐘信號,輸入。
RESET:復位信號,輸入、高電平有效。
READY:準備好信號,輸入、高電平有效
AEN:地址允許信號,輸出、高電平有效。
DMA操作時,AEN=1;
CPU控制總線時,AEN=0。
ADSTB:地址選通信號,輸出、高電平有效
EOP:過程結束信號,雙向、低電平有效。為輸出時,在DMA傳送期間,當字節(jié)數(shù)計數(shù)器減至0時,使其變?yōu)榈碗娖?,表示DMA傳送結束;為輸入時,當EOP端輸入一個低電平時,強迫
DMA操作停止,并使內(nèi)部寄存器復位。VCC、GND:電源和接地引腳。4.8237DMAC的工作方式各通道可以獨立地選擇不同的工作模式(傳送方式)和操作類型。⑴工作模式①單次傳送方式:也稱單字節(jié)傳送模式。每次DMA操作只傳送1B。即DMAC發(fā)出一次占用總線請求,獲得總線控制權后,進入DMA傳送方式,只傳送1B的數(shù)據(jù)。然后就自動把總線控制權交還給CPU,讓CPU至少占用一個總線周期。若還有通道請求信號,則DMAC再重新向CPU發(fā)出總線請求,獲得總線控制權后,再傳送下1B數(shù)據(jù)7.4
直接存儲器存取②數(shù)據(jù)塊傳送方式:也稱為連續(xù)傳送或成組傳送方式。在進入DMA操作后,就連續(xù)傳送數(shù)據(jù),直到整塊數(shù)據(jù)全部傳送完畢。在字節(jié)計數(shù)器減到零為止,或外界輸入終止信號時,才會將總線控制權交還給CPU而退出DMA操作方式。③請求傳送方式:也可以用于成塊數(shù)據(jù)傳輸。當DMAC采樣到有效的通道請求信號DREQ時,向CPU發(fā)出請求占用總線的信號HRQ。CPU讓出總線控制權后,就進入DMA操作方式。但在DREQ變?yōu)闊o效后,DMAC立即停止DMA操作,釋放總線給CPU。僅當DREQ再次變?yōu)橛行Ш?,它才再次發(fā)出HRQ請求信號,CPU再次讓出總線控制權。7.4
直接存儲器存取④級聯(lián)方式:可以把多個8237連接在一起,以便擴充系統(tǒng)的DMA通道數(shù)。下一級的HRQ接到上一級的某一通道的DREQ上,而上一級的響應信號DACK可接到下一級的HLDA上,其連接如圖7.22所示。圖7.228237的級聯(lián)方式工作框圖7.4
直接存儲器存取⑵操作類型①DMA寫傳送(I/O設備→存儲器):將I/O設備傳送來的數(shù)據(jù)寫入存儲器。②DMA讀傳送(存儲器→I/O設備):將存儲器中的數(shù)據(jù)寫入I/O設備。③DMA校驗:不進行數(shù)據(jù)傳送,只是完成某種校驗過程。當通道處于DMA校驗方式時,保持對系統(tǒng)總線的控制權,并且每個DMA周期都將響應外圍設備的DMA請求,只是不產(chǎn)生存儲器或I/O設備的讀/寫控制信號。上述3種操作,被操作的數(shù)據(jù)都不進入DMAC內(nèi)部,而且校驗方式也僅是由DMAC控制系統(tǒng)總線,并響應I/O設備的DMA請求,在每個DMA周期向I/O設備發(fā)出一個DMA響應信號DACK。7.4
直接存儲器存?、艽鎯ζ鳌鎯ζ鱾魉汀?237進行存儲器之間的數(shù)據(jù)塊傳送操作時,由通道0提供源地址,通道1提供目的地址和進行字節(jié)計數(shù)。這種傳送需要兩個總線周期:第1個總線周期先將源地址內(nèi)的數(shù)據(jù)讀入8237的暫存器;第2個總線周期再將暫存器內(nèi)容放到數(shù)據(jù)總線上,然后在寫信號的控制下,將數(shù)據(jù)總線上的數(shù)據(jù)寫入目的地址的存儲器單元。7.4
直接存儲器存取5.8237的控制字和編程⑴內(nèi)部寄存器①當前地址寄存器:每個通道都有一個16位的當前地址寄存器。由它提供訪問存儲器的地址。在每次數(shù)據(jù)傳送之后,地址值自動增1或減1。②當前字節(jié)計數(shù)寄存器:每個通道都有一個16位長的當前字節(jié)計數(shù)寄存器,保存當前DMA傳送的字節(jié)數(shù)。實際傳送的字節(jié)數(shù)比編程寫入的字節(jié)數(shù)大1,每次傳送以后,字節(jié)計數(shù)器減1。當其內(nèi)容從0減1而到達FFFFH時,產(chǎn)生終止計數(shù)TC脈沖輸出。③基地址寄存器和基字節(jié)計數(shù)寄存器:每個通道均有一個16位的基地址寄存器和一個16位的基字節(jié)計數(shù)寄存器。它們用來存放所對應的地址寄存器和字節(jié)計數(shù)器的初始值。7.4
直接存儲器存?、苊罴拇嫫鳎菏荄MAC4個通道公用的一個8位寄存器。編程時,由CPU對它寫入命令字,而由復位信號(RESET)和軟件清除命令來清除它。其命令格式如圖7.23所示。圖7.23命令寄存器格式7.4
直接存儲器存?、莨ぷ鞣绞郊拇嫫鳎好總€通道都有一個8位的工作方式寄存器,用于指定DMA的操作類型、傳送方式、是否自動預置和傳送1B數(shù)據(jù)后地址是按增1還是減1規(guī)律修改。格式如圖7.24所示。圖7.24工作方式寄存器格式7.4
直接存儲器存?、拚埱蠹拇嫫鳎菏怯糜谟绍浖韱覦MA請求的設備。存儲器到存儲器傳送必須利用軟件產(chǎn)生DMA請求,且傳送操作必須是數(shù)據(jù)塊傳送方式。命令字格式如圖7.25所示圖7.25請求寄存器格式7.4
直接存儲器存?、咂帘渭拇嫫鳎好總€通道均有一位屏蔽標志位,其命令字有兩種格式。第一種格式用來單獨為每個通道的屏蔽位進行置位或復位;第二種格式同時設定4個通道的屏蔽標志。格式如圖7.26所示。7.4
直接存儲器存取注意:這兩種不同格式的命令字寫入DMAC時,有不同的口地址。寫單個通道屏蔽寄存器的口地址為0AH,同時寫4個通道的屏蔽位的口地址為0FH。例如,解除通道2的屏蔽,以便響應硬件的DMA請求。采取下述兩種方法之一清除屏蔽寄存器。方法一:使用單一通道屏蔽命令。MOVAL,00000010B;開放通道2OUTDMA+0AH,AL;寫單一屏蔽寄存器方法二:使用4位屏蔽命令。MOVAL,00001011B;僅開放通道2OUTDMA+0FH,AL;寫入4位屏蔽命令7.4
直接存儲器存?、酄顟B(tài)寄存器:是一個8位的寄存器,用來存放8237的狀態(tài)信息,可以由CPU讀出,格式如圖7.27所示。圖7.27狀態(tài)寄存器格式7.4
直接存儲器存?、釙捍婕拇嫫鳎簽?位的寄存器,在存儲器至存儲器傳送期間,用來暫存從源地址單元讀出的數(shù)據(jù)。用RESET信號可以清除此暫存器。⑩軟件命令:8237設置了3條軟件命令。只要對某個適當?shù)刂愤M行寫入操作就會自動執(zhí)行清除命令。它們是:主清除命令:在8237內(nèi)部所起的作用和硬件復位信號RESET相同。清除字節(jié)指示器命令:字節(jié)指示器又稱為先/后觸發(fā)器或字節(jié)地址指示觸發(fā)器。CPU首先使用清除字節(jié)指示器命令來清除字節(jié)指示器,使CPU第1次訪問16位寄存器的低字節(jié)。清除屏蔽寄存器命令:清除4個通道的全部屏蔽位7.4
直接存儲器存?、苾?nèi)部寄存器的尋址CPU對狀態(tài)寄存器和控制寄存器的尋址及給出的軟件命令歸納如表7.5所示。表7.58237內(nèi)部寄存器口地址分配主片的I/O口地址(H)從片的I/O口地址(H)寄存器IN(讀)OUT(寫)0000C0CH0當前地址寄存器CH0基址與當前地址寄存器0010C2CH0當前字節(jié)寄存器CH0基字計數(shù)器與當前字節(jié)寄存器0020C4CH1當前地址寄存器CH1基址與當前地址寄存器0030C6CH1當前字節(jié)寄存器CH1基字計數(shù)器與當前字節(jié)寄存器0040C8CH2當前地址寄存器CH2基址與當前地址寄存器0050CACH2當前字節(jié)寄存器CH2基字計數(shù)器與當前字節(jié)寄存器0060CCCH3當前地址寄存器CH3基址與當前地址寄存器0070CECH3當前字節(jié)寄存器CH3基字計數(shù)器與當前字節(jié)寄存器0080D0狀態(tài)寄存器命令寄存器0090D2
請求寄存器00A0D4
寫屏蔽寄存器單個屏蔽位00B0D6
工作方式寄存器00C0D8
清除字節(jié)指令器(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軍隊文職人員招聘之軍隊文職法學能力測試試卷A卷附答案
- 2025年軍隊文職人員招聘之軍隊文職政治學全真模擬考試試卷A卷含答案
- 2019-2025年消防設施操作員之消防設備中級技能題庫檢測試卷B卷附答案
- 2024河北省中考英語真題含答案
- 2025年全國碩士研究生考試《數(shù)學三》模擬試卷一
- 智慧稅務知識培訓班課件
- 2025年法治政府建設情況報告篇二
- 古詩詞賞析唐詩中的意境之美
- 《地球的圈層結構》高中地理知識普及教案
- 產(chǎn)品質(zhì)量承諾及保障措施-產(chǎn)品質(zhì)量承諾
- 11471勞動爭議處理(第5章)
- 高考語文文化常識之天文歷法課件
- 2023年版義務教育音樂課程標準(標準版)
- 長短樁組合樁基礎的分析
- 北航畢業(yè)設計論文模板
- 留守兒童風險評估表
- LNG生產(chǎn)操作規(guī)程要點
- 教學能力大賽決賽獲獎-教學實施報告-(完整圖文版)
- 完整戶口本英文翻譯模板(共4頁)
- 高二通用技術-經(jīng)典結構的欣賞課件說課講解
評論
0/150
提交評論