微型計(jì)算機(jī)原理與接口技術(shù):DMA技術(shù)(直接存儲(chǔ)器存取方式)_第1頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù):DMA技術(shù)(直接存儲(chǔ)器存取方式)_第2頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù):DMA技術(shù)(直接存儲(chǔ)器存取方式)_第3頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù):DMA技術(shù)(直接存儲(chǔ)器存取方式)_第4頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù):DMA技術(shù)(直接存儲(chǔ)器存取方式)_第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)介

§5.1概述

普通的數(shù)據(jù)傳輸方式都需要CPU參與,存儲(chǔ)器和外設(shè)之間的數(shù)據(jù)傳送都需要經(jīng)過CPU的中轉(zhuǎn)。批量傳送數(shù)據(jù)時(shí)CPU的效率很低。

DMA方式是讓存儲(chǔ)器直接和高速外設(shè)直接交換數(shù)據(jù),在傳輸?shù)倪^程中不需要CPU的介入,傳輸操作都由硬件完成,提高了CPU的工作效率。

DMA傳送主要應(yīng)用于高速度大批量傳送數(shù)據(jù)的系統(tǒng)中。如:磁盤存取、圖像處理、高速數(shù)據(jù)采集系統(tǒng)等?!?DMA技術(shù)(直接存儲(chǔ)器存取方式)DMA傳送數(shù)據(jù)示意圖:§5.1DMA技術(shù)概述CPUDMAC總線請(qǐng)求總線響應(yīng)I/ODMA響應(yīng)DMA請(qǐng)求DMA請(qǐng)求與響應(yīng)過程:§5.1DMA技術(shù)概述§5.1DMA技術(shù)概述DMA控制器的工作狀態(tài)主動(dòng)態(tài)被動(dòng)態(tài)

在主動(dòng)態(tài)時(shí),DMAC取代CPU,獲得對(duì)系統(tǒng)總線的控制權(quán),向存儲(chǔ)器和外設(shè)發(fā)送命令。通過總線向存儲(chǔ)器和外設(shè)發(fā)送地址和讀寫信號(hào),以控制它們之間的數(shù)據(jù)傳輸。在被動(dòng)態(tài)時(shí),它和其它芯片一樣接受CPU對(duì)它的控制。對(duì)DMAC進(jìn)行初始化必須在被動(dòng)態(tài)進(jìn)行,需要寫入一些控制字如通道的選擇、數(shù)據(jù)傳送的模式和類型、內(nèi)存的首址、傳送的字節(jié)等等。這時(shí),DMA是CPU的從設(shè)備。

被動(dòng)態(tài):CPU占用總線,外設(shè)向DMAC發(fā)DREQ請(qǐng)求§5.1DMA技術(shù)概述被動(dòng)態(tài):CPU掛起,DMAC掌管總線,負(fù)責(zé)發(fā)地址和控制信息?!?.1DMA技術(shù)概述特別指出:傳送數(shù)據(jù)的途徑是I/O設(shè)備→I/O設(shè)備接口→系統(tǒng)數(shù)據(jù)總線→存儲(chǔ)器,不經(jīng)過DMA控制器,DMA控制器只起控制作用。DMAC用于輸出數(shù)據(jù)情況如下圖所示:§5.1DMA技術(shù)概述(補(bǔ)充)DMAC用于輸出數(shù)據(jù)情況DMAC的一般結(jié)構(gòu)

§5.2DMA控制器8237A參考戴梅萼《微機(jī)原理及應(yīng)用》第8章內(nèi)容一、編程結(jié)構(gòu)(P259)高電平有效。復(fù)位時(shí),屏蔽寄存器被置1,其它寄存器均清0。二、引腳及功能(書上沒有引腳圖)三、優(yōu)先級(jí)問題的解決:

一片8237A有4個(gè)通道,可以分別連接4個(gè)I/O設(shè)備,這樣,就有一個(gè)優(yōu)先級(jí)問題要解決。8237A有兩種優(yōu)先級(jí)管理方式。

固定優(yōu)先級(jí)方式:在這種方式下,通道0的優(yōu)先級(jí)最高,通道3的優(yōu)先級(jí)最低;

循環(huán)優(yōu)先級(jí)方式,在這種方式下,通道的優(yōu)先級(jí)依次循環(huán),比如,某次傳輸前的優(yōu)先級(jí)次序?yàn)?—3—0—l,那么,在通道2進(jìn)行一次傳輸以后,優(yōu)先級(jí)次序成為3—0—1—2。(控制寄存器的D4=0為固定優(yōu)先級(jí),D4=1,則為循環(huán)優(yōu)先級(jí)。)1、單字節(jié)傳送模式:每次DMA操作只傳送1個(gè)字節(jié)的數(shù)據(jù),每次傳送后,當(dāng)前地址寄存器加1或減1,當(dāng)前內(nèi)部字節(jié)計(jì)數(shù)器減1,此后8237A釋放系統(tǒng)總線交還給CPU,CPU至少能得到1個(gè)總線周期。

8237A釋放系統(tǒng)總線控制權(quán)后,會(huì)立即對(duì)外設(shè)送來的DMA請(qǐng)求信號(hào)(DREQ)進(jìn)行檢測(cè),一旦DREQ有效,又會(huì)立即發(fā)出總線請(qǐng)求信號(hào)HRQ,獲得總線控制權(quán)后便進(jìn)行下一傳輸過程。由于每次僅用一個(gè)總線周期就釋放系統(tǒng)總線,所以又稱為總線周期竊取方式。

四、8237A的四種工作方式四、8237A的四種工作方式2、塊傳送方式:可以連續(xù)傳送多個(gè)字節(jié)的數(shù)據(jù),每傳送1字節(jié)數(shù)據(jù),當(dāng)前字節(jié)計(jì)數(shù)器值就減1,直至減為0,在

端發(fā)出負(fù)脈沖,8237A才釋放系統(tǒng)總線,結(jié)束數(shù)據(jù)傳送。若外部I/O設(shè)備往

端送一個(gè)低電平信號(hào),8237A會(huì)立即釋放系統(tǒng)總線,結(jié)束DMA操作。3、請(qǐng)求傳送方式:該方式與塊傳送方式類似,也可以連續(xù)傳送多個(gè)字節(jié)的數(shù)據(jù),只是DMA傳送過程受DREQ控制。每傳送1個(gè)字節(jié),8237A就對(duì)DREQ請(qǐng)求信號(hào)進(jìn)行檢測(cè),一但檢測(cè)到為無效電平,就立即暫停傳送,但不釋放系統(tǒng)總線。此時(shí),對(duì)DREQ的檢測(cè)仍在進(jìn)行,當(dāng)DREQ變?yōu)橛行щ娖綍r(shí),則繼續(xù)傳送數(shù)據(jù)。當(dāng)前字節(jié)計(jì)數(shù)器值減為0時(shí),停止傳送。四、8237A的四種工作方式4、級(jí)聯(lián)傳送方式:這種方式不是數(shù)據(jù)傳送模式,而是指8237A用于多片級(jí)聯(lián)的一種工作方式。第一級(jí)稱為主片,第二級(jí)則為從片。主片必須設(shè)置為級(jí)聯(lián)傳送方式,從片可設(shè)置為級(jí)聯(lián)傳送方式以外的任何一種。最多可用5片8237A構(gòu)成兩級(jí)16個(gè)通道的DMA系統(tǒng)。級(jí)聯(lián)的方法如下圖所示:四、8237A的四種工作方式四、8237A的四種工作方式級(jí)聯(lián)的方法:1、基地址寄存器

每個(gè)通道都有一個(gè)16位的基地址寄存器,用于存放DMA傳送數(shù)據(jù)在內(nèi)存中的首地址,編程時(shí)按先低字節(jié)后高字節(jié)順序?qū)懭?,在傳送過程中始終不變,只能寫,不能讀。五、8237A內(nèi)部寄存器功能及其格式2、當(dāng)前地址寄存器當(dāng)前地址寄存器是16位寄存器,存放DMA傳送過程中當(dāng)前的內(nèi)存地址,在每次傳送后地址自動(dòng)加1或減1,以指向下一個(gè)存儲(chǔ)單元。當(dāng)前地址寄存器的初值與基地址寄存器內(nèi)容相同,是在編程時(shí)與基地址寄存器的內(nèi)容同時(shí)寫入的。該寄存器內(nèi)容可讀可寫,但每次只能讀寫8位數(shù)據(jù),故對(duì)該寄存器的讀/寫操作也要分兩次進(jìn)行,先讀低字節(jié)后高字節(jié)。在自動(dòng)預(yù)置方式下,

DMA傳送結(jié)束時(shí),自動(dòng)將基地址寄存器的值裝入當(dāng)前地址寄存器。五、8237A內(nèi)部寄存器功能及其格式3、基本字節(jié)計(jì)數(shù)寄存器基本字節(jié)計(jì)數(shù)器是16位寄存器,每個(gè)通道有一個(gè),存放DMA傳送數(shù)據(jù)塊的總字節(jié)數(shù),編程時(shí)先低字節(jié)后高字節(jié)順序?qū)懭?,在傳送過程中始終不變,只能寫,不能讀。因8237A執(zhí)行當(dāng)前字節(jié)計(jì)數(shù)寄存器值為0的那個(gè)DMA周期,所以欲傳送N字節(jié),則寫入的數(shù)值應(yīng)為N-1。五、8237A內(nèi)部寄存器功能及其格式五、8237A內(nèi)部寄存器功能及其格式4、當(dāng)前字節(jié)計(jì)數(shù)寄存器當(dāng)前字節(jié)計(jì)數(shù)器是16位寄存器,每個(gè)通道有一個(gè),存放DMA沒有傳送完數(shù)據(jù)的總字節(jié)數(shù),每次傳送后數(shù)值自動(dòng)減1,當(dāng)由0減為FFFF時(shí),產(chǎn)生

結(jié)束信號(hào),表明數(shù)據(jù)傳送結(jié)束。該值也是在CPU對(duì)8237A進(jìn)行編程時(shí)與當(dāng)前字計(jì)數(shù)器一起被寫入的,寫入的內(nèi)容相同,且兩者具有相同的端口地址。當(dāng)前字節(jié)計(jì)數(shù)器的內(nèi)容可讀可寫,對(duì)該寄存器的讀寫操作要分兩次進(jìn)行,先讀低字節(jié)后高字節(jié)。在自動(dòng)預(yù)置方式下,

信號(hào)把當(dāng)前字節(jié)計(jì)數(shù)器的值,重新置為基本字節(jié)計(jì)數(shù)器的值。工作方式寄存器是8位寄存器,每個(gè)通道有一個(gè)。5、工作方式寄存器(P263圖8.2)五、8237A內(nèi)部寄存器功能及其格式6、控制寄存器圖(P265圖8.4

8237A的4個(gè)通道共用一個(gè)控制寄存器。在編程時(shí),由CPU向它寫入控制字,而復(fù)位信號(hào)(RESET)或軟件命令可以將它清除。控制寄存器格式如下:

五、8237A內(nèi)部寄存器功能及其格式說明:普通時(shí)序:更新A15~A8和A7~A0地址。壓縮時(shí)序:僅更新低8位A7~A0的地址。

內(nèi)存到內(nèi)存?zhèn)魉?

固定使用通道0的地址寄存器存放源地址,而用通道1的地址寄存器和字節(jié)計(jì)數(shù)器存放目的地址和計(jì)數(shù)值。首先,通道0發(fā)軟DMA請(qǐng)求,通道0當(dāng)前地址寄存器指定的內(nèi)存單元內(nèi)容送暫存器,再由暫存器寫到通道1當(dāng)前地址寄存器所指定的內(nèi)存單元,兩通道的當(dāng)前地址+1或-1,直到通道1的字節(jié)計(jì)數(shù)器減為0后產(chǎn)生

信號(hào),結(jié)束DMA數(shù)據(jù)傳送。7、狀態(tài)寄存器(P266圖8.5)

4個(gè)通道共用一個(gè)狀態(tài)寄存器。低4位中某位置1表示該通道已達(dá)到計(jì)數(shù)終點(diǎn)或外界送來

信號(hào)。高4位表示哪些通道的DMA請(qǐng)求還未被處理,有請(qǐng)求存在的那些位被置1,無請(qǐng)求的被清0。狀態(tài)寄存器的格式如圖所示:8、DMA請(qǐng)求寄存器

(P266圖8.6)

DMA請(qǐng)求可以由硬件發(fā)出,也可以由軟件發(fā)出。硬件是通過DREQ引腳輸入

DMA請(qǐng)求的,軟件則是通過對(duì)DMA請(qǐng)求標(biāo)志的設(shè)置來發(fā)出請(qǐng)求的。當(dāng)DMA結(jié)束時(shí),請(qǐng)求標(biāo)志被清除。該寄存器只能寫,不能讀。9、屏蔽寄存器(P267圖8.7)當(dāng)一個(gè)通道的DMA屏蔽標(biāo)志為1時(shí),這個(gè)通道就不能接收DMA請(qǐng)求了,這時(shí),不管是硬件的DMA請(qǐng)求,還是軟件的DMA請(qǐng)求,都不會(huì)被受理。若某個(gè)通道規(guī)定不自動(dòng)預(yù)置,則當(dāng)該通道遇到有效的信號(hào)時(shí),將對(duì)應(yīng)的屏蔽標(biāo)志位置1。10、綜合屏蔽命令

(P267圖8.8)

8237A還允許使用綜合屏蔽命令來設(shè)置通道的屏蔽觸發(fā)器。這樣利用一條綜合屏蔽字命令就能一次完成對(duì)4個(gè)通道屏蔽位的設(shè)置。11、軟命令(參見書P267)(1)復(fù)位命令復(fù)位命令的功能和RESET相同,使控制寄存器、狀態(tài)寄存器、DMA請(qǐng)求寄存器、暫存器及字節(jié)指針都清0,屏蔽寄存器置1。實(shí)際運(yùn)用時(shí)只要向端口(DMA+0DH)寫一次任意數(shù)即可。(2)清除字節(jié)指針命令(清先/后觸發(fā)器命令)因?yàn)?237A只有8位數(shù)據(jù)線,而地址寄存器和字節(jié)計(jì)數(shù)器都是16位,所以設(shè)置時(shí)要分兩次傳送。字節(jié)指針清0,CPU將第1字節(jié)寫入低8位,然后字節(jié)指針自動(dòng)置1,第2字節(jié)寫入高8位,且字節(jié)指針自動(dòng)清0。實(shí)際運(yùn)用時(shí)只要向端口(DMA+0CH)寫一次任意數(shù)即可。

12、各寄存器對(duì)應(yīng)的端口地址(P268表8.2、表8.1)六、頁(yè)面地址七、程序設(shè)計(jì)舉例(實(shí)驗(yàn)程序)

將存儲(chǔ)器D800H單元開始的連續(xù)8個(gè)4字節(jié)的數(shù)據(jù)復(fù)制到地址D820H開始的8個(gè)4字節(jié)單元中,實(shí)現(xiàn)8237的存儲(chǔ)器到存儲(chǔ)器傳輸。MY0是存儲(chǔ)器的片選信號(hào),其地址空間為D8000H~DFFFFH存儲(chǔ)器起始地址是D800:0000H。;T8237.ASM;DMA傳輸實(shí)驗(yàn)IOY0EQU3000H;IOY0起始地址MY8237_0EQUIOY0+00H*4;通道0當(dāng)前地址寄存器MY8237_1EQUIOY0+01H*4;通道0當(dāng)前字節(jié)計(jì)數(shù)寄存器MY8237_2EQUIOY0+02H*4;通道1當(dāng)前地址寄存器MY8237_3EQUIOY0+03H*4;通道1當(dāng)前字節(jié)計(jì)數(shù)寄存器MY8237_8EQUIOY0+08H*4;寫命令寄存器/讀狀態(tài)寄存器MY8237_9EQUIOY0+09H*4;請(qǐng)求寄存器MY8237_BEQUIOY0+0BH*4;工作模式寄存器MY8237_DEQUIOY0+0DH*4;寫總清命令/讀暫存寄存器MY8237_FEQUIOY0+0FH*4;屏蔽位寄存器STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY8237_D;IOY0+0DH*4OUTDX,AL ;寫總清命令(復(fù)位)

MOVDX,MY8237_0;IOY0+00H*4 MOVAL,00H;寫通道0當(dāng)前地址寄存器

OUTDX,AL MOVAL,00H OUTDX,AL MOVDX,MY8237_2;IOY0+02H*4MOVAL,08H;寫通道1當(dāng)前地址寄存器

OUTDX,AL MOVAL,00H OUTDX,AL MOVDX,MY8237_1;寫通道0當(dāng)前字節(jié)計(jì)數(shù)寄存器

MOVAL,07H OUTDX,AL MOVAL,00H OUTDX,AL MOVDX,MY8237_3;寫通道1當(dāng)前字節(jié)計(jì)數(shù)寄存器

MOVAL,07H OUTDX,AL MOVAL,00H OUTDX,AL

MOVDX,MY8237_B;寫通道0工作方式寄存器

MOVAL,88H ;通道0讀傳輸

OUTDX,AL MOVAL,85H ;寫通道1工作方式寄存器

OUTDX,AL ;通道1寫傳輸 MOVDX,MY8237_8;寫命令寄存器

MOVAL,81H OUTDX,AL MOVDX,MY8237_F;寫綜合屏蔽寄存器

MOVAL,00H;去除4個(gè)通道的屏蔽

OUTDX,AL MOVDX,MY8237_9;寫請(qǐng)求寄存器

MOVAL,04H;請(qǐng)求DMA傳送

OUTDX,AL;DMA傳送開始QUIT:MOVAX,4C00HINT21H

ENDS ENDSTART作業(yè):

1、簡(jiǎn)述:什么是DMA?有什么特點(diǎn)?

2、8237有幾種工作方式?簡(jiǎn)述每種工作方式的特點(diǎn)?

思考題:

1、將中斷方式與DMA方式進(jìn)行比較,各自特點(diǎn)是什么?2、有兩種設(shè)備,一種是高速設(shè)備,另一種是低速設(shè)備,指出哪一種設(shè)備適于使用DMA方式傳送數(shù)據(jù),哪一種適于使用中斷方式,說明理由。END楊素行《微機(jī)系統(tǒng)原理及應(yīng)用》三、8237A的四種工作方式

1、單字節(jié)傳送模式:

每次DMA操作只傳送傳送1個(gè)字節(jié)數(shù)據(jù),每次傳送后,當(dāng)前地址寄存器加1或減1,當(dāng)前內(nèi)部字節(jié)計(jì)數(shù)器減1,此后8237A釋放系統(tǒng)總線交還給CPU,CPU至少能得到1個(gè)總線周期。8237A釋放系統(tǒng)總線控制權(quán)后,會(huì)立即對(duì)外設(shè)送來的DMA請(qǐng)求信號(hào)(DREQ)進(jìn)行檢測(cè),一旦DREQ有效,又會(huì)立即發(fā)出總線請(qǐng)求信號(hào)HRQ,獲得總線控制權(quán)后便進(jìn)行下一傳輸過程。由于每次僅用一個(gè)總線周期就釋放系統(tǒng)總線,所以又稱為總線周期竊取方式。

2、塊傳送方式:

可以連續(xù)傳送多個(gè)字節(jié)的數(shù)據(jù),每傳送1字節(jié)數(shù)據(jù),當(dāng)前字節(jié)計(jì)數(shù)器值就減1,直至減為0,在EOP#端發(fā)出負(fù)脈沖,8237A才釋放系統(tǒng)總線,結(jié)束數(shù)據(jù)傳送。若外部I/O設(shè)備往EOP#端送一個(gè)低電平信號(hào),8237A會(huì)立即釋放系統(tǒng)總線,結(jié)束DMA操作。3、請(qǐng)求傳送方式:該方式與塊傳送方式類似,也可以連續(xù)傳送多個(gè)字節(jié)的數(shù)據(jù),只是DMA傳送過程受DREQ控制。每傳送1個(gè)字節(jié),8237A就對(duì)DREQ請(qǐng)求信號(hào)進(jìn)行檢測(cè),一但檢測(cè)到為無效電平,就立即暫停傳送,但不釋放系統(tǒng)總線。此時(shí),對(duì)DREQ的檢測(cè)仍在進(jìn)行,當(dāng)DREQ變?yōu)橛行щ娖綍r(shí),則繼續(xù)傳送數(shù)據(jù)。

4、級(jí)聯(lián)傳送方式:

這種方式不是數(shù)據(jù)傳送模式,而是指8237A用于多片級(jí)聯(lián)的一種工作方式。第一級(jí)稱為主片,第二級(jí)則為從片。主片必須設(shè)置為級(jí)聯(lián)傳送方式,從片可設(shè)置為級(jí)聯(lián)傳送方式以外的任何一種。級(jí)聯(lián)的方法是將主片的DREQ、DACK引腳分別和從片的HRQ、HLDA引腳相連。主片在響應(yīng)從片的DMA請(qǐng)求時(shí),它不輸出地址和讀寫信號(hào),避免與從片中有效通道的輸出信號(hào)相沖突。最多可用5片8237A構(gòu)成兩級(jí)DMA系統(tǒng),共16個(gè)通道。

需要說明的引腳功能如下:CLK:時(shí)鐘信號(hào)輸入端。8237A的時(shí)鐘頻率為3MHz,8237A-5的時(shí)鐘頻率為5MHz。RESET:復(fù)位信號(hào)輸入端,高電平有效。芯片復(fù)位時(shí),屏蔽寄存器被置1,其它寄存器均清0,復(fù)位后8237A工作在空閑周期。READY:準(zhǔn)備就緒信號(hào)輸入端,高電平有效。當(dāng)所用存儲(chǔ)器或I/O設(shè)備的速度較慢時(shí),需要延長(zhǎng)讀/寫操作周期,這時(shí)可在READY引腳施加低電平,使8237A在DMA周期中插入等待周期TW。當(dāng)存儲(chǔ)器或外設(shè)準(zhǔn)備就緒時(shí),再使READY端變成高電平。ADSTB:地址選通信號(hào)輸出端,高電平有效。此信號(hào)有效時(shí),DMA控制器把當(dāng)前地址寄存器中的高8位地址(通過D0-D7)鎖存到外部鎖存器中。()見P259圖AEN:地址允許信號(hào)輸出端,高電平有效。AEN信號(hào)使地址鎖存器中鎖存的高8位地址送到地址總線上,與芯片直接輸出的低8位地址一起構(gòu)成16位內(nèi)存偏移地址。AEN信號(hào)也使與CPU相連的地址鎖存器及I/O端口無效,保證DMAC掌管總線。 :存儲(chǔ)器讀信號(hào),三態(tài)輸出,低電平有效。該信號(hào)有效時(shí),將選中存儲(chǔ)器單元的內(nèi)容讀出,經(jīng)數(shù)據(jù)總線送外設(shè)。 :存儲(chǔ)器寫信號(hào),三態(tài)輸出,低電平有效。該信號(hào)有效時(shí),把數(shù)據(jù)總線上的內(nèi)容寫入存儲(chǔ)器。 需要說明的引腳功能如下:

:I/O設(shè)備讀信號(hào),雙向,三態(tài),低電平有效。

從態(tài)時(shí):它作為輸入控制信號(hào),送入8237A,當(dāng)它有效時(shí),CPU讀取8237A內(nèi)部寄存器的值。

主態(tài)時(shí):它作為輸出控制信號(hào),與

相配合,控制數(shù)據(jù)由外設(shè)傳送到存儲(chǔ)器中。需要說明的引腳功能如下:需要說明的引腳功能如下:

:I/O設(shè)備寫信號(hào),雙向,三態(tài),低電平有效。

從態(tài)時(shí):是輸入控制信號(hào),當(dāng)它有效時(shí),CPU向DMA控制器的內(nèi)部寄存器中寫入數(shù)據(jù),對(duì)8237A進(jìn)行初始化編程。

主態(tài)時(shí):作輸出控制信號(hào),與

相配合,把數(shù)據(jù)從存儲(chǔ)器傳送到外設(shè)。

:傳輸過程結(jié)束信號(hào),雙向,低電平有效。在DMA傳送時(shí),當(dāng)DMA控制器的任一通道中的當(dāng)前計(jì)數(shù)器減為0,再由0減為FFFFH而終止計(jì)數(shù)時(shí),會(huì)在該引腳上輸出一個(gè)有效的低電平,作為DMA傳輸過程結(jié)束信號(hào)。

8237A也允許從外部輸入一個(gè)低電平信號(hào)到該引腳上來,終止DMA傳送。不論是內(nèi)部計(jì)數(shù)結(jié)束引起終止DMA過程,還是外部終止DMA過程,都會(huì)使8237A內(nèi)部寄存器復(fù)位。需要說明的引腳功能如下:DREQ3-DREQ0:通道3~0的DMA請(qǐng)求信號(hào),輸入端,DREQ的極性由編程確定。當(dāng)外設(shè)請(qǐng)求DMA服務(wù)時(shí),就使DREQ處于有效電平,直到I/O設(shè)備收到DMAC送來的響應(yīng)信號(hào)DACK以后,I/O設(shè)備才能撤除DREQ的有效電平。復(fù)位后DREQ為高電平有效。需要說明的引腳功能如下:DACK3-DACK0:DMAC對(duì)各個(gè)通道請(qǐng)求的響應(yīng)信號(hào),輸出端,其有效電平的極性由編程確定。當(dāng)8237A收到CPU的送來的總線允許信號(hào)HLDA以后,便產(chǎn)生DACK信號(hào)送到相應(yīng)的外設(shè)端口,表示DMA控制器響應(yīng)了外設(shè)的DMA請(qǐng)求,從而進(jìn)入DMA服務(wù)過程。HRQ:8237A輸出給CPU的總線請(qǐng)求信號(hào),輸出端,高電平有效。該端與CPU的HOLD端相連,用于向CPU申請(qǐng)獲得總線控制權(quán)。當(dāng)8237A任何一個(gè)未被屏蔽的通道有DMA請(qǐng)求(DREQ有效)時(shí),都可使8237A的HQR端輸出有效的高電平。需要說明的引腳功能如下:HLDA:總線響應(yīng)信號(hào),輸入端,高電平有效。該端與CPU的HLDA端相連。當(dāng)CPU收到HRQ信號(hào)后,至少必須經(jīng)過一個(gè)時(shí)鐘周期后,使HLDA變高,表示CPU已把總線的控制權(quán)交給8237A了,8237A收到HLDA信號(hào)后,就開始進(jìn)行DMA傳送。

A3-A0:最低4位地址線,三態(tài),雙向。

從態(tài)時(shí):該端為輸入,用來對(duì)DMA控制器的內(nèi)部寄存器尋址,完成對(duì)DMAC的編程。

主態(tài)時(shí):為輸出端,提供訪問內(nèi)存單元的最低4位地址。需要說明的引腳功能如下:A7-A4:這4位三態(tài)地址線始終工作于輸出狀態(tài)或浮空狀態(tài)。在主動(dòng)態(tài)時(shí),輸出要訪問的存儲(chǔ)單元低8位地址中的高4位。DB7-DB0:8位三態(tài)雙向數(shù)據(jù)線,與系統(tǒng)數(shù)據(jù)總線相連。從態(tài)時(shí):CPU可用I/O讀命令,將DMAC中讀取寄存器的內(nèi)容到數(shù)據(jù)總線。CPU還可以通過這些數(shù)據(jù)線用I/O寫命令對(duì)DMAC內(nèi)部寄存器進(jìn)行編程。

主態(tài)時(shí):輸出當(dāng)前地址寄存器的高8位A15-A8,并通過ADSTB信號(hào)鎖存到外部的高8位地址鎖存器中,它們與A7-A0輸出的低8位地址一起構(gòu)成16位地址。需要說明的引腳功能如下:8237A僅支持64KB尋址,為了訪問超過64KB范圍的其他地址空間,系統(tǒng)中增設(shè)了頁(yè)面寄存器。在PC/XT微機(jī)系統(tǒng)中,每一通道的頁(yè)面寄存器是4位寄存器。當(dāng)一個(gè)DMA操作周期開始時(shí),相應(yīng)的頁(yè)面寄存器內(nèi)容就放到系統(tǒng)地址總線A19~A16上,和8237A送出的16位低地址一起,構(gòu)成20位物理地址。需要說明的引腳功能如下:時(shí)序圖:()SI:空閑周期如果沒有DMA請(qǐng)求,8237A處于空轉(zhuǎn)狀態(tài)SI,在SI態(tài),DMAC對(duì)DREQ端進(jìn)行測(cè)試,判斷是否某通道有DMA請(qǐng)求。在SI態(tài)還不斷測(cè)試

端,如果

=0,且4個(gè)通道均無請(qǐng)求信號(hào)(DREQ無效),那么8237A作為從模塊工作,此時(shí),CPU可以對(duì)8237A進(jìn)行設(shè)置、發(fā)送命令或讀取內(nèi)部寄存器狀態(tài),由

控制8237A的讀寫操作。參見P264圖8.3S0:總線請(qǐng)求態(tài)如果某通道DREQ為有效電平,就表示該通道有DMA請(qǐng)求,于是8237A的HRQ有效,向CPU發(fā)出總線請(qǐng)求信號(hào)進(jìn)入S0狀態(tài),所以S0稱為總線請(qǐng)求態(tài),此狀態(tài)一般重復(fù)多次,直到CPU發(fā)出總線允許信號(hào)HLDA為止。時(shí)序圖:S1:更新高8位地址

8237A收到CPU發(fā)出總線允許信號(hào)HLDA后,便進(jìn)入S1態(tài)。在S1態(tài),8237A發(fā)地址允許信號(hào)AEN,允許把高8位地址A15~A8送數(shù)據(jù)總線DB7~DB0,并發(fā)地址鎖存信號(hào)ADSTB(在S2態(tài),用下降沿將高8位地址A15~A8鎖存)。一般情況下不需更新A15~A8,跳過S1直接進(jìn)入S2態(tài),在256次數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論