2016-09-12 9 views
2

In Bluetooth Low Energy 4.0 und 4.1 beträgt die maximale PDU eines OTA-Pakets 39 Byte (47 Byte mit Präambel, Zugriffsadresse und CRC) und wurde in Version 4.2 auf 257 Byte erhöht . Der Grund für ein kurzes Paket ist die Stabilität des Funkgeräts, lange Pakete erwärmen das Silizium und zusätzliche Schaltungen, um die Frequenz stabil zu halten. So ist in BLE 4.1 das längste mögliche Paket 376 Mikrosekunden, um den Heizeffekt zu vermeiden. Da die Datenrate 1 MHz beträgt, sind 376 Mikrosekunden 376 Bits = 47 Bytes, so dass die Größe der PDU erklärt wird. Aber in der Version 4.2 ist das längste Paket 2120 Bit, also 2.12ms und ich lese 3ms Pakete in Bluetooth Classic sind lang genug, um Probleme zu verursachen. Meine Frage ist also: Warum und wie es SIG gelungen ist, die PDU in Version 4.2 zu erhöhen, wissen einige Halbleiterhersteller, dass die Hardware für alle Versionen gleich ist. Was hat zu dieser neuen PDU-Länge geführt?Erläuterung der PDU-Größe in Bluetooth Low Energy 4.2

Antwort

2

In 4. [01] ist 39 Bytes die maximale LL-PDU-Größe, die für Werbepakete erreicht wurde (2 Byte Header, 6 Byte Geräteadresse, 31 Byte AD). Für Datenpakete beträgt die maximale PDU-Größe 33 Byte (2 Header + 4 L2CAP + 23 ATT + 4 MIC).

Hinweis Der Datenkanal-Header zählt die PDU-Größe ohne Header, sodass die Nutzdatengröße des Datenkanals auf bis zu 31 Byte erhöht wird. Dies ist die Zahl, die in 4.2 vergrößert wurde (der tatsächliche minimale Wert ist 27 Bytes, wenn Krypto nicht unterstützt wird, weil 4-Byte-MIC niemals in dem Paket erscheinen wird).

Die neue Datenkanal Nutzlastgröße in 4.2 definiert ist das maximal mögliche Wert Protokoll unterstützen kann, so ist es ein Wert, eine Chip kann Unterstützung anstatt eine absolute Paketgrße jedes Chip must Unterstützung.

Tatsächliche Nutzdatengröße des Datenkanals wird mit LL_LENGTH_REQ und LL_LENGTH_RSP zwischen den beiden beteiligten Funkgeräten ausgehandelt. Sie können eine beliebige Länge von 27 bis zu 251 Bytes (auf der Nutzlast-Ebene) verhandeln (siehe Core_v4.2 6.B.2.4.2.21).

In der ersten Version der BLE-Spezifikation war die maximale Paketgröße 27 Byte (Datennutzlast ohne MIC). Spec verwendete ein 5-Bit-Feld für die LL-Paketgröße, 3 andere Bits dieses Header-Bytes waren RFU. Es wurde schließlich auf 8-Bit mit voller Abwärtskompatibilität in 4.2 erweitert, aber es gibt kein zusammenhängendes Bit mehr in der Kopfzeile. Das erklärt, warum Limit bei 256 Bytes liegt (Geben oder Nehmen wegen fester Header-Größen, die nicht Teil der Byteanzahl sind): es gibt eine vernünftige Erweiterung, ohne das Protokoll sehr zu ändern.

+0

Danke. Ich hatte die Spezifikationen als "muss" gelesen und nicht als "darf". – JJM

+0

Die Antwort nur Kommentare über die Nachwirkungen der Größenzunahme, Es ging nicht um die ursprüngliche Frage "Der Grund des kurzen Pakets ist die Stabilität des Radios, lange Pakete erhitzen das Silizium und zusätzliche Schaltungen hinzugefügt werden, um die Frequenz zu halten stabil ", wenn dies tatsächlich der Fall ist, wie bewirkt die Erhöhung der Paketgröße keinen Erwärmungseffekt/Instabilität? –

+0

Die eigentliche Frage lautete: "Warum und wie ist ** SIG ** gelungen [...]". Die eigentliche Antwort ist die ** may/must ** Unterscheidung. Der Effekt ist chipabhängig, und Anbieter können das Limit, das sie tatsächlich unterstützen, in ihren Chips durchsetzen. Selbst wenn die Chips vor Version 4.2 erstellt wurden, können sie in erster Linie längere Pakete unterstützen, selbst wenn sie die 251-Byte-Grenze nicht erreichen können. – Nipo

Verwandte Themen