淺談直接存儲(chǔ)器訪問(wèn) ( DMA ) 控制器的結(jié)構(gòu)與工作原理
直接存儲(chǔ)器訪問(wèn) ( DMA )控制器,可以在內(nèi)存和/或外設(shè)之間傳輸數(shù)據(jù),而不需要 CPU 參與每次傳輸。合理利用 DMA 控制器,可以減輕CPU的負(fù)擔(dān)。
先進(jìn)的 DMA 控制器,如STMicroelectronics的STM32F4系列中包含的控制器,可以通過(guò)靈活的數(shù)據(jù)流分配和傳輸管理功能進(jìn)一步減輕 CPU 的負(fù)擔(dān)。
如圖左側(cè)所示,來(lái)自8個(gè)不同的通道 DMA 請(qǐng)求,并到仲裁器上,從而建立優(yōu)先級(jí)(編號(hào)較低的輸入通道,具有較高的優(yōu)先級(jí))。然后激活最高優(yōu)先級(jí)的傳輸,傳輸?shù)綀D中右側(cè)的兩個(gè) AHB 主設(shè)備(存儲(chǔ)器端口和外設(shè)接口),提高了外設(shè)到存儲(chǔ)器傳輸?shù)男省_@可能是 DMA 在基于 CPU 的設(shè)計(jì)中最常見(jiàn)的情況。

圖 1STM32F4系列DMA控制器(圖片來(lái)源于STMicroelectronics*)*
為每個(gè)路徑分配單獨(dú)的 FIFO,如圖1中間所示,允許針對(duì)每個(gè)外設(shè)接口的特性調(diào)整 FIFO 特性。例如,F(xiàn)IFO 的閾值級(jí)別(請(qǐng)求傳輸?shù)纳疃?可以單獨(dú)設(shè)置為 FIFO 大小的?,?或?。這允許低速通道等待,直到FIFO 幾乎滿了才進(jìn)行傳輸,以最小化開(kāi)銷。更快的通道會(huì)更早地啟動(dòng)傳輸,可能只有一半大小,以避免FIFO 溢出。
我們來(lái)通過(guò)一個(gè)實(shí)例,來(lái)看看DMA怎么工作的。
實(shí)例:使用STM32 來(lái)控制 NeoPixels LED
硬件部分采用STM32 開(kāi)發(fā)板,與 NeoPixelLED、燈帶、矩陣等相連接。
RGB NeoPixels 實(shí)際上是 WS2812 智能控制 LED。下面是WS2812 LED 的3字節(jié)數(shù)據(jù)協(xié)議的結(jié)構(gòu),分別代表綠紅藍(lán)三個(gè)信息。

圖 2 WS2812 LED 的3字節(jié)數(shù)據(jù)協(xié)議的結(jié)構(gòu)
使用計(jì)時(shí)器來(lái)PWM控制波形,然后配置DMA使CPU高效并且易于實(shí)施。

圖 3 WS2812 LED 的0和1位的計(jì)時(shí)圖
在軟件中,配置 DMA,選擇了“TIM2_CH3/UP”,將方向改為“內(nèi)存到外設(shè)”。同時(shí),將優(yōu)先級(jí)改為“非常高”,最后保存.ioc 文件,以生成項(xiàng)目代碼。

審核編輯:劉清
-
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7724瀏覽量
171267 -
RGB
+關(guān)注
關(guān)注
4文章
826瀏覽量
61692 -
計(jì)時(shí)器
+關(guān)注
關(guān)注
1文章
434瀏覽量
35010 -
PWM波
+關(guān)注
關(guān)注
0文章
101瀏覽量
17674 -
DMA控制器
+關(guān)注
關(guān)注
1文章
43瀏覽量
12912
原文標(biāo)題:DMA 控制器可以減輕CPU負(fù)擔(dān) 前提是配置得當(dāng)!
文章出處:【微信號(hào):得捷電子DigiKey,微信公眾號(hào):得捷電子DigiKey】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
CW32 DMA的主要特性
基于AXI DMA IP核的DDR數(shù)據(jù)存儲(chǔ)與PS端讀取
哪些場(chǎng)景適合使用DMA?
AT32F421C8T7微控制器現(xiàn)貨庫(kù)存
RVMCU課堂「18」: 手把手教你玩轉(zhuǎn)RVSTAR—DMA數(shù)據(jù)傳輸篇
蜂鳥(niǎo)內(nèi)核中DMA的硬件實(shí)現(xiàn)——寄存器配置
M483SIDAE SD控制器,無(wú)法使用DMA讀取從SDHC獲取正確的數(shù)據(jù),怎么解決?
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之五:DMA 控制單元設(shè)計(jì)
第十五章 DMA
車載整機(jī)控制器 工程機(jī)械主機(jī)控制器#碩博電子#國(guó)產(chǎn)控制器
工程機(jī)械控制器廠家 控制器國(guó)產(chǎn)替代 #國(guó)產(chǎn)控制器#控制器廠家#控制器品牌
工程機(jī)械控制器如何選型?控制器選型指南 #控制器 #車載控制器 #整車控制器 #控制器選型
CKS32F107xx系列的DMA控制器簡(jiǎn)介
請(qǐng)問(wèn)DMA控制器可以減輕CPU負(fù)擔(dān)嗎?
評(píng)論