Pourquoi ne peut-on envoyer que 20 octets de données à la fois dans BLE ?

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).

Sans titre-1.png

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

image.png partie d'en-tête

  1. La tête a principalement 1 octet.
  2. Type d'unité de distribution d'alimentation
  3. RFU est réservé
  4. TxAjouter un segment d'adresse d'envoi
  5. RxAdd accepte le segment d'adresse

partie de longueur

  1. La longueur est principalement de 1 octet.
  2. 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

image.png

  1. La partie de données valide se compose de plusieurs structures AD
  2. 1 AD Structure se compose de 1 octct de longueur et de données (Length)
  3. les données se composent du type AD (n octct) et des données AD (longueur - n)

PDU de données

diriger

image.png

  1. La longueur est de 5 chiffres 0-31octct, le maximum est de 31octets
  2. Soustrayez le MIC de 4 octets 31-4 = 27 octets est la longueur de la charge utile.

Couche de liaison L2CAP

image.png

27 - 2 - 2 = 23 octets

notifier

image.png

23 - 1 - 2 = 20 octets.

Je suppose que tu aimes

Origine juejin.im/post/7206577654933651516
conseillé
Classement