直接內(nèi)存訪問(wèn)(Direct Memory Access,DMA):在計(jì)算機(jī)體系結(jié)構(gòu)中,DMA 是一種數(shù)據(jù)傳輸方式,允許外部設(shè)備直接訪問(wèn)計(jì)算機(jī)的內(nèi)存,而無(wú)需通過(guò)中央處理單元(CPU)的干預(yù)。這有助于提高數(shù)據(jù)傳輸速度和系統(tǒng)效率。
那么,DMA究竟有多快呢?
實(shí)踐出真知
恰好,最近有個(gè)多通道數(shù)據(jù)采集的項(xiàng)目,受限于通道數(shù)多、分辨率高,而系統(tǒng)帶寬有限,為了盡可能充分利用有限帶寬,就得想辦法優(yōu)化時(shí)序,把時(shí)間都留給數(shù)據(jù)采集和傳輸。
優(yōu)化方向就是DMA。
硬件鏈路是ADC通過(guò)SPI接口將數(shù)據(jù)發(fā)送給STM32單片機(jī),單片機(jī)再將數(shù)據(jù)發(fā)送到上位機(jī)。
咱們的目標(biāo)就是優(yōu)化SPI這邊,先看普通采集模式。
下圖是普通采集模式,SPI每傳輸1個(gè)字節(jié)后,就有一段時(shí)間的空閑,這段時(shí)間就白白浪費(fèi)了。
再看下,開(kāi)啟DMA之后的效果。SPI可以連續(xù)工作,時(shí)鐘速率穩(wěn)定在20MHz,高效工作。
這就是DMA的強(qiáng)大之處!
問(wèn)題來(lái)了,為什么上圖中的波形,有這么大的震蕩呢?
答案可以參考我的原創(chuàng)書(shū)籍《硬件設(shè)計(jì)指南》
如果看到這里,請(qǐng)點(diǎn)贊、收藏、分享三連!
限時(shí)免費(fèi)掃碼進(jìn)群,交流更多行業(yè)技術(shù)
審核編輯 黃宇
-
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1952瀏覽量
64852 -
dma
+關(guān)注
關(guān)注
3文章
566瀏覽量
100953
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
ZYNQ基礎(chǔ)---AXI DMA使用
![ZYNQ基礎(chǔ)---AXI <b class='flag-5'>DMA</b>使用](https://file1.elecfans.com/web3/M00/04/ED/wKgZPGd7SvCAE7QTAAAid90C1HA013.png)
EE-116:SHARC簡(jiǎn)詞DMA
![EE-116:SHARC簡(jiǎn)詞<b class='flag-5'>DMA</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
雅特力AT32F402/F405 DMA使用指南
![雅特力AT32F402/F405 <b class='flag-5'>DMA</b>使用指南](https://file.elecfans.com/web2/M00/42/9C/pYYBAGJ5xmyARrXXAAALuRDQWfU330.jpg)
DMA是什么?詳細(xì)介紹
TMS320C6000 DMA示例應(yīng)用程序
![TMS320C6000 <b class='flag-5'>DMA</b>示例應(yīng)用程序](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用TMS320C6000增強(qiáng)型DMA的應(yīng)用
![使用TMS320C6000增強(qiáng)型<b class='flag-5'>DMA</b>的應(yīng)用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
將DMA與C64x的框架組件結(jié)合使用
![將<b class='flag-5'>DMA</b>與C64x的框架組件結(jié)合使用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
經(jīng)驗(yàn)分享 | DMA助力實(shí)時(shí)控制
![經(jīng)驗(yàn)分享 | <b class='flag-5'>DMA</b>助力實(shí)時(shí)控制](https://file.elecfans.com/web2/M00/37/D7/pYYBAGI9l9uAOwALAAAmFmqVYdg094.png)
RL78系列MCU DMA在UART中的使用
![RL78系列MCU <b class='flag-5'>DMA</b>在UART中的使用](https://file1.elecfans.com/web2/M00/FD/E5/wKgaomaXY-mAfGzkAAAQqVE71F4591.png)
Linux DMA子系統(tǒng)驅(qū)動(dòng)開(kāi)發(fā)
![Linux <b class='flag-5'>DMA</b>子系統(tǒng)驅(qū)動(dòng)開(kāi)發(fā)](https://file1.elecfans.com/web2/M00/C8/27/wKgaomYSQFaAMU_IAAAxhelNxok766.png)
請(qǐng)問(wèn)DMA控制器可以減輕CPU負(fù)擔(dān)嗎?
![請(qǐng)問(wèn)<b class='flag-5'>DMA</b>控制器可以減輕CPU負(fù)擔(dān)嗎?](https://file1.elecfans.com/web2/M00/C6/06/wKgZomYEyxmAQFzQAAAwxD8ZXks316.png)
Xilinx高性能PCIe DMA控制器IP,8個(gè)DMA通道
![Xilinx高性能PCIe <b class='flag-5'>DMA</b>控制器IP,8個(gè)<b class='flag-5'>DMA</b>通道](https://file1.elecfans.com/web2/M00/C1/7A/wKgaomXWuwqAPuWtAAE4N660yig790.png)
雅特力AT32F423 DMA使用指南
![雅特力AT32F423 <b class='flag-5'>DMA</b>使用指南](https://file.elecfans.com/web2/M00/42/9C/pYYBAGJ5xmyARrXXAAALuRDQWfU330.jpg)
評(píng)論