IoTで使われる無線通信プロトコルの有望株「BLE」
皆さんもご存じのとおり、今、IoT(Internet of Things, モノのインターネット) と呼ばれる一連の技術が注目を浴びています。 IoTとはその名のとおり、身の回りのあらゆるモノがインターネットにつながることです。センサを利用した温度や位置情報の収集や、離れた機器の操作などがインターネット技術で可能になるため、それにかかるコストは従来よりずっと下がります。これにより、従来は技術的・コスト的な制約で実現できなかったサービスが、IoTにより誕生することが期待されています。
IoT流行の要因としては、小型かつ低消費電力を実現するデバイスが安価で手に入るようになってきたことや、収集したデータを利用するためのインフラが整備されることによって導入の敷居が下がりつつあることが挙げられます。 本記事では、IoTを実現する様々な技術のうち、無線通信のプロトコルとして有望株であるBLE(Bluetooth Low Energy)を取り上げ、それがどのような技術なのかを2回に分けて紹介します。
なお、本記事は、次のような方を読者として想定しています。
- そもそもBLEとは何なのか、BLEを使うと何ができるのかが知りたい
- BLEの表層的なことは知っているが、開発を検討するためにもう少し具体的なことが知りたい
- BLEを使ったアプリケーションを作っているが、仕組みを理解していないので気持ち悪い
- BLEを使うとビーコンなどが作れることは分かったが、他にどのようなことが可能なのかを知っておきたい
Bluetoothとは
Bluetoothは、PCのマウスやキーボードをはじめオーディオ再生機の無線化に使われているお馴染みの技術です。無線通信規格の1つで、2.4GHzの周波数帯の電波を使い、数メートルから数十メートル程度の距離での無線通信を実現します。
BluetoothはIoT分野での活用をにらみ、ここ数年のバージョンアップで大幅な省電力化を実現しました。 これによって、GPSでは難しい屋内での位置特定や、医療器具など、それまでにはなかった幅広い用途での活用が考えられています。
Bluetoothのバージョン
本記事執筆時点(2016年5月)時点で、Bluetooth規格の最新バージョンは4.2です。
バージョン4.0で従来よりも大幅な省電力化され、ボタン電池1つでも数年の寿命を実現しました。この規格がBLE(Bluetooth Low Energy)です。
BLEはBluetooth 3.0以前の規格とは互換性がありません(3.0以前はクラシックBluetoothと呼ばれます)。そこで、両者のBLE対応のデバイスをBluetooth Smart、BLEと3.0以前の規格の両方に対応したデバイスをBluetooth Smart Readyというブランド名で表すようになりました。
バージョン4.2では、転送速度を向上(最大2.5倍)させたほか、IPv6によるインターネット直接接続が可能になりました。
省電力を実現するBLEは、クラシックBluetoothとは全く性格の異なるものです。クラシックBluetoothは大容量データの転送を効率化しますが、1回の接続にコストをかけるため電力消費は大きくなります。これに対して、BLEは頻繁に接続・切断を繰り返すような用途に特化することで、主にIoT用途での電力消費を抑えています。位置ビーコンなどはその好例です。 本記事では省電力化を実現したBLEについて解説しています。クラシックBluetoothとは大きく仕様が異なっているため注意が必要です。
Bluetooth SIG(Special Interest Group)
Bluetooth規格の策定やBluetooth技術利用に対する認証は、Bluetooth SIG と呼ばれる団体が行っています。 Bluetoothを開発したEricsson社が中心となり、現在では、Apple、Ericsson、Intel、Lenovo、Microsoft、Nokia、東芝が推進企業となり、数千の提携・採用企業が参加しています。
SIGは企業向けにPromoter、Associate、Adopterという3段階のメンバーシップを用意しています。
メンバーシップ | 特典 |
---|---|
Promoter | 仕様書が公開される前に仕様の策定に参加可能 |
Associate | 仕様の策定に参加可能 |
Adopter |
無料でBluetooth SIGが提供する技術情報にアクセス可能 (製品化する際には技術ライセンス料が必要) |
自社の製品とサービスにBluetooth技術を使用したり商標(ロゴ)を使用したりする場合には、少なくともAdopterになる必要があります。
BLEの仕様
それでは、BLEの技術詳細について見ていきましょう。 ここでは、膨大なBLEの仕様の中から特に技術上重要と思われる部分や、開発に必要な部分をかいつまんで説明します。アプリケーションを開発するうえで必ずしもすべての内部動作を理解している必要はありませんが、電力消費を見積もったり、通信トラブルを解決するときには大きな助けになるでしょう。
なお、以降はBLEという表記で説明を進めていきますが、Bluetooth自体の説明でもあり、常にクラシックBluetoothとの差分を意識しているわけではありません。
BLEのアーキテクチャ
BLEの通信プロトコルは階層構造になっています。ちょうどOSI参照モデルとよく似た構造になっており、階層は大きく分けてController、Host、Application の3層からなります。
Controllerは、実際に無線通信で相手とやり取りする物理層と、それを制御するリンク層で構成されます。デスクトップPCにUSBドングルを接続してBluetoothを使う場合はこのUSBドングルがControllerにあたります。ControllerとHostは HCI(Host Controller Interface) という規格にそって命令やイベントをやり取りします。これによって、異なるメーカーの製品を組み合わせて利用できるようになっています。
Hostは通信の多重化や、Bluetoothの様々な標準的な機能を実装します。ApplicationとHostの間のやり取りは概念レベルで仕様が決まっていますが、決まったインターフェイスはありません。例えば、iOSとAndroidはそれぞれHostを実装していますが、アプリケーションからの使用方法が異なります。
Applicationは、アプリケーション開発者が個別に実装する層です。プラットフォームごとに内容が異なるため、本記事では詳しく解説しません。
![BLEを構成する3つの層](http://cz-cdn.shoeisha.jp/static/images/article/9287/ble-stack_0.png)
次ページでは3層のうち、Controller層を説明します。