今回は、「Bluetooth」についての説明です。
目次
1.Bluetoothとは?
Bluetoothとは、数m程度の短距離において利用される無線通信の標準規格のことです。
Bluetoothはスマートフォンが普及し出した辺りから身の回りに出回り始めたようなイメージがありますが、初版のBluetoothは実は1999年から登場しています。
Bluetoothを搭載している機器同士なら、10m以内くらいなら電線抜きで通信を行うことができます。
例えば、スマートフォンの音声をワイヤレスイヤホンに伝えたい場合、Bluetoothに対応していれば問題無く繋ぐことが出来るのです。
IEEEという電気電子技術の専門組織である世界最大の非営利団体によって定められた規格の一つで、IEEE 802.15がBluetoothの規格を表しています。
日常的に飛び交っている電波の中には、特別な免許は不要で自由に利用できる2.4GHz付近の周波数帯があります。
Bluetoothもこの2.4GHz帯を利用しています。
数m程度の距離でしか通信ができないというデメリットはありますが、Bluetoothに対応させるための部品は小型・軽量・安価に製造できるので、どんな機器でも気軽に搭載が可能です。
また、電波が届きさえすれば通信ができるので、互いに遮蔽物があって見えない位置にある機器同士でも接続が可能というメリットがあります。
電波が回り込む余地があるのなら、通信ができるのですよ。
ちなみに、電子レンジなどの家電でも2.4GHz帯を利用していることはあるので、家電の動作状況によっては家の中でも通信障害が起きることはあります。
ノイズが入ったり音が途切れたりする場合は、周辺機器の電波の干渉を疑いましょう。
2.Bluetoothの仕様
Bluetoothには、様々な仕様が存在します。
Bluetoothを使用するという点は共通してても、用途によって通信方式・操作手順・符号化形式などが異なるのです。
Bluetoothの仕様としては、プロファイルとコーデックの2点が重要になってきますので、それぞれ解説していきます。
2-1.Bluetoothのプロファイル
プロファイルとは、大まかに言えば設定情報のことです。
Bluetoothのプロファイルとしては、通信方式・操作手順・シリアル番号などのデバイス情報・取り扱うデータ情報・セキュリティといった様々な情報が仕様としてまとめられています。
つまり、Bluetoothデバイスがどんな機能を持っているのかは、プロファイルを確認すればわかるのです。
Bluetoothデバイスに搭載されているプロファイルは製品によって異なりますので、プロファイルの内容次第でそのデバイスがどのような機能を持つのかが大きく変化します。
逆に言うと、プロファイルが合致している機器同士なら通信方式などが統一されるため、Bluetooth通信が可能になるわけです。
別のメーカで作られた製品であろうが、Bluetoothプロファイルが同じなら通信が可能なのです。
イメージが湧かない場合は、プロファイルを言語に置き換えて考えてみると良いです。
人(デバイス)によって日本語・英語・中国語など使用言語(プロファイル)が異なるので、言語(プロファイル)が共通した時のみ意思の疎通(通信)が可能になるのです。
プロファイルが共通していればBluetooth通信ができるということは、デバイスが対応しているプロファイルが多ければ多いほど様々なデバイスとBluetooth通信ができるようになることになります。
1デバイスにつき1プロファイルというわけではないんです。
どんなプロファイルがあるのか、いくつか例を挙げておきますね。
2-1-1.A2DP
[Advanced Audio Distribution Profile]の略称。
※[Advance(高度な)]、[Distribution(流通)]。
ペアリングしたデバイス間で音声データの伝送を行い、伝送されてきた音声データをストリーミング配信(受信しながら再生)することが可能になるBluetoothプロファイルです。
スピーカーやワイヤレスイヤホンとBluetooth通信して、音楽を再生することができます。
高音質でステレオ音声を聴くためには必須となるプロファイルなので、昨今のワイヤレスイヤホンには標準搭載されています。
ただし、後述のコーデックが共通していないとA2DPを搭載していても通信ができないことがあります。
A2DPで通信方式を定めてあっても、データの圧縮方式(暗号方式・コーデック)が異なるからうまくやり取りができないのです。
2-1-2.AVRCP
[Audio/Video Remote Control Profile]の略称。
オーディオ機器などをリモート操作(遠隔から操作)するためのBluetoothプロファイルです。
オーディオ機器とワイヤレスイヤホンなどをBluetooth通信した際、イヤホン側のボタン操作によってオーディオ機器の制御(音楽再生/停止・ランダム再生など)を行うことができます。
例を挙げると、私の持っているワイヤレスイヤホンの場合、1タップで一時停止、2タップで次の曲を再生、長押しでボリューム変更といった遠隔操作機能が付いています。
2-1-3.FTP
[File Transfer Profile]の略称。
2台のコンピュータの間でファイル転送をするためのBluetoothプロファイルです。
FTP[File Transfer Protocol]との関連性は無い。
2-1-4.GAP
[Generic Access Profile]の略称。
機器の接続・認証・暗号化を行うためのBluetoothプロファイルです。
あらゆるBluetoothプロファイルの基礎として機能します。
2-1-5.GATT
[Generic ATTribute profile]の略称。
後述のBluetooth Low Energyを利用するためのBluetoothプロファイルです。
BR/EDRと同時に実装することが可能。
2-1-6.HFP
[Hands-free Profile]の略称。
ヘッドセットとPCや携帯電話などの間でハンズフリー通信をさせるためのBluetoothプロファイルです。
後述のHSPの上位規格に当たる。
通話用途のヘッドセットにはほぼほぼHSPとセットで搭載されている。
2-1-7.HSP
[HeadSet Profile]の略称。
ヘッドセットとPCや携帯電話などの間で音声入出力(双方向通信)させるためのBluetoothプロファイルです。
モノラル音声に対応しています。
通話用途のヘッドセットにはまず付いているBluetoothプロファイルです。
2-1-8.PAN
[Personal Area Networking profile]の略称。
1台のコンピュータをマスターとして、複数のコンピュータをスレーブとして無線接続するためのBluetoothプロファイルです。
PAN[Personal Area Network]がそもそも複数のコンピュータで相互にデータを送受信可能な小規模なネットワークのことを指していて、このネットワークの形成に無線を使用する場合はWPAN[Wireless Personal Area Network]と呼ぶことがあります。
ただ単にPANという用語が出てきた場合、BluetoothプロファイルであるPANを指していることが多い。
2-1-9.PBAP
[Phone Book Access Profile]の略称。
電話帳のデータを伝送するためのBluetoothプロファイルです。
2-1-10.SPP
[Serial Port Profile]の略称。
仮想的なシリアルポートを設定するためのBluetoothプロファイルです。
設定したシリアルポート越しにコンピュータを接続することができます。
ここで挙げたのは一例です。
まだまだBluetoothプロファイルは存在します。
お持ちのBluetoothデバイスがどんなBluetoothプロファイルを搭載しているのかは、データシートや取扱説明書に載っています。
気になる方は試しに見てみましょう。
2-2.Bluetoothのコーデック
コーデックとは、信号やデータを符号化または復号する装置やソフトウェアのことです。
Bluetoothにおけるコーデックもその例に漏れず、無線で音声データを伝送する際の符号化/復号の規格を指しています。
ここで言う符号化/復号とは、いわゆる圧縮/解凍のことです。
圧縮とは、平たく言えばデータを削減して容量を軽くすることです。
音声データをそのまま送ろうとするとデータ量が嵩むので、人の耳では聴き取れない周波数帯域などを除外したりしてデータの圧縮を行うのです。
その圧縮されたデータを復号して、音楽の再生をしています。
この圧縮の方式も共通している機器に限り、Bluetooth通信が可能なのです。
コーデックが異なると音質や音の遅延に差が生じるため、コーデックが異なる場合はうまく音声を再生できないようになっています。
ちなみに、プロファイル同様、1デバイスにつき1コーデックというわけではなく、複数のコーデックに対応していることがあります。
Bluetooth機器が接続された段階でお互いにどんなコーデックに対応しているのかを照らし合わせ、その上でどのコーデックにてデータ伝送するのかを選択します。
その為、共通するコーデックが無かった場合、音声データを再生することができません。
処理がそこで止まるんですよ。
どんなコーデックがあるのか、いくつか例を挙げておきますね。
2-2-1.AAC
[Advanced Audio Codec]の略称。
スマートフォンには大体搭載されているコーデックです。
最も基本的なBluetoothコーデックであるSBCよりも音質が良いです。
音声ファイルの拡張子としてよく見かけるMP3の後継に当たる規格で、MPEG形式の動画データに含まれる音声データの標準的な圧縮方式です。
MP3よりも音質が良いので、同程度の音質を維持するならMP3の1.4倍程度の圧縮が可能になっている。
Andoroidの場合はaptXというコーデックが採用されていることが多いので、その場合はそちらを使用した方が音質が良くなります。
2-2-2.aptX
Qualcomm社が特許を持っているBluetoothコーデックです。
最も基本的なBluetoothコーデックであるSBCよりも高音質・低遅延(70ms程度)です。
読み方はアプトエックスらしいです。
aptXを実装するにはQualcomm社にライセンス料を払う必要があります。
Andoroidでは無償利用できるようになっているため、普及率が高いです。
また、より低遅延になったaptX LL[Low Latency]、ハイレゾに対応させたaptX HD[High Definition]、周囲環境に応じてビットレートを自動変化させるaptX adaptiveといったコーデックも存在します。
2-2-3.LDAC
ソニー社が開発したBluetoothコーデックです。
ハイレゾに対応した音質重視のコーデックです。
読み方はエルダックらしいです。
遅延が酷いという噂がある。
2-2-4.SBC
[SubBand Codec]の略称。
最も基本的なBluetoothコーデックです。
データ削減のために他のコーデックと比べると低音質になるが、その代わりにどんなBluetooth機器にも搭載されています。
その為、音声データの伝送に関するBluetoothプロファイルであるA2DPとセットで標準搭載されています。
音の遅延に関しても結構大きめで、220ms程度の遅延が発生すると言われています。
音楽再生する分には比較対象が無いので気にはなりませんが、YouTubeなどの動画配信サイトで映像を閲覧する場合、映像と音声のズレは素人でもわかる程度には顕著になります。
3.BLEとは?Bluetooth Low Energyとは?
Bluetoothの拡張仕様として、Bluetooth Low Energyというものがあります。
略してBLEと記述されていることが多いです。
Bluetooth ver.4.0から追加になった拡張仕様で、その名の通り、低消費電力通信を実現できます。
Bluetooth自体が近距離用無線技術なので比較的省電力なのですが、BLEはそこから更に消費電力を抑えています。
代わりに通信速度が落ちてますけどね。
途中で述べましたが、BLEを利用するためにはGATTを搭載する必要があります。
ちなみに、従来の通信モードのことをBR[Basic Rate]、高速伝送モードのことをEDR[Enhanced Data Rate]と呼びます。
このBRとEDRをまとめてBR/EDRと記載してあることが多く、BR/EDRのことをBluetooth Classicと呼びます。
BLEの登場以前のBluetoothの通信モードを[Classic(古典的)]と呼び分けているわけです。
また、BDに関しては、BDR[Basic Data Rate]と記載されていることもあります。
調べても全く情報が出てこないので一般的ではないのかもしれませんが、あるデータシート上ではBDRとEDRがセットで載っていたことがあります。
このメーカが独自でそう呼んでいるだけかもしれないので、鵜呑みにはしないでください。
このBR/EDRとBLEは切り替えて使用が可能なので、最新のBluetoothの仕様を確認すると、どちらにも対応していることが確認できるはずです。
ただし、Bluetooth ver.4.0はBLEにしか対応しておらず、BR/EDRとBLEで切り替えが可能になるのはBluetooth ver.4.1からです。
その点は注意が必要です。
一応Bluetoothのロゴには以下の3種類が存在するので、見分けることは可能です。
- Bluetooth…BR/EDRにのみ対応。
- Bluetooth Smart…BLEにのみ対応。
- Bluetooth Smart Ready…BR/EDR及びBLEに対応。
4.Bluetoothのスペック(Class)
Bluetoothには、電波強度を表す「Power Class」という概念があります。
「どの程度の出力ができるか」、「どの程度の距離まで伝送できるか」という程度を、Classという形で定義してあるのです。
BluetoothのClassは、BR/EDRとBLEで異なります。
Classの後ろに付く数字が小さくなるほど出力・伝送範囲共に強化される点は共通しているのですが、微妙に違うんですよね。
このClassという分類は、Bluetoothの基準でしかありません。
日本で流通している製品においては、日本の法律(電波法)に則る必要があります。
具体的には、以下のような制限が設けられます。
BR/EDRは、出力を3mW/MHz以下に抑える。
BLEは、出力を10mW以下に抑える。
※ただし、バラつきで+20%までは許容可能。意図的に引き上げるのはNG。
なので、日本で流通しているBLE仕様でClass1に分類されるBluetooth製品があったとしても、実際の出力は10mW以下に抑えられていたりします。
Bluetoothという製品は世界的に出回っていますが、日本という地域で使用する分には日本のルールに則るというだけの話です。
郷に入っては郷に従えというヤツです。
ちなみに、Bluetoothの電波の到達範囲はClass1で100m程度、Class2で10m程度、Class3で1m程度と言われていますが、“到達範囲”と“通信距離”は別物です。
ハンドボール投げで40m飛ばせるAさんと30m飛ばせるBさんがいたとします。
この2人でボールをパスし合うとすると、Bさんの方が腕力が劣るので、Bさんの投擲距離である30mに合わせる必要があるでしょう?
ここで言うAさんBさんの個別の投擲距離が“到達範囲”、AさんBさんの間でパスが可能な距離が“通信距離”に当たるわけです。
双方向通信するためには、両機器の到達範囲を比較して、距離が短い方に合わせられるということです。
よくよく考えれば当たり前のことしか言ってませんね。
また、Class毎の到達範囲についても目安でしかないので、そのまま鵜呑みするのは止めましょう。
使用環境などによって大きく変化してしまいますからね。
Bluetoothモジュールを用いた製品を開発する場合、机上の空論で終わらせるのではなく、実際に動かして試験してみるのが良いでしょう。
5.AFHとは?
Bluetoothという技術の誕生に伴って開発された技術に、AFHというものがあります。
AFHとは、[Adaptive Frequency Hopping]の略称です。
一定時間ごとに異なる周波数を取り扱う技術のことです。
飛び飛びになった[hop]周波数[frequency]に適応する[Adaptive]技術を指しているわけです。
最初に述べたように、Bluetoothは2.4GHzの周波数帯域を使用します。
ただ、この2.4GHz帯というのは、Wi-Fiなどの別の無線通信においても使用される周波数帯です。
同じ周波数帯を使用するとどうなるのかというと、信号が互いに干渉する可能性が出てきてしまいます。
イメージとしては、狭い通路を共用として使用する感じです。
通ろうと思えば通れますけど、ぶつかり兼ねないのです。
特に、BluetoothとWi-FiはPCやスマートフォンなどの同じ機器・室内で利用していることが多いので、信号が干渉する確率はそれだけ高くなります。
なので、Bluetoothという技術が開発されたことは良いものの、既存の無線通信と信号が干渉するという点は当初から問題視されていました。
そこで開発された技術がAFHです。
AFHは、エラーが頻発するチャンネルを検出し、そのチャネル(チャネル)を使わないように回避する技術です。
Bluetoothは、2.4GHz~2.48GHzの80MHz幅を39チャンネルや79チャンネルに割り当てて使用しています。
その為、1チャンネルにつき占有するのは2MHz幅や1MHz幅になっています。
それに対してWi-Fiは、広めの占有幅(大体22MHzになっている)を確保して通信を行います。
以下のようなイメージになっているということです。
※ここではBluetoothは39チャンネルに割り当てています。
仮に、赤で表示された範囲をWi-Fiが占有していると、その範囲内に含まれるチャンネルでのBluetoothでの通信はエラーが発生してしまうのです。
では、どうすれば良いでしょうか?
Wi-Fiが使用しない周波数帯域を使用すれば良いだけだと思いませんか?
電車に乗ろうとしたら先客(Wi-Fi)がどっかりと席(チャンネル)を占拠していたのなら、空いている席に座れば良いのです。
実際その通りで、Bluetoothはエラーが発生する範囲を避けて間を縫うように使用チャンネルを選定して、通信しているのです。
そうして使用チャンネルがパターン化されるので、「一定時間ごとに異なる周波数を取り扱う技術」と説明したわけです。
これがAFHという技術の概要です。
思考自体は単純なんですね。
ちなみに、Wi-FiとBluetoothでは、信号の出力が「Wi-Fi≫Bluetooth」になっています。
つまり、お互いに干渉するとBluetoothがほぼ負けます。
Bluetooth側はパケットを損失するので、タイムアウトという形でそれを検出します。
そして、パケットを再送する際にAFHが働いて、以前干渉したであろうチャンネルを避けて通信を行うのです。
ただ、Wi-Fi側も無傷というわけではなくパケット(ある長さに分割されたデータのこと)を損失してしまうことがありますので、それを検出するとリダンダンシー(必要最低限な状態に対して余分がある状態)を上げるために送信レートが若干落ちます。
どちらの通信にとっても通信が衝突することは望ましくないので、AFHという技術は重宝されると共に標準装備されているのが現状です。
以上、「Bluetooth」についての説明でした。