国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

玩轉單片機的重要功能 - DMA ,你的MCU編程設計有可能成為卷王!

發布時間:2023-11-30 09:11    發布者:eechina
關鍵詞: 單片機 , DMA , MCU , 編程設計
來源:DigiKey
作者:Alan Yang

直接存儲器訪問(DMA)控制器,可以在內存和/或外設之間傳輸數據,而不需要CPU參與每次傳輸。合理利用DMA控制器,可以減輕CPU的負擔。本文通過介紹DMA結構與工作原理,以及兩種模式(兵乓模式與多數據包緩沖傳輸模式),來看看使用DMA如何提高MCU效率。

DMA結構與工作原理

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

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


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

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

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

實例:“使用 STM32 來控制 NeoPixels LED

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



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


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

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


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

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


圖 4 配置DMA流,以便有效更新PWM信號的占空比

更多內容請看下面文章:使用 STM32 來控制 NeoPixels

DMA的兩種模式

合理使用兩種DMA模式(兵乓模式與多數據包緩沖傳輸模式),可以幫助提高MCU效率。

USB外設是一個很好的外設示例,早期的USB實現的最大吞吐量只有1.5 Mb/秒。隨著更高性能的標準版本的出現。比如要接近12 Mbit/s全速USB標準的理論最大值。我們來看看,數據傳輸方面DMA如何幫助提高MCU效率!

我們以Microchip的ATXMEGA16D4-MH舉例。

兵乓模式:

之前通常使用單個存儲器緩沖區進行外設數據傳輸。如果數據緩沖區已滿,MCU將響應NAK(否定確認)消息。接收到NAK后,主機將等待并稍后重試傳輸。它將繼續重試,直到MCU能夠成功接收數據。

ATXMEGA16D4-MH使用乒乓模式來消除這個問題。乒乓模式使用兩個存儲單元(memory banks)進行數據傳輸。當一個存儲單元滿時,主機可以將數據傳輸到另一個存儲單元。在兩個存儲單元之間交替傳輸可以避免復審,并提高整體數據帶寬。


圖 5 乒乓模式提高了效率(圖片來源于Microchip)

此外,如上圖所示,以乒乓模式還使MCU有更多時間來處理數據。如圖所示,沒有乒乓,CPU只能處理傳輸之間的數據。使用乒乓模式,CPU可以在傳輸周期的一部分時間內處理數據,并降低NAK被要求“趕上”數據處理要求的可能性。

多數據包緩沖傳輸模式

另一個很有用的模式,可以讓MCU的數據傳輸更高效。這個特性叫做“多數據包緩沖傳輸模式”。如果你要通過USB端口傳送的數據包,超過了全速USB的BULK傳輸模式所允許的最大值(64字節),那么就可以用上這個模式。以前,你需要在主機上把數據包分成小塊,然后在接收端把它們合并,這會增加中央處理器(CPU)的負擔。不過現在,多數據包緩沖功能加入了USB設備,它會在數據包超過USB標準大小時自動幫你分割和合并數據。重要的是,這個模式還能減少中斷的次數,因為只有在整個傳輸結束后才需要中斷CPU。這意味著,CPU可以處理其他任務,或者進入休眠模式,直到整個傳輸完成并且準備好處理。

總結:

合理利用DMA控制器,可以減輕減輕CPU的負擔,事半功倍。結合“乒乓緩沖”和“多傳輸模式”,你可以把傳輸的帶寬從基準BULK傳輸模式的5.6 Mb/s提升到8.7 Mbits/s,這是一個不小的提升。更重要的是,在使用這兩個功能的情況下,CPU的負擔從基準的46%降低到只有9%。這兩個功能的結合,不僅在性能上有所改進,而且還能節省能源。
本文地址:http://m.qingdxww.cn/thread-847346-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国精品国产自在久国产不卡 | 国产国产伦锂片 | 四虎影视在线观看 | 高清欧美不卡一区二区三区 | 国产成人福利在线视频播放尤物 | 小毛片 | 小泽玛利亚久久一区二区三区 | 在线观看国产三级 | 国产一区日韩二区欧美三 | 国产精品秒播无毒不卡 | 亚洲视频一二区 | 日韩每日更新 | 亚洲国产精品一区二区久久 | 国产uv1区二区三区 国产tv在线观看 | 中文字幕在线播放一区 | 四色婷婷婷婷色婷婷开心网 | 极品美女在线播放 | 亚洲视频在线免费 | 亚洲男人的天堂久久精品 | 日本高清免费xxx在线观看 | 欧美国产成人一区二区三区 | 在线麻豆国产传媒60在线观看 | 日韩一级片在线免费观看 | 三级国产精品 | 国产亚洲精品aa在线看 | 特黄特级高清免费视频毛片 | 日本不卡一区在线 | 国产对白91色拍高清精品 | 欧美黑人乱大交ⅹxxxxx | 国产免费一区二区在线看 | 91麻豆精品国产 | 国产一区二区在线视频播放 | 中文字幕日本久久2019 | h漫免费看| 亚洲成人h | 一区二区三区四区视频在线 | 69视频在线下载 | 这里都是精品 | 青青草国产精品久久 | 1024手机看片国产旧版你懂的 | 国内特级毛片 |