第十一章DMA控制器_第1頁
第十一章DMA控制器_第2頁
第十一章DMA控制器_第3頁
第十一章DMA控制器_第4頁
第十一章DMA控制器_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第11章章 DMA 控制器控制器【內(nèi)容簡介內(nèi)容簡介】 首先介紹可編程首先介紹可編程DMA控制器控制器8237A的基的基 本組成、工作原理與本組成、工作原理與工作方式,然后介紹工作方式,然后介紹8237在數(shù)據(jù)傳送中的應(yīng)用與編程。在數(shù)據(jù)傳送中的應(yīng)用與編程?!局攸c難點重點難點】 重點是重點是DMA8237的基本組成、工作原理、工作方式與編程,難點是各的基本組成、工作原理、工作方式與編程,難點是各功能寄存器的作用與初始化程序設(shè)計。功能寄存器的作用與初始化程序設(shè)計。第第11章章 DMA 控制器控制器11.1 11.1 概概 述述11.2 11.2 可編程可編程DMADMA控制器控制器8237A8237

2、A11.3 8237A11.3 8237A工作狀態(tài)與編程使用工作狀態(tài)與編程使用 DMA是由硬件來實現(xiàn)是由硬件來實現(xiàn)I/O設(shè)備與主存之間或者主存內(nèi)部的數(shù)據(jù)傳設(shè)備與主存之間或者主存內(nèi)部的數(shù)據(jù)傳送,因此稱為存儲器直接存取方式??勺止?jié)傳送,也可按數(shù)據(jù)塊傳送,送,因此稱為存儲器直接存取方式??勺止?jié)傳送,也可按數(shù)據(jù)塊傳送,速度快,效率高。速度快,效率高。 DMA的概念和傳送過程已在的概念和傳送過程已在5.2.4節(jié)介紹,這里主要介紹節(jié)介紹,這里主要介紹8237A的組成與工作過程。的組成與工作過程。 8237A片內(nèi)有片內(nèi)有4個獨立的個獨立的DMA通道和一組共用的基本控制邏輯電通道和一組共用的基本控制邏輯電路,

3、其組成如路,其組成如圖圖11.1所示。包括時序與控制邏輯、優(yōu)先級編碼邏輯、所示。包括時序與控制邏輯、優(yōu)先級編碼邏輯、數(shù)據(jù)數(shù)據(jù)/地址緩沖器、命令控制電路、狀態(tài)寄存器、命令寄存器、暫存地址緩沖器、命令控制電路、狀態(tài)寄存器、命令寄存器、暫存寄存器、暫存地址寄存器、暫存字節(jié)計數(shù)器、先寄存器、暫存地址寄存器、暫存字節(jié)計數(shù)器、先/后觸發(fā)器和屏蔽寄后觸發(fā)器和屏蔽寄存器等。每個通道又有相應(yīng)的寄存器。存器等。每個通道又有相應(yīng)的寄存器。11.1 概概 述述 時 序 與 控 制 邏 輯 R E S E T C S R E A D Y C L K A E N A D S T B IO R IO W E O P M E

4、 M R M E M W 地 址 緩 沖 A3 A0 地 址 緩 沖 A7 A4 地 址 數(shù) 據(jù) 緩 沖 D7 D0 (A1 5 A8) 優(yōu) 先 級 編 碼 邏 輯 D R E Q0 D R E Q3 D A C K0 D A C K3 H R Q H L D A 狀 態(tài) 寄 存 器 (8) 命 令 寄 存 器 (8) 暫 存 寄 存 器 (8) 先 /后 觸 發(fā) 器 主 屏 蔽 寄 存 器 暫 存 地 址 寄 存 器 (16) 暫 存 字 節(jié) 計 數(shù) 器 (16) 命 令 控 制 邏 輯 方 式 寄 存 器 (8) 基 地 址 寄 存 器 (8) 基 字 節(jié) 計 數(shù) 器 (16) 當(dāng) 前 字

5、 節(jié) 計 數(shù) 器 (16) 當(dāng) 前 地 址 寄 存 器 (16) 請 求 位 屏 蔽 位 通 道0 通 道1 通 道3 通 道2 圖 11.1 D M A 控 制 器 內(nèi) 部 組 成 返回11.2.211.2 11.2 可編程可編程DMADMA控制器控制器8237A8237A 11.2.1 11.2.1 引腳功能引腳功能 11.2.2 11.2.2 內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)11.2.1 引腳功能引腳功能 8237采用雙列直插式封裝,有采用雙列直插式封裝,有40個個引腳,如引腳,如圖圖11.2所示,其作用如下:所示,其作用如下: A3A0:地址線,雙向,三態(tài),:地址線,雙向,三態(tài),DMA傳送時輸出地址低

6、傳送時輸出地址低4位;輸入位;輸入時,選擇時,選擇8237A的內(nèi)部寄存器。的內(nèi)部寄存器。 A7A4:地址線,輸出,三態(tài),:地址線,輸出,三態(tài),DMA傳送時,輸出地址高傳送時,輸出地址高4位。位。 DB7DB0:數(shù)據(jù)線,雙向,三態(tài),:數(shù)據(jù)線,雙向,三態(tài),數(shù)據(jù)傳送時作為數(shù)據(jù)傳送時作為8位數(shù)據(jù)線;位數(shù)據(jù)線;DMA工作時,輸出高工作時,輸出高8位地址位地址A15-A8,由,由ADSTB信號選通。信號選通。 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 8237A 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24

7、18 23 19 22 20 21 IOR IOW MEMR MEMW NC READY HLDA ADSTB AEN HRQ CS CLK RESET DACK2 DACK3 DREQ3 DREQ2 DREQ1 DREQ0 GND 圖 11.2 8237A 引腳 A7 A6 A5 A4 EOP A3 A2 A1 A0 VCC(+5V) DB0 DB1 DB2 DB3 DB4 DACK0 DACK1 DB5 DB6 DB7 IOW:I/O寫信號,雙向,三態(tài),低電平有效。寫信號,雙向,三態(tài),低電平有效。 IOR:I/O讀信號,雙向,三態(tài),低電平有效。讀信號,雙向,三態(tài),低電平有效。 MEMW:主

8、存寫信號,輸出,三態(tài),低電平有效。:主存寫信號,輸出,三態(tài),低電平有效。 MEMR:主存讀信號,輸出,三態(tài),低電平有效。:主存讀信號,輸出,三態(tài),低電平有效。 ADSTB:地址選通信號,輸出,高電平有效,:地址選通信號,輸出,高電平有效,DMA傳送時選通傳送時選通 DB7DB0輸出高輸出高8位地址位地址A15A8。 AEN:地址允許信號,輸出,高電平有效,:地址允許信號,輸出,高電平有效,DMA傳送時表示傳送時表示16位位地址有效。地址有效。 CS:片選信號,輸入,低電平有效。:片選信號,輸入,低電平有效。 RESET:高電平有效,復(fù)位后,清除命令、狀態(tài)、請求和暫存寄:高電平有效,復(fù)位后,清除

9、命令、狀態(tài)、請求和暫存寄存器,屏蔽寄存器置存器,屏蔽寄存器置1,禁止,禁止4個通道的個通道的DMA請求。請求。 READY:準(zhǔn)備好信號,輸入,高電平有效,由:準(zhǔn)備好信號,輸入,高電平有效,由DAM插入等待周期。插入等待周期。 HRQ:總線請求信號,輸出,高電平有效,連接:總線請求信號,輸出,高電平有效,連接CPU的的HOLD端。端。 HLDA:總線響應(yīng)信號,輸入,高電平有效,表示:總線響應(yīng)信號,輸入,高電平有效,表示DMA控制器控制器獲得總線控制權(quán)。獲得總線控制權(quán)。 DREQ3DREQ0:4個通道的個通道的DMA請求,輸入,可編程為高電請求,輸入,可編程為高電平或者低電平有效,需維持到平或者低

10、電平有效,需維持到DMA響應(yīng)。響應(yīng)。 DACK3DACK0:4個通道的個通道的DMA響應(yīng)信號,輸出,可編程為響應(yīng)信號,輸出,可編程為高電平或者低電平有效,高電平或者低電平有效,DMA控制器獲得控制器獲得HLDA信號后,產(chǎn)生信號后,產(chǎn)生DACK信號,送信號,送I/O接口或設(shè)備。接口或設(shè)備。 CLK:時鐘信號,輸入,用于:時鐘信號,輸入,用于8237A基準(zhǔn)定時?;鶞?zhǔn)定時。 EOP:DMA傳送結(jié)束信號,雙向,低電平有效。輸入,強迫傳送結(jié)束信號,雙向,低電平有效。輸入,強迫DMA傳送結(jié)束;輸出,表示傳送結(jié)束;輸出,表示DMA傳送結(jié)束。傳送結(jié)束。11.2.2 內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) 8237A內(nèi)部組成如內(nèi)部組

11、成如圖圖11.1所示,其功能通過內(nèi)部寄存器來實現(xiàn)。所示,其功能通過內(nèi)部寄存器來實現(xiàn)。 1. 當(dāng)前地址寄存器當(dāng)前地址寄存器 存放存放DMA傳送時的傳送時的16位存儲器地址,具有自增位存儲器地址,具有自增1或自減或自減1功能;編功能;編程時,程時,CPU可對其讀可對其讀/寫。若寫。若DMA控制器設(shè)置成自動預(yù)置方式,當(dāng)每控制器設(shè)置成自動預(yù)置方式,當(dāng)每次字節(jié)計數(shù)為次字節(jié)計數(shù)為0或或EOP出現(xiàn)低電平時,基地址寄存器中的初值自動裝出現(xiàn)低電平時,基地址寄存器中的初值自動裝入當(dāng)前地址寄存器。入當(dāng)前地址寄存器。 2. 基地址寄存器基地址寄存器 與當(dāng)前地址寄存器共用端口地址,存放與當(dāng)前地址寄存器共用端口地址,存放

12、DMA傳送時的地址初值;傳送時的地址初值;在編程時,與當(dāng)前地址寄存器被同時寫入。在編程時,與當(dāng)前地址寄存器被同時寫入。 3. 當(dāng)前字節(jié)計數(shù)器當(dāng)前字節(jié)計數(shù)器 存放當(dāng)前的字節(jié)數(shù),每個通道有一個存放當(dāng)前的字節(jié)數(shù),每個通道有一個16位的當(dāng)前字節(jié)計數(shù)器,可位的當(dāng)前字節(jié)計數(shù)器,可按字節(jié)減按字節(jié)減1計數(shù),當(dāng)計數(shù)值由計數(shù),當(dāng)計數(shù)值由0減至減至0FFFFH時,產(chǎn)生傳送結(jié)束信號時,產(chǎn)生傳送結(jié)束信號EOP。若。若DMA設(shè)置成自動預(yù)置方式,當(dāng)設(shè)置成自動預(yù)置方式,當(dāng)EOP有效時,基字節(jié)計數(shù)器有效時,基字節(jié)計數(shù)器中的初值自動裝入當(dāng)前字節(jié)計數(shù)器中。中的初值自動裝入當(dāng)前字節(jié)計數(shù)器中。 4. 基字節(jié)計數(shù)器基字節(jié)計數(shù)器 與當(dāng)前字

13、節(jié)計數(shù)器共用端口地址,存放與當(dāng)前字節(jié)計數(shù)器共用端口地址,存放DMA傳送數(shù)據(jù)的字節(jié)數(shù);傳送數(shù)據(jù)的字節(jié)數(shù);在編程時,與當(dāng)前字節(jié)計數(shù)器被同時寫入。在編程時,與當(dāng)前字節(jié)計數(shù)器被同時寫入。 5. 方式寄存器方式寄存器 每個通道有一個方式寄存器,用來控制每個通道有一個方式寄存器,用來控制DMA傳送方式和方向,其傳送方式和方向,其格式如格式如圖圖11.3所示:所示: D1D0:用于通道選擇。:用于通道選擇。 D3D2:選擇通道:選擇通道DMA數(shù)據(jù)傳送類型。數(shù)據(jù)傳送類型。 圖11.3 工作方式寄存器 00:校驗傳輸 01:寫傳輸 10:讀傳輸 11:非法 若D7D6=11,則無效 D7 D6 D5 D4 D3

14、 D2 D1 D0 00:通道0 01:通道1 10:通道2 11:通道3 00:請求方式 01:單字節(jié)方式 10:塊傳送方式 11:級聯(lián)方式 0:地址自增 1:地址自減 0:禁止自動預(yù)置 1:允許自動預(yù)置 D4:若為:若為1,表示自動預(yù)置,表示自動預(yù)置,D4為為0時,禁止自動預(yù)置。時,禁止自動預(yù)置。 D5:若為:若為0,地址自增,地址自增1;D5為為1,地址自減,地址自減1。 D6D7:用來定義:用來定義DMA傳輸方式,共有傳輸方式,共有4種,如圖所示。其中級聯(lián)種,如圖所示。其中級聯(lián)連接方式如連接方式如圖圖11.4所示。所示。 6. 命令寄存器命令寄存器 其格式和各位的定義如其格式和各位的定

15、義如圖圖11.5所示,設(shè)置各通道的功能。復(fù)位后,所示,設(shè)置各通道的功能。復(fù)位后,所有位清所有位清0。 D0:控制存儲器到存儲器傳送。在存儲器到存儲器傳送時占用兩個:控制存儲器到存儲器傳送。在存儲器到存儲器傳送時占用兩個通道,通道通道,通道0存放源操作數(shù)地址,通道存放源操作數(shù)地址,通道1存放目的地址。傳送一個字節(jié)需存放目的地址。傳送一個字節(jié)需要兩個總線周期。要兩個總線周期。 D1:與:與D0配合使用,當(dāng)配合使用,當(dāng)D0為為1時,且時,且D1為為1,存儲器源地址保持不變。,存儲器源地址保持不變。圖1 1 . 4 8 2 3 7 A級聯(lián)框圖 微 處 理 器 H O L D H L D A 8 2 3

16、 7 A H R Q H L D A 8 2 3 7 A D R E Q D A C K H R Q H L D A D R E Q D A C K H R Q H L D A 8 2 3 7 A 第一級 第二級 0:固定優(yōu)先權(quán) 1:循環(huán)優(yōu)先權(quán) 0:不擴展寫入 1:擴展寫入 D3=1 時不起作用 圖 11.5 命令寄存器 0:正常時序 1:壓縮時序 D0=1 時不起作用 0:禁止存儲器到存儲器傳輸 1:允許存儲器到存儲器傳輸 0:禁止通道 0 地址不變 1:允許通道 0 地址不變 D0=0 時不起作用 0:允許 8237A 工作 1:禁止 8237A 工作 D7 D6 D5 D4 D3 D2

17、D1 D0 0:DREQ 高電平有效 1:DREQ 低電平有效 0:DACK 低電平有效 1:DACK 高電平有效 D2:啟:啟/停停8237A。 D3:在:在D0為為0時起作用。當(dāng)時起作用。當(dāng)D3為為0,選擇普通時序,一次,選擇普通時序,一次DMA傳傳送需用送需用4個時鐘周期;當(dāng)個時鐘周期;當(dāng)D3為為1,選擇壓縮時序,需,選擇壓縮時序,需3個時鐘周期。個時鐘周期。 D4:優(yōu)先權(quán)控制,:優(yōu)先權(quán)控制,D4為為0時選擇固定優(yōu)先級,通道時選擇固定優(yōu)先級,通道0級別最高;級別最高;D4為為1時,選擇循環(huán)優(yōu)先級方式。時,選擇循環(huán)優(yōu)先級方式。 D5:擴展寫周期。:擴展寫周期。D5為為1,寫信號提前到狀態(tài)信

18、號,寫信號提前到狀態(tài)信號S3發(fā)出。發(fā)出。 對于對于速度較慢的外部設(shè)備,可通過速度較慢的外部設(shè)備,可通過READY信號控制,在狀態(tài)信號信號控制,在狀態(tài)信號S3之后之后插入等待周期插入等待周期SW。 D6:DREQ有效電平控制位,有效電平控制位,D6為為1,低電平有效;,低電平有效;D6為為0,高電,高電平有效。平有效。 D7:DACK有效電平控制位,有效電平控制位,D7為為1,高電平有效;,高電平有效;D7為為0,低,低電平有效。電平有效。 7請求寄存器請求寄存器 8237A的的4個通道都有一個請求觸發(fā)器,共同構(gòu)成個通道都有一個請求觸發(fā)器,共同構(gòu)成DMA請求寄存請求寄存器。器。DMA請求可以由外

19、部觸發(fā),也可以軟件設(shè)置。在存儲器到存儲請求可以由外部觸發(fā),也可以軟件設(shè)置。在存儲器到存儲器傳送時,只能由軟件設(shè)置,格式如器傳送時,只能由軟件設(shè)置,格式如圖圖11.6所示。所示。 其中其中D1D0標(biāo)識標(biāo)識4個個通道序號。通道序號。 8. 屏蔽寄存器屏蔽寄存器 屏蔽寄存器有兩個。一個是單通道屏蔽寄存器,另一個是主屏蔽屏蔽寄存器有兩個。一個是單通道屏蔽寄存器,另一個是主屏蔽寄存器。單通道屏蔽寄存器的格式如寄存器。單通道屏蔽寄存器的格式如圖圖11.7(a)所示,所示, D1D0標(biāo)識通標(biāo)識通道號,道號,D2=1表示屏蔽,表示屏蔽,D2=0,不屏蔽。主屏蔽寄存器用來對,不屏蔽。主屏蔽寄存器用來對8237A

20、整整體設(shè)置,即一次設(shè)置體設(shè)置,即一次設(shè)置4個通道,其格式如個通道,其格式如圖圖11.7(b)所示。所示。 對屏蔽寄對屏蔽寄存器存器進行一次寫操作進行一次寫操作,即可清除,即可清除4個通道的屏蔽位,開放個通道的屏蔽位,開放DMA請求,請求,寫入地址為寫入地址為DMA+0EH。比如:。比如: MOV DX,DMA+14 OUT DX,AL未 用 圖 11.6 請 求 寄 存 器 D7 D6 D5 D4 D3 D2 D1 D0 00:選 擇 通 道0 01:選 擇 通 道1 10:選 擇 通 道2 11:選 擇 通 道3 0:復(fù) 位 請 求 1:置 位 請 求 D7 D6 D5 D4 D3 D2 D

21、1 D0 D7 D6 D5 D4 D3 D2 D1 D0 圖 11.7 屏蔽寄存器 (a) 通道屏蔽寄存器 未用 0:清除屏蔽位 1:置位屏蔽位 00:通道 0 屏蔽位 01:通道 1 屏蔽位 10:通道 2 屏蔽位 11:通道 3 屏蔽位 (b) 主屏蔽寄存器 未用 0:消除通道3屏蔽位 1:置位通道3屏蔽位 0:消除通道2屏蔽位 1:置位通道2屏蔽位 0:消除通道1屏蔽位 1:置位通道1屏蔽位 0:消除通道0屏蔽位 1:置位通道0屏蔽位 9. 狀態(tài)寄存器狀態(tài)寄存器 狀態(tài)寄存器共有狀態(tài)寄存器共有8位,給出位,給出8237A每個通道的狀態(tài),其格式如每個通道的狀態(tài),其格式如圖圖11.8所所示。示

22、。 D3D0標(biāo)識標(biāo)識4個通道計數(shù)器是否停止。如果計數(shù)終止或外部產(chǎn)生個通道計數(shù)器是否停止。如果計數(shù)終止或外部產(chǎn)生EOP信號,相應(yīng)位置為信號,相應(yīng)位置為1,停止,停止DMA操作。操作。D7D4表示表示4個通道是否有個通道是否有DMA請求,請求,1表示有請求,表示有請求,0表示沒有請求。表示沒有請求。 D0=1:通道 0 已停止計數(shù) D1=1:通道 1 已停止計數(shù) D2=1:通道 2 已停止計數(shù) D3=1:通道 3 已停止計數(shù) D7=1:通道 3 有請求 D6=1:通道 2 有請求 D5=1:通道 1 有請求 D4=1:通道 0 有請求 D7 D6 D5 D4 D3 D2 D1 D0 圖 11.8

23、狀態(tài)寄存器 10. 暫存寄存器暫存寄存器 在存儲器到存儲器傳送時,暫存從存儲器中讀出的數(shù)據(jù)。傳送完畢,在存儲器到存儲器傳送時,暫存從存儲器中讀出的數(shù)據(jù)。傳送完畢,保留最后一次傳送的數(shù)據(jù)。在編程狀態(tài),其中的內(nèi)容可由保留最后一次傳送的數(shù)據(jù)。在編程狀態(tài),其中的內(nèi)容可由CPU讀出,讀出,RESET復(fù)位時清復(fù)位時清0。 11.先先/后觸發(fā)器后觸發(fā)器 先先/后觸發(fā)器清后觸發(fā)器清0,第,第1字節(jié)寫入寄存器的低字節(jié)寫入寄存器的低8位,然后先位,然后先/后觸發(fā)器自后觸發(fā)器自動置動置1,第,第2個字節(jié)寫入寄存器的高個字節(jié)寫入寄存器的高8位。同時,先位。同時,先/后觸發(fā)器自動清后觸發(fā)器自動清0。 以上寄存器口地址與

24、作用如以上寄存器口地址與作用如表表11.1所示。所示。 8086地址線有地址線有20位(位(A19A0),而),而8237A只能提供只能提供16位地址線位地址線(A15A0)。)。 為使用為使用8237A來實現(xiàn)來實現(xiàn)DMA傳送,常以硬件電路構(gòu)成傳送,常以硬件電路構(gòu)成4位頁面地址寄位頁面地址寄存器,每個通道各有一個。在進行存器,每個通道各有一個。在進行DMA傳送時,由頁面地址寄存器提傳送時,由頁面地址寄存器提供供DMA傳送所需要的高傳送所需要的高4位地址位地址A19A16。表表11.1 8237A寄存器地址與操作命令寄存器地址與操作命令 寄存器端口地址寄存器端口地址 通道通道 讀操作讀操作 寫操

25、作寫操作 DMA+0DMA+1 0讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器讀當(dāng)前字節(jié)計數(shù)器讀當(dāng)前字節(jié)計數(shù)器 寫基寫基/當(dāng)前地址寄存器當(dāng)前地址寄存器寫基寫基/當(dāng)前字節(jié)計數(shù)器當(dāng)前字節(jié)計數(shù)器 DMA+2DMA+3 1讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器讀當(dāng)前字節(jié)計數(shù)器讀當(dāng)前字節(jié)計數(shù)器 寫基寫基/當(dāng)前地址寄存器當(dāng)前地址寄存器寫基寫基/當(dāng)前字節(jié)計數(shù)器當(dāng)前字節(jié)計數(shù)器 DMA+4DMA+5 2讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器讀當(dāng)前字節(jié)計數(shù)器讀當(dāng)前字節(jié)計數(shù)器 寫基寫基/當(dāng)前地址寄存器當(dāng)前地址寄存器寫基寫基/當(dāng)前字節(jié)計數(shù)器當(dāng)前字節(jié)計數(shù)器 DMA+6DMA+7 3讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器讀當(dāng)前字節(jié)計數(shù)器讀當(dāng)前字節(jié)計數(shù)

26、器 寫基寫基/當(dāng)前地址寄存器當(dāng)前地址寄存器寫基寫基/當(dāng)前字節(jié)計數(shù)器當(dāng)前字節(jié)計數(shù)器 DMA+8DMA+9DMA+10DMA+11DMA+12DMA+13DMA+14DMA+15 共共用用讀狀態(tài)寄存器讀狀態(tài)寄存器讀暫存寄存器讀暫存寄存器寫命令寄存器寫命令寄存器寫請求寄存器寫請求寄存器寫單個通道屏蔽字寫單個通道屏蔽字寫方式字寄存器寫方式字寄存器清除先清除先/后觸發(fā)器后觸發(fā)器復(fù)位芯片復(fù)位芯片(主清除主清除)清除屏蔽寄存器清除屏蔽寄存器寫寫4個通道屏蔽寄存器個通道屏蔽寄存器 11.3 8237A11.3 8237A工作狀態(tài)與編程使用工作狀態(tài)與編程使用11.3.1 11.3.1 工作狀態(tài)工作狀態(tài)11.3.

27、211.3.2 編程使用編程使用11.3.3 11.3.3 應(yīng)用舉例應(yīng)用舉例 11.3.1 工作狀態(tài)工作狀態(tài) 8237A的工作分為三個階段,也稱為狀態(tài),即空閑、的工作分為三個階段,也稱為狀態(tài),即空閑、DMA請求和傳送。請求和傳送。 1. 空閑狀態(tài)空閑狀態(tài) 沒有外設(shè)的沒有外設(shè)的DMA請求,不進行請求,不進行DMA傳送,傳送,DMA控制器處于空閑狀態(tài),控制器處于空閑狀態(tài),常用常用SI表示。在空閑狀態(tài),如果表示。在空閑狀態(tài),如果DMA控制器沒有被屏蔽,則始終監(jiān)視控制器沒有被屏蔽,則始終監(jiān)視DREQ輸入端。輸入端。 2. DMA請求與響應(yīng)狀態(tài)請求與響應(yīng)狀態(tài) 在空閑狀態(tài),若在空閑狀態(tài),若DREQ端有端有

28、DMA請求,則立即進入請求,則立即進入DMA請求狀態(tài),請求狀態(tài),DMA控制器向控制器向CPU發(fā)總線請求信號發(fā)總線請求信號HRQ,并等待總線響應(yīng)。,并等待總線響應(yīng)。DMA請求與請求與響應(yīng)狀態(tài)常用字母響應(yīng)狀態(tài)常用字母S0表示。表示。 在收到總線響應(yīng)信號在收到總線響應(yīng)信號HLDA之后,之后,DMA控制器獲得總線控制權(quán),進入控制器獲得總線控制權(quán),進入DMA傳送狀態(tài)。傳送狀態(tài)。 3. DMA傳送狀態(tài)傳送狀態(tài) DMA傳送包含傳送包含4個狀態(tài)周期,即個狀態(tài)周期,即S1S4,以完成地址傳送和數(shù)據(jù)的,以完成地址傳送和數(shù)據(jù)的讀讀/寫等操作。寫等操作。 S1:輸出地址允許信號:輸出地址允許信號AEN。僅當(dāng)高。僅當(dāng)高

29、8位地址位地址A15A8更新時,才執(zhí)更新時,才執(zhí)行行S1狀態(tài)。即每傳送狀態(tài)。即每傳送256次執(zhí)行一次次執(zhí)行一次S1狀態(tài)。狀態(tài)。 S2:輸出:輸出16位地址到存儲器,其中低位地址到存儲器,其中低8位由地址線位由地址線A7A0輸出,高輸出,高8位由數(shù)據(jù)線位由數(shù)據(jù)線DB7DB0輸出。同時,向外設(shè)發(fā)輸出。同時,向外設(shè)發(fā)DMA響應(yīng)信號響應(yīng)信號DACK。 S3:輸出讀周期,即輸出存儲器讀:輸出讀周期,即輸出存儲器讀 MEMR 或或I/O讀讀IOR 信號。如果信號。如果超前寫,則同時發(fā)出存儲器寫超前寫,則同時發(fā)出存儲器寫MEMW或或IO寫寫IOW信號。信號。 S4:輸出寫周期,即輸出存儲器寫:輸出寫周期,即

30、輸出存儲器寫MEMW或或I/O寫寫IOW信號。信號。 對于低速主存或外設(shè),可在對于低速主存或外設(shè),可在S3之后插入之后插入1個或者多個等待周期個或者多個等待周期SW。11.3.2編程使用編程使用 編程初始化后,編程初始化后,8237A便自動控制數(shù)據(jù)的傳送。初始化程序包便自動控制數(shù)據(jù)的傳送。初始化程序包括以下幾個方面:括以下幾個方面: (1)先對總線命令寄存器復(fù)位;)先對總線命令寄存器復(fù)位; (2)把起始地址的低)把起始地址的低8位和高位和高8位分別寫入地址寄存器;位分別寫入地址寄存器; (3)把字計數(shù)值的低)把字計數(shù)值的低8位和高位和高8位分別寫入字節(jié)計數(shù)寄存器;位分別寫入字節(jié)計數(shù)寄存器; (

31、4)寫方式寄存器;)寫方式寄存器; (5)寫屏蔽寄存器;)寫屏蔽寄存器; (6)寫命令寄存器。)寫命令寄存器。 下面結(jié)合下面結(jié)合IBM PC/XT中中8237A的應(yīng)用來說明其初始化編程。的應(yīng)用來說明其初始化編程。8237A對應(yīng)的端口地址是對應(yīng)的端口地址是0000H000FH, 下面下面 以標(biāo)號以標(biāo)號DMA表示首地址表示首地址0000H。8237A利用頁面寄存器利用頁面寄存器74LS670提供最高提供最高4位地址位地址A19A16,其,其端口地址為端口地址為0083H。 MOV AL,04 ;設(shè)置命令字;設(shè)置命令字 MOV DX,DMA+8 OUT DX,AL ;輸出控制命令,禁止;輸出控制命令

32、,禁止8237A工作工作 MOV DX,DMA+0DH OUT DX,AL ;發(fā)總清命令,使;發(fā)總清命令,使8237A復(fù)位復(fù)位 MOV DX,DMA+00H ;指向通道;指向通道0的地址寄存器的地址寄存器 MOV CX,0004 ;設(shè)置循環(huán)次數(shù);設(shè)置循環(huán)次數(shù)WRITE:MOV AL,0FFH OUT DX,AL ;通道;通道0寫入地址低位寫入地址低位 OUT DX,AL ;通道;通道0寫入地址高位,寫入地址高位,16位地址為位地址為0FFFFH INC DX INC DX ;指向通道;指向通道1 LOOP WRITE ;循環(huán),向其余通道寫入;循環(huán),向其余通道寫入16位地址位地址0FFFF MO

33、V DX,DMA+0BH ;指向方式寄存器;指向方式寄存器 MOV AL,58H ;設(shè)置通道;設(shè)置通道0方式字方式字 OUT DX,AL ;通道;通道0單字節(jié),讀傳送,地址自增,自動預(yù)置單字節(jié),讀傳送,地址自增,自動預(yù)置 MOV AL,41H ;設(shè)置通道;設(shè)置通道1方式字方式字 OUT DX,AL ;通道;通道1單字節(jié),校驗傳送,地址自增,無單字節(jié),校驗傳送,地址自增,無自動預(yù)置自動預(yù)置 MOV AL,42H ;設(shè)置通道;設(shè)置通道2方式字方式字 OUT DX,AL ;通道;通道2方式,同通道方式,同通道1 MOV AL,43H ;設(shè)置通道;設(shè)置通道3方式字方式字 OUT DX,AL ;通道;通道3方式,同通道方式,同通道1 MOV DX,DMA+0AH ;單屏蔽字寄存器地址;單屏蔽字寄存器地址 MOV AL,0 OUT DX,AL ;通道;通道0清除屏蔽清除屏蔽 MOV AL,01

溫馨提示

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

評論

0/150

提交評論