微機(jī)系統(tǒng)原理與接口第12章_第1頁
微機(jī)系統(tǒng)原理與接口第12章_第2頁
微機(jī)系統(tǒng)原理與接口第12章_第3頁
微機(jī)系統(tǒng)原理與接口第12章_第4頁
微機(jī)系統(tǒng)原理與接口第12章_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第十二章第十二章 DMADMA控制器控制器(DMAC)(DMAC)12.1 DMA12.1 DMA傳送的基本概念傳送的基本概念 1. DMA (Direct Memory Access) : 直接存儲(chǔ)器存取直接存儲(chǔ)器存取, 習(xí)習(xí) 慣上稱慣上稱DMA傳送。傳送。 DMA傳送傳送: 利用硬件完成高速外設(shè)與系統(tǒng)利用硬件完成高速外設(shè)與系統(tǒng)RAM之間之間 的信息交換。的信息交換。 2. DMAC: DMA 控制器??刂破鳌?它是實(shí)現(xiàn)它是實(shí)現(xiàn)DMA傳送的核心芯片。傳送的核心芯片。 3. 專用術(shù)語專用術(shù)語: DMA讀傳送讀傳送: 在在DMAC控制下控制下, 讀取讀取RAM的內(nèi)容的內(nèi)容 I/O端口。端口。 D

2、MA寫傳送寫傳送: I/O端口信息端口信息 系統(tǒng)系統(tǒng)RAM某單元。某單元。 存儲(chǔ)單元讀存儲(chǔ)單元讀 / 寫傳送寫傳送: 在在DMAC控制下控制下, 實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)系統(tǒng) RAM RAM。 注意注意:在在PC系列機(jī)中禁止系列機(jī)中禁止RAM RAM傳送。傳送。4. DMA傳送的過程傳送的過程 HOLDCPU HLDAHRQ DREQ DMACHLDA DACK I/O接口接口RAM總線保持請(qǐng)求總線保持請(qǐng)求總線響應(yīng)總線響應(yīng)DMA請(qǐng)求請(qǐng)求DMA響應(yīng)響應(yīng)ABDBCB HOLDCPU HLDAHRQ DREQ DMACHLDA DACK I/O接口接口RAM總線保持請(qǐng)求總線保持請(qǐng)求總線響應(yīng)總線響應(yīng)DMA請(qǐng)求請(qǐng)求

3、DMA響應(yīng)響應(yīng)ABDBCB 系統(tǒng)的三總線分別受到系統(tǒng)的三總線分別受到CPU和和DMAC的控制。的控制。 CPU可以向地址總線、數(shù)據(jù)總線、控制總線上發(fā)送信可以向地址總線、數(shù)據(jù)總線、控制總線上發(fā)送信 息息, DMAC也可以向地址總線、數(shù)據(jù)總線、控制總線也可以向地址總線、數(shù)據(jù)總線、控制總線 上發(fā)送信息上發(fā)送信息, 但同一時(shí)間但同一時(shí)間, 三總線只能受一個(gè)器件的控三總線只能受一個(gè)器件的控 制制, 所以所以, 兩者之間必須有聯(lián)絡(luò)信號(hào)兩者之間必須有聯(lián)絡(luò)信號(hào): HOLDCPU HLDAHRQ DREQ DMACHLDA DACK I/O接口接口RAM總線保持請(qǐng)求總線保持請(qǐng)求總線響應(yīng)總線響應(yīng)DMA請(qǐng)求請(qǐng)求DM

4、A響應(yīng)響應(yīng)ABDBCB 高速外設(shè)高速外設(shè), 通過其接口電路向通過其接口電路向DMAC發(fā)出發(fā)出“DMA請(qǐng)求請(qǐng)求” 信號(hào)信號(hào) (請(qǐng)求請(qǐng)求DMAC為其傳送數(shù)據(jù)為其傳送數(shù)據(jù))。 DMAC檢測到有檢測到有DMA請(qǐng)求之后請(qǐng)求之后, 即向即向CPU提出總線保提出總線保 持請(qǐng)求持請(qǐng)求 (請(qǐng)求請(qǐng)求CPU脫離總線脫離總線)。 HOLDCPU HLDAHRQ DREQ DMACHLDA DACK I/O接口RAM總線保持請(qǐng)求總線響應(yīng)DMA請(qǐng)求DMA響應(yīng)ABDBCB CPU執(zhí)行完當(dāng)前指令的當(dāng)前總線周期之后脫離系統(tǒng)總執(zhí)行完當(dāng)前指令的當(dāng)前總線周期之后脫離系統(tǒng)總 線線, 并向并向DMAC發(fā)出發(fā)出“總線保持響應(yīng)總線保持響應(yīng)”

5、信號(hào)。信號(hào)。 DMAC收到收到“總線響應(yīng)總線響應(yīng)”信號(hào)之后信號(hào)之后, 接管系統(tǒng)總線的控接管系統(tǒng)總線的控 制制權(quán)權(quán), 并向并向I/O接口發(fā)出接口發(fā)出DMA響應(yīng)信號(hào)。響應(yīng)信號(hào)。 HOLDCPU HLDAHRQ DREQ DMACHLDA DACK I/O接口接口RAM總線請(qǐng)求總線請(qǐng)求總線響應(yīng)總線響應(yīng)DMA請(qǐng)求請(qǐng)求DMA響應(yīng)響應(yīng)ABDBCB 在這之后在這之后, 由由DAMC控制系統(tǒng)總線控制系統(tǒng)總線, 進(jìn)行進(jìn)行DMA傳送。傳送。 a. 若進(jìn)行若進(jìn)行DMA讀傳送讀傳送: DMAC把把RAM地址地址 地址總線上地址總線上 DMAC發(fā)出存儲(chǔ)器讀命令和發(fā)出存儲(chǔ)器讀命令和I/O寫命令寫命令 b. 若進(jìn)行若進(jìn)行D

6、MA寫傳送寫傳送 DMAC把把RAM地址地址 地址總線上地址總線上 DMAC發(fā)出發(fā)出I/O讀命令和存儲(chǔ)器寫命令讀命令和存儲(chǔ)器寫命令 HOLDCPU HLDAHRQ DREQ DMACHLDA DACK I/O接口接口RAM總線請(qǐng)求總線請(qǐng)求總線響應(yīng)總線響應(yīng)DMA請(qǐng)求DMA響應(yīng)ABDBCB 預(yù)定的字節(jié)數(shù)全部傳送完畢預(yù)定的字節(jié)數(shù)全部傳送完畢, DMAC脫離系統(tǒng)總線脫離系統(tǒng)總線, CPU再次控制系統(tǒng)總線再次控制系統(tǒng)總線, 完成被中斷指令的后繼總線完成被中斷指令的后繼總線 周期。周期。5. DMA傳送與中斷方式的比較傳送與中斷方式的比較 響應(yīng)時(shí)間響應(yīng)時(shí)間: CPU接到接到“中斷請(qǐng)求中斷請(qǐng)求”后要等到當(dāng)前

7、指令執(zhí)后要等到當(dāng)前指令執(zhí) 行完畢才響應(yīng)行完畢才響應(yīng), 而而CPU接到接到DMAC的的“總線請(qǐng)求總線請(qǐng)求”后后, 只要當(dāng)前指令的當(dāng)前總線周期執(zhí)行完畢就響應(yīng)只要當(dāng)前指令的當(dāng)前總線周期執(zhí)行完畢就響應(yīng)! 數(shù)據(jù)傳送速度數(shù)據(jù)傳送速度: DMAC傳送比中斷傳送要快傳送比中斷傳送要快! 中斷服務(wù)程序中斷服務(wù)程序: 保護(hù)現(xiàn)場保護(hù)現(xiàn)場 ( I/O 端口端口) CPU CPU RAM 送中斷結(jié)束命令送中斷結(jié)束命令 恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 IRET 由此看出由此看出, 中斷傳送是由軟件完成的中斷傳送是由軟件完成的, 執(zhí)行一次中斷執(zhí)行一次中斷服務(wù)程序服務(wù)程序, 就完成一字節(jié)的就完成一字節(jié)的 I/O 寫傳送。寫傳送。 而而DM

8、A傳送是由硬件完成的傳送是由硬件完成的, 每傳送一個(gè)字節(jié)只占用每傳送一個(gè)字節(jié)只占用CPU的一個(gè)總線周期。的一個(gè)總線周期。 中斷請(qǐng)求分為內(nèi)部中斷和外部中斷。中斷請(qǐng)求分為內(nèi)部中斷和外部中斷。 DMA請(qǐng)求的方式也有兩種請(qǐng)求的方式也有兩種: 硬件硬件DMA請(qǐng)求和軟件請(qǐng)求和軟件DMA請(qǐng)求。請(qǐng)求。 12.2 8237 DMA12.2 8237 DMA控制器控制器 一片一片8237 有有4個(gè)個(gè)DMA通道。通道。一一. 8237 內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) 8237提供提供4種種DMA傳送方式傳送方式: 單字節(jié)讀單字節(jié)讀 / 寫傳送寫傳送 數(shù)據(jù)塊讀數(shù)據(jù)塊讀 / 寫傳送寫傳送 請(qǐng)求傳送請(qǐng)求傳送 級(jí)連傳送級(jí)連傳送 一次一次

9、DMA傳送的最大字節(jié)數(shù)是傳送的最大字節(jié)數(shù)是64K 8237每個(gè)通道只能訪問每個(gè)通道只能訪問64K RAM, PC系列機(jī)由于增系列機(jī)由于增 加了加了“頁面寄存器頁面寄存器”, 所以一個(gè)通道能訪問所以一個(gè)通道能訪問16兆內(nèi)存。兆內(nèi)存。控制寄存器控制寄存器請(qǐng)求寄存器請(qǐng)求寄存器狀態(tài)寄存器狀態(tài)寄存器屏蔽寄存器屏蔽寄存器請(qǐng)求觸發(fā)器請(qǐng)求觸發(fā)器屏蔽觸發(fā)器屏蔽觸發(fā)器方式寄存器方式寄存器基地址寄存器基地址寄存器當(dāng)前地址寄存器當(dāng)前地址寄存器基本字節(jié)寄存器基本字節(jié)寄存器當(dāng)前字節(jié)寄存器當(dāng)前字節(jié)寄存器通道通道0暫存寄存器暫存寄存器 通道通道1 通道通道2 通道通道3READY DREQ0DACK0DREQ1DACK1DR

10、EQ2DACK2DREQ3DACK3HRQHLDACLKAENADSTBDB7 DB0A3 A0A7 A4 IOR MEMR IOWMEMWHOLDHLDACLK8237A的內(nèi)部結(jié)構(gòu)框圖的內(nèi)部結(jié)構(gòu)框圖二二. 8237內(nèi)部寄存器組內(nèi)部寄存器組 分二類分二類: 一類是一類是4個(gè)通道共用的個(gè)通道共用的, 一類是每個(gè)通道專用的。一類是每個(gè)通道專用的。 1. 控制寄存器控制寄存器 (共用共用) 寄存器初始化命令字寄存器初始化命令字, 命令字格式如下頁圖命令字格式如下頁圖: D7 D6 D5 D4 D3 D2 D1 D00:禁止存儲(chǔ)器到禁止存儲(chǔ)器到存儲(chǔ)器傳送存儲(chǔ)器傳送1:允許存儲(chǔ)器到允許存儲(chǔ)器到存儲(chǔ)器傳送

11、存儲(chǔ)器傳送存儲(chǔ)器到存儲(chǔ)器傳送時(shí)存儲(chǔ)器到存儲(chǔ)器傳送時(shí):0:源地址不保持源地址不保持1:源地址保持不變?cè)吹刂繁3植蛔?:啟動(dòng)啟動(dòng)8237工作工作1:停止停止8237工作工作0:正常時(shí)序正常時(shí)序1:壓縮時(shí)序壓縮時(shí)序0:DACK低電平有效低電平有效1:DACK高電平有效高電平有效0:DREQ高電平有效高電平有效1:DREQ低電平有效低電平有效0:不擴(kuò)展寫信號(hào)不擴(kuò)展寫信號(hào)1:擴(kuò)展寫信號(hào)擴(kuò)展寫信號(hào)0:固定優(yōu)先級(jí)固定優(yōu)先級(jí)1:循環(huán)優(yōu)先級(jí)循環(huán)優(yōu)先級(jí)8237A控制寄存器格式控制寄存器格式 注意注意:系統(tǒng)機(jī)加電后系統(tǒng)機(jī)加電后, 由由BIOS完成完成DMAC的初始化的初始化, 控制命令字控制命令字=0, 即即:各個(gè)

12、通道禁止各個(gè)通道禁止RAM RAM, 允允許讀許讀 / 寫傳送寫傳送, 使用正常時(shí)序使用正常時(shí)序, 不擴(kuò)展寫信號(hào)不擴(kuò)展寫信號(hào), DMA請(qǐng)求高電平有效請(qǐng)求高電平有效, DMA應(yīng)答信號(hào)低電平有效應(yīng)答信號(hào)低電平有效, 各通道各通道的的DMA請(qǐng)求是固定優(yōu)先級(jí)請(qǐng)求是固定優(yōu)先級(jí), 即即: DREQ0最高最高, REQ3最低。最低。 用戶沒有必用戶沒有必 要也不應(yīng)當(dāng)改變控制寄存器的要也不應(yīng)當(dāng)改變控制寄存器的內(nèi)容。內(nèi)容。 2. 方式寄存器方式寄存器 (共用共用)寄存方式字,選擇各通道的傳送方式。寄存方式字,選擇各通道的傳送方式。方式字格式,如下頁圖方式字格式,如下頁圖:D7 D6 D5 D4 D3 D2 D1

13、 D0通道選擇通道選擇:00選擇通道選擇通道001:選擇通道選擇通道110:選擇通道選擇通道211:選擇通道選擇通道3傳送類型的選擇傳送類型的選擇:00校驗(yàn)傳送校驗(yàn)傳送01:寫傳送寫傳送10:讀傳送讀傳送11:無意義無意義通道傳送方式選擇通道傳送方式選擇:00:請(qǐng)求傳送方式請(qǐng)求傳送方式01:單字節(jié)傳送方式單字節(jié)傳送方式10:數(shù)據(jù)塊傳送方式數(shù)據(jù)塊傳送方式11:級(jí)聯(lián)方式級(jí)聯(lián)方式地址增減方式選擇地址增減方式選擇 0:地址加地址加1 1:地址減地址減1 自動(dòng)重裝功能選擇自動(dòng)重裝功能選擇: 0:禁止禁止 1:允許允許8237A方式寄存器格式方式寄存器格式 8237DMAC 規(guī)定規(guī)定4種傳送方式種傳送方式

14、, 即即: 單字節(jié)讀單字節(jié)讀 / 寫傳送寫傳送, 數(shù)據(jù)塊讀數(shù)據(jù)塊讀 / 寫傳送寫傳送, 單字節(jié)請(qǐng)求讀單字節(jié)請(qǐng)求讀 / 寫傳送寫傳送, 級(jí)聯(lián)傳送。級(jí)聯(lián)傳送。 各通道還有一個(gè)各通道還有一個(gè)6位的方式寄存器。位的方式寄存器。8237根據(jù)共用的根據(jù)共用的 方式寄存器方式寄存器D1、D0位位, 再截取再截取D7 D2位位 相應(yīng)通相應(yīng)通 道的方式寄存器中。道的方式寄存器中。 假設(shè)假設(shè): 方式命令字方式命令字=0 1 0 0 1 0 0 1 單字節(jié)傳送單字節(jié)傳送地址加地址加1修改修改無自動(dòng)重裝功能無自動(dòng)重裝功能讀讀傳傳送送通通道道 1表示表示: 令令CH1進(jìn)行單字節(jié)讀傳送進(jìn)行單字節(jié)讀傳送, 自動(dòng)加自動(dòng)加1變

15、址變址, 沒有沒有 自動(dòng)重裝功能。自動(dòng)重裝功能。 MOV AL, 01001001B OUT 方式寄存器口地址方式寄存器口地址, AL基地址寄存器(基地址寄存器(16位)位)低低16位位RAM地地址址自動(dòng)重裝功能選擇:自動(dòng)重裝功能選擇: 方式寄存器方式寄存器 D4=1, 允許允許 D4=0, 禁止禁止當(dāng)前地址寄存器當(dāng)前地址寄存器(16位位)系統(tǒng)地址總線系統(tǒng)地址總線A15 A0自動(dòng)自動(dòng)1 每個(gè)通道有一對(duì)。每個(gè)通道有一對(duì)。3. 基地址寄存器和當(dāng)前地址寄存器基地址寄存器和當(dāng)前地址寄存器 (各通道專用)(各通道專用)基地址寄存器(基地址寄存器(16位)位)低低16位位RAM地地址址自動(dòng)重裝功能選擇:自

16、動(dòng)重裝功能選擇: 方式寄存器方式寄存器 D4=1, 允許允許 D4=0, 禁止禁止當(dāng)前地址寄存器當(dāng)前地址寄存器(16位位)系統(tǒng)地址總線系統(tǒng)地址總線A15 A0自動(dòng)自動(dòng)1 初始化編程時(shí)初始化編程時(shí), 低低16位位RAM地址地址 基地址寄存器基地址寄存器, 后后 者自動(dòng)轉(zhuǎn)存到當(dāng)前地址寄存器中。者自動(dòng)轉(zhuǎn)存到當(dāng)前地址寄存器中?;刂芳拇嫫鳎ɑ刂芳拇嫫鳎?6位)位)低低16位位RAM地地址址自動(dòng)重裝功能選擇:自動(dòng)重裝功能選擇: 方式寄存器方式寄存器 D4=1, 允許允許 D4=0, 禁止禁止當(dāng)前地址寄存器當(dāng)前地址寄存器(16位位)系統(tǒng)地址總線系統(tǒng)地址總線A15 A0自動(dòng)自動(dòng)1 進(jìn)行進(jìn)行DMA讀讀 /

17、寫傳送時(shí)寫傳送時(shí), 當(dāng)前地址寄存器的內(nèi)容當(dāng)前地址寄存器的內(nèi)容 系系 統(tǒng)地址線上統(tǒng)地址線上, 選中某一單元。選中某一單元?;刂芳拇嫫鳎ɑ刂芳拇嫫鳎?6位)位)低低16位位RAM地地址址自動(dòng)重裝功能選擇:自動(dòng)重裝功能選擇: 方式寄存器方式寄存器 D4=1, 允許允許 D4=0, 禁止禁止當(dāng)前地址寄存器當(dāng)前地址寄存器(16位位)系統(tǒng)地址總線系統(tǒng)地址總線A15 A0自動(dòng)自動(dòng)1 一個(gè)字節(jié)傳送完畢一個(gè)字節(jié)傳送完畢, 當(dāng)前地址寄存器中的內(nèi)容自動(dòng)當(dāng)前地址寄存器中的內(nèi)容自動(dòng)+1 或或 1(由方式寄存器由方式寄存器D5的選擇而定的選擇而定)。 基地址寄存器(基地址寄存器(16位)位)低低16位位RAM地地址址

18、自動(dòng)重裝功能選擇:自動(dòng)重裝功能選擇: 方式寄存器方式寄存器 D4=1, 允許允許 D4=0, 禁止禁止當(dāng)前地址寄存器當(dāng)前地址寄存器(16位位)系統(tǒng)地址總線系統(tǒng)地址總線A15 A0自動(dòng)自動(dòng)1 預(yù)定預(yù)定字節(jié)傳送完畢字節(jié)傳送完畢, 若方式寄存器若方式寄存器D4位位=1, 則基地址則基地址 寄存器中的內(nèi)容自動(dòng)重裝寄存器中的內(nèi)容自動(dòng)重裝 當(dāng)前地址寄存器。當(dāng)前地址寄存器。4. 基本字節(jié)寄存器和當(dāng)前字節(jié)寄存器基本字節(jié)寄存器和當(dāng)前字節(jié)寄存器 (各通道專用各通道專用)“欲傳送的字節(jié)數(shù)欲傳送的字節(jié)數(shù)1”基本字節(jié)寄存器(基本字節(jié)寄存器(16位)位)自動(dòng)重裝功能選擇自動(dòng)重裝功能選擇自動(dòng)自動(dòng)1當(dāng)前字節(jié)寄存器(當(dāng)前字節(jié)寄

19、存器(16位)位) EOP 計(jì)數(shù)值由計(jì)數(shù)值由0 1時(shí)時(shí), 引腳引腳EOP = 每通道有一對(duì)。每通道有一對(duì)?!坝麄魉偷淖止?jié)數(shù)欲傳送的字節(jié)數(shù)1”基本字節(jié)寄存器(基本字節(jié)寄存器(16位)位)自動(dòng)重裝功能選擇自動(dòng)重裝功能選擇自動(dòng)自動(dòng)1當(dāng)前字節(jié)寄存器(當(dāng)前字節(jié)寄存器(16位)位) EOP 計(jì)數(shù)值由計(jì)數(shù)值由0 1時(shí)時(shí), 引腳引腳EOP = 初始化時(shí)初始化時(shí)“欲傳送的字節(jié)數(shù)欲傳送的字節(jié)數(shù)1” 基本字節(jié)寄存器基本字節(jié)寄存器, 后后 者自動(dòng)寫入當(dāng)前字節(jié)寄存器。者自動(dòng)寫入當(dāng)前字節(jié)寄存器。“欲傳送的字節(jié)數(shù)欲傳送的字節(jié)數(shù)1”基本字節(jié)寄存器(基本字節(jié)寄存器(16位)位)自動(dòng)重裝功能選擇自動(dòng)重裝功能選擇自動(dòng)自動(dòng)1當(dāng)前字節(jié)

20、寄存器(當(dāng)前字節(jié)寄存器(16位)位) EOP 計(jì)數(shù)值由計(jì)數(shù)值由0 1時(shí)時(shí), 引腳引腳EOP = 每傳送一個(gè)字節(jié)每傳送一個(gè)字節(jié), 當(dāng)前字節(jié)寄存器自動(dòng)當(dāng)前字節(jié)寄存器自動(dòng)1 ?!坝麄魉偷淖止?jié)數(shù)欲傳送的字節(jié)數(shù)1”基本字節(jié)寄存器(基本字節(jié)寄存器(16位)位)自動(dòng)重裝功能選擇自動(dòng)重裝功能選擇自動(dòng)自動(dòng)1當(dāng)前字節(jié)寄存器(當(dāng)前字節(jié)寄存器(16位)位) EOP 計(jì)數(shù)值由計(jì)數(shù)值由0 1時(shí)時(shí), 引腳引腳EOP = 當(dāng)前字節(jié)寄存器的值由當(dāng)前字節(jié)寄存器的值由0 1時(shí)時(shí), 引腳引腳EOP= , 表明表明 預(yù)定的字節(jié)數(shù)傳送完畢。若方式寄存器預(yù)定的字節(jié)數(shù)傳送完畢。若方式寄存器D4=1, 則完成則完成 計(jì)數(shù)值自動(dòng)重裝計(jì)數(shù)值自動(dòng)重

21、裝 當(dāng)前字節(jié)寄存器。當(dāng)前字節(jié)寄存器。 5. 先先 / 后觸發(fā)器后觸發(fā)器 (共用共用) 地址寄存器、字節(jié)寄存器都是地址寄存器、字節(jié)寄存器都是16位位, 而而8237A與與CPU之之 間的數(shù)據(jù)線只有間的數(shù)據(jù)線只有8根根, 所以地址值所以地址值(字節(jié)值字節(jié)值)要分要分2次寫入。次寫入。 先先 / 后觸發(fā)器規(guī)定了寫入地址寄存器中的初值后觸發(fā)器規(guī)定了寫入地址寄存器中的初值, 以及寫以及寫 入字節(jié)寄存器中的初值的寫入順序。入字節(jié)寄存器中的初值的寫入順序。 先先 / 后觸發(fā)器為后觸發(fā)器為0, 則先寫入的是低則先寫入的是低8位位, 后寫入的是高后寫入的是高8 位位, 初始化時(shí)初始化時(shí): 使先使先 / 后觸發(fā)器

22、為后觸發(fā)器為0 低低8位位RAM地址地址 基本地址寄存器基本地址寄存器 中中8位位RAM地址地址 基本地址寄存器基本地址寄存器 “欲傳送的字節(jié)數(shù)欲傳送的字節(jié)數(shù)1”其低其低8位位 基本字節(jié)寄存器基本字節(jié)寄存器 “欲傳送的字節(jié)數(shù)欲傳送的字節(jié)數(shù)1”其高其高8位位 基本字節(jié)寄存器基本字節(jié)寄存器6. 屏蔽寄存器屏蔽寄存器 (共用共用) 功能功能: 屏蔽某一通道的屏蔽某一通道的DMA請(qǐng)求。請(qǐng)求。 8237A有有2個(gè)屏蔽寄存器個(gè)屏蔽寄存器 單通道屏蔽寄存器、單通道屏蔽寄存器、 多通道屏蔽寄存器多通道屏蔽寄存器 無用無用D2 D1 D01: 使相應(yīng)通道的使相應(yīng)通道的 屏蔽觸發(fā)器為屏蔽觸發(fā)器為10: 使相應(yīng)通道

23、的使相應(yīng)通道的 屏蔽觸發(fā)器為屏蔽觸發(fā)器為0D1 D0選中選中0 00 11 0 1 1CH0CH1CH2CH3 每寫入一次每寫入一次, 只能預(yù)置只能預(yù)置 一個(gè)通道的屏蔽觸發(fā)器。一個(gè)通道的屏蔽觸發(fā)器。 單通道屏蔽寄存器單通道屏蔽寄存器 多通道屏蔽寄存器多通道屏蔽寄存器 (共用共用) D3 D2 D1 D0無用無用選中選中 CH0 Di=1: 使相應(yīng)通道的屏使相應(yīng)通道的屏 蔽觸發(fā)器為蔽觸發(fā)器為1Di=0: 使相應(yīng)通道的屏使相應(yīng)通道的屏 蔽觸發(fā)器為蔽觸發(fā)器為0 寫入一次寫入一次, 可使可使4 個(gè)通道的屏蔽寄存器分別置個(gè)通道的屏蔽寄存器分別置1或置或置0。 CH1 CH2 CH3 7. 軟件請(qǐng)求寄存器

24、軟件請(qǐng)求寄存器 (共用共用) 無用無用1: 使相應(yīng)通道的請(qǐng)求觸發(fā)器置使相應(yīng)通道的請(qǐng)求觸發(fā)器置10: 使相應(yīng)通道的請(qǐng)求觸發(fā)器置使相應(yīng)通道的請(qǐng)求觸發(fā)器置0 D1 D0選選中中0 00 11 01 1CH0CH1CH2CH3D2 D1 D0 硬件硬件DMA請(qǐng)求請(qǐng)求: 由引腳由引腳DREQ0 3的有效信號(hào)的有效信號(hào), 使通道使通道 的的“請(qǐng)求觸發(fā)器請(qǐng)求觸發(fā)器”置置1 。軟件軟件DMA請(qǐng)求請(qǐng)求:由于預(yù)置由于預(yù)置“請(qǐng)求寄存器請(qǐng)求寄存器”, 而從內(nèi)部使通而從內(nèi)部使通 道的道的 “請(qǐng)求觸發(fā)器請(qǐng)求觸發(fā)器”置置1 。實(shí)驗(yàn)表明實(shí)驗(yàn)表明: 某通道的屏蔽觸發(fā)器置某通道的屏蔽觸發(fā)器置1后后, 該通道的硬件該通道的硬件、軟

25、件、軟件DMA 請(qǐng)求都將被屏蔽。請(qǐng)求都將被屏蔽。8. 狀態(tài)寄存器狀態(tài)寄存器CH3 CH2 CH1 CH0 CH3 CH2 CH1 CH0D7 D4 D3 D0Di=1表示有表示有DMA請(qǐng)求請(qǐng)求Di=1表示該通道表示該通道DMA傳送結(jié)束傳送結(jié)束12.3 8237A在在PC系列機(jī)中的應(yīng)用系列機(jī)中的應(yīng)用 1. 用用2片片8237A級(jí)連提供級(jí)連提供7個(gè)個(gè)DMA通道通道 HRQDREQ0 DACK0DREQ1 DACK1DREQ2 DACK2DREQ3 DACK3DACK0DACK1 DACK2DACK3 HRQDREQ0 DACK0DREQ1 DACK1DREQ2 DACK2DREQ3 DACK3HR

26、Q至至CPUDACK5DACK6DACK7DREQ0DREQ1DREQ2DREQ3DMAC1DMAC2DREQ5DREQ6DREQ78237A的每個(gè)通道地址寄存器是的每個(gè)通道地址寄存器是16位位, 進(jìn)行進(jìn)行DMA傳送時(shí)傳送時(shí),當(dāng)前地址寄存器的內(nèi)容當(dāng)前地址寄存器的內(nèi)容 系統(tǒng)地址線上。系統(tǒng)地址線上。我們知道我們知道: 16位地址可尋址位地址可尋址64K內(nèi)存內(nèi)存 20位地址可尋址位地址可尋址1兆內(nèi)存兆內(nèi)存 24位地址可尋址位地址可尋址16兆內(nèi)存兆內(nèi)存 在在PC / XT中中, 內(nèi)存為內(nèi)存為1兆兆, 高四位地址由誰給出高四位地址由誰給出? 在在PC / AT中中, 內(nèi)存為內(nèi)存為16兆兆, 高高8位地址

27、由誰給出位地址由誰給出?為此為此, 在在DMA接口電路中接口電路中, 以以8237A為核心為每一通道為核心為每一通道增加了一個(gè)增加了一個(gè)“頁面寄存器頁面寄存器”, 用來存放高用來存放高4位位 (AT機(jī)中為機(jī)中為高高8位位)地址。地址。2. 如何擴(kuò)充如何擴(kuò)充8237A的尋址范圍的尋址范圍 (增設(shè)頁面地址寄存器增設(shè)頁面地址寄存器 ) 地址鎖存地址鎖存器器當(dāng)前地址寄存器當(dāng)前地址寄存器頁面寄存器頁面寄存器系統(tǒng)數(shù)據(jù)線系統(tǒng)數(shù)據(jù)線初始化時(shí)初始化時(shí), 寫入高寫入高8位位RAM地址地址A19 A16地址驅(qū)動(dòng)器地址驅(qū)動(dòng)器中中8位位RAM地址地址低低8位位RAM地址地址A15 A8A7 A08237A某通道某通道3

28、. 頁面寄存器口地址頁面寄存器口地址CH0CH1CH2CH3DMAC 1DMAC 2CH0CH1CH2CH3頁面寄存器口地址頁面寄存器口地址87H83H81H82H /8BH89H8AH12.4 8237A12.4 8237A的初始化編程的初始化編程 (1)命令字寫入控制寄存器。命令字寫入控制寄存器。(2)屏蔽字寫入屏蔽寄存器,屏蔽要初始化的通道。屏蔽字寫入屏蔽寄存器,屏蔽要初始化的通道。(3)方式字寫入方式寄存器,為通道規(guī)定傳送類型及方式字寫入方式寄存器,為通道規(guī)定傳送類型及 工作方式。工作方式。(4)置置0先后觸發(fā)器,為后繼的地址寄存器和字節(jié)寄存先后觸發(fā)器,為后繼的地址寄存器和字節(jié)寄存 器

29、規(guī)定寫入順序。器規(guī)定寫入順序。 (5) 計(jì)算存儲(chǔ)單元的計(jì)算存儲(chǔ)單元的20位物理地址。位物理地址。 (6) 將物理地址的高將物理地址的高8位位 存入頁面寄存器存入頁面寄存器, 低低16位位 基本地址寄存器基本地址寄存器 , 字節(jié)數(shù)字節(jié)數(shù)-1 基本字節(jié)寄存器?;咀止?jié)寄存器。 (7)解除屏蔽解除屏蔽,準(zhǔn)備響應(yīng)準(zhǔn)備響應(yīng)DMA請(qǐng)求。請(qǐng)求。4. DMA讀讀/寫傳送實(shí)驗(yàn)舉例寫傳送實(shí)驗(yàn)舉例 按圖完成電路接線按圖完成電路接線,采用采用“硬件硬件DMA請(qǐng)求請(qǐng)求”的方式的方式,將用戶程序數(shù)據(jù)段將用戶程序數(shù)據(jù)段3行測試電文寫入到實(shí)驗(yàn)電路中的行測試電文寫入到實(shí)驗(yàn)電路中的6116存儲(chǔ)器存儲(chǔ)器(它們是本實(shí)驗(yàn)的它們是本實(shí)驗(yàn)

30、的I/O端口寄存器端口寄存器),然后再然后再將將6116存儲(chǔ)器中的電文傳送到用戶程序的數(shù)據(jù)段緩沖存儲(chǔ)器中的電文傳送到用戶程序的數(shù)據(jù)段緩沖區(qū)區(qū),最后把緩沖區(qū)中的電文顯示在屏幕上最后把緩沖區(qū)中的電文顯示在屏幕上,驗(yàn)證驗(yàn)證DMA讀讀寫傳送的結(jié)果寫傳送的結(jié)果,電文如下電文如下:THE QUICK BROWN FOX JUMPS OVER LAZY DOGA8A1B8B1GDIR74LS2456116D7D0A10A0CS WRRDQ10Q02*74LS393清清0端端進(jìn)位脈沖進(jìn)位脈沖+5VDMA按鍵按鍵總線總線B18DRQ1DMA請(qǐng)求電請(qǐng)求電路路IORIOWDACK1IOWIORDACK1清清0電路電

31、路2Kx8程序清單程序清單DISP MACRO VAR MOV AH,9 MOV DX,OFFSET VAR INT 21H ENDMSCANKEY MACRO LOCAL LLLLLL: MOV AH,1 INT 16H JZ LLL MOV AH,0 INT 16H ENDMDATA SEGMENTTEXT DB THE QUICK BROWN FOX JUMPS OVER LAZY DOG DB 0DH,0AH DB THE QUICK BROWN FOX JUMPS OVER LAZY DOG DB 0DH,0AH DB THE QUICK BROWN FOX JUMPS OVER L

32、AZY DOG DB 0DH,0AH,$COUNT EQU $-TEXTBUF DB COUNT DUP(?)MESG DB To make a DMA request ! DB then strike any Key,0DH,0AH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATABEG: MOV AX,DATA MOV DS,AX CALL I8237R ;DMA CH1讀出初始化讀出初始化 DISP MESG ;給出操作提示給出操作提示 SCANKEYLAST1: IN AL,08H ;讀讀DMA狀態(tài)寄存器狀態(tài)寄存器 AND AL,02H JZ LAST1 ;CH1傳送未結(jié)束傳送未結(jié)束,轉(zhuǎn)轉(zhuǎn) CALL I8237W ;DMA CH1寫入初始化寫入初始化 DISP MESG ;給出操作提示給出操作提示 SCANKEYLAST2: IN AL,08H ;讀讀DMA狀態(tài)寄存器狀態(tài)寄存器 AND AL,02

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論