一個DMA控制器,實際上是采用DMA方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路,這個接口電路是在中斷接口的基礎(chǔ)上再加DMA機構(gòu)組成。習(xí)慣上將DMA方式的接口電路稱為DMA控制器。
(1)內(nèi)存地址計數(shù)器:用于存放內(nèi)存中要交換的數(shù)據(jù)的地址。在 DMA傳送前,須通過程序?qū)?shù)據(jù)在內(nèi)存中的起始位置(首地址)送到內(nèi)存地址計數(shù)器。而當(dāng) DMA 傳送時,每交換一次數(shù)據(jù),將地址計數(shù)器加“1”,從而以增量方式給出內(nèi)存中要交換的一批數(shù)據(jù)的地址。
(2)字計數(shù)器:用于記錄傳送數(shù)據(jù)塊的長度(多少字?jǐn)?shù))。其內(nèi)容也是在數(shù)據(jù)傳送之前由程序預(yù)置,交換的字?jǐn)?shù)通常以補碼形式表示。在DMA傳送時,每傳送一個字,字計數(shù)器就加“1”。當(dāng)計數(shù)器溢出即最高位產(chǎn)生進(jìn)位時,表示這批數(shù)據(jù)傳送完畢,于是引起DMA控制器向CPU發(fā)出中斷信號。
(3)數(shù)據(jù)緩沖寄存器:用于暫存每次傳送的數(shù)據(jù)(一個字)。當(dāng)輸入時,由設(shè)備(如磁盤)送往數(shù)據(jù)緩沖寄存器,再由緩沖寄存器通過數(shù)據(jù)總線送到內(nèi)存。反之,輸出時,由內(nèi)存通過數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器,然后再送到設(shè)備。
(4)DMA請求”標(biāo)志:每當(dāng)設(shè)備準(zhǔn)備好一個數(shù)據(jù)字后給出一個控制信號,使“DMA請求”標(biāo)志置“1”。該標(biāo)志置位后向“控制/狀態(tài)”邏輯發(fā)出DMA請求,后者又向CPU發(fā)出總線使用權(quán)的請求(HOLD),CPU響應(yīng)此請求后發(fā)回響應(yīng)信號HLDA,“控制/狀態(tài)”邏輯接收此信號后發(fā)出DMA響應(yīng)信號,使“DMA 請求”標(biāo)志復(fù)位,為交換下一個字做好準(zhǔn)備。
(5)控制/狀態(tài)”邏輯:由控制和時序電路以及狀態(tài)標(biāo)志等組成,用于修改內(nèi)存地址計數(shù)器和字計數(shù)器,指定傳送類型(輸入或輸出),并對“DMA請求”信號和CPU響應(yīng)信號進(jìn)行協(xié)調(diào)和同步。
(6)中斷機構(gòu):當(dāng)字計數(shù)器溢出時,意味著一組數(shù)據(jù)交換完畢,由溢出信號觸發(fā)中斷機構(gòu),向CPU提出中斷報告。
-
寄存器
+關(guān)注
關(guān)注
31文章
5498瀏覽量
128107 -
dma
+關(guān)注
關(guān)注
3文章
577瀏覽量
104910 -
DMA控制器
+關(guān)注
關(guān)注
1文章
43瀏覽量
12847
發(fā)布評論請先 登錄

codesys 3.5版本控制器聯(lián)機指導(dǎo):如何進(jìn)行RS232聯(lián)機?#codesys編程控制器 #控制器
M483SIDAE SD控制器,無法使用DMA讀取從SDHC獲取正確的數(shù)據(jù),怎么解決?
NVMe IP高速傳輸卻不依賴XDMA設(shè)計之五:DMA 控制單元設(shè)計




CKS32F107xx系列的DMA控制器簡介


Y1620工程機械主機控制器 車載智能控制器 CAN總線 #工程機械控制器 #整車控制器 #車載控制器

LabVIEW運動控制(一):EtherCAT運動控制器的SCARA機械手應(yīng)用 #正運動技術(shù) #運動控制器
什么是MPU控制器及其應(yīng)用
TMS320DM643x DMP增強型DMA(EDMA)控制器用戶指南

雅特力AT32F402/F405 DMA使用指南

評論