第11章輸入輸出接口_第1頁
第11章輸入輸出接口_第2頁
第11章輸入輸出接口_第3頁
第11章輸入輸出接口_第4頁
第11章輸入輸出接口_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第11章輸入輸出接口本章主要內(nèi)容(1)I/O接口的基本概念(2)I/O控制方式(3)DMA接口技術(shù)(4)可編程DMA控制器823711.1I/O接口的基本概念11.1.1I/O接口的基本功能

(1)數(shù)據(jù)緩沖(2)提供聯(lián)絡(luò)信息(3)信號與信息格式的轉(zhuǎn)換(4)設(shè)備選擇(5)中斷管理(6)可編程功能11.1.2I/O接口的基本結(jié)構(gòu)I/O接口的基本結(jié)構(gòu)如圖11.1所示。cpu外圍設(shè)備數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器狀態(tài)寄存器控制寄存器中斷控制邏輯數(shù)據(jù)總線地址總線控制總線圖11.1I/O接口的基本結(jié)構(gòu)I/O接口11.1.3I/O端口的編址方式輸入輸出接口包含一組稱為I/O端口的寄存器。為了讓CPU能夠訪問這些I/O端口,每個I/O端口都需有自己的端口地址(或端口號)。在一個微型計算機系統(tǒng)中,如何編排這些I/O接口的端口地址,即所謂I/O端口的編址方式。常見的I/O端口編址方式有兩種:一種是I/O端口和存儲器統(tǒng)一編址,也稱存儲器映像的I/O(MemoryMappedI/O)方式;另一種是I/O端口和存儲器分開編址,也稱I/O映像的I/O(I/OMappedI/O)方式。1.I/O端口和存儲器統(tǒng)一編址(Memory-mappedI/O)I/O端口和存儲器統(tǒng)一編址的地址空間分布情況如圖11.2所示。I/O端口存儲單元I/O地址空間存儲器地址空間整個地址空間圖11.2I/O端口和存儲器統(tǒng)一編址這種編址方式的優(yōu)點是,可以用訪向存儲器的指令來訪問I/O端口,而訪問存儲器的指令功能比較強,不僅有一般的傳送指令,還有算術(shù)、邏輯運算指令,以及各種移位、比較指令等,并且可以實現(xiàn)直接對I/O端口內(nèi)的數(shù)據(jù)進行處理。例如,若一個存儲器映像的I/O端口地址為3000H,則可以直接用指令“ADDAL,DS:[3000H]”對端口的內(nèi)容進行算術(shù)運算。缺點是:由于I/O端口占用了一部分存儲器地址空間,因而使用戶的存儲地址空間相對減小;另外,由于利用訪問存儲器的指令來進行I/O操作,指令的長度通常比單獨I/O指令要長,因而指令的執(zhí)行時間也較長。微處理器MC6800系列、6502系列以及MC680x0系列采用這種編址方式。2.I/O端口和存儲器單獨編址

(I/O-mappedI/O)I/O端口和存儲器單獨編址的地址空間分布如圖11.3所示。存儲單元存儲地址空間I/O端口I/O地址空間圖11.3I/O端口和存儲器單獨編址這種編址方式的優(yōu)點是:第一,I/O端口不占用存儲器地址,故不會減少用戶的存儲器地址空間;第二,單獨I/O指令的地址碼較短,地址譯碼方便,I/O指令短,執(zhí)行速度快;第三,采用單獨的I/O指令,使程序中I/O操作和其他操作層次清晰,便于理解。這種編址方式的缺點是:第一,單獨I/O指令的功能有限,只能對端口數(shù)據(jù)進行輸入/輸出操作,不能直接進行移位、比較等其他操作;第二,由于采用了專用的I/O操作時序及I/O控制信號線,因而增加了微處理器本身控制邏輯的復(fù)雜性。微處理器Z80系列、Intel80x86系列采用了這種編址方式。11.1.4I/O接口的地址分配表11-1系統(tǒng)板I/O端口地址分配地址空間器件/接口適配器實際使用端口地址0000~001FHDMA控制器823700~0FH0020~003FH中斷控制器8259A20~21H0040~005FH計數(shù)器/定時器825340~43H0060~007FH并行接口片8255A60~63H0080~009FHDMA頁面寄存器(74LS670)80~83H00A0~00BFHNMI寄存器A0H00C0~01FFH未用表11-2擴展槽I/O端口地址分配地址空間器件/接口適配器地址空間器件/接口適配器200~20FH游戲卡380~38FHSDLC通信卡210~217H擴充部件390~3AFH未用218~2F7H未用3B0~3BFH單顯/打印卡2F8~2FFH異步通信卡(COM2)3C0~3CFH未用300~31FH未用3D0~3DFH彩顯/圖形卡320~32FH硬盤卡3E0~3EFH未用330~377H未用3F0~3F7H軟盤卡378~37FH打印卡3F8~3FFH異步通信卡(COM1)11.1.5I/O接口的地址譯碼及片選信號的產(chǎn)生在一個微機系統(tǒng)中通常具有多臺外設(shè),當(dāng)CPU與外設(shè)進行通信時,需要對各個設(shè)備所對應(yīng)的接口芯片進行邏輯選擇,從而實現(xiàn)與相應(yīng)的設(shè)備進行數(shù)據(jù)交換。這種邏輯選擇功能是由I/O接口電路中的地址譯碼器實現(xiàn)的。目前常見的一種做法是:先通過對I/O端口地址的某幾位高位地址進行譯碼,產(chǎn)生有效的片選信號,從而選中對應(yīng)的接口芯片,再利用I/O端口地址的低位地址作為對接口芯片內(nèi)部有關(guān)寄存器的選擇。例如,在IBMPC/XT微機中,其系統(tǒng)板上有數(shù)片I/O接口芯片,其中包括DMA控制器8237、中斷控制器8259A、并行接口8255A、計數(shù)器/定時器8253等。這些接口芯片必須是在相應(yīng)的片選信號有效時才能工作。圖11.4所示的就是在該微機系統(tǒng)中片選信號的產(chǎn)生電路。AY0

BY1

CY2Y3Y4G2B

Y5

G2AY6

G1Y7A5A6A874LS138A7A9AENPPICST/CCSINTRCSDMACSIOWWRTDMAPG(寫DMA頁面寄存器)WRTNMIREG(寫NMI屏蔽寄存器) 圖11.4片選信號的產(chǎn)生11.2I/O控制方式主機與外圍設(shè)備之間的數(shù)據(jù)傳送控制方式(即I/O控制方式)主要有三種:程序控制方式、中斷控制方式和直接存儲器存取(DMA)方式。11.2.1程序控制方式程序控制方式是指在程序控制下進行的數(shù)據(jù)傳送方式。它又分為無條件傳送和程序查詢傳送兩種。1.無條件傳送方式優(yōu)點:缺點:

2.程序查詢傳送方式優(yōu)點:缺點:準(zhǔn)備好?讀取狀態(tài)信息輸入數(shù)據(jù)是否圖11.5查詢式輸入程序流程圖忙?讀取狀態(tài)信息輸出數(shù)據(jù)否是圖11.6查詢式輸出程序流程圖11.2.2中斷控制方式與程序查詢方式相比,中斷控制方式的數(shù)據(jù)交換具有如下特點:(1)提高了CPU的工作效率;(2)外圍設(shè)備具有申請服務(wù)的主動權(quán);(3)CPU可以和外設(shè)并行工作;(4)可適合實時系統(tǒng)對I/O處理的要求。11.2.3DMA方式1.DMA的基本概念采用程序控制方式以及中斷方式進行數(shù)據(jù)傳送時,都是靠CPU執(zhí)行程序指令來實現(xiàn)數(shù)據(jù)的輸入/輸出的。采用程序控制方式及中斷方式時,數(shù)據(jù)的傳輸率不會很高。對于高速外設(shè),如高速磁盤裝置或高速數(shù)據(jù)采集系統(tǒng)等,采用這樣的傳送方式,往往滿足不了其數(shù)據(jù)傳輸率的要求。例如,對于磁盤裝置,其數(shù)據(jù)傳輸率通常在20萬字節(jié)/秒以上,即傳輸一個字節(jié)的時間要小于5μs。對于通常的PC機來說,執(zhí)行一條程序指令平均需要幾μs時間。顯然,采用程序控制或中斷方式不能滿足這種高速外設(shè)的要求。由此產(chǎn)生不需要CPU干預(yù)(不需CPU執(zhí)行程序指令),而在專門硬件控制電路控制之下進行的外設(shè)與存儲器間直接數(shù)據(jù)傳送的方式,稱為直接存儲器存取(DirectMemoryAccess),簡稱DMA方式。這一專門的硬件控制電路稱為DMA控制器,簡稱DMAC。CPU外設(shè)存儲器總線:執(zhí)行程序指令的數(shù)據(jù)傳送路徑;:DMA方式的數(shù)據(jù)傳送路徑圖11.7兩種不同的數(shù)據(jù)傳送路徑內(nèi)存外設(shè)DMAC輸出輸入外設(shè)外設(shè)DMAC內(nèi)存內(nèi)存DMAC圖11.8DMA傳送的幾種形式11.3DMA接口技術(shù)11.3.1DMA控制器的基本功能(1)能接收I/O接口的DMA請求,并向CPU發(fā)出總線請求信號;(2)當(dāng)CPU發(fā)出總線回答信號后,接管對總線的控制,進入DMA傳送過程;(3)能實現(xiàn)有效的尋址,即能輸出地址信息并在數(shù)據(jù)傳送過程中自動修改地址;(4)能向存儲器和I/O接口發(fā)出相應(yīng)的讀/寫控制信號;(5)能控制數(shù)據(jù)傳送的字節(jié)數(shù),控制DMA傳送是否結(jié)束;(6)在DMA傳送結(jié)束后,能釋放總線給CPU,恢復(fù)CPU對總線的控制。11.3.2DMA控制器的一般結(jié)構(gòu)一個單通道DMA控制器的一般結(jié)構(gòu)及其與I/O接口的連接如圖11.9所示。圖11.9的上半部分是I/O接口,下半部分是DMA控制器。計數(shù)結(jié)束信號(可作為中斷請求信號)控制寄存器

狀態(tài)寄存器數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器控制寄存器

狀態(tài)寄存器地址寄存器字節(jié)計數(shù)寄存器數(shù)據(jù)總線控制總線數(shù)據(jù)總線控制總線地址總線地址總線地址譯碼器DMA控制器DMA請求DMA響應(yīng)中斷請求外設(shè)I/O接口總線回答總線請求圖11.9DMA控制器的一般結(jié)構(gòu)及其與I/O接口的連接11.3.3DMA控制器的工作方式DMA控制器的工作方式通常有“單字節(jié)傳輸方式”、“塊傳輸方式”以及“請求傳輸方式”等,下面分別予以說明。1.單字節(jié)傳輸方式在單字節(jié)傳輸方式下,DMA控制器每次請求總線只傳送一個字節(jié)數(shù)據(jù),傳送完后即釋放總線控制權(quán)。在此方式下,總線控制權(quán)處于CPU與DMA控制器交替控制之中,其間,總線控制權(quán)經(jīng)過多次交換。2.塊傳輸方式(也稱成組傳輸方式)塊傳輸方式是指DMA控制器每次請求總線即連續(xù)傳送一個數(shù)據(jù)塊,待整個數(shù)據(jù)塊全部傳送完成后再釋放總線控制權(quán)。3.請求傳輸方式每傳輸完一個字節(jié),DMA控制器都要檢測由I/O接口發(fā)來的“DMA請求”信號是否仍然有效,如果該信號仍有效,則繼續(xù)進行DMA傳輸;否則,就暫停傳輸,交還總線控制權(quán)給CPU,直至“DMA請求”信號再次變?yōu)橛行?,?shù)據(jù)塊傳輸則從剛才暫停的那一點繼續(xù)進行下去。11.3.4DMA工作過程在DMA方式下,往往傳送的是一個數(shù)據(jù)塊,但傳送這個數(shù)據(jù)塊的具體操作方式,可以采用上面介紹的單字節(jié)傳輸方式,也可采用塊傳輸或請求傳輸方式。下面先以從內(nèi)存輸出一個字節(jié)數(shù)據(jù)到外設(shè)的DMA傳送過程為例,具體說明DMA的操作過程。然后再給出以DMA方式輸入一個數(shù)據(jù)塊的工作過程。以DMA方式從內(nèi)存輸出一個字節(jié)數(shù)據(jù)到外設(shè)的具體工作過程如圖11.10中第①~⑨步所示。(6)內(nèi)存把數(shù)據(jù)送數(shù)據(jù)總線(7)接口鎖存數(shù)據(jù)內(nèi)存接口DMA控制器I/O設(shè)備8086和總線控制邏輯HOLDHLDA(1)接口準(zhǔn)備就緒,發(fā)DMA請求(2)發(fā)總線請求(3)總線允許(5)DMA請求得到確認(rèn)(9)8086收回總線控制權(quán)(8)撤銷總線請求(4)DMA控制器把地址送地址總線數(shù)據(jù)總線控制總線地址總線圖11.10以DMA方式輸出一個字節(jié)數(shù)據(jù)的工作過程若從外設(shè)往內(nèi)存輸入一個數(shù)據(jù)塊(輸入過程),在單字節(jié)傳輸方式下,其主要工作過程為:(1)I/O接口向DMA控制器發(fā)送DMA請求信號;(2)DMA控制器向CPU發(fā)總線請求信號,當(dāng)?shù)玫紺PU送來的總線允許信號后,DMA控制器獲得總線控制權(quán);(3)DMA控制器將其地址寄存器的內(nèi)容送到地址總線上。(4)DMA控制器往I/O接口發(fā)送DMA響應(yīng)信號,并接著發(fā)出讀I/O接口信號IOR,令I(lǐng)/O接口把數(shù)據(jù)送到數(shù)據(jù)總線上;(5)DMA控制器發(fā)出存儲器寫信號MEMW,將數(shù)據(jù)傳送到由地址總線上的地址所指向的內(nèi)存單元;(6)DMA控制器放棄對總線的控制權(quán);(7)地址寄存器加1;(8)字節(jié)計數(shù)寄存器減1;(9)如果字節(jié)計數(shù)寄存器的值不為零,則返回第一步,否則結(jié)束。11.4可編程DMA控制器8237DMAChip8237A----ADetourHighwayinthePC.Intel8237是一種功能很強的可編程DMA控制器,廣泛應(yīng)用于微型計算機系統(tǒng)中。采用5MHz時鐘時,其傳輸速率可達1.6M字節(jié)/秒;一片8237內(nèi)部有四個獨立的DMA通道,每個通道一次DMA傳送的最大長度可達64K字節(jié)。每個通道的DMA請求都可以分別允許和禁止;不同通道的DMA請求有不同的優(yōu)先級,優(yōu)先級可以是固定的,也可以是循環(huán)的(可編程設(shè)定);四個通道可以分時地為四個外部設(shè)備實現(xiàn)DMA傳送,也可以同時使用其中的通道0和通道1實現(xiàn)存儲器到存儲器的直接傳送,還可以用多片8237進行級聯(lián),從而構(gòu)成更多的DMA通道。IntelEnable/DisableControlofIndividualDMARequestFourIndependentDMAChannelsIndependentAutoinitializationofallChannelsMemory-to-MemoryTransfersMemoryBlockInitializationAddressIncrementorDecrementHighPerformance:Transfersupto1.6MBytes/Secondwith5MHz8237-2DirectlyExpandabletoanyNumberofChannelsEndofProcessInputforTerminatingTransfersSoftwareDMARequestsIndependentPolarityControlforDREQandDACKSignals8237/8237-2HIGH

PERFORMANCEPROGRAMMABLEDMACONTROLLER

11.4.18237的結(jié)構(gòu)

DMA控制器8237的結(jié)構(gòu)框圖及在系統(tǒng)中的有關(guān)邏輯如圖11.11所示。圖中只畫了一個通道的具體情況,其他通道與此相同。命令寄存器狀態(tài)寄存器模式寄存器基字節(jié)數(shù)寄存器基地址寄存器當(dāng)前字節(jié)數(shù)寄存器當(dāng)前地址寄存器暫存寄存器請求位屏蔽位通道0(6位)(8位)(8位)(8位)通道1通道3通道2___IOR______MEMR____IOW______MEMWREADYRESETDREQ0DACK0DREQ1DACK1DREQ2DACK2DREQ3DACK3HRQHLDACLKAENADSTBDB7~DB0A3~A0A7~A4__CSA15~A8A7~A0___OESTB8位鎖存器地址譯碼器_IO/M數(shù)據(jù)總線使CPU的總線信號無效HOLDHLDAClock____EOP+5VVccGND圖11.118237的結(jié)構(gòu)及有關(guān)邏輯表11-38237內(nèi)部寄存器寄存器名稱位數(shù)數(shù)量CPU訪問方式基地址寄存器16位4只寫基字節(jié)計數(shù)寄存器16位4只寫當(dāng)前地址寄存器16位4可讀可寫當(dāng)前字節(jié)計數(shù)寄存器16位4可讀可寫臨時地址寄存器16位4不可訪問臨時字節(jié)計數(shù)寄存器16位4不可訪問命令寄存器8位1只寫狀態(tài)寄存器8位1只讀暫存寄存器8位1只讀模式寄存器6位4只寫屏蔽寄存器4位1只寫請求寄存器4位1只寫11.4.28237的引腳8237芯片采用40個引腳雙列直插封裝,其引腳配置(pinconfiguration)如圖11.12所示。

圖11.128237的引腳配置8237/8237-2A7Vcc(+5V)A0A1A2A3EOPA4A5A6DB0DB1IORHRQAENADSTBHLDAREADY(NOTE11)MEMWMEMRIOWCSRESETCLKDB2DB5DACK0DB4DB3DB7DB6DACK1DACK2DACK3DREQ3DREQ2DREQ1DREQ0(GND)Vss1109876543211201918171615131240313233343536373839302122242526272829142311.4.38237的工作方式

8237具有四種工作方式:1.單字節(jié)傳送方式(singletransfermode)2.塊傳送方式(blocktransfermode)3.請求傳送方式(demandtransfermode)4.級聯(lián)方式(cascademode)在級聯(lián)方式下,將多個8237級聯(lián)起來,以擴展DMA通道數(shù)。后一級的HRQ和HLDA信號連到前一級的DREQ和DACK上,如圖11.13所示。微處理器HOLD

HLDADREQ0DACK0

HRQ.HLDA..

8237

DREQ3DACK38237HRQHLDAHRQHLDA8237……第二級第一級圖11.138237的級聯(lián)DirectlyExpandabletoanyNumberofChannels另外,在前三種工作方式下,DMA傳送有三種類型,它們是:讀傳送、寫傳送和校驗傳送。DMA讀傳送是指把數(shù)據(jù)由存儲器傳送至I/O接口(可簡記為M→I/O),操作時先由MEMR有效從存儲器讀出數(shù)據(jù)放在數(shù)據(jù)總線上,然后再由IOW有效把數(shù)據(jù)寫入I/O接口;DMA寫傳送是指把數(shù)據(jù)由I/O接口傳送至存儲器,操作時先由IOR有效從I/O接口讀出數(shù)據(jù)放在數(shù)據(jù)總線上,然后再由MEMW有效把數(shù)據(jù)寫入存儲器.校驗傳送也被稱為假傳送(pseudotransfers)。在校驗傳送時,8237雖然也像讀傳送或?qū)憘魉鸵粯拥禺a(chǎn)生地址以及響應(yīng)EOP信號等,但存儲器和I/O接口的讀、寫控制信號均處于無效狀態(tài),所以實際上并不進行真正的數(shù)據(jù)傳送。這種傳送類型一般是用于對DMAC器件測試時使用。11.4.48237的寄存器及有關(guān)問題的說明1.當(dāng)前地址寄存器2.當(dāng)前字節(jié)計數(shù)寄存器3.基地址和基字節(jié)計數(shù)寄存器基寄存器的內(nèi)容不能被CPU讀出,而當(dāng)前寄存器的內(nèi)容可以被CPU讀出。4.模式寄存器模式字的格式如圖11.14所示。D7D6D5D4D3D2D1D00地址增一1地址減一0禁止自動初始化1允許自動初始化00選擇通道001選擇通道110選擇通道211選擇通道300校驗傳送01寫傳送10讀傳送11非法XX若D7D6=1100請求傳送方式01單字節(jié)傳送方式10塊傳送方式11級聯(lián)方式圖11.14模式字格式5.命令寄存器命令寄存器是四個通道公用的一個8位寄存器,用以控制整個8237的操作。一片8237只有一個命令寄存器,其內(nèi)容對四個通道都有效。編程時,由CPU對它寫入命令字,命令字的格式如圖11.15所示。D7D6D5D4D3D2D1D00DACK低電平有效1DACK高電平有效0DREQ高電平有效1DREQ低電平有效0正常寫1擴展寫X若D3=10固定優(yōu)先級1循環(huán)優(yōu)先級0禁止存儲器到存儲器傳送1允許存儲器到存儲器傳送0禁止通道0地址保存1允許通道0地址保存X若D0=00控制器允許1控制器禁止0普通時序1壓縮時序X若D0=1圖11.15命令寄存器(1)D0位用來規(guī)定是否工作在存儲器到存儲器的傳送方式。當(dāng)8237工作在這種傳送方式時,要使用通道0和通道1兩個DMA通:通道0的地址寄存器編程為源區(qū)地址;通道1的地址寄存器編程為目的區(qū)地址;通道1的字節(jié)計數(shù)寄存器編程為傳送的字節(jié)數(shù)。由于此傳送過程沒有外部設(shè)備參與,因此不需一個外部引入的DREQ信號來啟動。傳送是由設(shè)置通道0的軟件DMA請求來啟動的。每傳送一個字節(jié)要用8個時鐘周期,其中前4個時鐘周期以通道0的當(dāng)前地址寄存器內(nèi)容為源地址讀出數(shù)據(jù)送入暫存寄存器,后4個時鐘周期以通道1的當(dāng)前地址寄存器內(nèi)容為目的地址把暫存寄存器中的數(shù)據(jù)寫入目的區(qū)。每傳送一個字節(jié),源地址和目的地址都要修改(增1或減1),字節(jié)數(shù)減1。直至通道1的字節(jié)計數(shù)結(jié)束,產(chǎn)生EOP有效信號,才停止DMA傳送。(2)D1位用來設(shè)定在存儲器到存儲器傳送的整個過程中,通道0中的源地址是否保持不變。若D1=1,則通道0中的源地址保持不變,DMA傳送的結(jié)果是將源區(qū)的同一個數(shù)據(jù)字節(jié)寫入到整個目的區(qū)中;若D1=0,則表示通道0中的源地址可以修改。若D0=0,則不允許存儲器到存儲器的傳送,此時D1位無意義。(3)D2位是用于允許(Enable)或禁止(Disable)8237工作的控制位。(4)D3、D5位是與時序有關(guān)的控制位,詳見后面的時序說明。(5)D4位用來設(shè)定通道優(yōu)先權(quán)結(jié)構(gòu)。當(dāng)D4=0時,為固定優(yōu)先權(quán),通道0的優(yōu)先權(quán)最高,其他通道的優(yōu)先權(quán)隨通道號的增大而遞減,通道3的優(yōu)先權(quán)最低;當(dāng)D4=1時,為循環(huán)優(yōu)先權(quán),即在每次DMA服務(wù)之后,各個通道的優(yōu)先權(quán)都發(fā)生變化,剛剛服務(wù)過的通道其優(yōu)先權(quán)變?yōu)樽畹停竺嫱ǖ赖膬?yōu)先權(quán)變?yōu)樽罡?。如?1-4所示。表11-4優(yōu)先權(quán)循環(huán)的情況第一次服務(wù)第二次服務(wù)第三次服務(wù)最高優(yōu)先權(quán)02服務(wù)3服務(wù)1服務(wù)3請求02請求01最低優(yōu)先權(quán)312需注意的是,DMA的優(yōu)先權(quán)排序只是用來決定同時請求DMA服務(wù)的通道的響應(yīng)次序,而任何一個通道一旦進入DMA服務(wù),其他通道都不能打斷它的服務(wù),這一點和中斷服務(wù)的情況是不同的。(6)D6、D7位用于設(shè)定DREQ和DACK的有效電平極性。6.請求寄存器8237的每個通道除了可以響應(yīng)硬件的DMA請求信號(DREQ)外,當(dāng)其工作在塊傳送方式時也可以響應(yīng)由軟件發(fā)出的DMA請求。軟件的DMA請求是通過使相應(yīng)通道的“請求位”(requestbit)置位來實現(xiàn)的,它等效于外部產(chǎn)生一個有效的DREQ信號。8237每一個通道有一位“請求位”,四個通道的請求位構(gòu)成一個4位的請求寄存器。對請求寄存器的命令字(請求命令字)格式如圖11.16所示。D7D6D5D4D3D2D1D000選擇通道001選擇通道110選擇通道211選擇通道30清除請求1設(shè)置請求無關(guān)圖11.16請求命令字一個通道的DMA傳輸結(jié)束后,其請求位被清除。復(fù)位操作將使整個請求寄存器清除。只有在塊傳送方式時,才允許使用軟件請求,若用于存儲器到存儲器的傳送,則必須用對通道0的軟件請求來啟動傳送過程。7.屏蔽寄存器8237每個通道有一位“屏蔽位”(maskbit),當(dāng)其通道的“屏蔽位”置1時,則外部對應(yīng)的DREQ信號被屏蔽,不予響應(yīng),從而禁止了該通道的DMA操作。四個通道的“屏蔽位”構(gòu)成一個4位的屏蔽寄存器。有兩種屏蔽寄存器的命令字格式:

一種是單獨對某一個通道的屏蔽位進行置位或復(fù)位,如圖11.17(a)所示;另一種是可以同時設(shè)定四個通道的屏蔽位,也稱綜合屏蔽命令字,如圖11.17(b)所示。D7D6D5D4D3D2D1D000選擇通道001選擇通道110選擇通道211選擇通道30清除屏蔽位1置位屏蔽位無關(guān)(a)圖11.17屏蔽字的兩種格式D7D6D5D4D3D2D1D0無關(guān)0清通道0屏蔽位1置位通道0屏蔽位0清通道1屏蔽位1置位通道1屏蔽位0清通道3屏蔽位1置位通道3屏蔽位0清通道2屏蔽位1置位通道2屏蔽位(b)圖11.17屏蔽字的兩種格式8.狀態(tài)寄存器8237有一個可由CPU讀取的狀態(tài)寄存器,如圖11.18所示。CPU通過讀取狀態(tài)寄存器的內(nèi)容可以了解DMA進行的情況。D7D6D5D4D3D2D1D01通道3請求1通道2請求1通道1請求1通道0請求1通道0傳輸結(jié)束1通道1傳輸結(jié)束1通道2傳輸結(jié)束1通道3傳輸結(jié)束圖11.18狀態(tài)存儲器11.4.5特殊軟件命令CPU向8237輸出的軟件命令可分為兩種不同類型,一類是不僅與寫入的端口地址有關(guān)(不同的軟件命令必須寫入到不同的端口之中),也與寫入軟件命令時數(shù)據(jù)總線上的位模式(bitpattern)有關(guān),即寫入指定端口的軟件命令應(yīng)有特定的數(shù)據(jù)格式。如前面介紹的模式字、命令字、屏蔽字等就屬這種類型。8237還有另一類軟件命令(特殊的軟件命令),它們只與寫入的端口地址有關(guān),而與寫入軟件命令時數(shù)據(jù)總線上的位模式無關(guān)(Theydonotdependonanyspecificbitpatternonthedatabus),即這些命令是8237直接對地址(A3~A0)和CS、IOW信號的譯碼產(chǎn)生的,并不使用數(shù)據(jù)總線。也就是說,在輸出特殊軟件命令時,只要往指定端口實施寫入操作即可,而無須通過數(shù)據(jù)總線輸出特定格式的控制字。8237有兩種特殊軟件命令:1.清除高/低觸位器(ClearFirst/LastFlipFlop)命令8237內(nèi)部有一個高/低觸發(fā)器,用以控制讀/寫16位寄存器的低字節(jié)和高字節(jié)。若該觸發(fā)器為“0”,則讀/寫低字節(jié);為“1”,則讀/寫高字節(jié)。每次復(fù)位后,此觸發(fā)器被清零。每當(dāng)對16位寄存器進行一次讀/寫操作,則此觸發(fā)器改變一次狀態(tài)。用戶可以用此軟件命令使高/低觸發(fā)器強制清零,以保證對16位寄存器的讀/寫是從低字節(jié)開始。2.主清除命令(MasterClear)該軟件命令與硬件的Reset信號作用相同,即它使命令、模式、狀態(tài)、請求、暫存器以及內(nèi)部的高/低觸發(fā)器清零,而使屏蔽寄存器置為全“1”。執(zhí)行主清除命令后,使8237進入空閑周期,以便對其編程。11.4.68237內(nèi)部寄存器的尋址一片8237占用16個連續(xù)的I/O端口地址。在片選信號CS有效的前提下,由地址信號A3~A0、IOR及IOW實現(xiàn)對8237內(nèi)部寄存器(I/O端口)的尋址。8237內(nèi)部寄存器的尋址情況如表11-5所示。表11-58237內(nèi)部寄存器的尋址A3A2A1A0通道號讀操作(IOR)寫操作(IOW)00000讀當(dāng)前地址寄存器寫基和當(dāng)前地址寄存器0001讀當(dāng)前字節(jié)計數(shù)寄存器寫基和當(dāng)前字節(jié)計數(shù)寄存器00101讀當(dāng)前地址寄存器寫基和當(dāng)前地址寄存器0011讀當(dāng)前字節(jié)計數(shù)寄存器寫基和當(dāng)前字節(jié)計數(shù)寄存器01002讀當(dāng)前地址寄存器寫基和當(dāng)前地址寄存器0101讀當(dāng)前字節(jié)計數(shù)寄存器寫基和當(dāng)前字節(jié)計數(shù)寄存器01103讀當(dāng)前地址寄存器寫基和當(dāng)前地址寄存器0111讀當(dāng)前字節(jié)計數(shù)寄存器寫基和當(dāng)前字節(jié)計數(shù)寄存器1000四個通道公用讀狀態(tài)寄存器寫命令寄存器1001--寫請求寄存器1010--寫屏蔽寄存器某一位1011--寫模式寄存器1100--清除高低位觸發(fā)器命令1101讀暫存寄存器主清除命令1110----1111--寫屏蔽寄存器所有位11.4.88237的頁面寄存器由于8237只能輸出16位地址,所以在其控制下進行的DMA傳送的最大尋址空間為216。對于更大的DMA傳送地址空間,則必須設(shè)法提供除此16位地址以外的高位地址。例如在IBMPC/XT微機系統(tǒng)中,內(nèi)存地址為20位(A19~A0),所以高4位地址(A19~A16)不能由8237提供。為此,系統(tǒng)中專門為每個DMA通道增設(shè)了一個4位I/O端口,在數(shù)據(jù)塊傳送之前可單獨對其編程,用以提供高4位地址。這4位I/O端口也稱DMA頁面寄存器。IBMPC/XT的頁面寄存器是由一個寄存器堆(74LS670)構(gòu)成,內(nèi)含4個4位寄存器,可用來存放4個DMA通道的高4位地址A19~A16。它與8237送出的16位地址一起形成20位地址A19~A0,用這20位地址信息即可尋址全部1MB存儲單元。IBMPC/XT中分配的頁面寄存器的端口地址為:通道1——83H;通道2——81H;通道3——82H。由于在該系統(tǒng)中8237的通道0是用于對動態(tài)RAM刷新操作,而動態(tài)RAM刷新時不需要使用頁面寄存器,因而也就不需要分配通道0的頁面寄存器端口地址。11.4.98237的編程1.編程步驟8237的編程通常可按如下步驟進行:(1)輸出主清除命令;(2)置頁面寄存器;(3)寫入基和當(dāng)前地址寄存器;(4)寫入基和當(dāng)前字節(jié)計數(shù)寄存器;(5)寫入模式寄存器;(6)寫入命令寄存器;(7)寫入屏蔽寄存器;(8)寫入請求寄存器。其中第(8)步是采用軟件DMA請求時所需要的,由此可將相應(yīng)的請求命令字寫入指定通道,從而啟動DMA傳送過程;若為硬件DMA請求,則無需此步驟,只要在完成了(1)~(7)步編程后,由通道的DREQ信號即可啟動DMA傳送過程。2.編程舉例在IBMPC系統(tǒng)中,試?yán)?237通道1,將內(nèi)存8000H:0H開始的16K字節(jié)數(shù)據(jù)傳送至磁盤(地址增量傳送)。要求采用塊傳送方式,傳送完不自動預(yù)置,DREQ和DACK均為高電平有效,固定優(yōu)先級,普通時序,不擴展寫信號。系統(tǒng)中8237的端口地址為00H~0FH。通道1“頁面寄存器”的端口地址為83H。10001001D7D6D5D4D3D2D1D089H塊方式讀傳送通道1地址增量非自動初始化(1)確定模式字D7D6D5D4D3D2D1D010000000(2)確定命令字非存儲器至存儲器傳送無意義控制器允許普通時序DACK高電平有效DR

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論