[STM32] STM32F4 マイクロコントローラー バス アーキテクチャ

1. STM32システムブロック図

        STM32 マイクロコントローラは、図に示すように、プロセッサ、メモリ、クロック生成 (PLL など)、分配ロジック、システム バス、ペリフェラル (I/O インターフェイス、通信インターフェイス、ADC、DAC、タイマー、PWM、RTC など) で構成されています。図1。

1 マイコンシステムブロック図

2. STM3 バス アーキテクチャ

        STM32 メインシステムは 32 ビット多層 AHB バスマトリクスで構成されており、バスマトリクスにより 8 つのメイン制御バスから 7 つの制御バスへのアクセスを実現し、複数の高速ペリフェラルが混在している場合でも、同時に実行すると、システムは同時アクセスと効率的な運用を実現できます。STM32F407 のバス アーキテクチャを図 2 に示します。

 2 STM32F407 バス アーキテクチャ

        8 つの主要な制御バスは次のとおりです。

  • Cortex™-M4F コア I バス、D バス、S バス
  • DMA1 メモリバス
  • DMA2メモリバス
  • DMA2ペリフェラルバス
  • イーサネット DMA バス
  • USB OTG HS DMA バス

        制御される7つのバスは次のとおりです。

  • 内部フラッシュ ICode バス
  • 内部フラッシュ DCode バス
  • メイン内部 SRAM1 (112 KB)
  • 補助内部 SRAM2 (16 KB)
  • AHB1 ペリフェラル (AHB-APB バス ブリッジおよび APB ペリフェラルを含む)。2 つの AHB/APB バス ブリッジ APB1 および APB2 を使用すると、AHB バスと 2 つの APB バス間の完全同期接続が実現され、周辺周波数の柔軟な選択が可能になります。
  • AHB2周辺機器
  • FSMC

2.1 S0:Iバス

        このバスは、Cortex™-M4F コアの命令バスをバス マトリックスに接続するために使用されます。コアはこのバスを通じて命令をフェッチします。このバスによってアクセスされるオブジェクトは、コードを含むメモリ (内部フラッシュ/SRAM、または FSMC を介した外部メモリ) です。

2.2 S1:Dバス

       このバスは、Cortex™-M4F データ バスと 64 KB CCM データ RAM をバス マトリックスに接続するために使用されます。コアはこのバスを即時ロードとデバッグ アクセスに使用します。このバスによってアクセスされるオブジェクトは、コードまたはデータを含むメモリ (内部フラッシュまたは FSMC を介した外部メモリ) です。

2.2 S2:Sバス

        このバスは、Cortex™-M4F コアのシステム バスをバス マトリックスに接続するために使用されます。このバスは、周辺機器または SRAM にあるデータにアクセスするために使用されます。このバスを介して命令をフェッチすることもできます (ICode よりも効率は劣ります)。このバスは、FSMC を介して、112 KB、64 KB、および 16 KB の内部 SRAM、APB ペリフェラルを含む AHB1 ペリフェラル、AHB2 ペリフェラル、および外部メモリにアクセスします。

2.3 S3、S4: DMA メモリバス

        このバスは、DMA メモリ バス マスターをバス マトリックスに接続するために使用されます。DMA は、このバスを介してメモリとの間でメモリ データ転送を実行します。このバスによってアクセスされるオブジェクトはデータ メモリです。内部 SRAM (112 KB、64 KB、16 KB) と FSMC 経由の外部メモリです。

2.4 S5: DMA ペリフェラル バス

        このバスは、DMA ペリフェラル マスター バスをバス マトリックスに接続するために使用されます。DMA は、このバスを通じて AHB ペリフェラルにアクセスするか、メモリ間のデータ転送を実行します。このバスによってアクセスされるオブジェクトは、AHB および APB ペリフェラルとデータ メモリ (内部 SRAM および FSMC を介した外部メモリ) です。

2.5 S6: イーサネット DMA バス

        このバスは、イーサネット DMA マスターをバス マトリックスに接続するために使用されます。イーサネット DMA は、このバスを通じてメモリにデータにアクセスします。このバスによってアクセスされるオブジェクトは、データ メモリ、つまり内部 SRAM (112 KB、64 KB、16 KB) と FSMC を介した外部メモリです。

2.6 S7: USB OTG HS DMA バス

        このバスは、USB OTG HS DMA マスター インターフェイスをバス マトリックスに接続するために使用されます。USB OTG DMA は、このバスを通じてメモリへのデータのロード/メモリへのデータの保存を行います。このバスによってアクセスされるオブジェクトは、データ メモリ、つまり内部 SRAM (112 KB、64 KB、16 KB) と FSMC を介した外部メモリです。

2.7 バスマトリクス

        バスマトリックスはマスターバス間のアクセス調停管理に使用されます。アービトレーションではラウンドロビン スケジューリング アルゴリズムが使用されます。

2.8 AHB/APB バスブリッジ (APB)

        2 つの AHB/APB バス ブリッジ APB1 および APB2 を使用すると、AHB バスと 2 つの APB バス間の完全同期接続が実現され、周辺周波数の柔軟な選択が可能になります。APB1 および APB2 の最大周波数の詳細については、デバイスのデータシートを参照してください。

3. まとめ

        STM32 バスアーキテクチャを初心者にとって深く理解するのはまだ難しいですが、個人的にはある程度の理解は必要だと考えており、システムブロック図とバスアーキテクチャを理解した上で、ペリフェラルの理解が深まりますプロセッサーと周辺機器は並行して実行されるため、低レベルのドライバーを作成することをお勧めします。外部デバイスについてある程度理解している場合は、ドライバーのプログラミングとデバッグをより簡単に行うために、バス アーキテクチャをより深く理解する必要があります。

おすすめ

転載: blog.csdn.net/m0_54916619/article/details/130037758