




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第11章章 DMA 控制器控制器【內(nèi)容簡(jiǎn)介內(nèi)容簡(jiǎn)介】 首先介紹可編程首先介紹可編程DMA控制器控制器8237A的基的基 本組成、工作原理與本組成、工作原理與工作方式,然后介紹工作方式,然后介紹8237在數(shù)據(jù)傳送中的應(yīng)用與編程。在數(shù)據(jù)傳送中的應(yīng)用與編程?!局攸c(diǎn)難點(diǎn)重點(diǎn)難點(diǎn)】 重點(diǎn)是重點(diǎn)是DMA8237的基本組成、工作原理、工作方式與編程,難點(diǎn)是各的基本組成、工作原理、工作方式與編程,難點(diǎn)是各功能寄存器的作用與初始化程序設(shè)計(jì)。功能寄存器的作用與初始化程序設(shè)計(jì)。第第11章章 DMA 控制器控制器11.1 11.1 概概 述述11.2 11.2 可編程可編程DMADMA控制器控制器8237A8237
2、A11.3 8237A11.3 8237A工作狀態(tài)與編程使用工作狀態(tài)與編程使用 DMA是由硬件來(lái)實(shí)現(xiàn)是由硬件來(lái)實(shí)現(xiàn)I/O設(shè)備與主存之間或者主存內(nèi)部的數(shù)據(jù)傳設(shè)備與主存之間或者主存內(nèi)部的數(shù)據(jù)傳送,因此稱(chēng)為存儲(chǔ)器直接存取方式。可字節(jié)傳送,也可按數(shù)據(jù)塊傳送,送,因此稱(chēng)為存儲(chǔ)器直接存取方式??勺止?jié)傳送,也可按數(shù)據(jù)塊傳送,速度快,效率高。速度快,效率高。 DMA的概念和傳送過(guò)程已在的概念和傳送過(guò)程已在5.2.4節(jié)介紹,這里主要介紹節(jié)介紹,這里主要介紹8237A的組成與工作過(guò)程。的組成與工作過(guò)程。 8237A片內(nèi)有片內(nèi)有4個(gè)獨(dú)立的個(gè)獨(dú)立的DMA通道和一組共用的基本控制邏輯電通道和一組共用的基本控制邏輯電路,
3、其組成如路,其組成如圖圖11.1所示。包括時(shí)序與控制邏輯、優(yōu)先級(jí)編碼邏輯、所示。包括時(shí)序與控制邏輯、優(yōu)先級(jí)編碼邏輯、數(shù)據(jù)數(shù)據(jù)/地址緩沖器、命令控制電路、狀態(tài)寄存器、命令寄存器、暫存地址緩沖器、命令控制電路、狀態(tài)寄存器、命令寄存器、暫存寄存器、暫存地址寄存器、暫存字節(jié)計(jì)數(shù)器、先寄存器、暫存地址寄存器、暫存字節(jié)計(jì)數(shù)器、先/后觸發(fā)器和屏蔽寄后觸發(fā)器和屏蔽寄存器等。每個(gè)通道又有相應(yīng)的寄存器。存器等。每個(gè)通道又有相應(yīng)的寄存器。11.1 概概 述述 時(shí) 序 與 控 制 邏 輯 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) 先 級(jí) 編 碼 邏 輯 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é) 計(jì) 數(shù) 器 (16) 命 令 控 制 邏 輯 方 式 寄 存 器 (8) 基 地 址 寄 存 器 (8) 基 字 節(jié) 計(jì) 數(shù) 器 (16) 當(dāng) 前 字
5、 節(jié) 計(jì) 數(shù) 器 (16) 當(dāng) 前 地 址 寄 存 器 (16) 請(qǐng) 求 位 屏 蔽 位 通 道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個(gè)個(gè)引腳,如引腳,如圖圖11.2所示,其作用如下:所示,其作用如下: A3A0:地址線(xiàn),雙向,三態(tài),:地址線(xiàn),雙向,三態(tài),DMA傳送時(shí)輸出地址低
6、傳送時(shí)輸出地址低4位;輸入位;輸入時(shí),選擇時(shí),選擇8237A的內(nèi)部寄存器。的內(nèi)部寄存器。 A7A4:地址線(xiàn),輸出,三態(tài),:地址線(xiàn),輸出,三態(tài),DMA傳送時(shí),輸出地址高傳送時(shí),輸出地址高4位。位。 DB7DB0:數(shù)據(jù)線(xiàn),雙向,三態(tài),:數(shù)據(jù)線(xiàn),雙向,三態(tài),數(shù)據(jù)傳送時(shí)作為數(shù)據(jù)傳送時(shí)作為8位數(shù)據(jù)線(xiàn);位數(shù)據(jù)線(xiàn);DMA工作時(shí),輸出高工作時(shí),輸出高8位地址位地址A15-A8,由,由ADSTB信號(hào)選通。信號(hào)選通。 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寫(xiě)信號(hào),雙向,三態(tài),低電平有效。寫(xiě)信號(hào),雙向,三態(tài),低電平有效。 IOR:I/O讀信號(hào),雙向,三態(tài),低電平有效。讀信號(hào),雙向,三態(tài),低電平有效。 MEMW:主
8、存寫(xiě)信號(hào),輸出,三態(tài),低電平有效。:主存寫(xiě)信號(hào),輸出,三態(tài),低電平有效。 MEMR:主存讀信號(hào),輸出,三態(tài),低電平有效。:主存讀信號(hào),輸出,三態(tài),低電平有效。 ADSTB:地址選通信號(hào),輸出,高電平有效,:地址選通信號(hào),輸出,高電平有效,DMA傳送時(shí)選通傳送時(shí)選通 DB7DB0輸出高輸出高8位地址位地址A15A8。 AEN:地址允許信號(hào),輸出,高電平有效,:地址允許信號(hào),輸出,高電平有效,DMA傳送時(shí)表示傳送時(shí)表示16位位地址有效。地址有效。 CS:片選信號(hào),輸入,低電平有效。:片選信號(hào),輸入,低電平有效。 RESET:高電平有效,復(fù)位后,清除命令、狀態(tài)、請(qǐng)求和暫存寄:高電平有效,復(fù)位后,清除
9、命令、狀態(tài)、請(qǐng)求和暫存寄存器,屏蔽寄存器置存器,屏蔽寄存器置1,禁止,禁止4個(gè)通道的個(gè)通道的DMA請(qǐng)求。請(qǐng)求。 READY:準(zhǔn)備好信號(hào),輸入,高電平有效,由:準(zhǔn)備好信號(hào),輸入,高電平有效,由DAM插入等待周期。插入等待周期。 HRQ:總線(xiàn)請(qǐng)求信號(hào),輸出,高電平有效,連接:總線(xiàn)請(qǐng)求信號(hào),輸出,高電平有效,連接CPU的的HOLD端。端。 HLDA:總線(xiàn)響應(yīng)信號(hào),輸入,高電平有效,表示:總線(xiàn)響應(yīng)信號(hào),輸入,高電平有效,表示DMA控制器控制器獲得總線(xiàn)控制權(quán)。獲得總線(xiàn)控制權(quán)。 DREQ3DREQ0:4個(gè)通道的個(gè)通道的DMA請(qǐng)求,輸入,可編程為高電請(qǐng)求,輸入,可編程為高電平或者低電平有效,需維持到平或者低
10、電平有效,需維持到DMA響應(yīng)。響應(yīng)。 DACK3DACK0:4個(gè)通道的個(gè)通道的DMA響應(yīng)信號(hào),輸出,可編程為響應(yīng)信號(hào),輸出,可編程為高電平或者低電平有效,高電平或者低電平有效,DMA控制器獲得控制器獲得HLDA信號(hào)后,產(chǎn)生信號(hào)后,產(chǎn)生DACK信號(hào),送信號(hào),送I/O接口或設(shè)備。接口或設(shè)備。 CLK:時(shí)鐘信號(hào),輸入,用于:時(shí)鐘信號(hào),輸入,用于8237A基準(zhǔn)定時(shí)。基準(zhǔn)定時(shí)。 EOP:DMA傳送結(jié)束信號(hào),雙向,低電平有效。輸入,強(qiáng)迫傳送結(jié)束信號(hào),雙向,低電平有效。輸入,強(qiáng)迫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所示,其功能通過(guò)內(nèi)部寄存器來(lái)實(shí)現(xiàn)。所示,其功能通過(guò)內(nèi)部寄存器來(lái)實(shí)現(xiàn)。 1. 當(dāng)前地址寄存器當(dāng)前地址寄存器 存放存放DMA傳送時(shí)的傳送時(shí)的16位存儲(chǔ)器地址,具有自增位存儲(chǔ)器地址,具有自增1或自減或自減1功能;編功能;編程時(shí),程時(shí),CPU可對(duì)其讀可對(duì)其讀/寫(xiě)。若寫(xiě)。若DMA控制器設(shè)置成自動(dòng)預(yù)置方式,當(dāng)每控制器設(shè)置成自動(dòng)預(yù)置方式,當(dāng)每次字節(jié)計(jì)數(shù)為次字節(jié)計(jì)數(shù)為0或或EOP出現(xiàn)低電平時(shí),基地址寄存器中的初值自動(dòng)裝出現(xiàn)低電平時(shí),基地址寄存器中的初值自動(dòng)裝入當(dāng)前地址寄存器。入當(dāng)前地址寄存器。 2. 基地址寄存器基地址寄存器 與當(dāng)前地址寄存器共用端口地址,存放與當(dāng)前地址寄存器共用端口地址,存放
12、DMA傳送時(shí)的地址初值;傳送時(shí)的地址初值;在編程時(shí),與當(dāng)前地址寄存器被同時(shí)寫(xiě)入。在編程時(shí),與當(dāng)前地址寄存器被同時(shí)寫(xiě)入。 3. 當(dāng)前字節(jié)計(jì)數(shù)器當(dāng)前字節(jié)計(jì)數(shù)器 存放當(dāng)前的字節(jié)數(shù),每個(gè)通道有一個(gè)存放當(dāng)前的字節(jié)數(shù),每個(gè)通道有一個(gè)16位的當(dāng)前字節(jié)計(jì)數(shù)器,可位的當(dāng)前字節(jié)計(jì)數(shù)器,可按字節(jié)減按字節(jié)減1計(jì)數(shù),當(dāng)計(jì)數(shù)值由計(jì)數(shù),當(dāng)計(jì)數(shù)值由0減至減至0FFFFH時(shí),產(chǎn)生傳送結(jié)束信號(hào)時(shí),產(chǎn)生傳送結(jié)束信號(hào)EOP。若。若DMA設(shè)置成自動(dòng)預(yù)置方式,當(dāng)設(shè)置成自動(dòng)預(yù)置方式,當(dāng)EOP有效時(shí),基字節(jié)計(jì)數(shù)器有效時(shí),基字節(jié)計(jì)數(shù)器中的初值自動(dòng)裝入當(dāng)前字節(jié)計(jì)數(shù)器中。中的初值自動(dòng)裝入當(dāng)前字節(jié)計(jì)數(shù)器中。 4. 基字節(jié)計(jì)數(shù)器基字節(jié)計(jì)數(shù)器 與當(dāng)前字
13、節(jié)計(jì)數(shù)器共用端口地址,存放與當(dāng)前字節(jié)計(jì)數(shù)器共用端口地址,存放DMA傳送數(shù)據(jù)的字節(jié)數(shù);傳送數(shù)據(jù)的字節(jié)數(shù);在編程時(shí),與當(dāng)前字節(jié)計(jì)數(shù)器被同時(shí)寫(xiě)入。在編程時(shí),與當(dāng)前字節(jié)計(jì)數(shù)器被同時(shí)寫(xiě)入。 5. 方式寄存器方式寄存器 每個(gè)通道有一個(gè)方式寄存器,用來(lái)控制每個(gè)通道有一個(gè)方式寄存器,用來(lái)控制DMA傳送方式和方向,其傳送方式和方向,其格式如格式如圖圖11.3所示:所示: D1D0:用于通道選擇。:用于通道選擇。 D3D2:選擇通道:選擇通道DMA數(shù)據(jù)傳送類(lèi)型。數(shù)據(jù)傳送類(lèi)型。 圖11.3 工作方式寄存器 00:校驗(yàn)傳輸 01:寫(xiě)傳輸 10:讀傳輸 11:非法 若D7D6=11,則無(wú)效 D7 D6 D5 D4 D3
14、 D2 D1 D0 00:通道0 01:通道1 10:通道2 11:通道3 00:請(qǐng)求方式 01:單字節(jié)方式 10:塊傳送方式 11:級(jí)聯(lián)方式 0:地址自增 1:地址自減 0:禁止自動(dòng)預(yù)置 1:允許自動(dòng)預(yù)置 D4:若為:若為1,表示自動(dòng)預(yù)置,表示自動(dòng)預(yù)置,D4為為0時(shí),禁止自動(dòng)預(yù)置。時(shí),禁止自動(dòng)預(yù)置。 D5:若為:若為0,地址自增,地址自增1;D5為為1,地址自減,地址自減1。 D6D7:用來(lái)定義:用來(lái)定義DMA傳輸方式,共有傳輸方式,共有4種,如圖所示。其中級(jí)聯(lián)種,如圖所示。其中級(jí)聯(lián)連接方式如連接方式如圖圖11.4所示。所示。 6. 命令寄存器命令寄存器 其格式和各位的定義如其格式和各位的定
15、義如圖圖11.5所示,設(shè)置各通道的功能。復(fù)位后,所示,設(shè)置各通道的功能。復(fù)位后,所有位清所有位清0。 D0:控制存儲(chǔ)器到存儲(chǔ)器傳送。在存儲(chǔ)器到存儲(chǔ)器傳送時(shí)占用兩個(gè):控制存儲(chǔ)器到存儲(chǔ)器傳送。在存儲(chǔ)器到存儲(chǔ)器傳送時(shí)占用兩個(gè)通道,通道通道,通道0存放源操作數(shù)地址,通道存放源操作數(shù)地址,通道1存放目的地址。傳送一個(gè)字節(jié)需存放目的地址。傳送一個(gè)字節(jié)需要兩個(gè)總線(xiàn)周期。要兩個(gè)總線(xiàn)周期。 D1:與:與D0配合使用,當(dāng)配合使用,當(dāng)D0為為1時(shí),且時(shí),且D1為為1,存儲(chǔ)器源地址保持不變。,存儲(chǔ)器源地址保持不變。圖1 1 . 4 8 2 3 7 A級(jí)聯(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 第一級(jí) 第二級(jí) 0:固定優(yōu)先權(quán) 1:循環(huán)優(yōu)先權(quán) 0:不擴(kuò)展寫(xiě)入 1:擴(kuò)展寫(xiě)入 D3=1 時(shí)不起作用 圖 11.5 命令寄存器 0:正常時(shí)序 1:壓縮時(shí)序 D0=1 時(shí)不起作用 0:禁止存儲(chǔ)器到存儲(chǔ)器傳輸 1:允許存儲(chǔ)器到存儲(chǔ)器傳輸 0:禁止通道 0 地址不變 1:允許通道 0 地址不變 D0=0 時(shí)不起作用 0:允許 8237A 工作 1:禁止 8237A 工作 D7 D6 D5 D4 D3 D2
17、D1 D0 0:DREQ 高電平有效 1:DREQ 低電平有效 0:DACK 低電平有效 1:DACK 高電平有效 D2:?jiǎn)ⅲ簡(jiǎn)?停停8237A。 D3:在:在D0為為0時(shí)起作用。當(dāng)時(shí)起作用。當(dāng)D3為為0,選擇普通時(shí)序,一次,選擇普通時(shí)序,一次DMA傳傳送需用送需用4個(gè)時(shí)鐘周期;當(dāng)個(gè)時(shí)鐘周期;當(dāng)D3為為1,選擇壓縮時(shí)序,需,選擇壓縮時(shí)序,需3個(gè)時(shí)鐘周期。個(gè)時(shí)鐘周期。 D4:優(yōu)先權(quán)控制,:優(yōu)先權(quán)控制,D4為為0時(shí)選擇固定優(yōu)先級(jí),通道時(shí)選擇固定優(yōu)先級(jí),通道0級(jí)別最高;級(jí)別最高;D4為為1時(shí),選擇循環(huán)優(yōu)先級(jí)方式。時(shí),選擇循環(huán)優(yōu)先級(jí)方式。 D5:擴(kuò)展寫(xiě)周期。:擴(kuò)展寫(xiě)周期。D5為為1,寫(xiě)信號(hào)提前到狀態(tài)信
18、號(hào),寫(xiě)信號(hào)提前到狀態(tài)信號(hào)S3發(fā)出。發(fā)出。 對(duì)于對(duì)于速度較慢的外部設(shè)備,可通過(guò)速度較慢的外部設(shè)備,可通過(guò)READY信號(hào)控制,在狀態(tài)信號(hào)信號(hào)控制,在狀態(tài)信號(hào)S3之后之后插入等待周期插入等待周期SW。 D6:DREQ有效電平控制位,有效電平控制位,D6為為1,低電平有效;,低電平有效;D6為為0,高電,高電平有效。平有效。 D7:DACK有效電平控制位,有效電平控制位,D7為為1,高電平有效;,高電平有效;D7為為0,低,低電平有效。電平有效。 7請(qǐng)求寄存器請(qǐng)求寄存器 8237A的的4個(gè)通道都有一個(gè)請(qǐng)求觸發(fā)器,共同構(gòu)成個(gè)通道都有一個(gè)請(qǐng)求觸發(fā)器,共同構(gòu)成DMA請(qǐng)求寄存請(qǐng)求寄存器。器。DMA請(qǐng)求可以由外
19、部觸發(fā),也可以軟件設(shè)置。在存儲(chǔ)器到存儲(chǔ)請(qǐng)求可以由外部觸發(fā),也可以軟件設(shè)置。在存儲(chǔ)器到存儲(chǔ)器傳送時(shí),只能由軟件設(shè)置,格式如器傳送時(shí),只能由軟件設(shè)置,格式如圖圖11.6所示。所示。 其中其中D1D0標(biāo)識(shí)標(biāo)識(shí)4個(gè)個(gè)通道序號(hào)。通道序號(hào)。 8. 屏蔽寄存器屏蔽寄存器 屏蔽寄存器有兩個(gè)。一個(gè)是單通道屏蔽寄存器,另一個(gè)是主屏蔽屏蔽寄存器有兩個(gè)。一個(gè)是單通道屏蔽寄存器,另一個(gè)是主屏蔽寄存器。單通道屏蔽寄存器的格式如寄存器。單通道屏蔽寄存器的格式如圖圖11.7(a)所示,所示, D1D0標(biāo)識(shí)通標(biāo)識(shí)通道號(hào),道號(hào),D2=1表示屏蔽,表示屏蔽,D2=0,不屏蔽。主屏蔽寄存器用來(lái)對(duì),不屏蔽。主屏蔽寄存器用來(lái)對(duì)8237A
20、整整體設(shè)置,即一次設(shè)置體設(shè)置,即一次設(shè)置4個(gè)通道,其格式如個(gè)通道,其格式如圖圖11.7(b)所示。所示。 對(duì)屏蔽寄對(duì)屏蔽寄存器存器進(jìn)行一次寫(xiě)操作進(jìn)行一次寫(xiě)操作,即可清除,即可清除4個(gè)通道的屏蔽位,開(kāi)放個(gè)通道的屏蔽位,開(kāi)放DMA請(qǐng)求,請(qǐng)求,寫(xiě)入地址為寫(xiě)入地址為DMA+0EH。比如:。比如: MOV DX,DMA+14 OUT DX,AL未 用 圖 11.6 請(qǐng) 求 寄 存 器 D7 D6 D5 D4 D3 D2 D1 D0 00:選 擇 通 道0 01:選 擇 通 道1 10:選 擇 通 道2 11:選 擇 通 道3 0:復(fù) 位 請(qǐng) 求 1:置 位 請(qǐng) 求 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每個(gè)通道的狀態(tài),其格式如每個(gè)通道的狀態(tài),其格式如圖圖11.8所所示。示
22、。 D3D0標(biāo)識(shí)標(biāo)識(shí)4個(gè)通道計(jì)數(shù)器是否停止。如果計(jì)數(shù)終止或外部產(chǎn)生個(gè)通道計(jì)數(shù)器是否停止。如果計(jì)數(shù)終止或外部產(chǎn)生EOP信號(hào),相應(yīng)位置為信號(hào),相應(yīng)位置為1,停止,停止DMA操作。操作。D7D4表示表示4個(gè)通道是否有個(gè)通道是否有DMA請(qǐng)求,請(qǐng)求,1表示有請(qǐng)求,表示有請(qǐng)求,0表示沒(méi)有請(qǐng)求。表示沒(méi)有請(qǐng)求。 D0=1:通道 0 已停止計(jì)數(shù) D1=1:通道 1 已停止計(jì)數(shù) D2=1:通道 2 已停止計(jì)數(shù) D3=1:通道 3 已停止計(jì)數(shù) D7=1:通道 3 有請(qǐng)求 D6=1:通道 2 有請(qǐng)求 D5=1:通道 1 有請(qǐng)求 D4=1:通道 0 有請(qǐng)求 D7 D6 D5 D4 D3 D2 D1 D0 圖 11.8
23、狀態(tài)寄存器 10. 暫存寄存器暫存寄存器 在存儲(chǔ)器到存儲(chǔ)器傳送時(shí),暫存從存儲(chǔ)器中讀出的數(shù)據(jù)。傳送完畢,在存儲(chǔ)器到存儲(chǔ)器傳送時(shí),暫存從存儲(chǔ)器中讀出的數(shù)據(jù)。傳送完畢,保留最后一次傳送的數(shù)據(jù)。在編程狀態(tài),其中的內(nèi)容可由保留最后一次傳送的數(shù)據(jù)。在編程狀態(tài),其中的內(nèi)容可由CPU讀出,讀出,RESET復(fù)位時(shí)清復(fù)位時(shí)清0。 11.先先/后觸發(fā)器后觸發(fā)器 先先/后觸發(fā)器清后觸發(fā)器清0,第,第1字節(jié)寫(xiě)入寄存器的低字節(jié)寫(xiě)入寄存器的低8位,然后先位,然后先/后觸發(fā)器自后觸發(fā)器自動(dòng)置動(dòng)置1,第,第2個(gè)字節(jié)寫(xiě)入寄存器的高個(gè)字節(jié)寫(xiě)入寄存器的高8位。同時(shí),先位。同時(shí),先/后觸發(fā)器自動(dòng)清后觸發(fā)器自動(dòng)清0。 以上寄存器口地址與
24、作用如以上寄存器口地址與作用如表表11.1所示。所示。 8086地址線(xiàn)有地址線(xiàn)有20位(位(A19A0),而),而8237A只能提供只能提供16位地址線(xiàn)位地址線(xiàn)(A15A0)。)。 為使用為使用8237A來(lái)實(shí)現(xiàn)來(lái)實(shí)現(xiàn)DMA傳送,常以硬件電路構(gòu)成傳送,常以硬件電路構(gòu)成4位頁(yè)面地址寄位頁(yè)面地址寄存器,每個(gè)通道各有一個(gè)。在進(jìn)行存器,每個(gè)通道各有一個(gè)。在進(jìn)行DMA傳送時(shí),由頁(yè)面地址寄存器提傳送時(shí),由頁(yè)面地址寄存器提供供DMA傳送所需要的高傳送所需要的高4位地址位地址A19A16。表表11.1 8237A寄存器地址與操作命令寄存器地址與操作命令 寄存器端口地址寄存器端口地址 通道通道 讀操作讀操作 寫(xiě)操
25、作寫(xiě)操作 DMA+0DMA+1 0讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器讀當(dāng)前字節(jié)計(jì)數(shù)器讀當(dāng)前字節(jié)計(jì)數(shù)器 寫(xiě)基寫(xiě)基/當(dāng)前地址寄存器當(dāng)前地址寄存器寫(xiě)基寫(xiě)基/當(dāng)前字節(jié)計(jì)數(shù)器當(dāng)前字節(jié)計(jì)數(shù)器 DMA+2DMA+3 1讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器讀當(dāng)前字節(jié)計(jì)數(shù)器讀當(dāng)前字節(jié)計(jì)數(shù)器 寫(xiě)基寫(xiě)基/當(dāng)前地址寄存器當(dāng)前地址寄存器寫(xiě)基寫(xiě)基/當(dāng)前字節(jié)計(jì)數(shù)器當(dāng)前字節(jié)計(jì)數(shù)器 DMA+4DMA+5 2讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器讀當(dāng)前字節(jié)計(jì)數(shù)器讀當(dāng)前字節(jié)計(jì)數(shù)器 寫(xiě)基寫(xiě)基/當(dāng)前地址寄存器當(dāng)前地址寄存器寫(xiě)基寫(xiě)基/當(dāng)前字節(jié)計(jì)數(shù)器當(dāng)前字節(jié)計(jì)數(shù)器 DMA+6DMA+7 3讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器讀當(dāng)前字節(jié)計(jì)數(shù)器讀當(dāng)前字節(jié)計(jì)數(shù)
26、器 寫(xiě)基寫(xiě)基/當(dāng)前地址寄存器當(dāng)前地址寄存器寫(xiě)基寫(xiě)基/當(dāng)前字節(jié)計(jì)數(shù)器當(dāng)前字節(jié)計(jì)數(shù)器 DMA+8DMA+9DMA+10DMA+11DMA+12DMA+13DMA+14DMA+15 共共用用讀狀態(tài)寄存器讀狀態(tài)寄存器讀暫存寄存器讀暫存寄存器寫(xiě)命令寄存器寫(xiě)命令寄存器寫(xiě)請(qǐng)求寄存器寫(xiě)請(qǐng)求寄存器寫(xiě)單個(gè)通道屏蔽字寫(xiě)單個(gè)通道屏蔽字寫(xiě)方式字寄存器寫(xiě)方式字寄存器清除先清除先/后觸發(fā)器后觸發(fā)器復(fù)位芯片復(fù)位芯片(主清除主清除)清除屏蔽寄存器清除屏蔽寄存器寫(xiě)寫(xiě)4個(gè)通道屏蔽寄存器個(gè)通道屏蔽寄存器 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的工作分為三個(gè)階段,也稱(chēng)為狀態(tài),即空閑、的工作分為三個(gè)階段,也稱(chēng)為狀態(tài),即空閑、DMA請(qǐng)求和傳送。請(qǐng)求和傳送。 1. 空閑狀態(tài)空閑狀態(tài) 沒(méi)有外設(shè)的沒(méi)有外設(shè)的DMA請(qǐng)求,不進(jìn)行請(qǐng)求,不進(jìn)行DMA傳送,傳送,DMA控制器處于空閑狀態(tài),控制器處于空閑狀態(tài),常用常用SI表示。在空閑狀態(tài),如果表示。在空閑狀態(tài),如果DMA控制器沒(méi)有被屏蔽,則始終監(jiān)視控制器沒(méi)有被屏蔽,則始終監(jiān)視DREQ輸入端。輸入端。 2. DMA請(qǐng)求與響應(yīng)狀態(tài)請(qǐng)求與響應(yīng)狀態(tài) 在空閑狀態(tài),若在空閑狀態(tài),若DREQ端有端有
28、DMA請(qǐng)求,則立即進(jìn)入請(qǐng)求,則立即進(jìn)入DMA請(qǐng)求狀態(tài),請(qǐng)求狀態(tài),DMA控制器向控制器向CPU發(fā)總線(xiàn)請(qǐng)求信號(hào)發(fā)總線(xiàn)請(qǐng)求信號(hào)HRQ,并等待總線(xiàn)響應(yīng)。,并等待總線(xiàn)響應(yīng)。DMA請(qǐng)求與請(qǐng)求與響應(yīng)狀態(tài)常用字母響應(yīng)狀態(tài)常用字母S0表示。表示。 在收到總線(xiàn)響應(yīng)信號(hào)在收到總線(xiàn)響應(yīng)信號(hào)HLDA之后,之后,DMA控制器獲得總線(xiàn)控制權(quán),進(jìn)入控制器獲得總線(xiàn)控制權(quán),進(jìn)入DMA傳送狀態(tài)。傳送狀態(tài)。 3. DMA傳送狀態(tài)傳送狀態(tài) DMA傳送包含傳送包含4個(gè)狀態(tài)周期,即個(gè)狀態(tài)周期,即S1S4,以完成地址傳送和數(shù)據(jù)的,以完成地址傳送和數(shù)據(jù)的讀讀/寫(xiě)等操作。寫(xiě)等操作。 S1:輸出地址允許信號(hào):輸出地址允許信號(hào)AEN。僅當(dāng)高。僅當(dāng)高
29、8位地址位地址A15A8更新時(shí),才執(zhí)更新時(shí),才執(zhí)行行S1狀態(tài)。即每傳送狀態(tài)。即每傳送256次執(zhí)行一次次執(zhí)行一次S1狀態(tài)。狀態(tài)。 S2:輸出:輸出16位地址到存儲(chǔ)器,其中低位地址到存儲(chǔ)器,其中低8位由地址線(xiàn)位由地址線(xiàn)A7A0輸出,高輸出,高8位由數(shù)據(jù)線(xiàn)位由數(shù)據(jù)線(xiàn)DB7DB0輸出。同時(shí),向外設(shè)發(fā)輸出。同時(shí),向外設(shè)發(fā)DMA響應(yīng)信號(hào)響應(yīng)信號(hào)DACK。 S3:輸出讀周期,即輸出存儲(chǔ)器讀:輸出讀周期,即輸出存儲(chǔ)器讀 MEMR 或或I/O讀讀IOR 信號(hào)。如果信號(hào)。如果超前寫(xiě),則同時(shí)發(fā)出存儲(chǔ)器寫(xiě)超前寫(xiě),則同時(shí)發(fā)出存儲(chǔ)器寫(xiě)MEMW或或IO寫(xiě)寫(xiě)IOW信號(hào)。信號(hào)。 S4:輸出寫(xiě)周期,即輸出存儲(chǔ)器寫(xiě):輸出寫(xiě)周期,即
30、輸出存儲(chǔ)器寫(xiě)MEMW或或I/O寫(xiě)寫(xiě)IOW信號(hào)。信號(hào)。 對(duì)于低速主存或外設(shè),可在對(duì)于低速主存或外設(shè),可在S3之后插入之后插入1個(gè)或者多個(gè)等待周期個(gè)或者多個(gè)等待周期SW。11.3.2編程使用編程使用 編程初始化后,編程初始化后,8237A便自動(dòng)控制數(shù)據(jù)的傳送。初始化程序包便自動(dòng)控制數(shù)據(jù)的傳送。初始化程序包括以下幾個(gè)方面:括以下幾個(gè)方面: (1)先對(duì)總線(xiàn)命令寄存器復(fù)位;)先對(duì)總線(xiàn)命令寄存器復(fù)位; (2)把起始地址的低)把起始地址的低8位和高位和高8位分別寫(xiě)入地址寄存器;位分別寫(xiě)入地址寄存器; (3)把字計(jì)數(shù)值的低)把字計(jì)數(shù)值的低8位和高位和高8位分別寫(xiě)入字節(jié)計(jì)數(shù)寄存器;位分別寫(xiě)入字節(jié)計(jì)數(shù)寄存器; (
31、4)寫(xiě)方式寄存器;)寫(xiě)方式寄存器; (5)寫(xiě)屏蔽寄存器;)寫(xiě)屏蔽寄存器; (6)寫(xiě)命令寄存器。)寫(xiě)命令寄存器。 下面結(jié)合下面結(jié)合IBM PC/XT中中8237A的應(yīng)用來(lái)說(shuō)明其初始化編程。的應(yīng)用來(lái)說(shuō)明其初始化編程。8237A對(duì)應(yīng)的端口地址是對(duì)應(yīng)的端口地址是0000H000FH, 下面下面 以標(biāo)號(hào)以標(biāo)號(hào)DMA表示首地址表示首地址0000H。8237A利用頁(yè)面寄存器利用頁(yè)面寄存器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寫(xiě)入地址低位寫(xiě)入地址低位 OUT DX,AL ;通道;通道0寫(xiě)入地址高位,寫(xiě)入地址高位,16位地址為位地址為0FFFFH INC DX INC DX ;指向通道;指向通道1 LOOP WRITE ;循環(huán),向其余通道寫(xiě)入;循環(huán),向其余通道寫(xiě)入16位地址位地址0FFFF MO
33、V DX,DMA+0BH ;指向方式寄存器;指向方式寄存器 MOV AL,58H ;設(shè)置通道;設(shè)置通道0方式字方式字 OUT DX,AL ;通道;通道0單字節(jié),讀傳送,地址自增,自動(dòng)預(yù)置單字節(jié),讀傳送,地址自增,自動(dòng)預(yù)置 MOV AL,41H ;設(shè)置通道;設(shè)置通道1方式字方式字 OUT DX,AL ;通道;通道1單字節(jié),校驗(yàn)傳送,地址自增,無(wú)單字節(jié),校驗(yàn)傳送,地址自增,無(wú)自動(dòng)預(yù)置自動(dòng)預(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 求職人員面試題及答案
- 航空航天復(fù)合材料 課件 知識(shí)點(diǎn)2 納米復(fù)合材料
- 新疆村干部考試試題及答案
- 社會(huì)幼兒面試題及答案
- 中國(guó)煙草培訓(xùn)
- 2025年中國(guó)拋光塊行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 醉酒窒息死亡病例分析
- 中班健康領(lǐng)域:會(huì)變暖的衣服
- 綜合格斗培訓(xùn)
- 腫瘤登記質(zhì)量控制
- 2025年江西省三支一扶考試真題
- 北京市通州區(qū)2023-2024學(xué)年八年級(jí)下學(xué)期期末考試物理試題【含答案、解析】
- 2025年四川省安全員《A證》考試題庫(kù)
- 2024年山東省夏季普通高中學(xué)業(yè)水平合格考試歷史試卷
- 園藝論文開(kāi)題報(bào)告范文
- 數(shù)據(jù)質(zhì)量管理實(shí)施手冊(cè)
- 林業(yè)工程開(kāi)工申請(qǐng)
- 清華大學(xué)《大學(xué)物理》各章節(jié)習(xí)題庫(kù)及答案合集
- 2024年度小紅書(shū)商業(yè)MCN機(jī)構(gòu)經(jīng)營(yíng)洞察報(bào)告
- 寵物醫(yī)院服務(wù)行業(yè)可行性分析報(bào)告
- 輸液港的輸液與維護(hù)
評(píng)論
0/150
提交評(píng)論