BLE Meshのモデルと用語解説
モデルとは?
BLE Meshはフラッド通信を採用しており、従来のBLEとは異なる概念で動作します。Meshでは、"モデル" と呼ばれる要素が定義されており、これはBLEの標準サービスに相当します。各モデルの機能は厳格に定められており、その範囲内でのみ動作します。
例えば:
- Generic OnOff Server はON/OFFの状態を Generic OnOff Client に送信する。
- それ以外のことはできない。
モデル一覧
BLE Meshの最新の実装済みモデル一覧は以下のページを参照してください。
nRF Connect SDK - Mesh Models
Meshの主要用語
BLE Meshでは、従来のBLEにはなかった新しい用語が多数登場します。
Provisioner(プロビジョナー)
Meshネットワークの管理を行うデバイス。通常、PCやスマートフォンが担いますが、組み込み機器でも可能です。
- Unprovisioned Device(未プロビジョニングデバイス)をMeshネットワークに参加させる。
- ネットワークの中心的な役割を持ち、0x0001 のUnicast Addressが割り当てられる。(変更可能)
Network Key(NetKey)
Meshネットワークを識別するキー。
- Provisionerが生成 し、同じNetKeyを持つデバイスは同じネットワークに所属する。
- NetKeyを手動で設定するだけでは参加できない。鍵交換に秘密鍵が関与するため。
- 複数のNetwork Keyを持つことができ、2個目以降はSubnet Key と呼ばれる。
App Key(AppKey)
メッセージのPublish/Subscribe時に使用されるキー。
- Publish: 1つのAppKeyのみ指定可能。
- Subscribe: 複数のAppKeyを指定可能。
- Network Key / Subnet Keyと紐づく ため、両方が一致した場合のみメッセージを受信可能。
Unprovisioned Device(未プロビジョニングデバイス)
Meshネットワークに参加していないデバイス。
Node(ノード)
Meshネットワークに参加しているデバイス。
- 一度参加すると、リセットしない限りUnprovisioned Deviceに戻れない。
- Provisionerは不要なデバイスを排除するため、Network Keyを変更できる。
Provisioning(プロビジョニング)
Unprovisioned DeviceをNodeにする手続き。
Element(エレメント)
Nodeを構成する要素。
- 例:スイッチ(Generic OnOff Client)、電球(Generic OnOff Server)
- 1つのNodeが複数のElementを持つことも可能。
Model(モデル)
Elementが持つプロパティ。
Model | 説明 |
---|---|
Generic OnOff Server | ON/OFF状態を受信(Subscribe) |
Generic OnOff Client | ON/OFF状態を送信(Publish) |
Generic Level Server | 8bit/16bitの値を受信 |
Generic Level Client | 8bit/16bitの値を送信 |
ℹ️ Bluetooth Low EnergyのようにカスタムUUIDを作成することはできない可能性が高い。ただし、仮想アドレス(Virtual Address) という概念が存在するが、詳細は不明。
Address(アドレス)
BLE Meshデバイスは必ず 固有のUnicast Address を1つ持つ。
ユニキャストアドレス(Unicast Address)
- NodeやProvisionerに割り当てられる固有アドレス。
- 範囲:
0x0001
~0x7FFF
- 他デバイスとの重複は不可。
グループアドレス(Group Address)
- 範囲:
0xC000
~0xFEFF
- ユーザー独自のグループ作成が可能。
- Publish/Subscribe時に使用すると、デバイスの追加・削除が容易になる。
予約済みアドレス
アドレス範囲 | 説明 |
---|---|
0xFF00 - 0xFFFB |
RFU(将来使用のため予約) |
0xFFFC |
All-proxies(Proxy機能が有効なノード全体) |
0xFFFD |
All-friends(Friend機能が有効なノード全体) |
0xFFFE |
All-relays(Relay機能が有効なノード全体) |
0xFFFF |
All-nodes(全ノード向け送信) |
仮想アドレス(Virtual Address)
BLEのUUID形式のアドレスに相当すると考えられるが、詳細は不明。
Publish(パブリッシュ)
メッセージの送信。
- 送信アドレス と AppKey を指定。
- ユニキャスト or グループアドレス を利用可能。
-
ユニキャストよりグループアドレスのほうが管理しやすい。
- ユニキャストはデバイス交換時に設定変更が必要。
Subscribe(サブスクライブ)
メッセージの受信。
- 受信アドレス と AppKey を指定。
- ユニキャストとグループアドレスの両方が利用可能。
Appendix(付録)
nRF Connect SDK
nRF Connect SDK - Bluetooth Mesh