2017-08-07 26 views
2

ブルートゥース低エネルギー(BLE)のMTUと最大特性サイズの関係を調べるにはどうすればよいですか?BLE:MTUと最大特性サイズの関係?

私はBLE開発ボードに「エコー」プログラムを実行しているので、受信したものはただちに返信します。

私のAndroid搭載端末では、247バイトのMTUを要求した後、247バイトの特性を書き込むと、242バイトと5バイトの2つのパケットとして送信されます。 244バイトを超える特性を書き込もうとすると、2つのパケットが生成されます。最初のパケットは242バイト、もう1つは残りのバイトです。なぜ最初のパケットが244バイトではなく242バイトであるのか分かりませんが、そこにはあります。

代わりに、100バイトのMTUを要求すると、同じ種類の問題が発生しますが、特性が97バイトを超えるとパケットが分割され、最初のパケットは常に95バイトの長さになります。

したがって、この特定のAndroid搭載端末では、最大パケット長はMTU値より3バイト短くなっています。私は、パケットの長さがMTUの値よりも3バイト短いiOS上のMTUに関するページを見てきました。

すべてのモバイルデバイスとすべてのBLE実装で、MTUと最大特性長の差が3バイトになることを保証しましたか?

答えて

1

ほぼ。 ATTヘッダーは、1バイトのオペコードとATTハンドルの2バイトで構成されています。 "Write Long Characteristic Values"を使用する場合は、2バイトのオフセットパラメータもあります。 「誰も使用せず、ほとんどスタックがサポートされていない」手続きなしの署名付き書き込み手順を使用する場合、12バイトの署名もあります。

また、最大特性長は512バイトです。ただし、最大許容MTUは65535バイトです。 MTUの大きさにかかわらず、512バイトを超える特性値を書き込むことはできません。

あなたがhttps://www.bluetooth.com/specifications/bluetooth-core-specificationでのBluetooth Core仕様を読み取ることができるATTプロトコルの低レベルの詳細に興味があるなら、第3巻パートF.

+0

が素敵なだけに追加するには、エミールを置く:ペイロードにオーバーヘッドがされライト特性(3バイト)とリード特性(1バイト)が異なります。 –

関連する問題