JPY | USD

複数のプロトコルと互換性を持つメッシュネットワークデバイスの迅速な作成

著者 Jim Turley(ジム・ターリー)

Digi-Keyの北米担当編集者 の提供

コネクテッドデバイスは多くの場合ネットワークに接続して使用しますが、その接続には、ネットワークの堅牢性、エリアカバレッジ、低電力を重視した複数のメッシュトポロジのいずれかを使用します。製品の設計者は一般的に、これらの競合する相互互換性のないプロトコルのいずれかを選択してから、所定のハードウェアプラットフォームにソフトウェアスタックを実装する必要がありました。これらのタスクは両方とも容易ではなく、今では両方とも不要な場合があります。

統合技術の進化によって、製品開発者は低コストでフットプリントが小さく、Thread、Zigbee、Bluetooth Low Energy(BLE)など競合する複数の標準プロトコルに対応する既存のメッシュネットワークコントローラを選ぶことができます。これにより、次のようなさまざまな度合いの柔軟性が得られます。

  • 製品の開発者は設計作業を進めて後から設計サイクルの中でプロトコルを選択できる。
  • 開発者は、1つのデバイスと開発プラットフォームを使用して、テストを実施し最善のプロトコルを経験に基づいて選択できる。
  • 1つのプラットフォームを複数のアプリケーションと地域で使用できる。
  • 1つのプロトコルを使用してデバイスを展開し、後からファームウェアアップグレードによって別のプロトコルに変更できる。

この記事では、ワイヤレスメッシュネットワークの基礎を説明してから、Silicon LabsMighty Geckoワイヤレスシステムオンチップ(SoC)ファミリと関連する開発ツールをご紹介します。次に、設計者がこれをプラットフォームとして使用し、各種の競合するネットワークプロトコルに基づいて機能するメッシュネットワークを迅速に作成する方法について解説します。

ワイヤレスメッシュネットワークとは

ワイヤレスメッシュネットワークは、馴染みのあるWi-Fiのようなスタートポロジネットワーク、またはポイントツーポイントプロトコルとは異なり、オリジナルのBluetooth仕様に基づきます。メッシュネットワークでは、データパケットが1つのコネクテッドデバイスから別のデバイスに「ホップ」しながら転送先に到達できます。また、個々のデバイスはネットワーク上の別のデバイス1台の範囲内にあるだけで、同じネットワーク上にある他の全デバイスと通信できます。たとえば、地下室のデバイスと屋根裏部屋のデバイスのいずれにも、直接通信するには十分なRFエネルギーがない場合でも、相互の通信が可能になります。優れたメッシュプロトコルはアプリケーションの要件に応じて経路を最適化します。

スター型ネットワークとメッシュネットワークの比較図

図1: スター型ネットワーク(上図)には全ノードが通信で必ず経由する中央ルータ、つまりアセスポイントがある一方、メッシュネットワーク(下図)では全ノードがネットワーク内で協調的にデータを配信します。(画像提供:Silicon Labs)

メッシュネットワークではすべてのデバイスが協調的にメッセージを宛先に転送するので、ノードに欠損、故障、停電があってもネットワークにはそれらへの耐性があります。もし各ノードが他の複数ノードの範囲内にある場合は、このホッピング&ルーティング機能によりメッシュネットワークの堅牢性と耐故障性がさらに高まります。この概念は、インターネットの基盤であるTCP/IPプロトコルスイートに似ています。データパケットは必ずしも直結した経路を経由しなくとも、最終的にそれぞれの宛先を見つけます。

メッシュネットワークプロトコルには競合するプロトコルがいくつかあり、すべて相互の互換性はありませんが、同じような基礎となる原理の上に成り立っています。その例には、Zigbee、Thread、BLEの3種類があります。これらはいずれも同じ2.4ギガヘルツ(GHz)帯で機能しますが、異なるメッシュプロトコルを使用するので相互運用性はありません。

それぞれのワイヤレスメッシュプロトコルには固有の長所と短所があり、各自の要件に最も相応しいかは開発者の判断に委ねられます。開発者はいずれかの標準プロトコルを採用する代わりに、独自の専用ワイヤレスメッシュネットワークを作成する場合もあります。その理由としては、セキュリティ強化や製品の差別化、または独自の機能セットを実装することが考えられます。

Mighty Geckoのご紹介

柔軟性を最大化して設計や開発の時間を短縮するために、複数の標準プロトコルをサポートするワイヤレスネットワークコントローラを選ぶのは良い方法です。この場合、4つの面で柔軟性を得られます。第1に、有用な顧客からのフィードバックや市場からの情報を得られる、設計サイクルのかなり後の段階でまで、選択するネットワーク標準の決定を先延ばしにできます。第2に、開発者は異なるネットワーク標準をラボでテストし、経験的な根拠に基づいて最善の標準を選択できます。第3に、各種のネットワーク標準を使用して、単一のプラットフォームを複数の製品に展開できます。これは、世界の異なる地域の市場でサービスを提供する場合に特に有利です。第4に、デバイスまたはプラットフォームを現場で入れ替え、強化、またはアップグレードできます。これらを実施するために、デバイス/プラットフォームがサポートするネットワークを変更することもできるでしょう。

このような柔軟性を設計者にもたらすために、Silicon LabsはメッシュネットワークワイヤレスSoCデバイスのMighty Geckoファミリを開発しました(図2)。このファミリ(社内でEFR32MGと呼ばれる)には関連するいくつかのメンバーがあり、いずれも同じArm®の40メガヘルツ(MHz)Cortex®-M4 32ビットプロセッサコアに基づいています。

Silicon LabsのMighty Gecko SoCファミリの図(クリックして拡大)

図2: ArmのCortex-M4に基づくMighty Gecko SoCファミリにはワイヤレスメッシュネットワークコントローラに必要なほぼすべての要素が含まれています。(画像提供:Silicon Labs)

どれを選ぶかは、オンチップフラッシュメモリのサイズ(256、512、または1024キロバイト(KB))、内部SRAMのサイズ(32、64、128、または256KB)、パッケージタイプ、温度範囲が基準になります。すべてのMighty Gecko SoCは産業向けの温度範囲(-40°C~+85°C)仕様で、一部には自動車業界向けに拡張された温度範囲(-40°C~+125°C)仕様の製品も含まれています。

SoCとして、Mighty Geckoにはワイヤレスネットワークコントローラに必要なほぼすべての要素が含まれています。ブロック図左上の無線セクションには2つのRFセクションが示されており、1つはThread、Zigbee、BLEで使用する最大19dBmの送信電力による2.4GHz帯向け、もう1つは専用ネットワーク実装用の最大20dBmの送信電力による別のサブGHz無線向けです。

チップには、広範なオンチップ電源管理、1.8~3.8Vの動作電圧範囲、統合DC/DCコンバータ、さらに無線パケットを受信するまでチップ全体で低電力スタンバイモードでのスリープが可能な「Wake on Radio」機能なども含まれています。さらに、内蔵の信号強度検出、プリアンブルパターン検出、フレーム検出、タイムアウトにより、チップに関連する無線送信のみでチップを起動することも可能で、必ずしもすべての無線トラフィックで起動するとは限りません。

最初からMighty Geckoベースの基板を設計するのではなく、始めは既製の評価および開発キットを使用する方が簡単です。SLWSTK6000Bメッシュスターターキットには、小規模のメッシュネットワークの構築、テストに必要なすべてのハードウェア、ソフトウェアが用意されています。

このキットには3つの同じ基板セットが含まれており、それぞれメインボードと選択可能なプラグイン無線ボードから構成されます(図3)。初期の評価またはソフトウェア開発では1つのセットを使うのが便利ですが、ネットワークのテストには少なくとも2つのセット、メッシュ機能のテストには3つ以上のセットが必要です。この条件に沿うように、SLWSTK6000Bキットには3つのセットが同梱されています。

Silicon Labsが提供するSLWSTK6000Bスターターキットの画像

図3: 1つのSLWSTK6000Bスターターキットには同一のメインボードとプラグイン無線ボードが3セット同梱されており、小規模なメッシュネットワークを構築できます。(画像提供:Silicon Labs)

メインボード中央にある大きなICのように見える部品は、実はLCDディスプレイです(図4)。この128 x 128ピクセルのモノクロディスプレイはきわめて省力型で、内部にピクセルデータを保存しリフレッシュが必要ありません。Mighty Geckoマイクロコントローラチップは、小さい方のプラグイン無線ボードに配置されています。

Silicon LabsのSLWSTK6000Bメッシュスターターキットに含まれる一組のメインボード/無線ボードの画像

図4: SLWSTK6000Bメッシュスターターキットに含まれる一組のメインボード/無線ボード。中央に見える大きなデバイスはビットマップのLCDディスプレイです。(画像提供:Silicon Labs)

プラグイン無線ボードはどのメインボードでも着脱可能です。キットには各メインボードに2種類の無線ボードが同梱されます(合計で6個の無線ボード)。キットに含まれている基板は、いずれもZigbeeとThreadを2.4GHz帯でサポートしますが、別のRF特性と周波数を持つ別の基板も提供されており、専用ネットワーク向けにサブGHz周波数をサポートする基板などがあります。

ハードウェアを組み立てたらソフトウェアIDEをインストールして実行する前に電源を入れることをお勧めします。ただしこれは必須ではありません。無線ボードを選択して、メインボードの適合するヘッダにゆっくりと押し込むだけです。給電にはいくつかの方法がありますが(バッテリ、ACアダプタ、またはUSB)、USBケーブルを使用するのが最も簡単でメリットもあります。USB接続端子はメインボードの左端(無線ボードとは反対側)にあります。

基板に電源が入ると、USBコネクタ近くにある青いLEDが点灯し、中央の四角いLCDが光ります。その少し後に、緑の「ハートビート」LEDも光ります。

次の手順のために、ハードウェアをUSBケーブルで開発システムに接続したままにすることをお勧めします。小型の3極パワースイッチ(メインボードの左下隅)を右端の「AEM」位置に設定するのも良い方法です。

ソフトウェアのインストール

Simplicity StudioはSilicon Labsのオールインワン統合開発環境(IDE)で、Mighty Geckoだけでなく同社の他の各種マイクロコントローラでも使用できます。この無料ソフトウェアをダウンロードするには、同社のSimplicity Studioダウンロードページにアクセスしてください。先の手順に進む前にSimplicity Studioをインストールして実行します。

Simplicity Studioを起動して、表示される手順に従い、開発キットハードウェアと目的のソフトウェア用の新たな設定手順を実行します。このプロセスは簡単ですが、ユーザーが決める項目がいくつかあり、場合によりハードウェア登録の手順も行います。

上記でお勧めしたようにメインボードを開発用PCに接続したままの状態では、Simplicity Studioはインストール中にハードウェアのUSBインターフェースを検出し、ハードウェア固有の機能を自動でダウンロードして設定します。

次の手順では、この開発キット用にハードウェア専用ソフトウェアをダウンロードします。Simplicity Studioには2つのオプションとして、 [Install by Device(デバイスによるインストール)]または[Install by Product Group(製品グループによるインストール)]があります(図5)。いずれの場合も結果は同じですが、前者のオプションを選ぶとより簡単なので、大きい緑の[Install by Device(デバイスによるインストール)]ボタンをクリックします。

Simplicity Studioソフトウェアの画像

図5: Simplicity Studioにはプロジェクト専用ソフトウェアサポートをロードする2つの方法として[Install by Device]または[Install by Product Group]があります。(画像提供:Digi-Key Electronics)

Simplicity Studioは開発ボードを自動で検出しますが、もし検出しない場合は、必要なソフトウェアパッケージを手動で簡単に指定できます。検索ボックスに「SLWSTK6000B」と入力します。(図6)。提案されたソフトウェアサポートパッケージをダブルクリックし、[Next(次へ)]をクリックします。

Simplicity Studio検索ボックスの画像

図6: 検索ボックスにSLWSTK6000Bを入力すると、必要なソフトウェアを瞬時に探すことができます。(画像提供:Digi-Key Electronics)

次に、このハードウェア構成で利用可能な別のソフトウェアサポートがSimplicity Studioでハイライトされます。このソフトウェアの一部は、Silicon Labsに登録済みのユーザーおよび/または登録済みハードウェアに制限されます。このため、一部のオプションはグレーで表示され一時的に利用不可の状態です(図7)。

Simplicity Studioソフトウェアアクセスの画像

図7: 一部のソフトウェアはハードウェア購入証明の条件付きでアクセスできます。(画像提供:Digi-Key Electronics)

Thread、ZigbeeなどのプロトコルのソフトウェアスタックにはSLWSTK6000B開発キットなどのメッシュ対応ハードウェアの購入証明が必要になるので、手順を進める前に以下の登録手順を完了してください。

始めに、Mighty Geckoスターターキットボックスの外側にある10桁の16進数コードを確認します。(10桁のキーの確認にヘルプが必要な場合は、Silicon Labs Zigbee & Thread Knowledge Baseの「Access to Silicon Labs Wireless Mesh Stacks」を参照してください。)次に、ThreadまたはEmberZNet(Zigbee)オプションのいずれかで[Register Kit(キットを登録)]リンクをクリックします(上の図を参照)。これでハードウェアの登録が完了し、メッシュネットワークのプロトコルスタックを使用できるようになります。[Next(次へ)]をクリックして先に進みます。

最後に、Simplicity Studioが推奨するソフトウェアオプションの長い一覧表が表示されます。たとえば1つ以上のCコンパイラ、オプションのリアルタイムオペレーティングシステム、プロファイリングツールなどのオプションが含まれます(図8)。一部のオプションは必要に応じて手動で有効または無効に設定できますが、通常は推奨されるソフトウェアのロードを受け入れるのが最善の方法です。準備ができたら、[Next(次へ)]をクリックします。

Simplicity Studioの最終的なソフトウェア一覧の画像

図8: Simplicity Studioの最終的なソフトウェア一覧には、1つ以上のCコンパイラ、オプションのリアルタイムオペレーティングシステム、プロファイリングツールなどのインストールが推奨されるすべてのソフトウェアオプションが表示されます。(画像提供:Digi-Key Electronics)

最後に、マスターソフトウェアライセンスの同意書がSimplicity Studioに表示されます。このライセンスは、インストールするすべてのソフトウェアコンポーネントを対象にしています。ライセンスを読み同意して、これが最後となる[Next(次へ)]のクリックを行います。

ソフトウェアのインストールには数分かかります。完了したらSimplicity Studioを閉じて再起動します。Thread、Zigbee、Bluetoothまたはカスタムの専用プロトコルのいずれかを使用してメッシュネットワークアプリケーション作成を開始する準備が整いました。Simplicity Studioには、簡単な設定済みデモ用プログラム、および編集可能なサンプルコードがいくつか含まれており、開発者はこれらを利用してすぐに作業を開始できます。

結論

メッシュネットワークを使用するワイヤレス型コネクテッドデバイスを作成する作業は、互換ハードウェアとテスト済みソフトウェアを含む設定済みキットによって簡単になりつつあります。ハードウェアが持つ柔軟性により、Zigbee、Thread、BLEなど各種のネットワークプロトコルを経験に基づいてすばやく評価できるようになり、さらに将来的に別のプロトコルに変更することもできます。この変更は設計/開発段階で実施するか、または最終製品の展開後でも実施できます。

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。

著者について

Jim Turley(ジム・ターリー)

Jim Turley(ジム・ターリー)氏は、マイクロプロセッサ、半導体テクノロジ、組み込みシステムを専門とするテクノロジアナリスト&ライターですが、かつてはハードウェアエンジニアでした。2001年から2018年まで、彼はSilicon Insiderというアナリスト会社を経営していました。それ以前は、マイクロプロセッサIP(知的財産)関連の小さな上場企業の社長兼CEOを務め、さらに別のマイクロプロセッサライセンス企業のマーケティング担当上級副社長を務めました。彼は7冊の著書を持ち、オンライン雑誌MICROPROCESSOR reportとEmbedded Systems Designの編集長を務めたほか、Embedded Systems Conference(ESC、組み込みシステム会議)の議長も務めました。

出版者について

Digi-Keyの北米担当編集者