計算機課件10 DMA控制接口_第1頁
計算機課件10 DMA控制接口_第2頁
計算機課件10 DMA控制接口_第3頁
計算機課件10 DMA控制接口_第4頁
計算機課件10 DMA控制接口_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

w

糕/IA鹿副Jo

教學重點

■8237A的工作方式

-8237A寄存器組的作用

■8237A寄存器組的編程

10.1DMA控制器8237A

-每個8237A芯片有4個DMA通道,就是

有4個DMA控制器

■每個DMA通道具有不同的優(yōu)先權

■每個DMA通道可以分別允許和禁止

■每個DMA通道有4種工作方式

-一次傳送的最大長度可達64KB

■多個8237A芯片可以級連,擴展通道數

10.1,18237A的內部結構和引腳

■內部結構和外部引腳都相對比較復雜

■應用觀點,內部主要由兩類寄存器組成

-通道寄存器

■控制和狀態(tài)寄存器

L請求與響應信號

■DREQO?DREQ3:DMA通道請求。當外設需

要請求DMA服務時,將DREQ信號置成有效電

平,并要保持到產生響應信號。

■HRQ:總線請求。8237A輸出有效的HRQ高

電平,向CPU申請使用系統(tǒng)總線。

■HLDA:總線響應。8237A接受來自CPU的響

應信號HLDA,取得了總線的控制權。

■DACKO?DACK3:DMA通道響應。8237A使

請求服務的通道產生相應的DMA響應信號。

2.DMA傳送控制信號

■AO?A7:地址線。輸出低8位存儲器地址。

■DBO?DB7:數據線。輸出高8位存儲器地址;

存貯器與存貯器的傳送期間,用于數據傳送。

■ADSTB:地址選通。DMA傳送開始時,輸出高

有效,把在DBO?DB7上輸出的高8位地址鎖存

在外部鎖存器中。

■AEN:地址允許。輸出高有效,將鎖存的高8位

地址送入系統(tǒng)總線,與芯片此時輸出的低8位地

址組成16位存儲器地址。

2.DMA傳送控制信號(續(xù))

■MEMR*:存儲器讀。有效將數據從存儲器讀出

■MEMW*:存儲器寫。有效將數據寫入存儲器

■IOR*:I/O讀。有效將數據從外設讀出

■IOW*:I/O寫。有效將數據寫入外設

■READY:準備好。DMA傳送的S3下降沿檢測

到為低時,插入等待狀態(tài)Sw,直到READY為

高才進入第4個時鐘周期S4。

■EOP*:過程結束。DMA傳送過程結束,輸出

一個低有效脈沖。外部輸入低脈沖信號,則終

結DMA傳送。

*.3.處理器接口信號

■DB0-DB7:數據線。用于8237A與微處理

器進行數據交換。

■A0?A3:地址線。用以選擇芯片內部寄存器。

■CS*:片選。低有效時,微處理器與8237A通

過數據線通信,主要完成對8237A的編程。

■IOR*:I/O讀。讀取8237A內部寄存器。

■IOW*:I/O寫。寫入8237A內部寄存器。

■CLK:時鐘??刂菩酒瑑炔坎僮骱蛿祿鬏?。

■RESET:復位。使8237A處于初始狀態(tài)。

8237A的兩種工作狀態(tài)

■8237A具有兩種工作狀態(tài)

-空閑周期:

作為接口電路,受CPU控制的工作狀態(tài)

■有效周期:

作為DMAC控制DMA傳送的工作狀態(tài)

48237A弓|腳的兩種作用

與CPU連接與外設連接

(空閑周期)的引腳(有效周期)的引腳

CLK、RESETAEN、ADSTB、READY>EOP*

AO?A3、CS*、DB0~DB7A0~A7>DB0?DB7

工OR*、IOW*工OR*、IOW*>MEMR*>MEMW*

HRQ、HLDADREQO?DREQ3、DACKO?DACK3

10.1.28237A的工作時序空閑周期

■8237A的任一通道都沒有DMA請求時

-8237A由微處理器控制作為一個接口芯片

■CPU可對8237A編程,或從8237A讀取狀態(tài)

■8237A采樣CS*選片信號,該信號有效,

CPU就要對8237A進行讀/寫操作

■8237A還采樣通道的請求輸入信號DREQ,

10.1.28237A的工作時序?有效周期

■8237A采樣到外設有DMA請求,就脫

離空閑周期進入有效周期

■8237A作為系統(tǒng)的主控芯片,控制

DMA傳送操作

■DMA傳送借用系統(tǒng)總線完成,其控制

信號以及工作時序類似CPU總線周期

S工狀態(tài)——輸出16位存儲器地址

AEN輸出高電平,表示DMA傳送

狀態(tài)——輸出DMA響應信號和控制信號

DMA讀:MEMR*和IOW*有效

DMA寫:IOR*和MEMW*有效

S3和SW狀態(tài)——檢測數據傳送是否能夠完

成,決定是否插入等待狀態(tài)Sw

S4狀態(tài)——完成數據傳送

DMA傳送時序

10.138237A的工作方式

■DMA傳送方式

?單字節(jié)傳送方式-數據塊傳送方式

?請求傳送方式-級連方式

■DMA傳送類型

?DMA讀?DMA寫?DMA檢驗

■存儲器到存儲器的傳送

1.DMA傳送一單字節(jié)方式

■每次DMA傳送時僅傳送一個字節(jié)

■傳送一個字節(jié)之后,字節(jié)數寄存器減1,地址

寄存器加1或減工,HRQ變?yōu)闊o效

■8237A釋放系統(tǒng)總線,將控制權還給CPU

■若傳送后使字節(jié)數從0減到FFFFH,則終結

DMA傳送或重新初始化

■特點:

■一次傳送一個字節(jié),效率略低

-DMA傳送之間CPU有機會重新獲取總線控制權

1.DMA傳送一數據塊方式

■由DREQ啟動就連續(xù)地傳送數據,直到

字節(jié)數寄存器從0減到FFFFH終止計數,

或由外部輸入有效信號終結DMA傳送

■DREQ只需維持有效到DACK有效

■特點:

■一次請求傳送一個數據塊,效率高

■整個DMA傳送期間CPU長時間無法控制總

線(無法喻應其他DMA請束、無法處理中

斷等)

1.DMA傳送一請求方式

■DREQ信號有效就連續(xù)傳送數據

■DREQ信號無效,DMA傳送被暫時中止,

8237A釋放總線,CPU可繼續(xù)操作

■DMA通道的地址和字節(jié)數的中間值仍被保持

■DREQ信號再次有效,DMA傳送就繼續(xù)進行

■如果字節(jié)數寄存器從0減到FFFFH,或者由外

部送來一個有效的信號,將終止計數

■特點:

-DMA操作可由外設利用DREQ信號控制傳送的過程

1.DMA傳送一級連方式

■用于通過多個8237A級連以擴展通道

■第二級的HRQ和HLDA信號連到第一級

某個通道的DREQ和DACK±

-第二級芯片的優(yōu)先權等級與所連通道的

優(yōu)先權相對應

■第一級只起優(yōu)先權網絡的作用,實際的

操作由第二級芯片完成

■還可由第二級擴展到第三級等

2.DMA傳送類型

■DMA讀——把數據由存儲器傳送到外設

-由MEMR*有效從存儲器讀出數據,由IOW*有效

把這一數據寫入外設

-DMA寫——把外設輸入的數據寫入存儲器

-由IOR*有效從外設輸入數據,由MEMW*有效把

這一數據寫入存儲器。

■DMA檢驗——空操作

-8237A不進行任何檢驗

-外設可以進行DMA校驗

-存儲器和I/O控制線保持無效,不進行傳送

3.存儲器到存儲器的傳送

■固定使用通道o和通道工

■通道o的地址寄存器存源區(qū)地址

■通道工的地址寄存器存目的區(qū)地址,通道工的

字節(jié)數寄存器存?zhèn)魉偷淖止?jié)數

■傳送由設置通道0的軟件請求啟動

■每傳送一字節(jié)需用8個時鐘周期

-前4個時鐘周期用通道0地址寄存器的地址從源區(qū)讀

數據送入8237A的臨時寄存器

-后4個時鐘周期用通道工地址寄存器的地址把臨時寄

存器中的數據寫入目的區(qū)

4.DMA通道的優(yōu)先權方式

■固定優(yōu)先權方式----優(yōu)先權固定

■通道0優(yōu)先權最高,通道1其次,通道2再次,

通道3最低

-循環(huán)優(yōu)先權方式——優(yōu)先權循環(huán)變化

■最近一次服務的通道在下次循環(huán)中變成最低

優(yōu)先權,其他通道依次輪流相應的優(yōu)先權

5.自動初始化方式

■每當DMA過程結束信號EOP*產生時

(不論是內部終止計數還是外部輸入該

信號)

■用基地址寄存器和基字節(jié)數寄存器的內

容,使相應的現行寄存器恢復為初始值,

包括恢復屏蔽位、允許DMA請求

■這樣就作好了下一次DMA傳送的準備

10.L48237A的寄存器

■8237A共有10種內部寄存器,對它們的

操作有時需要配合3個軟件命令

■8237A的“軟件命令”

■不需要通過數據總線寫入控制字

■直接由地址和控制信號譯碼實現

1.現行地址寄存器

-保持DMA傳送的當前地址值

-每次傳送后該寄存器的值自動加1或減1

-這個寄存器的值可由CPU寫入和讀出

2.現行字節(jié)數寄存器

■保持DMA傳送的剩余字節(jié)數

■每次傳送后,該寄存器的值減1

■這個寄存器的值可由CPU寫入和讀出

■該寄存器的值減至0,再減1(從0減到

FFFFH)時,終止計數

%

-+-,、工i-M-■—T-口口

璞與??通道奇存奇

■CPU與8237A之間通過8位數據總線交

換信息,8237A的通道寄存器均為16位

■需要兩次讀寫操作才能實現CPU與

8237A之間的一個完整數據的交換

■8237A內含一個高/低觸發(fā)器,用來控

制讀寫通道寄存器的高、低字節(jié)

高/低觸發(fā)器

■該觸發(fā)器為0,控制讀寫低字節(jié)

-該觸發(fā)器為1,控制讀寫高字節(jié)

-軟、硬件復位后,觸發(fā)器為0

■每次讀寫通道寄存器,自動改變觸發(fā)器

狀態(tài)。如果對16位寄存器的操作用兩次

連續(xù)讀寫進行,就不必清除這個觸發(fā)器

■清除高/低觸發(fā)器軟件命令(A3A2人力0=

1100)將使高/低觸發(fā)器清零

3個軟件命令

■清除高/低觸發(fā)器軟件命令

-A3A2A1AO=11OO,使高/低觸發(fā)器清零

■主清除命令

-A3A2A1AO=11O1,使高/低觸發(fā)器清零

-還使命令、狀態(tài)、請求、臨時寄存器清零

-使屏蔽寄存器置為全工(禁止DMA請求)

-主清除命令與硬件的RESET信號具有相同的功能

■清屏蔽寄存器命令

-AAAA=111O,使4個屏蔽位都清零(允許

D3MA2請X求O)

5,模式寄存器

-存放相應通道的方式控制字

-選擇某個DMA通道的工作方式

-其中用最低2位選擇哪個DMA通道

方式字格式

D7D6

00通道0

01通道1

10通道2

11通道3

6.命令奇存器

■存放8237A的命令字

■設置8237A芯片的操作方式

■影響每個DMA通道

■復位時使命令寄存器清零

■設置D2=1才使8237A可以作為DMA控制器

Q命令字格式

干D7D6D5D4D3D2D1

/

儲器之間傳送

匕r

』允許存儲器之間傳送

』1

回國

7.請求寄存器

■存放軟件DMA請求狀態(tài)

■除硬件DMA請求外,當工作在數據塊傳

送方式時也可以通過軟件發(fā)出DMA請求

■若是存貯器到存貯器傳送,則必須由軟

件請求啟動通道0

請求字格式

D7D6D5D4D3D2DlDO

任意

0復位

00通道0

1置位

01通道1

10通道2

11通道3

8-屏蔽寄存器

■控制外設硬件DMA請求是否被響應(為0允

許),各個通道互相獨立。3種方法:

-單通道屏蔽字只對一個DMA通道屏蔽位進行設置

-主屏蔽字對4個DMA通道屏蔽位同時進行設置

-清屏蔽寄存器命令使4個屏蔽位都清零(允許)

復位休4不涌清冬罟千顯新於態(tài)

如果不是工作在

第勺屏蔽位置位,

單通道屏蔽字格式

D7D6D5D4D3D2DlDO

任意r.....

0清屏蔽位

00通道0

1置屏蔽位

01通道1

10通道2

11通道3

主屏蔽字格式

9,狀態(tài)寄存器

■可由CPU讀取

■低4位反映讀命令這個瞬間每個通道是否

產生TC(為1,表示該通道傳送結束)

■高4位反映每個通道的DMA請求情況

(為,表示該通道有請求)

■狀態(tài)位在復位或被讀出后,均被清零

10.臨時寄存器

■在存儲器到存儲器的傳送方式下,臨時

寄存器保存從源存儲單元讀出的數據,

該數據又被寫入到目的存儲單元

■傳送完成,臨時寄存器只會保留最后一

個字節(jié),可由CPU讀出

■復位使臨時寄存器內容為零

10.1.58237A的編程

■8327A芯片的初始化編程:只要寫入命

令寄存器

■可先輸出主清除命令,進行軟件復位

■然后寫入命令字

■命令字影響所有4個通道的操作

10.1.58237A的編程(續(xù)1)

■DMA通道的DMA傳送編程:

-將存儲器起始地址寫入地址寄存器(如果采用地

址減量工作,則是結尾地址)

-將本次DMA傳送的數據個數寫入字節(jié)數寄存器

(個數要減工)

-確定通道的工作方式,寫入方式寄存器

-寫入屏蔽寄存器復位通道屏蔽位,允許DMA請求

DMA通道0的刷新編程

out0dh9al;DMAC主清除命令

moval90

out08,al;DMAC命令字

moval90

out00,al;通道0的地址寄存器低字節(jié)

out00,al;通道0的地址寄存器高字節(jié)

moval,Offh

out01,al;通道0的字節(jié)數寄存器低字節(jié)

out01,al;通道0的字節(jié)數寄存器高字節(jié)

moval,58h

outObh,al;通道0模式字

moval,0

out0ah9al;通道0屏蔽字

IBMPC/XT|<----->

10.1.58237A的編程(續(xù)2)

■兩種方法反映DMA過程結束(即終止

計數、發(fā)生TC):

■狀態(tài)寄存器的低4位

■信號(需配合DACK響應信號確定通道)

-應用程序處理DMA傳送過程結束:

■采用軟件查詢狀態(tài)字

■采用硬件中斷在中斷服務程序處理

10.28237A的應用

-8237A在PC系列機的使用情況

■DMA寫傳送

■DMA設定子程序

10.2,18237A在IBMPC系列機上的應用

■IBMPC/XT機使用一片8237A

■通道0:動態(tài)存貯器DRAM刷新

■通道L用戶使用或SDLC卡

■通道2:內存與軟盤的高速數據交換

■通道3:內存與硬盤的高速數據交換

■IBMPC/AT機采用兩片8237A

■DMAC1包含通道0?3,支持8位數據傳送

■DMAC2組成通道4?7,通道5?7支持16

位數據傳送,通道4用于級連

1.8237A的初女臺化

8237A初始化寫入命令字為0,確定了:

-DREQ高電平有效、DACK低電平有效,固定優(yōu)先

權(依次為通道0、1……7)

■不進行存儲器到存儲器的數據傳輸

-PC機用DMA控制電路進行刷新,所以DMA傳送不

能長時間占用總線(不應超過工5.),一般只能

使用單字節(jié)傳送方式

在PC系列機上,用戶如果使用DMA通道,要

注意遵從上述系統(tǒng)要求。除了要禁止8237A工

作,用戶通常不必操作命令寄存器

2.高位地址的形成

■DMA傳送時的高位地址由“頁面寄存器”提

A1?A16的16位地址,而系統(tǒng)A0被強迫為邏

輯0,頁面寄存器僅輸出高7位地址A17?A23

10.2.2DMA寫傳送

通道1工作方式

moval,45h;通道1方式字:

;單字節(jié)寫傳送,地址增量,非自動初始化

out0bh9al

nop;延時

nop

out0ch9al;清高/低觸發(fā)器命令

DMA寫傳送--->

通道1起始地址

moval,0

out02h,al;寫入低8位地址到地址寄存器

moval,50h

out02h,al;寫入中8位地址到地址寄存器

moval,04h

out83h,al;寫入高8位地址到頁面寄存器

DMA寫傳送--->

通道1傳送字節(jié)數

movax,2048-l;AX-傳送字節(jié)數減1

out03h,al;送字節(jié)數低8位到字節(jié)數寄存器

moval9ah

out03h,al;送字節(jié)數高8位到字節(jié)數寄存器

moval,01

outOah,al

;單通道屏蔽字:允許通道1的DMA請求

……;其他工作

DMA寫傳送<--->

通道1傳送結束判斷

dmalp:inal908h;讀狀態(tài)寄存器

andal902h;判斷通道1是否傳送結束

jzdmalp;沒有結束,則循環(huán)等待

;傳送結束,處理轉換數據

DMA寫傳送<--->

1023DMA設定子程序

■系統(tǒng)ROM-B1OS的DMA設定子程序:

DMA通道2傳送編程

-軟盤的讀寫利用DMA通道2傳送數據

■被讀軟盤、寫軟盤和軟盤檢驗等軟盤

I/O功能程序調用

通道2工作方式

pushex;保存CX

cli;關中斷

outOch,al;清高/低觸發(fā)器命令

pushax;延時

popax

out0bh9al;將41中的方式字寫入通道2

DMA設定子程序--->

形成物理地址

movax,es

movcl,4

rolax,cl;段地址左移4位

movch9al;高位存入CH

andal,0f0h

addax,bx;加段內偏移地址

jncj33

incch;物理地址形成

j33:pushax;保存AX

DMA設定子程序<--->

--->

計算傳送字節(jié)警

movah5dh;取扇區(qū)數,計算傳送的字節(jié)數

subal9al;AX為扇區(qū)數乘256

shrax,l;AX為扇區(qū)數乘128

pushax;暫存A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論