2017-10-18 5 views
0

Bluetooth LEバージョン4.2のハードウェアデバイスがあり、251バイトのペイロードでデータパケットを送信できます。しかし、私はモバイルアプリケーション(Android & IOS)を介してデータを受信し、携帯端末はv4.0、v4.1、v4.2などの異なるBluetooth LEバージョンを使用します。BLE v4.2から4.0へのペイロードサイズの下位互換性

私のハードウェアデバイスはマスターとして動作し、モバイルはスレーブとして動作するものとします。ここでマスターはスレーブのBluetoothバージョンを知らない。

マスターが251バイトのペイロードでデータパケットを送信する場合、スレーブ(v4.0 - ペイロード:33バイト)がどのようにそれを処理できるかをマスターが送信します。

質問1:BLE GATTサーバは、251パケットのバッファを保持し、33パケットを順次送信することによって、このような下位互換性の問題を処理できますか?

質問2:マスターをv4.2にしても、すべてのBLEバージョンでスレーブに応答することで、高いスループットを得るには最高の方法がありますか?

よろしく、 Siva。

答えて

1

Bluetoothコアの仕様を読んだ場合、リンク層でリンク層のパケットサイズが両側からネゴシエートできることがわかります(スレーブまたはマスターは関係ありません)。他のデバイスがそれをサポートしていない場合は、デフォルトの長さが使用されます。それ以外の場合は、より大きな長さが使用されます。したがって、完全に下位互換性があります。

また、断片化と再アセンブリがL2CAPレイヤーによって処理されるため、GATTレイヤーをLEデータ長拡張をサポートするために変更する必要はありません。

ただし、この機能を使用するには、GATT用に大きなMTUを交換する必要があります。好ましくは、4 + MTUはリンク層パケットの最大長の倍数でなければならない。