大二下微機匯編第5章_第1頁
大二下微機匯編第5章_第2頁
大二下微機匯編第5章_第3頁
大二下微機匯編第5章_第4頁
大二下微機匯編第5章_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第5章章-6 DMA控制接口控制接口教學重點:n 8237A的芯片結(jié)構(gòu)和工作方式n 8237A寄存器組的作用n 8237A的編程與應(yīng)用5.1 DMA方式的數(shù)據(jù)傳輸1.直接存儲器存取直接存儲器存取DMA (Direct Memory Access)傳送方式通常用來高速傳送大批量的數(shù)據(jù)塊:傳送方式通常用來高速傳送大批量的數(shù)據(jù)塊:n硬盤和軟盤硬盤和軟盤I/O;n 快速通信通道快速通信通道I/O;n多處理機和多程序數(shù)據(jù)塊傳送;多處理機和多程序數(shù)據(jù)塊傳送;n在圖像處理中,對在圖像處理中,對CRT屏幕送數(shù)據(jù);屏幕送數(shù)據(jù);n快速數(shù)據(jù)采集;快速數(shù)據(jù)采集;n DRAM的刷新操作。的刷新操作。5.1 DMA方式

2、的數(shù)據(jù)傳輸(續(xù))2. 存儲器和外設(shè)間直接開辟的高速數(shù)據(jù)傳輸通路,存儲器和外設(shè)間直接開辟的高速數(shù)據(jù)傳輸通路,不不需要需要CPU的參與的參與,數(shù)據(jù)傳輸速度達到最快;,數(shù)據(jù)傳輸速度達到最快;3. 數(shù)據(jù)的傳輸過程完全由數(shù)據(jù)的傳輸過程完全由硬件控制硬件控制,稱為,稱為DMA控制控制 器,簡稱為器,簡稱為DMAC,其功能主要有:,其功能主要有:n向向CPU申請申請DMA傳送;傳送;n在在CPU允許允許DMA工作時,處理總線控制權(quán)的轉(zhuǎn)交;工作時,處理總線控制權(quán)的轉(zhuǎn)交;n在在DMA期間期間管理系統(tǒng)總線管理系統(tǒng)總線、控制數(shù)據(jù)傳送;、控制數(shù)據(jù)傳送;n確定數(shù)據(jù)傳送的確定數(shù)據(jù)傳送的起始地址起始地址和和數(shù)據(jù)長度數(shù)據(jù)長度

3、,修正傳送過程中,修正傳送過程中的數(shù)據(jù)地址;的數(shù)據(jù)地址;n數(shù)據(jù)傳送完畢,給出數(shù)據(jù)傳送完畢,給出DMA操作完成的信號。操作完成的信號。5.2 DMA控制器8237An每個每個8237A芯片有芯片有4個個DMA通道;通道;n每個每個DMA通道具有通道具有不同的優(yōu)先權(quán)不同的優(yōu)先權(quán);n每個每個DMA通道可以分別通道可以分別允許和禁止允許和禁止;n每個每個DMA通道有通道有4種種工作方式;工作方式;n一次傳送的最大長度可達一次傳送的最大長度可達64KB;n多個多個8237A芯片可以級聯(lián),擴展通道數(shù)。芯片可以級聯(lián),擴展通道數(shù)。5.2.1 8237A的引腳和內(nèi)部結(jié)構(gòu)n外部引腳和內(nèi)部結(jié)構(gòu)相對都比較復雜;外部引

4、腳和內(nèi)部結(jié)構(gòu)相對都比較復雜;n應(yīng)用觀點:內(nèi)部主要由兩類寄存器組成應(yīng)用觀點:內(nèi)部主要由兩類寄存器組成n通道寄存器通道寄存器n控制和狀態(tài)寄存器控制和狀態(tài)寄存器首先分類展開外部引腳首先分類展開外部引腳8237A的引腳1. 請求與響應(yīng)信號nDREQ0DREQ3:DMA通道請求通道請求。當外設(shè)需。當外設(shè)需要請求要請求DMA服務(wù)時,將服務(wù)時,將DREQ信號置成有效電信號置成有效電平,并要保持到產(chǎn)生響應(yīng)信號。平,并要保持到產(chǎn)生響應(yīng)信號。nHRQ:總線請求總線請求。8237A輸出有效的輸出有效的HRQ高電高電平,向平,向CPU申請使用系統(tǒng)總線。申請使用系統(tǒng)總線。nHLDA:總線響應(yīng)總線響應(yīng)。8237A接受來自

5、接受來自CPU的響應(yīng)的響應(yīng)信號信號HLDA,取得了總線的控制權(quán)。,取得了總線的控制權(quán)。nDACK0DACK3:DMA通道響應(yīng)通道響應(yīng)。8237A使使請求服務(wù)的通道產(chǎn)生相應(yīng)的請求服務(wù)的通道產(chǎn)生相應(yīng)的DMA響應(yīng)信號。響應(yīng)信號。8237A的引腳2. 傳送控制信號nA0A7:地址線地址線。輸出低。輸出低8位存儲器地址。位存儲器地址。nDB0DB7:數(shù)據(jù)線數(shù)據(jù)線。輸出高。輸出高8位存儲器地址;位存儲器地址;存貯器與存貯器的傳送期間,用于數(shù)據(jù)傳送。存貯器與存貯器的傳送期間,用于數(shù)據(jù)傳送。nADSTB:地址選通地址選通。DMA傳送開始時,輸出高傳送開始時,輸出高有效,把在有效,把在DB0DB7上輸出的高上輸

6、出的高8位地址鎖存位地址鎖存在外部鎖存器中。在外部鎖存器中。nAEN:地址允許地址允許。輸出高有效,在。輸出高有效,在DMA傳送期傳送期間,該信號有效時,禁止與間,該信號有效時,禁止與CPU連接的地址鎖連接的地址鎖存器使用系統(tǒng)總線,同時將鎖存的高存器使用系統(tǒng)總線,同時將鎖存的高8位地址送位地址送入系統(tǒng)總線,與芯片此時輸出的低入系統(tǒng)總線,與芯片此時輸出的低8位地址組成位地址組成16位存儲器地址。位存儲器地址。2. 傳送控制信號(續(xù))nMEMR*:存儲器讀。有效將數(shù)據(jù)從存儲器讀出:存儲器讀。有效將數(shù)據(jù)從存儲器讀出nMEMW*:存儲器寫。有效將數(shù)據(jù)寫入存儲器:存儲器寫。有效將數(shù)據(jù)寫入存儲器nIOR*

7、:I/O讀。有效將數(shù)據(jù)從外設(shè)讀出讀。有效將數(shù)據(jù)從外設(shè)讀出nIOW*:I/O寫。有效將數(shù)據(jù)寫入外設(shè)寫。有效將數(shù)據(jù)寫入外設(shè)nREADY:準備好。:準備好。DMA傳送的傳送的S3下降沿檢測下降沿檢測到為低時,插入等待狀態(tài)到為低時,插入等待狀態(tài)Sw,直到,直到READY為為高才進入第高才進入第4個時鐘周期個時鐘周期S4。nEOP*:過程結(jié)束。:過程結(jié)束。DMA傳送過程結(jié)束,輸出傳送過程結(jié)束,輸出一個低有效脈沖。外部輸入低脈沖信號,則終一個低有效脈沖。外部輸入低脈沖信號,則終結(jié)結(jié)DMA傳送。傳送。 8237A的引腳3. 處理器接口信號nDB0DB7:數(shù)據(jù)線。用于:數(shù)據(jù)線。用于8237A與微處理器與微處理

8、器進行數(shù)據(jù)交換。進行數(shù)據(jù)交換。nA0A3:地址線。用以選擇芯片內(nèi)部寄存器。:地址線。用以選擇芯片內(nèi)部寄存器。nCS*:片選。低有效時,微處理器與:片選。低有效時,微處理器與8237A通通過數(shù)據(jù)線通信,主要完成對過數(shù)據(jù)線通信,主要完成對8237A的編程。的編程。nIOR*:I/O讀。讀取讀。讀取8237A內(nèi)部寄存器。內(nèi)部寄存器。nIOW*:I/O寫。寫入寫。寫入8237A內(nèi)部寄存器。內(nèi)部寄存器。nCLK:時鐘。控制芯片內(nèi)部操作和數(shù)據(jù)傳輸。:時鐘。控制芯片內(nèi)部操作和數(shù)據(jù)傳輸。nRESET:復位。使:復位。使8237A處于初始狀態(tài)。處于初始狀態(tài)。8237A的兩種工作狀態(tài)n8237A具有兩種工作狀態(tài)具

9、有兩種工作狀態(tài)n空閑周期空閑周期:作為接口電路,受作為接口電路,受CPU控制的工作狀態(tài)控制的工作狀態(tài)n有效周期有效周期:作為作為DMAC控制控制DMA傳送的工作狀態(tài)傳送的工作狀態(tài) 于是,引腳分成兩種作用于是,引腳分成兩種作用8237A引腳的兩種作用與與CPU連接連接(空閑周期)的引腳(空閑周期)的引腳與外設(shè)連接與外設(shè)連接(有效周期)的引腳(有效周期)的引腳CLK、RESETA0A3、CS*、DB0DB7IOR*、IOW*HRQ、HLDAAEN、ADSTB、READY、EOP*A0A7、DB0DB7IOR*、IOW*、MEMR*、MEMW*DREQ0DREQ3、DACK0DACK38237A的內(nèi)

10、部結(jié)構(gòu)n定時和控制單元定時和控制單元 產(chǎn)生產(chǎn)生8237A內(nèi)部定時與外部控制命令;內(nèi)部定時與外部控制命令;n命令控制單元命令控制單元 在空閑周期里對在空閑周期里對CPU在編程時送來的命在編程時送來的命令時行譯碼;令時行譯碼;n優(yōu)先權(quán)控制單元優(yōu)先權(quán)控制單元 決定各通道的優(yōu)先權(quán)次序。決定各通道的優(yōu)先權(quán)次序。8237A的內(nèi)部結(jié)構(gòu)8237A的寄存器全部都用地址全部都用地址A0A3區(qū)分區(qū)分8237A的寄存器尋址1. 當前地址寄存器n每個通道均有;每個通道均有;n保持保持DMA傳送的當前地址值;傳送的當前地址值;n每次傳送后該寄存器的值自動加每次傳送后該寄存器的值自動加1或減或減1;n這個寄存器的值可由這個

11、寄存器的值可由CPU寫入和讀出寫入和讀出?;刂芳拇嫫骰刂芳拇嫫鞔娣糯娣懦跏贾党跏贾?. 當前字節(jié)數(shù)寄存器n每個通道均有;每個通道均有;n保持保持DMA傳送的剩余字節(jié)數(shù);傳送的剩余字節(jié)數(shù);n每次傳送后,該寄存器的值減每次傳送后,該寄存器的值減1;n這個寄存器的值可由這個寄存器的值可由CPU寫入和讀出;寫入和讀出;n該寄存器的值減至該寄存器的值減至0,再減,再減1(從(從0減到減到FFFFH)時,終止計數(shù)。)時,終止計數(shù)?;止?jié)數(shù)寄存器基字節(jié)數(shù)寄存器存放存放初始值初始值傳送傳送N個字節(jié),個字節(jié),初始值初始值為為N1讀寫通道寄存器nCPU與與8237A之間通過之間通過8位數(shù)據(jù)總線交換位數(shù)據(jù)總線交

12、換信息,信息,8237A的通道寄存器均為的通道寄存器均為16位;位;n需要兩次讀寫操作才能實現(xiàn)需要兩次讀寫操作才能實現(xiàn)CPU與與8237A之間的一個完整數(shù)據(jù)的交換;之間的一個完整數(shù)據(jù)的交換;n8237A內(nèi)含一個內(nèi)含一個高高/低觸發(fā)器低觸發(fā)器,用來控制,用來控制讀寫通道寄存器的高、低字節(jié)。讀寫通道寄存器的高、低字節(jié)。高/低觸發(fā)器n該觸發(fā)器為該觸發(fā)器為0,控制讀寫低字節(jié);,控制讀寫低字節(jié);n該觸發(fā)器為該觸發(fā)器為1,控制讀寫高字節(jié);,控制讀寫高字節(jié);n軟、硬件復位后,觸發(fā)器為軟、硬件復位后,觸發(fā)器為0;n每次讀寫通道寄存器,自動改變觸發(fā)器狀每次讀寫通道寄存器,自動改變觸發(fā)器狀態(tài)。如果對態(tài)。如果對16

13、位寄存器的操作用兩次連續(xù)位寄存器的操作用兩次連續(xù)讀寫進行,就不必清除這個觸發(fā)器;讀寫進行,就不必清除這個觸發(fā)器;n清除高清除高/低觸發(fā)器低觸發(fā)器軟件命令軟件命令(A3A2A1A01100)將使高)將使高/低觸發(fā)器清零。低觸發(fā)器清零。3個軟件命令1. 清除高清除高/低觸發(fā)器軟件命令低觸發(fā)器軟件命令nA3A2A1A01100,使高,使高/低觸發(fā)器清零低觸發(fā)器清零n如:如:MOV AL, 0XXH ;0XXH為為AL中任意值中任意值 OUT 0CH, AL2. 主清除命令主清除命令nA3A2A1A01101,使高,使高/低觸發(fā)器清零低觸發(fā)器清零n還使命令、狀態(tài)、請求、臨時寄存器清零還使命令、狀態(tài)、請

14、求、臨時寄存器清零n使屏蔽寄存器置為全使屏蔽寄存器置為全1(禁止(禁止DMA請求)請求)n主清除命令與硬件的主清除命令與硬件的RESET信號具有相同的功能信號具有相同的功能3. 清屏蔽寄存器命令清屏蔽寄存器命令nA3A2A1A01110,使,使4個屏蔽位都清零(允許個屏蔽位都清零(允許DMA請求)請求)3. 工作方式寄存器n每個通道均有;每個通道均有;n存放相應(yīng)通道的方式控制字;存放相應(yīng)通道的方式控制字;n選擇某個選擇某個DMA通道的工作方式;通道的工作方式;n其中用最低其中用最低2位選擇哪個位選擇哪個DMA通道。通道。請看請看方式字方式字的格式的格式方式字格式D7 D6D5D4D3 D2D1

15、 D000 請求模式請求模式01 單字節(jié)模式單字節(jié)模式10 數(shù)據(jù)塊模式數(shù)據(jù)塊模式11 級聯(lián)模式級聯(lián)模式0 地址增量(加地址增量(加1)1 地址減量(減地址減量(減1)0 禁止自動初始化禁止自動初始化1 允許自動初始化允許自動初始化00DMA校驗校驗01DMA寫寫10DMA讀讀11非法非法 若若D7D61100 通道通道001 通道通道110 通道通道211 通道通道34. 命令寄存器n四個通道共有;四個通道共有;n存放存放8237A的命令字;的命令字;n設(shè)置設(shè)置8237A芯片的操作方式;芯片的操作方式;n復位時使命令寄存器清零;復位時使命令寄存器清零;n設(shè)置設(shè)置D21才使才使8237A可以作為

16、可以作為DMA控制器??刂破?。請看請看命令字命令字的格式的格式命令字格式D7D6D5D4D3D2D1D00 DACK低有效低有效1 DACK高有效高有效0 DREQ高有效高有效1 DREQ低有效低有效0 滯后寫滯后寫1 擴展寫擴展寫 若若D310 固定優(yōu)先權(quán)固定優(yōu)先權(quán)1 循環(huán)優(yōu)先權(quán)循環(huán)優(yōu)先權(quán)0 正常時序正常時序1 壓縮時序壓縮時序 若若D010 允許允許DMAC工作工作1 禁止禁止DMAC工作工作0 允許通道允許通道0地址改變地址改變1 禁止通道禁止通道0地址改變地址改變 若若D000 禁止存儲器之間傳送禁止存儲器之間傳送1 允許存儲器之間傳送允許存儲器之間傳送5. 請求寄存器n存放軟件存放軟

17、件DMA請求狀態(tài);請求狀態(tài);n除硬件除硬件DMA請求外,當工作在數(shù)據(jù)塊傳請求外,當工作在數(shù)據(jù)塊傳送方式時也可以通過軟件發(fā)出送方式時也可以通過軟件發(fā)出DMA請求;請求;n若是存貯器到存貯器傳送,則必須由軟件若是存貯器到存貯器傳送,則必須由軟件請求啟動通道請求啟動通道0。請看請看請求字請求字的格式的格式請求字格式D7 D6 D5 D4 D3D2D1 D0任意任意0 復位復位1 置位置位00 通道通道001 通道通道110 通道通道211 通道通道36. 屏蔽寄存器n控制外設(shè)硬件控制外設(shè)硬件DMA請求是否被響應(yīng)(為請求是否被響應(yīng)(為0允允許),各個通道互相獨立。許),各個通道互相獨立。3種方法:種方

18、法:n單通道屏蔽字只對一個單通道屏蔽字只對一個DMA通道屏蔽位進行設(shè)置通道屏蔽位進行設(shè)置n主屏蔽字對主屏蔽字對4個個DMA通道屏蔽位同時進行設(shè)置通道屏蔽位同時進行設(shè)置n清屏蔽寄存器命令使清屏蔽寄存器命令使4個屏蔽位都清零(允許)個屏蔽位都清零(允許)n復位使復位使4個通道全置于屏蔽狀態(tài)個通道全置于屏蔽狀態(tài)n當一個通道的當一個通道的DMA過程結(jié)束,如果不是工作在過程結(jié)束,如果不是工作在自動初始化方式,則這一通道的屏蔽位置位,自動初始化方式,則這一通道的屏蔽位置位,必須再次編程為允許,才能進行下次必須再次編程為允許,才能進行下次DMA傳送傳送請看請看屏蔽字屏蔽字的格式的格式單通道屏蔽字格式D7 D

19、6 D5 D4 D3D2D1 D0任意任意0 清屏蔽位清屏蔽位1 置屏蔽位置屏蔽位00 通道通道001 通道通道110 通道通道211 通道通道3主屏蔽字格式D7 D6 D5 D4D3D2D1D0任意任意Di0 清通道清通道I屏蔽位屏蔽位Di1 置通道置通道I屏蔽位屏蔽位7. 狀態(tài)寄存器n可由可由CPU讀取讀取n低低4位反映讀命令這個瞬間每個通道是否位反映讀命令這個瞬間每個通道是否產(chǎn)生計數(shù)終點產(chǎn)生計數(shù)終點TC(為(為1,表示該通道傳,表示該通道傳送結(jié)束)送結(jié)束)n高高4位反映每個通道的位反映每個通道的DMA請求情況請求情況(為(為1,表示該通道有請求),表示該通道有請求)n狀態(tài)位在復位或被讀出

20、后,均被清零狀態(tài)位在復位或被讀出后,均被清零8. 暫存寄存器n在存儲器到存儲器的傳送方式下,該寄在存儲器到存儲器的傳送方式下,該寄存器保存從源存儲單元讀出的數(shù)據(jù),該存器保存從源存儲單元讀出的數(shù)據(jù),該數(shù)據(jù)又被寫入到目的存儲單元數(shù)據(jù)又被寫入到目的存儲單元n傳送完成,該寄存器只會保留最后一個傳送完成,該寄存器只會保留最后一個字節(jié),可由字節(jié),可由CPU讀出讀出n復位使臨時寄存器內(nèi)容為零復位使臨時寄存器內(nèi)容為零5.2.2 8237A的工作時序空閑周期n8237A的任一通道都沒有的任一通道都沒有DMA請求時請求時n8237A由微處理器控制作為一個接口芯片由微處理器控制作為一個接口芯片nCPU可對可對823

21、7A編程,或從編程,或從8237A讀取狀態(tài)讀取狀態(tài)n8237A采樣采樣CS*選片信號,該信號有效,選片信號,該信號有效,CPU就要對就要對8237A進行讀進行讀/寫操作寫操作n8237A還采樣通道的請求輸入信號還采樣通道的請求輸入信號DREQ,該,該信號有效,就進入有效周期信號有效,就進入有效周期進入有效周期進入有效周期5.2.2 8237A的工作時序有效周期n8237A采樣到外設(shè)有采樣到外設(shè)有DMA請求,就脫離請求,就脫離空閑周期進入有效周期空閑周期進入有效周期n8237A作為系統(tǒng)的主控芯片,控制作為系統(tǒng)的主控芯片,控制DMA傳送操作傳送操作nDMA傳送借用系統(tǒng)總線完成,其控制傳送借用系統(tǒng)總

22、線完成,其控制信號以及工作時序類似信號以及工作時序類似CPU總線周期總線周期進入進入DMADMA傳送時序傳送時序nSI狀態(tài)狀態(tài)空閑狀態(tài)空閑狀態(tài)nS0狀態(tài)狀態(tài)等待等待CPU給出給出HLDA信號信號nS1狀 態(tài)狀 態(tài) 輸 出輸 出 1 6 位 存 儲 器 地 址位 存 儲 器 地 址 AEN輸出高電平,表示輸出高電平,表示DMA傳送傳送nS2狀態(tài)狀態(tài)輸出輸出DMA響應(yīng)信號和控制信號響應(yīng)信號和控制信號 DMA讀:讀:MEMR*和和IOW*有效有效 DMA寫:寫:IOR*和和MEMW*有效有效nS3和和Sw狀態(tài)狀態(tài)檢測數(shù)據(jù)傳送是否能夠完檢測數(shù)據(jù)傳送是否能夠完成,決定是否插入等待狀態(tài)成,決定是否插入等待

23、狀態(tài)SwnS4狀態(tài)狀態(tài)完成數(shù)據(jù)傳送完成數(shù)據(jù)傳送DMA傳送時序5.2.3 8237A的工作方式nDMA傳送方式傳送方式 單字節(jié)傳送方式單字節(jié)傳送方式 數(shù)據(jù)塊傳送方式數(shù)據(jù)塊傳送方式 請求傳送方式請求傳送方式 級聯(lián)方式級聯(lián)方式nDMA傳送類型傳送類型 DMA讀讀 DMA寫寫 DMA檢驗檢驗n存儲器到存儲器的傳送存儲器到存儲器的傳送1. DMA傳送單字節(jié)方式n每次每次DMA傳送時僅傳送一個字節(jié)傳送時僅傳送一個字節(jié)n傳送一個字節(jié)之后,字節(jié)數(shù)寄存器減傳送一個字節(jié)之后,字節(jié)數(shù)寄存器減1,地址,地址寄存器加寄存器加1或減或減1,HRQ變?yōu)闊o效變?yōu)闊o效n8237A釋放系統(tǒng)總線,將控制權(quán)還給釋放系統(tǒng)總線,將控制權(quán)

24、還給CPUn若傳送后使字節(jié)數(shù)從若傳送后使字節(jié)數(shù)從0減到減到FFFFH,則終結(jié),則終結(jié)DMA傳送或重新初始化傳送或重新初始化n特點:特點:n一次傳送一個字節(jié),效率略低一次傳送一個字節(jié),效率略低nDMA傳送之間傳送之間CPU有機會重新獲取總線控制權(quán)有機會重新獲取總線控制權(quán)2. DMA傳送數(shù)據(jù)塊方式n由由DREQ啟動就連續(xù)地傳送數(shù)據(jù),直到啟動就連續(xù)地傳送數(shù)據(jù),直到字節(jié)數(shù)寄存器從字節(jié)數(shù)寄存器從0減到減到FFFFH終止計數(shù),終止計數(shù),或由外部輸入有效信號終結(jié)或由外部輸入有效信號終結(jié)DMA傳送傳送nDREQ只需維持有效到只需維持有效到DACK有效有效n特點:特點:n一次請求傳送一個數(shù)據(jù)塊,效率高一次請求傳

25、送一個數(shù)據(jù)塊,效率高n整個整個DMA傳送期間傳送期間CPU長時間無法控制總長時間無法控制總線(無法響應(yīng)其他線(無法響應(yīng)其他DMA請求、無法處理中請求、無法處理中斷等)斷等)3. DMA傳送級聯(lián)方式n用于通過多個用于通過多個8237A級連以擴展通道級連以擴展通道n第二級的第二級的HRQ和和HLDA信號連到第一級信號連到第一級某個通道的某個通道的DREQ和和DACK上上n第二級芯片的優(yōu)先權(quán)等級與所連通道的第二級芯片的優(yōu)先權(quán)等級與所連通道的優(yōu)先權(quán)相對應(yīng)優(yōu)先權(quán)相對應(yīng)n第一級只起優(yōu)先權(quán)網(wǎng)絡(luò)的作用,實際的第一級只起優(yōu)先權(quán)網(wǎng)絡(luò)的作用,實際的操作由第二級芯片完成操作由第二級芯片完成n還可由第二級擴展到第三級等

26、還可由第二級擴展到第三級等4. DMA傳送請求方式nDREQ信號有效就連續(xù)傳送數(shù)據(jù)信號有效就連續(xù)傳送數(shù)據(jù)nDREQ信號無效,信號無效,DMA傳送被暫時中止,傳送被暫時中止,8237A釋放總線,釋放總線,CPU可繼續(xù)操作可繼續(xù)操作nDMA通道的地址和字節(jié)數(shù)的中間值仍被保持通道的地址和字節(jié)數(shù)的中間值仍被保持nDREQ信號再次有效,信號再次有效,DMA傳送就繼續(xù)進行傳送就繼續(xù)進行n如果字節(jié)數(shù)寄存器從如果字節(jié)數(shù)寄存器從0減到減到FFFFH,或者由外,或者由外部送來一個有效的信號,將終止計數(shù)部送來一個有效的信號,將終止計數(shù)n特點:特點:nDMA操作可由外設(shè)利用操作可由外設(shè)利用DREQ信號控制傳送的過程信

27、號控制傳送的過程5. DMA操作類型nDMA讀讀把數(shù)據(jù)由存儲器傳送到外設(shè)把數(shù)據(jù)由存儲器傳送到外設(shè)n由由MEMR*有效從存儲器讀出數(shù)據(jù),由有效從存儲器讀出數(shù)據(jù),由IOW*有效把有效把這一數(shù)據(jù)寫入外設(shè)這一數(shù)據(jù)寫入外設(shè)nDMA寫寫把外設(shè)輸入的數(shù)據(jù)寫入存儲器把外設(shè)輸入的數(shù)據(jù)寫入存儲器n由由IOR*有效從外設(shè)輸入數(shù)據(jù),由有效從外設(shè)輸入數(shù)據(jù),由MEMW*有效把這有效把這一數(shù)據(jù)寫入存儲器。一數(shù)據(jù)寫入存儲器。nDMA檢驗檢驗空操作空操作n8237A不進行任何檢驗不進行任何檢驗n外設(shè)可以進行外設(shè)可以進行DMA校驗校驗n存儲器和存儲器和I/O控制線保持無效,不進行傳送控制線保持無效,不進行傳送6. 存儲器到存儲器

28、的傳送n固定使用通道固定使用通道0和通道和通道1n通道通道0的地址寄存器存源區(qū)地址的地址寄存器存源區(qū)地址n通道通道1的地址寄存器存目的區(qū)地址,通道的地址寄存器存目的區(qū)地址,通道1的字的字節(jié)數(shù)寄存器存?zhèn)魉偷淖止?jié)數(shù)節(jié)數(shù)寄存器存?zhèn)魉偷淖止?jié)數(shù)n傳送由設(shè)置通道傳送由設(shè)置通道0的軟件請求啟動的軟件請求啟動n每傳送一字節(jié)需用每傳送一字節(jié)需用8個時鐘周期個時鐘周期n前前4個時鐘周期用通道個時鐘周期用通道0地址寄存器的地址從源區(qū)讀地址寄存器的地址從源區(qū)讀數(shù)據(jù)送入數(shù)據(jù)送入8237A的的暫存寄存器暫存寄存器n后后4個時鐘周期用通道個時鐘周期用通道1地址寄存器的地址把暫存寄地址寄存器的地址把暫存寄存器中的數(shù)據(jù)寫入目的

29、區(qū)存器中的數(shù)據(jù)寫入目的區(qū)7. DMA通道的優(yōu)先權(quán)方式n固定優(yōu)先權(quán)方式固定優(yōu)先權(quán)方式優(yōu)先權(quán)固定優(yōu)先權(quán)固定n通道通道0優(yōu)先權(quán)最高,通道優(yōu)先權(quán)最高,通道1其次,通道其次,通道2再次,再次,通道通道3最低最低n循環(huán)優(yōu)先權(quán)方式循環(huán)優(yōu)先權(quán)方式優(yōu)先權(quán)循環(huán)變化優(yōu)先權(quán)循環(huán)變化n最近一次服務(wù)的通道在下次循環(huán)中變成最低最近一次服務(wù)的通道在下次循環(huán)中變成最低優(yōu)先權(quán),其他通道依次輪流相應(yīng)的優(yōu)先權(quán)優(yōu)先權(quán),其他通道依次輪流相應(yīng)的優(yōu)先權(quán)DMADMA傳送不存在嵌套傳送不存在嵌套8. 自動初始化方式n每當每當DMA過程結(jié)束信號過程結(jié)束信號EOP*產(chǎn)生時產(chǎn)生時(不論是內(nèi)部終止計數(shù)還是外部輸入該(不論是內(nèi)部終止計數(shù)還是外部輸入該信號

30、);信號);n用基地址寄存器和基字節(jié)數(shù)寄存器的內(nèi)用基地址寄存器和基字節(jié)數(shù)寄存器的內(nèi)容,使相應(yīng)的當前寄存器恢復為初始值,容,使相應(yīng)的當前寄存器恢復為初始值,包括恢復屏蔽位、允許包括恢復屏蔽位、允許DMA請求;請求;n這樣就作好了下一次這樣就作好了下一次DMA傳送的準備。傳送的準備。5.3 8237A的編程n8327A芯片的芯片的初始化編程初始化編程n需要查閱需要查閱IBM PC/XT DMAC 寄存器的端口地址寄存器的端口地址n可先輸出主清除命令,進行軟件復位可先輸出主清除命令,進行軟件復位n然后寫入命令字然后寫入命令字n命令字影響所有命令字影響所有4個通道的操作個通道的操作5.3 8237A的

31、編程(續(xù))n實例:實例:啟動啟動0號通道進行動態(tài)號通道進行動態(tài)RAM刷新刷新 MOV AL, OFFH ; 0通道的傳送字節(jié)數(shù)通道的傳送字節(jié)數(shù) OUT DMA+1, AL ; 寫入低寫入低8位基值和當前字節(jié)數(shù)寄存器位基值和當前字節(jié)數(shù)寄存器 OUT DMA+1, AL ; 寫入高寫入高8位位 MOV AL, 58H ; 工作方式,單傳,地址工作方式,單傳,地址+1,自動預,自動預 置,置, ; 0通道。通道。58H=01011000B OUT DMA+0BH, AL ;寫入方式寄存器寫入方式寄存器 MOV AL,00H ; DMA命令字命令字 OUT DMA+8, AL ; 寫入命令字,允許寫入命令字,允許DMAC工作工作 OUT DMA+10, AL ; 寫單屏蔽屏蔽寄存器,寫單屏蔽屏蔽寄存器, ;允許允許0通道請求通道請求5.4 8237A在IBM PC系列機上的應(yīng)用nIBM PC/XT機使用一片機使用一片8237An通道通道0:動態(tài)存貯器:動態(tài)存貯器DRAM刷新刷新n通道通道1:用戶使用:用戶使用n通道通道2:內(nèi)存與軟盤的高速數(shù)據(jù)交換:內(nèi)存與軟盤的高速數(shù)據(jù)交換n通道通道3:內(nèi)存與硬盤的高速數(shù)據(jù)交換:內(nèi)存與硬盤的高速數(shù)據(jù)交換nIBM PC/AT機采用兩片機采用兩片8237AnDMAC1包含通道包含通道03,支持,支持8位數(shù)據(jù)傳送位數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論