¿Por qué solo se pueden enviar datos de 20 bytes a la vez en BLE?

Cuando se trabaja en proyectos relacionados con Bluetooth, se estima que muchas personas sienten curiosidad acerca de por qué se envía un máximo de 20 bytes de datos a la vez. Sin más preámbulos, la imagen de arriba primero, y la imagen de abajo muestra la estructura del paquete de datos de Bluetooth. transmisión. La parte roja es el tamaño del paquete final que enviamos (en estado Notificar).

Sin título-1.png

Antes de comenzar, permítanme mencionar la diferencia entre octeto y byte, aunque ambos se pueden traducir a bytes. Octeto es un grupo de octetos. En los primeros días del desarrollo de TCP/IP, el byte utilizado por algunas estructuras del sistema era de 10 bits.

Introducción a los paquetes de difusión

encabezado del paquete de difusión

imagen.png parte del encabezado

  1. La cabeza tiene principalmente 1 octeto.
  2. tipo de PDU
  3. RFU está reservado
  4. Segmento de dirección de envío TxAdd
  5. RxAdd acepta el segmento de dirección

parte de longitud

  1. La longitud es principalmente de 1 octeto.
  2. 6 octetos es la longitud y el valor es 6-37 (el paquete de transmisión tiene una dirección de dispositivo de 6 octetos al final, por lo que tiene al menos 6 bits).

Para los 37 bytes aquí, supongo que es esto, no sé si es correcto, para que sea compatible con los datos de 5 bits en el PUD de datos con una longitud de 31 octetos, más la dirección del dispositivo que se debe agregar por 6 octetos.

sección de datos de transmisión

Los datos se dividen en datos válidos y datos no válidos (llenados con 0) + dirección del dispositivo de 6 octetos. Las estructuras de datos válidas son las siguientes

imagen.png

  1. La parte de datos válida consta de varias estructuras de AD
  2. 1 Estructura de AD consta de 1 octeto de longitud y datos (Longitud)
  3. los datos consisten en tipo de AD (n octct) y datos de AD (Longitud - n)

PDU de datos

cabeza

imagen.png

  1. La longitud es de 5 dígitos 0-31octct, el máximo es 31octet
  2. Reste el MIC de 4 octetos 31-4 = 27 octetos es la longitud de la carga útil.

Capa de enlace L2CAP

imagen.png

27 - 2 - 2 = 23 octeto

notificar

imagen.png

23 - 1 - 2 = 20 octetos.

Supongo que te gusta

Origin juejin.im/post/7206577654933651516
Recomendado
Clasificación