Bluetoothメッシュ低電力ノード(LPN)の作成方法 - KBA231327 - Community Translated (JA)

Version 5

    Community Translated by NoTa_4591161       Version: **

     

    Translation - English: How to create a Bluetooth Mesh Low Power Node (LPN) - KBA231327

     

    この記事では、メッシュベンダーモデルアプリ(Vendor_specific_app)でBluetoothメッシュ低電力機能を有効にする方法について説明します。

     

    Bluetoothメッシュ仕様(SIG仕様)は、電力に制約のあるデバイスの消費電力を最適化するために、次の2つのメッシュノードに実装できる低電力機能を定義しています。

     

    • 低電力ノード(LPN):  電力に制約のあるメッシュノードです。メッシュ低電力機能をサポートします。
    • フレンドノード:パワーリッチデバイス。メッシュフレンド機能をサポートしています。

     

    低電力ノード(LPN)がメッシュネットワークに追加されると、フレンドのリクエスト(フレンドリクエスト)をブロードキャストします。低電力ノード(LPN)がメッシュネットワークに追加されると、範囲内の各フレンドは新しいLPN応答(フレンドオファー)を処理でき、LPNはフレンドが保存できるメッセージの数、RSSI、およびタイミングの精度に基づいて、最適なフレンドを選択します。関係が確立されると、LPNはスリープ状態になり、定期的にウェイクアップしてフレンドノードをポーリングし、キャッシュされたメッセージを取得できます。このように、LPNはメッシュパケットを継続的にリッスンする必要はありません。低電力機能の詳細については、AN227069-Bluetoothメッシュ入門参照してください。

     

    LPNノードの作成

     

    メッシュ低電力機能は、メッシュコアライブラリに実装されています。アプリケーション開発者/ユーザーは、次のように最小限の設定でLPNノードを作成できます。フレンド/ LPNに関連するメッセージ(例:フレンドポーリング、フレンド更新、フレンドリクエスト、フレンドオファーなど)はメッシュの「制御メッセージ」であるため、ユーザーアプリケーションはこれらについて心配する必要はありません。

     

    注意:制御メッセージはスタックによって内部的に生成され、異なるノードの上位トランスポート層間で送信されます。

               アクセスメッセージは、デバイスが情報を伝達するために送受信する「通常の」メッシュメッセージです。

     

    1.低電力機能を有効にする

    低電力機能を有効にするには、アプリケーションのMakefileLOW_POWER_NODE ?= 1設定します。

    その値は、通常のノード(0)またはLPN1)にすることができます。

     

    2.メッシュデバイスを設定する

    以下に示すように、デバイス構成の構造体(wiced_bt_mesh_core_config_t )でノードのサポートされている機能を指定します。ノードがLPN(またはフレンドノード)の場合、関連するパラメータもこの構造体で設定する必要があります。

     

    WICED_BT_MESH_CORE_FEATURE_BIT_LOW_POWERは、ノードが低電力機能をサポートしていることを示します。

    それはLPNアプリケーションであるため、例えば、そのパラメータ  .poll_timerout.receive_delay及び .rssi_factorが設定されなければなりません。

     

     

     

    3.LPNスリープコールバックの登録

    アプリケーションは、wiched_bt_mesh_app_func_table_t構造体(つまり、  wiced_bt_mesh_app_lpn_sleep_t )でスリープコールバック関数を定義する必要があります。スタックは、低電力モードに安全に入ることができるときにこの関数を呼び出し、メッシュコアが処理を必要としない時間(ミリ秒単位)を提供します。これに基づいて、アプリケーションはスリープモードを選択するための決定ロジックを実装できます。

     

    コールバック関数は、スタックがWICED_BT_MESH_CORE_STATE_LPN_SLEEPイベントを生成するときに呼び出されます。実装はmesh_application.cmesh_state_changed_cb()コールバック関数内で行われます。

     

    この関数のプロトタイプは次のとおりです。

    typedef void(* wiced_bt_mesh_app_lpn_sleep_t)(uint32_t duration);

     

     

     

    4.デバイススリープの設定と初期化

    アプリケーションは、wiced_sleep_config_tを設定し、wiched_sleep_configure()を呼び出して、デバイスで低電力操作を有効にする必要があります。各チップでサポートされている電源モードについては、それぞれのデータシートを参照してください。低消費電力パラメータおよび構成の詳細についてはAN225270 - CYW208xx BLE低消費電力のガイドラインを参照してください。

    スリープ許可をポーリングするには、wiched_sleep_config_t構造体にスリープ許可コールバック関数(sleep_permit_handler )を指定する必要があります。また、スリープ後のアクション/設定を実行するように、スリープ後のコールバック関数(post_sleep_cback_handler )を定義できます(たとえば、設定されたペリフェラルの再初期化)。

     

      注意:

    • WICED Sleep Framework定義を取得するには、LPNアプリにwiched_sleep.hを含める必要があります。
    • フレンドオファーの遅延は次のように計算されます。フレンドオファーの遅延=receive_window_factor * receive_windowrssi_factor * RSSI)。

     

    CYW920819EVB-02プラットフォームに基づく添付のベンダー固有のLPNアプリを参照してください。

     

    テスト用のフレンドノードとして、デフォルトのvendor_specific_appまたはフレンド機能が有効になっている任意のノードを使用できます。

    注意:この変更されたメッシュアプリは、ModusToolbox®BTSDKアプリケーションの標準検証プロセスではテストされていません。