5

BLE と GATT をより深く理解しようとしています。私の関心は、GATT プロファイルで 1 秒あたりに実行できる達成可能な読み取りの最大数にあります。

たとえば、このトピックに関する以前の投稿のいくつかを認識しています: Bluetooth Low Energy - 特性値を繰り返し更新する

ただし、BLE 仕様を見てこれらの結果を説明しようとしています。

接続イベントと GATT の関係を教えてください。各 ATT 読み取り/書き込みには新しい接続イベントが必要ですか? そうでない場合、接続イベントごとに ATT 読み取り/書き込みをいくつ行うことができるかについて何か言えるでしょうか?

BLE 接続の光センサーをポーリングして 1 バイト値を取得したい場合、達成できる最大 Hz はいくつになるでしょうか? 最小接続間隔をできるだけ低く設定するのが常に最善でしょうか?

「GATT サーバー通知を使用して、より良い結果を達成できますか? BLE 仕様 (Core_v4.0) では、「マスターが各接続イベントの開始を開始する」と記載されています。では、GATT サーバー通知はどのように実装されているのでしょうか?サーバーが接続イベントを開始する必要があります。

最後に、センサーを集中的にポーリングするときに達成できるスループットに特定の iOS が課した制限について誰かが知っている場合は、それについて聞いてみたい.

4

1 に答える 1

5

私はそれらの質問の一部に答えることができます...

接続イベントと GATT の関係を教えてください。

それらはプロトコルの異なるレベルです。HCI を介して接続と接続イベントを処理します。GATT は、接続後に使用するものです。

各 ATT 読み取り/書き込みには新しい接続イベントが必要ですか?

いいえ。接続すると、複数の読み取り/書き込みまたはその他の GATT コマンドを実行できます。

そうでない場合、接続イベントごとに ATT 読み取り/書き込みをいくつ行うことができるかについて何か言えるでしょうか?

最良の方法は、実際に自分で速度をベンチマークすることだと思います。ただし、BLE の要点は、速度を犠牲にして消費電力を削減することです。速度が気になるなら、おそらく BLE でやるべきではありません。通知/指示の要点は、属性をポーリングする必要がなく、特定のイベントが発生したときにのみメッセージを取得することです。

BLE 接続の光センサーをポーリングして 1 バイト値を取得したい場合、達成できる最大 Hz はいくつになるでしょうか? 最小接続間隔をできるだけ低く設定するのが常に最善でしょうか?

上記の2つの回答を参照してください。

では、GATT サーバー通知はどのように実装されるのでしょうか。

GATT 接続を実装すると、マスター デバイスとスレーブ デバイスの間で双方向の通信が行われます。どちらのデバイスからもイベントを送信できます。通知を使用するには、特定の属性にビットを設定して、その情報に関する通知が必要であることを伝えます。次に、その通知の仕組みに応じて、報告するものがあるたびにイベントが返されます。BLE接続以外に何らかのインターフェースがない限り、電球には何の通知もないように感じます。典型的なアプリケーションは、温度が 1 度変化するたびに通知を送信する温度計のようなものです。

結論:

属性をポーリングしている場合は、間違っています。ただし、デバイスが必要な方法で通知を適切に実装しておらず、デバイスを変更できないため、間違った操作を行う必要がある可能性があります。ただし、ポーリングによってバッテリーの使用量が大幅に増加し、BLE を使用するメリットが失われます。

于 2013-07-01T15:13:39.090 に答える