Arquitectura física de Bluetooth

La arquitectura física de Bluetooth está dividida en dos elementos principales: Host y Controller.

Representación de la arquitectura física de Bluetooth

Controlador Bluetooth

El controlador Bluetooth (Controller) es un “chip”, o conjunto de ellos, con capacidad para transmitir y recibir ondas de radio, y está encargado de realizar las tareas de más bajo nivel de las comunicaciones Bluetooth.

Un controller puede tener soporte para una o más tecnologías Bluetooth. Existen controllers que sólo soportan Bluetooth LE, otros que soportan Bluetooth BR/EDR y otros que soportan operación combinada en ambos modos.

El controller, además de tener el hardware para convertir señales de radio en bits y viceversa, también tiene múltiples responsabilidades a la hora crear, mantener y cerrar conexiones. Las capas inferiores del estándar de Bluetooth están implementadas en el firmware de en estos controladores y estos tienen capacidad de procesamiento de paquetes sin necesidad de que estos paquetes lleguen al Host.

Host

El término Host se refiere al hardware que hace uso de un Controller para poder comunicarse vía Bluetooth. Este Host ha de ejecutar un software o stack que provee una abstracción y permite a las aplicaciones interactuar con dispositivos Bluetooth de manera independiente del hardware del Controller.

El software ejecutado en el Host es responsable de funciones relacionadas con los procesos de descubrimiento y emparejamiento. Algunas de estas funciones son enumerar los dispositivos cercanos, controlar si un dispositivo debe ser descubrible o no, enumerar las capacidades del Host para decidir qué métodos de emparejamiento están disponibles, la intervención durante el proceso de emparejamiento para permitir al usuario confirmar o denegar esta acción o el almacenamiento de claves de emparejamiento en un lugar seguro.

Host Controller Interface o HCI

Host Controller Interface o HCI se refiere al protocolo utilizado para comunicar un Host con un Controller. El protocolo HCI suele delimitar la capacidad que un Host tiene para modificar el comportamiento de un Controller. Superar esta barrera implica la modificación del Controller o la modificación del firmware del Controller.