Desarrollo BLE: ¿Qué es GATT y cómo funciona?

Índice del contenido

El concepto de GATT

Para realizar un desarrollo relacionado con BLE debemos tener ciertos conocimientos básicos, por supuesto debe ser muy sencillo.

GATT Función del dispositivo:

Lo primero que hay que entender es que la distinción entre estos dos roles es a nivel de hardware, y son conceptos relativos que aparecen de dos en dos:

"Dispositivo central": relativamente potente, utilizado para escanear y conectar dispositivos periféricos, como teléfonos móviles, tabletas, etc.

"Dispositivo periférico": la función es relativamente simple, el consumo de energía es pequeño y el dispositivo central está conectado para proporcionar datos, como pulseras, termómetros inteligentes, etc.

De hecho, en el nivel más fundamental, debería haber una distinción entre diferentes roles en el proceso de establecer una conexión. Sabemos que si un dispositivo Bluetooth quiere que otros sepan su existencia, debe transmitir continuamente al mundo exterior, mientras que la otra parte debe escanear y responder al paquete de transmisión para que se pueda establecer la conexión. En este proceso, el responsable de la transmisión es Periférico y Central es responsable del escaneo.

Nota sobre el proceso de conexión entre los dos:

El dispositivo central se puede conectar a varios dispositivos periféricos al mismo tiempo. Una vez que el dispositivo periférico está conectado, dejará de transmitir inmediatamente y continuará transmitiendo después de la desconexión. Solo un dispositivo puede intentar conectarse en cualquier momento, poniendo en cola las conexiones.

GATT protocolo

La tecnología BLE se comunica según GATT. GATT es un protocolo de transmisión de atributos. Puede considerarse como un protocolo de capa de aplicación para la transmisión de atributos.

Su estructura es muy sencilla:   

Puedes entenderlo como xml:

Cada GATT está compuesto por Servicios que realizan diferentes funciones;

Cada Servicio se compone de una Característica diferente;

Cada Característica consta de un valor y uno o más Descriptores;

Servicio y Característica son equivalentes a etiquetas (El Servicio es equivalente a su categoría y la Característica es equivalente a su nombre), mientras que el valor en realidad contiene datos y el Descriptor es una explicación y descripción de este valor. Por supuesto, podemos describirlo y describirlo desde diferentes ángulos. Descripción, por lo que puede haber múltiples Descriptores.

Por ejemplo: La Xiaomi Mi Band común es un dispositivo BLE, (se supone) que contiene tres Servicios, que son el Servicio que proporciona información del dispositivo, el Servicio que proporciona pasos y el Servicio que detecta la frecuencia cardíaca;

Las características contenidas en el servicio de información del dispositivo incluyen información del fabricante, información del hardware, información de la versión, etc.; el servicio de frecuencia cardíaca incluye las características de frecuencia cardíaca, etc., y el valor en la característica de frecuencia cardíaca en realidad contiene los datos de frecuencia cardíaca, y el descriptor es el valor. Descripción, como la unidad de valor, descripción, permiso, etc.

GATT C/S

Con una comprensión preliminar del GATT, sabemos que es un modo típico de C/S. Dado que es C/S, es necesario que distingamos entre Servidor y Cliente.

"Servidor GATT" frente a "cliente GATT". La etapa donde existen estos dos roles es después de que se establece la conexión, y se distinguen según el estado del diálogo. Es fácil entender que la parte que posee los datos se llama servidor del GATT y la parte que accede a los datos se llama cliente del GATT.

Este es un concepto a un nivel diferente al rol de dispositivo que comentábamos antes, y es necesario distinguirlo. Usemos un ejemplo simple para ilustrar:

Tomemos el ejemplo de un teléfono móvil y un reloj para ilustrar. Antes de establecer la conexión entre el teléfono móvil y el teléfono móvil, utilizamos la función de búsqueda Bluetooth del teléfono móvil para buscar el dispositivo Bluetooth del reloj. Durante este proceso, es obvio que el reloj está transmitiendo BLE para que otros dispositivos sepan su existencia. En este proceso, es el papel de periférico, y el teléfono móvil es responsable de la tarea de escaneo y, naturalmente, desempeña el papel de centro; Después de que los dos establecen una conexión GATT, cuando el teléfono móvil necesita leer datos del sensor, como el número de pasos del reloj, los dos Los datos interactivos se guardan en el reloj, por lo que en este momento el reloj es la función del GATT. servidor, y el teléfono móvil es, naturalmente, el cliente del GATT; y cuando el reloj quiere leer llamadas SMS y otra información del teléfono móvil, el guardián de los datos se convierte en el teléfono móvil, por lo que el teléfono móvil es el servidor en este momento y el reloj es el cliente.

Servicio/Característica

Ya hemos tenido una comprensión perceptiva de ellos arriba, y luego tenemos alguna información práctica:

  1. La característica es la unidad lógica de datos más pequeña.
  2. El análisis de los datos almacenados en valor y descriptor lo determina el ingeniero del servidor, no existe ninguna especificación.
  3. El servicio/característica tiene una identificación UUID única, el UUID tiene 16 bits y 128 bits. Lo que debemos entender es que el UUID de 16 bits está certificado por la organización Bluetooth y debe comprarse. Por supuesto, hay algunos comunes. unos UUID de 16 bits. Por ejemplo, el UUID del servicio Heart Rate es 0X180D, que se expresa como 0X00001800-0000-1000-8000-00805f9b34fb en el código, y otros bits son fijos. El UUID de 128 bits se puede personalizar.
  4. Las conexiones del GATT son exclusivas.

Ir al Inicio