メディア

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

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

 この記事では、STマイクロエレクトロニクス(以下、ST)の汎用32ビットマイコン「STM32G0シリーズ」*1)に搭載されているDMAを例に、その仕組みと使用例を紹介します。

 DMAコントローラーはバスに接続されるため、バスアーキテクチャの概要を理解しておく必要があります。そのため、まずはマイコン全体のバスアーキテクチャについて解説し、続いてDMAコントローラーを搭載したマイコン構成例、DMAコントローラーの構成、DMA転送の使用方法について解説します。

*1)STM32G0シリーズ

マイコンで使用されるバスアーキテクチャ

 Armコア搭載マイコンでは、AMBA2.0仕様に準拠したバスが使用されることが多く、AMBA2.0仕様には以下のバス仕様が規定されています。

  • Advanced High-performance Bus(AHB):高性能、高クロック周波数のシステムモジュール用バス
  • Advanced System Bus(ASB):高性能システムモジュール用バス。AHB の高性能機能が必要ない場合に適した代替システムバス
  • Advanced Peripheral Bus(APB):低消費電力ペリフェラル向けバス。消費電力を最小限に抑え、インタフェースの複雑さを軽減するよう最適化されています

バス上のコンポーネント

 前述のAHBを例に、バス上のコンポーネントについて説明します。

 AHB上には、下記のコンポーネントが存在します。

AHBマスター

 AHBマスターは、バスマスターです。バスマスターは、アドレスと制御情報を出力し、読み取り/書き込み操作を開始できます。一度にバスをアクティブに使用できるのは1つのバスマスターだけです。バスを使用する際、バスマスターは後述するAHBアービタにバスの使用権を要求し、使用権を取得できたバスマスターのみがバスにアクセスできます。

AHBスレーブ

 AHBスレーブはバススレーブです。バススレーブは、指定されたアドレス空間範囲内の読み取り/書き込み操作に応答します。バススレーブはバスマスターにデータ転送の成功、失敗、待機を応答します。

AHBアービター

 AHBアービターは、バスアービターです。バスアービターは、一度に1つのバスマスターだけがバスにアクセスされることを保証します。複数のバスマスターからバスの使用権の要求があった場合、ラウンドロビン方式や、固定優先度方式に従ってそれぞれのバスマスターに順番に使用権を与え、バス使用時に競合が発生しないようにします。AHBには、バスアービターが1つだけ含まれています。

AHBデコーダー

 AHBデコーダーは、バスデコーダーです。バスデコーダーは、各転送のアドレスをデコードするために使用されます。また、アドレスに対応するスレーブに選択信号を与えます。AHBでは単一の集中デコーダーが使用されます。

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.