0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

請問DMA控制器可以減輕CPU負(fù)擔(dān)嗎?

得捷電子DigiKey ? 來源:得捷電子DigiKey ? 2024-03-28 09:41 ? 次閱讀

淺談直接存儲器訪問 ( DMA ) 控制器的結(jié)構(gòu)與工作原理

直接存儲器訪問 ( DMA )控制器,可以在內(nèi)存和/或外設(shè)之間傳輸數(shù)據(jù),而不需要 CPU 參與每次傳輸。合理利用 DMA 控制器,可以減輕CPU的負(fù)擔(dān)。

先進(jìn)的 DMA 控制器,如STMicroelectronicsSTM32F4系列中包含的控制器,可以通過靈活的數(shù)據(jù)流分配和傳輸管理功能進(jìn)一步減輕 CPU 的負(fù)擔(dān)。

如圖左側(cè)所示,來自8個不同的通道 DMA 請求,并到仲裁器上,從而建立優(yōu)先級(編號較低的輸入通道,具有較高的優(yōu)先級)。然后激活最高優(yōu)先級的傳輸,傳輸?shù)綀D中右側(cè)的兩個 AHB 主設(shè)備(存儲器端口和外設(shè)接口),提高了外設(shè)到存儲器傳輸?shù)男?。這可能是 DMA 在基于 CPU 的設(shè)計中最常見的情況。

c6e003e2-ec3b-11ee-a297-92fbcf53809c.png

圖 1STM32F4系列DMA控制器(圖片來源于STMicroelectronics*)*

為每個路徑分配單獨(dú)的 FIFO,如圖1中間所示,允許針對每個外設(shè)接口的特性調(diào)整 FIFO 特性。例如,F(xiàn)IFO 的閾值級別(請求傳輸?shù)纳疃?可以單獨(dú)設(shè)置為 FIFO 大小的?,?或?。這允許低速通道等待,直到FIFO 幾乎滿了才進(jìn)行傳輸,以最小化開銷。更快的通道會更早地啟動傳輸,可能只有一半大小,以避免FIFO 溢出。

我們來通過一個實(shí)例,來看看DMA怎么工作的。

實(shí)例:使用STM32 來控制 NeoPixels LED

硬件部分采用STM32 開發(fā)板,與 NeoPixelLED、燈帶、矩陣等相連接。

c6f9e3fc-ec3b-11ee-a297-92fbcf53809c.png

RGB NeoPixels 實(shí)際上是 WS2812 智能控制 LED。下面是WS2812 LED 的3字節(jié)數(shù)據(jù)協(xié)議的結(jié)構(gòu),分別代表綠紅藍(lán)三個信息。

c711d2dc-ec3b-11ee-a297-92fbcf53809c.png

圖 2 WS2812 LED 的3字節(jié)數(shù)據(jù)協(xié)議的結(jié)構(gòu)

使用計時器來PWM控制波形,然后配置DMA使CPU高效并且易于實(shí)施。

c71ba8a2-ec3b-11ee-a297-92fbcf53809c.png

圖 3 WS2812 LED 的0和1位的計時圖

在軟件中,配置 DMA,選擇了“TIM2_CH3/UP”,將方向改為“內(nèi)存到外設(shè)”。同時,將優(yōu)先級改為“非常高”,最后保存.ioc 文件,以生成項目代碼。

c73451f4-ec3b-11ee-a297-92fbcf53809c.png




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7637

    瀏覽量

    166482
  • RGB
    RGB
    +關(guān)注

    關(guān)注

    4

    文章

    803

    瀏覽量

    59618
  • 計時器
    +關(guān)注

    關(guān)注

    1

    文章

    429

    瀏覽量

    33504
  • PWM波
    +關(guān)注

    關(guān)注

    0

    文章

    100

    瀏覽量

    17267
  • DMA控制器
    +關(guān)注

    關(guān)注

    1

    文章

    43

    瀏覽量

    12573

原文標(biāo)題:DMA 控制器可以減輕CPU負(fù)擔(dān) 前提是配置得當(dāng)!

文章出處:【微信號:得捷電子DigiKey,微信公眾號:得捷電子DigiKey】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    CKS32F107xx系列的DMA控制器簡介

    直接存儲存取(DMA)用來提供在外設(shè)和存儲之間或者存儲和存儲之間的高速數(shù)據(jù)傳輸。無須CPU
    的頭像 發(fā)表于 02-18 17:24 ?804次閱讀
    CKS32F107xx系列的<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>簡介

    請問使用DAC1282時可以用什么控制器與其通信呢?

    請問使用DAC1282時可以用什么控制器與其通信呢?因?yàn)槲铱聪馜SP28335之類的控制器的SPI都是16位字長的,而DAC1282是24位的。
    發(fā)表于 12-13 07:10

    DMA是什么?詳細(xì)介紹

    DMA(Direct Memory Access)是一種允許某些硬件子系統(tǒng)直接訪問系統(tǒng)內(nèi)存的技術(shù),而無需中央處理單元(CPU)的介入。這種技術(shù)可以顯著提高數(shù)據(jù)傳輸速率,減輕
    的頭像 發(fā)表于 11-11 10:49 ?1.8w次閱讀

    什么是LCD控制器?愛普生LCD控制器的作用和功能、概述和產(chǎn)品列表

    什么是LCD控制器LCD控制器的作用和功能LCD控制器(液晶顯示控制器)是連接到主機(jī)CPU控制
    的頭像 發(fā)表于 10-09 11:10 ?1039次閱讀
    什么是LCD<b class='flag-5'>控制器</b>?愛普生LCD<b class='flag-5'>控制器</b>的作用和功能、概述和產(chǎn)品列表

    DMA控制器的主要功能有哪些

    DMA(Direct Memory Access)控制器是一種在系統(tǒng)內(nèi)部轉(zhuǎn)移數(shù)據(jù)的獨(dú)特外設(shè),其主要功能是實(shí)現(xiàn)內(nèi)存與外設(shè)之間的直接數(shù)據(jù)傳輸,而無需CPU的頻繁干預(yù)。這種數(shù)據(jù)傳輸方式顯著提高了數(shù)據(jù)傳輸?shù)男屎退俣龋?/div>
    的頭像 發(fā)表于 08-20 10:41 ?2874次閱讀

    簡述DMA控制器的工作過程

    DMA(Direct Memory Access)控制器的工作過程是一個復(fù)雜但高效的硬件執(zhí)行過程,它實(shí)現(xiàn)了內(nèi)存與外設(shè)之間直接的數(shù)據(jù)傳輸,顯著減輕CPU
    的頭像 發(fā)表于 08-20 10:35 ?2256次閱讀

    經(jīng)驗(yàn)分享 | DMA助力實(shí)時控制

    直接存儲訪問(DMA,DirectMemoryAccess)的優(yōu)點(diǎn)·提高系統(tǒng)效率:通過繞過CPU,DMA顯著減少了數(shù)據(jù)傳輸對CPU資源的占
    的頭像 發(fā)表于 07-18 08:18 ?1320次閱讀
    經(jīng)驗(yàn)分享 | <b class='flag-5'>DMA</b>助力實(shí)時<b class='flag-5'>控制</b>

    RL78系列MCU DMA在UART中的使用

    對于RL78系列的MCU,為了提高運(yùn)行效率,減少CPU的占用,建議UART數(shù)據(jù)收發(fā)使用DMA功能。DMA(Direct Memory Access)是RL78 MCU內(nèi)置的一個控制器
    的頭像 發(fā)表于 07-17 14:24 ?1127次閱讀
    RL78系列MCU <b class='flag-5'>DMA</b>在UART中的使用

    cpu的運(yùn)算控制器的作用是什么

    CPU的運(yùn)算控制器是計算機(jī)的核心組成部分,它們共同完成計算機(jī)的各種運(yùn)算和控制任務(wù)。下面我們將詳細(xì)介紹運(yùn)算
    的頭像 發(fā)表于 06-30 11:15 ?3591次閱讀

    cpu控制器負(fù)責(zé)什么運(yùn)算

    CPU控制器,也稱為中央處理控制器或處理控制器,是計算機(jī)系統(tǒng)中的核心部件之一。它負(fù)責(zé)執(zhí)行各種
    的頭像 發(fā)表于 06-30 11:14 ?1519次閱讀

    簡述cpu控制器的工作原理

    CPU(中央處理控制器是計算機(jī)的核心部件之一,負(fù)責(zé)控制整個計算機(jī)系統(tǒng)的運(yùn)行。它的工作原理非常復(fù)雜,涉及到許多方面,包括指令的獲取、解碼、執(zhí)行、結(jié)果的存儲等。以下是對
    的頭像 發(fā)表于 06-30 11:04 ?2117次閱讀

    cpu控制器和運(yùn)算組成的部件有哪些

    CPU(中央處理)是計算機(jī)的核心部件,負(fù)責(zé)執(zhí)行程序指令和處理數(shù)據(jù)。CPU主要由控制器和運(yùn)算組成,這兩個部件共同完成計算機(jī)的運(yùn)算任務(wù)。下面
    的頭像 發(fā)表于 06-30 11:01 ?3125次閱讀

    cpu控制器的兩種類型和特點(diǎn)

    CPU控制器,即中央處理控制器,是計算機(jī)硬件的核心部件之一,負(fù)責(zé)執(zhí)行程序指令和控制計算機(jī)的運(yùn)行。CPU
    的頭像 發(fā)表于 06-30 10:59 ?1874次閱讀

    cpu控制器的主要作用是什么

    CPU控制器,即中央處理控制器,是計算機(jī)系統(tǒng)中的核心部件之一。它負(fù)責(zé)執(zhí)行程序指令,控制數(shù)據(jù)的輸入輸出,以及協(xié)調(diào)計算機(jī)系統(tǒng)中各個部件的工作。
    的頭像 發(fā)表于 06-30 10:52 ?3656次閱讀

    cpu控制器的功能是什么

    CPU控制器,即中央處理控制器,是計算機(jī)硬件的核心部件之一,負(fù)責(zé)協(xié)調(diào)和管理計算機(jī)的各個部件,實(shí)現(xiàn)計算機(jī)的運(yùn)算、控制和存儲等功能。
    的頭像 發(fā)表于 06-30 10:48 ?3387次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品