ハードウエア

複数のMCUをつなぐ

ロボットには標準で二つのMCUを搭載しています。MCU間は情報交換できるように接続しています。この接続を “M-Link” と名付けました。

◀ この記事の前に: 二つの Leafony Block
▶ この記事の次に: 具体的な複数のMCU接続

搭載するMCUの役割

  1. Body MCU: 中心となる MCU、主にでサーボモータを制御する。Leafony Block( STM32 )
  2. Peripheral MCU: Wi-Fi、Bluetooth、表示、発音などの周辺を制御する。ESP32

複数の MCUは SPI( Serial Peripheral Interface ) で接続しています。

本体ボードには二つ目の Leafony Block を追加搭載することができます。また、ロボットの頭部に頭部ボードを拡張することができます。( 頭部ボードはオプションです。)

  • Body MCU2: 二つ目の Leafony Block
  • Head MCU: センサ類の周辺をとりまとめる。

全体の構成は図のとおりです。青色の矢印は SPIによる MCU間のデータの流れです。緑色の矢印は I2Cによる Leafony Block 間のデータの流れです。これを”M-Link2“と名付けました。

MCU間の接続はSPI

SPI接続にはいくつかの方式があります。標準モードはひとつのマスタにひとつもしくは複数のスレーブが並列に接続した接続方式です。デイジチェーンモードは複数のデバイスを直接接続します。ロボットで使用する接続方式は各MCUをシリアル(直列)に接続するデイジチェーンモード方式です。

標準モード

マスタは選択線(SS1, SS2, SS3)で通信したいスレーブを選択します。(論理負 = Lowにすると選択)マスタは対象とするひとつのスレーブだけと通信できます。
上図の通信は以下のとおりです。
マスタ ⇔ スレーブ1( スレーブ2,3は非対象 )

デイジーチェーン・モード

選択線はひとつ。SSをLowにするとスレーブ全体と通信できる様になります。通信データは順番に各スレーブを回りますので標準モードに比べると通信データの遅延を生じます。
上図の通信は以下のとおりです。
HeadMCU → Peripheral MCU → BodyMCU → ( 元へ・HeadMCU )

MCU間の接続形態

オプションを含めた各MCUを SPIのデイジチェーンモードで接続しました。

Design Considerations  Head MCU から Peripheral MCU にデータを早く伝送したいので、その方向に接続しています。( Head MCU - MOSI → Peripheral MCU - MISO )逆方向の伝送では Body MCUを介すため遅くなります。

Head MCU はオプションです。 Head MCUがない場合は、Peripheral MCUと Body MCUが直結します。
Head MCU がある場合でも省電力機能(別記)で、Head MCU が機能していない時は直結となります。

参考情報

参考になる情報は以下のとおりです。

このホームページ内

他のWebサイト

カテゴリー

最近の記事 おすすめ記事

記事一覧を表示するには、カスタム投稿「ブログ」にて、4つ以上記事を作成してください。

記事一覧を表示するには、カスタム投稿「ブログ」にて、4つ以上記事を作成してください。

TOP