página(s) : 1/7 (17706 palabras totales en este texto) (29336 Lecturas) 
Java 2 Micro Edition: Soporte Bluetooth
Bluetooth es un estandar de facto global que identifica un conjunto de protocolos que facilitan la comunicación inalámbrica
entre diferentes tipos de dispositivos electrónicos.
Su nombre viene del Rey Vikingo, Harald Bluetooth (940 A.D.-981A.D.),
famoso por su habilidad para la comunicación, y para hacer que
la gente hablara entre ella.
0 Introducción
Bluetooth es una tecnología de radio de corto
alcance, que permite conectividad inalámbrica entre
dispositivos remotos. Se diseñó pensando básicamente
en tres objetivos: pequeño tamaño, mínimo
consumo y bajo precio.
0.1 Nociones sobre Bluetooth
Bluetooth opera en la banda libre de radio ISM
a 2.4 Ghz. Su máxima velocidad de transmisión de datos
es de 1 Mbps. El rango de alcance Bluetooth depende de la potencia
empleada en la transmisión. La mayor parte de los dispositivos
que usan Bluetooth transmiten con una potencia nominal de salida de 0
dBm, lo que permite un alcance de unos 10 metros en un ambiente libre
de obstáculos.
Salto de frecuencia:
Debido a que la banda ISM está
abierta a cualquiera, el sistema de radio Bluetooth deberá
estar preparado para evitar las múltiples interferencias que
se pudieran producir. Éstas pueden ser evitadas utilizando un
sistema que busque una parte no utilizada del espectro o un sistema
de salto de frecuencia.
En
este caso la técnica de salto de frecuencia es aplicada a una
alta velocidad y una corta longitud de los paquetes (1600
saltos/segundo). Con este sistema se divide la banda de frecuencia en
varios canales de salto, donde, los transceptores, durante la
conexión van cambiando de uno a otro canal de salto de manera
pseudo-aleatoria.
Los paquetes de datos están protegido por un esquema ARQ
(repetición automática de consulta), en el cual los
paquetes perdidos son automáticamente retransmitidos.
El canal:
Bluetooth utiliza un sistema FH/TDD (salto
de frecuencia/división de tiempo duplex), en el que el canal
queda dividido en intervalos de 625 µs, llamados slots,
donde cada salto de frecuencia es ocupado por un slot.
Dos o más unidades Bluetooth pueden compartir el mismo canal
dentro de una piconet (pequeña red que establecen
automáticamente los terminales Bluetooth para comunicarse
entre si), donde una unidad actúa como maestra, controlando el
tráfico de datos en la piconet que se genera entre las
demás unidades, donde éstas actúan como
esclavas, enviando y recibiendo señales hacia el maestro.
El salto de frecuencia del canal está determinado por la
secuencia de la señal, es decir, el orden en que llegan los
saltos y por la fase de esta secuencia. En Bluetooth, la secuencia
queda fijada por la identidad de la unidad maestra de la piconet
(un código único para cada equipo), y por su frecuencia
de reloj.
Datagrama Bluetooth:
La información que se intercambia entre dos unidades Bluetooth se
realiza mediante un conjunto de slots que forman un paquete de
datos. Cada paquete comienza con un código de acceso de 72
bits, que se deriva de la identidad maestra, seguido de un paquete de
datos de cabecera de 54 bits. Éste contiene importante
información de control, como tres bits de acceso de dirección,
tipo de paquete, bits de control de flujo, bits para la retransmisión
automática de la pregunta, y chequeo de errores de campos de
cabecera. La dirección del dispositivo es en forma
hexadecimal. Finalmente, el paquete que contiene la información,
que puede seguir al de la cabecera, tiene una longitud de 0 a 2745
bits.

En cualquier caso, cada paquete que se intercambia en el canal está
precedido por el código de acceso. Los receptores de la piconet comparan las señales que reciben con el código
de acceso, si éstas no coinciden, el paquete recibido no es
considerado como válido en el canal y el resto de su contenido
es ignorado.
Piconets:
Como hemos citado anteriormente si un equipo se encuentra dentro del radio
de cobertura de otro, éstos pueden establecer conexión
entre ellos. Cada dispositivo tiene una dirección única
de 48 bits, basada en el estándar IEEE 802.11 para WLAN. En
principio sólo son necesarias un par de unidades con las
mismas características de hardware para establecer un enlace.
Dos o más unidades Bluetooth que comparten un mismo canal
forman una piconet.

Para regular el tráfico en el canal, una de las unidades
participantes se convertirá en maestra, pero por definición,
la unidad que establece la piconet asume éste papel y
todos los demás serán esclavos. Los participantes
podrían intercambiar los papeles si una unidad esclava
quisiera asumir el papel de maestra. Sin embargo sólo puede
haber un maestro en la piconet al mismo tiempo. Hasta ocho
usuarios o dispositivos pueden formar una piconet y hasta diez piconets pueden coexistir en una misma área de
cobertura.
Medios y velocidades:
Además de los canales de
datos, están habilitados tres canales de voz de 64 kbit/s por piconet. Las conexiones son uno a uno con un rango máximo
de diez metros, aunque utilizando amplificadores se puede llegar
hasta los 100 metros, pero en este caso se introduce alguna
distorsión. Los datos se pueden intercambiar a velocidades de
hasta 1 Mbit/s. El protocolo bandabase que utiliza Bluetooth combina
las técnicas de circuitos y paquetes para asegurar que los
paquetes llegan en orden.
Scatternet:
Los equipos que comparten un mismo canal sólo pueden utilizar una
parte de su capacidad. Aunque los canales tienen un ancho de banda de
un 1Mbit, cuantos más usuarios se incorporan a la piconet,
disminuye la capacidad hasta unos 10 kbit/s más o menos. Para
poder solucionar este problema se adoptó una solución
de la que nace el concepto de scatternet.

Las unidades que se encuentran en el mismo radio de cobertura pueden
establecer potencialmente comunicaciones entre ellas. Sin embargo,
sólo aquellas unidades que realmente quieran intercambiar
información comparten un mismo canal creando la piconet.
Este hecho permite que se creen varias piconets en áreas
de cobertura superpuestas.
A un grupo de piconets se le llama scatternet. El
rendimiento, en conjunto e individualmente de los usuarios de una scatternet es mayor que el que tiene cada usuario cuando
participa en un mismo canal de 1 Mbit. Además,
estadísticamente se obtienen ganancias por multiplexación
y rechazo de canales salto. Debido a que individualmente cada piconet
tiene un salto de frecuencia diferente, diferentes piconets
pueden usar simultáneamente diferentes canales de salto.
0.2 Establecimiento de la conexión
La conexión con un dispositivo, se hace mediante un mensage page. Si la dirección es
desconocida, antes del mensaje page se
necesitara un mensage inquiry. Antes
de que se produzca ninguna conexión, se dice que todos los
dispositivos están en modo standby.
Un dispositivo en modo standby se despierta cada 1.28 segundos para escuchar posibles mensajes
page/inquiry. Cada vez
que un dispositivo se despierta, escucha una de las 32 frecuencias de
salto definidas. Un mensaje de tipo page,
será enviado en 32 frecuencias diferentes. Primero el mensaje
es enviado en las primeras 16 frecuencias (128 veces), y si no se
recibe respuesta, el maestro mandará el mensaje page en las 16 frecuencias restantes (128 veces). El tiempo máximo
de intento de conexión es de 2.56 segundos.
En el estado conectado, el dispositivo Bluetooth puede encontrarse en
varios modos de operación:
-
Active mode: En este modo, el dispositivo Bluetooth participa activamente en el canal.
-
Sniff mode: En este modo, el
tiempo de actividad durante el cual el dispositivo esclavo
escucha se reduce. Esto significa que el maestro sólo
puede iniciar una transmisión en unos slots de tiempo determinados.
-
Hold mode:
En el estado conectado, el enlace con el esclavo puede ponerse
en espera. Durante este modo, el esclavo puede hacer otras
cosas, como escanear en busca de otros dispositivos, atender
otra piconet, etc.
-
Park mode:
En este estado, el esclavo no necesita participar en la piconet,
pero aún quiere seguir sincronizado con el canal. Deja de
ser miembro de la piconet. Esto es útil por si hay
más de siete dispositivos que necesitan participar
ocasionalmente en la piconet.
0.3 APIs Java para Bluetooth
0.3.1 Introducción:
Mientras
que el hardware Bluetooth había avanzado mucho, hasta hace
relativamente poco no había manera de desarrollar aplicaciones
java Bluetooth –
hasta que apareció JSR 82, que estandarizó la forma de
desarrollar aplicaciones Bluetooth usando Java. Ésta esconde
la complejidad del protocolo Bluetooth detrás de unos APIs que
permiten centrarse en el desarrollo en vez de los detalles de bajo
nivel del Bluetooth.
Estos APIs para Bluetooth están orientados para dispositivos que
cumplan las siguientes características:
-
Al menos 512K de memoria libre (ROM y RAM) (las aplicaciones necesitan memoria adicional).
-
Conectividad a la red
inalámbrica Bluetooth.
-
Que tengan una implementación
del J2ME CLDC.
0.3.2 JSR 82:
El objetivo de ésta especificación era definir un API
estándar abierto, no propietario que pudiera ser usado en
todos los dispositivos que implementen J2ME. Por consiguiente fue
diseñado usando los APIs J2ME y el entorno de trabajo
CLDC/MIDP.
Los APIs JSR 82 son muy
flexibles, ya que permiten trabajar tanto con aplicaciones nativas
Bluetooth como con aplicaciones Java Bluetooth.
El API intenta ofrecer las siguientes capacidades:
-
Registro de servicios.
-
Descubrimiento de dispositivos
y servicios.
-
Establecer conexiones RFCOMM,
L2CAP y OBEX entre dispositivos.
-
Usar dichas
conexiones para mandar y recibir datos (las comunicaciones de
voz no están soportadas).
-
Manejar y
controlar las conexiones de comunicación.
-
Ofrecer
seguridad a dichas actividades.
Los APIs Java para
Bluetooth definen dos paquetes que dependen del paquete CLDC javax.microedition.io:
-
javax.bluetooth
-
javax.obex
0.3.3 Programación de aplicaciones Bluetooth:
La anatomía de una aplicación Bluetooth está
divididaen cuatro partes:
|