いった技術分野のお役立ち情報を紹介しています。はじめに弊社のBluetooth測定・解析サービスはご存じでしょうか。ご興味をお持ちの方も多いと思います。そこで、株式会社ムセンコネクト様(以下、ムセンコネクト)でお取り扱いBluetoothモジュールに対して行った弊社のBluetooth測定・解析サービスの実例を通して、Bluetooth測定・解析サービスの内容をご紹介させていただきます。株式会社ムセンコネクト様(以下、ムセンコネクト)にサービスを体験いただくにあたり、あえて不具合がある状態のLINBLE(ムセンコネクト社製BLEモジュール※)をお預かりして我々が測定・解析し、どこに問題があるのか、改善点としてどんなことが提案できるのか探りました。※本不具合については既に修正されておりますBluetooth接続時の課題LINBLEとスマホ/タブレット/パソコンとのBluetooth接続において、iOSとの接続は問題なく、Android/Windowsでの接続ができないという不具合がありました。Android/Windowsでも接続できるようにするにはどうすれば良いのか、問題分析と改善点の把握が必要でした。Bluetooth測定・解析サービス内容まず、事前の打合せにて不具合の現象をヒアリングした上で、目的や測定環境や測定項目などを明確にし、Bluetoothプロトコルアナライザを用いて実際の測定を行いました。その後、測定したデータの解析を行い、課題や改善策をレポートいたしました。以下が今回のサービス内容の実際の流れになります。今回の目的として「LINBLE(ペリフェラル)と対向機(セントラル)の構成における挙動を測定し、対向機ごとの挙動の違いについて解析を行う」ことに定めました。測定環境では、妨害波に対する検証や実際に発生している現場検証が必要かどうかが重要となります。今回は、事前ヒアリングにて接続できなくなるという現象は「最初の1回以降、2回目から通信ができなくなる」ということを確認しました。環境に関係なく該当の端末ではこの共通の挙動が発生していたと考えられます。よって不具合は妨害波の影響によるものとは考えにくいため、一般的なオフィス環境にて実施することとしました。測定機材としては、LINBLEと挙動の違いが見られたiPhone(iOS)/Android/Windowsの以下3端末を用意しました。測定機材が決まりましたら、測定する範囲もお客様と明確にし、測定内容を詰めていきます。今回は図3の点線(赤色)のBluetooth部分が測定範囲になりました。今回は事前にLINBLEをお預かりし、測定/解析ポイントを検討しました。このようにヒアリングだけでは見えない部分についてを実際にデバイスを動作させながら確認していくこともあります。確認した結果、各対向機と新規接続(1回目)/再接続(2回目)のデータを取得し、Bluetoothがつながるまでのプロセス(図4)の比較解析を行うことにしました。(GATT)におけるBluetoothプロトコルスタックが原因の可能性があると判断し、各レイヤの挙動を解析していきました。「最初の1回以降、2回目から通信ができなくなる」という観点で、iPhoneと新規接続(1回目)/再接続(2回目)のデータを取得し、比較解析を行いました。5-1-1:Advertising/Scanningの確認1回目/2回目共に、アドバタイズパケットの送信およびスキャンリクエストへの応答が問題なく行われていました。Interval:22.50ms)。Interval:22.50ms)。Protocol)でペアリングプロセスが実行され、2回目はSMPの処理が行われていませんが、特に問題なく暗号化も行われていました。Protocolの確認1回目・2回目共にキーボード出力が開始された。Protocolのやり取り(2/2)】5-1-6:iPhone(iOS)の解析結果まとめ1回目/2回目共に、各項目とも特に大きな問題はみられず、キーボード出力も開始されていました。【図12:iPhone(iOS)の解析結果まとめ】5-2:Androidとの接続iPhone同様、Androidでも「最初の1回以降、2回目から通信ができなくなる」という観点で、Androidと新規接続(1回目)/再接続(2回目)のデータを取得し、比較解析を行いました。5-2-1:Advertising/Scanningの確認1回目/2回目共に、アドバタイズパケットの送信およびスキャンリクエストへの応答が問題なく行われていました。Interval:45.00ms)。Interval:45.00ms)。Protocol)でペアリングプロセスが実行され、2回目はSMPの処理が行われていないが、特に問題なく暗号化も行われていました。Protocolの確認1回目は問題なくキーボード出力が開始されましたが、2回目はキーボード出力が開始されませんでした。Protocolのやり取り(3/3)】5-2-6:Androidの解析結果まとめ1回目/2回目ともPairingの確認までは各項目とも特に大きな問題はみられませんでしたが、2回目はキーボード出力も開始されませんでした。Protocolのやり取りにて不具合が発生していることが分かったため、詳細を見ていきます。ProtocolのNotificationで送信されます。Configurationで設定されていました。Reportが設定されていません)。【図23:Android再接続時のNotification解析結果】5-3:パソコン(Windows)との接続スマートフォン同様、パソコン(Windows)でも「最初の1回以降、2回目から通信ができなくなる」という観点で、Androidと新規接続(1回目)/再接続(2回目)のデータを取得し、比較解析を行いました。5-3-1:Advertising/Scanningの確認1回目/2回目共に、アドバタイズパケットの送信およびスキャンリクエストへの応答が問題なく行われていました。2回目:37.50ms)。Intervalに変化がありましたが、1回目/2回目共に、データチャネルでの通信も正常に行われていました。Protocol)でペアリングプロセスが実行され、2回目はSMPの処理が行われていないが、特に問題なく暗号化も行われています。Protocolの確認1回目は問題なくキーボード出力が開始されましたが、2回目はキーボード出力が開始されませんでした。Protocolのやり取り(3/3)】5-3-6:Windowsの解析結果まとめ1回目/2回目ともPairingの確認までは各項目とも特に大きな問題はみられませんでしたが、2回目はキーボード出力も開始されませんでした。Configuration自体が設定されていませんでした。Protocolのそれぞれの処理の解析を行い、以下の結果が得られました。Pairingまでの処理では特に大きな問題は見られなかった。Configurationで設定される。ReportのNotificationが送信されるように設定されていた。ReportのNotificationが送信されるように設定されていなかった。Configurationについて仕様では「切断や再接続においても保持されるもの」という記載がある。Configurationについてペリフェラル側(今回はLINBLE)で保持する必要があると考えられます。最後に弊社では、今回のようにBluetooth通信上の課題を明らかにし、解決へ導くお手伝いをしております。お客様の課題に対し高い満足度を得られるよう一から丁寧にヒアリングを行い、ご納得いただいた上で測定・解析を行っていきます。ムセンコネクト様にも弊社が指摘した原因、またその原因特定に至るまでのアプローチの説明も満足できたと好評でした。Bluetooth通信に関してお困りごとがございましたらまずは弊社までお気軽にご相談ください。ムセンコネクト様に今回の体験を踏まえて「無線化講座」にて弊社Bluetooth測定・解析サービスを掲載していただきました。こちらも併せてご覧ください!無線通信の測定・解析サービスってどんなもの?利用方法や気になる費用は?弊社のBluetooth解析・測定サービスの詳細については以下よりご参照ください。