このペ,ジは前リリ,スの情報です。該当の英語のペ,ジはこのリリ,スで削除されています。
状态流を使用したBLEデバaapl .スのリンク層ステ.トマシン
この例では、通信工具箱™图书馆的蓝牙协议およびStateflow®を使用して,蓝牙®低能量(bie)デバイス間の接続を確立するリンク層ステートマシンをモデル化する方法を説明します。次の5の状態で構成されるステいて,。スタンバ、アドバタ、ジング、スキャン、開始、接続。蓝牙デバイスは、これらの状態に基づいてアドバタイザー、スキャナー、イニシエーター、マスター、またはスレーブのいずれかになります。この例で提示するモデルは、リンク層ステート マシンの状態の遷移によるマスターとスレーブ間での接続確立プロセスを示します。シミュレーション結果には、マスターとスレーブ間の接続を確立するのにかかる時間が表示されます。さらにこの例で提示するプロットは、接続確立時間の変化を、アドバタイジング間隔や干渉などの構成パラメーターの関数として示します。
Bleスタック
蓝牙コア仕様[1]には,祝福または蓝牙智能と呼ばれる,低レート無線パーソナルエリアネットワーク用の低エネルギー(LE)バージョンが含まれています。Bleスタックは以下で構成されます。汎用属性プロファイル(关贸总协定),属性プロトコル(ATT)セキュリティマネージャープロトコル(SMP),論理リンク制御およびアダプテーションプロトコル(L2CAP)リンク層(LL)および物理層(体育)。BLEは,ホームオートメーション,ヘルスケア,フィットネス,およびモノのインターネット(物联网)などの用途で使用される通知アラートのような少量のデータを生成する低エネルギーデバイス用の蓝牙特别兴趣小组(SIG) [1]規格に追加されました。
BLEは2400 ~ 2483.5 MHzの2.4 GHz ISM帯域で動作します。40個の射频チャネルが使用され,各チャネルの幅は2 MHzです。
BLEでは,これらの40個の射频チャネルを3つのアドバタイジングチャネル(チャネルインデックス:37岁,38岁的39)と37個のデータチャネル(チャネルインデックス:0 ~ 36)に分類します。アドバタイジングチャネルは主に,アドバタイジングパケット,スキャン要求/応答パケット,および接続指示パケットを送信することによるBLEデバイス間の接続の作成に使用されます。デ,タチャネルは主に,接続確立後のデ,タパケットの交換に使用されます。
サポトパッケジのンストルの確認
Bleリンク層ステ,トマシンモデル
この例のモデルは,2 ble。このプロセスでは,1のデバスがマスタ,1のデバスがスレブとして機能します。マスターデバイスは,アドバタイジングチャネルでのアドバタイジングパケットのスキャンを開始します。スレブデバスはアドバタジングチャネルでのアドバタジングパケットの送信を開始します。アドバタイザーの選択後,マスターは”接続指示“パケットを使用して,アドバタイザーとの接続を開始します。スレ,ブがこのパケットを受信すると接続が確立されます。その後,マスタ:。
リンク層の状態
リンク層ステ,トマシンは,以下に示すようにStateflow®を使用して実装されます。
リンク層は,次の5の状態で構成されるステトマシンを保持します。
スタンバ:これはリンク層の既定の状態です。この状態ではデバ@ @スがパケットを送信または受信しません。スタンバ状態からアドバタイジング、スキャン、または開始のいずれかの状態になることがあります。
アドバタ@ @ジング:この状態では,アドバタイジングイベントと呼ばれる周期的な間隔で,デバイスがアドバタイジングパケットを送信します。これらのデバ@ @スはアドバタ@ @ザ@ @と呼ばれます。
スキャン:この状態では,デバイスがアドバタイジングチャネルのアドバタイザーをリッスンして,接続を開始するアドバタイザーを選択するためにスタンバイ状態に遷移します。
開始:この状態では,デバイスが特定のアドバタイザーをリッスンして,そのアドバタイザーとの接続を開始します。デバイスは,選択されたアドバタイザーからのアドバタイジングパケットの受信後に,接続状態に移行します。これらのデバスはニシエタと呼ばれます。
接続:この状態では,接続aapl . exe,デバaapl . exe,タパケットを送信します。
接続の確立後,イニシエーターがマスター(セントラル)デバイスになり,アドバタイザーがスレーブ(ペリフェラル)デバイスになります。
リンク層@ @ベント
アドバタイジングデバイスは,(チャネルインデックス37から開始して)周期的に3つのアドバタイジングチャネルでアドバタイジングパケットを送信します。アドバタ▪▪ジングの各サ▪▪クルは,アドバタ▪▪ジング▪▪ベントと呼ばれます。同じ処理がスキャンデバ▪▪スまたは開始デバ▪▪スによって使用されます。これらのデバイスは,スキャンイベントと呼ばれる周期的な方法で3つのアドバタイジングチャネルをリッスンします。
接続デバ@ @スは,接続@ @ベントごとに新しいデ@ @タチャネルに変わります。接続ベントは、接続された 2 つのデバイス間でデータ パケットのシーケンスを交換する時間フレームで、一定の間隔で繰り返されます。接続イベント内のすべてのパケットは同じデータ チャネルで送信されます。新しい接続イベントは新しいデータ チャネルを使用します。2 つの代替チャネル選択アルゴリズムが Bluetooth コア仕様によって指定されています ([1]の第4.5.8节,Part-B, Vol-6を参照)。これらのアルゴリズムは,各接続。
次の図は,リンク層▪▪ベントを使用する2▪▪のble▪▪ス間での接続確立プロセスを示します。
モデルの設定
この例に示すリンク層ステトマシンモデルは,2のラブラリブロックを使用します。设备と无线介质。
モデルの设备ブロックのマスクパラメタを使用してデバスの構成を更新できます。選択した差距の役割(セントラル/ペリフェラル)に基づいて,マスクが関連プロパティで更新されます。
无线介质ブロックの各アドバタイジングチャネル(37、38および39)に対して,干渉を統計的に構成することもできます。
シミュレ,ション結果
このシミュレ,ションで得られる結果は次のとおりです。
接続確立時間:
このモデルは,接続の確立にかかる時間をミリ秒単位で出力します。この時間値は,ベ,スワ,クスペ,ス変数timeTakenToEstablishConnection
に保存されます。
チャネルホッピングシ,ケンス:
マスターデバイスとスレーブデバイスによって使用されるチャネルホップのシーケンスが,スコープ図に個別に表示されます。
デバ@ @ス間のパケット交換
マスタ,とスレ,ブ間で交換されるパケットは,BLEPacketExchange.pcapという名前でpcap形式ファpcapルに取得されます。このpcapファルは,任意のサドパティ製パケット解析ソフトウェアで開くことができます。
デバ@ @ス操作の診断ログ
设备ブロックの設定を使用してメッセ,ジログを有効または無効にすることができます。
その他の調査
シミュレ,ションでは,間隔と干渉を変化させて,接続確立時間の変化を観察できます。シミュレ,ション結果を以下に示します。
干渉のないシミュレ,ション結果:
次のプロットは,アドバタ。ここで,スキャン間隔が100ミリ秒のときのスキャンウィンドウは10ミリ秒です。まり,スキャンのアクティブ周期の10%です。
上記の結果を生成するには,helperBLEPlotConnectionTimeWithoutInterferenceスクリプト(長期シミュレ,ション)を実行します。
干渉のあるシミュレ,ション結果:
次のプロットは,異なるレベルの干渉によって平均接続確立時間がどのように変化するかを示します。このプロットは,アドバタ。ここで,スキャン間隔が100ミリ秒のときのスキャンウィンドウは100ミリ秒です。まり,スキャンのアクティブ周期の100%です。次の接続確立時間の値は,異なる値のアドバタイジング間隔と干渉レベルでシミュレーションを100回実行して平均化したものです。
上記の結果を生成するには,helperBLEPlotConnectionTimeWithInterferenceスクリプト(長期シミュレ,ション)を実行します。
接続確立時間は,アドバタイジング間隔以外に,スキャン間隔,スキャンウィンドウ,スキャン期間,アドバタイジング期間,干渉などの複数のパラメーターによっても変化します。これらのパラメ,タ,のいずれかを変化させてさらに調査することができます。上記のシミュレーションはいずれも,1秒のスキャン期間と10秒のアドバタイジング期間で実行されています。
まとめ
この例では,次のように呼ばれる2つのBLEデバイス間の接続を確立するリンク層ステートマシンモデルについて説明しています。マスタ,とスレ,ブ。このモデルは,リンク層の異なる状態と▪▪▪ベントに▪▪▪いて詳細な情報を提供します。この例に示す状態遷移図は,マスタ,とスレ,ブ間での接続確立のプロセスを明確に説明します。導出されたシミュレーション結果には,祝福デバイス間の接続を確立するのにかかる時間が表示されます。さらに,導出されたプロットは,アドバタイジング間隔や干渉などの構成パラメーターによって接続確立時間が変化することを示します。
付録
この例で使用している機能は次のとおりです。
bleLLAdvertisingChannelPDU
: llアドバタ▪ジングチャネルpduを生成するbleLLAdvertisingChannelPDUDecode
: llアドバタ▪ジングチャネルpduを復号化するbleLLAdvertisingChannelPDUConfig
: llアドバタ▪ジングチャネルpduの生成と復号化のための構成オブジェクトを作成するbleLLDataChannelPDU
: llデ,タチャネルpduを生成するbleLLDataChannelPDUDecode
: llデ,タチャネルpduを復号化するbleLLDataChannelPDUConfig
: llデ,タチャネルpduの生成と復号化のための構成オブジェクトを作成するbleLLControlPDUConfig
:デ,タチャネルpduの生成と復号化に使用されるサブ構成オブジェクトを作成するbleGAPDataBlock
: gapアドバタ@ @ジングデ:@ @タおよびスキャン応答デ:@ @タを生成するbleGAPDataBlockDecode
: gapアドバタ@ @ジングデ:@ @タおよびスキャン応答デ:@ @タを復号化するbleGAPDataBlockConfig
: gapデ,タブロックの生成と復号化のための構成オブジェクトを作成するbleChannelSelection
:新しいデータチャネルの選択に使用される系统对象を作成してデータパケットを送信するblePCAPWriter
: ble pcapまたはpcapngファe.c.ルラe.c. e.c.タ
この例で使用している補助関数は次のとおりです。
helperBLELLConnectionEvent: ble ll接続econlベントのオブジェクトを作成する
helperBLELLConnectionEventStatus: ble ll接続aapl .ベントのステ.タスを示す列挙値
helperBLELLStateMachineEnumeration: ble llステ,トマシンモデルに使用される文字列を示す列挙値
helperBLEGenerateRandomDeviceAddress:蓝牙デバaapl . exeスのランダムデバaapl . exeスアドレスを生成する
helperBLEGetDurationInSteps:ステップ単位に基づいてモデルでタe .ミングパラメe .タe .に必要なステップ数を計算する
helperBLEPlotConnectionTimeWithoutInterference:干渉を使用せずにアドバタ@ @ジング間隔を変化させて複数のシミュレ@ @ションを実行する
helperBLEPlotConnectionTimeWithInterference:干渉を使用してアドバタ@ @ジング間隔を変化させて複数のシミュレ@ @ションを実行する
参考文献
Bluetooth®技术网站。“蓝牙技术网站|蓝牙技术官网。”2020年7月8日访问。https://www.bluetooth.com/
开发/LibpcapFileFormat - Wireshark Wiki2020年7月8日访问。https://wiki.wireshark.org/Development/LibpcapFileFormat