WEBマガジン詳細

Webマガジン Vol.57- Jun., 2022

Column: Wireless Protocol SuiteでのBluetooth解析ポイント(LMP編)

本コラムの構成

■はじめに
■WPS 「Summary」画面紹介 (LMP)
■LMP制御における各解析ポイント
    ・LM リンク確立 / 切断(LM Connection/Disconnection)
   ・対応機能について確認 (LM Supported Feature)
    ・Bluetoothのコア仕様バージョンについて (Bluetooth Core Specification Version)
   ・コネクションが切断されたと判断するタイミング設定 (Supervision Timeout)
   ・妨害波や混線を避けるための周波数ホッピング (Adaptive Frequency Hopping: AFH)
   ・使用するチャネルの取り決め (Channel Classification)
   ・CentralとPeripheralの役割交代 (Role Switch)
   ・スニフモードの要求/解除 (Sniff Request/Unsniff Request)
   ・信号出力の制御 (Power Control)

 

はじめに

Teledyne社製プロトコルアナライザ用の解析ソフトウェアWireless Protocol Suite(WPS)には様々な解析機能が備わっていますが、本記事ではその中でもサマリー(Summary)から得られるリンクマネージャープロトコル(LMP)の主要な情報について説明します。

Summaryにはレイヤー毎に分類されたさまざまなTabが表示されますが、今回は比較的利用頻度が高いClassic(BR/EDR)のLMPに焦点を当てます。

LMPはベースバンド層で提供される通信リンクの設定や切断など、通信リンクに関わるさまざまな制御機能をつかさどる重要なプロトコルです。ここで送受信される制御パケットは、対向のリンク管理層(LM)との間で通信されます。さらに、これらの通信の基本機能に加えてリンク管理層では通信リンクのセキュリティも管理しており、接続認証や暗号化もこのレイヤーの機能に含まれます。

Low Energy(LE)では、リンク層(LL)が同様の役割を担っています。

 

WPS 「Summary」画面 (LMP)

WPSでBR/EDRのログを表示すると、以下のようなSummary画面が表示されます。ログに含まれるProtocolやProfileごとにTabに分類され、LMPのTabを選択すると以下のような表示画面になります。

LM リンク確立 / 切断(LM Connection/Disconnection)

Bluetooth Core Specificationにはリンク確立と切断の手順が定義されています。(下図参照)これらのシーケンスチャートに従って動作しているか、WPSのSummaryとMessage Sequence Chartで確認することができます。

Paging DeviceのLMより上位のレイヤーが接続を希望するとき、Paging DeviceはLMP_HOST_CONNECTION_REQ PDUを送信します。
Paged DeviceがACCEPTを返信したら、両方のDeviceがLMP_SETUP_COMPLETE PDUを送り合うことでLMのリンクは確立され、ACL論理トランスポートでデータ転送(L2CAP以上のデータ転送)が可能になります。
また、接続中のCentral/Peripheralのいずれからでも、いつでもLMP_DETACH PDUを送信することでリンクを切断できます。

下図では実際WPSでリンクの接続/切断を確認する際のソフトウェア画面になります。

 

対応機能について確認 (LM Supported Feature)

CentralとPeripheralのLM対応機能は、feature_req, feature_req_extとfeature_res,  feature_res_extで知ることができます。各機能の対応/非対応は、Decode情報に表示された機能ごとにSupportedあるいはNot_Supportedが表示され、Central/Peripheralはそれぞれ対向機器の対応機能を知ることで、利用できる機能かどうかを判断します。
このときLMP Versionは、機能有無には使われません。

 

Bluetoothのコア仕様バージョンについて (Bluetooth Core Specification Version)

接続された機器双方の対応Bluetooth Core Specificationバージョンは、version_reqとversion_resで知ることができます。LMP Tab内のversion_reqおよびversion_resをタップすると、右のDecode情報にバージョン情報が表示されます。

下記例ではCentral/Peripheralともに、Bluetooth Core Specification 5.0に対応していることが分かります。

 

コネクションが切断されたと判断するタイミング設定 (Supervision Timeout)

CentralはPeripheralからの返信が圏外や干渉等により途絶えた際、その時間をモニターし、設定した時間を超えたらコネクションが切れたと判断します。その設定時間はSupervision Timeoutで設定されています。設定時間のDefault値は20秒 ですが、設定時間を変える際は、CentralはLMP_supervision_timeout PDUでPeripheralに通知します。
以下のログでは、Centralは5秒に設定しています。

 

妨害波や混線を避けるための周波数ホッピング (Adaptive Frequency Hopping: AFH)

CentralとPeripheralが共にAFH機能に対応しているとき、CentralはPeripheralに利用するチャンネルマップを指示することができます。チャネルマップには、0-78チャンネルの各チャンネルごとにUsedもしくはUnusedの情報が含まれます。AFH機能のEnableあるいはDisableは 、Centralが送信したLMP_SET_AFH PDUに対するPeripheralからのBaseband ACKの受信でパスしたかどうかを判断します。

AFHとChannel Classificationは、妨害波のある環境下で通信品質を改善するために使われる機能ですが、その回避性能は機器の実装に依存します。WPSの解析機能は、AFHの性能確認に役立ちます。

 

使用するチャネルの取り決め (Channel Classification)

AFHが動作中のPeripheralがChannel Classification機能に対応しているとき、CentralはPeripheralにLMP_CHANNEL_CLASSIFICATION_REQ PDUでチャンネルクラシフィケーションのレポートを要求することができます。その要求にはレポート最小時間間隔と、Peripheralが変化を検出してからレポートするまでの最大時間が含まれます。
PeripheralからのLMP_CHANNEL_CLASSIFICATION PDUには、0-78チャンネルの2チャンネルごとのGood, Bad もしくはUnknownの情報が含まれます。

 

CentralとPeripheralの役割交代 (Role Switch)

Bluetooth通信では端末にCentralもしくはPeripheralという役割が与えられ、通信の主導権はCentralが担っています。Central とPeripheralはどちらからでも相手機器に対してRole Switch(役割の交代)を要求することができ、WPSではサマリーのOpcode下のswitch_reqで、送信したタイミングと、CかPのどちらが要求したかを知ることができます。

また、Message Sequence Chart でもRole Switchが発生した箇所を確認できます。
複数のBluetooth機器との同時接続や、WLANとの同時使用が考えられる機器がPeripheralになるとパフォーマンスが悪化するため、そうした機器との接続が考えられる機器はCentralを要求しないのが望ましいです。

 

スニフモードの要求/解除 (Sniff Request/Unsniff Request)

スニフモードとは機器の接続を継続しながらも、やり取りを行う間隔を伸ばし一定間隔で通信することを取り決めすることで、電力消費を軽減する機能です。使っていない状態でも接続し続けて、なおかつ電池も長く保たせたい機器には重要な機能です。

Central、PeripheralのいずれからでもSniff modeを要求することができ、LMP_SNIFF_REQを受信した機器が異なるパラメータで要求する場合は、LMP_SNIFF_REQを送り返すことができます。また、Sniff modeからActive modeに移行する際はCentral、PeripheralのいずれからでもLMP_UNSNIFF_REQを送信できます。

 

信号出力の制御 (Power Control)

CentralとPeripheralはいずれも、接続相手機器から受信した信号レベルに応じて相手機器に対してパワーの上げ/下げを要求できます。Power ControlにはLegacy Power ControlとEnhanced Power Controlがあり、両方の機器がEnhanced Power Controlに対応している場合はEnhanced Power Controlが使われます。Legacy Power Controlは1ステップ毎の上げ/下げのみしか要求できませんが、Enhanced Power Controlでは最大値(Max)に上げる要求ができます。

以下のLogは、Enhanced Power Controlの例です。上が1 step上げる要求をした際、下が最大値に上げる要求をした際のLMP_POWER_CONTROL_REQの例です。

 

上記のようにリンクマネジャープロトコル (LMP)の中身をプロトコルアナライザで確認することで、様々な情報を読み取ることができ、その得られた情報を元に改善することで、Bluetoothの接続性問題の解決、品質向上に役立ちます。

以下のリンクでBluetoothプロトコルアナライザ製品をご紹介させて頂いておりますので、LMP解析のお役に立てれば幸いです。

      Teledyne LeCroy Frontline社 Bluetoothプロトコルアナライザ製品一覧ページ

      https://www.cornestech.co.jp/tech/frontline/ 

また、弊社ではアナライザをお持ちでないお客様向けにBluetoothの測定・解析サービスをご用意しております。自社製品、対抗機それぞれのLMP情報も見ることが可能ですので、ご興味ある方は以下リンクをご参照ください。

Bluetooth 測定・解析サービスのご紹介

https://info.cornestech.co.jp/Teledyne_Bluetooth_Measurement_Service

その他Bluetoothプロトコルアナライザに関するご質問やご要望等ございましたら、ページ下部のWEBマガジンお問い合わせフォームより、お気軽にお問い合わせください。

ページトップへ戻る