メディア

マイコンに搭載されているDMAって何?Q&Aで学ぶマイコン講座(86)(3/4 ページ)

» 2023年11月14日 10時00分 公開

マイコンのバス構成

 実際のマイコンでは、高速なAHBと消費電力が低いAPBを組み合わせて使用することが一般的です。一般的なAMBA2.0に準拠したArmマイコンのバス構成例を図1に示します。高速バスであるAHB上に、CPUやDMAコントローラー、メモリなどが配置されています。UARTなどの一般的なペリフェラルは、APB上に配置されます。また、AHBとAPBはバスブリッジを介して接続されます。

<strong>図1:マイコンのバスアーキテクチャ構成例</strong> 図1:マイコンのバスアーキテクチャ構成例[クリックで拡大]

DMAコントローラーを搭載したマイコン構成例

 DMAコントローラーを搭載したマイコンの構成例として、STM32G0マイコンの構成を図2に示します。高速なデータ転送が必要なCPU、DMAおよびメモリは、AHB上に配置されています。バスマスターは、CPU、DMA1、DMA2の3つです。各バスマスターは、バスマトリックスのバスアービターにより、ラウンドロビン方式でバス使用時の競合が発生しないよう管理されています。また、CPUを介さずにDMA転送を開始するために、「DMAMUX」というDMA開始要求を管理するコントローラーを搭載しています。

<strong>図2:DMAを搭載したマイコンの構成例</strong> 図2:DMAを搭載したマイコンの構成例[クリックで拡大]

DMAコントローラーの構成

 STM32G0マイコンを例に、DMAコントローラーおよび周辺回路の構成例を図3に示します。

<strong>図3:DMAと周辺回路の構成例</strong> 図3:DMAと周辺回路の構成例[クリックで拡大]

 DMAコントローラーは以下のコンポーネントで構成されています。

  • AHBバスマスターインタフェース:DMA転送を行うインタフェース
  • チャネル:ペリフェラルからのメモリアクセス要求を管理(DMA転送用のチャネルは全12チャネル)
  • アービター:各DMA転送用のチャネルの優先度をもとに、DMA転送の順番を制御
  • 割込みインタフェース:DMA転送完了/50%完了/エラー発生時にCPUに割込みを発生させる
  • AHBスレーブインタフェース:DMA転送の設定を行うためのインタフェース

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.