2017年11月22日

BLE (Bluetooth LE)に関するメモ

BLE (Bluetooth LE)に関して、自分が疑問に思ったこと、突っかかったことのメモ。
誤りが大量に含まれている恐れがあります。

・BLEは基本的にGATTの操作が主となる。
[物理層]→[L2CAP]→[ATT]→[GATT] GATT(読み書き)はこのように積み重なっている
[物理層]→[L2CAP]→[SMP]→[GAP] GAP(アドバタイジング・接続処理)はこのようになっている。
 ※上記から、アドバタイズメントとGATTは別物。

・GATTは、名前付き変数の操作・取得をするための構造と考えるとわかりやすい。
・そのシンプル化された仕様の結果、汎用性と相互接続性が高い。

・GATTはリモコン的な状態の変更・取得が主であり、ストリーム的通信には至極向いていない。
 デバッグも難しくなる(単なる変更・取得ならば多くのBLE探査ソフトウェアが使用できるが、
  ストリームの場合は専用アプリを作らざるをえない。)
 ※UARTとか、MIDIとかあるけどね...

・ストリーム的通信をしたければL2CAPを直接使うようだ。(よくわからない)


・パケットペイロードサイズは27Byte。
・転送可能なデータサイズ(MTU)は23Byte。(これはMTU交換により最大251バイトまで大きくなる)
・一般的に用いられるキャラクタリスティックのサイズは20Byte程度。Read Characteristicで読める。
・キャラクタリスティックの最大サイズは512Byte。
 Read Long Characteristic(Read Blob Request)で2バイトのオフセットを指定して複数回読み出すことで読み出せる。
 
・複数のキャラクタリスティックを一括で読み出すこともできる。
・長いキャラクタリスティックをキューイングして書き込むこともできる

・アドバタイジングのデータサイズは31byte。(パケットサイズは37Byte)
 スキャン応答時も同じサイズの、中身の違うデータを返すことができる。

・ボンディングとペアリングがあるが、Bondingが多分思ってるやつ。
 暗号化するのが普通だが暗号化しないこともできる。
・通常、MACアドレスはランダム化されていて、再接続や追跡は困難だが、
 Bondingされている相手ならMACアドレスを復元して再接続可能

・BLEデバイスは、基本通信やBondingが成立すると無向アドバタイジングを止める。
 接続情報のリセットが行われるまでこの状態なことが多い。省電力性と隠匿性のため。
 特定の機器と即座に接続したい場合は、有向アドバタイジングを行う。
 ただスマホ向けの機器の場合や、接続待ちの場合は延々と無向アドバタイジングし続ける事が多い。用途による。

・変数に当たるのがCharacteristic
・Characteristicを束ねたものがService
・用途別に同名のCharacteristicが存在しうるがServiceで区別できる
・CharacteristicもServiceも、UUIDあるいはHandleで区別する。
・UUIDは変化しない固有のもの、Handleは電源再投入などで変化しうる
・UUIDは長くデータ効率が悪いが確実、Handleは短く効率が良いが不確実
 ※もっとも、スマートホン等では接続時にServiceやCharacteristicの検索を行い、
  内部的にUUIDからHandleに変換するので気にすることはない。
  →キャッシュに注意。Peripheralから更新通知ができる。

・GATTの接続・切断と、物理的な電波の接続・切断は別?

・Peripheralから能動的に送信するにはNotificationを使用する。
・Indicationは確認付きのNotificationである。

・通信路の暗号化をしたければBonding
・正規品認証をしたい場合は、Challenge & Response

参考文献
BLEの通信仕様 | Reinforce-Lab.'s Blog

[CB16] スマートフォン制御のIoTデバイスにおけるBLE認証設計の課題:Gogoroスマートスクターの分析を通じて by Chen-yu Dai [GD] & Professor Shi-Cho Cha [CSC]
posted by gpsnmeajp at 21:41| Comment(0) | TrackBack(0) | プログラム
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/181646836
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック