Bei der Arbeit an Bluetooth-bezogenen Projekten interessieren sich schätzungsweise viele Leute dafür, warum maximal 20Byte Daten auf einmal gesendet werden.Das obige Bild zuerst und das Bild unten zeigen kurzerhand die Paketstruktur von Bluetooth-Daten Übertragung. Der rote Teil ist die endgültige Paketgröße, die wir gesendet haben (im Benachrichtigungsstatus).
Bevor wir beginnen, lassen Sie mich den Unterschied zwischen Octet und Byte erwähnen, obwohl beide in Bytes übersetzt werden können. Octet ist eine Gruppe von Oktetten. In den frühen Tagen der TCP/IP-Entwicklung betrug das von einigen Systemstrukturen verwendete Byte 10 Bit.
Einführung in Broadcast-Pakete
Broadcast-Paket-Header
Kopfteil
- Der Kopf hat hauptsächlich 1 Oktett.
- PDU-Typ
- RFU ist reserviert
- TxAdd Sendeadresssegment
- RxAdd übernimmt das Adresssegment
Längenteil
- Die Länge beträgt hauptsächlich 1 Oktett.
- 6 Oktett ist die Länge und der Wert ist 6-37 (das Broadcast-Paket hat am Ende eine 6-Oktett-Geräteadresse, also mindestens 6 Bit).
Für die 37 Bytes hier ist meine Vermutung, ich weiß nicht, ob es richtig ist, um mit den 5-Bit-Daten in der Daten-PUD mit einer Länge von 31 Oktett kompatibel zu sein, plus die Geräteadresse, die hinzugefügt werden muss von 6 Oktett.
Broadcast-Datenabschnitt
Die Daten werden aufgeteilt in gültige Daten und ungültige Daten (mit 0 gefüllt) + 6 Oktett Geräteadresse. Gültige Datenstrukturen sind wie folgt
- Der gültige Datenteil besteht aus mehreren AD-Strukturen
- 1 AD-Struktur besteht aus 1 Oktett Länge und Daten (Länge)
- Daten bestehen aus AD-Typ (n octct) und AD-Daten (Länge - n)
Daten-PDU
Kopf
- Die Länge beträgt 5 Ziffern 0-31 Oktett, das Maximum ist 31 Oktett
- Subtrahieren Sie den MIC von 4 Oktett 31-4 = 27 Oktett ist die Nutzlastlänge.
Verbindungsschicht L2CAP
27 - 2 - 2 = 23 Oktett
benachrichtigen
23 - 1 - 2 = 20 Oktett.