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).
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
parte del encabezado
- La cabeza tiene principalmente 1 octeto.
- tipo de PDU
- RFU está reservado
- Segmento de dirección de envío TxAdd
- RxAdd acepta el segmento de dirección
parte de longitud
- La longitud es principalmente de 1 octeto.
- 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
- La parte de datos válida consta de varias estructuras de AD
- 1 Estructura de AD consta de 1 octeto de longitud y datos (Longitud)
- los datos consisten en tipo de AD (n octct) y datos de AD (Longitud - n)
PDU de datos
cabeza
- La longitud es de 5 dígitos 0-31octct, el máximo es 31octet
- Reste el MIC de 4 octetos 31-4 = 27 octetos es la longitud de la carga útil.
Capa de enlace L2CAP
27 - 2 - 2 = 23 octeto
notificar
23 - 1 - 2 = 20 octetos.