Intro a Bluetooth Low Energy

Agustin Bassi

May 28, 2021 ‧ 16 min estimados ‧ #bluetooth #ble #low-energy #iot

Contenido

Objetivos

Bluetooth LE

Historia

Topología

Broadcaster-Observer

Connections

Mixta

Capas de comunicación

Organización de perfiles

Generic Access Profile (GAP)

Generic Attribute Profile (GATT)

BLE y otras tecnologías

Conclusiones

Bibliografía

Licencia

Objetivos

Bluetooth Low Energy (BLE) es un stack de comunicaciones completo orientado a dispositivos de bajo consumo incluido a partir de la versión v4.0 del Core Bluetooth. En este documento veremos una introducción a BLE abarcando los siguientes temas:

Bluetooth LE

En el año 2010 el Bluetooth SIG presentó el protocolo Bluetooth Low Energy (BLE) dentro del Core Bluetooth, una especificación diseñada para dispositivos de bajo consumo que establecen comunicaciones de corta duración y con un reducido ancho de banda.

El stack BLE es una pila completamente separada del Bluetooth original. A partir de la presentación de BLE se comenzó a nombrar como Bluetooth Classic a los dispositivos que soportan el protocolo original y Bluetooth Smart a los dispositivos que soportan comunicaciones Low Energy.

La presentación del protocolo tuvo gran adopoción por parte de los fabricantes de chips y también por grandes compañías que diseñan sistemas y aplicaciones como Apple y Google; y si bien es un protocolo relativamente joven, actualmente lo podés encontrar en la mayoría de los teléfonos y computadoras modernos.

Este gran auge y soporte hizo que también aparecieran infinidad de aplicaciones y servicios basados en BLE, ya que con sus características orientadas a bajo consumo los dispositivos pueden funcionar a baterías y lograr una gran autonomía. Esto es posible ya que BLE está diseñado para que los dispositivos se encuentren en modo bajo consumo la mayor parte del tiempo, y que solo enciendan su radio y transmitan cuando tengan actualizaciones.

Para que tengas un mejor panorama, en esta imagen podés ver algunas de las aplicaciones, dispositivos e industrias que utilizan BLE.

Como podrás notar la tecnología BLE no solo está orientada a un nicho o industria en particular, sino que es adoptada por diversas industrias y para diferentes casos de uso. Veamos un poco de historia relacionada con BLE.

Historia

El stack de tecnología que hoy conocemos como BLE fue ideado por Nokia y originalmente fue llamado Wibree. Desde un principio la tecnología estaba pensada para comunicar dispositivos con bajo consumo de energía, con comunicaciones de corto alcance y con hardware econímico que permitiera una buena adopción en el mercado.

A partir de estas premisas, y con el objetivo de no reinventar la rueda, el Bluetooth SIG comenzó un proceso de adopoción para incluirlo dentro del Core de Bluetooth, y lo incluyó por primera vez a partir de la versión v4.0.


A partir de su presentación fue muy bien recibido y le fueron agregando mejoras y funcionalidades constantemente. Apalancado por la solidez del protocolo Bluetooth Classic y el gran uso que ya tenía esta tecnología, el original protocolo Wibree, ahora BLE, pasó a estar incluido en la mayoria de los dispositivos de consumo modernos como smartphones, computadoras y smart TVs.

Topología

Un dispositivo Bluetooth Low Energy puede utilizar el mecanismo Advertising o Connections para comunicarse con el mundo exterior; veamos de qué se trata cada una.

Advertising

En este tipo de comunicación un dispositivo emisor (broadcaster) envía paquetes publicitarios no conectables que cualquier dispositivo receptor (observer) puede leer y actuar en consecuncia. Este mecanismo permite enviar datos en un solo sentido, y en la figura siguiente podemos ver cómo se propaga la información.

El broacaster envía periódicamente paquetes publicitarios que cualquier dispositivo puede recibir. Por otro lado, el observer escanea periódicamente frecuencias preestablecidas intentando recibir cualquier paquete publicitario enviado por un broadcaster.

Cada paquete publicitario contiene información acerca del dispositivo emisor, sus capacidades, y también puede incluir información personalizada. El paquete estándar de publicidad tiene una longitud de 31 bytes, y si se necesitan recibir más datos, es posible solicitarle al broadcaster un segundo paquete publicitario, a través de un mecanismo conocido como Scan Request - Scan Response, logrando así una carga útil de 62 bytes.

Las transmisiones de datos son rápidas y sencillas, y es un método útil cuando tenés que publicar información de manera periódica. Tiene una limitación importante en cuestiones de seguridad o privacidad, ya que cualquier observer puede recibir los datos que se transmiten, por lo que no está pensado para que transmitas datos confidenciales.

La tecnología beacons, impulsada inicialmente por Apple, encontró un nicho de aplicación utilizando esta forma de comunicarse.

Connections

Cuando necesitas transmitir datos en ambas direcciones, o requerís más datos de los que pueden admitir los paquetes publicitarios estándar, o necesitas intercambiar datos sensibles, es necesario que uses una comunicación Central-Peripheral.

En esta comunicación se establece un intercambio de datos permanente entre los dispositivos. Dado que es necesaria una vinculación (pairing), la comunicación es privada y ningún otro actor puede acceder a la información.

En este esquema, el dispositivo central (master) escanea periódicamente frecuencias preestablecidas en busca de paquetes publicitarios conectables, y si es necesario inicia una conexión con un peripheral. Una vez que la conexión queda establecida, el dispositivo central gestiona la sincronización y el intercambio de datos.

Por otro lado, el dispositvo peripheral (slave) envía periódicamente paquetes publicitarios conectables y acepta conexiones entrantes. Cuando la comunicación queda establecida, el dispositvo peripheral deja de enviar paquetes publicitarios conectables y comienza a seguir la sincronización y control del dispositivo central.

Esta figura ilustra el esquema de comunicación entre un dispositivo central y un dispositivo peripheral.

Una conexión representa el intercambio periódico de datos entre los dispositivos, y a pesar que el central gestiona la conexión, los datos pueden ser enviados por cualquiera de los dispositivos.

La definición de los roles establece que un dispositivo puede actuar como central y peripheral al mismo tiempo, que un dispositivo central se puede conectar a múltiples peripherals y que un dispositvo peripheral se puede conectar a múltiples centrals.

Mixta

Además de las comunicaciones que vimos, también es posible implementar una topología mixta que permite obtener los beneficios de ambos mecanismos. Esta figura muestra cómo se implementa este método de comunicación.

Obviamente para estos casos es necesario implementar mayor complejidad tanto en software como hardware, pero el uso de la tecnología es tan amplio que a medida que pasa el tiempo van apareciendo nuevas aplicaciones que hacen una utilización cada vez mayor de las  funcionalidades de BLE.

Capas de comunicación

BLE está organizado en capas de manera similar a otras tecnologías, y cada una tiene su responsabilidad para establecer las comunicaciones.

La capa más alta se denomina Application y es responsable de contener la lógica, la interfaz de usuario y el manejo de datos relacionados al caso de uso de la aplicación.

El Host consta de las capas Generic Access Profile (GAP), Generic Attribute Profile (GATT), Logical Link Control and Adaptation Protocol (L2CAP), Attribute Protocol (ATT), Security Manager (SM) y la capa Host Controller Interface (HCI) del lado del host.

El Controller incluye las capas Host Controller Interface (HCI) del lado del controlador, la capa Link Layer (LL) y la capa Physical Layer (PHY).

Veamos primero una imagen que representa esta arquitectura y luego los detalles generales de cada capa.

Physical Layer (PHY)

La capa física contiene los circuitos para modular y demodular las señales. BLE puede comunicarse en más de 40 canales, de los cuales 37 se utilizan para los paquetes del tipo Connection y 3 para el envío de paquetes publicitarios. BLE utiliza la técnica espectro ensanchado de salto cambiando las frecuencias regularmente y el valor del salto se establece en cada nueva conexión, de esta manera se minimiza la interferencia de radio.

Link Layer (LL)

La capa de enlace interactúa con la capa física y define los roles lógicos para los dispositivos. Advertiser es el dispositivo que envía paquetes publicitarios y Scanner el dispositivo que escanea esos paquetes. Master es el dispositivo que inicia y controla una conexión y Slave el dispositivo que acepta una conexión y sigue la sincronización del master. También se encarga del direccionamiento de dispositivos (MAC address), de establecer conexiones, filtrar paquetes publicitarios, administrar el intervalo de conexión, los eventos de conexión y opcionalmente se puede encargar del cifrado de la comunicación.

Host Controller Interface (HCI)

HCI es un protocolo que permite la comunicación entre un host y un controlador a través de una interfaz serie. En la mayoría de smartphones y computadoras el host y la aplicación corren en la CPU principal mientras que el controlador es un hardware separado que se comunica con el procesador mediante UART o USB. El estándar Bluetooth define HCI como el conjunto de comandos y eventos para la interacción de ambas partes (host y controlador).

Logic Link Control and Adaptation Protocol (L2CAP)

La capa L2CAP se encarga de formatear y adaptar mensajes entre capas superiores e inferiores y de la fragmentación y rearmado de paquetes. Para que tengas una idea, en tu aplicación podés tener paquetes de gran cantidad de bytes, y esta capa se encarga de fragmentarlos adecuadamente para que entren dentro de un paquete estándar, y también del proceso inverso.

Security Manager Protocol (SMP) y Attribute Protocol (ATT)

Continuando hacia las capas superiores, la capa L2CAP es la encargada de dar acceso y soporte a los dos protocolos fundamentales para BLE. Por un lado ATT es un protocolo que presenta los atributos de un dispositivo basado en la arquitectura cliente-servidor. Por otro lado, SMP es un protocolo para generar y distribuir claves de seguridad entre los dispositivos.

Generic Access Profile (GAP) y Generic Attribute Profile (GATT)

En el nivel más alto de la capa de protocolos vamos a encontrar las capas GAP y GATT. La capa GAP permite que un dispositivo sea visible y determina cómo puede interactuar con otros dispositivos. Establece distintas reglas para estandarizar las operaciones como los roles de interacción, los modos de operación, y los procedimientos de comunicación y seguridad. La capa GATT define cómo dos dispositivos BLE transfieren información luego de que los dispositivos se hayan conectado utilizando reglas GAP. Llegado a este punto se encuentran en condiciones de transferir datos entre sí.

Organización de perfiles

La capa más alta del stack BLE se basa en perfiles que interactúan con las aplicaciones. Veamos de qué se trata cada uno de estos.

Generic Access Profile (GAP)

La capa GAP es responsable de la conexión. Maneja los modos de acceso, el descubrimiento de dispositivos, el inicio y finalización de enlaces, y las funciones de seguridad y configuración del dispositivo. Veamos la siguiente figura que define su diagrama de estados.

La definición de cada uno de los estados es la siguiente:

Generic Attribute Profile (GATT)

La capa GATT define una estructura jerárquica que representa cómo los dispositivos intercambian información. Es importante que entiendas cómo funciona esta jerarquía porque te facilitará la comprensión de cómo usar el BLE y crear aplicaciones. Podés ver la organización de la estructura en esta imagen.

GATT tiene una estructura anidada, de manera que una entidad contiene a otra como vemos a continuación.

BLE y otras tecnologías

Como primera medida sería natural que comparemos las particularidades de Bluetooth Classic y Bluetooth Low Energy. Ambos stacks son realmente extensos y cado uno requiere de un grado de conocimiento avanzado para poder comprenderlos profundamente. Más allá de eso, podemos establecer algunas vertientes en las que se diferencian ambas tecnologías.

En esta tabla podés ver algunas de las diferencias numéricas entre ambas tecnologías analizando varios aspectos de la comunicación.

También resulta útil que comparemos BLE con otras tecnologías similares, analizando nuevamente distintos aspectos de la comunicación.

Conclusiones

En este artículo abordamos generalidades sobre algunos conceptos relacionados con BLE, y aún quedan afuera temas importantes como la tecnología Beacons basada en BLE o Bluetooth Mesh para crear redes de dispositivos más complejas, por nombrar solo algunos. El protocolo es realmente muy amplio y cada una de sus áreas requiere de un profundo análisis e investigación para poder comprenderla. Para hacer un resumen, hicimos una descripción de los siguientes temas.

Si te interesa la temática, en nuestra web vas a encontrar material relacionado, por lo que te recomendamos explorarla para ampliar tus horizontes.

Bibliografía

Licencia

Este material es distribuido bajo licencia Creative Commons BY-SA 4.0. Podés encontrar detalles sobre el uso del material en este link.