SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Webアプリケーション開発技術の新潮流スタディーズ

IoT技術の代表「BLE:Bluetooth Low Energy」の動作原理を理解してみよう【前編】

Webアプリケーション開発技術の新潮流スタディーズ 第6回


  • このエントリーをはてなブックマークに追加

 注目が高まるばかりのIoT。IoTを支える技術は様々ありますが、本記事では2回にわたり、無線通信のプロトコルとして有望株と目されている「BLE」(Bluetooth Low Energy)を取り上げ、それがどのような技術なのかを解説します。技術の動作原理を知ることは、理解を深めるだけでなく、それを応用する幅を広げます。IoTは開発や運用に制約が多いので、基礎となる知識は特に重要です。

  • このエントリーをはてなブックマークに追加

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段階のメンバーシップを用意しています。

3段階のメンバーシップ
メンバーシップ 特典
Promoter 仕様書が公開される前に仕様の策定に参加可能
Associate 仕様の策定に参加可能
Adopter 無料でBluetooth SIGが提供する技術情報にアクセス可能
(製品化する際には技術ライセンス料が必要)

自社の製品とサービスにBluetooth技術を使用したり商標(ロゴ)を使用したりする場合には、少なくともAdopterになる必要があります。

BLEの仕様

それでは、BLEの技術詳細について見ていきましょう。 ここでは、膨大なBLEの仕様の中から特に技術上重要と思われる部分や、開発に必要な部分をかいつまんで説明します。アプリケーションを開発するうえで必ずしもすべての内部動作を理解している必要はありませんが、電力消費を見積もったり、通信トラブルを解決するときには大きな助けになるでしょう。

なお、以降はBLEという表記で説明を進めていきますが、Bluetooth自体の説明でもあり、常にクラシックBluetoothとの差分を意識しているわけではありません。

BLEのアーキテクチャ

BLEの通信プロトコルは階層構造になっています。ちょうどOSI参照モデルとよく似た構造になっており、階層は大きく分けてControllerHostApplication の3層からなります。

Controllerは、実際に無線通信で相手とやり取りする物理層と、それを制御するリンク層で構成されます。デスクトップPCにUSBドングルを接続してBluetoothを使う場合はこのUSBドングルがControllerにあたります。ControllerとHostは HCI(Host Controller Interface) という規格にそって命令やイベントをやり取りします。これによって、異なるメーカーの製品を組み合わせて利用できるようになっています。

Hostは通信の多重化や、Bluetoothの様々な標準的な機能を実装します。ApplicationとHostの間のやり取りは概念レベルで仕様が決まっていますが、決まったインターフェイスはありません。例えば、iOSとAndroidはそれぞれHostを実装していますが、アプリケーションからの使用方法が異なります。

Applicationは、アプリケーション開発者が個別に実装する層です。プラットフォームごとに内容が異なるため、本記事では詳しく解説しません。

BLEを構成する3つの層
BLEを構成する3つの層

次ページでは3層のうち、Controller層を説明します。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Controller層

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Webアプリケーション開発技術の新潮流スタディーズ連載記事一覧

もっと読む

この記事の著者

鳥居 陽介(株式会社ワークスアプリケーションズ)(トリイ ヨウスケ)

株式会社ワークスアプリケーションズ所属。イケてるアプリケーションを死ぬほど楽に作るために研究を続ける日々。社内での立ち位置は「フロントエンドのナウい人」。最近エバンジェリストという肩書きが付いた。趣味は作曲とスノーボード。 Blog: http://jinjor-labo.hatenablog.com/ ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9287 2016/06/14 15:17

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング