Bluetoothメッシュを使用したBluetooth Low Energyスマートアプリケーションの設計 - 第 1 部

DigiKeyの北米担当編集者の提供

編集者メモ:この2部構成シリーズの第1部では、Bluetooth mesh 1.0プロトコルのアーキテクチャと機能について詳しく説明します。このプロトコルは、Bluetooth Low Energyファームウェアの補完スタックとして導入されており、Bluetooth Low Energyでオープン標準のメッシュネットワークを可能にします。この記事ではBluetoothメッシュの長所と短所についても詳しく説明します。設計者はこの記事を参考にして、Bluetoothメッシュと他の低電力ワイヤレス技術の選択肢を比較し、使用しているワイヤレスアプリケーションに適しているかどうかを判断できます。第2部では、DigiKeyのサプライヤから入手できるICと開発キットを使ってBluetoothメッシュをBluetooth Low Energy設計に統合する方法を説明します。

メッシュネットワークは、範囲制限の克服、スケーラビリティの簡素化、堅牢性の組み込みを実現するため、スマートホームおよびスマート産業アプリケーションを対象とする低電力ワイヤレス技術の主要要件になっています。しかし、Bluetooth Low Energyの使用を望んでいる設計者は、最近までメッシュネットワークのサポートがないことに不満を持っていました。

このサポートの欠落によって、Bluetooth Low Energyは最適で広くサポート可能であっても、スマートホームアプリケーションにはZigbeeやThreadなどの他の技術が選ばれていました。(DigiKeyの記事「低電力ワイヤレス技術の比較」を参照してください)。

Bluetooth SIGは、補完仕様としてBluetooth mesh 1.0を導入することでこの弱点を解決しました。この仕様には、追加のハードウェアは不要で、すべてのBluetooth Low Energyチップ(v4.0、4.1、4.2、および5)で動作できます。一部のベンダは、この仕様の独自のファームウェア実装と関連の開発ツールを使ってBluetooth mesh 1.0をすでにサポートしています。

ただし、新しい仕様を採用したメッシュネットワーク設計を開始する前に、設計者は、メッシュのBluetooth SIGの実装と他の技術の違いを十分に理解しておく必要があります。たとえば、シンプルさ、消費電力、および柔軟性に関するトレードオフについては、これらの違いが設計の選択やプロセスに影響するため把握しておく必要があります。

この記事ではこの仕様を取り上げて、設計者向けにBluetoothメッシュのアーキテクチャを説明します。動作の特性について、またスマートホームやスマートアプリケーション(スマート照明など)のサポートについて説明します。この記事の最後に、最適なBluetoothメッシュ設計ツールとサポートしているハードウェアおよびソフトウェアソリューションを紹介します。

メッシュネットワークの利点

Bluetooth Low Energyは当初、ワイヤレス技術を、バッテリ容量があまり大きくないペリフェラルデバイスに拡張して「クラッシックな」Bluetoothを補完するために設計されました。ペリフェラルの例として、心拍数ベルトのようなスポーツセンサやワイヤレス制御のおもちゃなどがあります。各ペリフェラルは独自のチャンネルで、スマートフォンなどの中央の監視デバイスと通信して、スター型ネットワークトポロジを形成します。

スマートフォンとの相互運用性などにより、Bluetooth Low Energyは、照明制御などの用途向けのスマートホームを含む他のセクタに、すぐに広まりました。この種の用途では、スター型ネットワークの短所がすぐに明らかになりました。

たとえば、Bluetooth Low Energyソリューションでは、同時接続できる数には制限があります(通常は8個)。その数を超える電球を使用する照明設定は、単一のコマンドで制御できず、遅延が生じます。2つ目に、大きい家では、離れた場所にある電球は中央コントローラの範囲外になる場合があります。

メッシュネットワークでは、中央のデバイスが個々のペリフェラルデバイスと通信するのではなく、複数のノードを接続する双方向チャンネルをホップすることで、ネットワーク内のあるポイントから他のポイントにメッセージがリレーされます。この方法では、メッシュネットワークは、接続された多数のデバイスの同時制御、範囲制限の克服、冗長性の組み込みを可能にし、すばらしいメリットをもたらします(図1)。

メッシュネットワークトポロジの図

図1:メッシュネットワークトポロジ。複数のノードを接続する双方向チャンネルをホップすることで、ネットワーク内のあるポイントから他のポイントにメッセージをリレーできます。(画像提供:Silicon Labs

Bluetoothメッシュスタック

Bluetooth Core Specificationバージョン4.0の一部として導入された後、Bluetooth Low Energyはバージョン4.1、4.2および5まで改訂されています。Bluetooth 5では、範囲、スループット、ブロードキャスト、共存性の改善が行われています(DigiKeyの記事 「IoTの要件を満たすBluetooth 4.1、4.2、および5対応Bluetooth Low Energy SoCおよびツール」を参照してください)。

最新製品の導入として、Bluetooth mesh 1.0はBluetooth 5のみへのアップグレードが可能と推測される場合がありますが、それは違います。従来(4.0、4.1、4.2、5)のどのBluetooth Low Energyチップでも、1回ファームウェアをアップグレードするだけでBluetoothメッシュを実行するよう修正できるため、現場でのインストールで新しい技術を活用できます。

この下位互換性は、BluetoothメッシュがBluetooth Low Energyスタックと一体ではなく、7つのレイヤで構成される別の新しいエンティティであることに基づいています(図2)。

7レイヤスタックで構成されるBluetoothメッシュの図

図2:Bluetooth Low Energyプロトコルを補完する7レイヤスタックで構成されるBluetoothメッシュ。(画像提供:Bluetooth SIG)

Bluetoothメッシュノードはメッセージを受け取ると、基になるBluetooth Low Energyスタックから、ベアラレイヤ経由でネットワークレイヤまでメッセージを受け渡します。ネットワークレイヤはさまざまなチェックを適用して、メッセージをトランスポートレイヤに渡すか、破棄するかを決定します。

Bluetoothメッシュ仕様では、Bluetooth Low Energyホストレイヤと一部の概念を共有するが、互換性がない完全に新しいホストレイヤが定義されています。これは、最初からメッシュネットワークを含めて設計された、ZigbeeやThreadなどの競合テクノロジとは若干異なります(図3)。

Bluetoogh Low Energyプロトコル(ダークブルー)内でのBluetoothメッシュスタック(ライトブルー)の配置

図3:Bluetoogh Low Energyプロトコル(ダークブルー)内でのBluetoothメッシュスタック(ライトブルー)の配置。Bluetoothメッシュ仕様では、Bluetooth Low Energyホストレイヤと一部の概念を共有するが、互換性がない完全に新しいホストレイヤが定義されています。(画像提供:Nordic Semiconductor

Bluetoothメッシュノード

Bluetoothメッシュでは次の4つのタイプのネットワークノードを使用します。

リレーノードは、ネットワーク上でパケットを受信し、転送します。リレーノードの欠点は、常にアラート状態を維持する必要があるため、消費電力が大幅に増えることです。これは、スマート照明など主電源で駆動する用途の欠点ではなく、ネットワークに組み込まれているスイッチなど主電源以外で駆動するノードの問題です。

低電力ノード(LPN)では、Bluetooth Low Energyの標準節電特性(つまり、長期間スリープ状態を維持する)が採用されているため、バッテリや環境発電から長期間動作できます。各LPNは主電源で駆動するフレンドノードに接続されています。このノードは常に起動状態のままで、LPN宛てのすべてのメッセージをキャッシュします。LPNは(事前に指定されたスケジュールに従って)受信モードになると、キャッシュしたメッセージを受け入れ、指示どおりに動作し、節電スリープモードに戻ります。

プロキシノードでは、Bluetoothメッシュスタックを含まないデバイスをBluetoothメッシュネットワークに接続できます。これは、消費者が従来のスマートフォンを使ってスマート照明ネットワークを制御することを希望する場合に使うと便利です。相互作用は、ノードとデバイスの汎用属性プロファイル(GATT)インターフェースの両方を通じて実行されます(図4)。

4つのノードタイプを使用するBluetoothメッシュの図

図4:4つのノードタイプを使用するBluetoothメッシュ。この図では、左端の電球を除く、すべての電球とスイッチが主電源駆動のリレーノードになっています。(画像提供:Ericsson)

温度センサはバッテリ駆動のLPNで、左端にある電球で形成された主電源駆動のフレンドシップノードからメッセージを定期的に受信します。スマートフォンは、BluetoothメッシュスタックではなくBluetooth Low EnergyスタックのGATTインターフェースを使用してプロキシノードを形成します。

新しいノードがルーチンのメッシュ動作に参加するには、プロビジョナによって事前にプロビジョニングされる必要があります。これは、ネットワーク内のすべてのノードにアクセスできる信頼できるデバイスです。新しいノードには、ネットワークおよびデバイスキーとともにアドレスが割り当てられます。プロビジョニング後、デバイスキーを使用して安全なチャンネルを確立して新しいノードを構成します。Bluetoothメッシュは最大32,000個のノードをサポートできます。

Bluetoothメッシュアーキテクチャ

Bluetoothメッシュでは「フラッディング」技法を使ってネットワーク上でメッセージを送信します。すべてのパケットは、ターゲットに到達するまでネットワーク内のすべてのノードにブロードキャストされます。メッセージは、単一ノード、ノードのグループ、またはすべてのノードをターゲットにできます。

ノードのグループは、ネットワークの要素(単一ルームの照明など)を定義するグループアドレスを使ってターゲット化されます。また、仕様では4つの固定グループアドレスとしてAll-proxies、All-friends、All-relaysおよびAll-nodesを定義してノードタイプを特異的にターゲットにします(LPNはフレンドノードに依存するため具体的にアドレス指定できないことに注意してください)。

フラッディングメッシュアーキテクチャとグループアドレス指定の選択は、Bluetoothメッシュがスマートホーム用途に適合することを示します。たとえば、フラッディングメッシュでは、スイッチからの「ON」コマンドが、コマンドを受信しそれに従って動作するすべてのノードを含むスマート照明ネットワーク内を伝播できます。ターゲットグループ内の照明は、ほぼ瞬時に明るくなります。ネットワークの最小遅延は、スター型ネットワークのような、接続されている各照明に個々のコマンドを伝送するために中央のデバイスを必要とするネットワークよりも、大幅に短くなります。

通常の動作では、Bluetooth Low Energyのアドバタイジングチャンネルを使って、Bluetoothデバイスの存在がアドバタイズされ、通信を望む他のデバイスがないかスキャンされます。他のデバイスとペアになると、通信は37の全帯域幅チャンネルの1つに移動し、スループットが加速します。

一方、Bluetoothメッシュは、引き続きアドバタイジングチャンネルを採用して情報を転送するのではなく、ノードがリンクされた後にすべての帯域幅チャンネルに移動しないことで状況をシンプルにし、遅延を短くします。

この配置の欠点は、ネットワーク帯域幅が低減され、3つのスループット制限周波数ですべてのトラフィックが処理されるため輻輳のリスクがある点です。輻輳を処理するために2つのメカニズムが動作します。1つ目は、特定のパケットをリレーできる回数を定義する(通常の値は3ステップ)「Time-To-Live」(TTL)カウンタです。2つ目は、メッシュを完全に循環した(この時点で、これ以上の伝送は不要と見なされます)パケットをキャプチャするパケットキャッシュです。

開発者は、オプションの帯域幅保持リレー機能を採用することもできます。この機能ではノードはパケットを受信できますが、受け渡すことはできません。トレードオフは柔軟性の喪失です。

Bluetoothメッシュ:プロファイルの代わりのモデル

Bluetoothメッシュは、多くの使用例で共通の情報構造を共有できるGATTプロファイルを使用して、Bluetooth技術のアーキテクチャに従います。ただし、Bluetoothメッシュスタックでは、これらのプロファイルをモデルと呼びます。

1つのモデルは特定の1つの動作またはサービスを表し、一連の状態とこれらの状態で動作するメッセージを定義します。標準モデルは、デバイス設定、センサ読み取り、照明制御などの一般的な使用シナリオに対応します。ベンダはカスタムモデルを作成することもできます。

ノード内のモデルは要素に配置されます。各要素は一意のアドレスを持つメッシュ内の仮想エンティティとして機能します。各着信メッセージは要素内のモデルで処理されます(図5)。

要素にグループ分けされたモデルが組み込まれたネットワークノード(メッシュデバイス)の図

図5:各ネットワークノード(メッシュデバイス)には要素にグループ分けされたモデルが組み込まれます。各要素には一意のアドレスがあり、要素内のモデルは着信メッセージを処理します。(画像提供:Nordic Semiconductor)

モデルは「パブリッシュおよびサブスクライブ」システムを通じて相互に対話します。パブリッシュではメッセージが送信され、ノードは処理のために特定のアドレスに送信されたメッセージをサブスクライブするよう設定されます。

図6では、左端の照明スイッチ(Switch 1)はKitchenグループアドレスにパブリッシュしています。Light 1、Light 2、およびLight 3のノードはKitchenアドレスをサブスクライブするため、このアドレスにパブリッシュされたメッセージを受信、処理し、メッセージ(「on」および「off」コマンドなど)に応じて動作します。Light 3はDining Roomもサブスクライブするため、Switch 1からだけでなくSwitch 2からも動作できます。

パブリッシュおよびサブスクライブシステムで互いに対話するモデルの図

図6:モデルはパブリッシュおよびサブスクライブシステムで互いに連携します。1つのモデルは複数のパブリッシャをサブスクライブできます。(画像提供:Bluetooth SIG)

(モデルは関連対象です。この記事にまとめられている内容よりさらに詳しい情報についてはリファレンス1を参照してください。)

Bluetoothメッシュを使用した設計

Bluetooth Low Energyベンダの一部は標準準拠のBluetoothメッシュスタックを導入しています。Bluetoothメッシュは確立されたBluetooth Low Energyプロトコルの補完であるため、開発者は、Bluetoothメッシュを利用するために成熟した実証済みのBluetooth Low Energyスタックを新しいスタックと置き換える必要はありません。また、Bluetoothメッシュファームウェアによって技術のすべての機能が新しい、または既存の設計で利用できるようになるため、開発者は新しい大量のコードを作成する必要がありません。

たとえば、Nordic Semiconductorは最近nRF5 SDK for Meshを開発キットのラインナップに加えました。このソフトウェア開発キットでは、ドライバ、ライブラリおよび例を選択でき、いくつかの統合開発環境(IDE)およびCMakeやSEGGER Embedded Studioなどのコンパイラで動作する設計になっています。

コンパイルされたコードは、この会社のnRF52832シリコンに基づくnRF52 DK開発キットで動作します。

Nordicのドキュメントには、Bluetoothメッシュスタックのコンパイル方法、メッシュのプロビジョニング方法、ネットワークの構築方法、および新しいモデルの作成方法に関する明確な手順を含む、メッシュネットワークの開発方法の詳細が記載されています。

以下の図7では、新しいデバイス(電球)がnRF5 SDK for Meshを使ってプロビジョニングおよび設定されています。この図では、電球が、参加するネットワークを探していることをプロビジョナに通知しています。プロビジョナは電球のビーコンを検証し、ネットワークに参加するよう電球を招待します。認証に成功すると、ネットワークに参加するために必要なキーとアドレスがデバイスに与えられ、構成の準備が行われます。次に、電球に「ホームオートメーション」アプリケーションキーが与えられます。「OnOff Server」(電球を制御する)のパブリッシュ状態が設定され、最終的に「照明グループ」へのサブスクリプションが追加されます。

Nordic SemiconductorのRF5 SDK for Meshによる電球のプロビジョニングと構成の図

図7:Nordic SemiconductorのnRF5 SDK for Meshを使用したメッシュネットワークでの電球のプロビジョニングと構成。(画像提供:Nordic Semiconductor)

Silicon Labsでも、EFR32 Blue Gecko Bluetooth Starter KitでBluetoothメッシュを提供しています。この会社では、3~4個のキットを購入して試作のメッシュネットワークを構築することを推奨しています。キットはこの会社のEFR32MG1 Bluetooth Low Energy SoCに基づいています。ハードウェアに加え、開発者にはBluetooth SDKとBluetooth mesh SDKも必要です。これらはどちらもこの会社のウェブサイトからダウンロードできます。

Silicon LabsのBluetoothメッシュ技術では、Simplicity Studio IDEを起動および実行する必要があります。この開発ツールには、コンパイル済みのデモ、アプリケーションノートおよび例が含まれています。Androidアプリでは、スマートフォンアプリケーションからBluetoothメッシュノードをプロビジョニング、構成および制御できます。

STMicroelectronicsでは、同社のBlueNRG-2 Bluetooth Low Energy SoCに基づいてネットワーク化されたデバイスの開発を可能にするSDKを使用して、Nordic SemiconductorやSilicon Labsと同様のアプローチを採用しています。

結論

Bluetoothメッシュによって、Bluetooth Low Energyにおいてメッシュネットワークが可能になり、スマートホーム用途専用のメッシュファームウェアを使用する必要がなくなります。

この技術では、消費電力の若干の増加および柔軟性に対して、シンプルさとのトレードオフが生じます。主な利点は、この技術が最新のBluetooth 5製品だけでなく、すべてのBluetooth Low Energyチップに対応することです。

Bluetooth Low Energyチップのベンダは、成熟したハードウェアおよびプロトコルファームウェア製品を補完するためにBluetoothメッシュソフトウェアの導入を開始しています。

この記事の第2部では、すぐに利用できるハードウェア、ファームウェア、および開発キットを使ってBluetoothメッシュをBluetooth Low Energyに統合する方法について詳しく説明します。

リファレンス

  1. Bluetoothメッシュネットワーク/開発者向け入門」Bluetooth SIG、2017年8月
DigiKey logo

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

出版者について

DigiKeyの北米担当編集者