【サルでもわかるBLE入門】(6) BLEの通信速度
こんにちは。ムセンコネクト三浦です。
今回も「サルでもわかるBLE入門」と銘打ってお話していこうと思います。BLE初心者の方でも理解をしてもらえるように、できるだけわかりやすく解説していきます。
第6回はBLEの『通信速度』のお話です。
わかりやすく解説する為に、BLE初心者にはあまり必要ない例外的な内容は省略して説明するようにしています。
また、あえてアバウトに書いている部分もありますのでご承知おきください。
(厳密な技術的内容を知りたいような方は別の解説書を参考にしてください。)
通信速度の考え方
BLEに限らず『データ通信』を行う場合は、通信速度を考える必要があります。
よく「BLEを使ってこの位のデータを送りたいのですが、どの位時間がかかるでしょうか?」という相談を受けます。
実はこれ、BLE通信においてはかなりの難問なのです。
利用する環境、状況によって大きく変わってくるので、端的に回答しようとすると「お使いになる環境、条件で試してみるしかありません」という回答になってしまいます。
例えば下記の条件によって通信速度が変わってきます。
- 通信相手
- 電波環境
- 通信距離
通信相手
組込み機器がペリフェラルの場合、通信相手となるセントラル側はスマートフォンやパソコンになることが多いのですが、スマートフォンやパソコンには多様な機種があり、OSの種類、OSバージョンによってもBLEの機能性に差があります。
iPhoneとAndroidスマホでも性能は違いますし、格安スマホとハイエンドスマホでも性能差があります。新しい機種と古い機種でも違います。機種によって通信速度が変わるものだと思って、複数の機種で通信試験を試してみる必要があります。
BLE通信では接続が確立したあとにお互いのBluetoothの能力を公開します。それによりお互いが許容できる最適な通信設定を選択して通信することができます。
例えば、お互いのBluetoothのバージョンが4.2の次、Bluetooth5.0以上で2M PHYに対応している仕様の場合は高速通信を試みることができます。
逆に消費電流を抑えたい場合は、相手が高速通信を望んてきても拒否して通信速度を抑えた通信をする、ということもできます。
電波環境
無線通信は電波環境の影響を大きく受けます。
同じ周波数の電波が混雑しているような状況だと、電波がぶつかって相手に正しく届かなくなってしまいます。正しく届かないと再送処理が発生し、無駄にやり取りを繰り返すことになってしまいます。送りたいデータがなかなか送れずに、通信速度が遅くなってしまいます。
BLEは『省電力・近距離』の通信仕様のため、他のパワフルな無線通信とぶつかると負けてしまうことが多いです。声が大きい方が聴き手に聞こえやすいというのと一緒です。
通信距離
通信距離が遠くなると、受信側がデータを受信しづらくなり通信速度が遅い状態になります。送信側から受信側へ正しくデータを送れる確率が低くなり、再送が起きやすくなるためです。
1m位の距離で通信させる場合と、10m離れたところで通信させる場合とでは通信速度は大きく変わってきます。
BLE機器開発において『実測』が意外と盲点になりやすいようです。「開発中は机の上では30cm位で通信させているので良好だったけど、実際の使用環境で距離測定してみたら、全然思っていた速度が出ない」ということがありますので、注意が必要です。
BLEの通信速度の目安
「BLEの通信速度はどのくらいですか?」と聞かれた時は、 前述の通り使用環境によって変わることをお伝えしたあとで、「10Kbps程度です」と答えることが多いです。経験上のざっくりとした平均値のような数字として「10Kbps程度」としています。
先日はBLEを使って10MByteのデータを送信したいというご相談がありました。
仮に、BLEの通信速度が10Kbpsだとした場合、10MByteを送信するのにどのくらい時間がかかるでしょうか?
10MByteはbitにすると80Mbitです(1Byteは8bit)。10Kbpsは1秒間に10Kbitが送信できる速度のことなので、80Mbitを送信するには8,000秒かかることになります。8,000秒は133分なのでかなり長い時間ですね。
【参考データ】LINBLE-Z1の通信速度の場合
もう少し条件を増やして考えてみる為に、例としてLINBLE-Z1の通信速度データ(スループット測定結果)を使って考えてみましょう。
LINBLE-Z1の通信速度のデータと同じスピードが出ると仮定した場合、通信距離が1mでPixel3が相手であれば、上り方向(BLE機器からPixel3にデータを送る方向)では138Kbpsの速度が出ています。このスピードであれば、10MByteを送信するのに約10分で送ることができます。
更にLINBLE-Z1の高速通信機能(2M PHY)を利用したときの通信速度は、通信距離1m、Pixel3相手で604Kbpsの速度が出ています。このスピードであれば、10MByteを送信するのに約2分で送信できることになります。
条件を限定すればこのような計算も成り立ちますが、実際には多くの使用状況がありますのでマージンをとって考えておく必要があります。
今回は通信速度についてお話しました。
次回もBLEの技術要素について深堀りしてお話したいと思います。