Bluetooth Low Energy BLE ガイド...Flags...

18
Bluetooth Low Energy BLE ガイド Rev 1.0 -2020/04/17

Transcript of Bluetooth Low Energy BLE ガイド...Flags...

Page 1: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

Bluetooth Low Energy

BLEガイド

Rev 1.0 -2020/04/17

Page 2: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 2|18

TAIYO YUDEN CO., LTD.

Table of Contents 1 Bluetooth Low Energy概要 .................................................................................................................. 4

1.1 Services & Characteristics .............................................................................................................. 4

1.1.1 Universally Unique IDs (UUID) ............................................................................................... 5

1.1.2 任意の Descriptor Attributes................................................................................................. 7

1.2 Advertising ..................................................................................................................................... 9

1.2.1 Advertisingデータ ................................................................................................................ 9

1.2.2 スキャン応答パケット ...................................................................................................... 11

1.3 スキャン ..................................................................................................................................... 12

1.4 接続 ............................................................................................................................................. 12

1.4.1 接続パラメータの変更 ...................................................................................................... 13

1.4.2 接続の終了 .......................................................................................................................... 14

1.4.3 接続中 .................................................................................................................................. 14

1.4.4 データパケットフォーマット .......................................................................................... 15

1.4.5 servicesと characteristicsの検出 ...................................................................................... 16

1.4.6 characteristics に対する Read/Write操作 ......................................................................... 17

1.4.7 通知と表示によるデータのプッシュ .............................................................................. 18

Figure 1 - BLEペリフェラルデバイスの構成要素 .................................................................................... 4

Figure 2 - Bluetooth SIG 心拍サービス ....................................................................................................... 5

Figure 3 - Advertisingパケットの例 ......................................................................................................... 10

Figure 4 - Advertisingとスキャン要求 ..................................................................................................... 11

Figure 5 – 接続要求の受信 ........................................................................................................................ 12

Figure 6 – 一般的な接続インターバルの状況 ........................................................................................ 15

Figure 7 - データチャネル PDU .................................. エラー! ブックマークが定義されていません。

Table 1 - Characteristic プロパティ ............................................................................................................. 7

Page 3: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 3|18

TAIYO YUDEN CO., LTD.

Table 2 – Advertisingタイプ ........................................................................................................................ 9

Table 3 – Advertisingデータタイプ .......................................................................................................... 10

Table 4 – スキャンパラメータ ................................................................................................................. 12

Table 5 – 基本接続要求パラメータ ......................................................................................................... 13

Table 6 – データチャネル PDUヘッダーフィールド ............................................................................ 16

Page 4: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 4|18

TAIYO YUDEN CO., LTD.

1 はじめに

このドキュメントでは Bluetooth Low Energy(BLE)の仕様の概要について説明します。

2 Bluetooth Low Energy概要

2.1 Services & Characteristics

Service と characteristic は、デバイス間でデータを保存、読み書きするための仕組みです。

Service は、共通テーマ(例:温度センササービス)を共有する 1 つまたは複数の characteristic

をグループ化し、characteristic は実際のデータ(例:温度値や湿度値)ならびに、デバイスが

遠隔のクライアント(例:接続不可能なビーコン)とやり取りをする方法を格納します。一つ

のペリフェラル機器は複数の serviceを含むことができ、serviceはいくつかの characteristicを含

みます。 Bluetooth SIG は、ペリフェラル機器に追加可能な多数の定義済み service

(https://www.bluetooth.com/specifications/gatt/services で一覧を見ることができます)を提供し

ます。これらの service は、開発者がデバイスに機能を追加し、サードパーティのアプリケーシ

ョンとの互換性を確保するための迅速な方法を提供します。さらに、開発者はニーズに合わせ

て、独自にカスタムした serviceと characteristicを作成することができます。

図 1 - BLEペリフェラルデバイスの構成要素

Page 5: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 5|18

TAIYO YUDEN CO., LTD.

2.1.1 Universally Unique IDs (UUID)

UUIDは、Serviceや characteristicなどの attributeを識別するために使用される固有の番号です。

これらの値は、16、32、128ビットの長さにすることができます。通常、16ビットの UUIDは、

Bluetooth SIG で一覧に記載されている定義済みの attribute を参照するときに使用されます。た

とえば、primary service 宣言では 16 ビットの UUID 0x2800 が使用され、characteristic 宣言では

UUID 0x2803が使用されます。図 2の service宣言には値 0x180Dが含まれており、この serviceは

事前に定義された心拍サービスであることがわかります。

カスタム serviceと characteristicは、128ビットより長い UUIDを使用して作成することができま

す。これについては、このドキュメントの後半で説明します。

図 2 - Bluetooth SIG 心拍サービス

Page 6: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 6|18

TAIYO YUDEN CO., LTD.

これは、Bluetooth SIG によって定義された心拍サービスの例です。Bluetooth SIG は、特定の

characteristic を含む多数の service を定義しています。これにより、遠隔のデバイスは、どのタ

イプのデータおよび、どのフォーマットが期待されるかを知ることができます。

表の各行は attributeと呼ばれ、次のような標準データセットを含んでいます。

• Handle – 表内の各行の固有の値。attributeを明確に識別するために使用されます。

• Attribute type – attributeに含まれるデータの種類(service宣言、characteristic宣言、値、

任意の descriptor)。

• Attribute permission –どのような種類の読み取り/書き込み操作がこの attribute に対して

実行できるか、およびどのようなセキュリティに設定されているか。

• Attribute value – attributeのデータ。

この心拍サービスを説明する、3つの主要構成要素があります。

1. service宣言。この attributeは、以下に一覧表示されている characteristicグループの開始

点です。このサービスの UUIDの値が含まれています。

2. 3つの attributeを含む、serviceに定義されている最初の characteristic。1つ目の attribute

は、characteristic宣言です。これには、この characteristicの値宣言 attributeの Handleや

UUID と同様に、データへのアクセス方法(表 1)を制御する一連のプロパティが格納さ

れます。

2 つ目の attribute は characteristic 値の宣言です。この場合、characteristic は心拍数測定

に使用され、データは‘beats per minute’として保存されます。

最後の attribute は、任意の descriptor 宣言です。これは、データへのアクセス方法の機

能の拡張や、characteristic に関するさらに詳しい情報を表示といった、プロパティとと

もに使用されます。この特定の descriptor は、接続中に通知を有効にするためのもので

す。これについては、後で説明します。

3. サービスに対して定義された 2 つ目の characteristic。これは、心拍数が測定されている

人の身体の位置(胸、指、耳たぶなど)をあらわす一つの値を格納するために使用され

ることを除いて、1つ目の characteristicと同様です。

Page 7: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 7|18

TAIYO YUDEN CO., LTD.

Property Value Description

Broadcast 0x01 許可された値のブロードキャスト。Server Characteristic

Configuration Descriptor (SCCD) attributeが必要

Read 0x02 値 attributeからの読み取りを許可されたクライアント

Write (no response)

0x04 値 attributeへの書き込みを許可されたクライアント。 サーバー

は書き込みを確認しない

Write (response)

0x08 値 attributeへの書き込みを許可されたクライアント。 サーバー

は確認応答を返す

Notify 0x10 値の通知は許可され、Client Characteristic Configuration Descriptor

(CCCD)が必要。 通知は承認されない

Indicate 0x20 値の表示は許可され、Client Characteristic Configuration Descriptor

(CCCD)が必要。 表示は認められる

Authenticated Signed Writes

0x40 値 attributeへの署名付き書き込みは許可される

Extended Properties

0x80 拡張 characteristicプロパティが使用され、characteristic拡張プロ

パティ descriptorが必要

表 1 - Characteristic プロパティ

2.1.2 任意の Descriptor Attributes

追加の情報や機能を提供するために、いくつかの任意の attributeを characteristicに追加するこ

とができます。一覧は https://www.bluetooth.com/specifications/gatt/descriptorsにあります。こ

のドキュメントで参照されている一般的な descriptorを以下に示します。

2.1.2.1 Characteristicsプロパティの拡張

この descriptorは、より多くのアクセス操作を可能にする単一の 16ビットのビットフィールド

を含みます。

Property Value Description

Reliable Writes 0x01 行列に入れられた値の書き込み操作が許可される

User Description Writes

0x02 ユーザー記述 descriptors への書き込みが許可される。ユーザー記

述 descriptorsが必要

Page 8: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 8|18

TAIYO YUDEN CO., LTD.

2.1.2.2 Client Characteristic Configuration Descriptor (CCCD)

この descriptorは、クライアントへの通知と表示を制御する単一の 16ビットのビットフィール

ドを含みます。

Property Value Description

Notifications 0x01 接続されたクライアントに通知を送信できるようにする

Indications 0x02 接続されたクライアントに表示を送信できるようにする

2.1.2.3 Server Characteristic Configuration Descriptor (SCCD)

この descriptorは、characteristicデータを advertisingパケットに含むことを可能にする単一の

16ビットのビットフィールドを含みます。

Property Value Description

Broadcast 0x01 characteristicデータを、advertisingデータに使用できる

2.1.2.4 ユーザー記述 Descriptor

この descriptorは、characteristic値の説明をするテキスト文字列を含みます。

Property Value Description

User description utf8 Characteristicの説明

Page 9: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 9|18

TAIYO YUDEN CO., LTD.

2.2 Advertising

BLE ペリフェラルは advertisingパケットを使って、セントラルデバイスに自らを知らせていま

す。これらのパケットは、デバイスのアプリケーションおよび電力要件に応じて、事前設定し

た 20ms から 10.24s(他のデバイスとの干渉を減らすために最大 10msのランダム値をプラス)

のレートでブロードキャスト送信されます。

アプリケーションの必要性に応じて、BLEペリフェラルデバイスには 4つの advertisingタイプ

があります。選択されたタイプによって、ペリフェラルがセントラルデバイスからの接続要求

およびスキャン要求にどのように応答するかが決まります。

Type Connect Scan Description

ADV_IND Yes Yes ペリフェラルはすべてのデバイスにブロードキ

ャストし、すべてのスキャンおよび接続要求を

受け入れる

ADV_DIRECT_IND Yes Yes ペリフェラルはひとつのアドレスにブロードキ

ャストする。一致するデバイスだけがブロード

キャストを受け入れる。 ペリフェラルはこのデ

バイスからの要求のみを受け入れる。

ADV_NONCONN_IND No No ペリフェラルはすべてのデバイスにブロードキ

ャストするが、要求は受け付けない。典型的な

ビーコン。

ADV_SCAN_IDN No Yes ペリフェラルはすべてのデバイスにブロードキ

ャストし、スキャン要求のみを受け入れる

表 2 – Advertisingタイプ

2.2.1 Advertisingデータ

各 advertisingパケットは、最大 37バイトのペイロードデータを含み、そのうちの 6バイトは

advertisingデバイスのMACアドレスのために確保されています。残された 31バイトは、ユー

ザーアプリケーションが一つ以上の advertisingデータのブロックを格納するのに使用できま

す。各ブロックは、データタイプとブロック内のバイト数を含む 2つのヘッダーバイトで構成

されます。データタイプの一部を以下に示します:

Page 10: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 10|18

TAIYO YUDEN CO., LTD.

Data Type Description

Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての

周辺機器に必要

Names advertisingデバイスの事前に設定された名前

UUIDS このデバイスで利用できる serviceと characteristic。 16/32/128ビット UUID

の完全または不完全リストにすることが可能

Manufacturer specific data

このデバイスの製造元が提供するカスタムデータ。 2 バイトはメーカーID

用に予約されている。

表 3 – Advertisingデータタイプ

図 3は、2ブロックの advertisingデータを含む基本 advertisingパケットの例を示します。最初の

6 バイトにはデバイスの MAC アドレスが含まれています。最初のブロックには、デバイスのフ

ラグ(0x01 は FLAGS のタイプコード)が含まれており、値は、このデバイスが接続不可能なビ

ーコンとして設定されていることを示しています。2 つ目のブロックには、メーカーが設定し

た数バイトのカスタムデータ(0xFFはMANUF. DATAのタイプコード)が含まれています。ペイ

ロードの最初の 2 バイトには、メーカーID が含まれています。メーカーID は通常 Bluetooth SIG

に登録されています。例えば、Appleは 0x4C00と表示されているため、この IDをブロードキャ

スト送信するデバイスは Apple のデバイスとして認識されます。ペイロードの 2 番目の 2 バイ

トには、実際の値が含まれています。Advertisingパケットの残りの 22バイトは未使用です。

図 3 - Advertisingパケットの例

Page 11: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 11|18

TAIYO YUDEN CO., LTD.

Advertisingパケットが peripheralから送信された後、スキャン要求または接続要求を受信できる

よう、受信機を短時間有効にします。もし要求を受信しなかった場合、次の advertising インタ

ーバルまで無線の電源をオフにします。

2.2.2 スキャン応答パケット

もし、さらに多くのデータを advertisingデータ内に格納する必要がある場合、任意の secondary

パケットを使用して 31バイトのデータを追加することができます。セントラルデバイスは、

advertisingパケットを受信したときスキャン要求を送信するよう設定することができます。ペ

リフェラルがこの要求を受け入れるよう設定されている場合、2番目の advertisingパケットで

応答します。この機能は、ペリフェラルが advertising間隔あたりのデータ量を倍にする可能性

があるため、消費電力が高くなります。

図 4 - Advertisingとスキャン要求

Page 12: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 12|18

TAIYO YUDEN CO., LTD.

2.3 スキャン

Advertisingパケットの使用を通してペリフェラルが自身を知らせている場合、セントラルデバ

イスはこれらのパケットを受信して処理するためにスキャンを実行します。セントラルデバイ

スは連続スキャンか、低消費電力にするために限られた短期間にするかを設定することができ

ます。スキャン中に advertisingパケットを受信すると、パケットを処理できるようにアプリケ

ーションに通知されます。いくつかの典型的なアプリケーションは、advertisingビーコンから

受信したデータを記録、または表示すること、もしくはユーザーが接続を選択できる近くのデ

バイスを一覧に追加することを含みます。

Parameter Description

Active 受信した各 advertisingパケットに続いてスキャン要求が送信される

Whitelist セントラルデバイスが知っているペリフェラルのリスト

Selective ホワイトリストに保存されていないデバイスは無視される

Interval スキャンを開始する頻度

Scan window 各インターバルでスキャンする時間(値はインターバル以下でなければ

ならない)

Timeout この期間が経過するとスキャンが停止する

表 4 – スキャンパラメータ

2.4 接続

セントラルデバイスはペリフェラルと接続したいとき、そのアドレスを送信元とする

advertisingパケットを受信するまで、接続したいデバイスのMACアドレスを格納します。セン

トラルはペリフェラルの受信期間内で接続要求を送信します。

Figure 1 – 接続要求の受信 図 5-接続要求の受信

Page 13: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 13|18

TAIYO YUDEN CO., LTD.

ペリフェラルが接続要求を受信し、接続可能なデバイスとして設定されている場合、advertising

を停止し接続状態に入ります。この時点からペリフェラルはスレーブとみなされ、接続を開始

したデバイスはマスターと呼ばれます。

接続要求には、接続パケットが接続の存続期間を通してどのように送信されるかに関する情報

が含まれています(表 5)。最初に、ペリフェラルは送信期間パラメータを使用して、1つ目の

接続パケットを受信しようとします。この時間内にパケットが受信されない場合、ペリフェラ

ルは接続を終了し、advertisingに戻ります。

Parameter Description

Interval 接続パケットがマスターによって送信される頻度。 有効な間隔は

7.5ms〜4s

Latency スレーブが応答せずに無視できる連続接続パケットの数。 これは、

スレーブの電力要件を減らすために使用される

Timeout 接続を終了する前にマスターが応答なしで接続パケットを送信し続

ける時間

Transmit window offset スレーブが最初の接続パケットを待つ時間

Transmit window size スレーブが最初の接続パケットを検出する時間

表 5 – 基本接続要求パラメータ

2.4.1 接続パラメータの変更

接続が最初に確立されると、スレーブはマスターによって設定された接続パラメータに従いま

す。スレーブデバイスがこれらのパラメータを変更したい場合(例えば、接続イベント間の時

間を長くして電力消費を減らす、またはデータスループットを増加させる時間を短縮する場

合)、マスターに要求を送信することができます。マスターが新しい接続パラメータを受け入

れると、それは確認応答を返し、スレーブに新しいパラメータを通知します。マスターが要求

を受け入れないことを選択した場合、それは失敗で応答します。スレーブデバイスは、別の要

求を送信したり、元のパラメータを受け入れたり、マスターから切断することができます。

Page 14: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 14|18

TAIYO YUDEN CO., LTD.

2.4.2 接続の終了

接続がマスターまたはスレーブデバイスのいずれかによって終了されることが望まれる多くの

理由があります。最も一般的な理由のいくつかは次のとおりです。

• 接続要求の後に接続を確立できなかった

• タイムアウト期間内にデータパケットが受信されなかった

• スレーブが、マスターによって設定された許容できない接続パラメータのために切断す

ることを選択した

• スレーブまたはマスターが手動で接続を終了した(必要なデータが取得されたなど)

通常、接続が終了すると、スレーブデバイスは advertisingモードに戻り、マスターはスキャン

を再開します。

2.4.3 接続中

接続が有効な間、マスターは定期的にスレーブに接続パケットを送信し続けます。スレーブ待

ち時間やデータ要求などの要因は、これらのパケットの送信と内容に影響します。

図 6は、接続インターバルの典型的な状況を示しています。1つ目のインターバルは、送信さ

れるデータのない標準イベントを含みます。マスターは空のパケットをスレーブに送信し、ス

レーブはこれに自身の空のパケットで応答します。2つ目のインターバルは、マスターデバイ

スとスレーブデバイスとの間で発生するデータ交換を示します。接続インターバル中には限ら

れた数のやり取りのみが可能であり、それ以上のやり取りは次のインターバルまで遅延しま

す。最後の状況では、スレーブの消費電力を削減するためにスレーブの待ち時間を使用する方

法を示しています。スレーブはマスターが送信したパケットを無視し、無線を無効にして電力

を節約します。次の接続インターバルで応答し、接続がまだ有効であることをマスターに知ら

せます。

Page 15: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 15|18

TAIYO YUDEN CO., LTD.

図 6 – 一般的な接続インターバルの状況

2.4.4 データパケットフォーマット

マスターまたはスレーブによって送信されるすべてのパケットは、同じフォーマット(図 7-デ

ータチャネル PDU)に従い、ペイロードはその時点のアプリケーションの要件に基づいて変化

します。

図 7 - データチャネル PDU

Page 16: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 16|18

TAIYO YUDEN CO., LTD.

各パケットのヘッダーには、以下で説明するいくつかのフィールドが含まれています。

Field Description

LLID パケットのタイプの識別子(確認応答、データ)

NESN フロー制御と ACK / NAKの優先順位付け

SN フロー制御と ACK / NAKの優先順位付け

MD このビットは、この接続イベントでさらに送信されるデータパケット

がある場合に設定される。

RFU 将来の使用のために予約

Length ペイロードのバイト数

表 6 – データチャネル PDUヘッダーフィールド

ペイロードは最大 31バイト保持でますが、追加のヘッダー情報のためにソフトデバイスによっ

てさらにバイトが使用されることに注意してください。実際にユーザーアプリケーションで使

用できるペイロードは 20バイトに固定されています。

2.4.5 servicesと characteristicsの検出

接続時に、周辺デバイス上で利用可能な service および characteristic の一覧は、必ずしもクライ

アントによって知られているわけではありません。これらのうちいくつかは advertising データ

に存在しますが(または advertising タイプが COMPLETE_LIST タイプの場合はすべて)、完全な

リストを取得するために、クライアントは一連の検出要求を実行する必要があります。

検出には通常 2 つの段階(service と characteristic)があり、使用可能な attribute の数に応じて

いくつかの接続インターバルが必要です。最初の段階で、クライアントは、primary service宣言

(UUID == 0x2800)に対応するすべての handle(0x0001〜0xFFFF)の要求を送信します。ペリフ

ェラルはその attributeテーブルを検索し、各 primary serviceに対して次のデータを返します:

• service宣言が見つかった attribute handle

• この serviceに属する最後の attributeに対応する‘end-group’ handle

• 宣言の attribute値(16/32/128ビットの UUID)

Page 17: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 17|18

TAIYO YUDEN CO., LTD.

ペリフェラル応答は限られた量のデータしか保持できないため、一回の応答で使用可能なサー

ビスの一部のみを返すことがあります。クライアントは、最後に報告された service から検出を

再開するために、end-group handleを使って次の接続インターバルで新たな要求を送信できます。

primary serviceが残っていない場合、ペリフェラルはエラーの応答を返して、一致する attribute

が見つからなかったことをクライアントに通知します。

serviceを検出して保存された handleを使用して、クライアントは同様の手順で characteristicの

検出を開始できます。これが完了すると、クライアントは関連する handle とプロパティととも

に、 ペリフェラルに格納されている serviceと characteristicの完全なリストを保持します。アプ

リケーションによっては、この情報を不揮発性メモリに保存して、次にこのデバイスに接続す

るときに検出手順をスキップすることができます。

2.4.6 characteristics に対する Read/Write操作

検出が完了すると、マスターデバイスはアクセスしたい attributeの handleを使って、スレーブ

に読み書き要求を送信し始めることができます。スレーブが要求を受信すると、指定の

attribute のプロパティをチェックして、操作を実行する前に操作が許可されていることを確認

します(attributeに新しい値を書き込むか、現在の値を読み込みます)。

要求が attribute 値を読み取ることであった場合、スレーブはデータを含む応答を送信します。

書き込み要求は、attribute プロパティとマスターによって生成された要求タイプに応じて、確

認応答または確認非応答(表 1 - Characteristic 特性を参照)を行うことができます。要求タイプ

は、一回の接続インターバルでいくつの要求を行なえるかに影響します。通常、読込みまたは

確認書込みは、接続インターバルごとに 1 回しか送信できませんが、非応答書き込みは 1 回の

インターバルで最大 6回実行できます。

Page 18: Bluetooth Low Energy BLE ガイド...Flags 接続情報(接続可能、向きなど)を含むバイト。 ビーコン以外のすべての 周辺機器に必要 Names advertising

17-Apr.2020 Ver1.0 TAIYO YUDEN CO., LTD.

Page 18|18

TAIYO YUDEN CO., LTD.

2.4.7 通知と表示によるデータのプッシュ

characteristic からデータを送信するもう 1 つの方法は、スレーブデバイス上の通知または表示

(またはその両方)を有効にすることです。これにより、要求を待つのではなく、接続インタ

ーバル中にデータをマスターに直接プッシュできます。どちらの方法も、送信あたり同じバイ

ト数(データチャネル PDUあたり 20)しか送信できず、どちらも下位レベルのマスターデバイ

スによって確認応答される点で似ています。しかし表示は同様に、接続インターバルごとに 1

回のパケットに制限するユーザーアプリケーションによって確認応答を要求されます。通知は

アプリケーションによって確認応答されず、インターバルごとに最大 6 パケットのバーストで

送信できます。

接続が確立されると、通知と表示は有効になりません。該当する値をクライアント Client

Characteristic Configuration Descriptor(CCCD)に書き込むことによって、マスターデバイスから

明示的に使用可能にする必要があります。また、characteristic の宣言 attribute で適切なプロパ

ティを有効にする必要があります。