(番外編)Bluetooth LE に対する誤解

(更新

Some common misunderstandings about Bluetooth LE.

さて、またもや番外編です。よくお客様に Bluetooth LE を提案申し上げていると、ときどき、同技術に対する誤解があることに気づきます。多くの場合、Bluetooth LE を従来の Bluetooth クラシックの延長技術と考えられているところに理由があるように思います。Bluetooth LE は名前を借りてはいるものの、ベースとなる技術は Bluetooth クラシックとは異なるものです。(もちろん、クラシックと LE を両方サポートしたデュアルモードのデバイスや機器が多く存在します。) この背景は、Java と JavaScript の違いに似ていると言えば、御理解頂ける方もあるかも知れません。

私は特に Bluetooth SIG に贔屓を持っている訳ではないのですが、国内産業のさらなる発展を鑑みて(?)、いくつかの誤解を解かせて頂きたいと思います。

誤解 1. Bluetooth LE のセントラルは、同時に 7つまでしかペリフェラルと通信できない

これは誤りです。確かに、従来の Bluetooth(クラシック)では、仕様書の「Unparking Slaves」という節にて

If the slaves are identified with the PM_ADDR a maximum of 7 slaves can be unparked with the same message.

という記述がありました。しかしこの制限は、Bluetooth LE には存在しません。Wikipedia なら信じる(?)という方は、以下を御参照ください。

あるいは、ここなども参考になります。

実際に、有名な Nordic Semiconductor 社の S120 という SoftDevice(ファームウェア)では、同時に 8つのリンクを張ることができるとうたわれています。

ちなみに、もし接続(connection)を必要としないのであれば、このような実装上の制限すらなく、任意の数のペリフェラルからの advertising packet を受信することができます。たとえば、Bluetooth LE のビーコンなどは advertising packet だけで情報を同報しているものが多くありますので、例えばスマートフォンが受信できる相手のビーコンの数には規格上の制限はありません。

ただし、多くのペリフェラルが同時に高頻度で advertising packet を送出すると無線チャネル上での衝突(collision)の機会が増えますので、効率は下がります。これは仕方がないところでしょう。(それでも、Bluetooth LE ではパケットサイズのオーバーヘッド等が小さく抑えられているので、この点でも他のプロトコルに比べて効率は高いと思われます。)

誤解 2. Bluetooth LE は、セントラルがペリフェラルに接続(connection)するのに数秒もかかる

これは誤りです。信号強度が十分で通信エラーがないのであれば、Bluetooth LE は規格上、connection を確立してデータを転送してから、接続を解除(disconnect)するのに必要な合計時間が「およそ 3ミリ秒(0.003秒)」とされています。以下が参考になります。

これ以外にも誤解があるかも知れません。気づいたら、少しずつ加筆していきたいと思います。