Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Bluetooth プロトコル スタック

Bluetooth® Special Interest Group (SIG) [1]および[2]は、Bluetooth Low Energy (BLE) と Bluetooth 基本レート/拡張データ レート (BR/EDR) テクノロジーのプロトコル スタックを定義します。これらの仕様の基本的な目的は、相互運用可能な無線コンポーネントとデータ通信プロトコルに対する双方向サービスとアプリケーションを開発することです。

この図は Bluetooth スタックのアーキテクチャを示しています。

Bluetooth デバイスは次の 2 つのいずれかのタイプです。

  • シングル モード – BR/EDR または LE プロファイルをサポート

  • デュアル モード – BR/EDR および LE プロファイルをサポート

BLE プロトコル スタックおよびBluetooth BR/EDR プロトコル スタックの詳細については、後に続く節を参照してください。

BLE プロトコル スタック

この図では、BLE プロトコル スタックと開放型システム間相互接続 (OSI) 参照モデルを比較しています。

前の図では、BLE プロトコル スタックと OSI 参照モデルを示しています。

  • 物理層 (PHY) には 1 対 1 のマッピングがあります。

  • OSI のデータ リンク層 (DLL) は、BLE の論理リンク制御およびアダプテーション プロトコル (L2CAP) とリンク層 (LL) にマッピングします。

  • BLE スタックでは、上位層がアプリケーション層サービス、デバイスの役割とモード、接続管理、およびセキュリティ プロトコルを提供します。

BLE プロトコル スタックの機能は、コントローラー、ホスト、アプリケーション プロファイルおよびサービスの 3 つの主な層に分けられます。

コントローラー

コントローラー層には、BLE PHY、LL、およびコントローラー側ホスト コントローラー インターフェイス (HCI) が含まれます。

BLE PHY-  BLE PHY 無線インターフェイスは、免許不要の 2.4 GHz の産業科学医療用 (ISM) 周波数帯域で Wi-Fi® として動作します。BLE PHY 無線インターフェイスには以下のような特性もあります。

  • 動作無線周波数 (RF) は 2.4000 GHz 以上 2.4835 GHz 以下の範囲です。

  • チャネル帯域幅は 2 MHz です。動作帯域は 40 個のチャネルに分かれています (k = 0、…、39)。k 番目のチャネルの中心周波数は 2402 + k × 2 MHz です。

    • ユーザー データ パケットは範囲 [0, 36] のチャネルを使用して送信されます。

    • アドバタイジング データ パケットはチャネル 37、38、および 39 で送信されます。

  • ガウス周波数シフト キーイング (GFSK) 変調方式が実装されます。

  • BLE PHY は周波数ホッピング スペクトル拡散 (FHSS) を使用して、干渉を減らし、フェージング チャネルの影響を軽減します。周波数ホップ間の時間は 7.5 ms から 4 秒まで変化し、各スレーブの接続時に設定されます。

  • 仕様 Version 4.x 準拠のデバイスの場合、1 Mbps でのスループットのサポートが必須です。1 Mbps のデータ転送速度では、伝送は符号化されません。

  • オプションで、Bluetooth コア仕様 Version 5.1 に準拠するデバイスは、次の追加のデータ レートをサポートしています。

    • 500 kbps または 125 kbps のビット レートでの符号化伝送

    • 2 Mbps のビット レートでの符号化されない伝送

LL-  LL は OSI モデルのメディア アクセス制御 (MAC) 層に似たタスクを実行します。Bluetooth では、LL は BLE PHY と直接やり取りし、無線のリンク状態を管理して、マスター、スレーブ、アドバタイザー、スキャナーなどの、デバイスの役割を定義します。

コントローラー側 HCI-  コントローラー側の HCI は、ホストとコントローラーの間のインターフェイスを処理します。HCI は、パケット データの送信および受信のための一連のコマンドとイベントを定義します。コントローラーからのパケットの受信時に、HCI はコントローラーで生データを抽出してホストに送信します。

ホスト

ホストにはホスト側 HCI、L2CAP、属性プロトコル (ATT)、汎用属性プロファイル (GATT)、セキュリティ マネージャー プロトコル (SMP)、汎用アクセス プロファイル (GAP) が含まれます。

ホスト側 HCI-  ホスト側の HCI は、ホストとコントローラーの間のインターフェイスを処理します。HCI は、パケット データの送信および受信のための一連のコマンドとイベントを定義します。データの送信時に、HCI は生データをパケットに変換してホストからコントローラーに送信します。

L2CAP-   L2CAP は、ATT 層および SMP 層で指定されたリンク構成に従い、送信用に BLE 上位層からのデータを標準 BLE パケット形式にカプセル化します。または、受信時に標準 BLE LL パケットからデータを抽出します。

ATT-   ATT は GATT ベースのプロファイルでクライアントとサーバー間の属性データを変換します。ATT は、クライアント/サーバー アーキテクチャの役割を定義します。役割は通常、リンク層で定義されたマスターとスレーブに対応します。一般に、デバイスはマスターであるかスレーブであるかに関係なく、クライアント、サーバー、またはその両方になる可能性があります。ATT は、次の図に示すように属性へのデータ編成も行います。

デバイス属性は次のように表されます。

  • 属性ハンドルは、クライアントがそれらの属性を参照できるようにするためにサーバーによって割り当てられた 16 ビットの識別子の値です。

  • 属性タイプは Bluetooth SIG で定義された汎用一意識別子 (UUID) です。たとえば、UUID 0x2A37 は心拍数の測定を表します。

  • 属性値は可変長フィールドです。関連付けられた UUID と属性値を含むサービス レコードのサービス クラスによって、属性値フィールドの長さが決まります。

  • 属性のアクセス許可は、各属性に関連付けられた一連のアクセス許可の値です。これらのアクセス許可は、属性の読み取りおよび書き込み権限 (privilege) と、読み取りおよび書き込み権限 (permission) に必要なセキュリティ レベルを指定します。

GATT-  GATT は、すべての GATT ベース プロファイルの参照フレームワークを提供します。GATT は ATT をカプセル化し、BLE リンクでのプロファイルの交換を調整します。プロファイルには、ハンドルの割り当て、UUID、および一連のアクセス許可などの情報とデータが含まれます。

GATT プロファイルを実装するデバイスでは、

  • "クライアント" は、サーバーに対してコマンドと要求を開始するデバイスです。クライアントは応答、指示、および通知を受信できます。

  • "サーバー" は、クライアントからの受信コマンドおよび要求を受け入れるデバイスです。サーバーは応答、指示、および通知をクライアントに送信します。

GATT はクライアント/サーバー アーキテクチャを使用します。役割は固定されず、デバイスが定義されたプロシージャを開始したときに決定されます。プロシージャが終了すると、役割が解放されます。

GATT で使用される用語には以下が含まれます。

  • "サービス" – 特定の機能を実現するために使用される、データと関連付けられた動作のコレクション。

  • "特性" – 適切なアクセス許可と共にサービスで使用される値。

  • "特性記述子" – 関連付けられた特性動作の説明

  • "GATT クライアント" – サーバーに対してコマンドと要求を開始し、サーバーから送信された応答、指示、および通知を受信できる

  • "GATT サーバー" – クライアントからの受信コマンドおよび要求を受け入れ、応答、指示、および通知をクライアントに送信する

SMP-  SMP は、データ パケットの暗号化と復号化にセキュリティ アルゴリズムを適用します。接続が確立されると、この層がマスターとスレーブに対応するイニシエーターとレスポンダーを定義します。

GAP-  GAP は、デバイスの役割、モード、および手続きを指定します。また、接続の確立とセキュリティも管理します。GAP は、アプリケーション プロファイルおよびサービス (APP) 層と直接やりとりします。

APP 層

APP 層は、さまざまなアプリケーション間の相互運用性を提供するプロファイルを定義する直接のユーザー インターフェイスです。『Bluetooth Core Specification』では、SIG プロファイルで定義されていないユース ケース用にベンダーが独自のプロファイルを定義することが許可されています。

メモ

Bluetooth BLE プロトコル スタック アーキテクチャの詳細は、『Bluetooth Core Specification』[1]の Volume 3、Part C、Section 2 および 2.1 を参照してください。

Bluetooth BR/EDR プロトコル スタック

以下のブロック線図は、Bluetooth BR/EDR プロトコル スタックと OSI 参照モデルを比較しています。

BR/EDR スタックと OSI 参照モデルのマッピングを以下に示します。

  • Bluetooth BR/EDR スタックのBR/EDR 無線層およびベースバンドおよびリンク制御層は、OSI の PHY 層にマッピングされます。

  • Bluetooth BR/EDR スタックのリンク マネージャー プロトコル (LMP)層、L2CAP層、ケーブル置換プロトコル層 (RFCOMM)、およびPPP層は、OSI のデータリンク層にマッピングされます。

  • Bluetooth BR/EDR スタックのユーザー データグラム プロトコル (UDP) 層、伝送制御プロトコル (TCP) 層、およびインターネット プロトコル (IP) 層は、OSI 参照モデルのネットワーク層、トランスポート層、セッション層の組み合わせにマッピングされます。

  • アプリケーション層には 1 対 1 のマッピングがあります。

コア プロトコル

ほとんどの Bluetooth デバイスには、Bluetooth コア プロトコルと Bluetooth 無線が必要です。コア プロトコルには、以下の層が含まれます。

BR/EDR 無線-  BR/EDR 無線は、Bluetooth 仕様に定義されている最下位の層です。BR モードは必須ですが、EDR モードはオプションです。この層は、2.4 GHz ISM 周波数帯で動作する Bluetooth トランシーバー デバイスの要件を定義します。1600 ホップ/秒の FHSS 方式を実装します。無線は、指定された 79 の Bluetooth チャネル上を疑似乱数的にホップします。各 Bluetooth チャネルの帯域幅は 1 MHz です。各周波数は (2402 + k) MHz (k = 0,1,...78) にあります。BR モードの変調方式は GFSK で、EDR モードの変調方式は差動位相シフト キーイング (DPSK) です。ボー レートは 1 Msymbols/s です。Bluetooth BR/EDR 無線は、データ送信を一度に一方向ずつ行う時分割複信 (TDD) トポロジを使用します。送信は双方向に一方向ずつ、交互に行われます。

ベースバンドおよびリンク制御-  ベースバンドおよびリンク制御層は、ピコネットを形成し、異なる Bluetooth デバイス間の PHY RF リンクを可能にします。ベースバンドはチャネル処理とタイミングを処理し、リンク制御はチャネル アクセス制御を処理します。この層は、以下の 2 つの異なる種類の PHY RF リンクと、それに対応するベースバンド パケットを提供します。

  • 同時接続指向 (SCO) – リアルタイム オーディオ トラフィックをサポート

  • 非同期接続指向 (ACL) – データ パケットの伝送をサポート

リンク マネージャー プロトコル (LMP)-  LMP 層は、異なる Bluetooth デバイス間のリンク セットアップとリンク コンフィギュレーションを主に担います。これらのプロセスには、リンクおよび暗号化キーを生成、交換、チェックして、認証や暗号化などのセキュリティ機能を確立することが含まれます。また、この層は、Bluetooth 無線デバイスの電力モードおよびデューティ比と、ピコネット内の Bluetooth ユニットの接続状態を制御します。

L2CAP-  L2CAP は上位層のプロトコルをベースバンドに適応させます。下位層のプロトコルの詳細を、上位層のプロトコルから見えないようにします。L2CAP は、上位層プロトコルに接続指向のサービスとコネクションレスのサービスを提供します。これには、プロトコルの多重化機能、セグメンテーションと再構築の操作、およびグループの抽象化が含まれます。

SDP-  検出サービスは、Bluetooth フレームワークの重要な側面です。サービス検出プロトコル (SDP) は、サービスとサービスの特性をクエリする手段をアプリケーションに提供し、2 つ以上の Bluetooth デバイス間で接続を確立できるようにします。SDP は、従来のネットワークに基づく環境でのサービス検出とはかなり異なります。SDP は、L2CAP 上に構築されています。

ケーブル置換プロトコル

Bluetooth BR/EDR スタックのケーブル置換プロトコルは、RFCOMM を使用して、L2CAP 上でシリアル ポートをエミュレーションします。RFCOMM は、Bluetooth ベースバンド上で RS-232 の制御およびデータ信号をエミュレートし、伝送メカニズムとしてシリアル インターフェイスを使用する上位層のサービスに伝送機能を提供します。また、RFCOMM は、1 つのデバイスに複数の同時接続を提供し、複数のデバイスへの接続を可能にします。

テレフォニー制御プロトコル

テレフォニー制御プロトコル仕様バイナリ (TCS バイナリ) は、Bluetooth デバイス間のデータおよび音声通話を確立するために、通話制御信号を定義します。L2CAP 上に構築されます。さらに、TCS バイナリは Bluetooth デバイスの移動管理手続きも定義します。

採用されたプロトコル

Bluetooth BR/EDR スタックには、コア プロトコルの他に、他の標準化団体から採用されたプロトコルが含まれています。これらの採用されたプロトコルは、他の標準化団体が発行した仕様書に規定され、Bluetooth フレームワークに組み込まれたものです。

PPP-  ポイントツーポイント プロトコル (PPP) は、Internet Engineering Task Force (IETF)[3]が策定した、IP データグラムをポイントツーポイントリンク上で伝送するための標準プロトコルです。PPP は RFCOMM 上で動作し、ポイントツーポイント接続を実現します。

TCP、UDP、および IP-  これらの層は、IETF によって策定された TCP/IP プロトコル スイートの基礎プロトコルです。

  • TCP – このプロトコルは、デバイス間に信頼性の高い仮想接続を提供し、データ通信を可能にします。TCP はデータをバイト ストリームとして扱い、エラーや重複が発生しないように送信します。

  • UDP – このプロトコルは TCP の代替で、デバイス間に信頼性の低いデータグラム接続を提供します。UDP にはエンドツーエンド接続がないため、データはリンクごとに送信され、サービスの保証はありません。

  • IP – この層はネットワーク層のプロトコルで、デバイス間にデータグラム サービスを提供します。TCP と UDP の両方をサポートしています。

Bluetooth BR/EDR スタックで TCP、UDP、IP を使用することで、インターネットに接続されたその他のデバイスとの通信が可能になります。

OBEX-  オブジェクト交換 (OBEX) プロトコルは、Infrared Data Association (IrDA) によって開発されたセッションレベルのプロトコルで、オブジェクトの交換を行います。OBEX プロトコルは、HTTP と類似した機能を、よりシンプルな形で提供します。HTTP は TCP/IP の上位にあるアプリケーション層のプロトコルです。OBEX プロトコルは、サーバーに接続するための信頼性の高い伝送をクライアントに提供します。また、オブジェクトと操作を表すためのモデルも提供します。

WAE と WAP-  Bluetooth BR/EDR スタックのアーキテクチャには、ワイヤレス アプリケーション環境 (WAE) とワイヤレス アプリケーション プロトコル (WAP) が組み込まれています。Bluetooth スタックで WAE/WAP の機能を利用すると、次のような利点があります。

  • WAP サーバーと PC 上の他のアプリケーション間のインターフェイスとして機能するアプリケーション ゲートウェイを構築する

  • Bluetooth ハンドセットにリモート コントロールや、PC からのデータ取り込みなどの機能を提供する

  • WAP アプリケーション環境用に開発された上位ソフトウェア アプリケーションを再利用する

アプリケーション プロファイルおよびサービス

詳細は、APP 層を参照してください。

代替 MAC/PHY

代替 MAC/PHY (AMP) マネージャーは、Bluetooth コア システムのセカンダリ コントローラーです。BR/EDR 無線上で 2 つのデバイス間の L2CAP 接続が確立された後、AMP マネージャーは他方のデバイス上で利用できる AMP を検出できます。2 つのデバイス間で共通の AMP が存在する場合、Bluetooth コア システムは、データ トラフィックを BR/EDR コントローラーから AMP コントローラーに移動するメカニズムを提供します。

各 AMP マネージャーには、MAC と PHY の上に、プロトコル適応層 (PAL) があります。PAL は、Bluetooth プロトコルを、下位の MAC および PHY の特定のプロトコルにマッピングします。

L2CAP チャネルは、AMP 上に作成する、または AMP 上に移動することができます。AMP 物理リンクにリンク監視タイムアウトが発生した場合、L2CAP チャネルを BR/EDR 無線に戻すことができます。デバイスの消費電力を最小限に抑えるため、必要に応じて AMP を有効または無効にすることができます。

HCI

HCI は、BR/EDR 無線、ベースバンド コントローラー、リンク マネージャーへのコマンド インターフェイスを提供します。これは、Bluetooth ベースバンド機能、ハードウェアのステータス、および制御レジスタにアクセスする単一の標準インターフェイスです。

メモ

Bluetooth BR/EDR プロトコル スタック アーキテクチャの詳細は、『Bluetooth Core Specification』[1]の Volume 1、Part A、Section 2 および 2.1 を参照してください。

参照

[1] Bluetooth Special Interest Group (SIG). "Bluetooth Core Specification." Version 5.1. https://www.bluetooth.com/.

[2] Bluetooth Technology Website. “Bluetooth Technology Website | The Official Website of Bluetooth Technology.” Accessed November 6, 2019. https://www.bluetooth.com/.

[3] IETF. “Internet Standards.” Accessed November 6, 2019. https://www.ietf.org/.

[4] Bluetooth Protocol Stack - an Overview | ScienceDirect Topics. Accessed November 15, 2019. https://www.sciencedirect.com/.

関連するトピック