Lorsque vous travaillez sur des projets liés à Bluetooth, on estime que de nombreuses personnes sont curieuses de savoir pourquoi un maximum de 20 octets de données sont envoyés à la fois. Sans plus tarder, l'image ci-dessus en premier et l'image ci-dessous montrent la structure des paquets de données Bluetooth. transmission. La partie rouge est la taille finale du paquet que nous avons envoyé (dans l'état Notifier).
Avant de commencer, permettez-moi de mentionner la différence entre Octet et Byte, bien que les deux puissent être traduits en octets. Octet est un groupe d'octets. Au début du développement de TCP/IP, l'octet utilisé par certaines structures système était de 10 bits.
Introduction aux paquets de diffusion
en-tête de paquet de diffusion
partie d'en-tête
- La tête a principalement 1 octet.
- Type d'unité de distribution d'alimentation
- RFU est réservé
- TxAjouter un segment d'adresse d'envoi
- RxAdd accepte le segment d'adresse
partie de longueur
- La longueur est principalement de 1 octet.
- 6octet est la longueur, et la valeur est 6-37 (le paquet de diffusion a une adresse de périphérique de 6octets à la fin, donc c'est au moins 6 bits).
Pour les 37 octets ici, je suppose que c'est ceci, je ne sais pas si c'est correct, afin d'être compatible avec les données 5 bits dans le PUD de données d'une longueur de 31 octets, plus l'adresse de l'appareil qui doit être ajouté par 6octets.
section des données de diffusion
Les données sont divisées en données valides et données invalides (remplies de 0) + adresse de périphérique de 6 octets. Les structures de données valides sont les suivantes
- La partie de données valide se compose de plusieurs structures AD
- 1 AD Structure se compose de 1 octct de longueur et de données (Length)
- les données se composent du type AD (n octct) et des données AD (longueur - n)
PDU de données
diriger
- La longueur est de 5 chiffres 0-31octct, le maximum est de 31octets
- Soustrayez le MIC de 4 octets 31-4 = 27 octets est la longueur de la charge utile.
Couche de liaison L2CAP
27 - 2 - 2 = 23 octets
notifier
23 - 1 - 2 = 20 octets.