新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用好 DMA控制器這兩種模式 MCU效率大大提高!

        用好 DMA控制器這兩種模式 MCU效率大大提高!

        作者: 時間:2025-01-17 來源:Digikey 收藏

         文章 概述

        本文引用地址:http://www.104case.com/article/202501/466440.htm

        本文介紹了的兩種模式。 通過結合乒乓緩沖和多數據包緩沖傳輸模式,DMA 控制器可以顯著提高 MCU 的數據傳輸效率和帶寬,同時減少 CPU 的負擔,從而提升整體系統性能并節省能源。


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

        充分利用兩種 DMA 模式( 兵乓模式 與 多數據包緩沖傳輸模式 ),可以幫助提高 MCU 效率。USB 外設 是一個很好的外設示例,早期的 USB 實現的最大吞吐量只有1.5 Mb/秒。隨著更高性能的標準版本的出現。比如要接近12 Mbit/s全速 USB 標準的理論最大值。我們來看看,數據傳輸方面 DMA 如何幫助提高 MCU 效率!我們以 Microchip 的 ATXMEGA16D4-MH 舉例。

        AVR ? XMEGA ? D4 微控制器ATXMEGA16D4-MH乒乓模式之前通常使用單個存儲器緩沖區進行外設數據傳輸。如果數據緩沖區已滿,MCU將響應 NAK (否定確認)消息。接收到 NAK 后,主機將等待并稍后重試傳輸。它將繼續重試,直到 MCU 能夠成功接收數據。ATXMEGA16D4-MH 使用乒乓模式來消除這個問題。乒乓模式使用兩個存儲單元( memory banks )進行數據傳輸。當一個存儲單元滿時,主機可以將數據傳輸到另一個存儲單元。在兩個存儲單元之間交替傳輸可以避免復審,并提高整體數據帶寬。

        乒乓模式提高了效率( 圖片來源于 Microchip )此外,如上圖所示,以乒乓模式還使 MCU 有更多時間來處理數據。如圖所示,沒有乒乓,CPU 只能處理傳輸之間的數據。使用乒乓模式,CPU 可以在傳輸周期的一部分時間內處理數據,并降低 NAK 被要求“趕上”數據處理要求的可能性。多數據包緩沖傳輸模式另一個很有用的模式,可以讓 MCU 的數據傳輸更高效。這個特性叫做“多數據包緩沖傳輸模式”。如果你要通過 USB 端口傳送的數據包,超過了全速 USB 的 BULK 傳輸模式所允許的最大值(64字節),那么就可以用上這個模式。以前,你需要在主機上把數據包分成小塊,然后在接收端把它們合并,這會增加中央處理器( CPU )的負擔。不過現在,多數據包緩沖功能加入了 USB 設備,它會在數據包超過 USB 標準大小時自動幫你分割和合并數據。重要的是,這個模式還能減少中斷的次數,因為只有在整個傳輸結束后才需要中斷 CPU。這意味著,CPU 可以處理其他任務,或者進入休眠模式,直到整個傳輸完成并且準備好處理。最后:結合“乒乓緩沖”和“多傳輸模式”,你可以把傳輸的帶寬提升,更重要的是,在使用這兩個功能的情況下,CPU 的負擔也降低。這兩個功能的結合,不僅在性能上有所改進,而且還能節省能源。



        關鍵詞: Digikey DMA控制器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 那曲县| 沂南县| 满城县| 榆中县| 景宁| 大余县| 塔城市| 定陶县| 紫云| 密云县| 宁远县| 类乌齐县| 阜南县| 南丹县| 南木林县| 特克斯县| 淮阳县| 怀远县| 信丰县| 鸡东县| 芷江| 潼南县| 宁海县| 邢台县| 德江县| 滕州市| 普兰店市| 洪洞县| 乐昌市| 浦江县| 镇雄县| 赤峰市| 岑溪市| 应用必备| 樟树市| 南华县| 宝坻区| 垣曲县| 武穴市| 许昌市| 冕宁县|