接口技術(shù)第9章DMA控制接口_第1頁(yè)
接口技術(shù)第9章DMA控制接口_第2頁(yè)
接口技術(shù)第9章DMA控制接口_第3頁(yè)
接口技術(shù)第9章DMA控制接口_第4頁(yè)
接口技術(shù)第9章DMA控制接口_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第第 9 章章 DMA控制接口控制接口2DMADMA控制接口控制接口n教學(xué)重點(diǎn)n 8237A的工作方式的工作方式n 8237A寄存器組的作用寄存器組的作用n 8237A寄存器組的編程寄存器組的編程注意復(fù)習(xí)第注意復(fù)習(xí)第8.1.2.38.1.2.3節(jié)節(jié) 直接存儲(chǔ)器存?。ㄖ苯哟鎯?chǔ)器存?。―MADMA)方式)方式34DMA控制器控制器8237An每個(gè)每個(gè)8237A芯片有芯片有4個(gè)個(gè)DMA通道,就是通道,就是有有4個(gè)個(gè)DMA控制器控制器n每個(gè)每個(gè)DMA通道具有不同的優(yōu)先權(quán)通道具有不同的優(yōu)先權(quán)n每個(gè)每個(gè)DMA通道可以分別允許和禁止通道可以分別允許和禁止n每個(gè)每個(gè)DMA通道有通道有4種工作方式種工作方式n

2、一次傳送的最大長(zhǎng)度可達(dá)一次傳送的最大長(zhǎng)度可達(dá)64KBn多個(gè)多個(gè)8237A芯片可以級(jí)連,擴(kuò)展通道數(shù)芯片可以級(jí)連,擴(kuò)展通道數(shù)58237A的外部引腳分類展開外部引腳分類展開外部引腳68237A的兩種工作狀態(tài)的兩種工作狀態(tài)8237A具有兩種工作狀態(tài)(工作周期)具有兩種工作狀態(tài)(工作周期)n空閑周期空閑周期:作為接口電路作為接口電路(slave角色角色),受,受CPU控制的控制的工作狀態(tài)工作狀態(tài)n有效周期有效周期:作為作為DMAC(bus master角色角色)控制控制DMA傳送的工作狀態(tài)傳送的工作狀態(tài)于是,引腳分成兩種作用于是,引腳分成兩種作用78237A引腳的兩種作用引腳的兩種作用81. 請(qǐng)求與響應(yīng)

3、信號(hào)請(qǐng)求與響應(yīng)信號(hào)nDREQ0DREQ3(Dma REQuest):DMA通道請(qǐng)求。通道請(qǐng)求。當(dāng)外設(shè)需要請(qǐng)求當(dāng)外設(shè)需要請(qǐng)求DMA服務(wù)時(shí),將服務(wù)時(shí),將DREQ信號(hào)置成有效信號(hào)置成有效電平,并要保持到產(chǎn)生響應(yīng)信號(hào)。電平,并要保持到產(chǎn)生響應(yīng)信號(hào)。nHRQ(Hold ReQuest):總線請(qǐng)求。總線請(qǐng)求。8237A輸出有輸出有效的效的HRQ高電平,向高電平,向CPU申請(qǐng)使用系統(tǒng)總線。申請(qǐng)使用系統(tǒng)總線。nHLDA(HoLD Acknowledge):總線響應(yīng)??偩€響應(yīng)。8237A接受來自接受來自CPU的響應(yīng)信號(hào)的響應(yīng)信號(hào)HLDA,取得了總線,取得了總線的控制權(quán)。的控制權(quán)。nDACK0DACK3(Dma

4、Acknowledge):DMA通道通道響應(yīng)。響應(yīng)。8237A使請(qǐng)求服務(wù)的通道產(chǎn)生相應(yīng)的使請(qǐng)求服務(wù)的通道產(chǎn)生相應(yīng)的DMA響應(yīng)響應(yīng)信號(hào)。信號(hào)。92. DMA傳送控制信號(hào)傳送控制信號(hào)nA0A7:地址線。輸出低:地址線。輸出低8位存儲(chǔ)器地址。位存儲(chǔ)器地址。nDB0DB7:數(shù)據(jù)線。輸出高:數(shù)據(jù)線。輸出高8位存儲(chǔ)器地址;位存儲(chǔ)器地址;存貯器與存貯器的傳送期間,用于數(shù)據(jù)傳送。存貯器與存貯器的傳送期間,用于數(shù)據(jù)傳送。nADSTB(ADress STroBe):地址選通。地址選通。DMA傳送開始時(shí),輸出高有效,把在傳送開始時(shí),輸出高有效,把在DB0DB7上輸出的高上輸出的高8位地址鎖存在外部鎖存器中。位地址鎖

5、存在外部鎖存器中。nAEN(Adress ENable):地址允許。輸出高地址允許。輸出高有效,將鎖存的高有效,將鎖存的高8位地址送入系統(tǒng)總線,與芯位地址送入系統(tǒng)總線,與芯片此時(shí)輸出的低片此時(shí)輸出的低8位地址組成位地址組成16位存儲(chǔ)器地址。位存儲(chǔ)器地址。102. DMA傳送控制信號(hào)傳送控制信號(hào)(續(xù))(續(xù))nMEMR*:存儲(chǔ)器讀。有效將數(shù)據(jù)從存儲(chǔ)器讀出:存儲(chǔ)器讀。有效將數(shù)據(jù)從存儲(chǔ)器讀出nMEMW*:存儲(chǔ)器寫。有效將數(shù)據(jù)寫入存儲(chǔ)器存儲(chǔ)器寫。有效將數(shù)據(jù)寫入存儲(chǔ)器nIOR*:I/O讀。有效將數(shù)據(jù)從外設(shè)讀出讀。有效將數(shù)據(jù)從外設(shè)讀出nIOW*:I/O寫寫。有效將數(shù)據(jù)寫入外設(shè)有效將數(shù)據(jù)寫入外設(shè)nREADY:

6、準(zhǔn)備好。準(zhǔn)備好。DMA傳送的傳送的S3下降沿檢測(cè)下降沿檢測(cè)到為低時(shí),插入等待狀態(tài)到為低時(shí),插入等待狀態(tài)Sw,直到,直到READY為為高才進(jìn)入第高才進(jìn)入第4個(gè)時(shí)鐘周期個(gè)時(shí)鐘周期S4。nEOP*(End Of Process):過程結(jié)束。:過程結(jié)束。DMA傳送過程結(jié)束,輸出一個(gè)低有效脈沖。外部輸傳送過程結(jié)束,輸出一個(gè)低有效脈沖。外部輸入低脈沖信號(hào),則終結(jié)入低脈沖信號(hào),則終結(jié)DMA傳送。傳送。 113. 處理器接口信號(hào)處理器接口信號(hào)nDB0DB7:數(shù)據(jù)線。用于:數(shù)據(jù)線。用于8237A與微處理與微處理器進(jìn)行數(shù)據(jù)交換。器進(jìn)行數(shù)據(jù)交換。nA0A3:地址線。用以選擇芯片內(nèi)部寄存器。:地址線。用以選擇芯片內(nèi)部

7、寄存器。nCS*:片選。低有效時(shí),微處理器與:片選。低有效時(shí),微處理器與8237A通通過數(shù)據(jù)線通信,主要完成對(duì)過數(shù)據(jù)線通信,主要完成對(duì)8237A的編程。的編程。nIOR*:I/O讀。讀取讀。讀取8237A內(nèi)部寄存器。內(nèi)部寄存器。nIOW*:I/O寫。寫入寫。寫入8237A內(nèi)部寄存器。內(nèi)部寄存器。nCLK:時(shí)鐘??刂菩酒瑑?nèi)部操作和數(shù)據(jù)傳輸。時(shí)鐘??刂菩酒瑑?nèi)部操作和數(shù)據(jù)傳輸。nRESET:復(fù)位。使復(fù)位。使8237A處于初始狀態(tài)。處于初始狀態(tài)。128237A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)n內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)相對(duì)比較復(fù)雜相對(duì)比較復(fù)雜n應(yīng)用觀點(diǎn),內(nèi)部主要由兩類寄存器組成應(yīng)用觀點(diǎn),內(nèi)部主要由兩類寄存器組成n通道寄存器

8、通道寄存器n控制和狀態(tài)寄存器控制和狀態(tài)寄存器138237A的內(nèi)部結(jié)構(gòu)框圖(圖的內(nèi)部結(jié)構(gòu)框圖(圖9-1)148237A的工作時(shí)序的工作時(shí)序空閑周期空閑周期n8237A的任一通道都沒有的任一通道都沒有DMA請(qǐng)求時(shí)請(qǐng)求時(shí)n8237A由微處理器控制作為一個(gè)接口芯片由微處理器控制作為一個(gè)接口芯片nCPU可可對(duì)對(duì)8237A編程,或從編程,或從8237A讀取狀態(tài)讀取狀態(tài)n8237A采樣采樣CS*選片信號(hào),該信號(hào)有效,選片信號(hào),該信號(hào)有效,CPU就就要對(duì)要對(duì)8237A進(jìn)行讀進(jìn)行讀/寫操作寫操作n8237A在每一個(gè)時(shí)鐘周期都在每一個(gè)時(shí)鐘周期都采樣通道的請(qǐng)求采樣通道的請(qǐng)求輸入信號(hào)輸入信號(hào)DREQ,該信號(hào)有效,就進(jìn)

9、入有效,該信號(hào)有效,就進(jìn)入有效周期周期158237A的工作時(shí)序的工作時(shí)序有效周期有效周期n8237A采樣到外設(shè)有采樣到外設(shè)有DMA請(qǐng)求,就脫請(qǐng)求,就脫離空閑周期進(jìn)入有效周期離空閑周期進(jìn)入有效周期n8237A作為系統(tǒng)的主控芯片,控制作為系統(tǒng)的主控芯片,控制DMA傳送操作傳送操作nDMA傳送借用系統(tǒng)總線完成,其控制傳送借用系統(tǒng)總線完成,其控制信號(hào)以及工作時(shí)序類似信號(hào)以及工作時(shí)序類似CPU總線周期總線周期(CPU總線周期用總線周期用T狀態(tài)描述,狀態(tài)描述,DMA操操作時(shí)序中用作時(shí)序中用S狀態(tài)描述狀態(tài)描述)16外設(shè)和內(nèi)存間的外設(shè)和內(nèi)存間的DMA數(shù)據(jù)傳送時(shí)序數(shù)據(jù)傳送時(shí)序n8237A設(shè)有設(shè)有7個(gè)獨(dú)立的操作狀

10、態(tài)(或周個(gè)獨(dú)立的操作狀態(tài)(或周期):期):SI,S0,S1-S4和和SW。178237A時(shí)序狀態(tài)流程圖時(shí)序狀態(tài)流程圖注意:?jiǎn)巫止?jié)方式和塊傳送的區(qū)別注意:?jiǎn)巫止?jié)方式和塊傳送的區(qū)別n每個(gè)狀態(tài)包含一個(gè)時(shí)鐘周期,每個(gè)狀態(tài)包含一個(gè)時(shí)鐘周期,7種狀態(tài)中:種狀態(tài)中:nSI為空閑狀態(tài),為空閑狀態(tài),8237A未收到未收到DMA請(qǐng)求信請(qǐng)求信號(hào)時(shí)進(jìn)入。號(hào)時(shí)進(jìn)入。SI狀態(tài),狀態(tài),CPU可對(duì)可對(duì)8237A進(jìn)行進(jìn)行編程。編程。nS0為從空閑狀態(tài)進(jìn)入為從空閑狀態(tài)進(jìn)入DMA過程的過渡周期;過程的過渡周期;nS1-S4為為DMA服務(wù)狀態(tài);服務(wù)狀態(tài);nSW為等待狀態(tài),慢速設(shè)備使用為等待狀態(tài),慢速設(shè)備使用8237A時(shí),時(shí),可在可在

11、S3和和S4間插入間插入SW周期。周期。1819nS0是個(gè)等待周期,這期間是個(gè)等待周期,這期間8237A等待等待CPU讓出總線,讓出總線,得到得到HLDA的響應(yīng)。的響應(yīng)。nS1狀態(tài)狀態(tài)輸出輸出16位存儲(chǔ)器地址位存儲(chǔ)器地址nAEN輸出高電平,表示輸出高電平,表示DMA傳送傳送n高高8位地址位地址A15A8送到送到DB7DB0引腳上,并發(fā)出引腳上,并發(fā)出ADSTB地址選通信號(hào)。地址選通信號(hào)。n地址的低地址的低8位由地址線位由地址線A7A0輸出。輸出。nS2狀態(tài)狀態(tài)輸出輸出DMA響應(yīng)信號(hào)和控制信號(hào)響應(yīng)信號(hào)和控制信號(hào)n向外設(shè)送出向外設(shè)送出DACK信號(hào)。信號(hào)。nDMA讀:讀:MEMR*和和IOW*有效有

12、效nDMA寫:寫:IOR*和和MEMW*有效有效nS3和和Sw狀態(tài)狀態(tài)檢測(cè)數(shù)據(jù)傳送是否能夠完成,決檢測(cè)數(shù)據(jù)傳送是否能夠完成,決定是否插入等待狀態(tài)定是否插入等待狀態(tài)SwnS4狀態(tài)狀態(tài)完成數(shù)據(jù)傳送完成數(shù)據(jù)傳送20DMA傳送時(shí)序傳送時(shí)序DB0DB7DACKADSTBHRQDREQCLKS1S0S0SiSiS3S2S4S3S2SiSiS4HLDAAENA0A7 MEMR(IOR)IOW(MEMW)218237A的工作方式的工作方式nDMA傳送方式(傳送方式(4種)種) 單字節(jié)傳送方式單字節(jié)傳送方式 數(shù)據(jù)塊傳送方式數(shù)據(jù)塊傳送方式 請(qǐng)求傳送方式請(qǐng)求傳送方式 級(jí)連方式級(jí)連方式nDMA傳送類型(傳送類型(3種

13、)種) DMA讀讀 DMA寫寫 DMA檢驗(yàn)檢驗(yàn)n存儲(chǔ)器到存儲(chǔ)器的傳送存儲(chǔ)器到存儲(chǔ)器的傳送221. DMA傳送單字節(jié)方式傳送單字節(jié)方式n每次每次DMA傳送時(shí)僅傳送一個(gè)字節(jié)傳送時(shí)僅傳送一個(gè)字節(jié)n傳送一個(gè)字節(jié)之后,字節(jié)數(shù)寄存器減傳送一個(gè)字節(jié)之后,字節(jié)數(shù)寄存器減1,地址,地址寄存器加寄存器加1或減或減1,HRQ變?yōu)闊o(wú)效變?yōu)闊o(wú)效n8237A釋放系統(tǒng)總線,將控制權(quán)還給釋放系統(tǒng)總線,將控制權(quán)還給CPUn若傳送后使字節(jié)數(shù)從若傳送后使字節(jié)數(shù)從0減到減到FFFFH,則終結(jié),則終結(jié)DMA傳送或重新初始化傳送或重新初始化n特點(diǎn):特點(diǎn):n一次傳送一個(gè)字節(jié),效率略低一次傳送一個(gè)字節(jié),效率略低nDMA傳送之間傳送之間CPU

14、有機(jī)會(huì)重新獲取總線控制權(quán)有機(jī)會(huì)重新獲取總線控制權(quán)232. DMA傳送數(shù)據(jù)塊方式傳送數(shù)據(jù)塊方式n由由DREQ啟動(dòng)就連續(xù)地傳送數(shù)據(jù),直到字節(jié)數(shù)啟動(dòng)就連續(xù)地傳送數(shù)據(jù),直到字節(jié)數(shù)寄存器從寄存器從0減到減到FFFFH終止計(jì)數(shù)終止計(jì)數(shù)(注意終止計(jì)(注意終止計(jì)數(shù)數(shù)TC的含義)的含義),或由外部輸入有效信號(hào)終結(jié),或由外部輸入有效信號(hào)終結(jié)DMA傳送傳送nDREQ只需維持有效到只需維持有效到DACK有效有效n特點(diǎn):特點(diǎn):n一次請(qǐng)求傳送一個(gè)數(shù)據(jù)塊,效率高一次請(qǐng)求傳送一個(gè)數(shù)據(jù)塊,效率高n整個(gè)整個(gè)DMA傳送期間傳送期間CPU長(zhǎng)時(shí)間無(wú)法控制總線(無(wú)長(zhǎng)時(shí)間無(wú)法控制總線(無(wú)法響應(yīng)其他法響應(yīng)其他DMA請(qǐng)求、無(wú)法處理中斷等)請(qǐng)求

15、、無(wú)法處理中斷等)243. DMA傳送請(qǐng)求傳送方式傳送請(qǐng)求傳送方式nDREQ信號(hào)有效就連續(xù)傳送數(shù)據(jù)信號(hào)有效就連續(xù)傳送數(shù)據(jù)nDREQ信號(hào)無(wú)效,信號(hào)無(wú)效,DMA傳送被暫時(shí)中止,傳送被暫時(shí)中止,8237A釋放總線,釋放總線,CPU可繼續(xù)操作可繼續(xù)操作nDMA通道的地址和字節(jié)數(shù)的中間值仍被保持通道的地址和字節(jié)數(shù)的中間值仍被保持nDREQ信號(hào)再次有效,信號(hào)再次有效,DMA傳送就繼續(xù)進(jìn)行傳送就繼續(xù)進(jìn)行n如果字節(jié)數(shù)寄存器從如果字節(jié)數(shù)寄存器從0減到減到FFFFH,或者由外,或者由外部送來一個(gè)有效的信號(hào),將終止計(jì)數(shù)部送來一個(gè)有效的信號(hào),將終止計(jì)數(shù)n特點(diǎn):特點(diǎn):nDMA操作可由外設(shè)利用操作可由外設(shè)利用DREQ信號(hào)

16、控制傳送的過程信號(hào)控制傳送的過程(速率)(速率)254. DMA傳送級(jí)連方式傳送級(jí)連方式n用于通過多個(gè)用于通過多個(gè)8237A級(jí)連以擴(kuò)展通道級(jí)連以擴(kuò)展通道n第二級(jí)的第二級(jí)的HRQ(輸出)(輸出)和和HLDA(輸入)(輸入)信號(hào)信號(hào)連到第一級(jí)某個(gè)通道的連到第一級(jí)某個(gè)通道的DREQ(輸入)(輸入)和和DACK(輸出)(輸出)上上n第二級(jí)芯片的優(yōu)先權(quán)等級(jí)與所連通道的優(yōu)先權(quán)第二級(jí)芯片的優(yōu)先權(quán)等級(jí)與所連通道的優(yōu)先權(quán)相對(duì)應(yīng)相對(duì)應(yīng)n第一級(jí)只起優(yōu)先權(quán)網(wǎng)絡(luò)的作用,實(shí)際的操作由第一級(jí)只起優(yōu)先權(quán)網(wǎng)絡(luò)的作用,實(shí)際的操作由第二級(jí)芯片完成第二級(jí)芯片完成n還可由第二級(jí)擴(kuò)展到第三級(jí)等還可由第二級(jí)擴(kuò)展到第三級(jí)等268237A級(jí)聯(lián)

17、圖示級(jí)聯(lián)圖示27DMA傳送類型(傳送類型(讀寫均對(duì)存儲(chǔ)器而言讀寫均對(duì)存儲(chǔ)器而言)nDMA讀讀把數(shù)據(jù)由存儲(chǔ)器傳送到外設(shè)把數(shù)據(jù)由存儲(chǔ)器傳送到外設(shè)n由由MEMR*有效從存儲(chǔ)器讀出數(shù)據(jù),由有效從存儲(chǔ)器讀出數(shù)據(jù),由IOW*有效有效把這一數(shù)據(jù)寫入外設(shè)把這一數(shù)據(jù)寫入外設(shè)nDMA寫寫把外設(shè)輸入的數(shù)據(jù)寫入存儲(chǔ)器把外設(shè)輸入的數(shù)據(jù)寫入存儲(chǔ)器n由由IOR*有效從外設(shè)輸入數(shù)據(jù),由有效從外設(shè)輸入數(shù)據(jù),由MEMW*有效把有效把這一數(shù)據(jù)寫入存儲(chǔ)器。這一數(shù)據(jù)寫入存儲(chǔ)器。nDMA檢驗(yàn)檢驗(yàn)空操作空操作n本意是進(jìn)行某種校驗(yàn),一般在本意是進(jìn)行某種校驗(yàn),一般在DMA讀之后讀之后n實(shí)際實(shí)際8237A不進(jìn)行任何檢驗(yàn),只是產(chǎn)生不進(jìn)行任何檢驗(yàn),

18、只是產(chǎn)生DMA時(shí)序時(shí)序和地址信號(hào),和地址信號(hào), 存儲(chǔ)器和存儲(chǔ)器和I/O控制線保持無(wú)效,不進(jìn)控制線保持無(wú)效,不進(jìn)行傳送(空操作),外設(shè)可以利用此時(shí)序進(jìn)行行傳送(空操作),外設(shè)可以利用此時(shí)序進(jìn)行DMA校驗(yàn)校驗(yàn)28 存儲(chǔ)器到存儲(chǔ)器的傳送存儲(chǔ)器到存儲(chǔ)器的傳送n固定使用通道固定使用通道0和通道和通道1n通道通道0的地址寄存器存放源區(qū)(的地址寄存器存放源區(qū)(Source)地址)地址n通道通道1的地址寄存器存放目的區(qū)(的地址寄存器存放目的區(qū)(Destination)地址,通道地址,通道1的字節(jié)數(shù)寄存器存?zhèn)魉偷淖止?jié)數(shù)的字節(jié)數(shù)寄存器存?zhèn)魉偷淖止?jié)數(shù)n傳送由設(shè)置通道傳送由設(shè)置通道0的軟件請(qǐng)求啟動(dòng)的軟件請(qǐng)求啟動(dòng)n每傳

19、送一字節(jié)需用每傳送一字節(jié)需用8個(gè)時(shí)鐘周期個(gè)時(shí)鐘周期n前前4個(gè)時(shí)鐘周期用通道個(gè)時(shí)鐘周期用通道0地址寄存器的地址從源區(qū)讀地址寄存器的地址從源區(qū)讀數(shù)據(jù)送入數(shù)據(jù)送入8237A的臨時(shí)寄存器的臨時(shí)寄存器n后后4個(gè)時(shí)鐘周期用通道個(gè)時(shí)鐘周期用通道1地址寄存器的地址把臨時(shí)寄地址寄存器的地址把臨時(shí)寄存器中的數(shù)據(jù)寫入目的區(qū)存器中的數(shù)據(jù)寫入目的區(qū)n傳送至通道傳送至通道1終止計(jì)數(shù)或收到外部終止計(jì)數(shù)或收到外部EOP*為止為止29 DMA通道的優(yōu)先權(quán)方式通道的優(yōu)先權(quán)方式n固定優(yōu)先權(quán)方式固定優(yōu)先權(quán)方式優(yōu)先權(quán)固定優(yōu)先權(quán)固定n通道通道0優(yōu)先權(quán)最高,通道優(yōu)先權(quán)最高,通道1其次,通道其次,通道2再次,再次,通道通道3最低最低n循環(huán)優(yōu)

20、先權(quán)方式循環(huán)優(yōu)先權(quán)方式優(yōu)先權(quán)循環(huán)變化優(yōu)先權(quán)循環(huán)變化n最近一次服務(wù)的通道在下次循環(huán)中變成最低最近一次服務(wù)的通道在下次循環(huán)中變成最低優(yōu)先權(quán),其他通道依次輪流相應(yīng)的優(yōu)先權(quán)優(yōu)先權(quán),其他通道依次輪流相應(yīng)的優(yōu)先權(quán)DMADMA傳送不存在嵌套傳送不存在嵌套308237A的寄存器的寄存器n8237A共有共有10種內(nèi)部寄存器,對(duì)它們的種內(nèi)部寄存器,對(duì)它們的操作有時(shí)需要配合操作有時(shí)需要配合3個(gè)軟件命令個(gè)軟件命令n8237A的的“軟件命令軟件命令”n不需要通過數(shù)據(jù)總線寫入控制字不需要通過數(shù)據(jù)總線寫入控制字n直接由地址和控制信號(hào)譯碼實(shí)現(xiàn)直接由地址和控制信號(hào)譯碼實(shí)現(xiàn)全部都用地址全部都用地址A A0 0A A3 3區(qū)分區(qū)分

21、318237A寄存器和軟件命令的尋址(表寄存器和軟件命令的尋址(表9-1勘誤)勘誤)32基地址寄存器基地址寄存器(地址初值寄存器地址初值寄存器)和和現(xiàn)行地址寄存器(地址計(jì)數(shù)器)現(xiàn)行地址寄存器(地址計(jì)數(shù)器)n基地址寄存器存放基地址寄存器存放DMA傳送的傳送的地址初始地址初始值值,現(xiàn)行地址寄存器,現(xiàn)行地址寄存器保持保持DMA傳送的傳送的當(dāng)當(dāng)前地址值前地址值nCPU同時(shí)寫入基地址寄存器和現(xiàn)行地址同時(shí)寫入基地址寄存器和現(xiàn)行地址寄存器寄存器n基地址寄存器基地址寄存器只寫不讀只寫不讀,其內(nèi)容,其內(nèi)容不會(huì)自不會(huì)自動(dòng)修改動(dòng)修改;現(xiàn)行地址寄存器;現(xiàn)行地址寄存器可讀可寫可讀可寫,其,其內(nèi)容內(nèi)容隨隨DMA傳送的進(jìn)行

22、每次傳送的進(jìn)行每次自動(dòng)加自動(dòng)加1或或減減133基字節(jié)數(shù)寄存器(字節(jié)數(shù)初值寄存器)基字節(jié)數(shù)寄存器(字節(jié)數(shù)初值寄存器)和和現(xiàn)行字節(jié)數(shù)寄存器(字節(jié)數(shù)計(jì)數(shù)器)現(xiàn)行字節(jié)數(shù)寄存器(字節(jié)數(shù)計(jì)數(shù)器)n基字節(jié)數(shù)寄存器存放基字節(jié)數(shù)寄存器存放DMA操作操作需要傳送的字需要傳送的字節(jié)數(shù)節(jié)數(shù),現(xiàn)行字節(jié)數(shù)寄存器,現(xiàn)行字節(jié)數(shù)寄存器保持保持DMA傳送的傳送的剩剩余字節(jié)數(shù)余字節(jié)數(shù)nCPU同時(shí)寫入基字節(jié)數(shù)寄存器和現(xiàn)行字節(jié)數(shù)寄同時(shí)寫入基字節(jié)數(shù)寄存器和現(xiàn)行字節(jié)數(shù)寄存器存器n基字節(jié)數(shù)寄存器基字節(jié)數(shù)寄存器只寫不讀只寫不讀,其內(nèi)容,其內(nèi)容不會(huì)自動(dòng)修不會(huì)自動(dòng)修改改;現(xiàn)行字節(jié)數(shù)寄存器;現(xiàn)行字節(jié)數(shù)寄存器可讀可寫可讀可寫,其內(nèi)容隨,其內(nèi)容隨DMA

23、傳送的進(jìn)行傳送的進(jìn)行每次自動(dòng)減每次自動(dòng)減1n終止計(jì)數(shù)終止計(jì)數(shù)TC(Terminal Count):指現(xiàn)行字節(jié)):指現(xiàn)行字節(jié)數(shù)寄存器的值減至數(shù)寄存器的值減至0之后,再減之后,再減1至至FFFFH。因。因此,此,傳送傳送N個(gè)字節(jié),初始值為個(gè)字節(jié),初始值為N1。34高高/低觸發(fā)器(或先低觸發(fā)器(或先/后觸發(fā)器)后觸發(fā)器)nCPU與與8237A之間通過之間通過8位數(shù)據(jù)總線交換信位數(shù)據(jù)總線交換信息,息,8237A的通道寄存器均為的通道寄存器均為16位,需要位,需要兩次讀寫操作才能實(shí)現(xiàn)兩次讀寫操作才能實(shí)現(xiàn)CPU與與8237A之間的之間的一個(gè)完整數(shù)據(jù)的交換一個(gè)完整數(shù)據(jù)的交換n8237A內(nèi)含一個(gè)內(nèi)含一個(gè)高高/

24、低觸發(fā)器低觸發(fā)器,用來控制讀,用來控制讀寫通道寄存器的高、低字節(jié)寫通道寄存器的高、低字節(jié)n該觸發(fā)器為該觸發(fā)器為0,控制讀寫低字節(jié),控制讀寫低字節(jié)n該觸發(fā)器為該觸發(fā)器為1,控制讀寫高字節(jié),控制讀寫高字節(jié)n軟、硬件復(fù)位后,觸發(fā)器為軟、硬件復(fù)位后,觸發(fā)器為0n每次讀寫通道寄存器,自動(dòng)改變觸發(fā)器狀態(tài)。如每次讀寫通道寄存器,自動(dòng)改變觸發(fā)器狀態(tài)。如果果對(duì)對(duì)16位寄存器的操作用兩次連續(xù)讀寫進(jìn)行,就位寄存器的操作用兩次連續(xù)讀寫進(jìn)行,就不必清除這個(gè)觸發(fā)器不必清除這個(gè)觸發(fā)器n清除高清除高/低觸發(fā)器低觸發(fā)器軟件命令軟件命令(A3A2A1A01100)將使高將使高/低觸發(fā)器清零低觸發(fā)器清零353個(gè)個(gè)軟件命令軟件命令n

25、清除高清除高/低觸發(fā)器軟件命令低觸發(fā)器軟件命令nA3A2A1A01100,使高,使高/低觸發(fā)器清零低觸發(fā)器清零n如:如:outp(0 x0c,0)n主清除命令主清除命令nA3A2A1A01101,使高使高/低觸發(fā)器清零低觸發(fā)器清零n使命令、狀態(tài)、請(qǐng)求、臨時(shí)寄存器清零使命令、狀態(tài)、請(qǐng)求、臨時(shí)寄存器清零n使屏蔽寄存器置為全使屏蔽寄存器置為全1(禁止(禁止DMA請(qǐng)求)請(qǐng)求)n主清除命令與硬件的主清除命令與硬件的RESET信號(hào)具有相同的功能(軟件復(fù)位信號(hào)具有相同的功能(軟件復(fù)位命令)命令)n如:如:outp(0 x0d,0)n清屏蔽寄存器命令清屏蔽寄存器命令nA3A2A1A01110,使使4個(gè)屏蔽位都

26、清零(允許個(gè)屏蔽位都清零(允許DMA請(qǐng)求)請(qǐng)求)n如:如:outp(0 x0e,0)36模式寄存器模式寄存器(A3A2A1A0=1011)n存放相應(yīng)通道的方式控制字,選擇某存放相應(yīng)通道的方式控制字,選擇某個(gè)個(gè)DMA通道的工作方式通道的工作方式n方式字格式見下頁(yè)方式字格式見下頁(yè)37方式字格式方式字格式00 請(qǐng)求模式請(qǐng)求模式01 單字節(jié)模式單字節(jié)模式10 數(shù)據(jù)塊模式數(shù)據(jù)塊模式11 級(jí)聯(lián)模式級(jí)聯(lián)模式0 地址增量(加地址增量(加1)1 地址減量(減地址減量(減1)0 禁止自動(dòng)初始化禁止自動(dòng)初始化1 允許自動(dòng)初始化允許自動(dòng)初始化00DMA校驗(yàn)校驗(yàn)01DMA寫寫10DMA讀讀11非法非法 若若D7D611

27、00 通道通道001 通道通道110 通道通道211 通道通道338命令寄存器命令寄存器(A3A2A1A0=1000)n存放存放8237A的命令字的命令字n設(shè)置設(shè)置8237A芯片的操作方式芯片的操作方式n影響每個(gè)影響每個(gè)DMA通道通道n復(fù)位時(shí)使命令寄存器清零復(fù)位時(shí)使命令寄存器清零n設(shè)置設(shè)置D20才使才使8237A可以作為可以作為DMA控控制器制器請(qǐng)看請(qǐng)看命令字命令字的格式的格式39命令字格式命令字格式0 DACK低有效低有效1 DACK高有效高有效0 DREQ高有效高有效1 DREQ低有效低有效0 滯后寫滯后寫1 擴(kuò)展寫擴(kuò)展寫 若若D310 固定優(yōu)先權(quán)固定優(yōu)先權(quán)1 循環(huán)優(yōu)先權(quán)循環(huán)優(yōu)先權(quán)0 正常

28、時(shí)序正常時(shí)序1 壓縮時(shí)序壓縮時(shí)序 若若D010 允許允許DMAC工作工作1 禁止禁止DMAC工作工作0 允許通道允許通道0地址改變地址改變1 禁止通道禁止通道0地址改變地址改變 若若D000 禁止存儲(chǔ)器之間傳送禁止存儲(chǔ)器之間傳送1 允許存儲(chǔ)器之間傳送允許存儲(chǔ)器之間傳送40n壓縮時(shí)序:去掉壓縮時(shí)序:去掉S3,讀與寫同為,讀與寫同為1個(gè)時(shí)鐘個(gè)時(shí)鐘n擴(kuò)展寫(提前寫):寫提前到與讀同時(shí)開始擴(kuò)展寫(提前寫):寫提前到與讀同時(shí)開始(S3),與讀一樣擴(kuò)展到),與讀一樣擴(kuò)展到2個(gè)時(shí)鐘周期。個(gè)時(shí)鐘周期。41請(qǐng)求寄存器請(qǐng)求寄存器(A3A2A1A0=1001)n存放軟件存放軟件DMA請(qǐng)求狀態(tài)請(qǐng)求狀態(tài)n除硬件除硬件D

29、MA請(qǐng)求外,當(dāng)工作在數(shù)據(jù)塊傳送請(qǐng)求外,當(dāng)工作在數(shù)據(jù)塊傳送方式時(shí)也可以通過軟件發(fā)出方式時(shí)也可以通過軟件發(fā)出DMA請(qǐng)求請(qǐng)求n若是存貯器到存貯器傳送,則必須由軟件若是存貯器到存貯器傳送,則必須由軟件請(qǐng)求啟動(dòng)通道請(qǐng)求啟動(dòng)通道0請(qǐng)看請(qǐng)看請(qǐng)求字請(qǐng)求字的格式的格式42請(qǐng)求字格式請(qǐng)求字格式任意任意0 復(fù)位復(fù)位1 置位置位( 有有DMA請(qǐng)求)請(qǐng)求)00 通道通道001 通道通道110 通道通道211 通道通道343屏蔽寄存器屏蔽寄存器n控制外設(shè)硬件控制外設(shè)硬件DMA請(qǐng)求是否被響應(yīng)(為請(qǐng)求是否被響應(yīng)(為0允許)允許)(與(與IMR類似),各個(gè)通道互相獨(dú)立。類似),各個(gè)通道互相獨(dú)立。3種方種方法:法:n單通道屏蔽字

30、單通道屏蔽字(A3A2A1A0=1010)只對(duì)一個(gè)只對(duì)一個(gè)DMA通道通道屏蔽位進(jìn)行設(shè)置屏蔽位進(jìn)行設(shè)置n主屏蔽字主屏蔽字(A3A2A1A0=1111)對(duì)對(duì)4個(gè)個(gè)DMA通道屏蔽位通道屏蔽位同時(shí)進(jìn)行設(shè)置同時(shí)進(jìn)行設(shè)置n清屏蔽寄存器命令清屏蔽寄存器命令(A3A2A1A0=1110)使使4個(gè)屏蔽位個(gè)屏蔽位都清零(允許)都清零(允許)n復(fù)位使復(fù)位使4個(gè)通道全置于屏蔽狀態(tài)個(gè)通道全置于屏蔽狀態(tài)n當(dāng)一個(gè)通道的當(dāng)一個(gè)通道的DMA過程結(jié)束,如果不是工作在過程結(jié)束,如果不是工作在自動(dòng)初始化方式,則這一通道的屏蔽位置位,自動(dòng)初始化方式,則這一通道的屏蔽位置位,必須再次編程為允許,才能進(jìn)行下次必須再次編程為允許,才能進(jìn)行下

31、次DMA傳送傳送請(qǐng)看請(qǐng)看屏蔽字屏蔽字的格式的格式44單通道屏蔽字單通道屏蔽字(A3A2A1A0=1010)格式格式任意任意0 清屏蔽位清屏蔽位1 置屏蔽位置屏蔽位00 通道通道001 通道通道110 通道通道211 通道通道345主屏蔽字主屏蔽字(A3A2A1A0=1111)格式格式任意任意Di0 清通道清通道I屏蔽位屏蔽位Di1 置通道置通道I屏蔽位屏蔽位46 自動(dòng)初始化方式自動(dòng)初始化方式n某個(gè)某個(gè)DMA通道設(shè)置為自動(dòng)初始化方通道設(shè)置為自動(dòng)初始化方式,是指每當(dāng)式,是指每當(dāng)DMA過程結(jié)束信號(hào)過程結(jié)束信號(hào)EOP*產(chǎn)生產(chǎn)生時(shí)(不論是內(nèi)部終止計(jì)數(shù)時(shí)(不論是內(nèi)部終止計(jì)數(shù)還是外部輸入該信號(hào)),都用還是外

32、部輸入該信號(hào)),都用基地基地址寄存器和基字節(jié)數(shù)寄存器址寄存器和基字節(jié)數(shù)寄存器的內(nèi)容,的內(nèi)容,使相應(yīng)的現(xiàn)行寄存器恢復(fù)為初始值,使相應(yīng)的現(xiàn)行寄存器恢復(fù)為初始值,包括恢復(fù)屏蔽位、允許包括恢復(fù)屏蔽位、允許DMA請(qǐng)求。請(qǐng)求。這樣就這樣就作好了下一次作好了下一次DMA傳送的準(zhǔn)傳送的準(zhǔn)備備。47狀態(tài)寄存器狀態(tài)寄存器(A3A2A1A0=1000)n可由可由CPU讀取讀取n低低4位反映讀命令這個(gè)瞬間每個(gè)通道是位反映讀命令這個(gè)瞬間每個(gè)通道是否產(chǎn)生終止計(jì)數(shù)否產(chǎn)生終止計(jì)數(shù)TC(為(為1,表示該通,表示該通道傳送結(jié)束)道傳送結(jié)束)n高高4位反映每個(gè)通道的位反映每個(gè)通道的DMA請(qǐng)求情況請(qǐng)求情況(為(為1,表示該通道有請(qǐng)求

33、),表示該通道有請(qǐng)求)n狀態(tài)位在復(fù)位或被讀出后,均被清零狀態(tài)位在復(fù)位或被讀出后,均被清零(讀后自動(dòng)清(讀后自動(dòng)清0)48狀態(tài)字格式狀態(tài)字格式49臨時(shí)寄存器臨時(shí)寄存器(A3A2A1A0=1101)n在存儲(chǔ)器到存儲(chǔ)器的傳送方式下在存儲(chǔ)器到存儲(chǔ)器的傳送方式下源存儲(chǔ)單元源存儲(chǔ)單元臨時(shí)寄存器臨時(shí)寄存器目的存儲(chǔ)單元目的存儲(chǔ)單元n傳送完成,臨時(shí)寄存器只會(huì)保留最后一傳送完成,臨時(shí)寄存器只會(huì)保留最后一個(gè)字節(jié),可由個(gè)字節(jié),可由CPU讀出讀出n復(fù)位使臨時(shí)寄存器內(nèi)容為零復(fù)位使臨時(shí)寄存器內(nèi)容為零508237A的編程的編程n8327A芯片的芯片的初始化編程初始化編程n命令寄存器是必須要寫的命令寄存器是必須要寫的n必要時(shí)可

34、先輸出主清除命令,進(jìn)行軟件復(fù)位,然后寫入命令必要時(shí)可先輸出主清除命令,進(jìn)行軟件復(fù)位,然后寫入命令字字n命令字影響所有命令字影響所有4個(gè)通道的操作個(gè)通道的操作nDMA通道的通道的DMA傳送編程傳送編程n將存儲(chǔ)器起始地址寫入地址寄存器(如果采用地址減量工作,將存儲(chǔ)器起始地址寫入地址寄存器(如果采用地址減量工作,則是結(jié)尾地址)則是結(jié)尾地址) 哪兩個(gè)?哪兩個(gè)?n將本次將本次DMA傳送的數(shù)據(jù)個(gè)數(shù)寫入字節(jié)數(shù)寄存器(個(gè)數(shù)要減傳送的數(shù)據(jù)個(gè)數(shù)寫入字節(jié)數(shù)寄存器(個(gè)數(shù)要減1) 哪兩個(gè)?哪兩個(gè)?n確定通道的工作方式,寫入方式寄存器確定通道的工作方式,寫入方式寄存器n寫入屏蔽寄存器復(fù)位通道屏蔽位,允許寫入屏蔽寄存器復(fù)位

35、通道屏蔽位,允許DMA請(qǐng)求請(qǐng)求注意:每個(gè)通道都要進(jìn)行注意:每個(gè)通道都要進(jìn)行DMA傳送編程,如果不是采用自動(dòng)初傳送編程,如果不是采用自動(dòng)初始化方式,每次傳送前要重新編程。始化方式,每次傳送前要重新編程。518237A的編程的編程(續(xù)(續(xù)2)n兩種方法反映兩種方法反映DMA過程結(jié)束(即終過程結(jié)束(即終止計(jì)數(shù)、發(fā)生止計(jì)數(shù)、發(fā)生TC):):n狀態(tài)寄存器的低狀態(tài)寄存器的低4位位nEOP*信號(hào)(需配合信號(hào)(需配合DACK響應(yīng)信號(hào)確響應(yīng)信號(hào)確定通道)定通道)n應(yīng)用程序處理應(yīng)用程序處理DMA傳送過程結(jié)束:傳送過程結(jié)束:n采用軟件查詢狀態(tài)字采用軟件查詢狀態(tài)字n采用硬件中斷在中斷服務(wù)程序處理采用硬件中斷在中斷服務(wù)

36、程序處理528237A的應(yīng)用的應(yīng)用n8237A在在PC系列機(jī)的使用情況系列機(jī)的使用情況nDMA寫傳送寫傳送nDMA設(shè)定子程序設(shè)定子程序538237A在在IBM PC系列機(jī)上的應(yīng)用系列機(jī)上的應(yīng)用nIBM PC/XT機(jī)使用一片機(jī)使用一片8237An通道通道0:動(dòng)態(tài)存貯器動(dòng)態(tài)存貯器DRAM刷新刷新n通道通道1:用戶使用或用戶使用或串行同步通信適配卡串行同步通信適配卡SDLC卡卡n通道通道2:內(nèi)存與軟盤的高速數(shù)據(jù)交換內(nèi)存與軟盤的高速數(shù)據(jù)交換n通道通道3:內(nèi)存與硬盤的高速數(shù)據(jù)交換內(nèi)存與硬盤的高速數(shù)據(jù)交換nIBM PC/AT機(jī)機(jī)采用兩片采用兩片8237AnDMAC1包含通道包含通道03,支持支持8位數(shù)據(jù)傳

37、送位數(shù)據(jù)傳送nDMAC2組成組成通道通道47,通道通道57支持支持16位數(shù)據(jù)傳位數(shù)據(jù)傳送,通道送,通道4用于級(jí)連用于級(jí)連54實(shí)例1:通道通道0用于用于動(dòng)態(tài)存貯器動(dòng)態(tài)存貯器DRAM刷新刷新A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至揚(yáng)聲器驅(qū)動(dòng)器接至揚(yáng)聲器驅(qū)動(dòng)器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS實(shí)例:IBM PC/XT DMA通道0的DRAM刷新編程out 0dh,al;DMAC主清除命令主清除命令m

38、ov al,0out 08,al;DMAC命令字:固定優(yōu)先權(quán),命令字:固定優(yōu)先權(quán), ;DERQ高有效,高有效,DACK低有效低有效mov al,0;從從0地址開始地址開始o(jì)ut 00,al;通道通道0的地址寄存器低字節(jié)的地址寄存器低字節(jié)out 00,al;通道通道0的地址寄存器高字節(jié)的地址寄存器高字節(jié)mov al,0ffh;傳送;傳送0FFFFH個(gè)字節(jié)個(gè)字節(jié)out 01,al;通道通道0的字節(jié)數(shù)寄存器低字節(jié)的字節(jié)數(shù)寄存器低字節(jié)out 01,al;通道通道0的字節(jié)數(shù)寄存器高字節(jié)的字節(jié)數(shù)寄存器高字節(jié)mov al,58h ;單字節(jié)傳送、單字節(jié)傳送、DMA讀、地址增量、自動(dòng)初始化讀、地址增量、自動(dòng)初始

39、化 out 0bh,al;通道通道0模式字模式字mov al,0;允許允許DREQ0提出申請(qǐng)?zhí)岢錾暾?qǐng)out 0ah,al;通道通道0屏蔽字屏蔽字568253+8237A配合完成配合完成DRAM的定時(shí)刷新控制的定時(shí)刷新控制:n8253/8254的計(jì)數(shù)器的計(jì)數(shù)器1被初始化為方式被初始化為方式2(分(分頻器),計(jì)數(shù)初值為頻器),計(jì)數(shù)初值為18,每個(gè),每個(gè)18*0.838us=15.084us產(chǎn)生一次產(chǎn)生一次OUT1輸出輸出(刷新請(qǐng)求)(刷新請(qǐng)求)nOut1輸出接到輸出接到8237A的的DREQ0,8237A的的通道通道0輸出刷新地址(輸出刷新地址(0-0ffffH),由于采用),由于采用自動(dòng)初始化方

40、式,使刷新操作循環(huán)不止。自動(dòng)初始化方式,使刷新操作循環(huán)不止。只能刷新只能刷新64K地址范圍,超過地址范圍,超過64K怎么辦?怎么辦?借助頁(yè)面寄存器(圖借助頁(yè)面寄存器(圖9-8)571. 8237A的初始化的初始化n8237A初始化寫入命令字為初始化寫入命令字為0,確定了:,確定了:nDREQ高電平有效、高電平有效、DACK低電平有效,固定優(yōu)先低電平有效,固定優(yōu)先權(quán)(依次為通道權(quán)(依次為通道0、17)n不進(jìn)行存儲(chǔ)器到存儲(chǔ)器的數(shù)據(jù)傳輸不進(jìn)行存儲(chǔ)器到存儲(chǔ)器的數(shù)據(jù)傳輸nPC機(jī)用機(jī)用DMA控制電路進(jìn)行刷新,所以控制電路進(jìn)行刷新,所以DMA傳送不傳送不能長(zhǎng)時(shí)間占用總線(不應(yīng)超過能長(zhǎng)時(shí)間占用總線(不應(yīng)超過1

41、5 s),一般只能),一般只能使用單字節(jié)傳送方式使用單字節(jié)傳送方式n在在PC系列機(jī)上,用戶如果使用系列機(jī)上,用戶如果使用DMA通道,要通道,要注意遵從上述系統(tǒng)要求。除了要禁止注意遵從上述系統(tǒng)要求。除了要禁止8237A工工作,用戶通常不必操作命令寄存器作,用戶通常不必操作命令寄存器582. 高位地址的形成高位地址的形成n8237A只提供只提供16位地址,位地址,DMA傳送時(shí)的高位地址傳送時(shí)的高位地址由由“頁(yè)面寄存器頁(yè)面寄存器”芯片提供,以形成所有存儲(chǔ)器地芯片提供,以形成所有存儲(chǔ)器地址。址。n頁(yè)面寄存器由頁(yè)面寄存器由CPU的輸出指令實(shí)現(xiàn)寫入(口地址的輸出指令實(shí)現(xiàn)寫入(口地址參見表參見表9-1),)

42、,頁(yè)面寄存器不會(huì)自動(dòng)增減量高位地址頁(yè)面寄存器不會(huì)自動(dòng)增減量高位地址n在在DMA傳送過程中不改變傳送過程中不改變DMAC1的通道的通道0通道通道3:8237A提供系統(tǒng)提供系統(tǒng)A0A15低低16位地址,頁(yè)面寄存位地址,頁(yè)面寄存器輸出系統(tǒng)器輸出系統(tǒng)A16A23高高8位地址。每個(gè)通道最多位地址。每個(gè)通道最多實(shí)現(xiàn)實(shí)現(xiàn)64KB的的DMA傳送。傳送。nDMAC2的通道的通道5通道通道7:8237A提供系統(tǒng)提供系統(tǒng)A1A16的的16位地址,而系統(tǒng)位地址,而系統(tǒng)A0被強(qiáng)迫為邏輯被強(qiáng)迫為邏輯0,頁(yè)面,頁(yè)面寄存器僅輸出高寄存器僅輸出高7位地址位地址A17A23,每個(gè)通道最,每個(gè)通道最多實(shí)現(xiàn)多實(shí)現(xiàn)64K字(字(128

43、KB)的)的DMA傳送。傳送。59實(shí)例實(shí)例2:DMA寫傳送(外設(shè)寫傳送(外設(shè)存儲(chǔ)器存儲(chǔ)器)CLKDCLK D0D7Q +5V外設(shè)數(shù)據(jù)外設(shè)數(shù)據(jù)外設(shè)外設(shè)DMA請(qǐng)求請(qǐng)求74LS37474LS74RESETDRQ1 DACK1IOROERS通道1工作方式例:采用例:采用DMA通道通道1,傳送,傳送2KB外設(shè)數(shù)據(jù),內(nèi)存起外設(shè)數(shù)據(jù),內(nèi)存起始地址為始地址為045000H。采用查詢方式檢測(cè)傳送是否。采用查詢方式檢測(cè)傳送是否完成。完成。mov al,45h;通道通道1方式字:方式字:01000101B;單字節(jié)單字節(jié)寫傳送寫傳送,地址增量地址增量,非自動(dòng)初始化非自動(dòng)初始化out 0bh,al;方式寄存器地址;方式

44、寄存器地址0bhnop;延時(shí)延時(shí)nopout 0ch,al;清高清高/低觸發(fā)器命令低觸發(fā)器命令DMA寫傳送通道1起始地址mov al,0;低;低16位地址位地址5000hout 02h,al;寫入低寫入低8位地址到地址寄存器位地址到地址寄存器mov al,50hout 02h,al;寫入中寫入中8位地址到地址寄存器位地址到地址寄存器mov al,04hout 83h,al;寫入高寫入高8位地址到頁(yè)面寄存器位地址到頁(yè)面寄存器(通道(通道1的頁(yè)面寄存器地址為的頁(yè)面寄存器地址為83h)DMA寫傳送通道1傳送字節(jié)數(shù)mov ax,2048-1;AX傳送字節(jié)數(shù)減傳送字節(jié)數(shù)減1out 03h,al;送字節(jié)數(shù)

45、低送字節(jié)數(shù)低8位到字節(jié)數(shù)寄存器位到字節(jié)數(shù)寄存器mov al,ahout 03h,al;送字節(jié)數(shù)高送字節(jié)數(shù)高8位到字節(jié)數(shù)寄存器位到字節(jié)數(shù)寄存器mov al,01;單通道屏蔽字;單通道屏蔽字00000001out 0ah,al;單通道屏蔽字:允許單通道屏蔽字:允許通道通道1的的DMA請(qǐng)求請(qǐng)求;其他工作其他工作DMA寫傳送通道1傳送結(jié)束判斷dmalp:in al,08h;讀狀態(tài)寄存器讀狀態(tài)寄存器and al,02h;判斷通道判斷通道1是否傳送結(jié)束是否傳送結(jié)束jz dmalp;沒有結(jié)束,則循環(huán)等待沒有結(jié)束,則循環(huán)等待;傳送結(jié)束,處理轉(zhuǎn)換數(shù)據(jù)傳送結(jié)束,處理轉(zhuǎn)換數(shù)據(jù)DMA寫傳送DMADMA傳送過程結(jié)束的判斷:傳送過程結(jié)束的判斷:軟件查詢方式軟件查詢方式64實(shí)例實(shí)例3:DMA設(shè)定子程序設(shè)定子程序n系統(tǒng)系統(tǒng)ROM-BIOS的的DMA設(shè)定子程序:設(shè)定子程序:DMA通道通道2傳送編程傳送編程n軟盤的讀寫利用軟盤的讀寫利用DMA通道通道2傳送數(shù)據(jù)傳送數(shù)據(jù)n被讀軟盤、寫軟盤和軟盤檢驗(yàn)等軟盤被讀軟盤

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論