第八章8237A.ppt_第1頁
第八章8237A.ppt_第2頁
第八章8237A.ppt_第3頁
第八章8237A.ppt_第4頁
第八章8237A.ppt_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、,王慧玲,Direct Memory Access Controller,DMA控制器,問題引入,-交作業(yè),上課時間,大家將手里的作業(yè)交到我所在的講桌上。,我,CPU,作業(yè),數(shù)據(jù),源地址 大家手上,目的地址 講桌,外設(shè),內(nèi)存,問題引入,-交作業(yè),如果采用第七章的中斷技術(shù),其整個過程如下:,同學舉手提出交作業(yè)申請,我同意提交, 暫停上課,第一位同學提交作業(yè),提交完畢,我繼續(xù)上課,問題引入,-交作業(yè),如果采用第七章的中斷技術(shù),存在問題1:,每個同學交作業(yè)之前都需要向我申請,需要申請108次,另外我需要響應(yīng)108次申請。(即外設(shè)每次申請只傳輸一個字節(jié)的數(shù)據(jù)。)-即申請次數(shù)繁多。 解決思路:只需某一位

2、同學申請,其它同學無需申請直接提交。,問題引入,-交作業(yè),如果采用第七章的中斷技術(shù),存在問題2:,I/O,cpu,M,data,大家 手上,我,講桌,作業(yè),作業(yè),data,data,8.1 DMA控制器概要 8.2 8237A的編程結(jié)構(gòu)和外部引腳 8.3 8237A的工作模式和模式寄存器 8.4 8237A的工作時序 8.5 8237A的控制寄存器和狀態(tài)寄存器 8.6 8237A各寄存器對應(yīng)的端口地址,目錄,8.1 DMA控制器概述,一、DMA控制器概念:,DMA(Direct Memory Access):直接存儲器存取技術(shù),是一種不需要CPU干預(yù)也不需要軟件介入的高速數(shù)據(jù)傳送方式。 CPU

3、只是啟動DMA過程,但是不干預(yù)這一過程,整個DMA過程是由硬件自動完成的,也不需要軟件的介入。 在DMA控制器的控制下,可以實現(xiàn)外設(shè)到和內(nèi)存,內(nèi)存到內(nèi)存的數(shù)據(jù)傳輸。,無需CPU指令,8.1 DMA控制器概述,二、DMA控制器工作過程:,DMA控制器的工作過程分為四個階段,分別是: 申請階段 響應(yīng)階段 數(shù)據(jù)傳送階段 傳送結(jié)束階段。,8.1 DMA控制器概述,二、DMA控制器工作過程-申請階段,1.外設(shè)向DMAC發(fā)出DMA請求信號DREQ(DMA Request); 2. DMAC向CPU發(fā)總線請求信號HRQ(Hold Request)。,8.1 DMA控制器概述,二、DMA控制器工作過程-響應(yīng)階

4、段,1. CPU向DMA發(fā)總線保持回答信號HLDA。 狀態(tài): CPU讓出總線,DMAC為主控者。,8.1 DMA控制器概述,二、DMA控制器工作過程-數(shù)據(jù)傳送階段,1. DMAC向外設(shè)發(fā)DMA請求回答信號,選中外設(shè)。 2. 并通過AB選中內(nèi)存單元 3. 通過DB將數(shù)據(jù)從源端傳送到目的端。,8.1 DMA控制器概述,二、DMA控制器工作過程-傳送結(jié)束階段,1.數(shù)據(jù)傳送完畢,DMAC傳送外設(shè)“過程結(jié)束”信號。 2.向CPU交回總線,CPU重新獲得總線的控制權(quán)。,問題思考,CPU能不能完成DMAC控制器內(nèi)存到內(nèi)存,內(nèi)存與I/O直接的數(shù)據(jù)傳輸功能呢?,原因:1.CPU的選中外設(shè)與內(nèi)存的 引腳是M/IO

5、,答:不能,2.CPU的地址線只有一組。,8.1 DMA控制器概述,幾種常見DMAC,主菜單,8.2 8237A的編程結(jié)構(gòu)和外部引腳,一、8237A的主要特點:,(1)一個芯片中有4個獨立的DMA通道。 (2)可以實現(xiàn)內(nèi)存與外設(shè),內(nèi)存與內(nèi)存的數(shù)據(jù)傳輸。 (3)每一個通道的DMA請求都可以被允許或禁止。 (4)每個通道的DMA請求有不同的優(yōu)先級,即可以是 固定優(yōu)先級,也可以是循環(huán)優(yōu)先級。 (5)每個通道一次傳送的最大字節(jié)數(shù)為64KB。 (6)8237A提供4種傳送方式:單字節(jié)傳送方式、數(shù)據(jù) 傳送方式、請求傳送方式和級連傳送方式。,二、8237A的編程結(jié)構(gòu)圖(1):,模式寄存器,8.2.1 823

6、7A的編程結(jié)構(gòu),8.2.1 8237A的編程結(jié)構(gòu),二、8237A的編程結(jié)構(gòu)圖(2):,8.2.1 8237A的外部引腳,三、8237A的外部引腳-引腳圖:,8237A是有40個引腳的雙列直插式芯片。 40個引腳分成兩組:一組與CPU的連接;一組與I/O接口的連接。,8.2.1 8237A的外部引腳,三、8237A的外部引腳:,1.DREQ0-DREQ3:(DMA Request)DMA請求信號。輸入,信號極性可編程決定 2.HRQ(Hold Request) :總線請求信號。輸出,高電平有效。 8237A向CPU請求使用總線。 3.HLDA(Hold Acknowledge):總線響應(yīng)信 號。

7、輸入,高電平有效。CPU對HRQ的回答,表示已讓出總線控制權(quán)。 4.DACK0-DACK3:(DMA Acknowledge)DMA應(yīng)答信號。輸出,信號極性可編程決定。,8.2.1 8237A的外部引腳,三、8237A的外部引腳:,5.A3-A0:(Adress)地址信號。雙向,作為主模塊時,輸出16位地址中的A3-A0。做為從模塊時,輸入,選中某個寄存器。 6.A7-A4:(Adress)地址信號。輸出16位地址中的A7-A4。 7.DB7-DB0:(Data Bus)數(shù)據(jù)線。雙向,8位數(shù)據(jù)線,傳送CPU的控制命令,和內(nèi)部寄存器的內(nèi)容。,8.2.1 8237A的外部引腳,三、8237A的外部

8、引腳:,8. IOR:(I/O Read)I/O讀信號。三態(tài)雙向,低電平有效。作主模塊時:輸出,給I/O設(shè)備發(fā)讀命令。作從模塊時:輸入,接收來自CPU的讀命令。 9.IOW:(I/O Write)I/O寫信號。三態(tài)雙向,低電平有效。作主模塊時:輸出,給I/O設(shè)備發(fā)寫命令。作從模塊時:輸入,接收來自CPU的寫命令 10.MEMR:(Memory Read)存儲器讀命令。輸出,低電平有效。 11.MEMW:(Memory Write)存儲器寫命令。輸出,低電平有效。,8.2.1 8237A的外部引腳,三、8237A的外部引腳:,12. CLK:(clock )時鐘信號。輸入,8237A:最高3MH

9、Z. 8237A-5:最高5MHZ. 13. CS:(Chip Slected)片選信號。輸入,低電平有效。 14. RESET:復(fù)位信號。輸入,高電平有效。8237內(nèi)部寄存器清0,屏蔽寄存器置1,8237A處于狀態(tài),允許CPU訪問。 15.READY:就緒信號。輸入,低速設(shè)備可通過給此引腳加低電平來延長總線周期。,8.2.1 8237A的外部引腳,三、8237A的外部引腳:,16. AEN:(Adress Enable)地址允許信號。輸出,高電平有效。表示允許8237A的16位地址送到AB。 17. ADSTB:(Adress Strobe)地址選通信號。輸出,低電平有效。表示DB7-DB0

10、輸出的是高8位地址。利用該信號將這8位地址打入地址鎖存器。 18. EOP:(End of Process)傳輸過程結(jié)束信號,雙向,低電平有效。輸入:強迫8237A結(jié)束DMA操作。輸出:通過外設(shè)DMA傳送結(jié)束。,8.2 8237A的編程結(jié)構(gòu)和外部引腳,二、8237A的外部引腳-與外部的連接圖:,那對于20位地址線8237如何處理?,在8086/88系統(tǒng)中,系統(tǒng)的尋址范圍是1MB,地址線有20條,即A0A19。為了能夠在8086/88系統(tǒng)中使用8237來實現(xiàn)DMA,需要用硬件提供一組4位的頁寄存器。 通道0、1、2、3各有一個4位的頁寄存器。在進行DMA傳送之前,這些頁寄存器可利用I/O地址來裝

11、入和讀出。當進行DMA傳送時,DMAC將A0A15放在系統(tǒng)總線上,同時頁寄存器把A16A19也放在系統(tǒng)總線上,形成A0A19這20位地址信號實現(xiàn)DMA傳送。其地址產(chǎn)生如圖所示。,主菜單,主菜單,27,8237,暫存器,內(nèi)存,內(nèi)存,A0A15,MEMW,MEMR,D0D7,內(nèi)存到內(nèi)存的傳輸,D0D7,DMA只有一組地址線,如果實現(xiàn)內(nèi)存到內(nèi)存的數(shù)據(jù)傳輸呢?,8.3 8237A的工作方式,8237A的工作狀態(tài) 8237A的工作模式 8237A的傳送類型 8237A的優(yōu)先級,一、8237A的工作狀態(tài),1.主模塊:接管并取得總線控制權(quán),取代CPU而成為系統(tǒng)的 主控者。DMAC通過三總線向M或I/O發(fā)出地

12、址碼及 讀/寫信號,以控制M和I/O設(shè)備之間的數(shù)據(jù)傳送。 2.從模塊:未取得總線控制時,同于其他 I/O設(shè)備,受CPU 的控制。這時,CPU對DMAC進行初始化操作或從 DMAC讀取狀態(tài)信息。,8.3 8237A的工作方式,返回,二、8237A工作模式(1),1.單字節(jié)傳輸模式:在單字節(jié)傳輸方式下,DMA控制器每次請求總線只傳送一個字節(jié)數(shù)據(jù),傳送完后即釋放總線控制權(quán)。 2.塊傳輸模式:指DMA控制器每次請求總線連續(xù)傳送一個數(shù)據(jù)塊,待整個數(shù)據(jù)塊全部傳送完成后再釋放總線控制權(quán)。 由DREQ啟動就連續(xù)地傳送數(shù)據(jù),直到字節(jié)數(shù)寄存器從0減 到FFFFH終止計數(shù),或由外部輸入有效信號終結(jié)DMA傳送 DRE

13、Q只需維持有效到DACK有效,8.3 8237A的工作方式,二、8237A工作模式(續(xù)),3.請求傳輸模式:此方式與塊傳輸方式基本類似,不同的是每傳輸完一個字節(jié),DMA控制器都要檢測由I/O接口發(fā)來的DMA請求信號是否仍然有效,如果該信號仍有效,則繼續(xù)進行DMA傳輸;否則,就暫停傳輸,交還總線控制權(quán)給CPU,直至DMA請求信號再次變?yōu)橛行?,?shù)據(jù)塊傳輸則從剛才暫停的那一點繼續(xù)進行下去。,8.3 8237A的工作方式,二、8237A工作模式(續(xù)),4.級聯(lián)傳輸模式:在系統(tǒng)中有多片8237A,構(gòu)成主從式DMA系統(tǒng)。級聯(lián)的辦法是把從片的HRQ端與主片的DREQ端聯(lián)。,8.3 8237A的工作方式,返回

14、,三、8237A傳送類型,1.DMA讀:,3.DMA校驗:這是一種偽傳輸,實際上是校驗8237A芯片內(nèi)部的讀寫信號,在這種傳輸中,8237A芯片如同DMA讀和DMA寫一樣,產(chǎn)生地址及響應(yīng)信號,但禁止實際傳輸。,2.DMA寫:,內(nèi)存 I/O ;MEMR 和IOW,8.3 8237A的工作方式,返回,四、8237A的優(yōu)先級,1.固定優(yōu)先級:四通道優(yōu)先級固定,通道1最高,通道3最低。即:DREQ0-DREQ3 2.循環(huán)優(yōu)先級:優(yōu)先級相同。當某一通道被響應(yīng)且服務(wù)后,它就被指定為最你優(yōu)先級,下一通道就為最高優(yōu)先級。,注意:DMA禁止嵌套,優(yōu)先級排除只在DMA響應(yīng)前有效,DMA響應(yīng)后無效。,8.3 823

15、7A的工作方式,返回,主菜單,8237A有兩種工作時序:空閑周期和操作周期(有效周期)。 全部的工作周期分為7種狀態(tài)(時鐘周期):空閑態(tài)SI、起始態(tài)S0、傳送態(tài)S1、S2、S3、S4、等待態(tài)SW 。,8.4 8237A的工作時序,一、空閑周期 在沒有DMA請求時,8237A就空閑周期,執(zhí)行連續(xù)的空閑狀態(tài)SI,在空閑周期內(nèi),每個SI狀態(tài)都要進行兩種檢測: 1.檢測有無信號:以確定有無CPU對8237A的操作要求。若信號有效,則表明CPU要求8237A進行讀寫操作,此時8237A作為從態(tài)工作,作為CPU的一個I/O接口。進行編程狀態(tài),受CPU的控制。對8237A的初始化工作就在這種狀態(tài)下實現(xiàn)的。,

16、8.4 8237A的工作時序,一、空閑周期 2.檢測有無DREQ信號。以確定有無I/O設(shè)備送來的DMA請求。若有DREQ有效,則產(chǎn)生總線請求HRQ,從SI狀態(tài)進入S0狀態(tài),此時,8237A以主態(tài)工作,以后的工作由8237A控制。,8.4 8237A的工作時序,二、操作周期 8237A在空閑周期內(nèi)檢測出DMA請求有效后,便進入操作周期,操作周期有6種狀態(tài),起始態(tài)S0、工作狀態(tài)態(tài)S1、S2、S3、S4、等待態(tài)SW 。 8237A的狀態(tài)轉(zhuǎn)換。 SI 空親狀態(tài):檢測CS DREQ S0:起始態(tài),過度態(tài),從發(fā)出HRQ到HLDA有效前 S1:工作狀態(tài)1:準備高8位地址 S2:工作狀態(tài)2:提供16位地址 S

17、3:工作狀態(tài)3:發(fā)讀信號 S4:工作狀態(tài)4:發(fā)寫信號 SW:等待狀態(tài),8.4 8237A的工作時序,正常時序:S1 S2 S3 S4 壓縮時序:S2 S4 擴展時序:S1 S2 S4,8.4 8237A的工作時序,主菜單,8237A內(nèi)部狀態(tài)變化流程,8.4 8237A的工作時序,主菜單,通過對方式字寄存器的編程,可以設(shè)備某個通道為自動初始化方式。 自動初始化方式的功能: 當該通道完成一個數(shù)據(jù)傳送并產(chǎn)生信號時,用基地址寄存器和基字節(jié)寄存器的內(nèi)容,使相應(yīng)的當前地址寄存器和當前字節(jié)計數(shù)器恢復(fù)初值。 自動初始化,通道就做好了另一次數(shù)據(jù)傳送的準備。,8.4 8237A的初始化方式,主菜單,利用這種方式,

18、可以使數(shù)據(jù)塊從一個存儲空間傳磅到另一個存儲空間,將程序的影響和傳輸時間減到最小。 這種方式要占用8237A的2個通道。由通道0提供源地址,通道1提供目的地址。通道1的字節(jié)計數(shù)器編程為傳送的字節(jié)數(shù)。傳送由設(shè)置一個通道0的軟件DREQ啟動。8237A按正常方式向CPU發(fā)出HRQ,當CPU發(fā)出總線響應(yīng)信號HLDA后,DMA傳送即可開始。,8.4 8237A的初始化方式,主菜單,8.5 8237A的寄存器,主菜單,-模式寄存器,8.5 8237A的寄存器,主菜單,8.5 8237A的寄存器,主菜單,-請求寄存器,8.5 8237A的寄存器,主菜單,-屏蔽寄存器,8237A每個通道有一位“屏蔽位”,當其通道的“屏蔽位”置1時,則外部對應(yīng)的DREQ信號被屏蔽,

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論