
無線データ交換規格であるBluetoothは、さまざまなプロトコルを使用しています。コアプロトコルは、業界団体であるBluetooth SIGによって定義されています。その他のプロトコルは、他の標準化団体から採用されています。この記事では、コアプロトコルと、広く使用されている採用プロトコルの概要を説明します。
Bluetoothプロトコルスタックは、タイミングが重要な無線インターフェースを含む「コントローラスタック」と、高レベルのデータを扱う「ホストスタック」の2つの部分に分かれています。コントローラスタックは通常、Bluetooth無線モジュールとマイクロプロセッサを搭載した低コストのシリコンデバイスに実装されます。ホストスタックは通常、オペレーティングシステムの一部として、またはオペレーティングシステム上にインストール可能なパッケージとして実装されます。Bluetoothヘッドセットなどの統合デバイスでは、大量生産コストを削減するために、ホストスタックとコントローラスタックを同じマイクロプロセッサ上で実行できます。これはホストレスシステムと呼ばれます。
ポーリングTDMA方式を用いてアクセスを調停する、一般的なデータパケットに使用される標準的な無線リンク。いくつかの種類のパケットを伝送でき、それらは以下の特徴によって区別される。
パケットを転送するには、2つのデバイス間で接続が明示的に確立され、承認される必要がある。
ACLパケットは、確認応答がない場合、自動的に再送信されるため、干渉を受けた無線リンクの不具合を修正できます。アイソクロナスデータの場合、再送信回数はフラッシュタイムアウトによって制限できますが、L2PLAYの再送信およびフロー制御モードやEL2CAPを使用しない場合は、上位レイヤがパケット損失を処理する必要があります。
監視タイムアウト期間中に何も受信されない場合、ACLリンクは切断されます。デフォルトのタイムアウトは20秒ですが、マスターによって変更される場合があります。
音声データに使用される無線リンクの種類。SCOリンクは、中央デバイスが論理リンク確立時に決定するSCO間隔Tscoで区切られた予約済みタイムスロットのセットです。各デバイスは、予約済みタイムスロットでエンコードされた音声データを送信します。再送信は行われませんが、オプションで前方誤り訂正を適用できます。SCOパケットは、1、2、または3タイムスロットごとに送信できます。
拡張SCO(eSCO)リンクは、リンク設定においてより高い柔軟性を提供します。再送信を利用して信頼性を確保したり、SCOよりも多様なパケットタイプやパケット間の長い間隔に対応したりできるため、他のリンクにおける無線可用性が向上します。
2つのデバイス間の無線リンク制御、モバイルDMV、デバイス機能の照会、および電力制御に使用されます。コントローラに実装されています。
ホストスタック(例えば、PCや携帯電話のOS)とコントローラ(Bluetooth集積回路(IC))間の通信を標準化する。この規格により、ホストスタックまたはコントローラICを最小限の変更で交換することが可能になる。
HCI(ヒューマンコンピュータインタラクション)のトランスポート層にはいくつかの規格があり、それぞれ異なるハードウェアインターフェースを使用して同じコマンド、イベント、データパケットを転送します。最も一般的に使用されているのは、USB(PC)とUART(携帯電話やPDA)です。
シンプルな機能を持つBluetoothデバイス(ヘッドセットなど)では、ホストスタックとコントローラを同じマイクロプロセッサ上に実装できる。この場合、HCIはオプションだが、多くの場合、内部ソフトウェアインターフェースとして実装される。
これはBluetooth Low Energy (LE)のLMP版に相当しますが、よりシンプルな構造になっています。コントローラ上で実装され、Bluetoothの観点から見るとハードウェアに近い低レベルで、アドバタイズ、スキャン、接続、セキュリティを管理します。
L2CAPはBluetoothプロトコルスタック内で使用されます。パケットはホストコントローラインターフェイス(HCI)に渡されるか、ホストレスシステムの場合はリンクマネージャ/ACLリンクに直接渡されます。
L2CAPの機能には以下が含まれます。
L2CAPは、ホストACLリンクを介して通信するために使用されます。その接続は、ACLリンクが設定された後に確立されます。
基本モードでは、L2CAPは最大64kBまで設定可能なペイロードを持つパケットを提供します。 デフォルトのMTUは672バイト、サポートされる最小必須MTUは48バイトです。再送モードとフロー制御モードでは、再送とCRCチェックを実行することで、チャネルごとに信頼性の高いデータまたは非同期データを設定できます。これらのモードのいずれにおいても、再送回数とフラッシュタイムアウト(無線機がパケットをフラッシュするまでの時間)を設定することで、下位レイヤのBluetooth BDR/EDRエアインターフェイスによってオプションで、または追加的に信頼性が保証されます。順序通りのシーケンスは下位レイヤによって保証されます。
EL2CAP仕様では、コア仕様に拡張再送モード(ERTM)が追加されています。これは、再送モードとフロー制御モードの改良版です。ERTMは、802.11abgnなどのAMP(代替MAC/PHY)を使用する場合に必要となります。
BNEP [ 1 ]は、L2CAP 上でネットワーク パケットを配信するために使用されます。このプロトコルは、パーソナル エリア ネットワーク (PAN)プロファイルで使用されます。BNEP は、無線 LANのサブネットワーク アクセス プロトコル(SNAP)と同様の機能を実行します。
プロトコルスタックにおいて、BNEPはL2CAPにバインドされている。
BluetoothプロトコルRFCOMMは、L2CAPプロトコルをベースにしたシンプルなトランスポートプロトコル群であり、エミュレートされたRS-232シリアルポート(Bluetoothデバイスへの同時接続数は最大60)を提供します。このプロトコルは、ETSI規格TS 07.10に基づいています。
RFCOMMはシリアルポートエミュレーションと呼ばれることもあります。Bluetoothシリアルポートプロファイル(SPP)はこのプロトコルに基づいています。
RFCOMMは、TCPと同様に、シンプルで信頼性の高いデータストリームをユーザーに提供します。多くの電話関連プロファイルでATコマンドのキャリアとして直接使用されるほか、Bluetooth上のOBEXのトランスポート層としても機能します。
多くのBluetoothアプリケーションは、RFCOMMが広くサポートされており、ほとんどのオペレーティングシステムで公開APIが利用できるため、RFCOMMを使用しています。さらに、シリアルポートを使用して通信していたアプリケーションも、RFCOMMを使用するように迅速に移植できます。
プロトコルスタックにおいて、RFCOMMはL2CAPにバインドされている。
デバイスが互いにサポートするサービスと、それらに接続するために使用するパラメータを検出できるようにするために使用されます。たとえば、携帯電話を Bluetooth ヘッドセットに接続する場合、SDP は、ヘッドセットがサポートするBluetooth プロファイル(ヘッドセット プロファイル、ハンズフリー プロファイル、高度なオーディオ配信プロファイルなど) と、それぞれのプロファイルに接続するために必要なプロトコル マルチプレクサ設定を決定するために使用されます。各サービスは、Universally Unique Identifier (UUID) によって識別され、公式サービス (Bluetooth プロファイル) には短縮形の UUID (128 ビットではなく 16 ビット) が割り当てられます。
プロトコルスタックにおいて、SDPはL2CAPにバインドされている。
電話制御プロトコル仕様バイナリ(TCSバイナリ)とも呼ばれる。
Bluetoothデバイス間の音声通話およびデータ通話の設定と制御に使用されます。このプロトコルはITU-T規格Q.931に基づいており、付属書Dの規定が適用され、Bluetoothに必要な最小限の変更のみが加えられています。
TCSは、インターホン(ICP)およびコードレス電話(CTP)プロファイルで使用されます。インターネット通信で使用される伝送制御プロトコル(TCP)との混同を避けるため、電話制御プロトコルの仕様はTCPとは呼ばれません。
リモコンプロファイルによって使用され、 L2CAPチャネルを介してAV/Cコマンドを転送します。ステレオヘッドセットの音楽コントロールボタンは、このプロトコルを使用して音楽プレーヤーを制御します。
プロトコルスタックにおいて、AVCTPはL2CAPにバインドされている。
高度なオーディオ配信プロファイルで使用され、L2CAPチャネルを介してステレオヘッドセットに音楽をストリーミング配信します。ビデオ配信プロファイルでの使用を想定しています。
プロトコルスタックにおいて、AVDTPはL2CAPにバインドされている。
オブジェクト交換(OBEX、IrOBEXとも呼ばれる)は、デバイス間でバイナリオブジェクトの交換を容易にする通信プロトコルです。赤外線データ協会(IDA)によって維持管理されていますが、 Bluetooth Special Interest GroupやOpen Mobile Alliance (OMA)のSyncML部門にも採用されています。
Bluetoothでは、OBEXは、単純なデータ交換を必要とする多くのプロファイル(例:オブジェクトのプッシュ、ファイル転送、基本的な画像処理、基本的な印刷、電話帳へのアクセスなど)に使用されます。
SDPと同様の機能を持つが、低消費電力Bluetooth向けに特別に調整・簡素化されている。これにより、クライアントはサーバーが公開する特定の属性を、複雑でない低消費電力な方法で読み書きすることができる。
プロトコルスタックにおいて、ATTはL2CAPにバインドされている。
これは、Bluetooth Low Energyの実装において、ペアリングやトランスポート固有のキー配布に使用されます。
プロトコルスタックにおいて、SMPはL2CAPにバインドされている。