Table of Contents
Bluetooth Low Energy (BLE) se ha convertido en el estándar dominante para la comunicación inalámbrica de corto alcance en Internet de las cosas (IoT), la tecnología usable y los servicios modernos basados en ubicación. Todo el ecosistema depende de un simple pero altamente matizado apretón de manos: publicidad y escaneado. El anunciante transmite su presencia, y el escáner escucha. Mientras que la pila Bluetooth abstrae gran parte de esta complejidad, desarrolladores e ingenieros que dominan estos procesos pueden construir sistemas que son significativamente confiables
La Fundación de Comunicación Inconexa
La publicidad y el escaneo Bluetooth forman un modelo de comunicación asimétrica. El anunciante transmite paquetes de datos a intervalos regulares, mientras que el escáner escucha estos paquetes en canales de radio específicos. Críticamente, este apretón de manos inicial es sin conexión - el anunciante no sabe quién está escuchando, y el escáner no se conecta hasta que decide, basado en los datos que recibe. Esta fundación permite utilizar casos que van desde la detección de proximidad simple (iBeacon, Eddy-phone).
Anatomía de un paquete de publicidad Bluetooth
Comprender lo que está dentro de un paquete de publicidad es el primer paso hacia la optimización. Una unidad de datos de protocolo de publicidad heredada (PDU) consiste en cuatro partes principales:
- Preámbulo (1 byte): Una secuencia fija (1010 o 0101) utilizada para la sincronización del receptor.
- Access Address (4 bytes): Para la publicidad heredada, esto es siempre . Las direcciones de acceso desactivadas se utilizan para los canales de datos.
- PDU Header (2 bytes): Define el tipo PDU (ADV IND, ADV NONCONN IND, SCAN REQ, etc.), la longitud de la carga útil y la información de canal.
- Payload (0–37 bytes): Contiene la dirección del anunciante (AdvA) y los datos de publicidad (AdvData).
- [CRC (3 bytes):] Ciclismo Redundancia Compruebe la detección de errores.
Para los desarrolladores, el campo AdvData] es el componente más crítico. Está estructurado como una secuencia de estructuras AD (Datos de publicidad), cada una con un byte de longitud, un byte tipo AD y los datos reales.
- Flags: Indica LE Limited Discoverable Mode, LE General Discoverable Mode, y BR/EDR support.
- Nombre local:] Nombre del dispositivo acortado o completo.
- Servicios UUIDs: Una lista de 16 bits, 32 bits o 128 bits UUIDs que identifican los servicios soportados.
- Datos específicos del fabricante: Datos personalizados utilizados por el fabricante (por ejemplo, iBeacon de Apple o Eddystone de Google).
Canales de publicidad primaria
Para garantizar un descubrimiento fiable a pesar de la interferencia Wi-Fi, BLE ordena que los paquetes de publicidad se transmitan en tres canales primarios: 37 (2402 MHz), 38 (2426 MHz), y 39 (2480 MHz). Estos canales están cuidadosamente seleccionados para residir en las brechas entre las frecuencias centrales de los canales Wi-Fi más comunes (1, 6, y 11).
Modos y tipos de publicidad
La especificación Bluetooth Core define varios tipos de PDU publicitarios, cada uno adaptado para casos de uso específico. Elegir el tipo correcto es fundamental para optimizar el comportamiento de poder y descubrimiento.
- ADV IND (Connectable Undirected Advertising): El modo más común. El anunciante es descubrible y acepta solicitudes de conexión de cualquier escáner. Se utiliza para el descubrimiento general del dispositivo (por ejemplo, emparejar un smartphone).
- ADV DIRECT IND (Connectable Directed Advertising):] Se dirige a un dispositivo específico. El paquete contiene la dirección del anunciante y la dirección del objetivo. Este modo tiene una latencia muy baja para la reconexión y se utiliza típicamente cuando se pierde una conexión temporalmente.
- ADV NONCONN IND (No-connectable Undirected Advertising): El dispositivo está puramente difundiendo y no puede aceptar conexiones. Se utiliza extensamente para balizas y sensores de transmisión, ya que consume menos potencia eliminando la conexión de arriba.
- ADV SCAN IND (Scannable Undirected Advertising):] El dispositivo es descubierta pero no conectable. Puede responder a las solicitudes de escaneo, permitiendo a los escáneres reunir datos adicionales sin establecer una conexión completa.
Cada modo tiene un ciclo de servicio correspondiente . Los modos conectados suelen utilizar un ciclo de servicio más alto para asegurar el establecimiento de conexión rápida, mientras que los modos no conectados pueden utilizar un ciclo de servicio más bajo para conservar la energía.
Profundidad en el proceso de exploración Bluetooth
El escaneo es la escucha activa o pasiva para paquetes publicitarios. Los horarios del escáner reciben ventanas en los canales de publicidad primaria. El éxito del descubrimiento depende totalmente de la solapamiento entre el horario de transmisión del anunciante y el horario de escucha del escáner.
Escáner pasivo: Eavesdropping for Efficiency
En el escaneo pasivo, el escáner simplemente abre una ventana de recepción y escucha PDUs publicitarios. No transmite ninguna solicitud. Este es el modo de escaneado de potencia más bajo porque la radio pasa el tiempo mínimo en modo de transmisión (que suele dibujar 10-20 mA). El escaneo pasivo es ideal para aplicaciones que sólo necesitan leer los datos ya presentes en el paquete de publicidad, como un receptor de bea que muestra una URL o una lectura de temperatura.
Los escáneres que sólo necesitan detectar un puñado de UUID de servicio o un ID de fabricante pueden operar completamente en modo pasivo, reduciendo significativamente los requisitos de potencia del sistema. Por ejemplo, un monitoreo de centro de hogar inteligente para un sensor BLE específico puede permanecer en modo de escaneo pasivo la mayor parte del tiempo.
Escaneos activos: Contexto de la ganancia
Cuando el escáner requiere más información que lo que se proporciona en la carga de pago inicial de 31 bytes, realiza un escaneo activo. Al recibir un paquete de publicidad (específicamente, un ADV IND o ADV SCAN IND), el escáner transmite un SCAN REQ PDU. El anunciante responde con un
El escaneo activo es potente porque permite al escáner obtener el nombre local completo del dispositivo o datos de servicio detallados antes de decidir conectarse. Sin embargo, esto viene a un costo:
- Consumo de potencia incrementado: El escáner debe alimentar su transmisor para el SCAN REQ.
- ]Trafico aéreo creciente: El intercambio SCAN REQ/SCAN RSP añade sobrecarga, lo que podría aumentar las probabilidades de colisión en entornos densos.
- Implicaciones de privacidad: El escaneo activo revela la presencia del escáner y la dirección MAC al anunciante.
Para los balizas pasivos que no necesitan exponer su nombre completo hasta que un usuario los toque, es apropiado escanear activo. Para la detección de presencia simple, el escaneo pasivo es superior.
Filtros de escaneado y detección duplicada
En un entorno denso BLE, un escáner puede ser abrumado por miles de paquetes por segundo. Para manejar esto, las modernas pilas Bluetooth implementan un filtro sofisticado.
- ] Filtración de dispositivos: El escáner se puede configurar sólo para procesar paquetes de una lista blanca de direcciones MAC específicas o un conjunto de UUIDs de servicio. Esto es crítico para el escaneo de fondo en dispositivos móviles para conservar la batería.
- Filtración Duplicada: La pila puede desechar automáticamente los paquetes duplicados del mismo dispositivo. Esto impide que la capa de aplicación se inunda con anuncios repetidos. El parámetro en Android o el en el poder de iOS controla este filtro de escaneo.
- RSSI Filtración: Algunos escáneres avanzados permiten filtrar basado en la fuerza de la señal, ignorando dispositivos que están demasiado lejos (o demasiado cerca) para ser relevantes.
Optimización del ecosistema de publicidad y escaneamiento
La clave para el descubrimiento eficiente del dispositivo radica en ajustar los parámetros del anunciante y del escáner para ajustar los requisitos de aplicación específicos. El intercambio es casi siempre entre el consumo de energía y la latencia del descubrimiento.
Parámetros de publicidad de la manipulación
El parámetro más impactante es el intervalo de publicidad] (]). Se define como un múltiplo de 0.625 ms, que va desde 20 ms a 10.24 segundos. Se añade un retraso aleatorio de 0-10 ms a cada intervalo para evitar colisiones persistentes.
Fast vs. Slow Advertising
Bluetooth Core Specification recomienda dos ciclos de derechos de alto nivel para los anunciantes:
- Fast Advertising: Usa intervalos de 30 ms a 60 ms. Este modo está destinado a un rápido descubrimiento, como cuando un dispositivo está emparejado o cuando un usuario está interactuando activamente con el dispositivo. Proporciona latencia de descubrimiento de 100 ms pero consume potencia significativa.
- Slow Advertising (o Extended Advertising): Usa intervalos de 1 segundo a 2 segundos o más. Esto se utiliza para la radiodifusión de fondo (por ejemplo, un faro en una tienda). Extiende la vida de la batería a meses o años, pero puede tomar varios segundos para que un escáner detecte el dispositivo.
Los desarrolladores deben implementar una estrategia de publicidad dinamizada]. Por ejemplo, un sensor puede anunciar rápidamente durante 30 segundos después de una pulsación de botón (para facilitar la conexión rápida), luego caer a un intervalo lento para el resto del día para ahorrar batería.
Parámetros de escaneado de tono
El comportamiento del escáner se rige por dos parámetros: ventana de la pantalla ] () y intervalo de la cadena ] ().
- Venta de la pantalla: La duración de un período de escucha en un canal específico.
- Scan Interval: El tiempo total entre dos aberturas de la ventana de escaneo.
La relación define el ciclo de obligación de escaneo. Un 100% ciclo de servicio significa que el escáner está escuchando constantemente (] = ). Esto proporciona el descubrimiento más rápido pero drena la batería rápidamente. Un 10% ciclo de servicio significa que el escáner está escuchando sólo un 10% de energía.
Los sistemas operativos móviles modernos proporcionan perfiles de escaneo predefinidos para gestionar este intercambio:
- SCAN MODE LOWER [Android]: ~10% ciclo de trabajo, intervalo de 0,5s.
- SCAN MODE BALANCED [Android]: ~25% de ciclo de servicio.
- SCAN MODE LOW LATENCY [Android]: ~100% ciclo de trabajo, intervalo de 2s.
Para iOS, el sistema gestiona los parámetros de escaneo basados dinámicamente en el estado de la aplicación (antesplano vs. fondo). Los ciclos de escaneo de fondo son mucho más largos para conservar la batería.
Filtro avanzado y estructuras de datos
Más allá de la filtración básica de MAC y UUID, los desarrolladores pueden optimizar el descubrimiento mediante la estructuración cuidadosamente los datos de publicidad. Dada la limitación de carga útil de 31 bytes, cada byte cuenta.
- Servicios UUIDs: Usar UUIDs asignados por Bluetooth SIG de 16 bits siempre que sea posible en lugar de UUIDs personalizados de 128 bits. Se ajustan más eficazmente al paquete.
- ]Manufacturer Datos Específicos: Utilizar los primeros 2 bytes para el identificador de la empresa (como lo asigna el Bluetooth SIG), y los bytes restantes para datos personalizados. Esto permite a los escáneres clasificar el paquete inmediatamente.
- Eddystone y iBeacon: Estos son tipos de marcos bien conocidos que utilizan el campo Datos Específicos del Fabricante. Los escáneres buscan específicamente estos tipos de marcos, permitiendo un filtrado extremadamente selectivo en el nivel de radio.
Publicidad avanzada con Bluetooth 5.x y Auracast
Bluetooth 5.0 introdujo una evolución significativa en las capacidades de publicidad, pasando más allá de los canales heredados de 31 bytes.
Publicidad ampliada
BLE 5.0 expandió los canales de publicidad desde los 3 canales primarios originales a 39 canales] (los canales 37-39 más 40-47 se utilizan para la publicidad secundaria).
- Larger Payloads: Hasta 255 bytes en un solo paquete de publicidad.
- Tasas de datos más altas: Usando el PHY 2M (2 Mbps).
- Rango de mayor alcance: Usando el PHY de Coded (125 kbps o 500 kbps), que puede alcanzar más de un kilómetro de rango en condiciones ideales.
- Canales primarios/secondarios: El escáner descubre el dispositivo en los canales primarios (37, 38, 39) y aprende qué canal secundario utilizará el anunciante para enviar los datos reales. Esto permite que el escáner se ajuste al canal secundario, ahorrando energía.
La publicidad ampliada es esencial para las puertas de IoT modernas y las etiquetas de seguimiento de activos que necesitan transmitir grandes cantidades de datos (como los registros de sensores o las imágenes de firmware) sin establecer una conexión completa.
Publicidad periódica (PAwR y PAST)
La publicidad periódica lleva la radiodifusión BLE al siguiente nivel. El anunciante envía paquetes a un intervalo fijo. El escáner puede sincronizarse con el anunciante escuchando estos trenes periódicos. Para sincronizar, el escáner descubre primero el dispositivo mediante publicidad extendida y aprende el momento del tren periódico.
PAwR (Periodic Advertising with Responses) es un cambiador de juego para la comunicación bidireccional. Permite que una puerta de enlace se comunique con miles de nodos finales de manera eficiente, definiendo ranuras de respuesta específicas para cada nodo. Esto forma la base para redes de sensores de alta densidad como etiquetas de plataforma electrónica (ESLs).
PAST (Transferencia Sincronológica de Publicidad Peridica)] permite un dispositivo que ya está sincronizado con un anunciante periódico para compartir esa información de sincronización con otro dispositivo. Esta es la columna vertebral técnica de Auracast, el nuevo estándar de audio de transmisión Bluetooth.
Auracast: Audio sin conexión
Auracast aprovecha la publicidad periódica para transmitir flujos de audio. Los audífonos, los auriculares y los altavoces escanean para los flujos de Auracast. El escáner (por ejemplo, un teléfono o audífono) sincroniza con el tren periódico y recibe los datos de audio. Esto es fundamentalmente diferente de la transmisión clásica de A2DP, ya que permite a los receptores ilimitados escuchar simultáneamente y soporta características como compartir audio de un televisor a varios pares.
Consideraciones prácticas para sistemas de descubrimiento robustos
La construcción de un sistema BLE listo para la producción requiere navegar por las limitaciones del mundo real de la física de radio, la química de baterías y las restricciones del sistema operativo.
Análisis de Consumo de Poder
La radio es el componente más potente de un dispositivo BLE. Un BLE SoC típico dibuja 10-20 mA durante la transmisión o recepción activas. La potencia media se calcula como:
Avg Power = (TX/RX Current) x Ciclo de deber + (Sleep Current) x (1 - Ciclo de deber)]
A intervalos de 1 segundo, el ciclo de servicio es minúsculo (aproximadamente 0,5–1 ms de radio por segundo = 0,1% ciclo de servicio). Esto permite que una batería de células de monedas CR2032 accione un baliza durante más de un año. Cambiar a un intervalo de 100 ms aumenta el ciclo de servicio a ~1%, reduciendo la vida de la batería a unos pocos meses.
Sistema operativo y Constraints de Plataforma
Los sistemas operativos móviles imponen límites estrictos al escaneo BLE para proteger la vida de la batería y la privacidad del usuario.
- iOS (Apple):] En el fondo, los escáneres Bluetooth Core se desplazan con mucha menos frecuencia. La opción se ignora en gran medida en el fondo. Las aplicaciones deben especificar sus modos de fondo en Info.plist. Además, iOS caché agresivamente dispositivos, y el escaneo para el servicio específico UUIDs es muy recomendable para reducir el drenaje de batería.
- Android (Google): Android 8+ introdujo límites de ejecución de fondo. El análisis de aplicaciones en el fondo debe utilizar un servicio de primer plano (si se apunta a la exploración de fondo) o utilizar con apropiado . Android 12+ requiere el permiso , que es un permiso de tiempo de ejecución como Ubicación.
Los ingenieros deben probar su lógica de descubrimiento en ambas plataformas bajo condiciones de fondo, ya que el comportamiento a menudo difiere significativamente de la operación en primer plano.
Coexistencia y gestión de interferencias
La banda ISM de 2.4 GHz es un espacio concurrido. Wi-Fi, Zigbee, Thread, e incluso hornos de microondas interfieren con BLE. La pila Bluetooth maneja esto a través de Frecuencia Adaptiva Hopping (AFH) en canales de datos. Sin embargo, los tres canales de publicidad primaria (37, 38, 39) no se de alta.
Los desarrolladores pueden mitigar esto por:
- Utilizando Publicidad avanzada] (BLE 5.x) que utiliza más canales para la transmisión de datos secundarios.
- Garantizar el intervalo de publicidad es lo suficientemente largo para evitar una colisión persistente con faros Wi-Fi.
- Implementar la retransmisión o el reconocimiento de nivel de software si se están emitiendo datos críticos.
Conclusión: Dominar el Descubrimiento Handshake
El descubrimiento eficiente del dispositivo Bluetooth no es un estado binario de estar "conectado" o "desconectado". Es un problema de optimización continua que implica el diseño del paquete, la gestión de energía y el ajuste del parámetro. El anunciante debe transmitir su presencia de una manera que es descubierta para el caso de uso previsto sin desperdiciar la batería. El escáner debe escuchar inteligentemente, filtrar el ruido y enfocarse en las señales pertinentes.
Al dominar la interacción entre intervalos publicitarios, ciclos de servicio de escaneo y filtración de datos, los desarrolladores pueden crear sistemas que no sólo son fiables y sensibles, sino también lo suficientemente eficientes para funcionar durante años en una sola batería. Como la tecnología Bluetooth sigue evolucionando con Auracast y canalización de alta densidad, los principios de publicidad eficiente y escaneo permanecerán en el corazón del ecosistema inalámbrico.
Lectura y recursos adicionales
- Bluetooth SIG Core Specification 5.4:] Volumen 6, Parte B – Link Layer Specification
- Android BLE Overview: [Guía de desarrolladores para el escaneamiento y la publicidad de los BLE]
- Guía básica de programación Bluetooth: ]]Realización de la ejecución de antecedentes y restauración del Estado
- Atravesando BLE Basics: ]Detallada Resumen Técnico de BLE Architecture
- Auracast Broadcast Audio: Introducción Técnica al audio sin conexión