連載
マイコンに搭載されているDMAって何?:Q&Aで学ぶマイコン講座(86)(3/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、中級者の方からよく質問される「マイコンに搭載されているDMAって何?」についてです。
マイコンのバス構成
実際のマイコンでは、高速なAHBと消費電力が低いAPBを組み合わせて使用することが一般的です。一般的なAMBA2.0に準拠したArmマイコンのバス構成例を図1に示します。高速バスであるAHB上に、CPUやDMAコントローラー、メモリなどが配置されています。UARTなどの一般的なペリフェラルは、APB上に配置されます。また、AHBとAPBはバスブリッジを介して接続されます。
DMAコントローラーを搭載したマイコン構成例
DMAコントローラーを搭載したマイコンの構成例として、STM32G0マイコンの構成を図2に示します。高速なデータ転送が必要なCPU、DMAおよびメモリは、AHB上に配置されています。バスマスターは、CPU、DMA1、DMA2の3つです。各バスマスターは、バスマトリックスのバスアービターにより、ラウンドロビン方式でバス使用時の競合が発生しないよう管理されています。また、CPUを介さずにDMA転送を開始するために、「DMAMUX」というDMA開始要求を管理するコントローラーを搭載しています。
DMAコントローラーの構成
STM32G0マイコンを例に、DMAコントローラーおよび周辺回路の構成例を図3に示します。
DMAコントローラーは以下のコンポーネントで構成されています。
- AHBバスマスターインタフェース:DMA転送を行うインタフェース
- チャネル:ペリフェラルからのメモリアクセス要求を管理(DMA転送用のチャネルは全12チャネル)
- アービター:各DMA転送用のチャネルの優先度をもとに、DMA転送の順番を制御
- 割込みインタフェース:DMA転送完了/50%完了/エラー発生時にCPUに割込みを発生させる
- AHBスレーブインタフェース:DMA転送の設定を行うためのインタフェース
Copyright © ITmedia, Inc. All Rights Reserved.