可編程DMA控制器A_第1頁(yè)
可編程DMA控制器A_第2頁(yè)
可編程DMA控制器A_第3頁(yè)
可編程DMA控制器A_第4頁(yè)
可編程DMA控制器A_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

可編程DMA控制器A第1頁(yè),共23頁(yè),2023年,2月20日,星期三8.1概述

Inte18237A是一種有40個(gè)引腳的高性能可編程DMA控制器,采用主頻5MHz的8237A傳送速度可達(dá)到1.6MB/秒。

8237A的主要功能為:(1)在一個(gè)8237A芯片中有4個(gè)獨(dú)立的DMA通道,每個(gè)通道均可獨(dú)立地傳送數(shù)據(jù),可控制4個(gè)I/O外設(shè)進(jìn)行DMA傳送。(2)每個(gè)通道的DMA請(qǐng)求都可以分別允許和禁止。每個(gè)通道的DMA請(qǐng)求有不同的優(yōu)先權(quán),優(yōu)先權(quán)可以是固定的,也可以是循環(huán)的。(3)每個(gè)通道均有64KB的尋址和計(jì)數(shù)能力,即一次DMA傳送的數(shù)據(jù)最大長(zhǎng)度可達(dá)64KB。第2頁(yè),共23頁(yè),2023年,2月20日,星期三8.1概述(4)可以在存儲(chǔ)器與外設(shè)間進(jìn)行數(shù)據(jù)傳送,也可以在存儲(chǔ)器的兩個(gè)區(qū)域之間進(jìn)行傳送。(5)8237A有四種DMA傳送方式,分別為單字節(jié)傳送、數(shù)據(jù)塊傳送、請(qǐng)求傳送方式和級(jí)連方式。(6)8237A芯片有一條結(jié)束處理的輸入信號(hào),允許外界用此輸入端結(jié)束DMA傳送或重新初始化。(7)8237A可以級(jí)連,擴(kuò)展更多的通道。(8)40腳雙列直插式,+5V工作電源。第3頁(yè),共23頁(yè),2023年,2月20日,星期三8.1概述8237A有兩種不同的工作狀態(tài),分別為從態(tài)方式和主態(tài)方式。(1)在DMA控制器未取得總線控制權(quán)時(shí)必須由CPU對(duì)DMA控制器進(jìn)行編程,以確定通道的選擇、數(shù)據(jù)傳送的方式和類型、內(nèi)存單元起始地址、地址是遞增還是遞減及要傳送的總字節(jié)數(shù)等,CPU也可以讀取DMA控制總線的狀態(tài)。這時(shí),CPU處于主控狀態(tài),而DMA控制器就和一般的I/O芯片一樣,是系統(tǒng)總線的從設(shè)備,這種工作方式稱為從態(tài)方式。(2)當(dāng)DMA控制器取得總線控制權(quán)后,系統(tǒng)就完全在它的控制下,使I/O設(shè)備和存儲(chǔ)之間或存儲(chǔ)器與存儲(chǔ)器之間進(jìn)行直接的數(shù)據(jù)傳送,這種工作方式稱為主態(tài)方式。第4頁(yè),共23頁(yè),2023年,2月20日,星期三8.28237A的內(nèi)部結(jié)構(gòu)及引腳8-2-18237A的內(nèi)部結(jié)構(gòu)

8237A的內(nèi)部結(jié)構(gòu)如圖8-1所示,主要由時(shí)序與控制邏輯、優(yōu)先級(jí)編碼電路、數(shù)據(jù)和地址緩沖器組、命令控制邏輯和內(nèi)部寄存器等組成。第5頁(yè),共23頁(yè),2023年,2月20日,星期三8.28237A的內(nèi)部結(jié)構(gòu)及引腳圖8-18237A的內(nèi)部結(jié)構(gòu)圖

第6頁(yè),共23頁(yè),2023年,2月20日,星期三8.28237A的內(nèi)部結(jié)構(gòu)及引腳8-2-28237A的引腳

8237A采用雙列直插式,有40個(gè)引腳,其引腳排列如圖8-2所示。

第7頁(yè),共23頁(yè),2023年,2月20日,星期三8.38237A工作方式8.3.1單字節(jié)傳送方式在這種工作方式下,每進(jìn)行一次DMA操作,只傳送一個(gè)字節(jié)的數(shù)據(jù)。8237A每完成一個(gè)字節(jié)的傳送,計(jì)數(shù)器便自動(dòng)減1,地址寄存器的值加1或減1。接著,8237A釋放系統(tǒng)總線,把控制權(quán)交還給CPU。但是8237A在釋放總線后,會(huì)立即對(duì)DREQ端進(jìn)行測(cè)試,一旦DREQ有效,則8237A會(huì)立即發(fā)送總線請(qǐng)求,在獲得總線控制權(quán)后,又成為總線主模塊而進(jìn)行DMA傳送。

特點(diǎn):一次DMA傳送至傳送1個(gè)字節(jié)的數(shù)據(jù),占用1個(gè)總線周期,然后釋放系統(tǒng)總線。因此,這種方式又被稱為總線周期竊取方式。第8頁(yè),共23頁(yè),2023年,2月20日,星期三8.3.2塊傳送方式在這種工作方式下,一旦開(kāi)始傳送,就會(huì)一個(gè)字節(jié)一個(gè)字節(jié)的進(jìn)行下去,直到把整個(gè)數(shù)據(jù)塊全部傳送完畢,才交出系統(tǒng)總線控制權(quán)。

特點(diǎn):數(shù)據(jù)傳輸效率高,DREQ有效電平只要保持到DACK有效,就能傳送完整批數(shù)據(jù),但整個(gè)數(shù)據(jù)塊傳送期間,CPU失去總線控制權(quán),因而別的DMA請(qǐng)求也被禁止。第9頁(yè),共23頁(yè),2023年,2月20日,星期三8.3.3請(qǐng)求傳送方式這種工作方式每傳送一個(gè)字節(jié)后,8237A都對(duì)DREQ端進(jìn)行測(cè)試,詢問(wèn)其是否有效。如果檢測(cè)到DREQ端變?yōu)闊o(wú)效電平,則立刻“掛起”,停止DMA傳送,但并不釋放系統(tǒng)總線,測(cè)試過(guò)程仍然進(jìn)行。當(dāng)檢測(cè)到DREQ端變?yōu)橛行щ娖綍r(shí),就在原來(lái)的基礎(chǔ)上繼續(xù)進(jìn)行傳送。由于請(qǐng)求傳送方式在傳送完一個(gè)字節(jié)的數(shù)據(jù)之后就詢問(wèn)DREQ信號(hào)是否有效,故又稱詢問(wèn)傳送方式。特點(diǎn):DREQ信號(hào)一直有效時(shí),則連續(xù)傳送數(shù)據(jù),只有當(dāng)字節(jié)計(jì)數(shù)器由1減為FFFFH,或外部送來(lái)有效的信號(hào),或DREQ變?yōu)闊o(wú)效時(shí)才結(jié)束DMA傳送過(guò)程。第10頁(yè),共23頁(yè),2023年,2月20日,星期三8.3.4級(jí)聯(lián)傳送方式在這種方式下,可以把一片8237A(稱為主片)和幾片8237A(稱為從片)進(jìn)行級(jí)聯(lián),以便擴(kuò)充DMA通道。圖8-3所示為二級(jí)8237A級(jí)聯(lián)時(shí)的情況圖8-3二級(jí)8237A級(jí)聯(lián)第11頁(yè),共23頁(yè),2023年,2月20日,星期三8.48237A內(nèi)部寄存器功能及格式8237A的內(nèi)部可編程寄存器主要有10個(gè),如下表所示。名稱位數(shù)數(shù)量功能當(dāng)前地址寄存器164(每通道一個(gè))保存在DMA傳送期間的地址值,可讀寫當(dāng)前字節(jié)計(jì)數(shù)寄存器164(每通道一個(gè))寄存當(dāng)前字節(jié)數(shù),初始值比實(shí)際值少1,可讀寫基地址寄存器164(每通道一個(gè))寄存當(dāng)前地址寄存器的初始值,只能寫基字節(jié)數(shù)寄存器164(每通道一個(gè))保存相應(yīng)通道當(dāng)前字(節(jié))數(shù)的計(jì)數(shù)器的初值工作方式寄存器84(每通道一個(gè))寄存相應(yīng)通道的方式控制字,由編程寫入命令寄存器81(4個(gè)通道共用一個(gè))寄存CPU發(fā)送的控制命令狀態(tài)寄存器81(4個(gè)通道共用一個(gè))存放8237A各通道的現(xiàn)行狀態(tài)請(qǐng)求寄存器41(每通道1位)寄存各通道的DMA請(qǐng)求信號(hào)屏蔽寄存器41(每通道1位)用于選擇允許或禁止各通道的DMA請(qǐng)求信號(hào)暫存寄存器81(每通道1位)暫存?zhèn)鬏敂?shù)據(jù),僅用于存儲(chǔ)器到存儲(chǔ)器的傳輸?shù)?2頁(yè),共23頁(yè),2023年,2月20日,星期三8.58237A的編程及應(yīng)用8237A進(jìn)行初始化編程的步驟如下:(1)輸出主清除命令,使8237A處于復(fù)位狀態(tài),以接收新的命令;(2)寫入工作方式寄存器,以確定8237A工作方式和傳送類型;(3)寫入命令寄存器,以控制8237A的工作;(4)根據(jù)所選通道,輸入相應(yīng)通道當(dāng)前地址寄存器和基地址寄存器的初始值;(5)輸入當(dāng)前字節(jié)計(jì)數(shù)器和基字節(jié)寄存器的初始值;(6)寫入屏蔽寄存器;(7)寫入請(qǐng)求寄存器,便可由軟件DMA傳送。否則,經(jīng)過(guò)(1)~(6)步編程后,由通道DREQ啟動(dòng)DMA傳送過(guò)程。第13頁(yè),共23頁(yè),2023年,2月20日,星期三【例8.1】在某一個(gè)系統(tǒng)中,用一片8237A設(shè)計(jì)了DMA傳輸電路,8237A的基地址為00H。要求利用它的通道0,從外設(shè)(如磁盤)輸入一個(gè)1KB的數(shù)據(jù)塊,傳送到內(nèi)存中6000H開(kāi)始的區(qū)域中,每傳送一個(gè)字節(jié),地址增1,采用數(shù)據(jù)塊連續(xù)傳送方式,禁止自動(dòng)預(yù)置,外設(shè)的DMA請(qǐng)求信號(hào)DREQ和響應(yīng)信號(hào)DACK均為高電平有效。初始化8237A的程序如下:第14頁(yè),共23頁(yè),2023年,2月20日,星期三DMAEQU00H ;8237A的基地址為00H;輸出主清除命令OUTDMA+0DH,AL ;發(fā)總清除命令;將基地址6000H寫入通道0基地址和當(dāng)前地址寄存器,分兩次進(jìn)行MOVAX,6000H ;基地址和當(dāng)前地址寄存器OUTDMA+00H,AL ;先寫入低8位地址MOVAL,AHOUTDMA+00H,AL ;后寫入高8位地址;把要傳送的總字節(jié)數(shù)1K=400H減1后,送到基字計(jì)數(shù)器和當(dāng)前字計(jì)數(shù)器MOVAX,0400H ;總字節(jié)數(shù)DECAX ;總字節(jié)數(shù)減1OUTDMA+01H,AL ;先寫入字節(jié)數(shù)的低8位MOVAL,AHOUTDMA+01H,AL ;后寫入字節(jié)數(shù)的高8位第15頁(yè),共23頁(yè),2023年,2月20日,星期三;寫入方式字:數(shù)據(jù)塊傳送,地址增量,禁止自動(dòng)預(yù)置,寫傳送,選擇通道MOVAL,10000100B ;方式字OUTDMA+0BH,AL ;寫入方式字;寫入屏蔽字:通道0屏蔽位清0 MOVAL,00H ;屏蔽字OUTDMA+0AH,AL ;寫入8237A;寫入命令字:DACK和DREQ為高電平,固定優(yōu)先級(jí),非存儲(chǔ)器間傳送MOVAL,10000000B ;命令字OUTDMA+08H,AL ;寫入8237A;寫入請(qǐng)求字:通道0產(chǎn)生請(qǐng)求 MOVAL,04H ;請(qǐng)求字OUTDMA+09H,AL ;將請(qǐng)求字寫入8237A,用軟件啟動(dòng)8237A第16頁(yè),共23頁(yè),2023年,2月20日,星期三

3.8237A的應(yīng)用在PC/XT機(jī)中,用一片8237A-5構(gòu)成DMA控制電路形成4個(gè)DMA通道,提供數(shù)據(jù)寬度為8位的DMA傳輸。使用固定優(yōu)先級(jí),所以通道0的優(yōu)先級(jí)最高,通道3最低。這4個(gè)DMA通道的功能分配如下:通道0用于動(dòng)態(tài)RAM的刷新通道1為用戶保留通道2用于軟盤DMA傳送通道3用于硬盤DMA傳送第17頁(yè),共23頁(yè),2023年,2月20日,星期三在PC/XT機(jī)進(jìn)行軟盤或硬盤DMA傳輸時(shí),先要對(duì)8237A-5進(jìn)行編程。下面是ROMBIOS中的一段程序,名為DMA_SETUP,位于首地址為FEEC8H的內(nèi)存中。它被讀軟盤、寫軟盤和軟盤校驗(yàn)程序等調(diào)用,用來(lái)向8237A-5輸入所要讀寫數(shù)據(jù)的20位首地址和字計(jì)數(shù)器初始值。調(diào)用前要求的入口參數(shù)是:AL=DMA方式字(讀=46H,寫=4AH,校驗(yàn)=42H)。DH=要傳送的扇區(qū)個(gè)數(shù)。每個(gè)扇區(qū)的字節(jié)數(shù)基數(shù)為128,實(shí)際由磁盤驅(qū)動(dòng)器的規(guī)格而定,可能是128,256,512或1024個(gè),也就是說(shuō)可能是128的1,2,4,8倍,表示成2的N次方,N分別為0、1、2、3。N存放在磁盤基值區(qū)DISK_BASE的第03號(hào)單元中,可由它和DH中的扇區(qū)數(shù)計(jì)算出實(shí)際要傳送的總字節(jié)數(shù)。第18頁(yè),共23頁(yè),2023年,2月20日,星期三ES:BX=所讀寫數(shù)據(jù)的內(nèi)存首地址(段地址:偏移量)DMA_SETUPPROCNEAR PUSHCX;保護(hù)CX的值CLI;關(guān)中斷OUTDMA+0CH,AL;清除先/后觸發(fā)器PUSHAX ;延時(shí),滿足8237AI/O定時(shí)要求POPAXOUTDMA+0BH,AL ;將AL中的方式字寫入方式寄存器;計(jì)算20位物理地址,結(jié)果的最高4位放在CH中,低16位放入AXMOVAX,ES ;AX←段基地址MOVCL,4 ;循環(huán)次數(shù)ROLAX,CL ;AX循環(huán)左移4位MOVCH,AL ;AX的低8位暫存入CHANDAL,0F0H ;AX的最低4位清零第19頁(yè),共23頁(yè),2023年,2月20日,星期三ADDAX,BX ;加上偏移量,形成16位地址(A15~A0)JNCRLL ;無(wú)進(jìn)位,轉(zhuǎn)移INCCH ;有進(jìn)位,最高4位加1。至此形成了20位物理地址,低16位在 ;AX中,最高4位在CH的低4位中RLL:PUSHAX ;保存16位起始地址;將16位地址送到通道2基址和當(dāng)前地址寄存器中OUTDMA+4,AL ;先寫低字節(jié)MOVAL,AHOUTDMA+4,AL ;后寫高字節(jié);將最高4位地址預(yù)置到頁(yè)面寄存器中MOVAL,CH ;最高4位地址ANDAL,0FH ;截低4位OUT81H,AL ;置入頁(yè)面寄存器(通道2,軟盤DMA傳送)MOVAH,DH ;取傳輸?shù)纳葏^(qū)數(shù)送AHSUBAL,AL ;AL清零后,使AX=256×扇區(qū)數(shù)SHRAX,1 ;將AX內(nèi)容除以2后,AX=128×扇區(qū)數(shù);調(diào)用取軟盤參數(shù)子程序,要求入口參數(shù):BX=字節(jié)索引值(03號(hào)單元)×2PUSHAX ;保存AX的值MOVBX,6 ;BX=字節(jié)索引值×2CALLGET_PARM ;調(diào)用取參數(shù)子程序第20頁(yè),共23頁(yè),2023年,2月20日,星期三;調(diào)用后結(jié)果,AH=N,N可以是0,1,2或3,它表示所選軟盤每扇區(qū)的字節(jié)數(shù):0或;128,1為256,2為512,3為1024MOVCL,AH ;基數(shù)值N由AH送CLPOPAX ;彈出“128×

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論