2021.06.22
【Webマガジン Vol.40- June., 2021】Column: BPA low energyで学ぶBluetooth Low Energyの基本
FRONTLINEWEBマガジン
はじめに
Bluetooth Low Energyは、従来のBluetooth Classicよりも大幅な省電力を実現する仕様として、現在スマートフォンをはじめとしたさまざまなデバイスで利用されています。このBluetooth Low Energyの仕様自体は、Bluetooth SIGで策定されているBluetooth Core Specificationのバージョン4.0から正式にリリースされていますが、2021年6月現在、バージョンは5.2まで進化しています。
さまざまなデバイスで利用されているBluetooth Low Energyを使ってアプリケーションを開発するにあたり、実際にどのような無線通信が行われているか正確に把握することによって「接続ができない」「データの送受信できていない」といった問題が発生した場合にもBluetoothの仕様の観点から正しく解析することが可能になります。
BPA low energyは Teledyne LeCroy 社のBluetoothバージョン4.2のLow Energy専用プロトコルアナライザで、Bluetooth Low Energyの無線データを取得して通信の解析を行うためのツールです。
本記事では、BPA low energyを使ってBluetooth Low Energyの基本的な仕組みについて見ていきます。
周波数ホッピング
Bluetooth Low Energyでは、2.4GHz (2400MHz)の周波数帯を2MHz単位で0~39の計40チャネルに分割して、周波数ホッピングを行っています。
BPA low energyではFrame Displayという画面でLE BBタブ(BBはBasebandの略)として、各パケットの周波数ホッピング情報や信号強度レベル(※)などが以下のように表示されます。
※BPAシリーズでは信号強度レベルは1(弱い) ~ 14(強い) で表現されます。X240およびSoderaではdBm単位での表示になります
また、Packet Error Rateという画面では各チャネルの使用状況を時系列で確認することができますので、使用/未使用チャネルの状態やチャネルごとのエラー発生率/再送発生率をみることで、Wi-Fiなど他の電波の影響について解析が可能です。
<接続前のPacket Error Rate表示(主に37・38・39チャネルで通信されている)>
<接続後のPacket Error Rate表示(15チャネル以外で通信されている)>
Bluetooth Low Energyパケットフォーマット
Bluetooth Low EnergyのパケットフォーマットはVersion 4.2までは1種類のパケットフォーマットが使われています。
Bluetooth バージョン 5.0以降では、このパケットフォーマットはLE 1M Uncoded PHY という名称で定義されており、このパケットフォーマット以外にLE 2M Uncoded PHYとLE Coded PHYというパケットフォーマットが存在します。
アドバタイズパケット
Bluetooth Low Energyでは、アドバタイザ側デバイスがアドバタイズパケットで自身の存在を周囲にブロードキャストで送信します。ビーコンなどはこのパケットでデータ送信を行います。40チャネルのうち、37・38・39チャネルがアドバタイズ用チャネルとして使われています。
アドバタイズパケットは、前述のBluetooth Low EnergyのパケットフォーマットのPDU(Protocol Data Unit)としてヘッダ情報とペイロードが含まれております。
BPA low energyのFrame DisplayではLE ADVタブ(ADVはAdvertisingの略)タブでアドバタイズパケットが以下のように表示されます。
アドバタイズパケットの間隔はBluetooth low energy Timelineという画面で確認することができます。
Bluetooth バージョン 5.0以降では、37・38・39チャネルのアドバタイズはPrimary Advertisingという名称で定義されており、これ以外には37・38・39チャネル以外を使用するSecondary Advertisingが存在します。
コネクション
スキャナ側のデバイスが、接続したいアドバタイザ側からのアドバタイズパケットの受信に成功すると、スキャナ側デバイスはアドバタイザに接続要求を送信してコネクションの状態を開始します。
実際のやりとりはMessage Sequence Chartという画面で確認することができます。
<アドバタイズパケットの受信>
<スキャナ側デバイスの接続要求>
また、Message Sequence ChartのCtrl Summaryでは、接続要求以降の制御系パケットの処理抜粋が表示されます。
データパケット
アドバタイズパケットでの接続要求後はデータパケットでデータのやりとりを行います。アプリケーションが上位プロファイルで通信を行う場合、データパケットを使われます。
40チャネルのうち、37・38・39チャネル以外がデータ用チャネルとして使われています。
データパケットもアドバタイズパケット同様、Bluetooth Low EnergyのパケットフォーマットのPDUとしてヘッダ情報とペイロードが含まれています。
BPA low energyのFrame DisplayではLE DATAタブでデータパケットが以下のように表示されます。
セントラル(スキャナ)とペリフェラル(アドバタイザ)のデータのやりとりはコネクションと呼ばれ、1回に行われるデータのやりとりをコネクションイベントと呼びます。
コネクションイベントの間隔は接続要求時にConnection Intervalとして指定されます。
実際のコネクションイベントの間隔はBluetooth low energy Timelineという画面で確認することができます。
Bluetooth バージョン 5.0以降では、Bluetooth バージョン 4.2までのデータチャネルの周波数ホッピングはChannel Selection Algorithm #1という名称で定義されており、より複雑化したChannel SelectionAlgorithm #2が5.0以降では存在します。
Link Layer
Link LayerではBluetoothバージョンやサポートしている機能の確認、暗号化など接続に関連する処理を行います。
Frame DisplayではLE LLタブ(LLはLink Layerの略)で以下のように表示されます。
Message Sequence Chartでもデバイス間のやりとりを確認することができます。
Security Manager
Security Managerでは1対1のデータ通信を暗号化するためのペアリング・暗号鍵生成/交換を実現します。
Frame DisplayではLE SMPタブ(SMPはSecurity Manager Protocolの略)で以下のように表示されます。
Message Sequence Chartでもデバイス間のやりとりを確認することができます。
Attribute Protocol
アプリケーションレベルでのデータのやりとりは、Attributeという形で構造化された情報を用いて行われます。
Frame DisplayではATTタブ(ATTはAttributeの略)で以下のように表示されます。
Message Sequence Chartでもデバイス間のやりとりを確認することができます。
BPA low energy対応Bluetoothバージョン
BPA low energyではBluetoothのバージョン4.2まで対応しております(LE Data Packet Length Extension 除く)。LE Data Packet Length Extensionやバージョン5.0以降でサポートされた機能を確認されたい場合は、BPA low energyの上位機種であるX240またはSoderaをお使いください。
Bluetoothプロトコルアナライザに関するご質問やご要望等ございましたら、ページ下部のWEBマガジンからのお問い合わせフォームより、お気軽にお問い合わせください。