メディア

Bluetooth meshネットワークの基本概念(後編)Bluetooth mesh入門(2)(1/3 ページ)

Bluetooth meshを正しく理解するための基礎講座。第2回となる今回は、Bluetooth meshのノード間のデータ転送で使われる「メッセージ」や、そのメッセージで使われる「アドレス」について解説します。

» 2018年07月03日 11時00分 公開

「前編」はこちらから

 Bluetooth meshでは、数十、数百、数千ものデバイス間での通信を可能にする、セキュアで信頼性の高い大規模ネットワークを構築できます。Bluetooth meshネットワークの基本概念の前編では、ノード、エレメント、モデル、ステートといったBluetooth meshネットワークの基本概念を解説しました。今回は、アドレス指定、メッセージ、パブリッシュ、サブスクライブ、リストを取り上げ、これらのコアコンセプトがどのように関係し合ってBluetooth meshネットワークを実現するのかを見ていきます。

Bluetooth meshのアーキテクチャ

 Bluetooth meshは、Bluetooth Low Energy(LE)のスタック上で動作します。図1は、Bluetooth meshのスタックと、各層の機能を示しています。

図1:Bluetooth meshのアーキテクチャ 出典:Bluetooth SIG(クリックで拡大)

 第1回でも解説したように、Bluetooth meshネットワーク内で情報を送受信・中継できるデバイスを「ノード」といいます。ノードになりえるものの例としては、照明器具、温度調整機器、製造設備、電子ゲートなどがあります。ノード間のデータ転送には、メッセージが使用されます。メッセージの送信元と送信先はアドレスで示されます。

アドレス

 アドレスには4種類あります。そのうちメッセージで使用されるのは「ユニキャストアドレス」「仮想アドレス」「グループアドレス」の3つです。4つ目のアドレスは「未割り当てアドレス」といいます。アドレスは16ビット長で、次のように設定されます。

図2:Bluetooth meshのアドレス 出典:Bluetooth SIG(クリックで拡大)

・未割り当てアドレス:構成されていないエレメント、または指定されたアドレスのないエレメントには、未割り当てアドレスが設定されます。有意のアドレスを持たないエレメント、ということになるため、メッセージの送受信には使用できません。

・ユニキャストアドレス:ユニキャストアドレスは、プロビジョニング(デバイスがmeshネットワークに追加され、ノードになるプロセス)を行う際に、プロビジョナーがノード内の各エレメントに割り当てます。このアドレスは、そのノードがネットワーク上に存在する間、有効です。ユニキャストアドレスは、メッセージの送信元フィールドや送信先フィールドに表示されることがあります。ユニキャストアドレス宛に送信されたメッセージは、そのアドレスを有する1つのエレメントでのみ処理されます。

・仮想アドレス:仮想アドレスは、特定の「ラベルUUID」に関連付けられた、複数のエレメントを示すものです。パブリッシュ、サブスクライブの両方で使われます。ラベルUUIDは、1つ以上のノードに存在する複数のエレメントと関連付けられる、128ビットの値です。

 仮想アドレスでは、15ビット目と14ビット目はそれぞれ1と0にセットされます(図2)。ビット13 - 0にはハッシュ値がセットされます(この14ビットで1万6384通りのハッシュ値が可能)。ハッシュはラベルUUIDから導き出されます。ただし、サブスクライブしているエレメントが128ビットのUUIDをチェックするのは非効率的です。特に、そのUUIDが複数のメッセージセグメントにまたがる場合はなおさらです。14ビットのハッシュ値を使うことにより、どのメッセージがどのエレメントに向かうべきかを、より効率よく判断できます。

・グループアドレス:グループアドレスは、Bluetooth meshネットワークのもう一つのマルチキャストアドレスです。1以上のノードの複数のエレメントを表すもので、次の2種類があります。

  • 動的に割り当てられるもの → 0xC000-0xFEFF
  • 固定アドレス - Bluetooth SIGが割り当てる。5つのセグメントに分類される
    • RFU(将来使用のため予約) → 0xFF00-0xFFFB
    • All-proxies → 0xFFFC:Proxy機能が有効になっている全ノードに送信
    • All-friends → 0xFFFD:Friend機能が有効になっている全ノードに送信
    • All-relays → 0xFFFE:Relay機能が有効になっている全ノードに送信
    • All-nodes → 0xFFFF:全ノードに送信

 固定ノードに送信されるメッセージは、そのノードのプライマリーエレメントで処理されます。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.