Generic Attributes(GATT、ジェネリック・アトリビュート) と Generic Attribute Profile

Generic Attributes (GATT)は、接続された Bluetooth LE デバイスに提示された階層データ構造を定義します。

GATT プロファイルは、その他の Bluetooth デバイスと完全な相互運用性を維持しつつ、広範なイノベーションを実現することを可能にします。このプロファイルは、GATT 機能に基づいたユースケース、ロール、一般動作を記述します。サービスは、特性およびデバイスの一部の動作をカプセル化するその他のサービスとの関係の集合体です。これには属性サーバーに使用されるサービス、特性、属性の階層も含まれます。 

GATT は、2基の Bluetooth 低エネルギーデバイスが標準メッセージの送受信を行う方法を定義するために、GATT データを使用する Attribute Protocol(ATT)(ブロック図と説明については、Bluetooth コアシステムアーキテクチャを参照) 上に構築されています。GATT は、採択済みのプロファイルのみを使用する Bluetooth BR/EDR の実装には使用されないことにご注意ください。

GATT プロファイルの階層

GATT プロファイルの階層

Generic Attribute Profile(GATT)のプロシージャは、サービス、特性、それらの記述子の検出をどのように行い、次にそれらを使用して、Bluetooth 低エネルギーデバイスがデータ転送を行うことを可能にする標準の方法を定義します。このプロファイルは、GATT 機能に基づいたユースケース、ロール、一般動作を記述します。

階層の最上位には、ユースケースを満たすのに必要な1つまたは複数のサービスで構成されるプロファイルがあります。サービスは、特性とその他のサービスへのリファレンスで構成されます。特性は、特性がサポートする操作を示す、タイプ(UUID によって表される)、値、プロパティのセット、およびセキュリティに関連するパーミッションのセットで構成されます。また、所有する特性に関連する1つまたは複数の記述子—メタデータまたは設定フラグを格納する場合があります。

GATT はこれらのサービスをグループ化して、デバイスの一部の動作をカプセル化し、GATT 機能に基づいたユースケース、ロール、一般動作を記述します。このフレームワークは、サービスとその特性のプロシージャと形式を定義します。これには特性の検出、読み取り、書き込み、通知、提示のほか、特性のブロードキャスト設定が含まれます。

クライアントとサーバーのロール

GATT はクライアントとサーバーのロールを定義します。GATT プロシージャは、次の3つの基本タイプに分類されると考えることができます:検出プロシージャ、クライアント開始プロシージャ、サーバー開始プロシージャ。GATT サーバーは、ATT を通じて伝送されたデータを保管し、ATT のリクエストと GATT クライアントからのコマンドと確認を承認します。GATT サーバーはリクエストにレスポンスを送り返し、指定のイベントが GATT サーバー上で発生すると、GATT クライアントに非同期的に提示と通知を送信します。また、GATT は GATT サーバー上に格納されるデータ形式を指定します。

採択済みのすべての GATT ベースの仕様を参照するには、「採択済みの仕様」ページをご覧ください。