Blouetoothとは
イメージ
Bluetoothとは、近距離無線通信技術の一つ。2.4GHz帯の電波を使用するもので、Intel、IBM、Ericsson、Nokia、東芝の5社が提唱した。IEEEでは、IEEE 802.15のうちIEEE 802.15.1として規格化された。
語源は10世紀のデンマーク王であるハーラル王(908?〜986)に由来しており、王の本来のあだ名の「浅黒い肌の権力者」(浅黒い肌はBlå、権力者はtan)を英語の音に写したものがbluetoothである。
ハーラル王は、デンマークとノルウェーを無血統合したことから、異なる機器を繋ぐ規格名にふさわしいとして採用された。
バージョン
バージョン | 内容 |
---|---|
1.0b | 最初のバージョン |
1.0b + CE | 1.0bに修正を加えた。 |
1.1 | 普及バージョン |
1.2 | 2.4GHz帯域の無線LAN (IEEE 802.11/b/g) などとの干渉対策が盛り込まれた。2003年11月公開。 |
2.0 | 容量の大きいデータを通信する際に最大通信速度を3Mbpsの通信に切り替えるEDR (Enhanced Data Rate) がオプションで追加できるようになった。2004年11月公開。 |
2.1 | ペアリングが簡略化され、近距離無線通信のNFC (Near Field Communication) に対応した。マウスやキーボードなどのスリープ時間が多い機器のバッテリーを最大で5倍延長できる「Sniff Subrating」機能を加えた。2007年3月公開。 |
3.0 | Protocol Adaptation Layer (PAL) とGeneric Alternate MAC/PHY (AMP) によって無線LAN規格IEEE 802.11のMAC/PHY層の利用が可能となり、最大通信速度が24MbpsとなるHS (High Speed) がオプションで追加できるようになった。また、電力管理機能を強化して省電力性を向上させた。2009年4月公開。 |
4.0 | 従来のバージョンに比べ大幅に省電力化された(Bluetooth Low Energy)。Bluetooth SIGが公開する資料によれば、ボタン電池1つのみでも数年駆動可能としている。転送速度は1Mbpsだが、データパケットサイズが8 - 27オクテットと非常に小さくなっている。これは、例えば家電製品などに搭載されたセンサとのデータ通信に向けた仕様となっている。この点が3.0+HSと方向性が異なっており、ベンダは3.0+HS、4.0をそれぞれ目的別に採用するものとされている。2009年12月公開。また、4.0は以前のバージョンとの互換性を持たない。ただし、ホスト側は2.1もしくは3.0を組み込んだ「デュアルモード」を実装できる。 |
4.1 | |
4.2 | Bluetooth Smart の通信速度(アプリケーションスループット)が260kbpsから650kbpsに2.5倍高速化。Bluetooth Smart が IPv6/6LoWPAN でインターネット接続できるようになる。 |
5 | データレートが2Mbps, 1Mbps, 125kbpsになり、1, 2Mbpsは従来通り到達距離が100m、125kbpsは到達距離が400mとなった |
今回は、上記のバージョンのうち、現在の主流であり、今回の実装でも仕様するBluetooth4.0LEについて説明します。
Bluetooth4.0LE
LE(Low Energy)はBluetooth4.0で新たに追加された通信方式で、略して、BLE(Bluetooth Low Energy)と呼ばれる。ブランド名はBluetooth Smartである。(本書では以下、BLEと記す)
BLE はもともと、Nokia社が開発していたものを Bluetooth SIG が採用したものである。
対応OS
OS | バージョン |
---|---|
iOS | 5以降 |
Windows Phone | 8.1 |
Windows | 8以降 |
Android | 4.3以降 |
BlackBerry | 10 |
Linux | 3.4以降(BlueZ 5.0による対応) |
※ 参考:https://ja.wikipedia.org/wiki/Bluetooth_Low_Energy
Classic Bluetoothとの違い
BLEはその名の通り、いかにClassic Bluetooth(従来のBluetooth)をLow Energyにするかという点に重きを置いて開発されてきた。BLEの目指すマーケットは、Classic Bluetoothのそれとは異なり、主にIoTでの利用を想定している。そのため、CR2032で動くことを想定して策定している。以下、そのLow Energy化の一部例をあげる。
- 周波数チャネルの減少
- Classic Bluetoothで使用している2.4GHz帯は、その利用の自由さゆえに、Wifiや、電子レンジ、無線アラーム、街路灯、マウス、キーボードなど本当に様々な機器で接続される帯域である。この帯域で安定した接続を確立するために、ClassicBluetoothは、2.4GHz帯を79の周波数チャネルにわけ、625μ秒単位でランダムにチャネルを切り替えながら通信を行っている。BLEでは、この周波数チャネルを40まで減らし、同期の時間を減らしている。
- チャネルの区別
- BLEは40のチャネルを3つのアドバタイジングチャネルと、37のデータチャネルに分けている。このアドバタイジングチャネルの3という数字は、安定性と省電力の関係を加味して決めたものである。この数が少なければ安定性が保たれないし、多ければ省電力を達成するのは難しい。
- 1つのプロトコル
- メモリは多ければ多いほど電力を消費する。BLEでは省電力化のため、プロトコルを一つ(ATT)に限定し、複数プロトコルにおけるメモリの確保を防いでいる。このATT(Attribute protocol)1つでdiscovery,read,writeなどを行う。
- 非対称な役割
- BLEでは、各レイヤー(後述)において役割分担を行い、必要最低限の機能を持つように設計されている。例えばリンク層では、デバイスをmasterとslaveに分け、master側にピコネットのタイミングや暗号化などの機能を設け、slave側には必要最低限の機能のみを持たせ、省電力化を図っています。
レイヤーと役割
- The Physical Layer(物理層)
- transmittersとreceiversに分かれている。デバイスはtransmitterとrevceiverの2つの役割を持つことができるが、一度に実行できるはどちらか一つである。
- the Link Layer(リンク層)
- advertisers、scanners、slaves、mastersに分かれている。advertiserは、パケットの送信を行い、scannerはadvertiserのパケットを受け取る。slaveはmasterと接続を行い、masterは、通信方法の設定を行える。
- At the Attribute Protocol Layer(ATT層)
- clientとserverに分かれている。serverはデータを保持し、clientはそのデータをserverに問い合わせる。serverは、clientの問い合わせに言われるがまま応じ、clientは、serverがどのようなデータを持っていて、どのように使うかを考える必要がある。
GAP
L2CAP
ATT
GATT
Service
参考文献
- 書籍
- Bluetooth Low Energy: The Developer's Handbook
- iOS×BLE Core Bluetoothプログラミング
- サイト