Bluetooth® Core 6.2 SCIで超低遅延通信を実現!

こんにちは。加賀デバイスのNordic Teamです。 Bluetooth® LEは、低消費電力でありながら高い接続性を実現する無線通信技術として、ウェアラブル機器、IoT機器、医療機器、産業機器など幅広い分野で採用されています。その一方で、ゲーミングマウスやスタイラスペン、AR/VRコントローラーなど、より高いリアルタイム性が求められる用途では「通信遅延」が課題となるケースがありました。 こうした課題を解決するため、Bluetooth SIGはBluetooth Core Specification Version 6.2において、Bluetooth Shorter Connection Intervals(SCI) を新たに追加しました。SCIはBluetooth LEの接続間隔を従来よりも大幅に短縮できる機能であり、より低遅延なBluetooth通信を実現するための重要な技術として注目されています。 本コラムではSCIの仕組みやメリット、想定されるアプリケーションについて解説するとともに、Nordicが提供するSCIソリューションについてご紹介します。 ◢◤Bluetooth LEにおける接続間隔とは? Bluetooth LEで接続されている機器同士は、常時通信を行っているわけではありません。Central(スマートフォンやPCなど)とPeripheral(センサーやマウスなど)は、あらかじめ決められた周期で通信イベントを実行します。この周期を接続間隔(Connection Interval)と呼びます。 例えば接続間隔が10msの場合、10msごとに通信機会が発生するので、新しいデータは次回の通信イベントで送受信されます。つまり、早く次のデータを送りたくても最短で10ms後に送信することになります。 従来のBluetooth LEでは、この接続間隔の下限値は7.5msでした。IoT機器や一般的なBluetooth周辺機器では十分な性能でしたが、より高速な応答性が求められる用途では、この7.5msという制限がボトルネックになる場合がありました。 ◢◤SCI(Shorter Connection Intervals)とは? SCIの追加により、Bluetooth LEの接続間隔を従来よりも短く設定できるようになります。従来のBluetooth LEでは接続間隔の下限値は7.5msでしたが、SCIでは0.375msまで設定可能となりました。 ただし、実際にSCIを利用するためには「Central、Peripheral共にSCIに対応している」必要があります。また、規格上0.375msが定義されているからといって、すべての機器で0.375msの接続間隔が利用できるわけではありません。 SCIでは新たに2つの接続間隔範囲が追加され、従来の接続間隔と合わせて3つのカテゴリに分類して定義しています。 Value Range 説明 最小間隔(ms) 最大間隔(s) 分解能(ms) BCV (Baseline ConnInterval Values) SCI未サポート時のデフォルト範囲(従来の範囲) 7.5 4.0 1.25 RCV (Rounded ConnInterval Values) SCIサポート時の必須範囲 1.25 4.0 1.25 ECV…

モバイルアプリ nRF Toolbox でBluetooth® LE通信の簡単評価

こんにちは。加賀デバイスのNordic Teamです。 Bluetooth製品の開発をする場合、正しく通信できるか確認する手段としてお手持ちのスマートフォンを使用することが多いと思います。NordicではAndroidとiOSの両方に対応しているモバイルアプリツールnRF Toolboxを提供しており容易に確認することが出来ます。 そもそもBluetooth Classicでは、単純なデータのやり取り(シリアル通信の無線化)を行いたい場合、SPP(serial Port profile)という標準プロファイルが存在しました。しかし、Bluetooth LE仕様ではそれに代わる標準プロファイルが存在しない為、NordicではNUS(Nordic UART Service)と言うカスタムプロファイルを用意しています。 NordicのNUSのサンプルソフトとnRF Toolboxを使えば直ぐに簡単な無線通信の評価が可能です。 今回は超小型で使い勝手の良い、加賀FEI製ES2810AA(nRF52810搭載)を使用してnRF Toolboxの使い方をご説明します。 NUSサンプルソフトは、ES2810AAのUARTと異なる端子をアサインしているため、端子アサインをES2810AAに合わせるように変更し、NUSの詳細ページに従いサンプルソフトをビルド、J-Link LiteでES2810AAにFWを書き込みます。後はPCと接続しnRF Connect for DesktopのSerial Terminalを起動すれば準備は完了です。 なお、nRF Connect SDKのインストールや使用方法、ポートアサインの変更などはNordicのDevAcademyをご参照ください。 iPhone上でnRF Toolboxを開くと下記の画面が表示されます。(Andorid端末の場合、表示が異なりますが基本機能は同様です)nRF Toolboxでは、標準プロファイルであるRSCS(Running Speed and Cadence Service) やHRS(Heart Rate Service)等との通信も確認する事が可能です。 NUSを確認する場合は【Universal Asynchronous receiver / transmitter(UART)】を選択します。【Connect】をタップすると、近くにあるNUSペリフェラルを表示します。表示されているデバイスをタップするとコネクションします。 9個ある四角をタップすると、画面が遷移します。【Text】か【Bytes】を選択し、送信したいデータを打ち込みます。アイコンはご自身の分かりやすいものを選択してください(違いはありません)更に【LF】【CR】またはその両方などを選択可能です。 後は表示されているアイコンをタップすると、スマートフォンからES2810AAへNUSでデータが送信されます。 作成したアイコンを長押しする事で、送信内容を変更や削除が可能です。 また複数のデータをマクロ化し、まとめて送信する事も可能です。 逆に、ES2810AAからスマートフォンへデータを送りたい場合、Serial Terminal上でキーを打ち込むと、アプリの【Logs】の画面で確認することができます。ただ【Logs】の画面はdefaultでDebugやInfoログなども表示されている為、少々見辛いです。これは設定で表示内容を制限することができます。 これで、スマートフォンからの送信データと受信データを確認する事が可能となります。NUS以外のプロファイルとの通信についても直感的で分かりやすいGUIとなっておりますので、是非お試しください。 なお、nRF ToolboxはGitHubにてコードを公開しておりますので、そのコードをベースにカスタムしてご使用頂く事も可能です。まず、簡単にBluetooth LEの通信を確認/評価したいという場合、非常に便利なツールとなっておりますので是非ご活用ください。 ご興味ございましたら弊社のお問い合わせ にご連絡ください。 今後もNordicの紹介及びコラムにて色々な情報を公開致しますので是非ご確認ください。 また、Facebookでも随時情報を公開しておりますので合わせてご確認ください。