版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
7.4DMA控制器
直接存儲器存?。―MA)是一種外設(shè)與存儲器之間直接傳輸數(shù)據(jù)的方法,適用于需要數(shù)據(jù)高速大量傳送的場合。DMA數(shù)據(jù)傳送利用DMA控制器進行控制,不需要CPU直接參與。Intel8237A是一種高性能的可編程DMA控制器芯片。在5MHz時鐘頻率下,其傳送速率可達1.6MB/s。每片8237A有4個獨立的DMA通道,即有4個DMA控制器(DMAC)。每個DMA通道具有不同的優(yōu)先權(quán),都可以允許和禁止。每個通道有4種工作方式,一次傳送的最大長度可達64KB。多片8237A可以級連,任意擴展通道數(shù)。7.4.18237A的內(nèi)部結(jié)構(gòu)和引腳
8237A要在DMA傳送期間作為系統(tǒng)的控制器件,所以,它的內(nèi)部結(jié)構(gòu)和外部引腳都相對比較復(fù)雜。從應(yīng)用角度看,內(nèi)部結(jié)構(gòu)主要由兩類寄存器組成。一類是通道寄存器,它們是現(xiàn)行地址寄存器、現(xiàn)行字節(jié)數(shù)寄存器和基地址寄存器、基字節(jié)數(shù)寄存器,這些寄存器都是16位的寄存器。另一類是控制和狀態(tài)寄存器,它們是方式寄存器(6位寄存器)、命令寄存器(8位)、狀態(tài)寄存器(8位)、屏蔽寄存器(4位)、請求寄存器(4位)、臨時寄存器(8位)。
需要說明的引腳:
DMA通道請求(DREQ0~DREQ3):每個通道對應(yīng)一個DREQ信號,用以接受外設(shè)的DMA請求。DMA通道響應(yīng)(DACK0~DACK3):每個通道對應(yīng)一個DACK信號,是8237A對外設(shè)DMA請求的響應(yīng)信號。
總線請求(HRQ):當外設(shè)的I/O接口要求DMA傳輸時,向8237A發(fā)送DMA請求DREQ,若允許該通道產(chǎn)生DMA請求,則8237A輸出有效的HRQ高電平,向CPU申請使用系統(tǒng)總線。
總線響應(yīng)(HLDA):當8237A向CPU發(fā)出總線請求信號后,至少再過一個時鐘周期,CPU才發(fā)出總線響應(yīng)信號HLDA,這樣,8237A可獲得總線的控制權(quán)。
低4位地址線(A0~A3):雙向地址線。當8237A為從器件時,A0~A3作為輸入信號,CPU可通過它們對8237A的內(nèi)部寄存器進行尋址,從而實現(xiàn)對8237A的編程;當8237A為主器件時,A0~A3作為輸出信號,輸出低4位地址。
數(shù)據(jù)線(DB0~DB7):雙向三態(tài)數(shù)據(jù)線。當8237A為從器件時,用于CPU與8237A進行數(shù)據(jù)交換;當8237A為主器件時,用于輸出現(xiàn)行地址寄存器的高8位地址。
地址選通(ADSTB):此信號有效時,把8237A現(xiàn)行地址寄存器中的高8位地址鎖存到DMA外部地址鎖存器。
地址允許(AEN):此信號有效時,將8237A的外部地址鎖存器中的高8位地址送到地址總線A15~A8上,與芯片直接輸出的低8位地址組成內(nèi)存單元的偏移地址。AEN在DMA傳送期間也可作為使其它處理器輸出的地址無效的控制信號。
存儲器讀():三態(tài)輸出信號,低電平有效。有效時,所選中的存儲單元的內(nèi)容被讀出并送到數(shù)據(jù)總線上。
存儲器寫():三態(tài)輸出信號,低電平有效。有效時,數(shù)據(jù)總線上的內(nèi)容被寫入選中的存儲單元。
輸入輸出讀():雙向三態(tài),低電平有效。當8237A為從器件時,作為8237A的輸入信號,此信號有效時,CPU讀取8237A內(nèi)部寄存器的值;當8237A為主器件時,作為8237A的輸出信號,此信號有效時,請求DMA的I/O接口部件中的數(shù)據(jù)被讀出并送往數(shù)據(jù)總線。
輸入輸出寫():雙向三態(tài),低電平有效。當8237A為從器件時,作為8237A的輸入信號,此信號有效時,CPU往8237A內(nèi)部寄存器寫入信息;當8237A為主器件時,作為8237A的輸出信號,此信號有效時,從指定存儲單元中讀出的數(shù)據(jù)被寫入I/O接口中。
過程結(jié)束():低電平有效,雙向信號,在DMA傳送時,當當前字節(jié)數(shù)寄存器的計數(shù)值從0減到FFFFH時(即內(nèi)部DMA過程結(jié)束),從引腳上輸出一個負脈沖。若由外部輸入信號,DMA傳送過程被強迫終止。不論是內(nèi)部還是外部產(chǎn)生信號,都會終止DMA數(shù)據(jù)傳送。
準備好(READY):高電平有效,輸入信號。在DMA傳送的第3個時鐘周期S3的下降沿檢測READY信號,若READY信號為低,則插入等待狀態(tài)SW,直到READY信號為高才進入第4個時鐘周期S4。
7.4.28237A的工作周期和時序1.空閑周期
當8237A的任一通道無DMA請求時就進入空閑周期,在空閑周期8237A始終處于SI狀態(tài),每個SI狀態(tài)都采樣通道的請求輸入線DREQ。此外,8237A在SI狀態(tài)還采樣片選信號,當為低電平,且4個通道均無DMA請求,則8237A進入編程狀態(tài),即CPU對8237A進行讀/寫操作。8237A在復(fù)位后處于空閑周期。2.有效周期
當8237A在SI狀態(tài)采樣到外設(shè)有DMA請求時,就脫離空閑周期進入有效周期,8237A作為系統(tǒng)的主器件時,控制DMA傳送操作。由于DMA傳送是借用系統(tǒng)總線完成的,所以,它的控制信號以及工作時序類似CPU總線周期。
8237A的DMA傳送時序
(1)當在SI脈沖的下降沿檢測到某一通道或幾個通道同時有DMA請求時,則在下一個周期就進入S0狀態(tài);而且在SI脈沖的上升沿,使總線請求信號HRQ有效。在S0狀態(tài)8237A等待CPU對總線請求的響應(yīng),只要未收到有效的總線請求應(yīng)答信號HLDA,8237A始終處于S0狀態(tài)。當在S0的上升沿采樣到有效的HLDA信號,則進入DMA傳送的S1狀態(tài)。(2)典型的DMA傳送由S1,S2,S3,S4四個狀態(tài)組成。在S1狀態(tài)使地址允許信號AEN有效。自S1狀態(tài)起,一方面把要訪問的存儲單元的高8位地址通過數(shù)據(jù)線DB0~DB7輸出,另一方面發(fā)出一個有效的地址選通信號ADSTB,利用ADSTB的下降沿把在數(shù)據(jù)線上的高8位地址鎖存至外部的地址鎖存器中,且在整個DMA傳送期間保持不變。同時,地址的低8位由地址線A0~A7輸出。(3)在S2狀態(tài),8237A向外設(shè)輸出DMA響應(yīng)信號DACK。在通常情況下,外設(shè)的請求信號DREQ必須保持到DACK有效。即自S2狀態(tài)開始使“讀寫控制”信號有效:●如果將數(shù)據(jù)從存儲器傳送到外設(shè),則8237A輸出有效信號,從指定的存儲單元讀出一個數(shù)據(jù)并送到系統(tǒng)數(shù)據(jù)總線上,同時8237A還輸出有效信號將系統(tǒng)數(shù)據(jù)總線的這個數(shù)據(jù)寫人請求DMA傳送的外設(shè)中。●如果將數(shù)據(jù)從外設(shè)傳送到存儲器,則8237A輸出有效信號,從請求DMA傳送的外設(shè)讀取一個數(shù)據(jù)并送到系統(tǒng)數(shù)據(jù)總線上,同時8237A還輸出有效信號將系統(tǒng)數(shù)據(jù)總線的這個數(shù)據(jù)寫人指定的存儲單元。由此可見,DMA傳送實現(xiàn)了外設(shè)與存儲器之間的直接數(shù)據(jù)傳送,傳送的數(shù)據(jù)不進人8237A內(nèi)部,也不進人CPU。
(4)在8237A輸出信號的控制下,利用S3和S4狀態(tài)完成數(shù)據(jù)傳送。若存儲器和外設(shè)不能在S4狀態(tài)前完成數(shù)據(jù)的傳送,則只要設(shè)法使READY信號變低,就可以在S3和S4狀態(tài)間插入SW等待狀態(tài)。在此狀態(tài),所有控制信號維持不變,從而加寬DMA傳送的周期。(5)在數(shù)據(jù)塊傳送方式下,S4后面應(yīng)接著傳送下一個字節(jié)。因為DMA傳送的存儲器區(qū)域是連續(xù)的,通常情況下地址的高8位不變,只是低8位增量或減量。所以,輸出和鎖存高8位地址的S1狀態(tài)不需要了,直接進人S2狀態(tài),由輸出低8位地址開始,在讀寫信號的控制下完成數(shù)據(jù)傳送。這種過程一直繼續(xù)到把規(guī)定的數(shù)據(jù)個數(shù)傳送完。此時,一個DMA傳送過程結(jié)束,8237A又進入空閑周期,等待新的請求。
7.4.38237A的工作方式和傳送類型1.8237A工作方式(1)單字節(jié)傳送方式
單字節(jié)傳送方式是8237A每傳送一個字節(jié)之后就釋放總線。傳送一個字節(jié)之后,字節(jié)計數(shù)器減1,地址寄存器加1或減1,HRQ變?yōu)闊o效。這樣,8237A釋放系統(tǒng)總線,將控制權(quán)還給CPU。當字節(jié)計數(shù)器從0減到FFFFH,產(chǎn)生終止計數(shù)信號,使變?yōu)榈碗娖?,從而結(jié)束DMA傳輸。單字節(jié)傳送方式的優(yōu)點是保證在二次DMA操作之間CPU有機會獲得至少一個總線周期的總線控制權(quán),達到CPU與DMA控制器并行工作的狀態(tài)。
(2)數(shù)據(jù)塊傳送方式
在這種方式下,8237A由DREQ啟動,連續(xù)傳送數(shù)據(jù),當字節(jié)計數(shù)器從0減到FFFFH,產(chǎn)生終止計數(shù)信號,使變?yōu)榈碗娖?,或者由外部輸人有效的信號,終止DMA傳送。在數(shù)據(jù)塊傳送方式中,要求DREQ保持到DACK變?yōu)橛行r即可,且一次DMA操作最多傳送64KB。數(shù)據(jù)塊傳送方式的特點是:一次請求傳送一個數(shù)據(jù)塊,效率高;但在整個DMA傳送期間,CPU無法控制總線。(3)請求傳送方式
與數(shù)據(jù)塊傳送方式類似。但當DREQ信號變?yōu)闊o效時,則暫停DMA傳送;當DREQ再次變?yōu)橛行r,DMA傳送繼續(xù)進行,直至字節(jié)計數(shù)器從0減到FFFFH,或由外部送來一個有效信號。
(4)級連方式8237A可以多級級聯(lián),擴展DMA通道。第二級的HRQ和HLDA信號連到第一級某個通道的DREQ和DACK上,第二級芯片的優(yōu)先權(quán)與所連接的通道相對應(yīng)。2.DMA傳送類型(1)讀傳輸:是指從指定的存儲器單元讀出數(shù)據(jù)寫入到相應(yīng)的I/O設(shè)備。DMA控制器發(fā)出和信號。(2)寫傳輸:是指從I/O設(shè)備讀出數(shù)據(jù)寫入到指定的存儲器單元。DMA控制器發(fā)出和信號。(3)DMA傳送:是一種偽傳送操作,用于校驗8237A的內(nèi)部功能。它和讀傳輸和寫傳輸一樣產(chǎn)生存儲器地址和時序信號,但存儲器和I/O的讀寫控制信號無效。
(4)存儲器到存儲器的傳送:使用此方式8237A可實現(xiàn)存儲器內(nèi)部不同區(qū)域之間的傳輸。這種傳送類型僅適用于通道0和通道1,此時通道0的地址寄存器存源數(shù)據(jù)區(qū)地址,通道1的地址寄存器存目的數(shù)據(jù)區(qū)地址,通道1的字節(jié)數(shù)計數(shù)器存?zhèn)魉偷淖止?jié)數(shù)。傳送由設(shè)置通道0的DMA請求(設(shè)置請求寄存器)啟動,8237A按正常方式向CPU發(fā)出HRQ請求信號,待HLDA響應(yīng)后傳送就開始。每傳送一個字節(jié)需用8個狀態(tài),前4個狀態(tài)用于從源存儲器中讀取數(shù)據(jù)并存放于8237A中的數(shù)據(jù)暫存器,后4個狀態(tài)用于將數(shù)據(jù)暫存器的內(nèi)容寫入目的存儲器中。7.4.48237A的寄存器A3A2A1A0讀操作寫操作0000通道0現(xiàn)行地址寄存器通道0地址寄存器0001通道0現(xiàn)行字節(jié)數(shù)寄存器通道0字節(jié)數(shù)寄存器0010通道1現(xiàn)行地址寄存器通道1地址寄存器0011通道1現(xiàn)行字節(jié)數(shù)寄存器通道1字節(jié)數(shù)寄存器0100通道2現(xiàn)行地址寄存器通道2地址寄存器0101通道2現(xiàn)行字節(jié)數(shù)寄存器通道2字節(jié)數(shù)寄存器0110通道3現(xiàn)行地址寄存器通道3地址寄存器0111通道3現(xiàn)行字節(jié)數(shù)寄存器通道3字節(jié)數(shù)寄存器1000狀態(tài)寄存器命令寄存器1001-請求寄存器1010-單通道屏蔽字1011-方式寄存器1100-清先/后觸發(fā)器命令1101暫存器復(fù)位命令1110-清屏蔽寄存器命令1111-綜合屏蔽字1.基地址寄存器用于保存DMA傳送的起始地址,不能被CPU讀出。2.現(xiàn)行地址寄存器
保存DMA傳送的當前地址,每次傳送后這個寄存器的值自動加1或減1。這個寄存器的值可由CPU寫入和讀出。其初值就是基地址寄存器內(nèi)容。3.基字節(jié)數(shù)寄存器
用于保存每次DMA操作需要傳送數(shù)據(jù)的字節(jié)總數(shù),不能被CPU讀出。4.現(xiàn)行字節(jié)數(shù)寄存器
保存DMA還需傳送的字節(jié)數(shù),每次傳送后減1。這個寄存器的值可由CPU寫入和讀出。當這個寄存器的值從0減到FFFFH時,產(chǎn)生終止計數(shù)信號,使變?yōu)榈碗娖健?.方式寄存器
存放相應(yīng)通道的方式控制字,用于設(shè)置某個DMA通道的工作方式。
若8237A被設(shè)置為允許自動預(yù)置功能,則當DMA傳送結(jié)束有效時,現(xiàn)行地址寄存器和現(xiàn)行字節(jié)數(shù)寄存器會從基地址寄存器和基字節(jié)數(shù)寄存器中重新取得初值,從而又可以進入下一個數(shù)據(jù)傳輸過程。5.命令寄存器存放8237A的命令字,用于設(shè)置8237A的操作方式。
當D0=1時選擇存儲器到存儲器的傳送方式,此時,通道0的地址寄存器存放源地址,通道1的地址寄存器和字節(jié)計數(shù)器存放目的地址和計數(shù)值。若D1也為“1”,則整個存儲器到存儲器的傳送過程始終保持同一個源地址,以便實現(xiàn)將一個目的存儲區(qū)域設(shè)置為同一個值。D3:決定是壓縮時序還是普通時序。8237A工作于壓縮時序時,進行一次DMA傳輸需2個時鐘周期,而工作于普通時序時,進行一次DMA傳輸需3個時鐘周期。D4:決定4個通道的優(yōu)先級方式。一種是固定優(yōu)先級方式,即通道0的優(yōu)先級最高,通道3的優(yōu)先級最低。另一種是循環(huán)優(yōu)先級方式,即某通道進行一次傳輸以后,其優(yōu)先級降為最低。
D5:決定是否擴展寫信號。關(guān)于擴展寫信號說明如下:如果外部設(shè)備的速度較慢,必須用普通時序工作,若普通時序仍不能滿足要求,就要在硬件上通過READY信號使8237A插入SW狀態(tài)。有些設(shè)備是用8237A送出的或信號的下降沿產(chǎn)生READY信號響應(yīng)的,而這兩個信號是在S4狀態(tài)才送出的。為使READY信號早點到來,將這兩個信號擴展到S3狀態(tài)開始有效。7.請求寄存器除可利用硬件提出DMA請求外,還可通過軟件發(fā)出DMA請求。8.屏蔽寄存器用于控制每個通道的DMA請求是否有效。對屏蔽寄存器的寫入有2種方法:(1)單通道屏蔽字,實現(xiàn)對某一通道DMA屏蔽標志的設(shè)置。(2)綜合屏蔽字,實現(xiàn)對4個通道DMA屏蔽標志的設(shè)置。
9.狀態(tài)寄存器
狀態(tài)寄存器的各位分別表示各通道是否有DMA請求及是否終止計數(shù)。10.暫存器
在存儲器到存儲器的傳送方式下,暫存器用于保存從源存儲單元讀出的數(shù)據(jù)。
7.4.58237A的軟件命令1.復(fù)位命令復(fù)位命令也叫綜合清除命令,它的功能和RESET信號相同。復(fù)位命令使命令寄存器、狀態(tài)寄存器、請求寄存器、暫存器以及先/后觸發(fā)器清0,而使屏蔽寄存器置位。2.清除先/后觸發(fā)器命令先/后觸發(fā)器是用來控制DMA通道中地址寄存器和字節(jié)計數(shù)器的初值設(shè)置的。由于8237A只有8位數(shù)據(jù)線,所以,一次只能傳輸一個字節(jié)。而地址寄存器和字節(jié)計數(shù)器都是16位的,這些寄存器都要通過2次傳輸才能完成初值設(shè)置。為了保證能正確設(shè)置16位初值,應(yīng)先發(fā)出清除先/后觸發(fā)器命令,寫入低8位數(shù)據(jù)后,先/后觸發(fā)器自動置1,寫入高8位數(shù)據(jù)后,先/后觸發(fā)器自動復(fù)位為0。3.清除屏蔽寄存器命令使4個屏蔽位都清0,即4個通道的DMA請求都被允許。7.4.68237A的應(yīng)用1.8237A在IBMPC/XT上的應(yīng)用
IBMPC/XT機使用一片8237A。通道0用來對動態(tài)存儲器刷新;通道2和通道3分別用于軟盤和硬盤驅(qū)動器與內(nèi)存之間的數(shù)據(jù)傳輸;通道1用作同步數(shù)據(jù)鏈路通信(SDLC)卡與存儲器之間的數(shù)據(jù)傳輸,若系統(tǒng)不使用該通信卡,則可供用戶使用。
根據(jù)系統(tǒng)板I/O譯碼電路所產(chǎn)生的DMA片選信號,DMAC的端口地址范圍是00H~1FH,DMAC的A3~A0腳同系統(tǒng)地址線A3~A0相連,A4未參加譯碼,取A4=0時的地址00~0FH為DMAC的端口地址。8237A只提供16位地址,系統(tǒng)的高4位地址由附加邏輯電路(頁面寄存器)提供,以形成整個微機系統(tǒng)需要的所有存儲器地址。系統(tǒng)分配給頁面寄存器的端口地址為80H~83H。
【例題7.3】在PC/XT機中,利用8237A通道0輸出存儲器地址進行DRAM的刷新操作,其DMA傳送程序如下:;;;MOVAL,0OUT0DH,AL ;復(fù)位命令MOVAL,0 ;命令字:固定優(yōu)先權(quán),DREQ高有效、DACK低有效、OUT08H,AL;滯后寫、正常時序MOVAL,0OUT00H,AL ;寫入通道0的地址寄存器低字節(jié)OUT00H,AL ;寫入通道0的地址寄存器高字節(jié)MOVAL,0FFHOUT01H,AL ;寫入通道0的字節(jié)數(shù)寄存器低字節(jié)OUT01H,AL ;寫入通道0的字節(jié)
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024幼兒園教師職務(wù)晉升與職稱評定合同樣本3篇
- 二零二五年度勞動合同管理軟件定制開發(fā)合同
- 2024年男女同居期間分手后的共同投資項目終止合同3篇
- 2024年石粉購銷合同協(xié)議規(guī)定條款
- 二零二五年度PVC改性材料研發(fā)與市場推廣合同
- 2025版知識產(chǎn)權(quán)抵押租賃許可使用合同3篇
- 2024年終止婚姻協(xié)議
- 2024版婚內(nèi)隱私保護協(xié)議2篇
- 大學(xué)臨床機能學(xué)
- 2024版國內(nèi)高等教育機構(gòu)合作辦學(xué)協(xié)議模板版B版
- 公交車站臺服務(wù)規(guī)范與安全意識
- 中國普通食物營養(yǎng)成分表(修正版)
- 駕駛證學(xué)法減分(學(xué)法免分)試題和答案(50題完整版)1650
- 期末測試卷(試題)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 【人民日報】72則金句期末評語模板-每頁4張
- (正式版)JTT 1497-2024 公路橋梁塔柱施工平臺及通道安全技術(shù)要求
- 新錄用公務(wù)員服務(wù)協(xié)議書
- OQC崗位職責(zé)(完整版)
- 工藝事故事件管理規(guī)定
- 電氣控制與PLC復(fù)習(xí)課件
- 急診分娩服務(wù)流程
評論
0/150
提交評論