PDF de programación - Soporte Bluetooth en Linux 2.6

Imágen de pdf Soporte Bluetooth en Linux 2.6

Soporte Bluetooth en Linux 2.6gráfica de visualizaciones

Publicado el 21 de Febrero del 2019
455 visualizaciones desde el 21 de Febrero del 2019
240,9 KB
28 paginas
Creado hace 18a (02/08/2005)
Soporte Bluetooth en Linux 2.6

Doctorado URJC: Sistemas Ubicuos

Alvaro del Castillo San Félix

El presente trabajo tiene como objetivo mostrar el estado actual del soporte de Bluetooth en
Linux 2.6. Para ello se introducirá los aspectos principales de la tecnología Bluetooth y se pasará
a mostrar su aplicación en Linux, mostrando especial hincapié en su uso en redes personales
(PAN) y la configuración que permite la transmisión de audio sobre un enlace bluetooth.

Este trabajo se enmarca dentro de la asignatura de Sistemas Ubicuos que se imparte dentro de
los cursos de doctorado de la Universidad Rey Juan Carlos de Madrid.

1. Introducción a la tecnología Bluetooth

Bluetooth es una tecnología de comunicación inalámbrica que define una plataforma estandarizada en la
que destaca el bajo consumo y bajo coste de sus elementos, facilitando una comunicación sin cables
entre dispositivos móviles. Se incluye dentro de la especificación tanto los detalles de como se ha de
llevar a cabo el enlace de comunicación entre los dispositivos, como los detalles de la capa de aplicación
por la que se podrá explotar las funcionalidades de estas comunicaciones.

Bluetooth opera en el rango de radiofrecuencia de los 2.4GHz (2.400-2.4835 GHz) que no requiere
licencia de uso en ningún lugar del mundo. Se guarda una banda de 2 MHz en el comienzo y 3.5 MHz
final del rango para cumplir con las regulaciones de todos los países. Se usa la tecnología de transmisión
de espectro amplio, con salto de frecuencia, señal full-duplex y hasta 1600 hops/s. La señal salta entre 79
frecuencias en intervalos de 1 Mhz para tener un alto grado de tolerancia a las interferencias y obtener
unas comunicaciones robustas. Se dispone de comunicaciones punto a punto y multipunto, donde un
dispositivo puede establecer de forma simultánea hasta 7 canales de comunicación a la vez con una sola
radio.

Todos los dispositivos bluetooth tienen asociada una dirección de 48 bits, algo similar a la dirección
MAC de las tarjetas de red Ethernet.

El ancho de banda que permite Bluetooth es de 1 Mbps en su funcionamiento básico, y de 2/3 Mbps en
modos mejorados en Bluetooth 2.0. Se utiliza modulación GFSK (Gaussian Frecuency Shift Keying)
para el modo básico, y en los modos mejorados se introducen nuevas codificaciones DQPSK y 8-DPSK.

1

Para lograr que la comunicación sea full-duplex se divide el tiempo de transmisión en slots con un
esquema Time-Division Duplex (TDD). La cobertura es de 100 metros para los dispositivos de clase 1
(100 mW), de 20 metros para los de clase 2 (10 mW) y de 10 metros para los de clase 3 (1 mW). Lo
normal es que los dispositivos actuales (año 2005) sean de clase 3.

Soporte Bluetooth en Linux 2.6

1.1. La pila de protocolos de Bluetooth

Para poder realizar las comunicaciones entre los dispositivos Bluetooth es necesario establecer un enlace
de radio entre los dispositivos. Sobre este enlace físico se irán construyendo enlaces lógicos que se
ofrecerán a las aplicaciones para que puedan llevar a cabo las comunicaciones.

Estos enlaces lógicos puede ser punto a punto con tráfico síncrono, asíncrono e isócrono (basado en slots
de tiempo), o enlaces de difusión. El tráfico de los enlaces lógicos se lleva al enlace físico mediante la
asignación de slots de tiempo de transmisión a cada uno de los enlaces lógicos.

Dentro del nivel físico y de banda base existe un protocolo de comunicación entre los dispositivos de una
Piconet conocido como Link Manager Protocol (LMP) que se produce sobre un canal lógico orientado a
conexión asíncrono. Este protocolo es utilizado por la capa de gestión de enlaces (Link Manager) para
controlar como operan los dispositivos de la Piconet, red inalámbrica de hasta ocho dispositivos, y
proporciona servicios para manejar las capas de radio y banda base.

La capa L2CAP está por encima de la de banda base y que se encarga de ofrecen una abstracción de
canales de comunicación a las aplicaciones y los servicios. Lleva labores como fragmentar y ensamblar
paquetes con los datos de las aplicaciones, y la multiplexación de varios canales sobre un enlace lógico
compartido. Un canal L2CAP es una conexión entre dos dispositivos Bluetooth.

Pasamos a entrar con algo más de detalle en cada uno de los niveles de la pila Bluetooth.

La pila que forma Bluetooth para proporcionar todas las funcionalidades es muy similar a la que propuso
OSI en su torre de protocolos de referencia. Veremos que a diferencia de TCP/IP, sube por encima de la
capa de transporte para definir las capas de Sesión y Presentación, dejando un entorno muy definido para
el desarrollo de las aplicaciones. Ello provoca cierta complejidad a la hora de dar soporte hardware a los
entornos Bluetooth, pero que su uso desde las aplicaciones sea sencillo.

2

Figura 1. Pila Bluetooth

Soporte Bluetooth en Linux 2.6

En el nivel de radio se producen todos los mecanismos necesarios para la comunicación por el aire de la
información. Es donde se encuentra el emisor de radio y receptor junto con sus antenas. Es en este nivel
donde se produce la emisión con una determinada potencia de señal según la clase del dispositivo, que
marcará el rango posible de comunicación del dispositivo: 10m, 20m o 100m. Para comunicarse los
dispositivos Bluetooth utilizan un canal de comunicación radio físico compartido a una determinada
frecuencia.

En el nivel de banda base (Baseband) y control de enlace (Link Controller) es donde se fijan los detalles
como el direccionamiento de los dispositivos (48 bits), el reloj y la sincronización entre los dispositivos y
los formatos de los paquetes a transmitir. Los datos son transmitidos en el aire divididos en paquetes con
tres grandes campos: código de acceso, cabecera y datos. El código de acceso se utiliza para indicar el
tipo de operación que se quiere llevar a cabo: acceso a dispositivo, canal o petición de localización. En
este nivel se definen cuatro canales de transporte físicos: dos para las comunicaciones entre dispositivos
de una piconet, uno para descubrimiento (inquiry) y otro para los procedimientos de conexión. Estos
cuatro canales se subdividen en slots de tiempo para multiplexarlos entre todos los dispositivos que
quieran hacer uso de ellos.

3

El gestor de enlaces (Link Manager) se encarga de controlar y configurar los enlaces con otros
dispositivos, una abstracción por encima de los enlaces de transporte lógicos ACL. Por ejemplo en este
nivel dos dispositivos se comunican el tipo de paquetes que soportan, si puede ser o no maestro, si tienen
soporte de medición de la señal de transmisión y control de potencia o los tipos de cifrado a utilizar.

Soporte Bluetooth en Linux 2.6

La capa de interfaz con el controlador del dispositivo radio (Host Controller Interface) ofrece una
interfaz basada en comandos para poder obtener toda la información relativa a las funcionalidades que
ofrece la parte de banda base del dispositivo Bluetooth. Ejemplos son las características del dispositivo
(dirección), los detalles de la piconet de la que forma parte, el estado de las conexiones, los enlaces que
tiene creados ...

Dentro de la capa de control de enlaces lógicos y adaptación (Logical Link Control and Adaptation,
L2CAP) lo que se hace es multiplexar los enlaces que se disponen (ACL) entre todos los módulos que
quieran utilizar los enlaces radio existentes. Además, es responsable de la conversión entre diferentes
tamaños de paquetes y de trabajar con parámetros de calidad de servicio.

RFCOMM ofrece una interfaz de comunicación RS232 como si lo que se tuviera por debajo fuera un
dispositivo serie.

WAP (Wireless Access Protocol) y OBEX (Object Exchange) proporcionan protocolos que se usarán en
capas de aplicaciones para llevar a cabo labores determinadas, como por ejemplo, sincronización de
datos entre dispositivos utilizando el protocolo OBEX.

TCS (Telephony Control Protocol Specification) proporciona una interfaz para el tráfico de audio.

Para terminar, SDP (Service Discover Protocolo) ofrece una interfaz para poder descubrir servicios
Bluetooth en otros dispositivos que se encuentren del rango de alcance del dispositivo.

1.2. Tipos de comunicación en los enlaces Bluetooth

Unos de los objetivos de bluetooth es el de permitir transmitir audio de calidad entre dispositivos, a parte
de poder servir como mecanismo de comunicación de datos entre dispositivos genérico. Para cumplir
ambos objetivos se han definido dos tipos de conexiones: SCO (Synchronous Connection Oriented) y
ACL (Asynchronous Conectionless).

SCO está orientado a tráfico que no se divide en paquetes y que se ha de entregar en tiempo real. Si hay
pérdidas de datos, no se intentará introducir mecanismos de control de error para retransmitir. Este tipo
de conexiones es el que se utiliza para el audio y no pasa por la capa L2CAP. El objetivo es mantener una
latencia constante en el flujo de datos. En SCO se establece un canal bidireccional entre el maestro y el
esclavo punto a punto y el maestro reserva unos slots de tiempo constantes para poder transmitir un flujo
de datos de forma permanente. El ancho de banda que se reserva es de 64 kbps por conexión SCO, y se
pueden tener hasta tres conexiones de este tipo entre el maestro y el esclavo. Por lo tanto a todos los

4

Soporte Bluetooth en Linux 2.6

efectos este tipo de comunicaciones es de conmutación de circuitos, frente a la conmutación de paquetes
de las conexiones ACL. La calidad del audio a 64 kbps se puede acercar a la de GSM pero no es
adecuada por ejemplo para la reproducción de música digital. En caso de requerir mayor ancho de banda
se puede optar por utilizar conexiones ACL y por ejemplo, utilizar mecanismos de buffering para salvar
las latencias, como se ha hecho en la emisiones de audio por Internet. Existe una extensión de SCO
llamada eSCO que tiene la opción de retransmisión de datos.

Veremos un ejemplo de uso de este tipo de comunicaciones cuando veamos el funcionamiento del
sistema de cascos con micrófono bluetooth que comunicare
  • Links de descarga
http://lwp-l.com/pdf15308

Comentarios de: Soporte Bluetooth en Linux 2.6 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad