Bluetooth メッシュの基礎 (基本用語)

パブリッシュとサブスクライブ (パブリッシュとサブスクライブ)

Bluetooth メッシュでは、メッセージの送信をパブリッシュと呼びます。特定のメッセージを受信するようにノードを構成するプロセスはサブスクライブと呼ばれます。つまり、ノードがメッセージを受信できる場合、ノードはメッセージを「サブスクライブ」します。
メッセージはグループ アドレスまたは仮想アドレスに送信され、これらのアドレスは読み取り可能であり、特定の部屋を表すなどの実用的な重要性を持ちます。そのため、簡単かつ直感的に使用できます。
パブリッシュ_サブスクライブ

この図では、Switch1 がキッチン グループ アドレスにメッセージをパブリッシュできることがわかります (グループ アドレスは特定の部屋を表すことができます)。Light1、Light2、および Light3 ノードはすべてキッチン アドレスにサブスクライブされているため、そのアドレスに宛てられたメッセージを受信して​​処理できます。つまり、Light1、Light2、および Light3 は Switch1 によって制御できます。
同様に、Switch2 はリビング ルーム グループのアドレスにメッセージを発行できますが、このアドレスにサブスクライブしているのは Light3 のみであるため、Switch2 は Light3 のみを制御できます。この図から、ノードは複数のアドレス グループにサブスクライブできることがわかります。たとえば、Light3 ノードは、キッチンとリビング ルームの 2 つのグループ アドレスを同時にサブスクライブします。Bluetooth メッシュは非常に強力かつ柔軟です。また、複数のスイッチがグループ アドレスにメッセージを発行できることもわかります。たとえば、Switch5 と Switch6 は両方ともガーデン グループ アドレスにメッセージを発行できます。
グループ アドレスと仮想アドレスを使用してメッセージをパブリッシュおよびサブスクライブすることには、多くの利点があります。ノードを削除、交換、追加するときに、他のノードを再構成する必要はありません。家にランプを設置するのがどれほど面倒かを想像すると、この方法がどれほど便利であるかがわかるでしょう。たとえば、新しいデバイスをリビング ルーム ネットワークに追加する必要がある場合、そのデバイスは「アクティベーション構成」プロセスを経て、対応するリビング ルーム グループ アドレスにサブスクライブするだけで済み、他のノードは影響を受けません。Switch2 は引き続きリビング ルームのグループ アドレスにメッセージを発行できますが、ライト 3 と新しく追加されたライトを制御できるようになりました。

状態遷移

ある状態から別の状態に変化するプロセスは状態遷移と呼ばれます。遷移プロセスは瞬間的な場合もあれば、一定の時間がかかる場合もあります。この期間は遷移時間と呼ばれます。状態遷移は、ノードのアプリケーション層の動作に影響を与える可能性があります。

状態バインディング

状態間には何らかの関係が存在する場合もあり、状態の変化は別の状態の変化を引き起こし、この関係は状態結合 (state binding) と呼ばれます。状態は他の複数の状態にバインドできます。
たとえば、調光器で照明を制御します。このライトには、一般スイッチ状態と一般レベル状態の 2 つの状態があり、相互にバインドされています。明るさレベルが 0 になるまでランプの明るさレベルを下げます。これにより、一般的なスイッチがオンからオフに変わります。

シーン

ある夜、寝室の温度を摂氏20度に調整し、寝室のシャンデリアを適切な明るさに調整し、テーブルの上のテーブルランプを快適な暖色系の色に調整したいとします。おそらく、これを 1 つずつ手動で設定する必要があると考えるかもしれませんが、それでは問題ありません。これらの設定をアプリケーションに保存し、必要に応じて呼び出すことができます。これらの保存された設定は「シーン」と呼ばれます。特定のシーンは 16 ビットのシーン番号で識別できますが、シーン番号はメッシュ ネットワークごとに異なります。
シナリオを使用すると、多くのノードが同時に特定の状態に到達できるため、各ノードを個別に構成する手間が省けます。

プロビジョニング

設定を開くとは、特定のデバイスをメッシュ ネットワークに追加してノードにするプロセスを指します。これには、多数のセキュリティ キーが生成されるいくつかの段階が含まれており、このプロセスでは高度なセキュリティが必要となります。
プロビジョニング設定は通常、携帯電話やタブレット コンピュータ上のアプリケーション プログラムを通じて完了しますが、このとき、携帯電話やタブレット コンピュータは通常プロビジョナーと呼ばれます。
プロビジョニング設定のプロセスには 5 つのステップが含まれます。
ステップ 1、ビーコン信号を送信
「アクティブ化設定」を含むがこれに限定されない Bluetooth メッシュのさまざまな機能をサポートするために、「メッシュ ビーコン」ブロードキャスト タイプを含む新しい GAP ブロードキャスト タイプを導入します。 。設定されていないデバイスは、「メッシュ ビーコン」ブロードキャスト パケットを送信して、自分が設定されていないが設定できるデバイスであることを宣言する必要があります。新しいデバイスのブロードキャストを開始するには、ユーザーは、一連のボタンを入力するか、特定のボタンを一定時間押すなど、特定の方法に従う必要がある場合があります。
ステップ 2、招待
このステップでは、設定デバイス (携帯電話など) がメッシュ ネットワークに参加する必要があるデバイスに招待を送信します。実際に送信されるのは、データである「アクティベーション設定招待用 PDU」です。特定の形式のパケット。このとき、構成をアクティブ化する必要があるデバイスは、状況を通知するために特定のデータ パケット、つまり「アクティブ化構成機能 PDU」を返します。
ステップ 3、公開キーの交換
構成デバイス (携帯電話など) を起動し、構成する必要があるデバイスと公開キーを交換します。公開キーは固定することも、一時的に生成することもできます。公開キーの交換は、Bluetooth 送信経由または帯域外 (OOB) 交換を使用して行うことができます。たとえば、データ交換に NFC または QR コードを使用すると、データ送信のセキュリティが高くなります。
ステップ 4、認証 認証
プロセス中に、新しいデバイスは、自身の出力機能に従って特定の方法で 1 つ以上の乱数を出力します (これは Bluetooth ペアリング方法に似ています)。たとえば、新しいデバイスでは LED ライトを数回点滅させることができます (点滅の回数は出力の検証値を表します)。また、画面がある場合は数値を直接出力することもできます。ユーザーが起動設定デバイスに対応する番号を入力すると、認証プロセス全体が完了します。
ステップ 5: 設定データの配布を開始する
アカウントの確認が完了すると、2 台のデバイスの秘密鍵と交換されたピア鍵を使用してセッション鍵 (Session Key) が生成されます。その後、セッション キーを使用して後続のデータ配布が暗号化され、ネットワーク キー (NetKey) とデバイスの一意のアドレス、つまりユニキャスト アドレス (ユニキャスト) の配布を含む残りのアクティベーション構成プロセスが完了します。住所)。
プロビジョニング プロセスが完了すると、新しいデバイスはネットワークの NetKey (「IV インデックス」と呼ばれるメッシュ セキュリティ パラメータ) を持ち、プロビジョニング デバイス (携帯電話など) によって割り当てられたユニキャスト アドレスを持ちます。この時点で、この新しいデバイスは正式にノードになります。

リレーノード

中継機能をサポートするノードは中継ノードと呼ばれ、受信したメッセージを再送信できます。リレー技術を使用すると、メッセージを複数回「ホップ」することができるため、メッシュ ネットワーク全体にメッセージを送信できます。
メッシュ ネットワーク PDU には、TTL (Time To Live) と呼ばれるフィールドがあります。TTL は整数値を使用して、ネットワーク内で各メッセージがホップ (中継) できる回数を制限します。たとえば、TTL が 3 の場合、メッセージは最大 3 回中継されることを意味します。TTL が 0 に等しい場合、メッセージは中継できず、送信は 1 回だけ実行できることを意味します。ノードはネットワーク トポロジを理解し、メッシュ ネットワークを最大限に活用し、不要なメッセージ リレーを回避し、電力消費を節約できるように、時々 TTL を送信します。

低電力ノードとフレンドノード

一部のノードはバッテリ駆動である場合があるため、電力消費を可能な限り低く抑える必要があります。このタイプのデバイスは、主にメッセージの送信に関係していると考えられます。ただし、時々メッセージを受信する必要もあります。
たとえば、ボタン電池で動作する温度センサーがあり、温度があらかじめ設定された上限または下限のしきい値を超えると、センサーは 1 分ごとに温度値を送信し、温度がしきい値を超えない場合はメッセージを送信しません。電力消費が問題にならない場合、これらの動作は簡単に実装できます。
ユーザーは、新しいしきい値を設定するためにセンサーにメッセージを送信する場合があります。ユーザーは頻繁にしきい値を設定できないため、このような動作は比較的まれです。ユーザーは、季節が変わったり、新しい機器が追加されたときにしきい値を設定することがあります。ただし、センサーのしきい値は変更できる必要があります。メッセージが受信される頻度は、受信機のデューティ サイクルと消費電力に影響を与えます。100% のデューティ サイクルにより、センサーは温度しきい値設定メッセージを見逃すことはありませんが、消費電力は非常に高くなります。デューティ サイクルが低いと電力が節約されますが、設定メッセージを見逃す可能性もあります。
この問題を解決するために、Bluetooth メッシュにはフレンド ノードと友情の概念が導入されています。
上記の例では、温度センサーは低電力ノード (低電力ノード) として設計できます。センサーの構成データでは、これが低電力ノードであることを示す特定のフラグが設定されます。
低電力ノードは別のノードと連携して動作します。このノードには電力消費に関する特別な要件はありません (主電源に接続されており、固定電源を備えている場合があります)。このノードはフレンド ノードと呼ばれます。フレンド ノードは、対応する低電力ノードに送信されたメッセージを保存します。低電力ノードはフレンド ノードをポーリング (Poll) して、新しいメッセージがあるかどうかを確認します。低電力ノードのポーリング頻度は非常に低いため、消費電力が削減され、設定メッセージが失われる可能性が低くなります。低電力ノードがフレンド ノードをポーリングすると、フレンド ノードに保存されているメッセージが 1 つずつ送信されます。 . 低電力ノードに送信されます。送信されたデータ パケットには MD (more data) フラグがあり、フレンド ノードにまだ送信するメッセージがあるかどうかを示すために使用されます。
低電力ノードとフレンドノードの間の関係は「フレンドシップ」と呼ばれます。この種の友情により、電力に制約のあるノードが Bluetooth メッシュ ネットワークでメッセージを正常に受信し、正常に動作しながら低消費電力を維持できるようになります。

プロキシノード

私たちの生活の中には、スマートフォンやタブレットなど、数多くの BLE デバイスがあります。これまでに市販されている Bluetooth デバイスは Bluetooth メッシュ ネットワーク プロトコル スタックを統合しておらず、BLE プロトコル スタックと従来の Bluetooth プロトコル スタックのみを使用できます。したがって、他のデバイスと情報を交換できるのは、汎用属性プロファイル GATT を通じてのみです。
プロキシ ノードは、GATT ノードと Bluetooth メッシュ ノード間の情報交換を実現できます。GATT などの接続指向のベアラー層のプロキシ プロトコルを定義します。GATT デバイス (Bluetooth メッシュ プロトコル スタックが統合されていない) は、プロキシ ノードを通じてプロキシ プロトコル PDU の読み取りと書き込みを行うことができます。要約すると、プロキシ ノードを使用すると、Bluetooth メッシュ プロトコル スタックが統合されていない BLE デバイスがメッシュ ネットワーク内の任意のノードと通信できるようになります。

ノード構成

構成サーバー モデルは、構成クライアント モデルを使用してアクセスできる多くの状態を定義します。構成状態は、ノードが生成できる動作と機能に関連しており、特定のアプリケーションやデバイス タイプとは関係ありません。たとえば、「構成サーバーのステータス」を使用して、ノードがプロキシ ノード、リレー ノード、またはその他のものであるかどうかを示すことができます。ノードによって購読されたアドレスは、購読リストに保存されます。ネットワーク キーとサブネット キー、およびアプリケーション キーは構成ブロックに保存されます。
構成クライアント モデルと構成サーバー モデルは、対応する構成サーバー モデルの状態を操作できます。これらの操作には、対応する構成メッセージを通じて完了する GET、SET、STATUS が含まれます。

おすすめ

転載: blog.csdn.net/panpan_jiang1/article/details/126569338