精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

請問DMA控制器可以減輕CPU負擔嗎?

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

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

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

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

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

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

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

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

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

實例:使用STM32 來控制 NeoPixels LED

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

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

RGB NeoPixels 實際上是 WS2812 智能控制 LED。下面是WS2812 LED 的3字節數據協議的結構,分別代表綠紅藍三個信息

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

圖 2 WS2812 LED 的3字節數據協議的結構

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

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

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

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

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




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7452

    瀏覽量

    163598
  • RGB
    RGB
    +關注

    關注

    4

    文章

    798

    瀏覽量

    58386
  • 計時器
    +關注

    關注

    1

    文章

    418

    瀏覽量

    32634
  • PWM波
    +關注

    關注

    0

    文章

    99

    瀏覽量

    16841
  • DMA控制器
    +關注

    關注

    1

    文章

    43

    瀏覽量

    12265

原文標題:DMA 控制器可以減輕CPU負擔 前提是配置得當!

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

收藏 人收藏

    評論

    相關推薦

    DMA是什么?詳細介紹

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

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

    DMA(Direct Memory Access)控制器是一種在系統內部轉移數據的獨特外設,其主要功能是實現內存與外設之間的直接數據傳輸,而無需CPU的頻繁干預。這種數據傳輸方式顯著提高了數據傳輸的效率和速度,
    的頭像 發表于 08-20 10:41 ?1123次閱讀

    簡述DMA控制器的工作過程

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

    經驗分享 | DMA助力實時控制

    直接存儲訪問(DMA,DirectMemoryAccess)的優點·提高系統效率:通過繞過CPUDMA顯著減少了數據傳輸對CPU資源的占
    的頭像 發表于 07-18 08:18 ?700次閱讀
    經驗分享 | <b class='flag-5'>DMA</b>助力實時<b class='flag-5'>控制</b>

    cpu的運算控制器的作用是什么

    CPU的運算控制器是計算機的核心組成部分,它們共同完成計算機的各種運算和控制任務。下面我們將詳細介紹運算
    的頭像 發表于 06-30 11:15 ?1826次閱讀

    cpu控制器負責什么運算

    CPU控制器,也稱為中央處理控制器或處理控制器,是計算機系統中的核心部件之一。它負責執行各種
    的頭像 發表于 06-30 11:14 ?787次閱讀

    簡述cpu控制器的工作原理

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

    cpu控制器和運算組成的部件有哪些

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

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

    CPU控制器,即中央處理控制器,是計算機系統中的核心部件之一。它負責執行程序指令,控制數據的輸入輸出,以及協調計算機系統中各個部件的工作。
    的頭像 發表于 06-30 10:52 ?2123次閱讀

    cpu控制器的功能是什么

    CPU控制器,即中央處理控制器,是計算機硬件的核心部件之一,負責協調和管理計算機的各個部件,實現計算機的運算、控制和存儲等功能。
    的頭像 發表于 06-30 10:48 ?1894次閱讀

    請問STM32F072的DMA可以分時復用嗎?

    請問各位內行,如果ADC,DAC,SPI,RS232,4個設備可以分時復用DMA控制器的7個通道嗎?先謝了。
    發表于 05-15 06:53

    dma和串口直接發送的區別

    ,我們先來介紹一下DMA和串口直接發送的原理和工作方式。 DMA是一種高速數據傳輸技術,它允許外設直接與內存進行數據交換,而不需要CPU的介入。有了DMA技術,
    的頭像 發表于 01-07 17:43 ?2704次閱讀

    dma和通道技術的區別

    DMA是一種通過繞過中央處理CPU)來直接訪問內存的機制。它允許外部設備(如硬盤驅動、網卡等)直接與內存進行數據傳輸,而無需通過CPU
    的頭像 發表于 01-04 14:31 ?2280次閱讀

    STM32的DMA的五大問題

    1,DMA控制器的內部結構STM32中的DMA控制器是一種用于在外設和存儲之間傳輸數據的專用硬件。DM
    的頭像 發表于 12-10 08:00 ?1818次閱讀
    STM32的<b class='flag-5'>DMA</b>的五大問題

    小白都看得懂的STM32的DMA知識

    一、DMA簡介1、DMA簡介DMA(DirectMemoryAccess:直接內存存取)是一種可以大大減輕
    的頭像 發表于 11-27 08:00 ?3604次閱讀
    小白都看得懂的STM32的<b class='flag-5'>DMA</b>知識