4月 252017
 

BLEデバイスのアトリビュート/属性データについて

ここでは、BLEデバイスのAttributeデータ/属性データを扱う上で理解しておく必要があるため、
GAP, ATT, GATT について少し触れておきます。

GAPについて

GAP(General Access Profile/汎用アクセスプロファイル)とはBLEデバイスの通信上の役割を
規定しているもので、以下の4つに分類されます。

役割名 機能
Braodcaster データ送信のみを行う
Ovserver データ受信のみを行う
Central advertisingパケットを検知して接続を行い、通信する
Peripheral advertisingパケットを送信し、centralに検知してもらい接続を行い、通信する

今回の使用方法では、ラズパイがCentral となり、REX-SEEK2 が Peripheral となります。

ATTについて

ATT(Attribute Protocol/属性プロトコル)とはデータ表現規則とアクセス手順の定義です。
データ(ATTオブジェクト)は以下の4つの要素で構成されます。

要素 データ内容
Handle/ハンドル 連番のインデックス。0x0001~0xffff
Type/型 Attributeの型を表す 128ビットのUUID
Value/値 属性値。サイズは512バイトまで
Permission/属性 読み書きの権限

ATTオブジェクト対する値の読み書きは、ATTプロトコルを用いて行われ、対象のATTオブジェクトはハンドル
によって指定します。

GATTについて

GATT(Generaic Attribute Profile/汎用属性プロファイル)とは、BLEの通信の基本のプロファイルで、
ATTの上位層になります。

構成要素として「サービス(Service)」「キャラクタリスティック(Characteristic)」
「ディスクリプタ(Descriptor)」があり、attributeを最小構成単位としたデータの集まりで
構成されるデータベース(GATTデータベース)となります。

GATTデータベースは階層構造となっており、Profileは複数のServiceからなり、
各Serviceは複数のCharacteristicを持ち、各Characteristicは複数のディスクリプタを
持ちます。

以下の図は、ここで説明した Profile、Service、Characteristic、Description の構成イメージを表しています。

そして、GATTデータベースにアクセスするプロトコルとしてGATTプロトコルがあります。
よく使われるのもとして以下があります。

Discover Characteristic クライアントがCharacteristicを探す
Read Characteristic Value クライアントがCharacteristic値を読む
Write Characteristic Value クライアントがCharacteristic値を書く
Notify Characteristic Value サーバがCharacteristic値を通知

※ 今回の例では、ラズパイがクライアント、REX-SEEK2がサーバになります。

ここでは各プロトコル内容については触れません。

以上、GAP, ATT, GATT について簡単に説明しましたが、詳しい情報は、Bluetooth SIG のサイト
で仕様が公開されていますので、そちらを参照してください。

次ページではREX-SEEK2 のアトリビュート/属性データを説明します。
そして、実際にREX-SEEK2 のアトリビュートにアクセスして、REX-SEEK2を制御してみます。

次頁[3]へ続く…

  1 コメント

 返信する

以下のHTML タグと属性が利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(必須)

(必須)

*