AndroidがBluetooth 4.0を正式サポート

AndroidがBluetooth 4.0を正式サポート

5月14日から米国で開催されたGoogle I/Oで、AndroidのBluetooth 4.0対応が発表されました。API 18となる次のAndroidに搭載されるとのことです。今回のGoogle I/Oでは、新しいNexusシリーズも新しいAndroidも発表されなかったので、「Key Lime Pie」と呼ばれる次のバージョンがAndroid 5.0なのか4.3なのかさえもわかりませんが、API番号だけは順番につけられるので、現在のAPI 17(JELLY_BEAN_MR1。Android 4.2.x)の次になるバージョンであることだけは分かっています。Bluetooth 4.0対応は、それほど小さな変更ではないので、次は5.0と大きく番号が変わるような気がします。

さて、一部の読者の方は、すでにBluetooth 4.0に対応したAndroidスマートフォンが国内で出ていたじゃないか? と思われるかもしれません。実際2011年に登場したNECカシオモバイルコミュニケーションズのN-01Dなどは、Bluetooth 4.0対応となっています。これは、Googleが実装したのではなく、NECカシオモバイルコミュニケーションズが独自に対応した結果です。

今回のAndroidのBluetooth 4.0対応は、Googleが公式にAndroidとして対応を行うもので、次期Androidを搭載するスマートフォンやタブレットがBluetooth 4.0対応のハードウェアを搭載していれば、Bluetooth 4.0対応となります。現在のAndroid 4.2まででは、たとえBluetooth 4.0対応のハードウェアを搭載していても(すでに多くの新機種が採用しているといいます)、メーカーが独自に実装しないかぎり、Bluetooth 4.0では動作せず、Bluetooth 3.0相当になってしまいます。

このAndroidの4.0対応とはどういうことなのでしょうか? その話に入るまえに少しBluetoothについて整理しておきましょう。Bluetoothは、携帯電話とデバイス間を接続するケーブルを無線に置き換える「ケーブルリプレースメント」として仕様がスタートしました。Bluetoothがわかりにくいのは、携帯電話関係のメーカーが多かったため、パソコンではなく携帯電話のようなハードウェアを想定して作られたからです。

Bluetoothでは、接続できるデバイスやその使い方をまとめて「プロファイル」で定義します。パソコン的にいえば、パソコン側に組み込まれるプロトコルを処理するレイヤードライバと制御用アプリケーションとデバイス側に実装されるソフトウェアをまとめて定義したものです。そのため、プロファイルの有無が接続できるデバイスの種類を決めていましたが、それが「Bluetoothスタック」と呼ばれるソフトウェアの中で実装されていたために、同一のハードウェアでも、スタックが違えば、対応できるプロファイルが違い、接続できるデバイスが違っていたのです。ここが、一般のパソコンユーザーに最もわかりにくいところでした(図01)。パソコンのUSBデバイスなら間違いなくあとから登場した製品でも接続が可能です。これは、デバイスドライバ(レイヤードライバ)や制御アプリケーションをあとから組み込むことができたからです。ところが、メーカーにより内部構造が違っているため、特定のメーカーのスタックに対してプロファイルを作成できたとしても、他のメーカーのスタック用には別に開発を行う必要があります。このように流用ができない環境であったために、Bluetoothでは、プロファイルを後から追加することはできませんでした。

図01: Bluetoothは、バージョンにより仕様が決まる。しかし、実際に機器が内蔵する半導体デバイスにより、対応するバージョンが決まる。さらにその上で動作するBluetoothスタックがあり、ここに定義されたプロファイルが接続可能なデバイスを決定する

マイクロソフトによるBluetoothへの正式対応はVistaからになり、スタックとしてまともに動作するようになったのは実質Windows 7からです。それまで、Bleutoothスタックは、デバイスメーカーやサードパーティが提供するものでした。

AndroidがBluetooth 4.0を正式サポート

携帯電話はそれでも困ることはありませんでした。一般に携帯電話は出荷されたあとにデバイスドライバを組み込むといった概念がなかったからです。

Windows 7では、マイクロソフトのBluetoothスタックは完全な標準にはならず、一部のハードウェアメーカーやUSBアダプタのメーカーは、サードパーティスタックを利用していました。たとえば、Bluetooth 4.0は、20xx年に規格が成立したのに、マイクロソフトがこれに対応したのはWindows 8から(2012年××)でした。マイクロソフトのBluetoothスタックの対応は、このようにまだ後手に回っている状態で、最新のBluetoothを利用したけれは、まだ、サードパーティのスタックを利用しなければなりません。そして、複数のスタックがあるために、デバイスメーカーは、追加のプロファイルをいくつも作らねばならず、事実上、プロファイルをデバイスに付けて販売するということができません。こうした背景があるため、Windows上のBluetoothのエコシステムは、中途半端なままになっています。

Bluetooth 4.0では、従来の3.0までの通信方式にくわえ、新たにLE(Low Energy)という通信方式が追加されました。これは、微弱な電波を使うため、電力消費をきわめて小さくできる通信方式です(図02)。しかし、このLEは、従来の通信方式であるBR(Basic Rate)とまったく違っているため、従来のBluetooth 3.0までのデバイスとは通信を行うことができません。ちなみにBluetooth 3.0までは、BRに加え、EDR(Enhanced Data Rate)およびHS(High Speed)という通信方式もありますが、どのデバイスも必ずBRでの通信が可能になっていました。このため、「Bluetooth 3.0+EDR」といった表記を行うことがあります。

図02: Bluetooth 4.0には、LE(Low Energy)とBR(Basic Rate)の2つの通信方式がある。Bluetooth Smart Readyデバイスは、両方の通信方式に対応した「デュアルモード」になっているが、Bluetooth SmartはLEのみ、3.0までのBlueooth機器はBRでしか通信できない。なお、BluetoothではBRに加えEDRやHSといった通信方式を追加で持つことができる

LEでは、BRとの通信ができない代わりに、デバイスとの通信定義するプログラムをあとから追加可能なものとして定義しました。具体的には、GATT(Generic Attribute Profile)というプロファイルが組み込まれていて、これを使うことで、デバイスと通信するプログラムを簡単に開発できるようにしました。

こうした仕組みに対して、Bluetoothを管理しているBluetooth SIGは、「Bluetooth Smart」と「Bluetooth Smart Ready」というロゴを作りました。Bluetooth Smartは、LEに対応したデバイスで、GATTを装備して独自の機能(サービス)を提供します。Bleutooth Smart Readyは、Bluetooth 4.0を装備したホスト(コンピュータ側)で、やはりGATTを装備し、Bleutooth Smartデバイス用のアプリを組み込めるようにしています。なお、Bleutooth Smart Readyには、従来のBluetooth 3.0までの仕様も含まれているため、従来のBluetoothデバイスとも接続することができます(図03)。しかし、従来のBluetooth 3.0までのデバイスはLEを持っていないためにBleutooth Smartデバイスと接続することはできません。

図03: Bluetooth Smart Readyは、デバイスアプリで新規のSmartデバイスに対応する能力を持つ。このため、アプリが利用できるならSmartデバイスは必ずSmart Readyホストから利用可能。これに対してBluetooth同士は、プロファイルが一致したときのみ利用可能だが、一般にプロファイルを後から追加することができない

Bluetooth SmartとSmart Readyのロゴがあるということは、新しいSmartデバイスにもアプリの追加で対応が可能になるということを意味します。つまり、これにより、デバイス+アプリという形でのエコシステムが完成したというわけです。

明確にBluetooth SmartReadyを謳っていないものの、実はiPhone 4S/5は、SmartReadyになっています。搭載されているハードウェアがBluetooth 4.0対応でかつ、Smartデバイス用のアプリを開発できるようになっているからです。このため、現在は、iPhoneを中心にしてSmart/SmartReadyのエコシステムができあがりつつあります。今回のAndroidがBluetoothに対応というニュースは、このエコシステムにAndroidも参加するという話なのです。昨年あたりから出荷されたスマートフォンやタブレットのBluetoothはSmart Readyに対応可能なものになっているといいます。システムのアップデートなどでSmart Readyになるアンドロイド機も出てくる可能性があります。

編集部注: 本稿は、2013年6月14日にAndorid情報のWeb専門誌「AndroWire」に掲載した記事を再構成したものです。