Establecimiento de conexión Bluetooth, por Raúl Sánchez Vítores

Bluetooth es una tecnología fácil y simple que establece el enlace inalámbrico entre dispositivos de voz y datos a corto alcance, de forma fácil y simple. Pero ¿cómo se consigue la conexión entre dichos dispositivos?, ¿de qué formas se realiza?, ¿qué problemas existen al respecto?. Un interesantísimo artículo de Raúl Sánchez Vítores, Ingeniero Técnico de Telecomunicación.

Actualmente las aplicaciones que se tienen para Bluetooth van desde comunicaciones entre teléfonos celulares, asistentes digitales personales (PDA’s), computadores portátiles, redes inalámbricas de sensores, electrodomésticos inteligentes y distintos terminales de los más variados equipos electrónicos que podrán comunicar y truncar información en movimiento. Las aplicaciones son innumerables. Bluetooth funciona a través de minúsculos transmisores y receptores de radio de corto alcance que son puestos en los aparatos electrónicos directamente o a través de adaptadores. La frecuencia de radio con la que trabaja está en el rango de 2.4 a 2.48 Ghz, banda ISM (Industrial Scientific and Medical), sin necesidad de licencia, quedando así garantizado el carácter global de la especificación. Esta banda se tendrá que ampliar en un futuro cercano dada la gran saturación ya existente junto con la que aún se producirá. Bluetooth cuenta con saltos de frecuencia que le posibilitan transmitir en full dúplex con un máximo de 1.600 saltos/seg. Estos saltos se dan entre un total de 79 frecuencias con intervalos de 1 Mhz. Esto permite brindar seguridad y robustez. La potencia de salida para transmitir a una distancia máxima de 10 m es de 0 dBM (1 mW).

Para lograr alcanzar el objetivo de bajo consumo y pequeño coste, se ideó una solución que se puede implementar en un solo chip utilizando circuitos CMOS. De esta manera, se logró crear un dispositivo de 9 x9 mm que consume aproximadamente el 97% menos de energía que un teléfono celular común. Para la transmisión tanto de voz como de datos, Bluetooth emplea una combinación de conmutación de circuitos y de paquetes. Cada canal de voz soporta un enlace síncrono a 64 Kbps. Para la transmisión de datos se emplean canales asíncronos, cada uno de los cuales puede soportar un enlace asimétrico a 721 Kbps en un sentido y 57.6 Kbps en el otro, o bien un enlace simétrico a 432.6 Kbps en ambos sentidos.

El alcance del sistema es de 10 metros, ampliable a 100 metros aumentando la potencia transmitida. A diferencia de otros sistemas de comunicaciones inalámbricos como los basados en infrarrojos, Bluetooth no requiere que haya línea de visión directa entre los dispositivos. Esto supone un gran avance y amplía mucho sus posibilidades.

Establecimiento de conexión

El hardware que compone el dispositivo Bluetooth está compuesto por dos partes. En primer lugar, un dispositivo de radio, encargado de modular y transmitir la señal; y en segundo lugar un controlador digital compuesto por una CPU (Unidad Central de Proceso), por un Procesador Digital de Señales (DSP) llamado Link Controller (Controlador de Enlace) y por los interfaces con el dispositivo anfitrión.

piconets.jpg
Click para ampliar

El funcionamiento básico de Bluetooth consiste en primer lugar en descubrir otros dispositivos (nodos) y una vez descubiertos elegir un líder, el cual organiza todos los nodos presentes. Estos nodos están distribuidos en una serie de piconets. Una piconet es simplemente un conjunto de dispositivos Bluetooth que consta de un servidor (maestro) y un máximo de 7 clientes (esclavos). El líder organiza las piconets en una scatternet.

Los esclavos no se comunican entre sí, sino solamente a través del maestro. El servidor asigna un tiempo a cada esclavo para evitar colisiones. Además, como se puede observar en la figura 2, las piconets pueden coexistir en el mismo espacio. Cada servidor elige una secuencia de frecuencias pseudo-aleatoria para evitar colisiones con otras piconets.

Por otra parte, también cabe destacar el hecho de que las conexiones pueden ser síncronas o asíncronas, teniendo cada una de ellas unas determinadas características bien diferenciadas.

Las primeras (SCO: Synchronous Connection Oriented link) son conexiones punto a punto entre el maestro y un esclavo, donde se reservan dos slots consecutivos en instantes fijos (un intervalo de tiempo para transmisión y el otro para recepción).

Las segundas (ACL: Asynchronous Connectionless Link) son conexiones punto a multipunto entre el maestro y todos los esclavos, donde se usan los slots restantes de SCO. Aquí, el maestro se encarga de configurar el tráfico. Por último, decir que el SCO soporta conexiones por conmutación de circuitos y son típicamente usados para la transmisión de voz. Como muestra la figura 3, un ejemplo de enlace SCO puede ser la voz entre un teléfono celular y un headset. Por el contrario, ACL soporta conexiones por conmutación de paquetes, y son típicamente usados para transmisión de datos, por ejemplo, entre un ordenador portátil y un teléfono móvil.

fig3.jpg

En el siguiente diagrama (figura 4, fuente: Bluetooth Specification) se ilustran los diferentes estados usados en Bluetooth. El controlador Bluetooth trabaja principalmente en dos estados: Standby y Connection. Existen además siete subestados usados para añadir esclavos o crear conexiones en la piconet. Estos subestados son: Page, Page Scan, Inquiry, Inquiry Scan, Master Response, Slave Response e Inquiry Response. La creación de conexiones en Bluetooth se hace entre dos dispositivos cada vez y se produce en las siguientes dos fases:

• En la primera fase hay que encontrar al otro dispositivo utilizando una secuencia de recorrido de frecuencias global y alternando entre los estados Inquiry (emitir) e Inquiry Scan (escuchar).

• Una vez localizado el otro dispositivo, en la segunda fase se establece la conexión a través del procedimiento Page (emisor original) y Page Scan (destinatario).

controlador.jpg

El presente artículo no pretende explicar los diferentes estados, sino simplemente dar una idea general de la complejidad del proceso. Lo que sí se va a tratar a continuación son los distintos modos de conexión que se pueden establecer, un proceso crítico, que permite que los dispositivos se puedan comunicar entre sí.

Un dispositivo Bluetooth en el estado Connection puede encontrarse en cualquiera de los siguientes cuatro modos: Active, Hold, Sniff y Park.

Modo Active

En el modo activo, la unidad Bluetooth participa activamente en el canal de la piconet. Maestro y esclavo transmiten en slots alternativos. El maestro planifica la transmisión basada en las demandas de tráfico hacia y desde los diferentes esclavos. Además, soporta transmisiones regulares para mantener a los esclavos sincronizados al canal y se realizan varias optimizaciones para ahorrar potencia. Los esclavos activos, que tienen el AM_ADDR (Active Member ADDRess), escuchan en los slots de tiempo maestro a esclavo. Si un esclavo activo no es direccionado, podría dormir hasta la próxima transmisión del maestro.

modoactive.jpg
Click para ampliar

Modo Sniff

Los dispositivos sincronizados a una piconet pueden entrar en uno de los tres modos de ahorro de energía (Sniff, Hold y Park), en los cuales la actividad del dispositivo es menor. En el modo SNIFF, un dispositivo esclavo escucha a la piconet a una tasa reducida, lo que reduce su ciclo de trabajo. El intervalo SNIFF es programable y depende de la aplicación. Tiene el mayor ciclo de vida de los tres modos de ahorro de energía. Los esclavos entran en este modo cuando se lo ordena el maestro o bien si el esclavo así lo requiere, por ejemplo para participar en otra piconet.

modosniff.jpg
Click para ampliar

Modo Hold

En este modo sólo está funcionando un contador interno. Las unidades esclavo también pueden demandar ser puestas en modo HOLD, para tener capacidad libre para hacer otras cosas, como Scan, Page, Inquiry o atender a otra piconet. La transferencia de datos vuelve a comenzar de forma instantánea cuando las unidades abandonan el modo HOLD, instante para el que se ponen de acuerdo maestro y esclavo. Mientras dura este modo, la unidad esclavo guarda su AM_ADDR. Tiene un ciclo de trabajo intermedio entre los tres modos de ahorro de energía. En este modo, los paquetes ACL no son soportados, pero sí lo podrían ser los SCO. Por ejemplo, un teléfono móvil Bluetooth en modo Hold, podría soportar enlaces de voz, pero no de mensajes de texto.

modohold.jpg
Click para ampliar

Modo Park

En el modo PARK, un dispositivo se encuentra aún sincronizado a la piconet pero no participa en el tráfico. Este modo se usa para conectar más de siete esclavos a un único maestro. Tiene el ciclo de trabajo más corto de los tres modos de ahorro de energía, por lo que es un modo de muy baja potencia, ya que el esclavo tiene muy poca actividad. Como se puede observar en la figura 8, el esclavo ya no tiene el AM_ADDR, y en vez de esto recibe el PM_ADDR (8-bit Parked Member ADDRess, que se usa por el maestro para hacer unpark a un esclavo) y el AR_ADDR (8-bit Access Request ADDRess, que lo utiliza el esclavo para preguntar al maestro cómo hacer unpark y salir así de este modo).

modopark.jpg
Click para ampliar

Conclusiones

Lo que hace que Bluetooth sea revolucionario comparado con los sistemas de comunicaciones existentes en la actualidad son fundamentalmente estas tres cosas:

1. Bluetooth hace que se pueda prescindir de los tradicionales y molestos cables empleados para conectar dispositivos digitales entre sí (ordenadores, impresoras, teléfonos móviles…).

2. Permite el establecimiento de grupos cerrados de usuarios de manera dinámica, evitando infraestructuras de redes fijas.

3. Proporciona una interfaz universal que permite la interoperabilidad, gracias al carácter abierto de la especificación. Asimismo, ofrece infinidad de servicios y aplicaciones.

Referencias

http://www.bluetooth.org/docs/Bluetooth_V11_Co re_22Feb01.pdf

http://www.ee.iitb.ernet.in/uma/~aman/bluetooth/tu t3.html

Una curiosidad: De donde viene el nombre BlueTooth?

La historia del nombree de esta especificación es curiosa: es en honor del rey danés Harald Blâtand, que vivió en el siglo X. Su afición a los arándans era tan grande que sus dientes estaban completamente azules. El símbolo del Bluetooth (diente azul en inglés) es una combinación de las “runas” (escritura antigua) de las iniciales del nombre de este Rey

0 0 votos
Article Rating
Subscribe
Notify of
1 Comment
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Anónimo
Anónimo
14 years ago

Hola,
soy nuevo con el api de bluetooth en java y tengo un problema con el uso de la función getFriendlyName().
Cuando le paso como parámetro true, siempre me lanza una excepcion diciendo que no puede conectar, lo cual puedo entender, ya que con el parametro true fuerzo a solicitar el nombre. Sin embargo, si le paso el parametro false, no me lanza ninguna excepcion y me recoge el nombre correctamente, cuando yo pienso que tambien deberia dar el mismo error que con el parametro true, al no tener el nombre e intentar obtenerle.
¿Que puede estar pasando?

Espero pueda ayudarme

1
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x