BLE を知ろう(その2)
どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)
「BLE を知ろう(その1)」の続きで Python の BLE ライブラリ bleak のプログラムの話をするにあたり BLE ( Bluetooth Low Energy ) のことを分かっていた方が良いので書いていきます。
ペアリング
ペアリングは「通信相手を覚えさせペアにする」という意味で使います。
こうすることで無線通信の内容を暗号化して通信できるようになります。
通信相手がわからないと暗号通信の方式が分からないといった問題が発生します。
セントラルは、ペリフェラルがアドバタイズで不特定多数を相手に送信するのをスキャンして、接続相手を選択してペアリング要求を送ります。
ペリフェラルはペアリング要求に応えてペアリング応答を返します。
認証処理が行われ、認証が成功したら暗号化情報の交換をします。
ペアリングデバイスになると暗号化情報を送受信でき、一度ペアリングしてペアを覚えると暗号化情報の交換までの処理をスキップして暗号化通信ができます。
GATT通信
ペリフェラル機器は、アドバタイズ送信後、接続要求が来ないか確認しています。
そのときに接続要求があれば、1対1の通信を始めます。
この通信をGATT(ガット:Generic ATTribute profile)通信と呼びます。
GATT通信では、機能をまとめて1つの単位としたサービス( Service )を持っていて、ペリフェラルがどんなサービスを持っているか調べる処理をサービスディスカバリーといいます。
サービスの中にある機能は、キャラクタリスティック( Characteristic )というデータ構造や意味を持っています。
キャラクタリスティックには、「Read」、「Write」、「Notify」といった属性があります。
体温計や血圧計など標準的な製品種別は、Bluetoothの推進団体が標準的な「GATT通信のプロファイル」が公開されています。
標準的なプロファイルを使うことで、別メーカーの機器であっても同じ用に利用でき、互換性が高くなります。
といってもメーカーごとに「カスタムプロファイル」を使うことが多いみたいです。
まとめ
「BLE を知ろう(その1)」と今回の内容が分かると bleak などの BLE ライブラリの使い方が分かってくると思います。
ここまではOKだ
コメント
このブログの新着コメントをRSSリーダに登録する為のxml