SPPモジュールからBLEモジュールへ移行する場合の注意点
こんにちは、ムセンコネクトCMO、兼 無線化.comカスタマーサポート担当の清水です。
(プロフィール紹介はこちら)
今回はSPP(Serial Port Profile)モジュールからBLEモジュールへ移行する際に確認すべき注意点について解説したいと思います。
SPPモジュールからBLEモジュールへ移行する場合の注意点
ZEAL-C02をご利用中のお客様から、ムセンコネクトのLINBLE-Z1へ移行したいとのご相談をいただきます。つまりSPPモジュール(ZEAL-C02)からBLEモジュール(LINBLE-Z1)への切り替えです。
引き続きムセンコネクトのBluetoothモジュールをご検討いただけるのは非常に嬉しいことなのですが、「同じBluetooth無線でも、SPPとBLEは全く別物の無線規格」であり、その点を十分ご理解いただけていないのではないか、必ず移行できると誤解されているのではないか、という懸念があります。
BLEとSPPは互換性がない!
まず最も重要な点、それはBLEとSPPは互換性がないということです。
BLEはBluetooth4.0から採用された新しい規格ですが、SPPの上位互換というわけではありません。BLEとSPPは特長も仕様も大きく異なり、しかもプロファイルが異なるため互換性がありません。
このため、上位アプリケーションの無線用途、データ通信要件によって置き換えられる場合と置き換えられない場合があります。
BLEに移行できるか否かの注意点は通信速度と通信相手
SPPモジュールからBLEモジュールに移行できるか否かのポイントは大きく二つ、通信速度と通信相手です。
通信速度が足りない可能性
BLEのスループットはおよそ10kbps程度と言われています。BLEはSPPに比べて通信速度が遅いため、Bluetoothモジュールへの通信速度要求が高かった場合、BLEでは通信速度が足りない恐れがあります。目安としては、UARTの設定ボーレートが9600bpsで足りるかどうか。もし設定ボーレートが115.2kbpsだったり、それ以上の通信速度が要求される場合には通信要件を満たせないかもしれません。
LINBLE-Z1と各主要OS(デバイス)との通信速度を計測しました。
LINBLE-Z1はBluetooth5.0ということもあり、従来のBLEモジュールに比べると通信速度性能が向上しています。SPP→BLEの置き換えでも通信速度要件を満たせる可能性があります。
通信相手の変更、または上位アプリケーションの作り直しが必要
LINBLE-Z1はZEAL-C02とピンコンパチになっていますので、ハードウェア的には互換性があり、従来のZEAL用基板をそのままご利用いただけます。さらにコマンド体系も引き継いでいるため、組込みマイコン側のソフトウェアに対してもある程度の互換性を保持しています。
一方で、組込み機器側をSPPからBLEに変更するということは、通信相手側もSPPからBLEへ対応させる必要がありますが、BLEモジュールの通信相手がパソコン(Windows)だった場合、BLEへの移行は容易ではありません。
パソコン(Windows)のBLE対応が容易ではない理由
WindowsOSバージョンに制限がある
WindowsではWindows8.1から正式にBLE API(GATT API)に対応しています。WindowsパソコンでBLEを利用したい場合には最低でもWindows8.1以降である必要があります。加えて、WindowsOSにおけるBLE APIは非常に動作が不安定という情報もあり、出来るだけ新しいWindowsバージョン、つまりWindows10以降であることが望ましいと考えられます。
ムセンコネクトの実験では、Windowsバージョンやパソコン(ハードウェア構成やスペック)の違いによって、BLE通信のパフォーマンスにも差が出ることを確認しております(同時接続数や通信速度など)。
このため、Windows環境に依存せず、カンタン且つ安定したBLE通信を実現するBluetooth USBアダプタ「LINBLEドングル」をご用意いたしました。
パソコンにBluetoothが内蔵されている必要がある
前述のBLE APIを利用するためには、パソコン自体にBluetoothが内蔵されている必要があります。パソコンの機種やハードウェア構成も選ぶということです。BLEに対応したBluetoothドングルを外付けするという方法も考えられますが、その場合はWindowsが用意しているBLE APIとは連携できないため、別途ドングル用のドライバが必要になったりします。
Windows側アプリケーションのBLE対応が必要
SPPの場合は仮想COMとして扱うことができましたので、従来からシリアル通信を行っていたアプリケーションであれば、参照するCOMポートを変更するだけでOKでした。しかし、前述のBLE APIは仮想COMポートとして扱えるわけではないため、WindowsアプリケーションをBLE APIを使った仕組みに修正する必要が出てきます。
このように、パソコン環境をSPPからBLEに置き換えるのは非常にハードルが高いです。
- 置き換えのために開発リソースを割けるか?
- 技術的に自社で実現可能か?
- パソコン環境はBLE化の条件を満たせるか?
ここが大きなポイントです。
一方、iOSやAndroidはBLE通信環境構築が容易なので、SPP→BLE化を機に、通信相手もパソコンからスマホやタブレットに切り替えてしまうのも一手です。
BLEへの移行をオススメできるケース、できないケース
SPPからBLEに移行できるケース、難しいケースをまとめると下記のようになります。
BLEに移行できる
- 通信速度が遅い、9600bps程度
- 通信相手がiOS、Android
- 組込みマイコン側のプログラム、または通信相手側のアプリケーションを作り直しても良い
BLEへの移行は難しい
- 通信速度が必要、115.2kbps以上(*通信速度性能を要確認)
- 通信相手がパソコン、Windows
- 組込みマイコン側のプログラム、または通信相手側のアプリケーションを作り直したくない
BLEへの移行を急がず、SPPで様子を見るという選択肢
Bluetoothという無線規格自体、古い技術から新しい技術へ移行しようとしている過渡期であり、Bluetoothを取り巻く周辺環境も徐々に切り替わろうとしている最中です。
BluetoothSIGはBluetooth5.0から高速モードを追加しています。将来的にはBLEでも通信速度不足が解消されるかもしれませんし、WindowsのOSバージョンアップやデバイスの進化によって、パソコンにおけるBLE通信環境構築も容易になるかもしれません。
そういう意味では、今すぐにSPPからBLEに移行させるのではなく、もう少しの間SPPを使い続け、機が熟すまで様子を見るというのもアリだと思います。
ムセンコネクトでも高速モード対応や、Windowsにおける容易なBLE環境構築にチャレンジしていく予定です。
SPP→BLEへの移行が適しているか判断が難しい場合には、ムセンコネクトまでお気軽にご相談ください。BLE化した方が良いのか、SPPで様子を見た方が良いのか、案件の状況に合わせてアドバイス差し上げます。