Classic Bluetoothはケーブルを置き換えるように設計されており、多くのプロトコルをカバーしており、新しいバージョンが出るたびに速度が向上します。
このテクノロジーでは電力消費が主な懸念事項ではなかったため、数バイトの情報のみを送信する必要のあるバッテリー電源で動作するワイヤレス ボードには適していませんでした。
BLEとは何ですか?
一方、Bluetooth Low Energy (BLE) は同じブランドですが、アプローチが逆方向であるため、新しいテクノロジーとして考慮する必要があります。各アクションに最小電流を使用するためにすべてが指定されています。いくつかの例:
- 検出プロセスは、堅牢性と低消費電力の妥協点として3つの周波数に基づいています。
- 無線のメモリ要件を最小限に抑えるためのリンク層の小さなパケット
- 非対称設計により、より小さなエネルギー源でデバイスが行う作業が少なくなります
- すべてに状態があり、コードの量とファームウェアの複雑さが軽減されます
- 接続は一時的かつ短い
- プロトコルは1つだけ:属性プロトコル
Bluetooth低エネルギーアーキテクチャ
図1で赤で強調表示されている属性プロトコルを理解することが、Bluetooth Low Energyの基礎となります。
図1: Bluetooth Low Energyアーキテクチャ
このBluetooth Low Energyプロトコルは、ピア デバイス上のデータにアクセスするための一連のルールを定義します。データは、図2に示すように3つの要素で構成される属性に保存されます。
- データベースの行番号のようなハンドル(図3参照)
- 公開されるデータの種類: たとえば、センサーの種類など。この値は、128ビットの値であるUUID (Universally Unique Identifier) です。
- データ自体の価値
図2: 属性値
次に、一連のハンドルによってデータベースが作成されます。
図3: BLEデータベースの例
BLEガット
汎用属性プロファイル (GATT) は、属性のタイプとその使用方法を定義します。サービス、特性、記述子の概念を紹介します。 サービスは、不変のインターフェースを持つオブジェクトと同等です。0x2800 UUIDはプライマリ サービスの宣言を意味します。 特性は、その記述子によってデータの値と動作をラップします。図4を例に取って、マトリックスを読んでみましょう。サービスには1つまたは複数の特性が含まれます。データベースでは、2つの0x2800 UUID間のすべてのデータがこのサービスに属します。
図4
- ハンドル0x000C、UUID 0x2800は、プライマリ サービスが0xCAB5の値で宣言されていることを意味します。Bluetooth Special Interest Groupは多くのプロファイルを定義し、UUIDを予約しています。 たとえば、0x180Fはバッテリー レベルが公開されていることを意味します。予約済みのUUIDはカスタム プロファイルでは使用できません。0xCAB5は、タッチ センサー用のCypressのUUIDです。
- 0x000Dと0x2803のUUIDを値で処理します。0x2803は特性であることを意味します。12:0E:00:A2:CAは、値がハンドル0x000EおよびUUID 0xCAA2にあることを意味します。0x12は、特性を読み取り、通知できることを意味します。
- 0x000EおよびUUID 0xCAA2を処理します。特性宣言に基づいて、特性の値が行上にあり、32に等しいことがわかります。
- 0x000FおよびUUID 0x2902を処理します。0x2902は、クライアントによってプログラムされた構成であることを意味します。1は通知が有効であることを意味します。
関連商品を見る
データは論理的かつ厳密に整理されているため、電力消費を最適化するために簡単に見つけることができます。
BLEギャップ
汎用アクセス プロファイル (GAP) は、デバイスがユーザーに役立つ情報を検出し、接続し、提示する方法を定義します。 使用可能なGAPロールは4つあります: ブロードキャスター (広告データを送信するだけ)、オブザーバー (ブロードキャスターをスキャンする)、ペリフェラル (接続するように広告し、接続されるとスレーブになる)、セントラル (ペリフェラルへの接続を開始し、接続されるとマスターになる)。 GAPは、いくつかのフィルタ ポリシー、タイミング、アドバタイズ パケット内の情報、およびスキャン応答も定義します。
BLEアプリケーション設計
標準Bluetooth署名は、基本的なBLEアプリケーションでは学習する必要のないホスト、コントローラー、L2CAP、HCIの概念によって認識できます。BLEソリューションのベンダーは、属性とGAPレイヤーを簡単にプログラムするための特定のAPIを使用して、すべてのレイヤーを1つのダイに統合します。リンク層の管理も含まれているため、Bluetooth Low Energyアプリケーションを設計するには数行のコードで十分です。