Bluetooth®|基礎編

GATTとは

2017.10.17

この記事のポイント

・GATTは、ATTを用いてデータを構造化する方法と、アプリケーション間でのやり取りの方法を定義する。

・Bluetooth low energyのアプリケーションは、すべてこのGATTを使用して構築されることから、GATTはBluetooth low energyのデータ転送の主軸となるものである。

ATT(アトリビュートプロトコル)の話が続きましたが、今回からはGATT(汎用アトリビュートプロファイル)の説明に入ります。GATTに関しても、いくつかに分けて説明したいと思います。「Bluetooth® v4の上位プロトコルとプロファイル」も回を重ねてきましたので、ここでまたBluetooth low energyのプロトコルスタックを確認しておきます。以前提示した図とは少し様相が違いますが、シンプルにしただけで示していることは同じです。

graf_20171017_09

GATTとは

GATT(Generic attribute profile)-汎用アトリビュートプロファイルは、ATT(アトリビュートプロトコル)を用いてデータを構造化する方法と、アプリケーション間でのやり取りの方法を定義します。Bluetooth low energyのアプリケーションは、すべてこのGATTを使用して構築されることから、GATTはBluetooth low energyのデータ転送の主軸となるものです。

GATTには、Bluetooth SIGが公式に提供しているプロファイルと、機器メーカなどの独自提供のものがあります。Bluetooth SIGが定義しているプロファイルには、Alert Notification(アラート通知)、Blood Pressure(血圧計)、Health Thermometer(体温計)、Heart Rate(心拍数)、Location and Navigation(位置とナビ)などがあります。これらはすべて、Bluetooth low energy用に定義されたもので、Bluetooth v3以前のプロファイルとは互換性がありません。

GATTはATTと同じクライアント-サーバ方式のアーキテクチャですが、「サービス(Service)」と「キャラクタリスティック(Characteristic)」から構成されてます。GATTは、複数のサービスからなり、サービスは1個以上のキャラクタリスティックを持ちます。

サービスは、機器のなかのある1つの機能を表します。キャラクタリスティックは、センサの値や機器の操作指示を読み書きするアトリビュートです。体温計を例にすると、体温測定と測定終了を知らせるアラート音を発する2つの機能を持たせたとします。この場合、体温測定というサービスとアラートのサービスが各1つずつで、計2個のサービスを実装します。キャラクタリスティックは各サービスに付帯し、体温測定のサービスであれば、温度センサの値を読み出すといったキャラクタリスティックを持つといったことになります。サービスやキャラクタリスティックにも、Bluetooth SIGによって定義されたものがあります。

以上、GATTの概要ですが、次回からはGATTの機能、サービスとキャラクタリスティック、ヘルスサーモメータの例など説明をして行きます。