組み込みシステムは音楽の「Composition」(コンポジション)に似ています。音楽でコンポジションは作曲です。異なる世界ですが、ロボット作りは作曲に似ています。
◀ この記事の前に: 複数のMCUをつなぐ
▶ この記事の次に:
作曲とロボット設計の類似点
一見まったく異なる分野に見える 作曲 と ロボット設計 ですが、創造のプロセスや思考の枠組みには共通点が多くあります。
Design Considerations M-Link2の目的
Qumcum Lab.のメインMCUである Body MCUと、オプションで追加搭載する Body MCU2 はともに Leafony Blockです。
Body MCU2は利用者により多彩な活用方法が考えられます。Body MCUや Peripheral MCUは周辺回路が多く接続していてこれらの制御を行う必要があります。リアルタイム制御のため MCUの多くのリソースを使います。計算などの CPUを中心にした処理や エッジ AIを使用した場合に十分なリソースを割くことができない場合もあります。Body MCU2 は周辺回路の接続を少なくすることもでき、計算などの CPUを中心にした処理に特化したり、オリジナルの Leafを拡張したりできます。
この場合、メイン MCUとの通信は大切でありまた頻繁に行われることもあります。そのため、多用途に使用される M-Linkと別に専用の通信を行うことを目的に M-Link2を設けました。
Technical Considerations SPI はマスタ主体
よく使われる UARTは通信の両端末ともほぼ対等で接続しています。SPI( Serial Peripheral Interface )による通信は両端末が対等でなく、主従関係があります。通信の主導権を握る端末が「マスタ」、従属する端末が「スレーブ」です。
どちらからの送受信もマスタから発するクロックで動作します。スレーブの有効化もマスタからの信号で行います。マスタが送信や受信を行う場合は、自らが主体となります。必要なタイミングに必要なデータを送信できます。スレーブは別な手段でマスタに送信したいことを伝えます。その通知によりマスタが何らかの(ダミーも可能)データをスレーブに送信すると同時にスレーブ側がマスタにデータを送信することができます。
通信は送信と受信を同時に行います。送信だけの場合や受信だけの場合でも送受信が行われます。マスタ主体であることと送受信が必ず同時に行われることが UARTと異なります。プログラムの設計ではこの特徴に従う必要があります。
データの多くは複数バイトですので、そのバイト数だけ送信を行う必要があります。そのため、データ長は固定の場合が多いのですが M-Linkは可変長のデータを送受信できます。通信のプロトコルでデータ長を伝えるようにしているためです。
参考情報
参考になる情報は以下のとおりです。
このホームページ内
- 発音・発声( DAC出力 / ハードウエア ): MCUの DACを使用して発音や発声を行うハードウエアを説明します。
- Speak interpreter ( 概要 ): 発声処理の最上位、Speak interrupter の概要です。
- Speak interpreter( 操作説明 ): アプリケーションからの操作方法です。( API )
- Speak interpreter( コード ): コードの詳細を説明します。
- Voice driver( 概要 ): 発音そのものの処理です。( API )
- Voice driver( 操作説明 ): 個々のサーボモータを制御する方法です。
- Voice driver( コード ): コードの詳細を説明します。
- 音声合成ライブラリ: ライブラリの概要や導入方法を説明します。
- 省電力制御( DAC出力増幅回路 ): DAC出力増幅回路の電力制御を行います。