加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1 DMA簡(jiǎn)介
    • 2 STM32中的DMA
    • 3 總結(jié)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

嵌入式基礎(chǔ)知識(shí)-DMA

02/11 08:55
3570
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本篇來(lái)介紹DMA的一些基礎(chǔ)知識(shí)。

1 DMA簡(jiǎn)介

DMA(Direct Memory Access),中文名為直接內(nèi)存訪問(wèn),它是一些計(jì)算機(jī)總線架構(gòu)提供的功能,能使數(shù)據(jù)從附加設(shè)備(如磁盤驅(qū)動(dòng)器)直接發(fā)送到計(jì)算機(jī)主板的內(nèi)存上。對(duì)應(yīng)嵌入式處理器來(lái)說(shuō),DMA可以提供外設(shè)和存儲(chǔ)器之間,或存儲(chǔ)器與存儲(chǔ)器之間的高速數(shù)據(jù)傳輸,無(wú)須CPU干預(yù),節(jié)省了CPU的資源。

1.1 DMA傳輸?shù)?種情況

DMA涉及的數(shù)據(jù)傳輸分為四種情況:

    外設(shè)到內(nèi)存內(nèi)存到外設(shè)內(nèi)存到內(nèi)存外設(shè)到外設(shè)

它們本質(zhì)上是一樣的,都是從內(nèi)存的某一區(qū)域傳輸?shù)絻?nèi)存的另一區(qū)域,外設(shè)的數(shù)據(jù)寄存器本質(zhì)上就是內(nèi)存的一個(gè)存儲(chǔ)單元。

1.2 典型的DMA結(jié)構(gòu)

典型的DMA控制器的結(jié)構(gòu)示意圖如下:

DMA控制器內(nèi)部包含4中寄存器/計(jì)數(shù)器

    地址寄存器:包括源地址和目的地址寄存器狀態(tài)寄存器:用于寄存DMA傳輸前后的狀態(tài)控制寄存器:用于選擇DMA控制器的操作類型、工作方式、傳輸方向和有關(guān)參數(shù)字節(jié)計(jì)數(shù)器:用于控制傳輸數(shù)據(jù)塊的長(zhǎng)度

DMA控制器需要連接包括:

    與外設(shè)連接:用于接受外設(shè)發(fā)出的DMA操作請(qǐng)求和在DMA期間對(duì)外設(shè)進(jìn)行控制與CPU連接:用于請(qǐng)求總線的控制權(quán)與三大總線連接:用于進(jìn)行總線控制

DMA控制器可以像CPU那樣獲得總線的控制權(quán),因此可以完成外設(shè)與存儲(chǔ)器之間的數(shù)據(jù)高速交換。

如下圖,當(dāng)外設(shè)需要與存儲(chǔ)器之間進(jìn)行DMA傳輸時(shí)由DMA控制器提出總線請(qǐng)求,從CPU獲得總線授權(quán)后,由DMA控制器控制數(shù)據(jù)的傳輸。

2 STM32中的DMA

2.1 STM32的DMA資源概述

STM32F103內(nèi)部有2 個(gè)DMA控制器:

    DMA1有7個(gè)通道DMA2有5個(gè)通道,僅存大容量產(chǎn)品中

每個(gè)通道專門用來(lái)管理來(lái)自于一個(gè)或多個(gè)外設(shè)對(duì)存儲(chǔ)器訪問(wèn)的請(qǐng)求。

此外,每個(gè)DMA還有一個(gè)仲裁器來(lái)協(xié)調(diào)各個(gè)請(qǐng)求的優(yōu)先權(quán)。

STM32F103中的DMA有以下一些特性:

    獨(dú)立的源和目標(biāo)數(shù)據(jù)區(qū)的傳輸寬度(字節(jié)、半字、全字)每個(gè)通道都有3個(gè)事件標(biāo)志(DMA 半傳輸,DMA 傳輸完成和 DMA 傳輸出錯(cuò))存儲(chǔ)器和存儲(chǔ)器間的傳輸外設(shè)和存儲(chǔ)器,存儲(chǔ)器和外設(shè)的傳輸閃存、SRAM、外設(shè)的 SRAM、APB1、APB2 和 AHB 外設(shè)均可作為訪問(wèn)的源和目標(biāo)

2.2 STM32的DMA框圖

STM32F103的DMA框圖如下:

    ①代表DMA請(qǐng)求:當(dāng)外設(shè)準(zhǔn)備通過(guò)DMA傳輸數(shù)據(jù)時(shí),需先給DMA控制器發(fā)送請(qǐng)求。②代表DMA通道:DMA1有7 個(gè),DMA2有 5個(gè),雖然每個(gè)通道可以接收多個(gè)外設(shè)的請(qǐng)求,但是同一時(shí)間只能接收一個(gè)。③代表總裁器:用于處理當(dāng)發(fā)生多個(gè) DMA 通道請(qǐng)求時(shí)的響應(yīng)順序。仲裁器管理 DMA 通道請(qǐng)求分為兩個(gè)階段:

    • 第一階段:軟件階段,可以在DMA_CCRx寄存器中設(shè)置,有4個(gè)等級(jí):非常高,高,中,低第二階段:硬件階段,若兩個(gè)及以上的DMA通道請(qǐng)求設(shè)置的優(yōu)先級(jí)一樣,則取決于通道編號(hào),越低優(yōu)先權(quán)越高

3 總結(jié)

本篇介紹了DMA的一些基礎(chǔ)知識(shí),包括DMA傳輸?shù)?種情況、典型的DMA結(jié)構(gòu)以及STM32的DMA相關(guān)基礎(chǔ)介紹。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
KSZ8895MQI 1 Micrel Inc Ethernet Transceiver, CMOS, PQFP128, LEAD FREE, PLASTIC, QFP-128
$8.91 查看
9DBV0441AKLF 1 Integrated Device Technology Inc VFQFPN-32, Tray

ECAD模型

下載ECAD模型
$12.45 查看
AFBR-720XPDZ 1 Foxconn Transceiver, 840nm Min, 860nm Max, 10000Mbps(Tx), 10000Mbps(Rx), LC Connector, Board/panel Mount, ROHS COMPLIANT PACKAGE-30
$164.34 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

控制科學(xué)與工程碩士,日常分享單片機(jī)、嵌入式、C/C++、Linux等學(xué)習(xí)經(jīng)驗(yàn)干貨~