proyecto de fin de máster -...

167
Proyecto de Fin de Máster Máster en electrónica, tratamiento de señal y comunicaciones Orientación Teórico – Experimental “SISTEMA DE INFORMACIÓN Y ORIENTACIÓN PARA DISCAPACITADOS VISUALES BASADO EN ENLACES BLUETOOTH” Autor: Ing. Luis Esteban Marsal Pederzani. Tutor: Dr. Federico José Barrero García. Universidad de Sevilla, Escuela Superior de Ingenieros, Departamento de Ingeniería Electrónica. Diciembre – 2010

Upload: phamhanh

Post on 04-Oct-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Proyecto de Fin de Máster

Máster en electrónica, tratamiento de señal y comunicaciones

Orientación Teórico – Experimental

“SISTEMA DE INFORMACIÓN Y ORIENTACIÓN PARA

DISCAPACITADOS VISUALES BASADO EN ENLACES BLUETOOTH”

Autor: Ing. Luis Esteban Marsal Pederzani.

Tutor: Dr. Federico José Barrero García.

Universidad de Sevilla,

Escuela Superior de Ingenieros,

Departamento de Ingeniería Electrónica.

Diciembre – 2010

i

Quisiera expresar profundo agradecimiento a todas las personas que han colaborado

en todos estos años a mi formación personal, académica y profesional. Fruto de tantos

consejos y apoyo, es este Proyecto de Fin de Máster que espero sea útil a muchas

personas.

A mi familia que está siempre presente, que me brinda su incansable su apoyo y sostén.

A Federico Barrero y Sergio Toral, que me han recibido de brazos abiertos, por sus

consejos, sus orientaciones y sus oportunos tirones de oreja (esos son de Fede).

A Enrique Vargas, por brindarme una excelente formación durante la carrera y

haberme dado la oportunidad de viajar hasta aquí para realizar este trabajo.

A David Ismajovich, Alfredo Steinmann, Padre Silvio Suárez y Rigoberto Pérez, por sus

consejos, su confianza y sus incesantes palabras y muestras de apoyo.

A Joel Prieto, José Riveros y Blas Bogado, por su amistad, su apoyo y por hacerme sentir

no tan lejos de nuestra Patria.

A José María Hinojo, Francisco Cortés Martínez, Porfirio Miguel, Diego Medina y Derlis

Orlando Gregor, amigos y compañeros de trabajo de Sevilla, con quienes tengo el

placer de compartir el día a día, por todo lo que me han enseñado.

A todos mis amigos, que me han demostrado que el tiempo y la distancia no son

obstáculos para los sentimientos profundos y que están siempre presentes.

A todos los profesores de la Universidad Católica “Nuestra Señora de la Asunción” y de

la Universidad de Sevilla, quienes me han ofrecido una excelente formación.

ii

Índice

1. CAPÍTULO 1 INTRODUCCIÓN .................................................................................................. 1

1.1. ANTECEDENTES Y JUSTIFICACIÓN ...................................................................................... 1

1.2. OBJETIVOS DEL TRABAJO ................................................................................................... 3

1.2.1. OBJETIVOS GENERALES .................................................................................................... 3

1.2.2. OBJETIVOS ESPECÍFICOS ................................................................................................... 3

2. REVISIÓN DEL ESTADO DEL ARTE ........................................................................................... 4

2.1. INTRODUCCIÓN .................................................................................................................. 4

2.2. TECNOLOGÍA PARA DISCAPACITADOS VISUALES ............................................................... 4

2.3. TECNOLOGÍA INALÁMBRICA PARA LA TRANSMISIÓN DE DATOS ..................................... 10

2.3.1. BLUETOOTH ................................................................................................................ 10

2.3.2. ZIGBEE ....................................................................................................................... 11

2.3.3. RFID ......................................................................................................................... 12

2.3.4. ULTRA WIDE BAND ....................................................................................................... 14

2.3.5. WI-FI ......................................................................................................................... 15

2.3.5.1. 802.11a ................................................................................................................ 15

2.3.5.2. 802.11b ............................................................................................................... 16

2.3.5.3. 802.11g ................................................................................................................ 16

2.3.5.4. 802.11n ............................................................................................................... 17

2.3.6. WIMAX ..................................................................................................................... 18

2.4. COMPARATIVA ................................................................................................................. 19

2.5. ELECCIÓN TECNOLÓGICA ................................................................................................. 23

3. BLUETOOTH COMO TECNOLOGÍA INALÁMBRICA ................................................................. 25

3.1. INTRODUCCIÓN ................................................................................................................ 24

iii

3.2. DESCRIPCIÓN GENERAL .................................................................................................... 24

3.3. ARQUITECTURA BLUETOOTH ........................................................................................... 27

3.3.1. RADIO ........................................................................................................................ 28

3.3.2. BANDA BASE ............................................................................................................... 29

3.3.2.1. Canales físicos ..................................................................................................... 30

3.3.2.2. Enlaces físicos ...................................................................................................... 33

3.3.2.3. Transportes lógico ............................................................................................... 34

3.3.2.4. Enlaces lógicos..................................................................................................... 35

3.4. CÓDIGO DE ACCESO ......................................................................................................... 36

3.5. OPERACIÓN DEL CONTROLADOR DE ENLACES ................................................................. 38

3.6. LMP .................................................................................................................................. 46

3.7. MODOS DE OPERACIÓN ................................................................................................... 48

3.8. HCI .................................................................................................................................... 50

3.8.1. COMANDOS HCI .......................................................................................................... 51

3.9. L2CAP ............................................................................................................................... 52

3.9.1. MODO DE OPERACIÓN DE L2CAP .................................................................................... 55

3.10. PERFILES ........................................................................................................................... 57

3.11. RFCOMM .......................................................................................................................... 59

3.11.1. SEÑALES DE CONTROL .................................................................................................... 61

3.11.2. EMULACIÓN MÓDEM-NULL ........................................................................................... 61

3.11.3. PUERTO SERIE EMULADO ................................................................................................ 61

4. DESCRIPCIÓN DEL SISTEMA ................................................................................................... 64

4.1. INTRODUCCIÓN ................................................................................................................ 63

4.2. SERVICIOS ......................................................................................................................... 63

4.2.1. SERVICIO DE INFORMACIÓN ............................................................................................ 64

iv

4.2.2. SERVICIO DE ORIENTACIÓN ............................................................................................. 64

4.2.3. SERVICIO DE LOCALIZACIÓN ............................................................................................. 65

4.2.4. SERVICIO DE ALERTA ...................................................................................................... 65

4.3. HARDWARE DEL SISTEMA ................................................................................................ 66

4.4. SOFTWARE DEL SISTEMA ................................................................................................. 66

4.5. PARTICULARIDADES DEL SISTEMA PROPUESTO ............................................................... 68

5. HARDWARE DEL SISTEMA ..................................................................................................... 73

5.1. INTRODUCCIÓN ................................................................................................................ 72

5.2. BALIZA PRINCIPAL ............................................................................................................ 72

5.2.1. BEAGLE BOARD ............................................................................................................ 73

5.2.2. MOPS-PM ................................................................................................................ 73

5.2.3. PM-LX Y PM-GX ........................................................................................................ 74

5.3. COMPARACIÓN ENTRE ALTERNATIVAS DE ELEMENTOS FIJOS ........................................ 75

5.4. BALIZA DE LOCALIZACIÓN ................................................................................................ 75

5.4.1. MICROCONTROLADOR ATMEGA 8 ................................................................................. 76

5.4.2. MÓDULO BLUETOOTH BLUEGIGA WT12 .......................................................................... 78

5.4.3. CONFIGURACIÓN DEL MÓDULO ........................................................................................ 80

5.5. HARDWARE DEL MÓVIL.................................................................................................... 82

5.5.1. OPENMOKO ................................................................................................................ 82

5.5.2. NANOLIAB ................................................................................................................... 83

5.5.3. LIMESTONE ................................................................................................................. 84

5.6. COMPARACIÓN ENTRE ALTERNATIVAS DE MÓVILES ....................................................... 85

5.7. LA PLATAFORMA OPENMOKO ......................................................................................... 85

5.8. HARDWARE DESARROLLADO ........................................................................................... 87

6. SOFTWARE DEL SISTEMA ...................................................................................................... 90

6.1. INTRODUCCIÓN ................................................................................................................ 89

v

6.2. SISTEMA OPERATIVO ........................................................................................................ 89

6.3. DISTRIBUCIONES LINUX .................................................................................................... 90

6.3.1. DEBIAN ...................................................................................................................... 91

6.3.2. UBUNTU ..................................................................................................................... 91

6.3.3. FEDORA ...................................................................................................................... 92

6.3.4. GENTOO ..................................................................................................................... 92

6.3.5. DAMN SMALL LINUX ..................................................................................................... 93

6.3.6. LFS (LINUX FROM SCRATCH) .......................................................................................... 93

6.4. DISTRIBUCIÓN DE LA BALIZA PRINCIPAL .......................................................................... 94

6.5. DISTRIBUCIÓN DEL CLIENTE ............................................................................................. 95

6.5.1. DISTRIBUCIONES COMUNITARIAS ..................................................................................... 95

6.5.2. DISTRIBUCIONES NO OFICIALES ........................................................................................ 95

6.6. APLICACIONES DE LA BALIZA PRINCIPAL .......................................................................... 96

6.6.1. APLICACIÓN PRINCIPAL .................................................................................................. 97

6.6.2. BUSCA_CLIENTES .......................................................................................................... 98

6.6.3. PASARELA ................................................................................................................... 99

6.6.4. SERVIDOR WEB ........................................................................................................... 100

6.6.5. MANEJO DE LISTAS...................................................................................................... 101

6.7. APLICACIONES DEL ELEMENTO MÓVIL .......................................................................... 101

6.7.1. APLICACIÓN PRINCIPAL ................................................................................................ 102

6.7.2. HTML_GET ................................................................................................................ 103

6.7.3. ESCRITORIO SONORO .................................................................................................. 103

6.7.4. ANALIZADOR XML (PARSER) ......................................................................................... 103

6.7.5. REPRODUCTOR DE AUDIO ............................................................................................. 104

6.8. COMUNICACIÓN CON EL OPENMOKO ........................................................................... 105

6.9. HERRAMIENTAS DE COMPATIBILIDAD (TOOLCHAINS) ................................................... 105

vi

6.10. SÍNTESIS DE VOZ HUMANA ............................................................................................ 106

6.10.1. ESPEAK ..................................................................................................................... 107

6.10.2. FESTIVAL ................................................................................................................... 107

6.10.3. FLITE ........................................................................................................................ 108

6.11. PROGRAMACIÓN PARALELA........................................................................................... 108

6.11.1 TÉCNICAS MULTITHREAD .............................................................................................. 109

7. PRUEBAS Y APORTACIONES ................................................................................................ 115

7.1. NTRODUCCIÓN ............................................................................................................... 114

7.2. PRUEBAS CON LOS DISPOSITIVOS BLUETOOTH ............................................................. 114

7.2.1. Modos de detección de dispositivos .................................................................... 114

7.2.2. TIEMPOS DE BÚSQUEDA DEL CICLO INQUIRY ..................................................................... 116

7.3. PRUEBAS DE FUNCIONAMIENTO DEL SISTEMA ............................................................. 116

7.4. APORTACIONES .............................................................................................................. 119

8. CONCLUSIONES ................................................................................................................... 122

8.1. INTRODUCCIÓN .............................................................................................................. 120

8.2. CONCLUSIONES .............................................................................................................. 120

8.3. FUTUROS TRABAJOS ....................................................................................................... 123

A1. PUBLICACIONES Y APORTES ................................................................................................. 122

REFERENCIAS ............................................................................................................................. 156

1

1.

1.1. Antecedentes y justificación

La visión es uno de los sentidos más importantes que poseemos, ya que gran parte de

los mecanismos de enseñanza se basan en este sentido. Entre el 80 y el 90% de la

información necesaria para nuestra vida cotidiana implica el órgano de la visión [1].

Esto implica que la visión juega un papel predominante en la adquisición de nuestras

habilidades, conocimientos y en las actividades que desarrollamos a lo largo de

nuestra vida, adquiriendo un rol central en la autonomía y desenvolvimiento de las

personas desde muy temprana edad.

El término discapacidad visual se refiere a la carencia, disminución o defectos en la

visión, englobando a las personas que padecen tanto de ceguera como de cualquier

deficiencia visual. Indiscutiblemente la discapacidad visual se refleja en todos los

campos de la vida y son muchos los problemas que encuentran las personas con

discapacidad visual para realizar procesos que podríamos considerar sencillos y

rutinarios [2], tales como salir a la calle o realizar las tareas domésticas. Tampoco

podemos olvidarnos de la necesidad de desplazarnos, acción que es una parte integral

de nuestra vida diaria y en la que la visión juega un rol crítico, ya que además de poder

procesar rápidamente la gran cantidad de información que recibe, nos ofrece

información sobre la distancia. Cuando hablamos de desplazamiento, la distancia es

sinónimo de anticipación, de capacidad de analizar previamente la trayectoria del

recorrido, lo que proporciona al individuo la capacidad de ser proactivo a través de la

prevención de obstáculos o identificar el borde de las aceras o las escaleras antes de

llegar a ellas. El discapacitado visual debe obtener esta información de los otros

sentidos, principalmente de la audición y del tacto. La audición ayuda a los

discapacitados visuales a obtener información sobre el ambiente y provee información

acerca de objetos con los cuales no tienen contacto directo. Por ejemplo, una persona

2

que entra en una habitación, puede determinar si ésta es grande o pequeña usando el

sonido reflejado, o también puede darse cuenta que ha llegado al cruce de dos pasillos

por la ausencia del sonido reflejado en la unión entre ambos. Los sonidos también

ayudan a localizar sitios, tales como plazas, escuelas o, más concretamente, sitios

seguros donde atravesar una calle. El tacto, por su parte, ayuda a diferenciar

superficies; la grava de la hierba, la inclinación o declinación de un camino.

Aunque las personas con discapacidad visual pueden tener menos volumen de

información disponible, con respecto a la velocidad y la distancia, en general, la

información auditiva y táctil disponible, es suficiente para un viaje seguro e

independiente. No obstante, según estudios realizados por la Organización Mundial de

la Salud (OMS) en 2009, en el mundo hay 314 millones de personas con discapacidad

visual, de las cuales 45 millones con ciegas [3] y el 75% de ellas han declarado que

necesitan asistencia diaria para desplazarse [4]. Cuando se trata de desplazamientos, la

dependencia puede ser muy crítica [2] y es aquí donde entran a desempeñar un papel

importante la ayuda de bastones, los perros guías o los dispositivos electrónicos. Los

discapacitados visuales, por lo general, pueden recordar el camino a un número

limitado de lugares, pero el miedo a lugares desconocidos reduce drásticamente su

movilidad. La situación se torna más crítica en el caso de ir a destinos desconocidos o

muy concurridos, tanto de personas como de automóviles, y es aquí donde las

limitaciones de los elementos de ayuda tradicionales se tornan evidentes. Por ejemplo,

el bastón sólo puede alertar sobre obstáculos que están a pocos metros de distancia y

por debajo de la cintura.

Los discapacitados visuales deben salvar dos grandes retos para realizar un

desplazamiento seguro e independiente, que son el acceso a la información impresa y

los factores de estrés, relacionados con una navegación segura y eficiente [5]. Estas

limitaciones se tornan más evidentes cuando hablamos de la necesidad de utilizar el

transporte público [6], ya que la información no está disponible desde el inicio del

viaje. Por lo tanto, una persona con discapacidad visual no puede saber, a priori, qué

autobús puede acercarlo a un sitio en concreto, ni puede planificar de antemano su

recorrido [7]. Si a todo esto le sumamos la poca información contextual sobre el viaje

que realiza, se torna más difícil su orientación y su posicionamiento dentro del

recorrido que está realizando. En este ámbito, se han hecho numerosos esfuerzos y se

han diseñado muchas soluciones para cubrir las necesidades de las personas con

discapacidad visual, tanto para metros [8] como para buses urbanos [7], soluciones

que se pueden extrapolar a otros medios de transporte público.

En el presente trabajo se aborda el diseño y la puesta en marcha de un sistema de

información y orientación para discapacitados visuales. El sistema desarrollado amplía

la plataforma electrónica de accesibilidad que se presentó como proyecto de fin de

3

carrera, para la obtención del título de grado en Ingeniería Electrónica en la

Universidad Católica “Nuestra Señora de la Asunción” de la República del Paraguay. En

este trabajo se han incluido nuevos servicios, además de loas meramente informativas

ya descritas en mi proyecto de fin de carrera, como la orientación hacia lugares de

interés y un sistema de aviso, que denominamos localización, que emite sonidos no

verbales para indicar a los usuarios que ha llegado a un destino preestablecido. El

incorpora mensajes para avisar a los usuarios sobre posibles peligros como zanjas,

escaleras, pisos mojados, etc., e incorpora prestaciones para guiar de manera sencilla

al discapacitado.

El sistema que se presenta se ha desarrollado dentro de un proyecto de investigación

financiado por el Gobierno de España. El proyecto, titulado “Fénix: I+D de pulsera de

localización permanente y plataformas TIC para proteger a las mujeres maltratadas” se

trata de un proyecto concedido en 2008 por la Secretaría de Estado de

Telecomunicaciones y para la Sociedad de la Información del Ministerio de Industria,

Turismo y Comercio (referencia TSI-020302-2008-21), con una duración estimada de

18 meses.

1.2. Objetivos del trabajo

1.2.1. Objetivos generales

Proveer a los discapacitados visuales la información que no pueden obtener.

Aumentar la independencia y autonomía de la personas con discapacidad

visual.

Analizar las distintas tecnologías referentes a la ayuda a discapacitados

visuales.

1.2.2. Objetivos específicos

Desarrollar un nuevo hardware necesario para el sistema.

Desarrollar el nuevo software para los elementos del sistema.

Modificar el software de los elementos del sistema.

Incorporar el servicio de localización.

Incorporar el servicio de orientación.

4

2.

2.1. Introducción

El auge de las tecnologías de la información y las comunicaciones (TIC) ha propiciado

un cambio sustancial a la hora de producir, gestionar y acceder a la información para

discapacitados visuales. Desde el bastón blanco y los perros guías hasta el uso de

wearable computers, numerosas y variadas pesquisas se han hecho para desarrollar

nuevas y mejores herramientas de ayuda para los discapacitados visuales. Por otra

parte, el progreso de las tecnologías inalámbricas ha desempeñado un papel

importante, brindando nuevas formas de transmisión de datos a tasas y precios

razonables. Por todo esto, en este capítulo se presenta una revisión de los dispositivos

actuales de ayuda para discapacitados, así como de las comunicaciones inalámbricas,

para conocer el estado del arte en este tipo de sistemas.

2.2. Tecnología para discapacitados visuales

A lo largo del tiempo se han realizado numerosos esfuerzos para facilitar el acceso a la

información a los discapacitados visuales. Dídimo de Alejandría (311 - 358), apodado el

ciego por razones obvias, desarrolló un procedimiento de lectura y escritura basado en

un conjunto de piezas de marfil con letras en relieve que fue ampliamente utilizado

por los invidentes para formar palabras y frases. El primer gran hito en la lecto-

escritura para discapacitados visuales llega con Louis Braille, conocido por el sistema

que lleva su nombre y que consiste en el desarrollo de un sistema que representa un

carácter empleando una serie de puntos en relieve. Si bien él no inventó el sistema, ya

que se basa en un sistema ideado con fines militares por Charles Barbier de la Serre y

5

publicado en 1822. Louis Braille a los 16 años (1825) reduce el complejo sistema de

Barbier de 12 a 6 puntos, ordenándolos en dos columnas y tres filas, lo que permitió

representar todas las letras del alfabeto, signos de ortografía, numeración y caracteres

aritméticos. En 1878 se reconoce oficialmente el braille como método universal por su

probada utilidad didáctica [9].

Desde el punto de vista de la informática, también se han realizado nuevos y variados

dispositivos con el fin de adaptar los ordenadores a las necesidades de los usuarios con

discapacidad visual, para hacer más accesible la información y mitigar las barreras que

silenciosamente se han ido levantando para el colectivo de discapacitados visuales

conforme ha ido evolucionando la tecnología. Son muchos los dispositivos que se han

ido adaptando a los discapacitados visuales para interactuar con el ordenador, tanto

software como hardware. A continuación mostraremos algunos [10].

Anotador braille o portátil. Los datos son introducidos al ordenador mediante

el sistema braille de 8 puntos (adaptado al sistema ASCII), que abarca mayor

número de caracteres que el braille estándar. El propio ordenador se encarga

de traducir esta información a código ASCII. La información almacenada en el

dispositivo puede ser leída posteriormente mediante dispositivos de salida

como la línea braille, impresora braille, sintetizadores de voz o un programa de

amplificación de pantalla. Ejemplos: Braille’n speak y PAC Mate BX400.

Display braille. Proporcionan una salida táctil de la información representada

en la pantalla del ordenador. Estos aparatos transmiten la información

reflejada en la pantalla al usuario, usando caracteres braille situados en una

línea de veinte hasta ochenta ocurrencias según el modelo y cuentan con un

teclado propio para interaccionar con el operador, mediante el cual se pueden

realizar tanto lectura, como la identificación de contenidos de la visualización.

Impresoras braille. Generan documentos en formato braille para su lectura

mediante el tacto. La impresión se realiza directamente sin tener que cambiar

el formato del documento escrito, debido a que existen programas que

traducen los textos del formato estándar ASCII a braille. Ejemplos: Braille

Everest, Braille Blazer, PortaThiel y VersaPoint Duo.

Lectores de pantalla. Se utilizan para verbalizar o hablar, leen todo lo que se

encuentre en la pantalla, incluyendo nombres y las descripciones de los

botones, menús, textos, signos de puntuación, etc. Ejemplos: Hal para

Windows en español, Windows-Eyes, Open Book y JAWS para Windows.

Libros hablados digitales. Otro método de lectura para las personas invidentes

son los libros grabados en lenguaje SMIL o DAISY, que combinan texto

propiamente dicho (accesible mediante ampliación de imagen, voz sintética e

incluso Braille) sonido, videos, gráficos e incluso el texto grabado con voz

humana. Ejemplo: PLexTalk.

6

Línea braille. El sistema traduce en códigos táctiles los contenidos de los textos

y proporciona a la persona invidente un renglón escrito en braille por medio del

cual es posible la lectura táctil, puesto que es reproducida en relieve braille, de

lo que un ordenador emite y que va apareciendo en la pantalla. Ejemplos: Línea

ECO-BRAILLE 80, Focus 40-80 Braille Display y PowerBraille Display.

Magnificadores de pantalla. Ayudan a las personas con graves deficiencias en la

visión, puesto que actúan como una lente de aumento. Pueden agrandar una

parte de la pantalla ampliando la legibilidad. Algunos permiten realizar

aumentos y decrementos de zoom. Ejemplos: BigShot, Lupe, ZoomText y

Magic.

Navegadores de Internet. Existen navegadores de Internet especializados que,

normalmente, combinan voz y ampliación de imagen, y que facilitan la lectura

de los textos, la búsqueda rápida de enlaces y otros elementos en una misma

página, el uso del correo electrónico y la lectura de las descripciones de los

gráficos, en caso de que hayan sido introducidas por el diseñador de la página.

Ejemplos: WebSpeak, Opera, IBM Home Page Reader y Lynx.

Procesadores de texto. Aquí se pueden encontrar procesadores de texto

parlantes, que emplean sintetizadores de voz para repasar el texto escrito, o

bien procesadores de texto con grandes tamaños de fuente

(independientemente de los ampliadores de pantalla).

Sintetizadores de voz. Reciben la información dirigida a la pantalla en forma de

secuencia de caracteres y la reproducen imitando una voz. Este proceso se

llama linearización de la información. Ejemplos: PcVoz, SodelsCot, ELOQUENCE,

ORPHEUS, CIBER232P y Apollo2.

Sistemas de reconocimiento de voz (software). Permiten al usuario dar órdenes

e introducir datos utilizando la voz en lugar del teclado y el ratón. Ejemplos:

Naturally y Speaking.

También desde el punto de vista electrónico se han estudiado nuevas formas y

sistemas de ayuda para este colectivo de personas. Desde la adopción del bastón

blanco en 1940 [11], infinidad de dispositivos electrónicos han sido creados para

complementar o reemplazar el bastón blanco con dispositivos electrónicos para ayudar

a evitar obstáculos. Los primeros dispositivos electrónicos desarrollados para

discapacitados visuales se desarrollaron después de la Segunda Guerra Mundial y más

que nada eran detectores de obstáculos. Utilizaban ondas para detectar obstáculos y

alertar al usuario sobre obstáculos cercanos (radar y ultrasonidos) [12] [13].

Posteriormente, se ha seguido esta línea empleando otros métodos de detección, tales

como el láser [14].

Más recientemente se ha investigado más profundamente en las necesidades de

movilidad de los discapacitados visuales, ya que la simple detección de obstáculos no

7

es suficiente para su correcto desplazamiento. Aparece un nuevo paradigma en el

abanico de equipos tiflotecnológicos que es el de la navegación, que engloba la

orientación y localización [15] [16]. Una propuesta reciente en esta línea fue la de

incorporar identificadores de ubicación a lo largo de lugares de concurrencia de

discapacitados visuales. Los sistemas Talking Sings y Verbal Landmark son ejemplos de

este paradigma.

Con el advenimiento del GPS, numerosos diseños tiflotecnológicos se han desarrollado

[17] [18] [19] a partir de la alta precisión posicional, cobertura extensa de la señal y su

disponibilidad inmediata y gratuita que ofrece la tecnología GPS. El Sistema de

Posicionamiento Global (GPS) y su equivalente ruso (GLONASS) son ampliamente

utilizados para aplicaciones de posicionamiento, incluyendo la navegación.

Luego aparecen los dispositivos que implementan visión artificial, realidad aumentada

y modelos virtuales en 3D, algunos ejemplo se pueden ver en [20] [21]. Uno de los

problemas aún presente este tipo de sistemas es que funcionan bajo determinadas

condiciones ambientales, sobre todo de luminosidad.

En la Tabla 2.1 se resumen las principales características de algunos dispositivos

diseñados para la orientación y navegación para discapacitados visuales.

8

Dispositivo Transductor de

entrada Tipo de salida

generada Información transmitida

Ubicación / Tipo de dispositivo

Requerimiento de infraestructura

especial

Ambiente de operación

Desarrollador

BAT ‘K’ Sonar Cane Sonar Acústico Presencia de obstáculos

Montado en el bastón

No Interiores y exteriores

Bay Advanced Technologies

Kaspa Sonar Acústico Imágenes acústicas de objetos (hasta 5

m)

Montado en la cabeza del usuario

No Mayormente

exteriores Bay Advanced Technologies

Sonic Path-finder Sonar Acústico 8 tonos diferentes de acuerdo con la distancia al objeto

Montado en la cabeza del usuario

No Mayormente

exteriores Perceptual

Alternatives

Mini-guide Sonar Acústico y táctico Distancia a objetos

(0,5 a 8 m) Dispositivo de mano No

Mayormente exteriores

GDP Research [Miniguide]

UltraCane Sonar Acústico y táctico Distancia a objetos

(1 a 4 m) Montado en el

bastón No

Interiores y exteriores

Sound Foresight

Nurion Laser Cane Láser Acústico y táctico Distancia de los

objetos (hasta 4 m) Montado en el

bastón No

Interiores y exteriores

Nurion-Raycal

vOICE Cámara Acústico y táctico Imagen sonora de múltiples objetos

Dispositivo de mano o montado en la

cabeza del usuario No

Interiores y exteriores

Peter Meijer [peter]

BrailleNote GPS Acústico y Braille

Dirección y distancia a los puntos de

interés, planificación de rutas y modo de navegación virtual

PDA con GPS Presencia de señal

GPS Exteriores SenderoGroup

Personal Guidande System (PGS)

GPS Acústico Dirección y distancia a objetos, rutas de

navegación

Receptor GPS, brújula y notebook

Presencia de señal GPS

Exteriores UCSB Personal

Guidance System

Talking Signs Infrarrojos Acústico Dirección y

localización de marcas

Dispositivo de mano Transmisores Talking-Sign

Interiores y exteriores

Talking Signs

Digital Sign System (DSS)

Infrarrojos Acústico Localización y

puntos de interés cercanos

Dispositivo de mano Marcas Interiores Tjan et al.

NOPPA GPS, GPRS Bluetooth

Acústico (voz) Horarios de transportes,

direcciones, noticias

Dispositivo de mano, receptor GPS

Balizas Bluetooth, señal GPS, servicio de telefonía (GPRS)

Interiores y exteriores

Ministerio de transporte y

comunicaciones (Finlandia)

Drishti GPS, ultrasonido,

Wi-Fi Acústico (voz)

Localización, guiado e información

contextual

Ordenador, receptor GPS, head set

Emisor ultrasonidos, red Wi-Fi, señal GPS

Interiores y exteriores

Universidad de Florida

9

Tabla 2.1. Principales características de algunos dispositivos diseñados para la orientación y navegación para discapacitados visuales.

Dispositivo Transductor de

entrada Tipo de salida

generada Información transmitida

Modo de operación Requerimiento de

infraestructura especial

Ambiente de operación

Desarrollador

Sypole Cámara Acústico (voz)

Descripción de objetos, de colores,

de billetes. Calendario,

calculadora y otros

Procesamiento de imágenes en un

móvil o PDA Ninguna

Interiores y exteriores

Facultad Politécnica de Mons (Bélgica)

Perseus Cámaras y GPS Acústico (voz) Información sobre

obstáculos Indicaciones de un operador remoto

Wi-Fi, operador remoto

Mayormente interiores

Universidad Técnica de República Checa

en Praga

Radio Virgilio Sesamonet

RFID Acústico (voz) Orientación

absoluta y relativa

Información almacenada en la SD

del teléfono

Lector de Tags RFID, Base de datos

Interiores y exteriores

Universidad Sapienza e ISPRA

(Italia)

TUGS Cámaras y GPS Vibraciones Dirección de movimiento

Prenda de vestir con 5 vibradores que

indican las direcciones

Operador remoto Interiores y exteriores

Universidad de Brunel

MoBIC GPS, brújula Acústico (voz) Navegación, rutas

planeadas

Asistente de navegación le va

indicando la ruta a seguir

Señal GPS Interiores y exteriores

Consorcio MoBIC

RAMPE Comandos de voz

(sintetizador) Acústico (voz)

Horario del transporte público

Mediante la red Wi-Fi se alerta al

usuario de las paradas

Wi-Fi Exteriores

EISEE, Universidad de París V René

Descartes y LUMIPLAN

Transantiago Interfaz de usuario Acústico (voz) Información de

contexto dentro del viaje por bus

El usuario avanza manualmente por

las estaciones y recibe información

de contexto

Ninguna Exteriores Universidad de Chile

10

2.3. Tecnología inalámbrica para la transmisión de datos

En la actualidad, el número de tecnologías inalámbricas utilizadas en los sistemas de

localización para discapacitados visuales es muy elevado. Los sistemas pensados para

exteriores se diferencian de los interiores. En los primeros, el sistema de

posicionamiento global, conocido por sus siglas en inglés GPS (Global Positioning

System), se ha establecido como el estándar de referencia debido a la precisión que es

capaz de conseguir cuando el receptor tiene visión directa con varios satélites de

forma simultánea.

No obstante, para localización y posicionamiento en interiores, la señal GPS carece de

utilidad; puesto que el techo de los edificios así como las paredes consiguen apantallar

la señal y, por tanto, el receptor no es capaz de sincronizarse con la red de satélites y

brindar una lectura fiable de la posición.

A la hora de transmitir datos, se ha recurrido a muchas tecnologías inalámbricas como

puede ser ZigBee, Bluetooth o Wi-Fi. Cada una de ellas presenta una serie de ventajas

e inconvenientes que las hacen tener mayor o menor validez. En consecuencia, la

elección tecnológica deberá depender de los requisitos de la aplicación en concreto, es

decir, se debe hallar una relación de compromiso entre el precio, el consumo de

energía y el ancho de banda que es capaz de brindar.

A continuación veremos brevemente las diferentes tecnologías implicadas en varios

proyectos a fin de estimar y justificar el uso de una de ellas.

2.3.1. Bluetooth

Se corresponde con un estándar de comunicaciones inalámbricas basado en

radiofrecuencia, de bajo coste y bajo consumo energético [22]. Originariamente, en

1994, Ericsson lo desarrolló como un mecanismo alternativo que permitiese sustituir

paulatinamente los enlaces cableados de diversos periféricos. No obstante, las

características y versatilidad que presenta Bluetooth han hecho que se pueda utilizar

en una gran cantidad de situaciones diferentes, como pueden ser el establecimiento

de conexiones entre dos terminales móviles inteligentes como puedan ser una PDA o

un teléfono móvil, conexionado de periféricos o dispositivos de audio.

Como se ha mencionado anteriormente, Bluetooth nace de la mano de Ericsson en

1994 junto con otras grandes compañías del sector tecnológico como son Intel, IBM,

Nokia y Toshiba. Este conjunto de multinacionales constituyeron en 1998 el Bluetooth

Special Interest Group, organismo que se encarga de gestionar y desarrollar las

distintas versiones del núcleo de Bluetooth. Más tarde, en 1999, se unirían empresas

de la talla de Microsoft, 3Com o Agilent. El trabajo conjunto de los diferentes

11

miembros del Bluetooth SIG permitió una rápida aceptación por parte de los

fabricantes; así como la compatibilidad entre dispositivos de los diferentes fabricantes.

Este hecho, provocó que las redes Wireless Personal Area Network (WPAN) basadas en

Bluetooth estuviesen reguladas por el IEEE bajo la denominación 802.15.

Las principales características de esta forma de comunicación son:

Opera en la banda libre de los 2,4 GHz por lo que no necesitamos adquirir

ninguna licencia de emisión.

Tiene una capacidad máxima de transmisión de hasta 3 Mbps.

Implementa diversos mecanismos de ahorro energético de forma que el

dispositivo no siempre va a consumir la misma potencia con el consiguiente

ahorro energético en la batería del dispositivo.

Posee un precio económico que permite implementarlo en casi cualquier

dispositivo sin encarecerlo desmesuradamente. Un sistema Bluetooth

empotrado tiene un precio cercano a 20€ la unidad.

Alcance de hasta 100 metros en función de la potencia de emisión que posea el

transmisor Bluetooth.

No obstante, se corresponde con protocolo de comunicaciones cuyo uso queda

restringido para enlaces punto a punto, puesto que el sistema de

establecimiento de conexiones hace difícil poder realizar redes punto-

multipunto. Esto se debe a que en un principio estaba destinado para sustituir

a los enlaces establecidos mediante un cable físico.

2.3.2. ZigBee

ZigBee se corresponde con una especificación global creada por un consorcio de

múltiples marcas destinas a la venta de sistemas de control inalámbrico denominados

ZigBee Alliance [23]. Dicha especificación se basa en el estándar 802.15.4 definido por

el IEEE donde se especifica la capa física y de enlace del protocolo. En cuanto a los

niveles superiores, la ZigBee Alliance se encarga de establecer el conjunto de reglas

que deben cumplir las capas de red, aplicación, el framework de aplicación, los perfiles

y los mecanismos de seguridad.

La idea principal sobre la que se ha desarrollado ZigBee ha sido la facilidad a la hora de

implementarlo en un sistema de control, o lo que es lo mismo, se busca que de una

manera sencilla y rápida se pueda desarrollar un sistema robusto y duradero

12

fácilmente integrable en una red inalámbrica destinada a la supervisión y el control.

Por este motivo, ZigBee pretende cumplir los siguientes requisitos:

Alta fiabilidad.

Bajo coste.

Muy bajo consumo.

Altamente seguro.

Estándar abierto.

En consecuencia, para poder satisfacer todos estos puntos, ZigBee se va a caracterizar

por las siguientes características:

Baja capacidad de transmisión, en torno a 250 Kbps, que nos permitirá

desarrollar sistemas de muy bajo coste.

Protocolo sencillo, pudiendo ser implementado sin ningún tipo de limitación en

sistemas microcontroladores de 8 bits.

Muy bajo consumo energético permitiendo que la fuente de alimentación del

sistema pueda durar años.

Como gran desventaja, podemos mencionar la baja capacidad de transmisión

adoptada lo que restringe el uso de esta especificación para usos muy concretos y

actividades que requieran poco intercambio de datos, como accionar un interruptor de

la luz o monitorizar un sensor de temperatura o luminosidad.

2.3.3. RFID

La tecnología RFID (Radio Frequency Identification) corresponde con un método de

almacenamiento y recuperación remota de información, basado en el empleo de

etiquetas (en adelante se referenciarán como tags o transpondedores) en las que se

almacenan los datos [24]. De forma que cuando dichos transpondedores entran en el

área de cobertura de un lector RFID, éste envía una señal para que la etiqueta le

transmita la información almacenada en su memoria. Por tanto, una de las principales

características de esta tecnología es la posibilidad de recibir información de las

etiquetas dispersas por el entorno a través de radiofrecuencia y sin necesidad de que

exista contacto físico entre el dispositivo lector y el transpondedor. No obstante, la

distancia no podrá superar un cierto valor máximo impuesto por la potencia de

transmisión máxima y la potencia de recepción mínima detectable.

13

El rango típico de las señales de radiofrecuencia empleadas en RFID son típicamente

125 KHz., 13,56 MHz., 433-860-960 MHz. y 2,45 GHz.

Por su parte, los sistemas de identificación por radiofrecuencia están compuestos por

cuatro elementos principalmente:

Una etiqueta RFID: se denomina también tag o transpondedor, puesto que

combina en un mismo dispositivo el transmisor y el receptor. La etiqueta se

utilizaría para ser distribuida por el entorno donde el objetivo a localizar se

vaya a desplazar. Se compone de tres elementos: chip, antena y sustrato. El

chip y la antena están contenidos en el substrato que puede ser un material

rígido (por ejemplo el sustrato de fibra de vidrio FR4 de los circuitos impresos)

o flexible (película de poliamida Dupont’s Kapton). En cuanto a la realización de

la antena, se realiza de un material metálico como el cobre; mientras que el

integrado se realiza sobre silicio que se une eléctricamente a la antena. Se

distinguen dos tipos de tags:

o Pasivos: no poseen ninguna fuente de alimentación, ésta la reciben

directamente del lector. Por este motivo, tan sólo podrán transmitir

información cuando son activados por el lector.

o Activos: contienen una fuente de alimentación que les suministra la

energía necesaria como para poder transmitir la señal de información.

Un lector: es el encargado de transmitir la energía suficiente a la etiqueta para

que ésta le pueda enviar la información que contiene almacenada. Consta de

un módulo de radiofrecuencia (transmisor y receptor), una unidad de control y

una antena para interrogar los tags vía radiofrecuencia. Para el intercambio de

información, los lectores suelen incorporar algún tipo de protocolo específico,

como puede ser NFC, que permita enviar los datos recibidos de la etiqueta a un

sistema de procesamiento de datos.

Un dispositivo controlador: se corresponderá con un dispositivo móvil o un

ordenador que ejecute la aplicación encargada de procesar los datos

procedentes de uno o varios lectores RFID se las transmita al sistema de

información. También puede ser capaz de transmitir órdenes al lector

Middleware: se tratará del software desarrollado para poder recoger, filtrar y

manejar la información procedente de los diferentes controladores.

14

Figura 2.1. Funcionamiento de un sistema RFID con etiqueta pasiva.

2.3.4. Ultra Wide Band

Se corresponde con una tecnología de comunicación inalámbrica conocida hace más

de 45 años en el mundo de la investigación y militar [25]. La principal característica de

las redes Ultra Wide Band (UWB) es que permite obtener enlaces con una gran

capacidad de transmisión, consumiendo muy poca potencia. Esto se consigue

transmitiendo señales en el dominio del tiempo de muy corta duración. El periodo de

estas señales será del orden de unos pocos nanosegundos. Esto permite tener grandes

anchos de bandas en las señales transmitidas lo que conlleva considerables beneficios

en cuanto al consumo y a la capacidad de transmisión.

Por su parte, el despegue de esta tecnología se produjo en 2002 cuando el organismo

estadounidense Federal Communications Commission (FCC) permitió el uso de la

banda ubicada entre 3.6GHz y 10.1 GHz. Este acontecimiento provocó que numerosos

centros de investigación, gobiernos, la industria de las telecomunicaciones,…

investigasen posibles aplicaciones. Entre ellas, cabe citar:

Acceso a Internet de banda ancha a muy alta velocidad.

Localización con precisión de centímetros.

Imágenes de radar de alta resolución.

Obtención de imágenes a través de paredes.

Navegación y seguimiento de objetos de forma precisa.

Finalmente, el principal inconveniente de esta tecnología es que sólo se puede utilizar

en un corto rango de espacio, cercano a los 10 metros de cobertura. Esto está

motivado por los niveles tan bajo de potencia que la FCC estableció para UWB. En

15

concreto, la máxima potencia de salida de un transmisor UWB es de 0.0001 mW/MHz

lo que supone que para un ancho de banda típico de 500 Mhz se tenga una potencia

de salida de 0.05 mW, valor que se encuentra muy por debajo de la máxima potencia

permitida, por ejemplo, en el estándar 802.11b que es 100 mW. Esto supone 2000

veces menos potencia.

2.3.5. Wi-Fi

Se trata de un estándar internacional que implementa los niveles inferiores del modelo

OSI, en concreto, el nivel físico y el de enlace, sobre un canal inalámbrico. En su

concepción se pensó para sustituir a Ethernet (estándar 802.3) en aquellas zonas o

puntos donde difícilmente podríamos llegar con un cable. De ahí que los métodos de

acceso al medio físico sean similares a los usados en Ethernet. Por otro lado, se trata

de un estándar que desde que apareciera en 1997 ha sufrido una constante evolución,

encontrando varias versiones del mismo [26]:

2.3.5.1. 802.11a

Esta versión del estándar se corresponde con la tercera generación de redes

inalámbricas debido a que apareció en el mercado después de las redes 802.11 y

802.11b. Aunque en un principio, su desarrollo se había iniciado antes que el estándar

802.11b. A pesar de ello, se retrasó debido a los requisitos tecnológicos necesarios

para poder llevarlo a cabo.

En concreto, las redes inalámbricas 802.11a se caracterizan por operar a una

frecuencia de 5 Ghz. en los EEUU, en la banda de frecuencia conocida como UNII

(Universal Networking Information Infraestructure). Sin embargo, esta forma de

comunicación inalámbrica no está autorizada para su utilización en Europa porque la

banda que usa para operar se encuentra ocupada por el estándar HyperLAN2.

Las principales características que aporta son:

Una capacidad de enlace de 54 Mbps.

Al trabajar en la banda UNII, posee mayor inmunidad frente a las interferencias

por solapamiento puesto que dicha banda contempla el uso de 4 canales para

este fin.

Uso de un rango de frecuencias relativamente libre como son los 5 Ghz.

16

2.3.5.2. 802.11b

Este estándar apareció en 1999 con la idea de permitir a los usuarios comunicarse con

sus dispositivos con redes Ethernet a través de transmisores/receptores de

radiofrecuencia. Por este motivo, la institución IEEE se vio obligada a cambiar los

mecanismos de acceso a las redes Ethernet para añadir el soporte de las nuevas capas

físicas y de enlace introducidas por 802.11b. En concreto, se optó por usar CSMA/CA

(Carrier-Sense Multiple Access with Collision Avoidance) en la capa de enlace y para la

capa física se eligieron tres técnicas:

DSSS (Direct Sequence Spread Spectrum) usando la banda de los 2,4 GHz.

FHSS (Frecuency Hopping Spread Spectrum) operando en el rango de los

2,4GHz.

Infrarrojos.

La principal ventaja de este estándar es que ha sido ampliamente usado en todo el

mundo para establecer redes inalámbricas por ser el primero que salió de forma

comercial. No obstante, presenta una serie de inconvenientes que en revisiones

posteriores se han intentado corregir. Entre estas se pueden citar:

Problemas de interferencias debido a que el rango de frecuencias en el que

opera se encuentra saturado al tratarse de una banda libre.

Capacidad de transmisión reducida, admite hasta 11 Mbps.

Requiere de modulaciones que contrarresten los efectos de multitrayectos.

Sensible a la distancia de tal forma que a una distancia a más de 75 metros, la

capacidad del enlace cae a 2 Mbps.

2.3.5.3. 802.11g

Este estándar surgió como una extensión del 802.11b con el que se pretendía mejorar

la capacidad de transmisión del enlace usando el mismo rango de frecuencias, es decir,

la banda de 2,4 Ghz. Para ello, lo que se hizo fue introducir un segundo modo de

acceso basado en OFDM usado ya en las redes 802.11a que permitió aumentar la

capacidad del enlace hasta los 54 Mbps. De esta forma, al disponer de las dos técnicas

de modulación, las usadas en 802.11b y la usada en 802.11a, este estándar podía dar

servicio a dispositivos que cumpliesen la normativa 802.11b y a la vez a los nuevos

dispositivos compatibles con el estándar 802.11g.

17

Por tanto, la principal ventaja de las redes 802.11g es el aumento considerable de la

capacidad de transmisión, hasta 54 MBPS. No obstante, al compartir la misma banda

que 802.11b presenta las mismas desventajas.

2.3.5.4. 802.11n

Se corresponde con una norma todavía en fase de propuesta, es decir, sigue siendo

evaluado por los grupos de trabajo del IEEE. En Junio de 2.009 estaba prevista su

publicación como estándar, pasando a constituir de esta forma la última revisión del

estándar 802.11. Se caracteriza principalmente por conseguir un aumento de la

capacidad de transmisión muy superior a la proporcionada por 802.11a/b/g. Se

podrían alcanzar hasta 600 Mbps. Para poderlo conseguir ha sido necesario emplear

dos conceptos claves en la definición de la capa física: el uso de sistemas MIMO

(Multiple In Multiple Out) y un ancho de banda de 40 Mhz. para los diversos canales

existentes. La unión de estas dos decisiones de diseño ha originado ese aumento de la

capacidad de transmisión.

Por su parte, durante la formulación de este estándar se ha mantenido siempre el

carácter compatible del mismo con las revisiones anteriores de 802.11 por lo que

permite el uso de modulaciones OFDM para poder usar dispositivos compatibles con

802.11a/b y las técnicas de acceso vistas en 802.11b. De esta forma, pueden usarse los

más de 250 millones de dispositivos existentes en el mercado actual de las

comunicaciones inalámbricas en este tipo de redes. Esta característica supone una

gran ventaja comercial puesto que el usar un nuevo estándar de comunicaciones

inalámbricas no supone tener que cambiar los dispositivos que el usuario pueda ya

haber adquirido.

En consecuencia, entre las principales ventajas de 802.11n podemos citar:

Mayor capacidad de transmisión, hasta 600 Mbps.

Retrocompatibilidad con los dispositivos 802.11a/b/g.

Uso de modos para ahorrar consumo y mejorar la utilización de los canales.

Aprovechamiento de los rayos multitrayectos para mejorar la capacidad de

transmisión.

En la Tabla 2.2 se puede ver una comparativa entre las diferentes versiones de la

especificación Wi-Fi.

18

802.11b 802.11g 802.11a 802.11n

Tasa máxima de

datos (Mbps) 11 54 54 300

Tasa real de datos

(Mbps) 5 20 22 146

Nº de canales

disponibles 3 3 12

3 en 2,4 GHz.

12 en 5 GHz.

Probabilidad de

interferencia Alta Alta Baja Baja

Comportamiento

en entornos

difíciles

Pobre Medio Bueno Muy bueno

Compatibilidad 802.11b 802.11b/n 802.11a 802.11a/b/g/n

Frecuencias (GHz.) 2,4 2,4 5 2,4 y 5

Seguridad WEP/WPA/WPA2 WEP/WPA/WPA2 WEP/WPA/WPA2 WEP/WPA/WPA2

Tabla 2.2. Comparativa entre las diferentes versiones de la especificación Wi-Fi.

2.3.6. WiMAX

Se trata de una estándar de comunicaciones cuyo principal objetivo consiste en dar

servicios de banda ancha de una forma inalámbrica a áreas metropolitanas, es decir,

está pensado para ser usados en redes MAN. Por este motivo, se desarrolló para cubrir

distancias de hasta 50 Kms. y permitir una capacidad de transmisión de hasta 100

Mbps. Con estas características, esta tecnología podría hacer frente a otras como DSL y

las líneas T1 tendidas en el bucle de abonado.

WiMAX se corresponde con el nombre con el que se comercializa el estándar 802.16

del IEEE [27], organismo encargado del desarrollo y mantenimiento del mismo desde

que fuese transferido por el NIST (National Institute of Standards and Technologies) en

1998 a este organismo.

La idea fundamental de WiMAX se centra en poder dar una gran variedad de servicios,

motivado por el bajo coste de los enlaces, que pueden ir desde actuar como backbone

para redes 802.11, dar servicios de conexión a dispositivos móviles sin hacer uso del

estándar 802.11, como red de respaldo de las redes cableadas,…

Entre las principales características de WiMAX, podemos mencionar:

Dos rangos de frecuencias para operar:

o 10GHz-66GHz: se corresponde con la banda asignada en la primera

versión del estándar. El principal problema de este rango es que

requiere visión directa entre las distintas estaciones para poder llevar a

19

cabo la comunicación, provocando el encarecimiento de la instalación al

tener que aumentar el número de estaciones que coloquemos.

o 2GHz-11GHz: en esta banda se establecen dos rangos, uno en los 3,5

GHz que requiere de licencia para poder transmitir y otro en los 5,8 GHz

que se halla en la banda libre y, por tanto, no necesitaríamos ningún

tipo de licencia.

Uso de selección dinámica de la frecuencia de utilización. Esta técnica permite

seleccionar la frecuencia de transmisión en base a las interferencias generadas

por otros sistemas en la banda usada y por la interferencia co-canal y ajustar la

potencia de transmisión en base a estos parámetros. De esta forma, consigue

mejorar el rendimiento de la comunicación.

Útil en redes punto-multipunto.

Asignación de una determinada calidad de servicio a cada conexión, lo que

permite poder transportar sobre la capa de enlace de WiMAX protocolos como

ATM, Ipv4 o Ipv6.

Finalmente, cabe mencionar que en 2005, el IEEE aprobó el estándar 802.16e en el que

se definen redes de banda ancha móviles usando WiMAX como capa física y de enlace.

Se prevé que mediante estas redes se pueda dar servicio a vehículos que circulen hasta

120 km/h.

2.4. Comparativa

A modo de resumen, se presenta una breve comparativa entre las diversas tecnologías

estudiadas previamente, destacando lo mejor de cada una de ellas a una nivel

tecnológico y cualitativo [28].

Bluetooth ZigBee RFID UWB 802.11b 802.11a 802.11g 802.11n WiMAX

Tasa de transferencia [Mbps]

1-3 0.25-0.02 0.2·10-3-

0.1 200 11 54 54 200 70

Alcance máximo [m]

22.86 10-100 0.1-200 9.144 60.96 45.72 60.96 45.72 50·103

Potencia [mW]

100 30 500 400 750 1500 1000 2000 20000

Ancho de banda [MHz]

1 0.6 500 22 20 20 40 5-10

Eficiencia espectral [b/Hz]

1 0.05 0.4 0.5 2.7 2.7 5 3.7

Eficiencia en potencia [mW/Mbps]

100 1000 2 68 27 19 10 2000

Precio [€]

2.20 1.47 0.25-25 5.14 3.67 8.82 6.61 14.70 40

Tabla 2.3. Resumen de la comparativa entre las diferentes tecnologías inalámbricas vistas.

20

A nivel cualitativo, cada una de las tecnologías propuestas aporta las siguientes

características:

Bluetooth

o Está orientada a aplicaciones de voz y datos.

o Opera en el espectro libre de 2,4 GHz.

o Puede operar a una distancia de entre 1 y 100 metros dependiendo de

la clase del dispositivo.

o La tasa máxima de transferencia es de 3 Mbps.

o Puede penetrar objetos sólidos.

o Es omnidireccional y no requiere de visión directa para poder trabajar.

o Permite hasta tres modos de seguridad.

ZigBee

o Posee una capacidad de hasta 250 Kbps usando las frecuencias de 2,4

GHz., 40 Kbps en 915 MHz. y 20 Kbps en 868 MHz., variando su alcance

de los 10 a los 100 metros.

o Pretende ser un estándar en comunicaciones inalámbricas para las

aplicaciones de control remoto en la industria.

o Debido a su objetivo, se explica su bajo consumo, bajo coste, fácil uso y

escasa capacidad de transmisión.

o En la actualidad, existen tres niveles de seguridad aunque en la primera

especificación liberada no se contemplaban mecanismos de seguridad.

RFID

o Existen aproximadamente 140 estándares ISO para RFID que regulan un

amplio rango de aplicaciones.

o En RFID, las etiquetas pasivas se deben poder alimentar a distancias por

el lector. Por este motivo, el receptor debe encontrarse relativamente

cerca, a pocos centímetros.

o Las etiquetas activas, por el contrario, se pueden leer a distancias de

varios metros puesto que éstas se encuentran alimentadas y no

requieren que el receptor les aporte energía para su funcionamiento.

21

o RFID puede operar a bajas frecuencias, por debajo de 100 MHz., y a

altas frecuencias, banda UHF o en la banda libre de los 2,4 GHz. Y 5,8

GHz.

UWB

o Posee un bajo ratio de consumo (1mW/Mbps) unido a una gran

capacidad de transferencia.

o Idealmente, tendrá un bajo consumo de energía, bajos precios, alta

capacidad de transferencia de datos, podrá atravesar los obstáculos y

usarán una amplia franja del espectro radioeléctrico.

o Existen dos organismos de estandarización compitiendo por regular esta

tecnología: UWB Forum, que apuestan por el uso de una interfaz radio

basada en la secuencia directa (DS-UWB), y la WiMedia Alliance, que

promueven un sistema basado en la modulación OFDM.

o Para las redes WSN, el estándar ha propuesto que se use la

recomendación IEEE 812.15.4ª basada en IR-UWB, es decir, hacer uso

de la tecnología UWB en el espectro infrarrojo. Esta técnica permite

alcanzar hasta 850 Kbps en un rango de 10 a 50 metros.

Wi-Fi

o Su coste y consumo de potencia son superiores al resto de las

tecnologías inalámbricas presentadas a excepción de WiMAX.

o Existen multitud de especificaciones que regulan los distintos aspectos

de este estándar.

o 802.11a: utiliza OFDM como modulación y opera en el rango de los 5

GHz. Posee una velocidad máxima de 54 Mbps.

o 802.11b: funciona en el rango de los 2,4 GHz., tiene una tasa máxima de

transferencia de 11 Mbps y usa DSSS. Se corresponde con la primera

versión del estándar Wi-Fi.

o 802.11g: funciona en el rango de los 2,4 GHz., tiene una tasa máxima de

transferencia de 54 Mbps y usa OFDM. Es compatible con la versión

802.11b.

o 802.11e: regula la calidad de servicio.

22

o 802.11h: se corresponde con un complemento de la norma 802.11a en

Europa y proporciona el control de potencia y la gestión del espectro.

o 802.11i: Aumenta la seguridad incluyendo el estándar de cifrado

avanzado (AES). Esta norma no es totalmente compatible con versiones

anteriores.

o 802.11k: se encuentra en desarrollo y permitirá una mayor gestión de

los recursos radios en redes 802.11x.

o 802.11n: Se espera que opere en el rango de los 5 GHz. Y ofrecerá una

velocidad máxima de datos de más de 100 Mbps. Está orientada para

aplicaciones multimedia.

o 802.11p: estándar desarrollado para el sector de la automoción. Será la

base para las comunicaciones de corto alcance en EEUU.

o 802.11r: mejora la capacidad de los usuarios para moverse entre los

puntos de acceso o estaciones base.

o 802.11s: se encuentra en desarrollo y se espera que permita la creación

de redes 802.11x con una topología en forma de malla.

WiMAX

o Se trata de una red inalámbrica de área metropolitana.

o Posee un alcance de 50 Km. con tasas de transferencias de hasta 70

Mbps.

o La primera versión del estándar, 802.16, operaba en el rango de

frecuencias que van desde los 10 GHz. Hasta los 66 GHz. Lo que

implicaba que debía existir visión directa entre el transmisor y el

receptor.

o El último estándar, 802.16a, opera entre los 2 y 11 GHz. y no necesita

línea de visión.

o Contempla el uso de receptores en vehículos móviles siempre cuando

no superen la velocidad de 100 Km/h.

o Ha sido creado para competir con la tecnología xDSL y el acceso por

módem de cable.

o

23

2.5. Elección tecnológica

El análisis realizado en las subsecciones previas de las diferentes tecnologías

inalámbricas utilizadas permite al lector hacerse una idea de la gran variedad de

elecciones que se pueden efectuar para tal objetivo. La elección de la tecnología

inalámbrica se ha efectuado en base a dos criterios:

Bajo consumo.

Capacidad de transmisión de datos.

Amplia difusión del estándar.

El primer criterio de decisión viene impuesto por las características que se le

presuponen a una red de nodos inalámbricos, puesto que el receptor que llevarán los

usuarios deberá tener una gran autonomía ya que están alimentados mediante

baterías cuya capacidad es limitada. Por este motivo, la tecnología inalámbrica

utilizada debe caracterizarse por su bajo consumo.

El segundo criterio obedece a la necesidad de transmitir datos. Se deberá buscar un

compromiso entre eficiencia energética y capacidad de transmisión, debido a que

cuanto menor sea el consumo, menor será la tasa de transferencia.

Con respecto al tercer factor, se ha impuesto como un requisito fundamental el crear

un sistema basado en un estándar ampliamente difundido ya que esto permitiría a

posteriori, el crecimiento y la expansión del sistema.

Con el fin de satisfacer dichos criterios, se ha optado por elegir como soporte de la

comunicación la especificación Bluetooth. Como se ha podido comprobar

previamente, Bluetooth es un estándar ampliamente utilizado en la industria y en el

sector multimedia. Cualquier dispositivo comercial moderno dispone de un

transceptor Bluetooth, lo que permitiría al usuario poder utilizar dicho sistema

mediante el uso de un software dedicado. Por otro lado, Bluetooth es un sistema de

transmisión de datos con una gran capacidad y con un consumo muy reducido en

comparación con tecnologías que ofrecen un rendimiento similar. Otra característica

de Bluetooth, es que se corresponde con una especificación que posee un gran apoyo

de la industria electrónica, está continuamente en desarrollo y los transceptores

poseen un precio muy asequible, aproximadamente 10€.

24

3. Capítulo 3

Bluetooth como

tecnología inalámbrica

3.1. Introducción

La tecnología inalámbrica Bluetooth [29] se ha convertido en una especificación global

como mecanismo para establecer una comunicación rápida, fiable y sin cables entre

multitud de dispositivos como pueden ser ordenadores portátiles, teléfonos móviles,

periféricos o manos libres para vehículos motorizados. El principal motivo de su rápida

extensión se debe a la facilidad para transferir datos y sincronizar dispositivos. No

obstante, en el ámbito industrial esta tecnología ha despertado un creciente interés

como consecuencia de su bajo coste y gran capacidad de transmisión, además de su

rápida implantación en la mayor parte de los dispositivos móviles y ordenadores

portátiles.

En el resto del capítulo se analizarán las principales características del estándar en su

versión 2.1, de forma que se pueda obtener una visión general del mismo y se

detallarán aquellos conceptos claves para el desarrollo de este proyecto.

3.2. Descripción general

Bluetooth surge como una especificación para Redes Inalámbricas de Área Personal

(WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos

mediante un enlace por radiofrecuencia segura y globalmente libre (2,4 GHz). Los

principales objetivos que se pretenden conseguir con esta norma son:

Facilitar las comunicaciones entre equipos móviles y fijos.

Eliminar cables y conectores entre éstos.

Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la

sincronización de datos entre nuestros equipos personales.

25

En 1994, Ericsson inició un estudio para investigar la viabilidad de una nueva interfaz

de bajo costo y consumo para la interconexión vía radio (eliminando así cables) entre

dispositivos como teléfonos móviles y otros accesorios. El estudio partía de un largo

proyecto que investigaba unos multicomunicadores conectados a una red celular,

hasta que se llegó a un enlace de radio de corto alcance, llamado MC link. Conforme

este proyecto avanzaba se fue haciendo claro que éste tipo de enlace podía ser

utilizado ampliamente en un gran número de aplicaciones, ya que tenía como principal

virtud que se basaba en un chip de radio.

De esta forma, se creó el protocolo de comunicaciones inalámbricas Bluetooth cuyas

distintas versiones son:

Bluetooth v.1.1 (IEEE Standard 802.15.1 - 2002).

Bluetooth v.1.2 (IEEE Standard 802.15.1 - 2005).

Bluetooth v.2.0 (Bluetooth 2.0 + EDR publicada por el SIG).

Bluetooth v.2.1 + EDR (Bluetooth Core Specification Version 2.1 publicada por

el SIG el 26 de Julio de 2007).

Bluetooth v.3.0 +HS (Abril de 2009).

La versión 1.2, a diferencia de la 1.1, adopta una solución inalámbrica complementaria

para permitir la coexistencia de sistemas Bluetooth y Wi-Fi en el espectro de los 2.4

GHz, sin interferencia entre ellos. Para ello, usa la técnica de saltos en frecuencias

adaptativos (AFH), que consigue una transmisión más eficiente y un cifrado más

seguro. Para mejorar las experiencias de los usuarios, esta versión ofrece una calidad

de voz con menor ruido ambiental, y permite una rápida configuración de la

comunicación con otros dispositivos Bluetooth dentro del rango del alcance.

La versión 2.0, fue creada para ser una especificación separada. Se caracteriza por

incorporar la técnica Enhanced Data Rate (EDR) que le permite mejorar las velocidades

de transmisión en hasta 3Mbps a la vez que intenta solucionar algunos errores de la

especificación 1.2.

La versión 2.1, simplifica los pasos para crear la conexión entre dispositivos, además el

consumo de potencia es 5 veces menor. No obstante, se han añadido otras mejoras

sustanciales a la especificación como la generación de informes de datos erróneos, la

respuesta extendida al proceso de descubrimiento, eventos de finalización por

extinción del temporizador en la supervisión del enlace o el modo de seguridad 4.

Finalmente, la versión 3.0 añade nuevas mejoras al estándar Bluetooth en relación a la

pila de protocolos usada. Se introducido la capa AMP, lo que ha provocado una mejora

26

de la capa HCI para interactuar con AMP de una forma más óptima así como la

seguridad. Se ha mejorado el protocolo L2CAP con la inclusión de los modos Streaming

y de retransmisión mejorada, se han solucionado problemas en el soporte del canal así

como una mejora de la máquina de estados L2CAP para los canales AMP. Como una

característica novedosa, se encuentra una capa de adaptación del protocolo 802.11.

En relación a los aspectos más tecnológicos, la tecnología inalámbrica Bluetooth utiliza

la banda de radio ISM (Industrial, Science and Medical) de 2,4 GHz. que se encuentra

disponible en todo el mundo y que no requiere de una licencia por parte de las

autoridades reguladoras de las telecomunicaciones propias de cada país. Esto permite

que los dispositivos Bluetooth puedan operar en cualquier región del globo terrestre

sin necesidad de cambiar ningún componente hardware del dispositivo.

El sistema emplea un transmisor de salto en frecuencia para contrarrestar las

interferencias y las pérdidas de intensidad de señal, y cuenta con un gran número de

portadoras disponibles para la transmisión de datos debido al uso de una modulación

espectro ensanchado por salto en frecuencia (FHSS). Para minimizar la complejidad del

transmisor, se utiliza una modulación de frecuencia binaria. La tasa de transferencia de

símbolos es de 1 MSímbolo/s, admitiendo una velocidad de hasta 1 Mbps en el modo

de transferencia básica y una velocidad de transmisión aérea total de 2 a 3 Mbps en el

modo de transferencia mejorada o EDR. Este último modo se corresponde con una

especificación incluida en la especificación 2.1 del estándar Bluetooth.

Por su parte, sobre esta interfaz radio, se definen dos tipos de enlaces: físicos y lógicos.

Los enlaces físicos se corresponde con un enlace de comunicación entre dos

dispositivos que se intercambian paquetes, sea cual sea la dirección de estos. No

obstante, la norma impide que todos los dispositivos puedan establecer enlaces con

todos, sino que sólo podrán establecer un enlace físico dentro de una misma red el

maestro y un esclavo. De forma que dos dispositivos que actúen como esclavos en una

red no podrán formar un enlace físico nunca.

Con respecto a los enlaces lógicos, estos son los que permiten soportar las aplicaciones

de voz y datos. Estos se corresponden con enlaces SCO y con enlaces ACL,

respectivamente. Los enlaces ACL, se tratan de enlaces asíncronos no orientados a

conexión, por lo que proporcionan un enlace no fiable de tal forma que los paquetes

que se envían a través de estos enlaces no se garantizan que se entreguen al otro

extremo del enlace. Por esta razón este tipo de enlaces son convenientes para

servicios basados en conmutación de paquetes. En relación a los enlaces SCO, su

principal característica es que se corresponden con enlaces síncronos orientados a

conexión, por lo que han sido diseñados para soportar voz en tiempo real y tráfico

multimedia. Por ello, son ideales para servicios que requieran un enlace fiable de

transmisión o estén basados en conmutación de circuitos. Tanto la voz como los datos

27

se transmiten en forma de paquetes y la especificación Bluetooth permite crear

enlaces ACL y SCO al mismo tiempo.

Finalmente, la pila de protocolos que usa Bluetooth se organiza en capas al igual que el

modelo OSI. En la figura 3.1 se pueden comprobar los diferentes protocolos de los que

hace uso la especificación para gestionar y controlar los diferentes enlaces y

conexiones. Cada uno de estos protocolos será revisado en secciones posteriores del

capítulo.

Figura 3.2. Pila de protocolos Bluetooth.

3.3. Arquitectura Bluetooth

La pila de protocolos Bluetooth se basa en el modelo de referencia OSI del organismo

internacional de estandarización ISO para la interconexión de sistemas abiertos. La

especificación Bluetooth utiliza una arquitectura de protocolos que permiten el

intercambio transparente de datos entre aplicaciones diseñadas de acuerdo con dicha

especificación y fomentan la interoperabilidad entre los productos de diferentes

fabricantes.

Se pueden observar dos áreas en dicha pila de protocolos, que pueden ser

implementadas en distintos sistemas o todos en un mismo sistema. Estas áreas son:

El módulo Bluetooth (periférico hardware), encargado de las tareas

relacionadas con el envío de información a través de la interfaz de

radiofrecuencia. Se encargaría de las tareas asignadas a la capa física y parte de

la capa de enlace en el modelo OSI. Esto supone la codificación de los bits, la

modulación utilizada o la potencia con la que se transmite.

28

El host Bluetooth (implementación software), relacionado con los protocolos

asociados a las capas superiores como la capa de red o de aplicación.

El nexo de unión entre estas dos zonas diferenciadas es la denominada Interfaz de

Controlador de Host o, por sus siglas en inglés, HCI. Se encarga de suministrar una

interfaz uniforme de acceso a las capacidades del controlador Bluetooth a través de un

conjunto de comandos que afectan a diferentes bloques de la arquitectura de

Bluetooth como puede ser el gestor de enlaces o la banda base.

En las siguientes subsecciones se procederá a detallar el funcionamiento básico de los

bloques que componen la especificación Bluetooth.

3.3.1. Radio

Como se ha comentado anteriormente, los dispositivos Bluetooth operan sobre la

banda ISM de 2.4 GHz. utilizando un transceptor de salto en frecuencias para combatir

las interferencias y los desvanecimientos en la señal causados por el medio físico. En

concreto, las frecuencias operativas de Bluetooth se hallan mediante la expresión:

.

Esta expresión permite hallar las frecuencias centrales de los canales Bluetooth.

Como se puede comprobar del análisis de la expresión anterior, los canales de

radiofrecuencia están espaciados 1 MHz en el espectro. Además para cumplir con las

regulaciones fuera de banda de cada país, se ha dejado una banda de guardia de 2

MHz en el límite inferior de la banda y de 3.5 MHz en el superior.

Por su parte, la especificación define dos tipos de modulaciones para transmitir datos,

dependiendo del modo de operación del dispositivo. De esta forma, si se operan en el

modo normal denominado Basic Rate y que alcanza una velocidad de transmisión

máxima de 1 Mbps, se usa una modulación FM binaria que minimiza la complejidad del

transceptor. No obstante, se define un modo opcional de transmisión que permite

alcanzar una mayor velocidad de transmisión, denominado Enhanced Data Rate, que

usa una modulación PSK y que posee dos variantes a su vez: DQPSK, que permite

alcanzar los 2 Mbps, y 8 DPSK, con la que se pueden obtener hasta 3 Mbps de tasa de

bits. La tasa de símbolos para ambas modulaciones es de 1 MSímbolo/s.

Para poder efectuar una transmisión full-duplex, se ha optado por usar un esquema de

multiplexación por división en el tiempo (TDD) en ambos modos. Este mecanismo

permite emular un canal de comunicación full dúplex a partir de un enlace de

comunicaciones half-duplex. Para ello, lo que se hace es dividir el tiempo en ranuras o

slots, asignando un cierto número de ellos al enlace de subida y otros al enlace de

29

bajada. Esto supone una gran ventaja cuando los enlaces son asimétricos ya que

permiten asignar más capacidad al canal que lo requiera.

Figura 3.3. Esquema de multiplexación por división en el tiempo de comunicaciones Bluetooth.

El otro aspecto más importante de la interfaz radio se corresponde con la potencia de

transmisión. Según la potencia máxima de salida, en la especificación Bluetooth se

distinguen tres tipos de dispositivos:

Clase

Potencia

de salida

(Pmax)

Potencia

Nominal

Potencia

de salida

(Pmin)

Control de potencia Alcance

1 100 mW

(20 dBm) N/D 1 mW (0 dBm)

Pmin< +4 dBm a Pmax

Opcional:

Pmin2 a Pmax

~100 m

2 2.5 mW

(4 dBm) 1 mW (0 dBm) 0.25 mW (-6 dBm)

Opcional:

Pmin2 a Pmax

~10 m

3 1 mW

(0 dBm) N/D N/D

Opcional:

Pmin2 a Pmax

~1 m

Tabla 3.31. Especificación de las clases de dispositivos y sus características.

La clase de dispositivo Bluetooth es un parámetro importante en una aplicación, ya

que determinará el alcance máximo del sistema.

3.3.2. Banda Base

La banda base permite el enlace físico de radiofrecuencia entre dispositivos Bluetooth

dentro de una piconet, es decir, dos o más dispositivos Bluetooth que comparten un

mismo enlace físico. Como estos terminales utilizan la expansión de espectro por

saltos de frecuencia, donde los paquetes se transmiten en franjas de tiempo

predefinidas por frecuencias conocidas, este nivel utiliza procedimientos de

averiguación y localización para sincronizar la frecuencia de saltos de transmisión y los

relojes de los diferentes dispositivos Bluetooth.

30

Además se encarga de controlar las operaciones sobre los bits y los paquetes, detectar

y corregir los errores que se produzcan en el medio, así como de la difusión automática

de mensajes a diferentes puntos de la red o del cifrado. También emite confirmaciones

y peticiones de repetición de las transmisiones recibidas. Es decir, efectúa las tareas de

la capa de enlace del modelo OSI.

3.3.2.1. Canales físicos

Corresponden con el nivel más bajo de abstracción dentro de la arquitectura

Bluetooth. Se definen cuatro tipos de canales físicos: dos estarán destinados a las

comunicaciones entre dispositivos conectados y asociados dentro de una piconet

específica; mientras que los otros dos, se destinarán al proceso de descubrimiento y al

establecimiento de una conexión. No obstante, los cuatro canales físicos mencionados

comparten características comunes como son:

Combinación de una secuencia de saltos en frecuencia pseudo-

aleatoria, lo que motiva la reducción de los efectos nocivos de las

interferencias.

Intervalos de tiempos específicos para las transmisiones.

Código de acceso.

Codificación de la cabecera de los paquetes.

Por su parte, un dispositivo Bluetooth puede usar solo uno de estos canales físicos en

un instante de tiempo dado. Sin embargo, en la norma se contempla la existencia

concurrente de múltiples operaciones, es decir, un mismo dispositivo puede

encontrarse realizando varias operaciones tales como transmitir datos y estar a la

espera de ser descubierto o de que le establezcan una conexión. Para ello se ha usado

un sistema de multiplexión por división en el tiempo entre los canales. De esta forma,

se consigue transmitir la sensación de que un mismo equipo puede encontrarse

conectado simultáneamente en varias piconets mientras está siendo descubierto o

esperando el establecimiento de una conexión nueva. En este sentido, algunos

dispositivos avanzados pueden ser capaces de conectarse simultáneamente a más de

un canal, aunque este hecho no queda recogido en la norma.

A continuación se muestran los diferentes canales físicos definidos en el estándar

Bluetooth.

Canal físico básico para piconets. En el estado “Conexión”, este canal se

corresponde con el usado por defecto. Queda definido por el maestro de la

piconet que, por definición, se trata del dispositivo que inicia una conexión

31

mediante paging. Además, el maestro será quien se encargue de controlar el

tráfico de la piconet mediante un esquema de polling. En este tipo de canales,

la secuencia de saltos en frecuencia pseudo-aleatoria hace uso de las 79

frecuencias de RF disponibles y se determinará mediante el reloj del maestro y

su dirección Bluetooth. En relación a la división en intervalos de tiempos, estos

poseen una duración de 625 microsegundos y son numerados de acuerdo a los

27 bits más significativos del reloj del maestro. El rango de numeración va

desde 0 a y es una rango periódico con periodo . Por otro lado, el

maestro siempre empezará a transmitir en un intervalo de tiempo par,

quedando a la espera de recibir datos de los esclavos en los instantes impares.

En el caso de usar paquetes cuya transmisión ocupe varias divisiones

temporales, se puede conmutar la transmisión por el proceso de recepción. De

tal forma que el maestro transmitiría en instantes impares y los esclavos en los

pares. A su vez, después de efectuar una transmisión, un paquete de respuesta

es esperado durante un tiempo tras el comienzo de la transmisión.

El parámetro N es un número entero e impar mayor que cero y su valor

depende del tipo de paquete que se haya transmitido. Por su parte, en el caso

de la recepción, el correlador de acceso buscará un código de acceso correcto

en el canal. Si no se obtiene ningún resultado positivo, entonces el receptor

esperará hasta el siguiente intervalo de recepción. En caso de producirse una

comparación satisfactoria, el receptor quedará pendiente de recibir el resto del

paquete salvo que el destinatario no sea ese dispositivo, haya un error

irrecuperable en la cabecera o este se produzca en la carga del paquete.

Figura 3.3. (a) Transmisión de paquetes multi-intervalos y (b) ciclo de transmisión y recepción de un

transceptor maestro en un modo normal de transmisión para paquetes de un solo intervalo.

Canal físico adaptado para piconets. Este tipo de canal se diferencia del

anterior en que el número de frecuencias que utiliza es inferior a los 79

definidos por la norma. No obstante, existe un mínimo que canales de RF a usar

y se corresponde con 20. Además de este hecho existen una segunda

32

diferencia, es que el mismo mecanismo de canal que hace la frecuencia esclava

es el que realiza anteriormente la transmisión maestra.

Canal físico para Page Scan. Estos canales se caracterizan por seguir un patrón

de salto más lento que los canales físicos para piconets. Este hecho se debe al

uso de una secuencia de salto más pequeña y que es determinada por la

dirección Bluetooth del que busca. En cuanto a la temporización del canal físico

para Page Scan, esta será determinada por el reloj nativo del terminal que

busca los dispositivos. Durante el procedimiento de paging, el maestro

transmitirá mensajes relacionados con el dispositivo al que se quiere conectar.

En un único intervalo de transmisión, el mensaje se transmitirá en dos

frecuencias diferentes como se muestra en la figura 3.4. Para el intervalo de

recepción, el dispositivo escuchará los mensajes de respuestas en dos

frecuencias diferentes.

Figura 3.4. Ciclo Rx/Tx de un transceptor en modo Page. En ella, se usa para las frecuencias de la

secuencia de salto correspondientes a la transmisión y , para las de recepción.

Canal físico para Inquiry Scan. Estos canales se caracterizan por seguir un

patrón de salto más lento que los canales físicos para piconets. Este hecho se

debe al uso de una secuencia de salto más pequeña y que es determinada por

la dirección Bluetooth del que busca. En cuanto a la temporización del canal

físico para Inquiry Scan, esta será determinada por el reloj nativo del terminal

que busca los dispositivos. Durante el proceso de Inquiry o de descubrimiento,

el maestro transmitirá mensajes con el código de acceso general o dedicado.

Por su parte la temporización para el descubrimiento es equivalente al

explicado para el mecanismo de paging.

33

Figura 3.5. Temporización de un paquete de respuesta al inquiry con éxito en la (a) primera mitad del

intervalo y (b) con éxito en la segunda mitad del intervalo.

3.3.2.2. Enlaces físicos

Un enlace físico representa una conexión a nivel de banda base entre dispositivos. Éste

siempre estará asociado a un solo canal físico.

Por su parte, los enlaces físicos poseen un conjunto de propiedades que son comunes

a todos los mecanismos de transporte lógicos. Estas propiedades resultan ser:

Control de potencia.

Supervisión del enlace.

Encriptación.

Cambio de la tasa de transferencia de datos dada según la calidad del canal.

Control de paquetes que ocupen varios intervalos temporales.

De las propiedades anteriores cabe destacar la supervisión del enlace debido a que es

una tarea crítica. Una conexión puede romperse por motivos tales como que uno de

los terminales haya salido fuera de cobertura, existen muchas interferencias en el

canal o se haya producido un fallo en la alimentación de algún equipo. Puesto que

alguno de estos fallos se produce sin previo aviso, es importante monitorizar el enlace

tanto del lado del maestro como del esclavo para evitar posibles colisiones cuando la

dirección del transporte lógico o de un miembro en estado park se reasigne a otro

esclavo.

Para poder detectar las pérdidas, tanto el maestro como el esclavo usarán un

temporizador de supervisión del enlace. Una vez recibido una cabecera de paquete

válida con la dirección de un esclavo en el enlace físico, el temporizador se reiniciará. Si

en algún instante durante el estado de conexión, el temporizador alcanza su valor

límite, , la conexión se considerará desconectada. Este mismo

temporizador es el usado para los transportes lógicos ACL, SCO y eSCO.

34

Finalmente, el valor del temporizador se negocia con el Gestor del enlace, eligiéndose

de tal forma que resulte mayor que los periodos asociados a los estados sniff y hold.

3.3.2.3. Transportes lógico

En este apartado se procederá a describir los mecanismos que la especificación

Bluetooth posee para ofrecer diferentes servicios que cubran las exigencias de los

usuarios. En concreto se definen cinco tipos de transportes lógicos:

Orientado a conexión síncrono (SCO, Synchronous Connection-Oriented). Se

caracteriza por ser un enlace punto a punto simétrico entre el maestro y un

esclavo específico. Este transporte lógico se basa en la reserva de intervalos de

tiempos, lo que permite emular una conexión basada en conmutación de

circuitos, ya que dicha reserva es permanente mientras el enlace exista. El

maestro puede soportar hasta tres enlaces SCO a un mismo esclavo o a varios.

Por su parte, un esclavo puede llegar a mantener hasta tres enlaces con un

mismo maestro o dos enlaces si estos proceden de maestros diferentes, lo que

implicaría que el dispositivo esclavo estaría inmerso en varias piconets.

Orientado a conexión síncrono extendido (eSCO, extended Synchronous

Connection-Oriented). Este segundo tipo de enlace síncrono se corresponde

con un transporte lógico punto a punto entre el maestro y un esclavo

específico. Sin embargo, a diferencia de SCO, el enlace puede ser simétrico o

asimétrico, lo que implicaría que el número de intervalos temporales

reservados no tiene por qué ser igual entre el maestro y el esclavo que entre el

esclavo y el maestro. Este transporte lógico se basa en la reserva de intervalos

de tiempos, al igual que SCO, lo que permite emular una conexión basada en

conmutación de circuitos. Por otro lado, eSCO soporta una ventana de

retransmisión inmediatamente después de los intervalos reservados. La unión

de estos intervalos y de la ventana de retransmisión es lo que se conoce como

ventana eSCO.

No orientado a conexión asíncrono (ACL, Asynchronous Connectionless Link).

Este tipo de transporte lógico permite suministrar un mecanismo de transporte

basado en conmutación de paquetes entre el maestro y todos los dispositivos

35

esclavos que constituyan la piconet, incluidos aquellos que ya poseen un enlace

SCO y/o eSCO activo. Para ello hace uso de los intervalos de tiempo no

reservados por los enlaces SCO y eSCO. Por su parte, entre un maestro y un

esclavo tan sólo puede existir un enlace ACL.

Difusión para esclavos activos (ASB, Active Slave Broadcast). Este transporte

lógico se usa cuando el maestro quiere comunicarse con todos los esclavos

activos. No existen asentimientos debido a que el tráfico es unidireccional

desde el maestro de la piconet a los esclavos. Sólo puede ser usado por el

tráfico de grupo L2CAP. Nunca se utilizará por los canales orientados a

conexión de L2CAP, señalización de control L2CAP o por la de LMP.

Difusión para esclavos en estado parked (PSB, Parked Slave Broadcast). Este

transporte lógico se usa cuando el maestro quiere comunicarse con los esclavos

que han sido puestos en estado parked. Este mecanismo de transporte resulta

más complejo que los anteriores por lo que se lleva a cabo en varias fases, cada

una de las cuales posee una finalidad diferente. Estas fases son:

Información de control: usada para transportar los enlaces lógicos LMP.

Información de usuario: utilizada para transportar los enlaces lógicos de L2CAP.

Fase de acceso: transporta la señalización de la banda base.

3.3.2.4. Enlaces lógicos

Los enlaces lógicos se definen como el nivel de la arquitectura más bajo usado para

ofrecer servicios de transporte de datos a los diferentes usuarios de Bluetooth. En la

especificación se definen cinco tipos de enlaces:

Control del enlace (LC, Link Control). Sirve para transportar información de

control del enlace como ARQ, control de flujo y la caracterización de la carga.

Se transporta en todos los paquetes excepto en el paquete ID que no tiene

cabecera.

Control ACL (ACL-C, ACL Control). Se utiliza para transportar la información de

control intercambiada entre el gestor de enlaces del maestro y de los esclavos.

36

Usuario asíncrono/isócrono (ACL-U, User Asynchronous/Isochronous). Se usa

para transportar los datos de usuario L2CAP asíncrono e isócrono. Estos

paquetes pueden ser transmitidos en uno o más paquetes de la banda base.

Usuario síncrono (SCO-S, User Synchronous). Se emplea para transportar de

forma transparente los datos de usuario síncronos. Sobre el viajan el transporte

lógico SCO.

Usuario extendido síncrono (eSCO-S, User Extended Synchronous). Se destina

para transportar de forma transparente los datos de usuario síncronos. Sobre el

viajan el transporte lógico eSCO.

3.4. Código de acceso

Se corresponde con el primer campo que aparece en todos los paquetes Bluetooth. La

estructura genérica de estos se representa en la figura 3.2.4, tanto para modo básico

de transferencia como para el modo EDR.

La misión del código de acceso es identificar todos los paquetes intercambiados en un

canal físico de forma que todos los paquetes que se envíen por el mismo canal físico

estén precedidos del mismo código de acceso. Además, se usa también para

sincronización y compensación del offset de la tensión continua.

Figura 3.6. (a) Estructura de un paquete genérico para el modo básico y (b) Estructura de un paquete

genérico para el modo EDR.

Figura 3.7. Formato del código de acceso.

Existen dos tipos de códigos de accesos, uno corto, que ocupa 68 bits y que está

compuesto únicamente de un preámbulo y una palabra de sincronización, y otro largo,

que añade un tercer campo denominado trailer y cuya longitud se incrementa hasta

los 72 bits.

37

Por otro lado, en la especificación se definen diversos tipos de códigos de accesos. Las

diferencias entre ellos radican en las diferentes formas en las que usan la parte más

baja de la dirección Bluetooth (representada en la norma por sus siglas en inglés: LAP,

Lower Address Part) para construir la palabra de sincronización.

Tipo de código LAP usado Longitud [bits]

CAC Maestro 72

DAC Dispositivo con el que se ha iniciado una conexión 68/72

GIAC Reservado 68/72

DIAC Dedicado 68/72

Tabla 3.4. Resumen de los tipos de códigos de acceso diferentes especificados en la norma.

En relación al preámbulo consiste en un patrón de ceros y unos de 4 símbolos usados

para facilitar la compensación en continua. La secuencia utilizada es 1010 si el bit

menos significativo de la palabra de sincronización comienza por 1 ó 0101, si empieza

por cero.

Figura 3.8. Preámbulo.

Con respecto a la palabra de sincronización, ésta está compuesta por un código de 64

bits derivado de los 24 bits que componen el LAP. La forma en la que se construye

dicha palabra garantiza una gran distancia de Hamming entre las

diferentes palabras de sincornización generadas a partir de los distintos LAPS.

Finalmente, el trailer es un apéndice a la palabra de sincronización cuando la cabecera

del paquete sigue al código de acceso. Esta suele ser la situación del código de acceso

CAC, aunque también suele darse en el DAC y el IAC cuando estos códigos se usan en

los paquetes FHS intercambiados durante una respuesta de tipo page o inquiry. Está

compuesto de un patrón de ceros y unos de cuatro símbolos. De manera que con los

tres bits más significativos de la palabra de sincronización forman un conjunto de 7 bits

de unos y ceros alternos que puede usarse para extender la compensación de DC.

Figura 3.9. (a) Trailer en CAC cuando el bit más significativo es cero y (b) trailer en CAC cuando el bit

más significativo es uno.

38

3.5. Operación del controlador de enlaces

En esta sección se procederá a describir cómo se establece una piconet y cómo los

dispositivos pueden sumarse y retirarse de dicha piconet. También se discutirá el

funcionamiento de las scatternets, o redes compuestas con miembros que pertenecen

a varias piconets a la vez.

Figura 3.10. Diagrama de estados del controlador de estados.

Para moverse de un estado o subestado a otro, se utilizan los comandos del gestor de

enlaces o señales internas del controlador, como puede ser la señal de disparo del

correlador y las señales de vencimiento de los temporizadores.

En relación al estado Standby, este se caracteriza por ser el estado por defecto en el

dispositivo. En él, el terminal puede encontrarse operando en un modo de bajo

consumo donde únicamente se encuentra el reloj en funcionamiento. Este estado

puede ser abandonado para pasar al subestado Page, Page Scan, Inquiry o Inquiry

Scan.

Con respecto al estado de conexión, se corresponde con el estado donde la conexión

entre dos dispositivos se ha establecido y el intercambio de paquetes puede comenzar.

39

En ambos dispositivos se utiliza el código de acceso del canal (CAC, impuesto por el

maestro) y el reloj nativo del maestro. A su vez, en este estado se puede usar la

secuencia de salto de canal básica o adaptada, en cuyo caso se necesitaría el mapa de

canales AFH.

El estado de conexión empieza con un paquete POLL enviado por el maestro para

verificar el cambio de la temporización de él y los saltos de canal. El esclavo puede

responder con cualquier tipo de paquete. Si no respondiera o el maestro no recibiese

respuesta por parte del esclavo, ambos dispositivos pasarían al subestado Page o Page

Scan.

Por su parte, el primer paquete transmitido en el estado de conexión contiene

información de control que permite caracterizar el enlace y dar más detalles de los

dispositivos conectados. Estos mensajes serán intercambiados entre los gestores de

enlaces de ambos dispositivos.

Para informar de la salida del estado Connection, se usan los comandos detach o reset.

En el caso de que el enlace se haya desconectado de manera normal, se usará el

comando detach. Mientras que el comando reset queda reservado para un reinicio del

controlador de enlaces. Después de que este haya sido completado, la operación que

estuviese ejecutándose se perderá.

Por otro lado, en el estado de conexión, un dispositivo no tiene por qué estar siempre

presente en el canal y puede declararse no disponible a través de los modos de

funcionamiento Sniff o Hold.

Figura 3.11. Representación detallada del estado Connection.

Por tanto, dentro del estado Connection se pueden encontrar tres modos de

funcionamiento del dispositivo diferentes, como puede observarse en la Figura 3.11.

Estos modos serán:

Modo activo. En este estado, tanto el maestro como el esclavo

participan en el canal. Hasta siete esclavos pueden encontrarse en el

modo activo en un mismo instante de tiempo. El maestro será quién

planifique los tiempos de transmisión asignados a cada uno según la

demanda de tráfico hacia y desde los distintos esclavos. Además,

soporta transmisiones regulares para almacenar los esclavos

40

sincronizados. Estos dispositivos se conocen como esclavos activos. Si

un esclavo activo no es direccionado, puede retirarse hasta la próxima

nueva transmisión del maestro. Por su parte, cuando un dispositivo está

participando en múltiples piconets, debe escuchar en el intervalo de

tiempo de transmisión del maestro al esclavo correspondiente. Se

recomienda que un dispositivo no abandone una piconet en la que está

participando más de intervalos de tiempo.

Modo Sniff. Durante este modo, el ciclo de actividad del esclavo en la

piconet puede ser reducido. Por ejemplo, se puede pensar en un esclavo

que se encuentra en modo activo sobre un enlace ACL. Él escuchará en

todos los intervalos de tiempos ACL del tráfico del maestro, a menos

que se trate de un enlace perteneciente a una scatternet o esté ausente

debido al modo Hold. Si este dispositivo se encontrase en modo Sniff,

los intervalos de tiempos que el esclavo estaría escuchando se verían

reducidos, de forma que el maestro solo transmitiría en unos intervalos

específicos. Dichos intervalos estarán separados por un tiempo .

Figura 3.12. Esquema temporal del funcionamiento del modo Sniff.

Modo Hold. Cuando un dispositivo entra en modo Hold provoca que,

temporalmente, no se puedan recibir paquetes ACL. No obstante,

cualquier paquete asociado a un enlace síncrono (SCO o eSCO) será

soportado. Esto permite al dispositivo en modo Hold, poder realizar

otras tareas como descubrir nuevos dispositivos o atender a otra

piconet. También puede ser utilizado para hacer entrar al dispositivo en

un modo de bajo consumo. Durante este modo, el esclavo almacena su

dirección de transporte lógica. Por otro lado, antes de poder entrar en

modo Hold, el maestro y el esclavo tiene que ponerse de acuerdo en la

duración del intervalo de tiempo que el esclavo permanecerá en dicho

modo. De esta forma, cuando el esclavo se pase al modo Hold, se

iniciará un temporizador con dicho valor. Cuando éste expire, el esclavo

despertará y se sincronizará a la piconet esperando nuevas

transmisiones del maestro.

41

En la Figura 3.10 se muestra el diagrama de estados del controlador de enlaces y cómo

se puede acceder a cada uno de ellos. En él se observan tres estados principales

denominados standby, connection y park. Además de estos tres estados, existen siete

subestados utilizados para el establecimiento de conexiones y para el descubrimiento

de los dispositivos Bluetooth existentes en el rango de cobertura. Estos siete

subestados se corresponden con:

Page. Se trata de un subestado utilizado por el maestro (fuente) para

activar y conectar a un esclavo (sumidero) en el subestado page scan. El

maestro intenta coincidir con la actividad de exploración del esclavo,

transmitiendo repetidamente los mensajes de paging consistentes en el

código de acceso del dispositivo esclavo en diferentes canales. Puesto

que el reloj del maestro y del esclavo no están sincronizados, el maestro

no conoce exactamente cuando el esclavo despertará ni en que salto de

frecuencia. Por tanto, el maestro transmite un tren de idénticos

mensajes de page scan en diferentes frecuencias y escucha entre los

intervalos de transmisión hasta que recibe una respuesta del esclavo.

El maestro comunica la dirección Bluetooth del esclavo al controlador. Ésta se usará

por el maestro para determinar la secuencia de saltos del subestado page. Para la fase

de la secuencia, el maestro usará una estimación del reloj del esclavo. Aunque el

maestro y el esclavo usen la misma secuencia de saltos, la fase puede ser diferente, de

forma que el esclavo y él no se sincronicen. Por este motivo, el maestro transmite

varios mensajes page durante un intervalo corto de tiempo en un conjunto de

frecuencias activas. Durante cada intervalo de transmisión, el maestro transmitirá

secuencialmente en dos frecuencias diferentes. En el siguiente intervalo de recepción,

el receptor escuchará secuencialmente en dos frecuencias diferentes.

Figura 3.13. Intercambio de mensajes durante la fase inicial de la conexión cuando un esclavo

responde un primer mensaje page.

42

Del subestado page se puede acceder desde el estado Standby o Connection.

Page Scan. Se corresponde con un estado donde un dispositivo puede

ser configurado para usar un procedimiento de exploración estándar o

entrelazado con el fin de establecer una conexión. Durante una

exploración normal, el dispositivo escucha durante una ventana de

tiempo (11,25 ms por defecto), mientras que la exploración

entrelazada se mejora con dos exploraciones, una tras otra, de

. Por este motivo, si el intervalo de exploración no es al

menos dos veces la ventana de exploración, el modo entrelazado no se

podrá usar. Durante esta ventana, el dispositivo escuchará en una única

frecuencia, mientras su correlador espera encontrar su código de acceso

de dispositivo (DAC). La ventana de exploración deberá ser lo

suficientemente larga como para que dé tiempo a completar la

exploración de 16 frecuencias. Cuando el dispositivo entra en este

estado, seleccionará la frecuencia de exploración de acuerdo a la

secuencia de saltos determinada por la dirección Bluetooth del

dispositivo. La fase de la secuencia se determinará por los bits 12, 13,

14, 15 y 16 del reloj nativo del dispositivo. Cada 1.28 segundos se

seleccionara una frecuencia diferente. Este estado puede ser accesible

desde los estados Standby y Connection.

Master Response. Se corresponde con el subestado en el que entra el

dispositivo maestro cuando recibe un mensaje de respuesta page por

parte del esclavo. Si se revisa la figura 3.13, se podrá comprobar que se

corresponde con el paso 2. En esta situación, se congelará en el maestro

el valor actual del reloj que se usa como entrada en el esquema de

selección de salto para el subestado page. Este valor, se transmitirá en

un paquete FHS con destino el terminal esclavo. En él, se halla todo la

información necesaria para construir el código de acceso al canal (CAC)

sin requerir operaciones matemáticas para derivar la dirección de

acceso del dispositivo Bluetooth maestro. El paquete FHS se transmitirá

en el comienzo del siguiente intervalo de tiempo entre el maestro y el

esclavo tras la respuesta del esclavo.

Después de que se haya enviado, se esperará durante un segundo un mensaje de

respuesta por parte del esclavo como asentimiento de la correcta recepción del

paquete FHS. Esta respuesta contendrá el DAC del dispositivo esclavo. Si no se recibe

respuesta, el maestro retransmitirá el paquete FHS con un valor actualizado del reloj y

usando aún los parámetros del esclavo cada vez hasta que se reciba un segundo

mensaje de respuesta o el temporizador asociado al tiempo de espera de una

43

respuesta cumpla. En este último caso, el maestro volverá al subestado page y enviará

un error al gestor de recursos de la banda base.

Por su parte, si la respuesta del esclavo se recibe, el maestro usará sus parámetros, es

decir, pasará a utilizar su CAC y su reloj. Finalmente, el maestro entrará en el estado de

Connection.

Slave Response. Este subestado se corresponde con el estado del

controlador de enlaces para responder un mensaje de tipo page. Como

se puede observar en la figura 3.10, después de recibir el mensaje page

en el paso 1, el esclavo transmitirá una respuesta que contiene su

código de acceso de dispositivo, es decir, deberá responder con su DAC.

Dicho mensaje de respuesta, se generará después de recibir el

mensaje page del paso 1. Acto seguido, el esclavo activará su receptor

transcurridos desde el comienzo del mensaje de respuesta, a

la espera de recibir un paquete FHS.

Figura 3.14. Temporización de los paquetes de respuestas en el subestado page.

Si un paquete FHS se recibe en este subestado dentro de los límites temporales

establecidos, el esclavo responderá con mensaje para asentir la recepción de dicho

paquete. En ese instante, el esclavo cambiará al CAC del maestro y modificará el reloj

en base al recibido en el paquete FHS. Finalmente, el esclavo entrará en el estado

Connection, usando el reloj y la dirección Bluetooth del maestro para determinar la

secuencia de salto en frecuencia y el CAC.

Por el contrario, si la configuración de la conexión falla antes de que el estado

Connection sea alcanzado, el esclavo estará escuchando en el canal siempre y cuando

no se haya recibido un paquete FHS o el temporizador asociado a la recepción de un

mensaje de respuesta venza. No obstante, cada , deberá seleccionar la

44

siguiente secuencia de salto en frecuencia con dirección maestro-esclavo. Si no se

recibe nada después de que se cumpla nuevamente dicho temporizador, el esclavo

deberá devolver al subestado page scan durante un periodo de búsqueda.

Inquiry. Este subestado se usa para descubrir a nuevos dispositivos. Es

muy similar al subestado Page. En concreto, las temporizaciones

asociadas a la transmisión y a la recepción serán las mismas. Con

respecto a las frecuencias de transmisión y de recepción, éstas seguirán

la secuencia de salto de inquiry y de inquiry response, que se

determinarán por el GIAC y el código nativo de reloj del dispositivo que

realiza el proceso de descubrimiento. Por su parte, entre cada

transmisión, se buscarán mensajes de respuestas (paquete FHS).

Cuando una respuesta se reciba, el paquete entero se procesará. Si el

bit EIR del paquete FHS se encuentra fijado a uno, quiere decir, que se

tratará de una respuesta extendida y se deberá esperar tras la

recepción de la respuesta para recibir la respuesta extendida. Todos

estos paquetes no se asentirán.

Figura 3.15. Formato del paquete FHS.

Por otro lado, de este subestado tan solo se puede salir de tres formas diferentes:

o El gestor de recursos de la bandabase genera un comando de

parada tras alcanzar un número de respuestas especificado. En

caso de no especificar dicho valor, el gestor de recursos no

podrá solicitar la salida del subestado.

o El temporizador asociado al tiempo de descubrimiento vence.

o El host que alberga al dispositivo Bluetooth decide cancelar el

descubrimiento mediante el envío de un comando.

Al subestado de inquiry se puede acceder desde los estados standby o connection. No

obstante, antes de poder acceder al inquiry desde el estado Connection, el dispositivo

debe liberar tanta capacidad del enlace como le sea posible para poder llevar a cabo la

búsqueda de nuevos terminales. Para garantizar esta premisa, en la especificación se

aconseja utiliza los modos sniff, hold o park. Sin embargo, los intervalos de tiempos

asignados a las conexiones síncronas no se verán perturbados por el proceso de

descubrimiento. De hecho, se interrumpirá para poder transmitir en los intervalos de

tiempo reservados para los enlaces SCO y eSCO, puesto que son más prioritarios que la

acción de descubrir nuevos dispositivos.

45

Inquiry Scan. En este subestado se lleva a cabo la tarea de buscar el

código de acceso IAC durante un período lo suficientemente largo como

para completar dicha búsqueda en las 16 frecuencias asignadas. Resulta

similar al subestado page scan, salvo que en vez de buscar dispositivos

por el DAC, se hace mediante el IAC. Existen dos tipos de búsquedas, la

normal y la entrelazada. En el caso de una búsqueda normal, la longitud

del período de búsqueda se denota por y las frecuencias

donde realizarla se determinan por . Para el modo entrelazado de

búsqueda, lo que se hace es mejorar el proceso de búsqueda mediante

dos exploraciones en diferentes frecuencias, una se efectúa en el salto

de frecuencia definido por el modo normal y el otro se realiza en

. Para que se pueda ejecutar de forma correcta, es

necesario que el intervalo de búsqueda sea al menos dos veces

. Además, la fase es determinada por el reloj nativo del

dispositivo que se encuentra en este subestado, cambiando cada 1.28

segundos.

Este subestado puede ser accedido desde los estados standby y connection. Al igual

que sucede en el estado inquiry, el dispositivo deberá reservar toda la capacidad

posible.

Inquiry Response. Se trata del subestado de respuesta a los mensajes de

inquiry. No puede enmarcarse dentro del subestado Slave Response,

debido a que este último se aplica sólo como respuesta a los mensajes

page. Cuando el mensaje inquiry se recibe en el subestado inquiry scan,

el receptor devolverá un paquete FHS como respuesta conteniendo la

dirección Bluetooth del dispositivo y otros parámetros. En el caso de

que el receptor estuviera esperando una respuesta extendida, se

enviaría la respuesta extendida transcurrido el tiempo necesario tras el

paquete FHS de respuesta. El mecanismo implementado en el esclavo

será el siguiente:

o En el primer mensaje inquiry recibido en el subestado inquiry

scan, el esclavo entrará en el subestado inquiry response.

o Si el esclavo está configurado para devolver un mensaje de

respuesta extendida, en el paquete FHS de respuesta, el bit EIR

se encontrará fijado a uno. Pasados , responderá con el

mensaje de respuesta extendida.

o En caso contrario, el dispositivo esclavo responderá únicamente

con el paquete FHS.

46

o En el caso de que existan muchos dispositivos Bluetooth,

correctamente configurados, en las proximidades del terminal

que está efectuando el proceso de descubrimiento, puede surgir

un problema si todos los dispositivos intentan responder a la vez

el mensaje de inquiry. Sin embargo, debido a que cada

dispositivo tiene un reloj corriendo arbitrariamente, es poco

probable que todos ellos usen la misma fase en la secuencia de

salto del proceso de descubrimiento. Para evitar colisiones

repetitivas, se ha implementado un sistema de espera aleatorio.

Si el dispositivo recibe un mensaje inquiry y responde con un

paquete FHS, generará un número aleatorio entre 0 y un número

máximo. Este último puede ser de 1023 para intervalos de

búsquedas mayores que 1.28 segundos o tan pequeño como 127

si el intervalo es inferior a 1.28 segundos.

Por su parte, tras salir de este subestado, el dispositivo podrá volver al estado de

connection o standby, aunque antes de realizar este paso se permite la transición hacia

el subestado page scan.

3.6. LMP

Cuando dos dispositivos Bluetooth son descubiertos en el rango de cobertura de

ambos y deciden establecer una conexión entre ellos, los gestores de enlaces (en

inglés, Link Manager, LM) de ambos dispositivos interactúan entre sí intercambiando

una serie de mensajes para gestionar y controlar el la comunicación entre ellos. Al

conjunto de mensajes que intercambian bajo una serie de reglas se conoce como

Protocolo de Gestión de Enlaces (en inglés, Link Manager Protocol, LMP) y se usa para

controlar y negociar todos los aspectos de las conexiones Bluetooth entre dos

dispositivos. Esto incluye la configuración y control de enlaces y transportes lógicos y el

control de los enlaces físicos. En este punto cabe destacar que todos los mensajes LMP

se aplicarán exclusivamente al enlace físico y a los enlaces y transportes lógicos

asociados a la comunicación establecida entre el dispositivo emisor y el receptor, y

viceversa.

47

Figura 3.16. Operación del protocolo de gestión de enlaces.

Algunos de los servicios soportados por LMP son:

Transmisión y recepción de datos.

Petición de nombre.

Petición de las direcciones de enlace.

Establecimiento de la conexión.

Autenticación.

Negociación del modo del enlace y establecimiento. Esta característica

puede variar en el transcurso de una conexión.

Este protocolo está constituido por un conjunto de mensajes, denominados PDU, que

serán intercambiados sobre enlaces lógicos de tipo ACL-C en los transportes lógicos

ACL. Dichos mensajes poseen una prioridad más alta que los datos de usuario, para

que un mensaje que necesite enviar el gestor de enlaces no se vea retrasado por el

tráfico de los protocolos superiores, como L2CAP.Sin embargo, sí que es posible que

las PDUs se vean retrasadas por las retransmisiones múltiples de paquetes de banda

base individuales. En cualquier caso, el gestor de enlaces filtra e interpreta estos

mensajes en el lado receptor por su entidad par y no se propaga a los niveles

superiores. Las capacidades de detección y corrección del transporte lógico ACL son,

en general, suficientes para los requisitos de LMP. Por tanto, las PDUs no contienen

48

ninguna información adicional para informar de la detección de errores más allá de las

que puedan realizarse a través de los controles realizados al contenido de los mensajes

de LMP.

Por su parte, existen 56 PDUs definidas en la especificación Bluetooth, cada una de las

cuales, se utiliza para llevar a cabo una función diferente. A cada PDU se le asigna un

código de operación de 7 ó 15 bits que permite identificar de forma unívoca los

diferentes mensajes. Los primeros 7 bits del código de operaciones y un identificador

de transacción son localizados en el primer byte de la carga. Si el campo asociado al

código de operación tiene un valor comprendido entre 124 y 127, entonces se le añade

un byte adicional en la carga para generar un código de operación de 15 bits. El resto

de parámetros que pueda contener la PDU se ubicarán en los bytes siguientes.

Figura 3.17. Estructura de las PDUs intercambiadas por los gestores de enlace.

Cada PDU puede ser de carácter obligatorio u opcional. Desde este punto de vista, el

gestor de enlaces no requiere transmitir una PDU opcional, pero deber ser capaz de

reconocer todas las PDU, obligatorias u opcionales, y, si se requiere una respuesta,

enviar una contestación válida, incluso cuando se trate de una característica que no

esté soportada. No obstante, es posible solicitar una lista de cuáles de las PDUs

opcionales están soportadas.

Finalmente, LMP opera en términos de transacciones. Una transacción hace referencia

a un conjunto de mensajes intercambiados entre dos dispositivos con una finalidad

particular. Todas las PDUs que forman parte de la misma transacción deberán tener el

mismo identificador que se almacena como parte del primer byte del código de

operaciones. Éste se encuentra en el bit menos significativo. Valdrá “0” si la PDU forma

parte de una transacción iniciada por el maestro y “1” en caso contrario, es decir, si la

transacción fue iniciada por el esclavo.

3.7. Modos de operación

Existen tres modos de operación diferentes:

49

Modo de retención (Hold mode): el transporte lógico ACL de una

conexión entre dos dispositivos Bluetooth se puede poner en modo de

retención durante un tiempo especificado. Durante este tiempo, el

maestro no puede transmitir paquetes. Normalmente, se activa este

modo cuando no hay necesidad de enviar datos durante un período

relativamente extenso. Durante dicho período, se puede apagar el

transceptor para ahorrar energía. No obstante, este modo también se

puede utilizar si el dispositivo necesita descubrir nuevos terminales o

ser descubierto por otros dispositivos. Finalmente, tanto el maestro

como el esclavo pueden solicitar entrar en modo retención.

Modo de escucha selectiva (Sniff mode): se corresponde con otro modo

de funcionamiento que permite ahorrar energía en los dispositivos

Bluetooth. Para entrar en el modo de escucha selectiva, el maestro y el

esclavo negocian un intervalo y un desplazamiento de escucha selectiva,

que especifica la temporización de las franjas de escucha selectiva.

Después de eso, las franjas de escucha selectiva continúan de forma

periódica con el intervalo especificado. Cuando el enlace se encuentra

en este modo, el maestro sólo puede iniciar una transmisión en dicha

franja. Por su parte, existen dos parámetros que controlan la actividad

de escucha en el esclavo:

o Duración de la escucha selectiva: determina durante cuántas

franjas debe escuchar el esclavo, comenzando por la de escucha

selectiva, incluso si no recibe un paquete con su propia dirección

de miembro activo.

o Fin de escucha selectiva: determina cuántas franjas adicionales

debe escuchar el esclavo si continúa recibiendo sólo paquetes

con su propia dirección de miembro activo.

Finalmente, el maestro puede forzar al esclavo a entrar en modo de escucha selectiva,

pero tanto el maestro como el esclavo pueden solicitar por propia voluntad entrar en

este modo. Al recibir la solicitud, se puede devolver la misma con los parámetros

modificados, o se puede finalizar la negociación.

Modo de aparcamiento (Park mode): si no es necesario que un esclavo

participe en el canal, pero aun así debe mantenerse sincronizado con los

saltos en frecuencias, se puede colocar al esclavo en modo de

aparcamiento. En él, el dispositivo abandona su dirección de miembro

activo. Por otro lado, cuando se coloca un esclavo en modo aparcado, se

le asigna una dirección de miembro aparcado exclusiva, que puede ser

50

utilizada por el maestro para desaparcar dicho esclavo. Incluso sin su

dirección de miembro activo, el dispositivo puede todavía sincronizarse

con el canal despertándose en respuesta a mensajes emitidos a

intervalos predeterminados. El maestro también puede cambiar los

parámetros del modo de aparcamiento, transferir información de

difusión o dejar que el esclavo aparcado solicite acceso al canal.

El maestro puede forzar la entrada en modo aparcamiento. En este procedimiento, el

maestro finaliza la transmisión del mensaje actual y luego envía la orden para pasar a

modo de aparcamiento. Cuando el esclavo la recibe, finaliza la transmisión que

estuviera realizando y responde con un mensaje aceptando la orden. No obstante, el

maestro también puede solicitar la entrada en dicho modo en vez de forzarla. Para

ello, el maestro finaliza la transmisión y envía una petición de entrada en modo

aparcado. Si el esclavo acepta la solicitud para entrar en modo aparcamiento, finaliza

la transmisión actual y luego responde con un mensaje de aceptación. Si el esclavo

rechaza dicha petición, respondería con una negación. Finalmente, el esclavo puede

solicitar ser colocado en modo aparcado. En ese caso, el esclavo finaliza la transmisión

del mensaje actual y luego envía al maestro una solicitud de entrada en modo

aparcado. Si el maestro acepta la petición de modo aparcado, finaliza la transmisión

del mensaje actual y luego envía la orden de entrada en modo aparcado. Si el maestro

rechaza dicho modo, enviaría un mensaje rechazando dicha petición.

3.8. HCI

Las siglas inglesas HCI se corresponden con Host Controller Interface y es la parte de la

especificación Bluetooth que se encarga de suministrar una interfaz de comandos al

controlador de la banda base y gestor de enlaces, y de acceder al estado del hardware

y de los registros de control. En esencia, esta interfaz da un método homogéneo de

acceso a las capacidades de la banda base de Bluetooth. Se divide en tres secciones:

HCI Firmware. Se ubica en el controlador del transceptor Bluetooth. Esta

sección implementa los comandos HCI para el hardware Bluetooth

mediante acceso a las órdenes de la banda base, comandos del gestor

de enlace y a los registros de control, de estado y de eventos.

La capa de transporte. Se corresponde con la sección del HCI encargado

de interconectar al HCI driver con el HCI firmware. Un ejemplo de la

capa de transporte podría ser el conjunto de capas que pueden existir

entre el controlador HCI en un PC (véase, por ejemplo, la pila BlueZ) y el

firmware existente en un transceptor Bluetooth. Todas esas capas

intermedias, desde el sistema operativo hasta el mecanismo de

comunicación utilizado, USB, UART o RS-232, deben suministrar la

51

capacidad de transferir datos sin un conocimiento exhaustivo de los

datos que están siendo transferidos.

HCI driver. Está localizado en el transceptor Bluetooth o puede estar

integrado en el equipo que alberga el transceptor. Esta sección hace

referencia a la entidad software. El equipo recibirá notificaciones

asíncronas de eventos HCI, los cuales se usan para notificar cuando

ocurre algún suceso susceptible de ser notificado. Cuando el host

descubre que un evento ha tenido lugar, entonces analizará el paquete

recibido para determinar el tipo de evento acaecido.

Figura 3.18. Información general de extremo a extremo de las capas de software inferiores utilizadas

en la transferencia de datos.

3.8.1. Comandos HCI

HCI otorga un método homogéneo de acceso, basado en órdenes o comandos, a las

capacidades de Bluetooth. Para poder efectuar tal tarea, estos se encuentran

ordenados en grupos según la función que realicen. Los diferentes comandos que se

pueden encontrar en la norma son:

52

Grupo Descripción Ejemplo

Eventos genéricos

Los eventos genéricos pueden ocurrir debido a

múltiples comandos o eventos que pueden suceder

en cualquier instante

Command Complete

Event

Configuración del

dispositivo

Se utilizan para ubicar al Controlador en un estado

conocido Reset Command

Control del

controlador de flujo

Se usan para controlar los flujos de datos desde el

Host al controlador

Read Buffer Size

Command

Información del

controlador

Permiten que al Host descubrir información local

sobre el dispositivo

Read Local Version

Information Command

Configuración del

controlador

Dejan configurar los parámetros globales de

configuración

Read Local Name

Command

Descubrimiento de

dispositivos

Son comandos o eventos que consienten a un

dispositivo descubrir otros dispositivos que se

encuentran en su rango de cobertura

Inquiry Command

Configuración de

conexiones Permiten a un dispositivo realizar una conexión a otro

Create Connection

Command

Información remota Acceden a la información de configuración de un

dispositivo remoto que es descubrible

Remote Name Request

Command

Conexiones

síncronas

Se usan para el establecimiento de conexiones

síncronas

Setup Synchronous

Connection Command

Estado de la

conexión

Obtienen la configuración de un enlace,

especialmente utilizados para los enlaces de bajo

consumo

Hold Mode Command

Estructura de la

Piconet Permiten descubrir y reconfigurar una piconet

Role Discovery

Command

Calidad de servicio Especifican los parámetros para fijar una determinada

calidad en el servicio

Flow Specification

Command

Enlaces físicos Configuran un enlace físico Read Link Supervision

Timeout Command

Control de flujo en el

Host

Se utilizan para controlar el flujo de datos hacia el

Host

Host Buffer Size

Command

Información del

enlace Obtienen información sobre un enlace particular

Read LMP Handle

Command

Autenticación y

encriptación

Permiten la autenticación de un dispositivo remoto y

la encriptación de un enlace

Authentication

Requested Command

Pruebas Se utilizan para poner a un dispositivo en modo de

prueba y verificar el comportamiento del mismo

Read Loopback Mode

Command

Tabla 3.3. Comandos HCI: agrupación y descripción.

3.9. L2CAP

Dentro de la especificación Bluetooth, el protocolo L2CAP (Logical Link Control

Adaptation Protocol, Protocolo de Adaptación y Control de Enlaces Lógicos) se encarga

de la multiplexación de los protocolos de niveles superiores y de las tareas de

segmentación y recomposición de paquetes. También se encarga de transportar

53

información de calidad de servicio entre un dispositivo y otro. Al igual que LMP, L2CAP

se halla en un nivel superior a la banda base y reside en el nivel de enlace de datos del

modelo de referencia OSI.

Figura 3.19. Ubicación de L2CAP dentro de la pila de protocolos de Bluetooth.

L2CAP permite que las aplicaciones y protocolos de nivel superior transmitan y reciban

paquetes de datos de una longitud máxima de 64 KB de longitud. Además, también

contempla control de flujo por canal y retransmisiones a través de los modos de

control de flujo y retransmisión, respectivamente.

Figura 3.20. Diagrama de bloques del protocolo L2CAP.

En otro orden, mientras que en la especificación de la banda base se definieron dos

tipos de enlaces (enlaces síncronos orientados a conexión, SCO, y enlaces asíncronos

no orientados a conexión, ACL), el protocolo L2CAP está definido únicamente para

enlaces de tipo ACL y no puede existir nada más que un enlace de este tipo. Esto se

54

debe a que L2CAP depende de las comprobaciones de integridad en el nivel de banda

base para proteger la información transmitida, siendo los enlaces ACL los únicos

capaces de satisfacer dichas exigencias a través de un esquema ARQN/SEQN de un bit.

Entre las características de L2CAP están la sencillez y una baja sobrecarga del enlace, lo

que le hace apropiado para su implementación en dispositivos con recursos de cálculo

y memoria limitados como teléfonos móviles, sistemas empotrados o dispositivos PDA.

Estas características le permiten alcanzar una elevada eficiencia de ancho de banda sin

consumir demasiada energía, de acuerdo con los objetivos de eficiencia energética de

la comunicación establecidos en la interfaz radio Bluetooth.

Además de su eficiencia, realiza las siguientes tareas:

Multiplexación de protocolos y/o canales. El hecho por el que la

multiplexación de los protocolos superiores y de los canales se

efectuada por L2CAP se debe a que la banda base no posee ningún tipo

de campo identificativo que permita realizar dicha tarea.

Segmentación y re ensamblado. Si L2CAP tiene el control sobre la

longitud de las tramas transmitidas, se favorece el funcionamiento de

muchas aplicaciones multiplexadas sobre L2CAP. Esto se debe a:

o La capa de segmentación dejará la separación necesaria entre las

unidades de datos de las aplicaciones para satisfacer los

requisitos de latencia.

o La gestión de la memoria y de los buffers se resulta más sencilla

cuando L2CAP controla el tamaño de los paquetes.

o La corrección de errores mediante retransmisiones se puede

efectuar de manera más eficiente.

o La cantidad de datos que se destruye cuando una PDU del

protocolo L2CAP se corrompe o se pierde puede hacerse más

pequeña que la unidad de datos de la aplicación.

o La aplicación está desacoplada de la segmentación requerida

para encapsular los paquetes de la aplicación en los de las capas

inferiores de la especificación Bluetooth.

Control de flujo por canal L2CAP. Este se implementa debido a que el

control de flujo de tipo stop-and-go que se usa en la banda base puede

no ser suficiente para la mayoría de las aplicaciones. Por este motivo,

L2CAP también provee un servicio de control de flujo para aplicaciones

55

o perfiles que puedan necesitarlo, sin necesidad que lo implemente

estos. El uso de dicho control de flujo es un aspecto opcional del

protocolo.

Control de errores y retransmisiones. Algunas aplicaciones requieren

una tasa de error residual mucho más pequeña que la suministrada por

la banda base. L2CAP incluye comprobaciones de errores adicionales y

retransmisiones de tramas L2CAP.

Fragmentación y recombinación. Las capas inferiores tiene limitada las

capacidades de transmisión por lo que podrían requerir el uso de

fragmentos de tamaños diferentes a los creados por la subcapa de

segmentación de L2CAP. Por tanto, las capas por debajo de L2CAP

pueden fragmentar y recombinar PDUs de L2CAP para crear fragmentos

que se ajusten a las capacidades de la capa. Durante una transmisión,

muchos niveles diferentes de fragmentación y recombinación pueden

ocurrir en ambos dispositivos.

Calidad de servicio. Durante el proceso de establecimiento de una

conexión L2CAP, se permite el intercambio de información atendiendo a

la calidad de servicio esperada entre los dos dispositivos Bluetooth.

Cada implementación L2CAP monitoriza los recursos usados por el

protocolo y se asegura que la calidad de servicio se satisface.

3.9.1. Modo de operación de L2CAP

L2CAP está basada en torno al concepto de canales. A cada una de las terminaciones

de un canal L2CAP se le denomina identificador de canal (Channel Identifier, CID). De

esta forma es como se conoce al nombre que representa a una terminación de un

canal lógico en un dispositivo. Su alcance es local, es decir, únicamente afecta al

dispositivo en cuestión. El conjunto de valores que puede tomar el identificador de

canal se representa en la tabla 3.4.

En relación a la asignación de CID, esta es relativa a un dispositivo en concreto y la

asignación de los mismos puede ser totalmente diferente en otro terminal, salvo que

se usen los CIDs reservados que se muestran en la tabla 3.4.

56

CID Descripción

0x0000 Identificador nulo. Se corresponde con un identificador ilegal y nuca podrá usarse como

una terminación destinataria

0x0001 Canal de señalización

0x0002 Recepción de canales no orientados a conexión

0x0003-

0x003F Reservados para funciones específicas de L2CAP

0x0040-

0xFFFF Asignados dinámicamente

Tabla3.4. Descripción de los diferentes CID que se pueden utilizar.

La figura 3.21 muestra el uso de varios identificadores CID entre entidades L2CAP

situadas al mismo nivel en dispositivos diferentes. Los canales de datos orientados a

conexión representan una comunicación entre dos dispositivos, donde un CID

identifica a cada extremo del canal. Los canales no orientados a conexión limitan el

flujo de datos a una única dirección. Estos canales se utilizan para soportar un “grupo”

de canales, donde el CID del origen representa a uno o más dispositivos remotos. En

una entidad L2CAP, es obligatorio el soporte de un canal de señalización que permita

crear y establecer canales orientados a conexión y negociar cambios en las

características de los canales orientados y no orientados a conexión. Además de todos

estos CID, se reserva uno más para todo el tráfico entrante de canales de datos no

orientados a conexión. En la figura, se utiliza un CID para representar un grupo

formado por los dispositivos 3 y 4. El tráfico que se envía desde este CID se dirige al

canal remoto reservado para el tráfico de datos no orientado a conexión.

Figura 3.21. Ejemplo del uso y significado del campo CID.

Con respecto al modo de funcionamiento de L2CAP, este protocolo puede operar de

tres formas diferentes:

Modo L2CAP básico.

57

Modo control de flujo. En este modo, en caso de pérdida no se realizan

retransmisiones, sino que se detecta las PDUs perdidas y se notifican a

las capas superiores.

Modo retransmisión. Se caracteriza por la utilización de un

temporizador que garantiza que todas las PDUs son entregadas a la

entidad L2CAP par, retransmitiendo al vencimiento del mismo aquellas

que fuesen necesarias. Se utiliza un mecanismo de tipo go-back-n,

gracias al cual se puede simplificar el protocolo y limitar los requisitos

de los buffers.

El modo L2CAP básico es el modo ejecutado por defecto, es decir, cuando el

dispositivo no ha sido configurado previamente para funcionar en alguno de los otros

dos.

3.10. Perfiles

Para que un dispositivo pueda utilizar la tecnología inalámbrica Bluetooth, debe saber

interpretar los perfiles Bluetooth, que describen las distintas aplicaciones posibles.

Estos perfiles son guías que indican los procedimientos por los que los dispositivos

equipados con tecnología Bluetooth se comunican entre sí. Existe un amplio abanico

de perfiles que detallan los diferentes tipos de uso y aplicaciones de la tecnología

inalámbrica Bluetooth. Al seguir las directrices proporcionadas en las especificaciones

Bluetooth, los desarrolladores pueden crear aplicaciones compatibles con otros

dispositivos que se ajusten a este estándar.

Cada perfil incluye, como mínimo, información sobre las siguientes cuestiones:

Dependencia de otros perfiles

Propuestas de formato de interfaz de usuario

Características concretas de la pila de protocolos Bluetooth utilizada por

el perfil. Para realizar su función, cada perfil se sirve de ciertas opciones

y parámetros en cada capa de la pila. También se puede incluir un breve

resumen de los servicios requeridos si resulta necesario.

En la tabla 3.5, se recogen todos los perfiles soportados por la especificación Bluetooth

v.2.1, así como los protocolos en los que se apoyan estos para hacer uso de las capas

inferiores de la norma.

58

Perfil Descripción

Perfil de distribución de

audio avanzado (A2DP)

El perfil A2DP describe cómo transferir sonido estéreo de alta calidad de

una fuente de sonido a un dispositivo receptor.

Protocolo de control de

audio y vídeo (AVRCP)

El perfil AVRCP proporciona una interfaz estándar para manejar

televisiones, equipos de alta fidelidad o cualquier otro equipo electrónico,

y permitir así que un único control remoto, o cualquier otro tipo de mando,

controle todo el equipo de audio y vídeo al que el usuario tiene acceso.

Perfil básico de imagen

(BIP)

El perfil BIP establece cómo puede controlarse remotamente un dispositivo

de imagen, así como la forma de enviarle órdenes de impresión y de

transferencia de imágenes a un dispositivo de almacenamiento.

Perfil básico de impresión

(BPP)

El perfil BPP permite enviar mensajes de texto, de correo electrónico,

tarjetas de visita electrónicas e imágenes, entre otras cosas, a las

impresoras disponibles dependiendo de las tareas de impresión.

Perfil de acceso RDSI

común (CIP)

El perfil CIP establece cómo se deben transferir las señales RDSI a través de

una conexión inalámbrica Bluetooth.

Perfil de telefonía

inalámbrica (CTP)

El perfil CTP describe la implementación de un teléfono inalámbrico a

través de un enlace inalámbrico Bluetooth.

Perfil de red de marcado

(DUN)

El perfil DUN proporciona un acceso telefónico estándar a Internet y a

otros servicios de marcado a través de una conexión Bluetooth.

Perfil de fax (FAX) El perfil FAX describe cómo un dispositivo terminal puede utilizar a otro

como puerta de enlace para la transmisión de faxes.

Perfil de transferencia de

archivos (FTP)

El perfil FTP establece los procedimientos de exploración de carpetas y

archivos de un servidor a través de un dispositivo cliente.

Perfil de distribución

genérica de audio y vídeo

(GAVDP)

El perfil GAVDP sienta las bases de los perfiles A2DP y VDP, pilar de los

sistemas diseñados para la transmisión de sonido e imagen mediante la

tecnología Bluetooth.

Perfil genérico de

intercambio de objetos

(GOEP)

El GOEP se utiliza para transferir objetos de un dispositivo a otro.

Perfil manos libres (HFP) El perfil HFP describe cómo un dispositivo que actúa como puerta de

enlace puede utilizarse para realizar y recibir llamadas a través de un

dispositivo manos libres.

Perfil de sustitución de

cable de copia impresa

(HCRP)

El perfil HCRP describe cómo imprimir archivos mediante un enlace

inalámbrico Bluetooth utilizando controladores en el proceso.

Perfil de auricular (HSP) El HSP describe cómo un auricular con tecnología Bluetooth se comunica

con otro dispositivo con tecnología Bluetooth.

Perfil de dispositivo de

interfaz humana (HID)

El perfil HID recoge los protocolos, procedimientos y características

empleados por las interfaces de usuario Bluetooth tales como teclados,

dispositivos punteros, consolas o aparatos de control remoto.

Perfil de

intercomunicador (ICP)

El perfil ICP establece cómo conectar dos teléfonos móviles con tecnología

Bluetooth dentro la misma red sin utilizar la red telefónica pública.

Perfil de introducción de

objetos (OPP)

Este perfil distingue entre servidor y cliente de introducción (push) de

objetos.

Perfil de redes de área

personal (PAN)

El perfil PAN describe cómo dos o más dispositivos con tecnología

Bluetooth pueden formar una red ad hoc y cómo ese mismo mecanismo

permite acceder a la red de forma remota a través de un punto de acceso.

Perfil de aplicación de El perfil SDAP detalla cómo una aplicación debe utilizar el perfil SDP para

59

descubrimiento de

servicio (SDAP)

identificar los servicios de un dispositivo remoto.

Perfil de servicio de

puerto (SPP)

El perfil SPP describe cómo configurar puertos de serie y conectar dos

dispositivos con tecnología Bluetooth.

Perfil de sincronización

(SYNC)

El perfil SYNC se utiliza junto al GOEP para sincronizar los elementos del

administrador de información personal (PIM), como agendas y datos de

contacto, entre dispositivos con tecnología Bluetooth.

Perfil de distribución de

vídeo (VDP)

Este perfil dicta los pasos que deben seguir los dispositivos Bluetooth con

tecnología Bluetooth para la transferencia de flujos de datos de vídeo.

Protocolo Descripción

Protocolo de control de

audio y vídeo (AVCTP)

El protocolo AVCTP describe los mecanismos de transferencia para

intercambiar mensajes que permitan controlar los dispositivos de audio y

vídeo.

Protocolo de distribución

de audio y vídeo (AVDTP)

El AVDTP detalla los procedimientos de negociación, establecimiento y

transmisión del flujo de audio y vídeo.

Protocolo Bluetooth de

encapsulación de red

(BNEP)

El protocolo BNEP se utiliza para transportar protocolos de red comunes,

como IPv4 o IPv6, entre los distintos medios de transmisión Bluetooth.

Protocolo de intercambio

de Objetos (OBEX)

OBEX es un protocolo de transferencia que define los objetos de datos y el

protocolo de comunicaciones que deben utilizar dos dispositivos para

intercambiar objetos.

Protocolo de control de

telefonía (TCP)

Este protocolo establece la señalización para el establecimiento de

llamadas de voz y datos en dispositivos con tecnología Bluetooth.

RFCOMM con TS 07.10 El protocolo RFCOMM emula los parámetros de un cable de serie y el

estado de un puerto RS-232 para transmitir datos en serie.

Tabla 3.5. Perfiles y protocolos soportados por la especificación 2.1 de Bluetooth.

En esta sección se procederá a desarrollar el protocolo RFCOMM exclusivamente

debido a que es el utilizado en la realización del proyecto. Por este motivo, se le

recomienda al lector si está interesado en conocer en detalle algún perfil o protocolo

diferente a éste en mayor profundidad, acuda a la referencia [29] y revise el

documento correspondiente.

3.11. RFCOMM

El protocolo RFCOMM suministra al dispositivo Bluetooth un mecanismo de emulación

de puerto serie sobre el protocolo L2CAP. Se corresponde con un protocolo de

transporte sencillo que se usa para el transporte de los datos de usuario, de las señales

de control de módem y de los comandos de configuración. Se encuentra basado en la

especificación TS07.10 de la ETSI, European Telecommunications Standards Institute,

organismo que se encarga de la normalización en la industria de las

telecomunicaciones.

60

Figura 3.22. Modelo de referencia RFCOMM.

En la figura 3.22 se puede observar los elementos en los que se apoya RFCOMM. De

todos ellos cabe destacar la entidad de emulación de puertos, ubicada por encima de

dicho protocolo y cuya misión radica en traducir la interfaz de comunicación específica

de un sistema en servicios RFCOMM. Sobre dicha capa, se apoyaría la aplicación en

cuestión, la cual estaría contemplando una interfaz de comunicaciones equivalente a

un puerto serie. El resto de elementos se corresponde con protocolos o niveles

detallados en secciones anteriores.

Para la finalidad de RFCOMM, se requiere de dos aplicaciones ejecutándose en

dispositivos diferentes que esperan que la comunicación tenga lugar a través de un

cable serie, el cual resultará emulado por este protocolo. No obstante, dichas

aplicaciones, al no ser conscientes de los procedimientos Bluetooth para establecer

cables series emulados, pueden necesitar la ayuda de una aplicación auxiliar que utilice

la especificación Bluetooth a ambos lados del enlace.

Por su parte, existen dos tipos de dispositivos básicos a los que RFCOMM debe dar

servicio:

Dispositivos que actúan como terminaciones de la comunicación, como

puede ser un ordenador o una impresora.

Dispositivos que forman parte del enlace de comunicación como resulta

ser un módem.

Aunque RFCOMM no hace distinciones entre estos dos dispositivos, el uso de uno u

otro terminal posee implicaciones en el protocolo, tales como el uso de tramas

utilizadas exclusivamente por un tipo.

61

3.11.1. Señales de control

RFCOMM emula las 9 líneas de una interfaz RS-232. Estas quedan registradas en la

siguiente tabla:

Pin Descripción

102 Señal común

103 Transmisión (TXD)

104 Recepción (RXD)

105 Petición para envío (RTS)

106 Limpiar para enviar (CTS)

107 Conjunto de datos listos (DTS)

108 Terminal de datos listo (DTR)

109 Detección de portadora de datos (CD)

125 Indicador de llamada (RI)

Tabla 3.6. Líneas RS-232 emuladas en RFCOMM.

3.11.2. Emulación Módem-Null

Como se ha comentado anteriormente, RFCOMM está basado en TS07.10. Esta norma

no distingue entre dispositivos DTE, equipo terminal de datos, y DCE, equipo de

comunicación de datos, cuando se trata de transferir los estados de los circuitos que

no son de datos. Para ello, lo que se hace es enviar las señales de control RS-232 como

una serie de señales DTE/DCE independientes.

Señales TS 07.10 Señales de control RS-232 correspondientes

RTC DSR, DTR

RTR RTS, CTS

IC RI

DV DCD

Tabla 3.7. Correspondencia de las señales de control recogidas en la norma TS07.10 y las señales de

control RS-232.

La forma en la que TS07.10 transfiere las señales de control RS-232 es creando un

enlace modem-null implícito cuando dos dispositivos del mismo tipo se conectan entre

sí. Este sistema previsto por RFCOMM deberá funcionar en la mayoría de las

situaciones posibles.

3.11.3. Puerto serie emulado

Este protocolo soporta hasta 60 conexiones simultáneas entre dos dispositivos

Bluetooth. No obstante, este número puede variar según la implementación específica

62

del fabricante. Un identificador de enlace de datos de conexión (DLCI) identifica una

conexión permanente entre un cliente y un servidor de aplicaciones. El DLCI está

representado por 6 bits, pero su rango de valores utilizables oscila entre 2 y 61. El

identificador de enlaces es único dentro de una sesión RFCOMM entre dos

dispositivos.

Para tener en cuenta el hecho de que tanto el cliente como servidor de aplicaciones

pueden residir en ambos lados de una sesión RFCOMM, con clientes en ambos lados

pudiendo realizar conexiones independientes entre sí, el espacio de valores DLCI se

divide entre los dos dispositivos que se comunican mediante el concepto de servidor

RFCOMM canales.

Si un dispositivo Bluetooth soporta múltiples puertos series emulados y se les permite

a las conexiones tener terminaciones en los diferentes dispositivos, la entidad

RFCOMM debe ser capaz de ejecutar múltiples sesiones TS07.10. Esta tarea se lleva a

cabo mediante el multiplexor de sesiones. Para ello, cada sesión es multiplexada

utilizando su propio identificador de canal, CID. La capacidad de ejecutar múltiples

sesiones es una característica opcional del protocolo RFCOMM.

63

4.

4.1. Introducción

El sistema propuesto nace como respuesta desde el mundo de las TIC (Tecnologías de

Información y las Comunicaciones) a la problemática que sufre el colectivo de

discapacitados visuales, para quienes es imposible recibir la enorme cantidad de

información visual existente en la sociedad actual, en la que se han hecho enormes

esfuerzos de integración de los diferentes colectivos de discapacitados, pero en la que

aún persiste un gran vacío. El sistema ofrece soluciones para hacer llegar información

disponible habitualmente en forma visual (nombres de calles, carteles en

establecimientos públicos y privados, tablones de anuncios, directorios, advertencias

de obras, semáforos, estado de ascensores, delimitadores como el de carril bici,

pantallas con horarios de llegadas y salidas, etc.) a personas con discapacidad visual,

evitando la discriminación que este colectivo sufre respecto a la situación descrita

anteriormente.

El sistema ofrece una solución tecnológica para conseguir que la información visual

disponible llegue de manera precisa hasta un usuario con discapacidad visual, para que

éste pueda interpretarla y usarla en su beneficio, haciéndole la vida un poco más

sencilla e independiente.

El sistema proporciona información contextual a los usuarios con discapacidad visual y

permite la exploración de un lugar desconocido o poco habitual del usuario mediante

la descripción del mismo, incrementando la independencia y autonomía de los

usuarios. El sistema le permite conocer el entorno donde se encuentra y las diferentes

rutas que puede tomar para desplazarse, mediante locuciones. Durante el recorrido el

usuario irá recibiendo información acerca de negocios, paradas de autobuses y sitios

de interés, que le permitirán ubicarse en su mapa mental [30] ajustado a la realidad y

obtener así un desplazamiento más tranquilo y seguro.

4.2. Servicios

El sistema brinda cuatro tipos de información que son: informaciones contextuales,

información de localización, información de orientación y, por último, alertas sobre

64

peligros potenciales. Como cada tipo de información o servicio está asociado a un tipo

de acción determinada, los tipos de información que brinda el sistema se llaman

servicios.

4.2.1. Servicio de información

El servicio de información es el servicio más genérico del sistema y suministra al

usuario toda información contextual que pueda necesitar a medida que va avanzando

por su recorrido. El usuario puede navegar por la información suministrada hasta

encontrar la opción que desee. Algunos ejemplos son: el nombre de una calle, la

descripción de un objeto en un museo, la identificación de un edificio, información

comercial o turística, carta de un restaurante, señales informativas, información sobre

pasos peatonales, etc.

4.2.2. Servicio de orientación

En lo que respecta a la orientación, las personas con discapacidad visual sólo necesitan

simples instrucciones textuales [31], tales como “siga recto 15 metros y luego tome el

pasillo a la derecha”. Gracias a las habilidades obtenidas de los instructores de

orientación y movilidad (O&M, Orientation and Mobility) es fácil para los

discapacitados visuales seguir curvas con sus bastones y utilizar el ruido proveniente

del tránsito para mantener una dirección constante en las aceras. Por todo ello, el

servicio de orientación brindará cortos mensajes con directivas direccionales que

permitirán a los usuarios encaminarse hacia un lugar en concreto.

Se definen tres tipos de posibles rutas por las que puede transitar un usuario y estas

son:

Rutas con caminos definidos: los caminos definidos son todos aquellos por

donde un usuario puede transitar y quedan determinados por la dirección hacia

donde van andando. Son caminos que obligan al usuario a seguir una

determinada ruta, unívoca, y sólo se necesita de la dirección de circulación para

poder orientarlo.

Rutas sin caminos definidos: Son los contrarios a los anteriores, en los que no

se puede dar indicaciones unívocas. Para solventar este tipo de incertidumbre

se recurre al uso de marcas. Una marca es una indicación del camino que ha

tomado el usuario con el fin de averiguar el camino que ha transitado para

llegar hasta un punto concreto. Para este caso en concreto las marcas serán las

direcciones Bluetooth de los balizas de localización.

Rutas mixtas: es cuando se mezclan los dos tipos de rutas mencionados

anteriormente.

65

En la Figura 4.1 se pueden ver los distintos tipos de rutas mencionadas más arriba. La

ruta C es una ruta definida y las rutas A y B son caminos sin rutas definidas. Nótese que

si un usuario llega a la baliza principal desde C, no habrá confusión alguna con respecto

a las orientaciones que ésta le pueda brindar pero si lo hace desde los caminos A o B,

la baliza principal tiene que saber por cual camino ha llegado el usuario a fin de poder

indicarle exactamente la dirección a tomar.

A B

C

Baliza principal

Baliza de localización

Figura 4.1. Ejemplos de tipos de rutas.

Al colocar dos balizas de localización, uno en la ruta A y otro en la B, ya seremos

capaces de discernir el camino tomado por el usuario y guiarlo de forma correcta a su

destino.

4.2.3. Servicio de localización

El servicio de localización se encarga de dar un aviso sonoro, puntualizando el sitio,

lugar o cosa que el usuario está buscando. Por ejemplo, si un usuario está buscando el

despacho de una persona en concreto, selecciona la opción de localización y cuando

llegue al sitio, la baliza asociada empezará a emitir un sonido (pitidos) para que el

usuario pueda localizar con exactitud el lugar que está buscando.

4.2.4. Servicio de alerta

El servicio de alerta se aplica a las situaciones en las cuales el usuario puede estar en

peligro, tales como cercanías de escaleras, zanjas, pisos mojados o armarios con alta

tensión. Cuando un usuario se acerca a un sitio con algún servicio de alerta activo, se le

comunicará del peligro y se le dará las indicaciones de cómo retirarse de forma segura

66

del lugar. Los avisos de alerta son prioritarios y en ningún caso se pueden dejar de

escuchar.

4.3. Hardware del sistema

El sistema está compuesto fundamentalmente de tres elementos electrónicos, dos

fijos que denominamos baliza principal y baliza de localización, y uno móvil que lleva el

usuario del sistema. Las características principales de cada elemento son:

Baliza Principal (BP): elemento fijo que está concebido para ofrecer la

información que el usuario pueda necesitar, a fin de satisfacer sus necesidades.

Almacena la información en modo texto y la envía al receptor cuando este lo

requiere. Tiene capacidad para procesar peticiones, almacenar información y

enviar información vía enlaces inalámbricos Bluetooth. También se puede

configurar el rango de cobertura.

Baliza de localización (BL): elemento fijo más simple que la baliza principal,

utilizado para ofrecer al usuario informaciones elementales, facilitar el servicio

de localización y ayudar al sistema a atender el servicio de orientación. Su

alcance es configurable y habitualmente inferior al de un NP.

Móvil (M): elemento móvil que tiene el usuario y que interactúa con él. Es el

lazarillo que le va indicando de todo lo pertinente a su paso. Es totalmente

configurable y está pensado para que sea amigable con el usuario, además de

discreto.

Las balizas servidores, intercambian información con los elementos móviles que se

muestren interesados en la información que estos brindan y están en su rango de

cobertura. Se colocan en los lugares donde se expone una información escrita con el

fin de suministrar la información equivalente a personas con discapacidad visual. La

posibilidad de configurar el alcance de cada baliza obedece a la necesidad de una

mejor adecuación funcional para los distintos tipos de lugares donde se podría instalar

el sistema, ya que no es lo mismo informar en el vestíbulo de una estación de trenes

que en los pasillos de un edificio.

Una característica fundamental del sistema es su capacidad para cubrir un número

muy importante de aplicaciones. Este hecho, el de ser una solución genérica, es una

de sus claves y la diferencia fundamental con otros sistemas.

4.4. Software del sistema

Desde un punto de vista software, la filosofía de funcionamiento del sistema es

análoga a la de los navegadores y servidores web. El elemento móvil es el cliente que

67

solicita páginas, de donde extrae la información, y el elemento fijo es el servidor que

satisface dichas peticiones de páginas. La baliza principal, entonces, debe estar a la

escucha de peticiones de páginas provenientes de los móviles y debe incluir toda la

lógica necesaria para recibir dichas peticiones y servirlas en un tiempo razonable, de lo

contrario el usuario podría salirse del alcance o bien la información ya podría ser

errónea.

Las balizas están concebidas para ofrecer toda la información que el usuario pudiera

necesitar, a fin de satisfacer las necesidades de los usuarios. Para ello, las balizas

principales transmiten la información almacenada en modo texto a los clientes,

mediante enlaces inalámbricos Bluetooth. Las balizas principales tienen, por lo tanto,

capacidad para procesar y almacenar información. Para almacenar eficientemente la

información, se incorporará en las balizas principales, un servidor web que permitirá al

cliente seleccionar específicamente qué información recibir, ya que ésta estará

separada en distintas páginas web según se necesite.

El software de la baliza de localización es más simple que el de los principales pero

cumple con otras funciones, tales como localizar sitios de interés y dejar un rastro en la

memoria del dispositivo móvil como se vio anteriormente.

El elemento móvil que lleva el usuario es el encargado de pedir las informaciones

concernientes a cada lugar, procesarlas y desplegarlas al usuario. El móvil recibe la

información como texto en archivos XML y para presentarla al usuario se necesita

convertirla en audio.

Para ofrecer los servicios del sistema, se instalan las balizas principales con rango de

alcance Bluetooth programado de manera que cubran el área a la que se desea dar

servicio. Estas balizas contienen la información que se ofrece al usuario que maneja el

dispositivo móvil. Las balizas están constantemente buscando a los móviles, una vez

encontrados, se inicia una negociación entre ellos para verificar si el usuario tiene

interés en una información en concreto. Si la tiene, la información se envía

automáticamente al móvil y se reproduce al usuario. Si no, se alerta al usuario que está

en la zona de cobertura del sistema y se le despliegan un menú sonoro, indicando las

opciones que tiene configurado en ese lugar.

Una vez reconocido el móvil en el sistema, se puede solicitar más información a la

baliza principal, basándose en los menús y submenús que se le ha entregado

inicialmente. También puede solicitar localización de puntos de interés en el área de

servicio del sistema o la orientación hacia un punto en concreto. En la baliza, principal

o secundario, puede estar asociado al punto de interés que desea localizar el usuario,

en este caso, se generará un aviso o mensaje sonoro que ayudará al usuario a la

localización del punto.

68

La interacción con las balizas de localización es similar a la que se experimenta con las

balizas principales, sólo que la información almacenada en éstos es mucho menor y no

se despliega un menú al usuario. Siempre se guarda el rastro por donde ha pasado el

usuario y, si se asocia con un lugar y es el sitio que el usuario efectivamente buscando

está, se activa la señal sonora que indica el lugar encontrado.

4.5. Particularidades del sistema propuesto

Un punto a discutir es qué elemento se encarga de realizar la búsqueda de

dispositivos. Parecería lógico que el dispositivo móvil vaya buscando a los servidores,

según el usuario se desplace de un sitio a otro, y el propio dispositivo le vaya

informando sobre las balizas que encuentra en su camino. Otro enfoque sería que las

balizas estén continuamente a la búsqueda de los clientes que entren a su alcance. En

lo referente al software, el hecho de buscar dispositivos supone una sobrecarga de

procesamiento, ya que se deben mantener en una lista de los elementos encontrados

que permita discriminar, de alguna manera, a los nuevos dispositivos que requieren

atención; además, supone un gasto de energía. Para permitir mayor autonomía a los

móviles, se ha decidido que la búsqueda sea realizada por las balizas, ya que estar

continuamente a la búsqueda de clientes supone el consumo de recursos, tanto de

procesamiento como de energía [32], lo que disminuye la autonomía de los mismos.

El proceso de descubrimiento en la especificación Bluetooth es fundamental en el

establecimiento de la comunicación. Este proceso se divide en tres fases [33]:

En la primera fase, el dispositivo que inicializa la comunicación (que se

denomina master en la norma) busca dispositivos a su alrededor. El master se

encuentra en el estado Inquiry durante esta fase, mientras que los dispositivos

vecinos que estén a la escucha (slaves o esclavos según la norma) se deben

encontrar en el estado Inquiry Scan.

A la fase anterior, le sigue el proceso denominado paging en el que ambos

dispositivos, master y slave, realizan un handshaking, o comunicación con

acuse de recibo, mediante el cual intercambian información fundamental para

la formación del enlace.

La última fase consiste en el establecimiento del enlace físico.

Una importante cuestión a tener en cuenta en el establecimiento de un enlace

inalámbrico de tipo Bluetooth, es que si los dispositivos conocen sobre la existencia de

otros en su rango de cobertura, esto no implica que exista ningún tipo de enlace entre

ellos. Por otro lado, el proceso de descubrimiento se encuentra totalmente

enmascarado en la comunicaciones ordinarias que se realizan hoy en día con

dispositivos de uso común, como son los teléfonos móviles y ordenadores, pero

cuando se requiere una respuesta rápida o con requerimientos de tiempo específicos,

69

es necesario tener un mayor control sobre los parámetros que intervienen en el

proceso de descubrimiento. La componente aleatoria en el proceso de descubrimiento

es elevada [34, 35], requiriendo este estudio de un análisis estadístico complejo [36].

Existen muchos estudios acerca de cómo acelerar el proceso de descubrimiento

empleando la norma Bluetooth, [37, 38, 39], y en la actualidad se está estudiando la

introducción de nuevas tecnologías, mecanismos fuera de banda, para intentar

mejorar este proceso de descubrimiento y emparejamiento. En concreto, y a partir de

la especificación Bluetooth 2.1, se incluye la tecnología NFC como forma de

intercambiar información de emparejamiento.

Ahora bien, una vez establecida una conexión Bluetooth, existen una importante

variedad de parámetros relacionados con la calidad de la transmisión, por lo que llegar

a concluir cómo es esta calidad resulta una tarea complicada, especialmente por la

cantidad de variables que intervienen, algunas muy difíciles de controlar debido a su

componente aleatorio como se puede observar en los modelos de propagación de la

señal que se suelen utilizar [40, 41]. Muchas de estas variables dependen del

dispositivo particular y de su diseño particular, lo que nos lleva por ejemplo al tipo y

comportamiento de los amplificadores internos o las antenas [41].

Otro punto importante a tener en cuenta es la coexistencia del sistema con otros

dispositivos Bluetooth que no son del sistema. Una de las razones para la utilización

del estándar Bluetooth es la gran aceptación y expansión que ha tenido en el mercado;

y prueba de ello es el creciente número de teléfonos móviles y ordenadores portátiles

que traen incorporados este estándar. Ahora bien, se debería tener en cuenta qué

pasaría en un escenario en el cual pasa un gran número de personas con sus teléfonos

móviles y ordenadores portátiles. Por ejemplo, si se instala el sistema en un

aeropuerto, es muy probable que se tengan muchos dispositivos Bluetooth encendidos

que nada tienen que ver con la plataforma. ¿Afecta esa situación al sistema?

Dada esta situación, se hace imperiosa la necesidad de un mecanismo de

discriminación de esos dispositivos y por fortuna, el estándar Bluetooth nos da la

solución. Se utiliza el código de acceso mencionado en el capítulo 3, sección 3.3.2.1 de

la siguiente manera. Cambiando convenientemente el código de acceso, al hacer la

búsqueda de dispositivos se consigue que sólo respondan los dispositivos que tengan

ese código de acceso específico, eliminando así a todos los dispositivos que no son del

sistema. En cuanto a la visibilidad de los elementos de la plataforma se pueden utilizar

dos opciones del estándar Bluetooth [29]; los estados Inquiry Scan y Page Scan. Lo que

permite optar por cuatro posibilidades, mostradas en la Tabla 4.1.

Entonces, para que las balizas del sistema no sean descubiertos y pasen desapercibidos

por otros dispositivos que no pertenezcan al sistema, se desactiva el estado Inquiry

70

Scan, dejándolo totalmente oculto para procesos de detección, y para que los

elementos puedan comunicarse, se deja activo el estado Page Scan. En los dispositivos

móviles se dejan activos ambos estados ya que los servidores son quienes están a la

búsqueda de los dispositivos móviles o clientes.

Inquiry Scan

Page Scan

Interpretación

ON ON El dispositivo local es detectable por otros dispositivos Bluetooth y acepta peticiones de conexión entrantes. Es el estado por defecto de los dispositivos

OFF ON Aunque no es detectable por otros dispositivos Bluetooth, el dispositivo acepta peticiones de conexión entrantes

ON OFF El dispositivo local es detectable por otros dispositivos Bluetooth pero no acepta las conexiones entrantes

OFF OFF El dispositivo no es detectable por otros dispositivos y no acepta conexiones entrantes, usado en dispositivos que sólo realizan conexiones salientes

Tabla 4.1. Interpretación de los estados Inquiry Scan y Page Scan.

La topología de red definida en la norma Bluetooth impone una cantidad máxima de

dispositivos que puede tener una piconet, que es hasta siete dispositivos esclavos

activos y hasta doscientos cincuenta y cinco dispositivos aparcados (modo park).

Entonces, como limitación, sólo podremos tener siete usuarios activos al mismo

tiempo en un servidor. Una manera de mejorar dicha limitación es pasar al modo

aparcado los clientes que no estén realizando pedidos de páginas, dejando lugar a

nuevos usuarios pero esto implica un grave problema: luego de unas pruebas se ha

constatado que existe la posibilidad de que el dispositivo aparcado salga del área de

influencia del dispositivo que lo aparcó, sin que éste lo haya sacado de ese modo,

entonces se encontrará “invisible” para los demás dispositivos del sistema, quedando

permanentemente incomunicado. Por esta razón se ha decidido descartar el uso del

modo park en la plataforma.

En la norma Bluetooth se define la función Hci_Inquiry para buscar dispositivos

cercanos. Este comando hará que el dispositivo entre al modo de búsqueda de

dispositivos cercanos por medio de los paquetes de encuesta anteriormente

mencionados. El primer parámetro, LAP, es el código de acceso al cual deben

responder los dispositivos. El segundo parámetro, LEN, especifica la duración total del

modo de búsqueda y cuando este tiempo expira, la búsqueda se detiene. El siguiente

parámetro es la cantidad de respuestas que pueden ser recibidas antes que se detenga

el ciclo de búsqueda. Los parámetros involucrados en el ciclo de búsqueda se resumen

en la Tabla 4.2.

71

Parámetro Valor Descripción

LAP 0x9E8B00 – 0x9E8B3F Es el LAP de donde se derivan los códigos de acceso

LEN Tiempo = LEN * 1,28 s Siendo, 1 < LEN < 30

Cantidad de tiempo del ciclo de búsqueda, este puede ser de 1,28 segundos hasta 38,40 segundos

Num_Resp 1 – 255 Número máximo de respuestas esperadas de dispositivos

Tabla 4.2. Parámetros involucrados en la búsqueda de dispositivos.

Para hacer que los elementos del sistema sólo respondan a un determinado código de

acceso, se ha modificado el LAP. Para establecer el campo LEN, que es el tiempo de

búsqueda, se han hecho numerosas pruebas a fin de determinar cuál es la

combinación, dando LEN = 3 un mejor comportamiento. Por último, el número máximo

de respuestas es un campo variable en función al sitio en concreto donde se instala el

sistema. Es las pruebas realizadas se han configurado en el valor máximo.

72

5.

5.1. Introducción

Según vimos anteriormente en la sección 4.3 el sistema cuenta con tres elementos

hardware, dos fijos y uno móvil. Toda la información visual existente deberá ser

recopilada y almacenada por las balizas del sistema y es transmitida a los elementos

móviles, que reproducen la información al discapacitado, permitiéndole el acceso a la

información. Esta información se envía de manera inalámbrica al dispositivo móvil,

mediante enlaces Bluetooth. A continuación se describen brevemente los elementos

hardware del sistema y se discuten las opciones escogidas.

5.2. Baliza principal

En esta sección se verán las necesidades del hardware de la baliza principal del

sistema, se describirán las opciones que se han valorado y se justificará la selección

final. Durante la fase de selección de la tarjeta CPU se evaluaron múltiples alternativas,

aunque algunas fueron descartándose debido a cambios en los requisitos del sistema

durante esta fase. Así, por ejemplo, se evaluaron tarjetas basadas en PC industriales

con una buena integración de periféricos, tamaño reducido y bajo coste. Finalmente,

dada la necesidad de implantar un sistema operativo, la búsqueda se centró en

tarjetas CPU comerciales tipo PC/104 que estuvieran dotadas de suficiente memoria y

velocidad de procesamiento, atendiendo las siguientes características:

Arquitectura del procesador conocida (x86 o ARM).

Velocidad del procesador.

Puerto Ethernet.

Capacidad de expansión de memoria (RAM, Flash, etc.).

Dimensiones reducidas.

Soporte de sistemas operativos conocidos.

A continuación, se listan tres de las opciones que se han estudiado.

73

5.2.1. Beagle Board

Beagle Board [42] es un proyecto que ha desarrollado una computadora en tarjeta de

bajo coste y consumo, desarrollada por un pequeño grupo de ingenieros de Texas

Instruments y Digi-Key. El corazón de la tarjeta es su procesador OMAP3530 (de

Texas), de núcleo ARM8 que admite varios sistemas operativos. Sus principales

características son:

Procesador OMAP3530 de 600MHz.

Procesador de gráficos integrado.

Memoria: RAM de 256 MB y Flash de 256 MB.

DVI-D, S-Video.

Puertos: USB, RS 232, I2C, SPI y JTAG.

Entrada/salida de audio.

Sistemas operativos: Win CE, Android, Angstrom, Ubuntu, Gentoo, Maemo y

una versión de RISC OS 5.

Consumo: hasta 2W.

Figura 5.1. Fotografía del Beagle Board.

Esta tarjeta posee muy buenas prestaciones pero toda la parte gráfica no será utilizada

en el sistema. En la figura 5.1 se muestra una fotografía de la Beagle Board.

Cabe mencionar que tiene una wiki muy completa con muchos ejemplos y datos

técnicos.

5.2.2. MOPS-PM

MOPS-PM [43] es una computadora en tarjeta, que cumple con el estándar PC/104. Se

basa en un procesador Intel y fabricado por Kontron.

74

Las principales características son:

Procesador Intel Pentium o Celeron con velocidades de hasta 1,4 GHz.

Puertos: COM, USB 2.0, LAN, LPT y VGA.

Cache L2 (512KB a 2MB).

Opción para teclado y mouse PS/2.

Consumo: 5W.

Figura 5.2. Fotografía del MOPS-PM.

En la figura 5.2 se puede observar una tarjeta MOPS-PM. Esta tarjeta tiene muy buenas

características pero no tiene soporte para audio, necesita de un complemento lo que

significa un aumento en las dimensiones del dispositivo fijo y a su vez, aumenta el

costo del mismo.

5.2.3. PM-LX y PM-GX

Las PM-LX y PM-GX [44] son computadores en tarjeta que cumplen con la norma

PC/104. Tienen procesadores AMD y son fabricadas por IEI Technology.

Figura 5.3. Fotografía del PM-LX (izquierda) y PM-G (derecha).

75

Las características principales son las siguientes:

Procesadores AMD GX466 de 333MHz o LX800 de 500MHz

Puertos: COM, USB 2.0, LAN, LPT y VGA.

Memoria RAM DDR, hasta 1 GB.

Ethernet 10/100 Mbps.

Interfaces: USB 2.0, LPT, RS-232, RS-422/RS-485 y PS/2.

Ranura para memoria Compact Flash.

VGA integrada.

Consumo entre 5,0 y 5,5 W.

5.3. Comparación entre alternativas de elementos fijos

En los casos estudiados, la arquitectura interna de los procesadores es similar a las x86

desde el punto de vista de la instalación de un sistema operativo; salvo la Beagle Board

que es de núcleo ARM.

En la tabla 5.1 se muestran los precios de las opciones barajadas.

Precio de las opciones para la baliza principal (Euros)

Beagle Board MOPS-PM PM-LX PM-GX 149 78 228 159

Tabla 5.1. Comparativa de precios entre los sistemas considerados.

Las características de todas las tarjetas son parecidas, pero finalmente se decide

emplear la tarjeta MOPS-PM de Kontron por los siguientes motivos:

Velocidad de procesamiento bastante buena y capacidad de manejar grandes

cantidades de memoria.

Incorpora un procesador Intel, el cual alcanza temperaturas considerablemente

más bajas que sus homólogas AMD.

El precio es el más bajo.

5.4. Baliza de localización

La baliza de localización se corresponde con un sistema microcontrolador de bajo

coste cuya tarea radica en realizar continuamente procesos de descubrimiento para

encontrar a los usuarios que están en su rango de cobertura.

En la Figura 5.4 se puede observar un diagrama de bloques de los distintos

componentes que forman la baliza de localización. En él se puede comprobar que se

han utilizado los componentes básicos para dotar de funcionalidad a la baliza de

localización. La inclusión del zumbador, así como del puerto de entradas y salidas

76

digitales, se ha hecho para poder dotar de una finalidad secundaria a la baliza de

localización. Un ejemplo de esta podría ser la activación del zumbador al detectar que

el usuario quiere localizar un sitio en concreto donde éste se encuentre.

Figura 5.4. Diagrama de bloques de la baliza de localización.

5.4.1. Microcontrolador ATMEGA 8

El ATMEGA8 es un microcontrolador de 8 bits de bajo consumo realizado en tecnología

CMOS y basado en la arquitectura AVR RISC. Además, al ser capaz de ejecutar

instrucciones en un solo ciclo de reloj, logra un rendimiento cercano a 1 MIPS por MHz,

lo que permite optimizar el consumo de energía frente a la velocidad de

procesamiento.

Las principales características que posee son:

Arquitectura RISC.

Memoria:

o 8 KB de memoria Flash para programa

o 512 B de EEPROM.

o 1 MB de RAM interna

Periféricos:

o 2 temporizadores/contadores de 8 bits.

o 1 temporizador/contador de 16 bits.

o Contador de tiempo real con oscilador externo.

o 3 canales PWM.

77

o 6 canales ADC de 10 bits.

o Temporizador Watchdog con oscilador separado

o Comparador analógico.

Interfaz de conexión:

o 23 puertos de entradas/salidas digitales.

o I2C.

o USART programable.

o SPI maestro/esclavo.

Características especiales:

o Power-on-Reset.

o Oscilador interno RC que puede ser calibrado.

o 5 modos de funcionamiento.

78

Figura 5.5. Diagramas de bloque del ATMEGA8.

5.4.2. Módulo Bluetooth Bluegiga WT12

El Bluegiga WT12 es un módulo Bluetooth que cumple con la versión de la

especificación 2.1. Contiene todo lo necesario para poder implementar una

comunicación Bluetooth: interfaz radio, antena y la torre de protocolos Bluetooth

completa. Su principal función será la de iniciar procesos de descubrimientos

detectando el objetivo a localizar así como a los diversas balizas de localización que

puedan existir en su rango de cobertura.

79

Las principales características del módulo son:

Rango hasta 300 metros.

Antena integrada o conector UFL.

Tasa de transmisión de hasta 3 Mbps.

Cumple RoHS.

Soporte Scatternet.

USB interface (2.0 compatible).

Soporte 802.11.

Memoria Flash 8Mb.

UART con modo bypass.

Figura 5.6. Ubicación de iWrap en la torre de protocolos Bluetooth.

Otra de las características de este módulo, es que está equipado con un firmware

propietario denominado iWrap que permite abstraer al usuario de la torre de

protocolos Bluetooth. De esta forma, a través de comandos ASCII se pueden efectuar

tareas tales como descubrir dispositivos, establecer una comunicación a nivel

RFCOMM o configurar aspectos como el código de acceso de descubrimiento o IAC.

Con esta solución, se evita el usar un microprocesador que actúe de host para correr la

pila de protocolos

Dicha pila posee compatibilidad con los siguientes perfiles Bluetooth:

80

A2DP: modo fuente y sumidero.

AVRCP.

Identificación de dispositivo.

Puerto Serie, soportando los dos tipos de dispositivos.

Manos libres.

DUN.

OPP.

FTP y PBAP.

HDP y SSP.

5.4.3. Configuración del módulo

Para poder llevar a cabo una correcta comunicación, es necesario configurar el módulo

Bluetooth correctamente. Para ello, será necesario enviarle una serie de comandos

para su correcta configuración.

El primer comando que se deberá enviar al módulo será “SET CONTROL MUX 1\n”,

éste permite utilizar un modo de funcionamiento especial del módulo WT-12A que se

caracteriza por no hacer distinción entre el modo comandos y el modo datos que

utiliza el iWRAP. La ventaja de este modo es que permite mantener dos o más

conexiones simultáneas con diferentes dispositivos de un modo sencillo. Para su

correcto funcionamiento, es necesario utilizar el siguiente formato de trama mostrado

en la Tabla 5.2.

Longitud [bits] Nombre Descripción Valor

8 SOF Comienzo de trama 0xBF

8 LINK Identificador del enlace Enlace de datos: 0x00-0x08

Enlace de control: 0xFF 6 FLAGS Banderas de la trama 0x00

10 LENGTH Tamaño del campo de datos - 0-800 DATA Datos -

8 nLINK Final de la trama {{LINK} XOR 0xFF}

Tabla 5.2. Formato de trama en el modo multiplexado.

Como se puede observar en la Tabla 5.2, todos los comandos que vayan desde el

equipo que actúe como host hacia el módulo, deberán enviarse con el formato de

trama descrito. Por su parte, la respuesta a los diferentes comandos así como los datos

recibidos desde uno o varios equipos remotos, serán enviados con el mismo formato

de trama.

81

La ventaja del modo multiplexado es que no se necesita hacer un intercambio especial

entre el modo comando y el modo datos, sino que todos los datos y comandos son

transmitidos del mismo modo. Esto permite un gran ahorro de tiempo en escenarios

multipuntos, donde, en el peor de los casos, un cambio de modo podría tardar hasta

dos segundos. También supone una gran ventaja en escenarios donde existen muchas

conexiones activas recibiendo datos simultáneamente. En estas situaciones, el cambio

de modo puede resultar en la pérdida de datos debido al coste de tiempo que supone.

Figura 5.7.Comunicación Host – iWRAP - Host.

Figura 5.8. Comunicación Host - iWRAP - Dispositivo remoto y viceversa.

El resto de comandos de inicialización deberán enviarse a la pila de protocolos iWRAP

con el formato del modo multiplexado y se corresponderán con:

"SET BT LAP 9e8b05": este comando permite modificar el valor del IAC,

estableciendo un valor reservado para así garantizar que el funcionamiento del

sistema no interfiere con el resto de dispositivos Bluetooth existentes en la

sala. Además permite establecer un nivel de seguridad mayor, debido a que al

colocar un código de descubrimiento limitado, las balizas principales y

secundarias no podrán ser descubiertos por el resto de terminales, salvo que

estos efectúen un descubrimiento con dicho valor.

"SET BT PAGEMODE 3 1000 0": mediante esta orden, se configura el módulo

Bluetooth como visible y conectable. Además, se indica que el valor del

82

temporizador asociado a un error en el establecimiento de una conexión sea de

2,56 segundos.

“SET BT POWER 3 3 3": fija el nivel de potencia en el proceso de

descubrimiento a 3 dBm, que se corresponde con el máximo posible. De esta

forma, se asegura que se puede cubrir el máximo rango de espacio, lo que

posibilitará espaciar las balizas de localización una mayor cantidad.

"SET CONTROL CONFIG 0 001F": Este comando establece el modo entrelazado

de descubrimiento y de establecimiento de conexión, permitiendo una mayor

efectividad a la hora de buscar a los usuarios.

"SET CONTROL ECHO 4": permite eliminar el “echo” generado por el software

iWRAP al enviarle un comando a través del puerto serie.

Finalmente, mencionar que la comunicación con el microcontrolador se efectuará a

través de un puerto USART, utilizando una velocidad de 115200 bps y un formato de

comunicación 8N1, es decir, 8 bits, sin paridad y un bit de parada.

5.5. Hardware del móvil

En cuanto al dispositivo móvil se ha pensado en utilizar teléfonos móviles comerciales

(Nokia, Sony-Ericsson, Motorola, etc.) ya que están ampliamente distribuidos en el

mercado. El problema encontrado es la compatibilidad del software a desarrollar, ya

que las distintas marcas poseen distintos sistemas operativos (por citar algunos:

Symbian de Nokia, Sony-Ericsson y Motorola, SX1 de Siemens, SGH-x de Samsung y, en

los móviles nuevos, Android). Además de la pluralidad de opciones, otro aspecto a

tener en cuenta es que son sistemas operativos bajo licencia.

Una alternativa encontrada fue la de utilizar un dispositivo móvil con software libre. Se

han analizado tres opciones que se muestran más abajo.

5.5.1. Openmoko

Openmoko (OM) es un proyecto de software y hardware abierto e intenta crear el

primer sistema operativo libre para teléfonos móviles, permitiendo al usuario

personalizar totalmente el terminal para satisfacer sus necesidades [45].

Tiene como características: microprocesador Samsung S3C2442B, de arquitectura

ARM920T. Este tipo de arquitecturas (ARM9x) se están implantando rápidamente en

los sistemas empotrados y móviles de comunicaciones debido a su elevada potencia de

cálculo, su bajo consumo y el bajo coste de desarrollo que presenta. Por otro lado, el

uso del mismo supone que, a la hora de compilar los códigos fuentes de los programas

a ejecutar en esta plataforma, se deba hacer uso de compiladores cruzados para poder

obtener un ejecutable válido para el procesador en cuestión. Posee además de dos

83

acelerómetros, conectividad GPRS, GSM, Bluetooth con chipset CSR BlueCore 4,

802.11g y GPS, entre otras.

Figura 5.9. Openmoko, versiones Neo 1973 y Neo FreeRunner.

El sistema operativo que gobierna Openmoko se basa en una distribución de Linux

para dispositivos móviles con un kernel 2.6.24. Tiene al menos tres distribuciones

oficiales (OM 2007.2, OM 2008 y OM 2009) y otras de la comunidad OM, que se

detallarán más adelante.

5.5.2. nanoLiab

El proyecto Liab (Linux in a box) [46] se inició en el verano de 1998 en el Instituto de

Sistemas Electromagnéticos de la Universidad Técnica de Dinamarca, DTU. El objetivo

era desarrollar una pequeña plataforma con un microprocesador para realizar tareas

de control y adquisición de datos en relación con un dispositivo de medición de

antenas. El prototipo y la primera generación del LIAB se desarrollaron en DTU. Luego

lo desarrolla una empresa privada, llamada LIAB ApS. Las partes del hardware y el

software gestor de arranque son copyright de LIAB ApS. Sin embargo, la mayoría del

software es de fuente abierta. En la Figura 5.10 se ve una fotografía de la placa.

Sus principales características son:

Procesador ATMEL AT91RM9200 de 200 MHz.

Sistema operativo: Linux (kernel 2.6.16).

Real-Time Clock.

Memoria RAM 32 MB.

Memoria ROM/FLASH 16 MB.

Puerto Ethernet 10/100 Mbit.

84

Puerto USB 2.0 host.

Entrada/salida de audio.

Figura 5.10. Fotografía del nanoLiab.

5.5.3. Limestone

Limestone [47] es una placa base que cuenta con todas las infraestructuras básicas

necesarias para construir una computadora de mano o PDA personalizada.

Figura 5.11. Fotografía de la placa del Limestone (izquierda) y placa con carcasa y pantalla (derecha).

Se listan a continuación sus principales características:

Procesador Marvell PXA320 de 806 MHz.

Memoria RAM de 128 MB y 1GB de NAND FLASH.

Sistema operativo: Windows CE 6.0.

Ranura para memorias del tipo SD (Secure Digita).

Batería de Ion de litio e indicador de estado de la batería.

Entrada/salida de audio de 16 bits.

USB host.

Pantalla táctil.

Interfaz para teclado.

Interfaz para cámara.

Puertos: 3 UARTs, SPI, I2C, GPIO.

No incluye carcasa.

85

5.6. Comparación entre alternativas de móviles

La elección del hardware del dispositivo móvil se decantó por el Openmoko debido

fundamentalmente a la gran flexibilidad que permite al ser un proyecto abierto, tanto

software como hardware. Otra cuestión favorable es que incorpora con un sistema

operativo Linux de kernel 2.6, particularidad deseada, ya que incluye las librerías de

desarrollo Bluetooth integradas y no es necesario compilarlas para utilizarlas.

En la Tabla 5.3 se muestran los precios de las distintas alternativas para el móvil.

Precio de las opciones (Euros)

Openmoko Nanoliab Limestone

237 249 218

Tabla 5.3. Precios de las opciones de móviles.

Si bien no es la alternativa más barata, la comunidad de desarrolladores está en

continuo crecimiento, se caracteriza por ser solidaria y con aportes fructíferos, lo que

permitirá la incorporación paulatina de nuevas funcionalidades y la optimización de las

existentes.

5.7. La plataforma Openmoko

Openmoko es un proyecto de código abierto cuya intención es crear un sistema

operativo libre para teléfonos móviles. Han sido varios los terminales desarrollados por

esta plataforma, entre los que se encuentra el GTA02 o el Neo Freerunner, que es el

terminal que emplearemos para este proyecto.

El sistema operativo desarrollado por Openmoko está basado en un núcleo Linux. Las

licencias con las que son lanzados los productos de esta plataforma proporcionan a los

desarrolladores y a los usuarios libertad para realizar ligeros cambios estéticos o

transformarlo radicalmente. Más allá de liberar el software, también se facilitan los

archivos CAD bajo licencia Creative Commons, por lo que también se puede decir que

se trata de un plataforma de hardware libre. Es la filosofía de software libre la que

confiere a esta plataforma un atractivo importante desde el punto de vista del

desarrollador.

El terminal con el cual se realizan las pruebas del software desarrollado es un GTA02, o

Neo Freerunner, cuyas especificaciones son las siguientes:

Procesador ARM Samsung 2442 SoC de 400 Mhz.

Kernel Linux 2.6.

Pantalla táctil de alta resolución de 2.8 pulgadas 480 x 640 píxeles.

86

128MB de memoria SDRAM para permitir la ejecución de varias aplicaciones a

la vez.

Modulo GPS interno para programas de posicionamiento y navegación.

Bluetooth para el intercambio local de datos y USB.

WiFi 802.11 b/g para rápida transferencia de datos y navegación web.

Dos acelerómetros 3D que permiten saber la orientación para por ejemplo

cambiar a modo apaisado automáticamente.

Tribanda GSM y GPRS 850/1800/1900 Mhz para Norte América y

900/1800/1900 Mhz para el resto del mundo.

En la Figura 5.12 podemos observar la arquitectura software en la que se basa la

plataforma Openmoko. Observamos que se trata de un sistema empotrado basado en

varias capas.

Figura 5.12. Framework de la plataforma Openmoko.

En un primer nivel nos encontramos con el kernel Linux 2.6.x, el cual posee los drivers

necesarios para interactuar con el hardware presente en el dispositivo móvil, así como

las librerías estándar que contienen las APIs de Unix. Entre los servicios básicos

ofrecidos por este nivel al nivel superior podemos encontrarnos con servicios que dan

soporte a la comunicación mediante Bluetooth (bluez), servicios que dan soporte a

comunicaciones GSM (gsm 0710), servicios que dan soporte a dispositivos de audio

(gstreammer alsa), entre otros.

87

En el siguiente nivel encontramos los procesos que usan los servicios ofrecidos por el

nivel inferior. Estos procesos ofrecen al nivel superior servicios como telefonía,

configuración del dispositivo, servicios de red, localización mediante GPS, control de

eventos, sincronización temporal, etc. Los servicios ofrecidos por este nivel son

accesibles desde el nivel de aplicación gracias a que el framework dispone de un

método de comunicación de procesos denominado DBUS, el cual permite que una

aplicación pueda comunicarse con un servicio que se encuentra registrado en dicho

BUS a través de una de las interfaces accesibles de las que dispone dicho servicio.

Todos los servicios disponibles para la capa de aplicación están registrados en DBUS,

por lo que si un desarrollador desea elaborar una aplicación que, por ejemplo, necesite

usar el servicio de localización GPS, lo único que tendría que hacer es comunicarse con

el servicio que da soporte GPS a través de la interfaz de la que éste dispone en DBUS.

Por último, se nos presenta la capa de aplicación. En esta capa se encuentran las

aplicaciones basadas en librerías gráficas como GTK+, Qtopia o X11.

Para más información se puede acudir a la web de la plataforma Openmoko [45].

5.8. Hardware desarrollado

El hardware de la baliza principal, como se mostró en la sección 5.2, es un PC

industrial. Éste se asentará sobre una placa base de fabricación propia a través de la

cual se le pasará la alimentación. Esta placa base, además, se encargará de convertir

los niveles de tensión DC a los niveles adecuados, contendrá la etapa de amplificación

para el altavoz, permitirá la comunicación mediante los puertos Ethernet y serie. Por

motivos de estética y seguridad se ha colocado en una caja plástica y hecho el

mecanizado correspondiente de donde saldrán los cables de alimentación y conectores

a redes externas. Incorpora diodos LED para indicar la puesta en funcionamiento del

sistema.

En la Figura 5.13 se muestra una fotografía de la baliza principal montada en la placa

base y dispuesto en una caja. La caja es de plástico ABS (Acrilonitrilo Butadieno

Estireno), muy resistente a golpes y con protección un índice de protección (IP) 65, que

la resguarda del polvo y del agua. En el lateral sobresalen el pasamuros, donde irá el

cable de alimentación y el cable de red, y los diodos LED, que indican la puesta en

marcha del sistema.

88

Figura 5.13. Fotografía de la baliza principal.

En la Figura 5.14 se puede apreciar la baliza de localización.

Figura 5.14. Fotografía de una baliza de localización.

Po último, en la Figura 5.15 se muestra el elemento móvil, basado (como se ha

comentado anteriormente) en el dispositivo móvil denominado Openmoko.

Figura 5.15. Fotografía del elemento móvil de la plataforma.

89

6.

6.1. Introducción

Una vez hecha la elección del hardware, se pasa a describir el software

correspondiente a cada elemento del sistema. Se ven en este capítulo las necesidades

den cuanto a la programación, se describen las aplicaciones desarrolladas y se da una

esbozo de la interoperabilidad entre las distintas partes del sistema. Se empieza con la

elección del sistema operativo adoptado y luego se hablará de cada una de las partes

que componen la plataforma electrónica, mostrando diagramas del funcionamiento e

indicando las funciones principales de cada una de las partes del software para una

mejor comprensión del mismo.

6.2. Sistema operativo

Un sistema operativo se puede definir como el software de gestión del sistema [48], es

decir, como un conjunto de programas destinados a realizar diversas tareas como

puede ser la administración eficaz de los recursos de un equipo. Para la elección del

mismo se tienen dos opciones principales, optar por un software privado o por una

alternativa de código libre. Se ha optado por la segunda alternativa.

El motivo de utilizar esta última es porque al tratarse de código libre, se tienen

accesibles las fuentes tanto del kernel y de una gran variedad de aplicaciones que

ayudará al desarrollo de ésta. Por otro lado, se prevé que aparezcan más aplicaciones

que serán desarrolladas por la amplia comunidad de desarrolladores, aplicaciones que

pueden incorporarse paulatinamente al sistema. Debido a su uso generalizado, los

controladores de dispositivos para todo tipo de hardware se puede encontrar en

Internet y el entorno de programación está bien documentado, tanto en los libros

como en numerosos READMEs, FAQs y HOWTOs disponibles en Internet. Otro motivo

de peso es el costo, pero al tratarse de sistemas operativos libres, podemos hablar

sistemas operativos de costo cero.

90

Optar por sistemas operativos de código libre permitirá optimizar el rendimiento del

sistema y adaptarlo a las necesidades en todo momento. En el caso de que se hubiera

adquirido un sistema operativo propietario, se estaría restringido a las libertades

otorgadas por el fabricante del mismo. Además, sería imposible personalizar el sistema

tanto como se desease ya que al tratarse de un software cerrado, el código fuente no

es accesible y, por tanto, no se puede modificar.

Dentro de los sistemas operativos de código libre, nos centraremos en los sistemas

GNU/Linux. Actualmente, Linux es un núcleo monolítico híbrido, es decir, es una

especie de gran programa que contiene todas las herramientas necesarias para

funcionar pero que admite la carga de módulos adicionales que se instalan según

necesidades concretas. Los controladores de dispositivos y las extensiones del núcleo

normalmente se ejecutan en un espacio privilegiado conocido como ring 0, con libre

acceso al hardware, aunque algunos de estos controladores pueden ser llamados

desde el espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los

controladores de dispositivos y las extensiones al sistema operativo se pueden cargar y

descargar fácilmente como módulos, mientras el sistema continúa funcionando sin

interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los

controladores pueden ser pre-volcados bajo ciertas condiciones. Esta habilidad fue

agregada para gestionar correctamente interrupciones de hardware, y para mejorar el

soporte del multiprocesamiento simétrico.

Existe un sistema de archivos que se carga durante el arranque y que posee todos los

directorios, programas, particiones, dispositivos, etc. Una de las grandes ventajas de

este tipo de sistemas es que los periféricos se manipulan exactamente igual que un

fichero, pudiendo utilizar en la inmensa mayoría de situaciones las mismas funciones

usadas para gestionar los ficheros.

Una distribución es una variante del kernel de Linux que se enfoca a satisfacer las

necesidades de un grupo específico de usuarios. En consecuencia, cada una de las

mismas podrá incluir un número diferente de aplicaciones que le otorguen un

determinado valor añadido a dicha distribución. Un ejemplo de aplicación que no tiene

que estar presente en una distribución es un instalador gráfico, el cual facilita todo el

proceso de instalación y configuración del equipo. Las herramientas que suelen

incluirse en las distribuciones de Linux proceden de diversos proyectos de código

abierto como puede ser GNU, BSD, KDE, Mozilla, entre otros.

6.3. Distribuciones Linux

A continuación se muestran las distribuciones Linux evaluadas.

91

6.3.1. Debian

Se trata de una distribución estable, madura y popular entre la comunidad GNU/Linux.

Ofrece una herramienta de gestión de paquetes denominada APT que permite la

descarga e instalación automatizada de paquetes a través de Internet en modo

consola. A su vez, posee uno de los sistemas de repositorios con mayor cantidad de

programas. No obstante, los repositorios de Debian no dan soporte a paquetes

propietarios denominados non-free, lo que provoca que determinados paquetes deban

ser instalados desde repositorios no oficiales o bien tengan que ser compilados

manualmente. Finalmente, resulta ser una distribución muy configurable y con el

desarrollo pertinente sobre la misma puede dar lugar a un sistema rápido, fiable, muy

estable y fácil de configurar. Sin embargo, resulta ser una distribución que requiere

unos conocimientos previos considerables debido a que numerosas tareas no se

encuentran automatizadas.

Los requisitos hardware de esta distribución resultan ser de los más bajos de todas las

distribuciones. Se puede ejecutar en máquinas con al menos 32 megabytes de

memoria RAM y puede ocupar un espacio mínimo de entre 20 y 48 MB dependiendo

de la arquitectura de la plataforma en la que se instala y sin usar gestor gráfico.

Realizando la instalación de un entorno de ventanas como es GNOME, ocuparía un

máximo de 200 MB. Finalmente, uno de los mayores inconvenientes que tiene esta

distribución es que el período de actualización de la distribución estable suele ser

elevado, puesto que las aplicaciones y kernels deben pasar toda una batería de

pruebas que garanticen su estabilidad y su correcto funcionamiento. No obstante, las

versiones testing de esta distribución se actualizan semanalmente y resultan casi tan

fiables como una release version.

6.3.2. Ubuntu

Ubuntu es una distribución GNU/Linux que ofrece un sistema operativo

predominantemente enfocado a ordenadores de escritorio aunque también

proporciona soporte para servidores.

Basada en Debian GNU/Linux, Ubuntu concentra su objetivo en la facilidad de uso, la

libertad de uso, los lanzamientos regulares (cada 6 meses) y la facilidad en la

instalación. Ubuntu es patrocinado por Canonical Ltd., una empresa privada fundada y

financiada por el empresario sudafricano Mark Shuttleworth.

Desde el punto de vista de los requisitos hardware, Ubuntu posee los siguientes

requerimientos:

Procesador: 300 MHz x86.

92

Memoria RAM: 64 MB.

Disco Duro: 4GB (con swap incluida).

Placa de video VGA.

Sin embargo, para que funcione de manera más rápida y estable, se recomienda que el

equipo posea las siguientes características:

Procesador: 700 MHz x86.

Memoria RAM: 384 MB.

Disco duro: 8GB.

Tarjeta de vídeo capaz de soportar resolución de 1024x768.

Tarjeta de sonido.

Conexión a internet.

6.3.3. Fedora

Fedora es una distribución de GNU/Linux para propósitos generales basada en RPM,

que se mantiene gracias a una comunidad internacional de ingenieros, diseñadores

gráficos y usuarios que informan de fallos y prueban nuevas tecnologías. Cuenta con el

respaldo y la promoción de Red Hat.

La herramienta habitual en Fedora para interactuar con los repositorios a través de

línea de comandos se denomina Yum; así mismo existe un entorno gráfico Yum

denominado Pirut (para tareas de instalación y eliminación de paquetes) y Pup (para

tareas de actualización de paquetes).

Yum posee un front-end llamado Yumex.

6.3.4. Gentoo

Gentoo Linux es una distribución GNU/Linux orientada a usuarios con cierta

experiencia en estos sistemas operativos. Fue fundada por Daniel Robbins, basada en

la inactiva distribución llamada Enoch Linux. En el año 2002, esta última pasó a

denominarse Gentoo Linux.

La piedra angular de Gentoo es Portage, un gestor de paquetes, inspirado en los ports

BSD, escrito en Python y Bash. Portage implementa algunas características avanzadas

que no están presentes en los ports BSD: la gestión de dependencias, afinamiento

preciso de los paquetes a gusto del administrador, instalaciones falsas al estilo

OpenBSD, cajas de arena durante la compilación, desinstalación segura, perfiles de

sistema, paquetes virtuales, gestión de los ficheros de configuración y múltiples

ranuras para distintas versiones de un mismo paquete.

93

Una ventaja de Gentoo es que las versiones de software se actualizan de forma

continua, a diferencia de otras distribuciones donde los paquetes pasan meses en

comprobación. Ello permite tener un sistema con las últimas versiones de todo el

software, ideal para tareas de escritorio. Por el contrario, aunque es algo poco

habitual, a veces el uso de versiones del software insuficientemente comprobadas da

como resultado bugs que pueden suponer un riesgo para servidores de producción.

Otra desventaja de este sistema es que poner en marcha un sistema completo, o

actualizar un sistema que ha estado desatendido durante un tempo, puede requerir

una considerable cantidad de tiempo (horas o incluso días si el ordenador es muy

antiguo), mientras se descargan y compilan todos los paquetes nuevos. Aun así,

Gentoo permite por regla general una actualización sin problemas, a diferencia de

otras distribuciones donde puede llegar a resultar complicado o casi imposible. Esta

actualización también es posible a partir de binarios pre-compilados, lo que requiere

menos tiempo.

6.3.5. Damn Small Linux

Damn Small Linux es una distribución Linux Live CD funcional y completa, basada en

Knoppix y pensada para funcionar en computadoras con muy pocos recursos o

antiguos, como los procesadores Intel 80486. Su tamaño reducido (50MB) consigue

mantener la esencia de Knoppix en un completo entorno de escritorio. Gracias a su

pequeño tamaño, se puede poner dentro de una Memoria USB y arrancar con la

misma en cualquier computadora.

DSL tiene incluidos scripts para la descarga e instalación del Advanced Packaging Tool

(APT) de Debian, y Synaptic, su GUI. Adicionalmente, Damn Small Linux permite la

descarga directa de programas grandes como OpenOffice.org y el GNU Compiler

Collection (GCC), de igual manera que programas más pequeños como Xmms por

medio del sistema MyDSL, que permite a los usuarios la comodidad de una descarga e

instalación de aplicaciones en un clic.

6.3.6. LFS (Linux From Scratch)

Linux From Scratch o LFS es una colección de documentos que nos indican los pasos

para compilar una distribución GNU/Linux desde cero. El proyecto se diferencia de

otras distribuciones en que no consta de paquetes y scripts pre ensamblados para una

instalación automática del sistema, sino que sus usuarios son provistos simplemente

con paquetes de código fuente y un manual de instrucciones para el armado de un

sistema GNU/Linux propio.

94

Debido al inmenso trabajo que demanda la instalación de este sistema en comparación

a otras distribuciones, los usuarios que deciden hacer uso de LFS son principalmente

aficionados que desean aprender sobre el funcionamiento interno de un sistema

GNU/Linux y ensamblar un sistema a su medida. Linux From Scratch es también

utilizado como base de varias distribuciones, usualmente alejadas de su espíritu

original de "metadistribución".

6.4. Distribución de la baliza principal

Para la elección del sistema operativo, la principal opción sería utilizar una distribución

de GNU/Linux que cumpliese una serie de características como las detalladas a

continuación:

Facilidad de instalación.

Máxima compatibilidad con diferentes periféricos

Amplio soporte por una comunidad de desarrolladores.

Gran número de aplicaciones.

Mantenimiento continúo en el tiempo y disponibilidad de actualizaciones.

Con base en estos criterios, se ha optado por la distribución Debian Etch 4.0 porque es

la que reúne todos los requisitos citados anteriormente y en base a la gran cantidad de

soporte ofrecido a esta distribución, la gran cantidad de recursos existentes en los

repositorios oficiales de la misma y la experiencia a nivel de usuario con este sistema.

Esta distribución tiene la ventaja de permitir una instalación en modo avanzado que

consiente una personalización en gran medida. Para ello, brinda la posibilidad de

instalar únicamente el sistema base sin necesidad de tener un entorno gráfico. Esto

supone tener un sistema inicial del cual partir sin necesidad de compilar los paquetes

que componen el sistema base a mano para su posterior instalación. Esto permite

reducir los costes de tiempos de puesta en marcha del sistema y el sistema sigue

manteniendo toda la capacidad de personalización que un sistema LFS.

Si comparamos con otras distribuciones, Debian se caracteriza por tener un enorme

apoyo en la comunidad de código abierto, así como un foro en castellano especializado

en resolver dudas y bugs. A su vez, el repositorio oficial de la misma consta de más de

26000 paquetes disponibles para el usuario final, por lo que tan sólo es necesario

hacer uso del comando apt-get install en consola, o bien, mediante el programa gráfico

Synaptic, para instalar cualquier aplicación.

Por otra parte, el proceso de instalación de la misma es uno de los más depurados,

fiables y fáciles de ejecutar de la inmensa cantidad de distribuciones existentes. Esto

va a provocar que la instalación del sistema operativo en el dispositivo final sea

relativamente sencilla.

95

En cuanto a su instalación en la placa PC104, es necesario indicar que ésta puede ser

llevada a cabo de dos formas:

Mediante uso de un CD-ROM externo y conectado al puerto IDE de dicha

tarjeta.

Mediante una instalación en red.

6.5. Distribución del cliente

Hay una gran cantidad de distribuciones para el dispositivo móvil, todas disponibles en

la comunidad de desarrolladores y usuarios de los dispositivos Openmoko, llamada

Openmokowiki [49] y se pueden dividir en tres tipos de distribuciones: las oficiales, las

comunitarias y las no oficiales.

OM es el nombre que se ha dado a la distribución oficial del proyecto y hasta el

momento hay tres. Estas versiones se basan en GNU/Linux y han sido adaptadas para

que las funciones del teléfono. Las distribuciones oficiales son:

OM 2007: Distribución lanzada por el proyecto Openmoko, su desarrollo

comenzó el 26 de Julio del 2007, y actualmente ya no sigue siendo desarrollada

y fue reemplazada por OM 2008.

OM 2008: Se agrega Qtopia sobre X11 para las funciones de telefonía. Usa un

administrador de ventanas llamado Illumine y soporte para GTK+. Ha logrado

encontrar y solucionar un gran número de errores de la versión anterior.

OM 2009: Actual versión de la distribución OM, la última emisión (de testing)

fue el 16 de Junio del 2009, luego ha quedado abandonada ya que los

desarrolladores se han movido a otras distribuciones, ya que las diferencias

entre las distribuciones son mínimas. Ésta se basa en el framework FOE y Parolli

como software de administración para las comunicaciones.

6.5.1. Distribuciones comunitarias

SHR (Stable Hybrid Release): Esta distribución está enfocada a crear un sistema

operativo funcional basado en el framework de la organización

Freesmartphone y las EFL (Enlightenment Foundation Libraries).

FDOM (Fat and Dirty OpenMoko): Es una distribución más amplia que la oficial

OM que pretende demostrar las excelentes capacidades del Neo FreeRunner.

6.5.2. Distribuciones no oficiales

Entre las distribuciones no oficiales podemos encontrar las siguientes:

96

Qt Extended Improved.

Debian GNU/Linux: Debian es el sistema operativo visto anteriormente y

permite al Neo FreeRunner puede utilizar los paquetes basados en la

arquitectura ARM.

Gentoo: es posible instalar Gentoo de tres maneras, compilación cruzada,

compilación en el mismo Neo o emulación de un Neo.

Android: la empresa Koolu fue la pionera en implementar este sistema

operativo en el Neo.

Hackable:1: es una distribución comunitaria destinada a dispositivos que

pueden ser estudiados (hackeables).

neovento: distribución basada en Debian GNU/Linux destinada al Neo

Freerunner y utiliza LXDE y Zhone.

OpenWrt: Distribución destinada a sistemas embebidos.

Mer: Es una distribución basada en Maemo.

La instalación por defecto es la distribución Om 2007, que es muy simple. Según una

encuesta realizada en Agosto del 2009, la distribución más utilizada dentro de la

comunidad Openmoko es la SHR (60%), seguido de una de las distribuciones Om (15%),

Debian (6%), Hackeable:1 (6%), Qt Extended Improved (5%) y por último, la

distribución Android (4%). Los restantes (4%) utilizan alguna de las otras distribuciones

disponibles.

La distribución que se utilizará es la SHR, que permite un mejor aprovechamiento del

hardware del dispositivo, ya que en ciertas distribuciones, algunos de los componentes

hardware no funcionan correctamente y esto es muy importante a la hora de evaluar

la expansión del sistema.

6.6. Aplicaciones de la baliza principal

Teniendo en mente la filosofía de funcionamiento de la plataforma electrónica, basada

en peticiones de páginas, se pasará a describir las aplicaciones de las balizas principales

del sistema. En la Figura 6.1 se pueden ver las distintas aplicaciones desarrolladas para

las balizas principales.

La aplicación principal tiene dos funciones principales, por un lado estará buscando

nuevos clientes y, por el otro, espera peticiones de páginas por parte de los clientes,

que es donde se envían las informaciones que el usuario necesita. Para satisfacer las

peticiones de páginas cuenta con la aplicación Pasarela, que está buscando

continuamente clientes y hace de interfaz con el servidor Apache. El servidor Apache

contiene todas las páginas que el usuario pueda necesitar y se encarga de almacenar

ficheros XML.

97

PASARELA

Aplicaciónprincipal

ServidorApache

FicherosXML

Figura 6.1. Elementos software de las balizas principales del sistema.

6.6.1. Aplicación principal

La aplicación principal se encarga de la configuración del dispositivo Bluetooth,

escribiendo el código de acceso limitado y seleccionando el modo de búsqueda

entrelazado. También gestiona los datos de cada uno de los clientes vinculados al

servidor y coordina los distintos procesos que corren en el servidor, para que el

funcionamiento del mismo sea totalmente autónomo. Para conseguirlo, se divide en

dos hilos de procesamiento, utilizando sentencias de la librería OpenMP. En la Figura

6.2 se muestra cómo se distribuyen los hilos dentro de la aplicación principal.

Figura 6.2. Diagrama de las funciones de la aplicación principal.

La primera sentencia de la librería OpenMP fija el número de hilos que tendrá la

aplicación, luego se establecen las secciones a las que se le asignarán los hilos. En este

caso, se ha divido en dos secciones. Primero se tiene la sección encargada de la

búsqueda de dispositivos móviles al alcance y la segunda se encarga de la gestión de la

pasarela.

Aplicación principal () { modificar_parámetros_BT (); omp_set_num_threads (2); #pragma omp parallel sections { #pragma omp section { busca_clientes (); //Hilo de búsqueda de clientes } #pragma omp section { pasarela (); //Hilo de escucha de clientes } } }

98

6.6.2. Busca_clientes

La función busca_clientes se encarga de buscar continuamente dispositivos que estén

al alcance de las balizas principales, los encuentra y los va organizando en listas de

dispositivos para su mejor manejo. La primera lista corresponde a los dispositivos

encontrados y se actualiza cada nueva tanda de búsquedas. La segunda, es la de

dispositivos inactivos, que son aquellos que no intercambian información con los

elementos fijos pero continúan dentro del rango de alcance de éstos. En cada ciclo de

búsqueda, los clientes encontrados se introducirán en la lista de encontrados. Luego se

recorre dicha lista y la compara con la de dispositivos inactivos, actualizando ambas y

liberando la de encontrados para dar lugar a un nuevo ciclo. También detecta los

dispositivos que hayan salido del rango de cobertura del elemento fijo, comparando la

lista de dispositivos inactivos con la de encontrados y actualizando dichas listas. En la

Figura 6.3 se muestra el diagrama de la función buscar_clientes.

Figura 6.3. Diagrama de las funciones que buscan clientes.

Para cada ciclo de búsqueda se establecen dos parámetros principales, uno es el

tiempo máximo del ciclo de búsqueda y, el otro, es la máxima cantidad de respuestas

esperadas. Estos parámetros se pueden configurar según el tipo de respuesta que se

espera en cada sitio, ya que no es lo mismo el vestíbulo de una estación de trenes que

un pasillo estrecho. Para el primer caso se podría pensar en tiempos más largos, ya

que la superficie a cubrir es mayor y la probabilidad de encontrar usuarios es más alta.

Se ha visto que la eficiencia en la búsqueda se ve degradada por la cantidad de

dispositivos [50] y se han hecho pruebas para determinar el tiempo óptimo de

duración del ciclo de búsqueda. Las pruebas se muestran en el Capítulo 7.

En cuanto a los tamaños, la lista de encontrados puede albergar hasta 255 dispositivos,

máximo tamaño determinado por la norma Bluetooth en un ciclo del Inquiry y la lista

buscar_clientes () { lista_encontrados = NULL; lista_encontrados = hci_inquiry (); Mientras lista_encontrados != NULL Si lista_encontrados [i] = lista_activos Si lista_encontrados [i] = lista_inactivos avisar_cobertura (); lista_inactivo = lista_encontrado [i]; Fin Si Fin Si Fin Mientras actualizar_listas ();

}

99

de inactivos no tiene cota superior pero no se esperan muchos clientes al tratarse de

pequeñas áreas de espacio.

6.6.3. Pasarela

La pasarela es la encargada de recibir todas las peticiones de páginas de los móviles y

envía las respuestas. La pasarela está a la espera de peticiones de conexión por parte

de los clientes, escuchando un socket RFCOMM de Bluetooth. Una vez establecida la

comunicación abre otro socket, esta vez uno TCP al puerto 80, donde redirige la

petición que le llega del cliente al servidor web que contiene todas la páginas que el

usuario pueda necesitar y queda a la espera de la respuesta. Cuando recibe la

respuesta del servidor web, la envía al cliente, a través del socket Bluetooth, y da por

terminada la comunicación. De ahí viene el nombre de pasarela, por ser una interfaz

que permite peticiones/respuesta entre distintos protocolos, Bluetooth y TCP en este

caso. Esta sucesión de eventos se muestra en la figura 6.4. A la izquierda se muestran

los sockets correspondientes a la aplicación del cliente, y a la derecha, los sockets de la

pasarela del elemento fijo, que actúa como servidor [51].

Figura 6.4. Sucesión de pasos para conexión entre sockets.

El primer paso es la creación de los sockets [52], tanto del lado del cliente como del

servidor (con la directiva create). En el segundo paso, para el socket cliente es bastante

fácil, basta tan solo con especificar una dirección y un puerto al cual conectarse

(comando connect), dejando al sistema operativo a cargo de los detalles a bajo nivel.

Una vez que el socket esté conectado puede ser utilizado para trasferir datos. Los

sockets del servidor requieren un poco más de trabajo, ya que se tienen que realizar

varios pasos previos antes que pueda ser utilizado. Primero se debe asociar un socket

(mediante la directiva bind) a un recurso del adaptador Bluetooth local y el número del

puerto a utilizar. Luego, se debe cambiar al socket a modo escucha (con el comando

listen), que indica al sistema operativo que acepte peticiones de conexión entrantes.

Una vez que el socket del cliente intente conectarse al del servidor y permita la

100

transferencia de datos, el servidor debe aceptar el pedido de conexión entrante (con la

directiva accept). Luego de realizar todos los pasos descritos, la pasarela debe actuar

como cliente para transferir el pedido que le ha llegado por parte del móvil al servidor

web.

Una de las principales diferencias entre un socket de servidor y un socket de cliente es

que la aplicación del servidor, al aceptar la conexión, puede vincular ese pedido de

conexión a otro socket, dejando el socket original listo para seguir escuchando

peticiones de conexión de futuros clientes.

Cuando finaliza la transferencia de datos desde la pasarela, se da por terminada la

conexión y se espera la siguiente petición. El esquema de la pasarela se muestra en la

Figura 6.5.

Figura 6.5. Funciones en la Pasarela.

La pasarela, entonces, estará siempre a la escucha de peticiones por parte de los

clientes. Una vez recibida, la transfiere al servidor web. Luego cuando recibe los datos

del servidor los envía de vuelta al cliente. La pasarela es totalmente transparente para

los datos que pasan por ella, sólo se encarga de servir las peticiones que le llegan.

6.6.4. Servidor web

El servidor web utilizado es el Apache, por ser de código abierto y altamente

configurable. Es uno de los servidores web más utilizados en la actualidad. Fue

desarrollado y está mantenido por Apache Software Foundation [53]. Como ventajas

se tiene que permite autenticación y negociación de contenido y está disponible para

muchos sistemas operativos. Se puede ver como desventaja la carencia de interfaz

gráfica donde configurar las opciones pero, a cambio, la extensa bibliografía y recursos

electrónicos disponibles, mitigan dicha carencia.

Para satisfacer los requerimientos de la plataforma se han instalado el módulo PHP,

para dar soporte a la generación de páginas web dinámicas, y el módulo SSL, que

incrementa la seguridad del sistema. En el servidor Apache están alojadas tres páginas

PHP para solucionar distintas necesidades, éstas son:

escuchar_clientes () { escuchar_peticiones (); enviar_al_servidor_web (); esperar_respuesta_apache (); enviar_respuesta_cliente (); }

101

connect.php: se utiliza cuando un cliente es encontrado por primera vez por un

servidor. Se encarga de enviar al cliente el tipo información que ese servidor

específico tiene almacenado, dejando en manos del cliente la decisión de

realizar o no peticiones.

audio.php: cuando un cliente solicita un fichero de audio, esta función es la

encargada de serializar dicho fichero y enviarlo al cliente como respuesta.

extern.php: esta función devuelve el código fuente de cualquier página visible

desde el servidor web dentro del servidor.

6.6.5. Manejo de listas

La gestión de listas de dispositivos Bluetooth se ha implementado con listas

doblemente enlazadas, usando la librería propia LList. Esta librería dispone de los

procedimientos estándar y funciones de fácil uso para el manejo de listas en C. Esta

librería se usará para la gestión de las tres colas de dispositivos que se mencionaron

anteriormente.

6.7. Aplicaciones del elemento móvil

En esta sección se mostrarán los distintos componentes del software de los elementos

móviles de la plataforma. Se muestra un diagrama en la figura 6.6. Sobre una

aplicación principal se han desarrollado una serie de aplicaciones para el uso del

dispositivo por parte del usuario. Estas aplicaciones se ejecutarán sobre la base de un

escritorio sonoro que permitirá usar el dispositivo de manera fácil e intuitiva. Podrá

asimismo cambiar de aplicación cuando el usuario lo desee y personalizar su

dispositivo, al tener disponible todas las opciones de configuración del móvil.

Aplicaciónprincipal

Mplayer Html_get

XML Parser

TTS

Figura 6.6. Elementos software de los dispositivos móviles.

102

La base de la comunicación se encuentra en la función Html-get, encargada de tramitar

las peticiones de páginas que el usuario necesite. Luego se analiza dicha respuesta y se

determina si es texto, se procesará con el analizador XML y si es audio, el fichero será

decodificado y reproducido directamente al usuario.

6.7.1. Aplicación principal

La aplicación principal es la encargada de manejar todas las demás funciones dentro

del elemento móvil. EL dispositivo móvil, al ser descubierto por una baliza, recibe un

fichero de texto donde se anuncian todas las informaciones que éste tiene

almacenadas. De ahí, el móvil finalmente decide si le interesa o no la información

adscrita a esa baliza. En caso afirmativo, solicita la información mediante la aplicación

Html_get y posteriormente se encarga de interpretarla y reproducirla al usuario. En

caso negativo, simplemente lo ignora y queda a la escucha de otro posible servidor. En

la figura 6.7 se muestran las funciones que se realizan dentro de la aplicación principal.

Figura 6.7. Funciones en la aplicación principal del cliente.

Primeramente, la aplicación principal cambia los parámetros del adaptador Bluetooth

y luego se queda permanentemente a la escucha de los servidores que están al

alcance. Cuando un cliente entra dentro del radio de alcance de un servidor, éste le

envía en un fichero XML toda la información que tiene adscrita. El cliente es el

encargado de analizar la información que le llega del servidor, decidir si le interesa

dicha información, reproducirla al usuario y hacer las peticiones pertinentes. El primer

tipo de ficheros que intercambian los elementos del sistema es el de información en

formato texto (XML) y el dispositivo móvil es el encargado de analizarlo (parser) y

Cliente () { modificar_parámetros_BT (); Hacer siempre escuchar_servidor (); recibir_datos (); Si tipo de datos es texto analizar_XML (); Fin Si Si tipo de datos es audio decodificar_audio ();

reproducir_audio ();

Fin Si

Mientras Servidor sea válido

Html_get ();

Fin Mientras

Fin Hacer

}

103

decidir si la información le es útil. Si desea pedir más informaciones, se vale de la

función Html_get y vuelve a empezar el proceso.

6.7.2. Html_get

La aplicación Html_get es la encargada de las comunicaciones entre el dispositivo

móvil y la pasarela de las balizas principales. Realiza las peticiones de páginas que el

usuario necesita y se encarga de gestionar el análisis de las respuestas.

Los parámetros de entrada pueden variar según si la baliza principal tiene o no acceso

a Internet. Los parámetros son:

Host: Es la dirección del servidor al que queremos conectarnos. Si es un

elemento fijo sin conexión a Internet recibe la dirección del localhost

(generalmente 127.0.0.1) y si el elemento fijo tiene conexión a Internet, se pasa

la dirección del servidor al que quiere conectarse.

Página: Para ambos casos se pasará la ruta al recurso que se desea, ya sea texto

o audio.

Dirección Bluetooth: Es la dirección Bluetooth del elemento fijo al que

queremos conectarnos para recibir los ficheros.

6.7.3. Escritorio Sonoro

El Escritorio Sonoro es una aplicación análoga al escritorio de un ordenador, salvo que

todas las indicaciones serán mediante señalizaciones sonoras. Estará encargado de

interactuar con el usuario, permitiéndole ejecutar todas las aplicaciones instaladas en

el móvil. También proporcionará una interfaz para configurar y personalizar el

dispositivo.

6.7.4. Analizador XML (parser)

Esta aplicación recibe los ficheros XML y los analiza para extraer información, dando a

la aplicación principal los datos que ésta necesite para determinar si ese elemento fijo

contiene información útil o no. Para analizar los ficheros XML se ha optado por utilizar

la librería Libxml [54] de GNOME, concretamente la versión Libxml2, con soporte para

XML2.0 bajo licencia del MIT, y puesta a disposición como software libre de código

abierto.

Esta librería es nativa para C, pero incluye soporte para otros lenguajes y entornos de

desarrollo. Soporta multitud de estándares, como XML, Namespaces (XML), Base

104

(XML), RFC2396, XPath, HTML4 Parser, XInclude, XPointer, y casi la totalidad de los

estándares de la W3C referentes a desarrollo web con XML.

Mediante el uso de esta librería, se analizarán los diferentes archivos XML recibidos

por el receptor a estructuras en C, para poder analizarlas y actuar en consecuencia. El

análisis consta de tres etapas, el análisis léxico, el sintáctico y el semántico.

Análisis léxico: También conocida como etapa de scanner, en la que recibe

como entrada un fichero XML y genera una serie de tokens que sirven de

entrada para la siguiente fase del análisis. Se dice que un documento está bien

formado léxicamente, si cumple la normativa de generación de documentos

XML, tales como las de abrir y cerrar etiquetas, especificación de atributos,

variables o propiedades, etc.

Análisis sintáctico: El siguiente estado es el análisis sintáctico, donde se

comprueban que los tokens generados en la fase anterior, forman una

expresión válida. Esto se realiza usando una gramática libre de contexto, que

define recursivamente componentes que pueden aparecer en una expresión y

el orden en que estos deben aparecer. Un documento está bien formado

sintácticamente si cumple la estructura de formación de documentos XML. Por

ejemplo, cada etiqueta abierta debe ser cerrada, no se deben cerrar etiquetas

no abiertas, el documento debe tener una estructura de árbol, entre otras.

Análisis semántico: En esta etapa se trabaja en las implicaciones de la expresión

ya validada y realiza las actuaciones pertinentes. Entenderá el tipo de XML

recibido (y validado léxica y sintácticamente) y el significado de cada uno de los

tokens que éste contiene, e incluirá toda la lógica necesaria para saber que

realizar con este tipo de información, ya sea reproducir una locución o pedir el

envío de otra página o recurso que se necesite.

6.7.5. Reproductor de audio

Las distintas distribuciones disponibles para los terminales de la plataforma Openmoko

suelen disponer de uno o varios reproductores de audio instalados, como mplayer,

mpd, etc. Entre los reproductores existentes para el Neo Freerunner se encuentra el

citado mplayer, el cual es empleado como sistema backend en multitud de

aplicaciones disponibles para los terminales, como por ejemplo: Pythm, Intone u

omShuffle. Estas aplicaciones no son más que frontend e interfaces gráficas que usan

mplayer como software reproductor.

El reproductor de audio seleccionado para el desarrollo del proyecto y que por tanto,

deberá ser instalado en el dispositivo móvil prototipo será mplayer. Los motivos que

nos llevan a seleccionar este reproductor y no otro son:

105

Reproduce audio en muchos formatos.

Es capaz de reproducir varios flujos de audio de forma simultánea.

Permite controlar el flujo de audio desde un programa mediante la ejecución

en modo esclavo. Este es el principal motivo por el que se ha elegido este

reproductor como sistema backend.

6.8. Comunicación con el Openmoko

Con el fin de facilitar la programación del Openmoko, haciéndola más sencilla y rápida

se comunica el dispositivo móvil con el ordenador, mediante un cliente Secure SHell

(SSH). De este modo se puede visualizar en la pantalla del ordenador, todo aquello que

se esté ejecutando en el Openmoko.

La comunicación entre el ordenador y el Openmoko se realiza mediante la interfaz

USB, entonces es necesario configurarla para establecer la comunicación entre ambos

y se siguen los siguientes pasos:

1. Configuración de la conexión USB: # sudo ifconfig usb0 192.168.0.200 netmask

255.255.255.0 (se asigna una dirección IP al puerto USB).

2. Comprobación de la misma: # ping -I usb0 192.168.0.202 (dirección por defecto

del Openmoko).

3. Establecimiento de la conexión: # ssh [email protected] y se deja en blanco

el password.

4. Para finalizar la conexión simplemente se utiliza el comando: # exit.

Una vez realizados los tres primeros pasos, tenemos establecida la comunicación con

el Openmoko y el sistema estará listo para realizar la tarea que se le encomiende.

6.9. Herramientas de compatibilidad (toolchains)

Debido a que el Openmoko se encuentra desarrollado sobre un procesador ARM, se

necesitan una serie de herramientas que permiten la compatibilidad con arquitecturas

empotradas. En la Wiki de desarrolladores mencionada en [49] se puede encontrar el

conjunto de herramientas encargadas de la traducción de una plataforma a otra, éstas

reciben el nombre de toolchains.

Para instalarlas, es necesario seguir una serie de pasos, que dependen del

microprocesador y del sistema operativo que posea el ordenador en donde se trabaja.

Para descargar del paquete para el procesador del ordenador de trabajo se ejecuta:

Para plataformas Linux de 32 bits:

106

# wget http://downloads.openmoko.org/developer/toolchains/ openmoko-i686-

20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.bz2

Para plataformas Linux de 64 bits:

# wget http://downloads.openmoko.org/developer/toolchains/ openmoko-x86_64-

arm-linux-gnueabi-toolchain.tar.bz2

Para instalarlas se debe ir a un directorio específico, mediante la sentencia:

# cd /usr/local/openmoko/

Y luego extraer los ficheros ejecutando la sentencia:

# tar-zxvf /sources/openmoko-XYZ-arm-linux-gnueabi-oolchain.tar.bz2

Luego se ejecuta una aplicación para alterar algunas variables de entorno que son

necesarias mediante la sentencia:

# ./usr/local/openmoko/arm/setup-env

Luego se añade en la ruta de este directorio para poder usar los archivos desde

cualquier otra ubicación mediante la sentencia:

# export PATH=$PATH:/usr/local/openmoko/arm/bin

Posteriormente y antes de cargar las librerías son necesarias otras variables de

entorno, para establecerlas se utiliza la sentencia:

# ./usr/local/openmoko/arm/environment-setup

Luego se actualizan las bases de datos opkg:

# opkg-target update

Y finalmente se instalan las librarías necesarias:

# opkg-target list |grep edje-dev

# opkg-target install libedje-dev

Todo este proceso puede ser largo, generalmente en torno a una hora.

6.10. Síntesis de voz humana

107

La síntesis de voz humana es la producción artificial de habla humana. Un sistema

usado con este propósito recibe el nombre de sintetizador de voz y puede llevarse a

cabo en software o en hardware. A los mecanismos de síntesis de voz se los llama a

menudo TTS (text-to-speech), en referencia a su capacidad de convertir texto en

locuciones. Un sistema TTS se compone de dos partes: un frontend y un backend. A

grandes rasgos, el frontend toma como entrada texto y produce una representación

fonética y el backend toma como entrada la representación lingüística simbólica y

produce una forma de onda sintetizada.

El frontend desempeña dos tareas principales. Primero, toma el texto y convierte las

partes problemáticas como números y abreviaturas en palabras equivalentes. Este

proceso se llama normalización de texto o preprocesado. Entonces asigna una

transcripción fonética a cada palabra, y divide y marca el texto en varias unidades

prosódicas, tales como frases y oraciones. Luego realiza la conversión de texto a

fonema, que no es más que el proceso de asignar transcripciones fonéticas a las

palabras. La combinación de transcripciones fonéticas e información prosódica

constituye la representación lingüística fonética. El backend, toma la representación

lingüística simbólica y la convierte en sonido. Este proceso es conocido comúnmente

como sintetizador.

A continuación se describen los distintos mecanismos de TTS que se han considerado y

se justifica la elección final.

6.10.1. eSpeak

eSpeak [55] es una aplicación TTS que puede ser manejada desde consola. Luego de

varias pruebas se ha notado que la voz producida no es muy realista, sonando bastante

robótica. Como ventajas se pueden citar su facilidad de uso, da gran libertad ya que

permite el control tanto de la velocidad de reproducción como del tono y la amplitud

de la voz. Cabe destacar que no da problemas con ningún tipo de texto, como números

con coma o palabras que contienen letras especiales como la ñ.

Esta opción fue descartada porque, a pesar de que es muy fácil de instalar y usar, la

aplicación ocupa mucho espacio en disco y la voz que reproduce el audio, que no se

puede variar, es artificial y poco agradable.

6.10.2. Festival

Festival [56] es un sistema desarrollado originalmente por el Centro de Investigación

de Tecnologías del Lenguaje de la Universidad de Edinburgo, la Universidad de

Carnegie Mellon y varios otros centros de enseñanza que han realizado contribuciones

108

al proyecto. Se distribuye como software libre bajo licencia del tipo MIT-X11 que

permite el uso sin restricciones. Incluye documentación completa para desarrollar

sistemas de síntesis de voz con varias APIs, siendo un entorno ideal para el desarrollo e

investigación de las técnicas de síntesis de voz.

El proyecto se ha escrito en lenguaje C++ y se ha implementado como un intérprete de

comandos el cual puede conectarse con diversos módulos y aplicaciones. Además

existen librerías para el desarrollo de aplicaciones en los lenguajes Java y C++, así como

un interfaz para el editor de textos. El proyecto festival es multilingüe. Además algunos

grupos han desarrollado herramientas que permiten utilizar otros idiomas con el

proyecto, entre ellos castellano con voz andaluza y catalán.

6.10.3. Flite

Flite [57] es un pequeño y rápido motor de síntesis de voz desarrollado en la

Universidad de Carnegie Mellon. Deriva del Festival, a quien debe el nombre, Festival

lite. Se ha diseñado para pequeñas máquinas empotradas como alternativa al Festival.

Esta opción fue descartada debido al poco desarrollo existente de voces e idiomas ya

que sólo incluye el inglés.

Finalmente, se ha escogido Festival como el mecanismo de síntesis de voz porque, a

pesar que ocupa más espacio en disco, se puede modificar e instalar sólo los paquetes

necesarios. La principal ventaja de usar Festival es su gran difusión entre la comunidad

de programadores, por lo que se han desarrollado muchos idiomas y herramientas

adicionales, como compresores y reproductores, compatibles con Festival.

Las principales características de Festival son:

Licencia tipo X11 que permite el uso sin restricciones tanto en aplicaciones

comerciales como no comerciales.

Poco tamaño en disco, aproximadamente 11MB incluyendo una voz en

español, masculina y de acento andaluz.

Cada voz adicional ocupa entre 3 y 5 MB.

Se pueden crear ejecutables que conviertan a voz automáticamente distintos

tipos de documentos (txt, html, xml entre otros), dotando de más versatilidad a

la pasarela.

6.11. Programación paralela

Al analizar las prestaciones de la plataforma electrónica, se hace imperiosa la

necesidad de recurrir a la programación paralela ya que estaremos realizando

actividades que podrían requerir su atención simultánea. Por ejemplo, puede darse la

109

situación en que un cliente esté reproduciendo un mensaje y llegue al alcance de un

servidor. Éste no escucharía al servidor y sencillamente lo ignoraría, perdiéndose así de

toda la información que le podría brindar.

Las técnicas más comunes para paralelizar códigos se muestran a continuación.

6.11.1 Técnicas multithread

Las técnicas multithread [58] permiten la ejecución de varios procesos

simultáneamente, compartiendo el procesador. A esto se conoce como

multithreading. A cada proceso se lo denomina thread (del inglés: hilo, hebra). Es

posible entonces, generar varios procesadores lógicos utilizando un único procesador

físico, de tal manera que si los recursos que necesitan los distintos threads son

diferentes, se mantienen flujos de instrucciones separados como si se contara con

varios procesadores. De paralelismo multiprocesador no se hablará en este trabajo ya

que escapa de las intenciones. El principal problema a solventar cuando se emplean

técnicas multithread es la de compartir un único recurso, por varios hilos de

programación. Para compartir un recurso se disponen de prioridades para evitar que

dos o más hilos cambien un mismo valor o lean valores falsos. Esta tecnología ha sido

implementada ya en los procesadores Xeon y Pentium 4 con el nombre de

hyperthreading. Actualmente los Core i7 de Intel poseen dos hilos de procesamiento

por cada núcleo, con lo que el sistema ve al microprocesador como uno de ocho

núcleos en vez de cuatro, que son los que físicamente tiene.

Hay dos paradigmas en programación paralela que están ampliamente extendidos, la

programación mediante paso de mensajes y la programación para memoria

compartida. El modelo de programación por paso de mensajes es uno de los

paradigmas más antiguos y utilizados en la programación de máquinas paralelas. Su

razón de ser está ligada a la creación de los primeros computadores paralelos,

ayudado por la poca necesidad de hardware que requiere para ser implementado. El

paralelismo es controlado explícitamente por el programador, lo que representa su

principal inconveniente ya que deja en manos de éste la responsabilidad de resolver

las dependencias de datos y evitar los interbloqueos y condiciones de carrera.

Antes de hablar de la programación en memoria compartida debemos aclarar algunos

conceptos como por ejemplo el de thread de ejecución. Aunque más arriba se ha

hecho una breve introducción, ahora se verá su estructura. Un thread de ejecución

puede ser definido como un flujo de instrucciones independiente que permite ser

planificado para su ejecución como tal por el sistema operativo, esto es, una secuencia

de instrucciones de un programa. Mirando desde el punto de vista de un programador,

se asocia a un proceso que se ejecuta de forma independiente de su programa

110

principal. Ampliando esta idea, si el programa principal tiene más de un proceso, todos

los procesos se podrían planificar para su ejecución simultánea e independiente por el

sistema, lo que describiría a un programa multithread.

Un proceso en UNIX consiste en un único flujo de ejecución que comienza en el

programa principal. Cada línea de código se ejecuta por turnos y exactamente una

línea a la vez. En UNIX cada proceso tiene información sobre los recursos del programa

y de su estado de ejecución, lo que implica:

Espacio de direcciones virtual (pila, datos y segmento de código).

Recursos del sistema (entorno, directorio de trabajo, descriptores de ficheros,

librerías, señales, ID de proceso, del usuario y del grupo, entre otras).

Instrucciones de programa.

Herramientas de comunicación interprocesos IPC (Inter-process

Communication) como: colas de mensaje, pipes, semáforos o memoria

compartida.

Estos recursos son privados a cada proceso ya que por ejemplo, los procesos no

pueden acceder al espacio de direcciones de otro proceso, abrir o cerrar ficheros de

otro, etc. Los procesos para poder comunicarse crean canales externos al proceso

mediante los mecanismos que el propio UNIX les proporciona para tales fines y son

programas muy tediosos ya que se implementan a muy bajo nivel y suponen una

sobrecarga considerable. En el modelo multithread un proceso puede expandir threads

de ejecución adicionales al suyo, de manera que los nuevos threads utilizan y conviven

con los recursos del proceso que los ha creado y, además, es posible que el sistema

operativo los planifique y ejecute como entidades independientes, en gran medida

porque duplican únicamente la parte de los recursos que les permite existir como

código ejecutable.

Este control de flujo independiente es posible porque cada thread mantiene:

Conjunto de registros y puntero de pila.

Pila para variables locales y direcciones de devolución del control.

Mecanismo de planificación (prioridad).

Conjuntos de señales pendientes o bloqueadas.

Datos específicos del thread (identificador de thread).

En cuanto al ciclo de ejecución, en el entorno UNIX un thread:

Existe en un proceso y utiliza los recursos del proceso.

Tiene su propio control de flujo, mientras exista su proceso padre y el sistema

operativo lo soporte.

111

Duplica sólo los recursos esenciales que necesita para poder desarrollarse de

forma independiente.

Puede compartir los recursos del proceso con otros threads que actúan de igual

forma independiente o dependientemente.

Muere si el proceso padre del recurso muere.

Es ligero porque la mayoría de la sobrecarga se ha genero con la creación de su

propio proceso.

Los threads del mismo proceso comparten:

Las instrucciones del proceso.

La mayoría de los datos.

Los descriptores de los ficheros abiertos.

Las señales y los gestores de las señales.

El directorio de trabajo actual.

ID de usuario y de grupo.

Puesto que los threads creados por el mismo proceso comparten recursos, se cumple

que:

Los cambios hechos por un thread sobre el sistema de recursos compartido

(como cerrar un fichero) pueden ser vistos por el resto de threads.

Dos punteros que tienen el mismo valor apuntan al mismo dato.

Es posible leer y escribir en la misma posición de memoria y, por tanto, se

requiere sincronización explícita por parte del programador.

Resumiendo, los threads comparten su memoria con otros threads, mientras que para

los procesos habitualmente tenemos diferentes áreas de memoria para cada uno. Otra

ventaja a la hora de utilizar threads en vez de utilizar un grupo de procesos es el

cambio de contexto entre procesos. Además, las comunicaciones entre threads son

más sencillas y rápidas de implementar que la comunicación entre procesos.

En lo que se refiere a estándares en memoria compartida y para sistemas UNIX, se ha

desarrollado el estándar IEEE POSIX 1003.1c (1995) [59], una interfaz para la

programación mediante threads utilizando lenguaje C. Las implementaciones que se

adhieren a este estándar se conocen como librerías de threads POSIX o de Pthreads.

Actualmente, la mayoría de los sistemas cuentan con librerías threads que se apoyan

en este estándar por lo que, en la práctica, se ha constituido en uno de los auténticos

estándares para la programación de máquinas de memoria compartida. El uso de

librerías de threads está ampliamente extendido entre los programadores de sistemas,

pero menos entre los programadores de aplicaciones. Se considera que el tipo de

112

primitivas que proporciona es de bajo nivel y que el esfuerzo y conocimientos

requeridos al programador son aún elevados.

Posteriormente aparece OpenMP (Open Multi Processing) [60] que constituye una

forma de programación basada en directivas con las que el usuario puede, a alto nivel,

introducir las primitivas adecuadas para la programación en memoria compartida. A

comienzos de los años 90 ya los vendedores de máquinas de memoria compartida

proporcionaban extensiones a Fortran, basadas en directivas, que eran funcionalmente

similares. El usuario añadía a su programa secuencial Fortran directivas que

especificaban qué bucles serían paralelizados. El compilador era el responsable de

paralelizar de forma automática tales bucles sobre máquinas de multiprocesamiento

simétrico (SMP). En 1997 aparecen las primeras especificaciones de OpenMP para el

lenguaje Fortran, que luego evolucionará hasta un estándar de facto en la

programación en máquinas de memoria compartida ya que aún no está registrado.

OpenMP está compuesto de tres elementos:

Directivas de compilación.

Rutinas de librería.

Variables de entorno.

En el sitio oficial se pueden encontrar los documentos y archivos de la especificación

que son libres y no requieren licencia para su uso. Proporciona un estándar para una

variedad de plataformas y arquitecturas de memoria compartida, mediante un

conjunto limitado de directivas para programar dichas máquinas por ejemplo se puede

obtener un paralelismo significativo utilizando tan sólo tres o cuatro directivas.

Luego de haber implementado funciones básicas de paralelismo, se hace notable la

diferencia de dificultad de implementación por parte de los threads del POSIX. Por el

contrario, el uso de las librarías OpenMP se hace casi de forma intuitiva y amigable.

OpenMP puede ser utilizado para cualquier paralelización, separando el código en

diferentes secciones que serán ejecutadas de forma paralela por diferentes hilos de

procesamiento. Además, esta asignación entre secciones e hilos se hace de forma

dinámica. Es decir, si un hilo finaliza su sección asignada y queda alguna sección más

por ejecutarse, éste se hará cargo de su ejecución, mejorando en gran medida el

rendimiento en comparación con el manejo de hilos de forma manual. La

implementación de aplicaciones bajo OpenMP se realiza mediante la inserción de

directivas en el código C, indicando qué partes del código se realizarán en paralelo y las

variables que podrán ser cambiadas por ese hilo (públicas) y cuáles no (privadas).

113

114

7. Capítulo 7

Pruebas y aportaciones

7.1. Introducción

En este capítulo se mostrarán las pruebas realizadas para determinar algunos

parámetros del sistema, tales como modos de detección, tiempos de descubrimiento,

etc. a fin de ajustarlos para el mejor desempeño del mismo. Luego veremos cómo se

comporta el sistema en una prueba realizada en el edificio de la Escuela de Ingenieros.

7.2. Pruebas con los dispositivos Bluetooth

A fin de determinar de forma óptima los parámetros de funcionamiento del sistema se

han hecho una serie de pruebas con los dispositivos Bluetooth para obtener

básicamente el tipo de búsqueda y el tiempo de descubrimiento del ciclo de inquiry.

7.2.1. Modos de detección de dispositivos

La norma Bluetooth estable dos tipos distintos de búsqueda de dispositivos, el modo

normal y el modo entrelazado, como se discutió en la sección 3.5. Para determinar cuál

de los dos tipos de búsqueda tiene mejor resultado, se han dispuesto en una sala

dispositivos Bluetooth y se ha lanzado el proceso de búsqueda reiteradas veces. A fin

de tener una estimación estadística confiable, las pruebas se han lanzado 15 veces.

Para ver cómo afecta el número de dispositivos al alcance, se ha hecho la prueba con 2

dispositivos y, luego se ha repetido la misma, con 15 dispositivos a fin de comparar los

resultados obtenidos. En las pruebas se ha cambiado la duración del ciclo de

búsqueda, con valores del 1 al 10. En las figuras 7.1 y 7.2 se puede observar el

porcentaje de dispositivos encontrados con el modo normal de búsqueda (línea a

trazos) y con el modo entrelazado (línea continua).

En ambos casos con el modo entrelazado se tiene una mejor respuesta que con el

modo normal, especialmente para tiempos de búsqueda cortos (menores a 5). Con el

modo entrelazado y para el caso de 2 dispositivos, con tiempo de búsqueda mayor a 2

ya tenemos respuestas del 100% de los dispositivos y en el caso de 15 dispositivos, a

partir de tiempo de búsqueda mayor a 3. Eso significa que necesitamos 3,84 segundos

115

para localizar 15 dispositivos. Con el modo normal, para encontrar todos los

dispositivos, para el caso de 2 dispositivos se necesitan 6,4 segundos y para el caso de

15 dispositivos no se asegura que sean encontrados todos los dispositivos; eso

significaría que existe la posibilidad que algún usuario pueda quedarse sin servicio.

Queda demostrado entonces, que se debe utilizar el modo entrelazado para mejorar el

proceso de búsqueda.

Figura 7.1. Prueba de descubrimiento de dispositivos Bluetooth con 2 dispositivos.

Figura 7.2. Prueba de descubrimiento de dispositivos Bluetooth con 15 dispositivos.

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10

Po

rce

nta

je d

e d

isp

osi

tivo

s e

nco

ntr

ado

s

Tiempo del ciclo de búsqueda [N*1,28 ]

modo normal

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10

Po

rce

nta

je d

e d

isp

osi

tivo

s e

nco

ntr

ado

s

Tiempo del ciclo de búsqueda [N*1,28 ]

modo normal

116

7.2.2. Tiempos de búsqueda del ciclo Inquiry

Prestando atención ahora al tiempo de búsqueda de dispositivos, length o LEN,

determinaremos el tiempo óptimo del ciclo de búsqueda. Debemos recordar que la

norma establece 48 intervalos de tiempo discretos, múltiplos de 1,28 segundos, dados

de la siguiente manera:

En la prueba se ha tomado valores del 1 al 10 como se mencionó antes, porque la

norma asegura que la probabilidad de encontrar a todos los dispositivos se da a partir

de LEN = 8 y es el tiempo estándar en los teléfonos móviles y en los ordenadores.

Ahora bien, fijándonos en la figura 7.1 que corresponde al caso de 2 dispositivos, se ve

que todos los dispositivos son encontrados con el modo de búsqueda entrelazado a

partir de LEN = 2. Si nos fijamos en la figura 7.2, el caso de 15 dispositivos, podemos

notar a partir de LEN = 3 se encuentran todos los dispositivos al alcance. Nótese que la

diferencia entre ambos es de 1,28 segundos y tomando en consideración que no se

espera un gran número de usuarios en un sitio en concreto, se podría utilizar LEN = 2

sin mayores inconvenientes.

7.3. Pruebas de funcionamiento del sistema

Se ha realizado dos pruebas en el edificio de la Escuela de Ingenieros. La primera

consiste en guiar a un usuario desde el Centro de Cómputo hasta la sala de

ordenadores, ambos ubicados en la Entreplanta 2 de la Escuela.

Figura 7.3. Mapa del recorrido desde el Centro de Cálculo hasta la Sala de Ordenadores.

117

En esta prueba se han dispuesto cinco balizas, una principal y cuatro de localización,

como se puede ver en la figura 7.3. Los resultados se muestran en la tabla 7.1.

Probabilidad de detección del móvil

LEN P(BN=5) P(BN=4) P(BN=3) 1 50 % 40% 10 % 2 90 % 10% 0 % 3 70 % 20 % 10 % 4 30 % 60 % 10 %

Tabla 7.1. Probabilidad de detección en el servicio de localización.

La tabla 7.1 muestra la probabilidad hallada que el dispositivo móvil sea detectado por

un número de balizas. Como dijimos anteriormente, el sistema cuenta con 5 balizas,

entonces se podría ver la columna con P(NB=5), como la probabilidad de llegar a

destino siendo detectado por todas las balizas. Nuevamente se corrobora que con el

campo LEN = 2, se obtiene las mejor probabilidad de éxito.

Hay que tener en cuenta que para estos casos, la detección de los dispositivos se ha

hecho en movimiento y pueden variar con respecto a los hallados anteriormente, que

eran estáticos. En ninguna de las repeticiones se ha dado el caso de que el número de

balizas que detecten al móvil, NB, sea menor a 3, por ello no se incluyen en la tabla.

La segunda prueba consiste en que el sistema lleve a un usuario desde la entrada de la

Escuela hasta el despacho del profesor Dr. Federico Barrero, en el Departamento de

Electrónica. Ahí se probarán las otras funcionalidades del sistema, como el servicio de

localización y de alerta. En este caso se han utilizado 2 balizas principales y 6 balizas de

localización.

En la figura 7.4 se ve el mapa de la planta baja de la Escuela de Ingenieros y donde se

puede ver el camino a seguir por el usuario. Cuando una persona que pase frente a la

Escuela, se le avisará al usuario que ha llegado a ese edificio y si quiere recibir alguna

información.

Entonces el usuario accede y se le informa de cómo llegar hasta la entrada de la

Escuela. Una vez allí el usuario escucha la información adscrita a esa baliza e indica su

interés por un sitio especial, que es el despacho descrito anteriormente. Ahí se le

pregunta si quiere que se localice el sitio cuando se encuentre cerca. Entonces escucha

las indicaciones hasta llegar al mismo y los pitidos de la baliza cuando llega a destino.

118

Figura 7.4. Mapa de planta baja de la Escuela de Ingenieros y ruta a seguir por el usuario.

Figura 7.5.Mapa del entreplanta 2 y ruta final del usuario.

119

7.4. Aportaciones

Gracias al trabajo efectuado se han podido hacer 4 contribuciones a IX Congreso de

Tecnologías Aplicadas a la Enseñanza de la Electrónica (TAEE) realizado en Madrid en el

mes de Abril de 2010. Las publicaciones llevan los siguientes títulos:

Plataforma para el aprendizaje de tecnologías inalámbricas y redes de sensores

basada en el sistema open hardware denominado Openmoko. GANADORA DEL

PREMIO ACCESIT EN TAEE 2010.

Desarrollo de experiencias prácticas basadas en el estándar de comunicaciones

inalámbricas Bluetooth.

Sistema de orientación basado en brújula electrónica para la realización de

prácticas.

Plataforma basada en microprocesador para el aprendizaje de tecnologías

inalámbricas RFID, NFC y Bluetooth.

Por otro lado se han presentado dos artículos en prestigiosos congresos

internacionales. El primero corresponde al congreso Wireless Applications and

Computing (WAC), desarrollado en Friburgo, Alemania, llamado “A methodology for

improving inquiry time in bluetooth devices”.

El segundo corresponde a un nuevo enfoque que se ha dado al sistema, y que resalta

su versatilidad. Se trata sobre un sistema de ayuda a víctimas de desastres

ambientales, presentado en Salónica, Grecia llamado: “A wireless in-door system for

assisting victims and rescue equipments in a disaster management” en el marco del

congreso Intelligent Networking and Collaborative Systems (INCoS).

Todas las aportaciones se adjuntan en el Apéndice 1.

120

8. Capítulo 8

Conclusiones 8.1. Introducción En este capítulo se presentan las principales conclusiones sobre el trabajo realizado y

se esbozan las líneas futuras de trabajo.

8.2. Conclusiones

En este trabajo se presenta el diseño e implementación de un sistema electrónica de

accesibilidad para discapacitados visuales, mediante la cual una persona con

discapacidad visual puede acceder a toda la información de su entorno. El sistema

desarrollado es una extensión del proyecto de investigación inicial, que ha permitido el

desarrollo de un sistema electrónico de asistencia a discapacitados visuales. En base al

hardware originalmente desarrollado para la asistencia a mujeres víctimas de violencia

de género, se ha diseñado e implementado un sistema tiflotecnológico, donde he

contribuido en gran parte del desarrollo software (en el proyecto, además de mi

trabajo, han colaborado mi tutor, como investigador responsable de la propuesta, el

Prof. Sergio L. Toral, y 3 investigadores contratados que se han encargado del

desarrollo de las plataformas hardware del sistema para la atención a los colectivos

mencionados).

El sistema tiflotecnológico, derivada del proyecto original, consta de tres elementos:

dos fijos y uno móvil. Los elementos fijos se deben colocar en los sitios donde se desea

informar a los usuarios, quienes llevan consigo el elemento móvil, que es el encargado

de reproducir los mensajes que llegan de los elementos fijos. Se han mostrado las

alternativas estudiadas al momento de escoger los elementos hardware del sistema y

las distintas opciones referentes al software, en cuya elección participé activamente

durante los primeros 4 meses de estancia en España, colaborando con los profesores

Dr. Federico Barrero y Dr. Sergio Toral (cabe destacar que durante ese periodo de

tiempo, era el único investigador contratado con cargo al proyecto). A partir de ese

momento, y durante un periodo de entre 8 y 9 meses, he contribuido al desarrollo del

software de la plataforma. Se ha mostrado el diseño e implementaciones del software

desarrollado, explicándose las pruebas de validación realizadas, en las que se ha

podido constatar el buen desempeño del protocolo Bluetooth en la aplicación. Se ha

probado, además, la interoperabilidad entre los dispositivos del sistema mediante un

121

par de ejemplos ilustrativos, en el que un usuario es conducido a través del edificio de

la Escuela de Ingenieros. El primero consiste en orientar al usuario desde el Centro de

Cálculo hasta la Sala de Ordenadores y, el segundo, desde la entrada de la Escuela

hasta el despacho de un profesor en el Departamento de Ingeniería Electrónica. En

dichos ejemplos se recorren todas las aplicaciones software desarrolladas, mostrando

así cada uno de los pasos que se recorren hasta que el usuario recibe la información

almacenada en un elemento fijo. Se ve, asimismo, la versatilidad que se esconde

detrás del sistema tiflotecnológico, ya que para brindar nuevos servicios bastará con

añadir tantas líneas de código XML como servicios se pretende ofrecer.

Por último, y fuera de la experiencia profesional lograda en la realización de este

trabajo, me gustaría resaltar lo enriquecedora que ha sido mi estancia en España, que

me ha permitido entablar contacto con otra cultura (hermana, pero diferente a la

paraguaya) y conocer el estado y metodología de trabajo de otras sociedades, lo que

ha contribuido definitivamente a mi formación como Ingeniero y como persona.

8.3. Futuros trabajos

En cuanto a nuevos dispositivos hardware que se pueden agregar al diseño propuesto

se pueden mencionar: un GPS y una brújula electrónica. El GPS brindaría, en entornos

outdoor, una forma de localización de respaldo y permitiría que las balizas estén más

espaciadas entre sí. La brújula electrónica para estimar la dirección (en grados) a la que

mira el usuario y que permitirá discernir el sentido de movimiento del mismo,

personalizando el mensaje a enviar al usuario.

En cuanto a software, se propone el desarrollo de una interfaz gráfica que sea

aprovechable tanto para personas con ceguera como para personas que tienen resto

visual, ya que por simplicidad, los ejemplos desarrollados están hechos en base a la

consola de Linux. Entonces, aparte de reproducir locuciones, se pueden pensar en

utilizar flechas que indiquen la dirección que debe tomar el usuario.

También se ha pensado en la utilización de los acelerómetros que dispones el

OpenMoko para utilizarlos como mandos del elemento móvil. Entonces si un usuario

quiere pasar a la siguiente opción del menú, bastaría con un simple movimiento de su

muñeca.

122

9. Anexo 1

Publicaciones y aportes

123

124

DESARROLLO DE EXPERIENCIAS PRÁCTICAS BASADAS EN EL

ESTÁNDAR DE COMUNICACIONES INALÁMBRICAS BLUETOOTH

E. MARSAL, D. GUTIÉRREZ, M. SOTO, J. HINOJO, F. CORTÉS, F. BARRERO, S. TORAL

Departamento de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de

Sevilla. España

[email protected], [email protected], [email protected], [email protected],

[email protected],

[email protected], [email protected]

Resumen de la comunicación Bluetooth es un protocolo de comunicaciones inalámbrica que nos permite conectar dos o

más dispositivos a corta distancia, permitiendo la transmisión de voz y de datos mediante

enlaces de radio frecuencia en la banda ISM de 2.4 GHz. Para acercar al alumno el estándar, se

han desarrollado en el Departamento de Ingeniería Electrónica de la Universidad de Sevilla un

conjunto de prácticas para que los alumnos de la titulación de Ingeniería de Telecomunicación,

sin necesidad de un exhaustivo conocimiento teórico de la norma, puedan experimentar con

algunos de los parámetros más importantes en el establecimiento de las comunicaciones

inalámbricas Bluetooth, como son el proceso de descubrimiento de dispositivos y el rango de

alcance. El desarrollo realizado pretende, posteriormente, que los alumnos aprendan a

caracterizar los enlaces establecidos mediante análisis estadísticos, a fin de evaluar la calidad de

estos.

Se presenta una breve introducción al estándar Bluetooth y se explica el proceso de

descubrimiento de dispositivos y el diagrama de estados de la norma Bluetooth. Luego, se

muestran las aplicaciones prácticas desarrolladas, en las cuales los alumnos podrán cambiar los

parámetros de configuración del proceso de búsqueda de dispositivos, establecer conexiones

entre dispositivos, enviar y recibir ficheros. Por último, se explican los parámetros que

caracterizan los enlaces Bluetooth.

Se intenta estimular el aprendizaje basado en prácticas, necesario en aplicaciones de este

tipo, ya que se necesita mucho tiempo para desarrollarlas.

Referencias [1] Bluetooth Special Interest Group. Bluetooth Specification Version 2.1 + EDR,

http://www.bluetooth.com/ (2007).

[2] G. Záruba y I. Chlamtac. Accelerating Bluetooth Inquiry for Personal Area Networks. Global

Telecommunications Conference, 2003, vol. 2, pp.702-706, GLOBECOM '03, Diciembre 2003.

[3] B. Peterson, R. Baldwin y J. Kharoufeh. Bluetooth Inquiry Time Characterization and Selection.

Mobile Computing, IEEE transactions, vol. 5, pp. 1173-1187, 2006.

[4] G. Záruba y V. Gupta. Simplified Bluetooth Device Discovery – Analysis and Simulation. Systems

Scineces, 2004. Proceedings of 37th Annual Hawaii International Conference, pp. 9pp, 2004.

[5] S. Asthana y D. Kalofonos. The problem of Bluetooth pullution and accelerating connectivity in

Bluetooth Ad-Hoc networks. Pervasive Computing and Communications, 2005. PerCom 2005. Third

IEEE International Conference, pp. 8-12, 2005.

[6] X. Zhang y G. Riley. Evaluatioin and accelerating Bluetooth device discovery. Radio and Wireless

Symposium, pp. 467-470, 2006.

[7] F. Bektas, B. Vondra, P. Veith, L. Faltin, A. Pohl y A. Scholtz. Bluetooth communication employing

antenna diversity. Computers and Communication, 2003. Proceedings. Eighth IEEE International

Symposium on, 2003, pp.652-657, vol 1, 2003.

[8] A. Mohammed y T. Hult. Evaluation of the Bluetooth link and antennas performance for indoor

office environments by measurement trials and FEMLAB simulations. Vehicular Technology

Conference, 2005. VTC 2005-Spring. 2005 IEEE 61st, pp. 238-242, vol. 1, 2005.

[9] F. Forno, G. Malnati, G. Portelli. Desing and implementation of a Bluetooth ad hoc network for

indoor positioning. Software, IEE Proceedings, pp. 223- 228, vol. 152, 2005.

[10] BlueZ, pila de protocolos Bluetooth oficial para Linux, http://bluez.org/

125

DESARROLLO DE EXPERIENCIAS PRÁCTICAS BASADAS EN EL

ESTÁNDAR DE COMUNICACIONES INALÁMBRICAS BLUETOOTH

E. MARSAL, D. GUTIÉRREZ, M. SOTO, J. HINOJO, F. CORTÉS, F. BARRERO, S. TORAL

Departamento de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de

Sevilla. España

[email protected], [email protected], [email protected], [email protected],

[email protected],

[email protected], [email protected]

Los sistemas de comunicación inalámbrica representan hoy en día el

ejemplo más claro de cómo influyen las nuevas tecnologías de la

información y las comunicaciones en la vida cotidiana de los seres

humanos. Bluetooth, utilizado en dispositivos tan habituales como el

teléfono móvil o la PDA, es uno de estos estándares de comunicación

inalámbrica más empleados. El uso del estándar Bluetooth se basa en

una serie de conceptos como la potencia de transmisión o los códigos

de acceso y el tiempo dedicado al proceso de descubrimiento, ocultos

generalmente al usuario del sistema. En este trabajo se presenta el

desarrollo de una serie de actividades experimentales que permiten a

los alumnos entrenarse en las características básicas del estándar

Bluetooth, accediendo y modificando sus parámetros de

configuración. Todas las experiencias prácticas, desarrolladas como

ampliación del enfoque práctico de la asignatura denominada

“Laboratorio de Instrumentación” adscrita a la titulación de

Ingeniería de telecomunicaciones en la escuela Superior de

Ingenieros de la Universidad de Sevilla, se basan en las librerías

BlueZ y en el sistema operativo Linux.

1. Introducción Bluetooth es un protocolo de comunicaciones inalámbrica que nos permite conectar dos o más

dispositivos a corta distancia, permitiendo la transmisión de voz y de datos mediante enlaces de

radio frecuencia en la banda ISM de 2.4 GHz [1]. Está adoptado como estándar (IEEE 802.15)

dentro del grupo de redes inalámbricas de área personal (WPAN). Si bien las especificaciones de la

norma Bluetooth son claras, las implementaciones en las distintas plataformas no son intuitivas y se

hace estrictamente necesario conocer al detalle la especificación, lo que requiere un gran esfuerzo

inicial por la extensión de la propia normativa (la versión 3.0 de Bluetooth se documenta en no

menos de 1700 páginas). Para acercar al alumno el estándar, y debido a la situación descrita, se han

desarrollado en el Departamento de Ingeniería Electrónica de la Universidad de Sevilla un conjunto

de prácticas para que los alumnos de la titulación de Ingeniería de Telecomunicación, sin necesidad

de un exhaustivo conocimiento teórico de la norma, puedan experimentar con algunos de los

parámetros más importantes en el establecimiento de las comunicaciones inalámbricas generadas por

Bluetooth, como son el proceso de descubrimiento de dispositivos y el rango de alcance. El

desarrollo realizado pretende, posteriormente, que los alumnos aprendan a caracterizar los enlaces

establecidos mediante un extenso análisis estadístico, a fin de aprendan a evaluar la calidad de estos.

2. El estándar Bluetooth: establecimiento y calidad del enlace inalámbrico El proceso de descubrimiento en la especificación Bluetooth es fundamental en el

establecimiento de la comunicación asociada al estándar Bluetooth. Este proceso se divide en

tres fases [2]:

En la primera fase, el dispositivo que inicializa la comunicación (que se denomina

master en la norma) busca dispositivos a su alrededor. El master se encuentra en el

126

estado Inquiry durante esta fase, mientras que los dispositivos vecinos que estén a la

escucha (slaves según la norma) se deben encontrar en el estado Inquiry Scan.

A la fase anterior, le sigue el proceso denominado paging en el que ambos

dispositivos, master y slave, realizan un handshaking, o comunicación con acuse de

recibo, mediante el cual intercambian información fundamental para la formación

del enlace.

La última fase consiste en el establecimiento del enlace físico.

Una importante cuestión a tener en cuenta en el establecimiento de un enlace inalámbrico

de tipo Bluetooth, es que si los dispositivos conocen sobre la existencia de otros en su rango de

cobertura, esto no implica que exista ningún tipo de enlace entre ellos. Por otro lado, el proceso

de descubrimiento se encuentra totalmente enmascarado en la comunicaciones ordinarias que se

realizan hoy en día con dispositivos de uso común, como son los teléfonos móviles, pero cuando

se requiere una respuesta rápida o con requerimientos de tiempo específicos, como son los

sistemas de instrumentación electrónica, es necesario tener un mayor control sobre los

parámetros que intervienen en el proceso de descubrimiento. La componente aleatoria en el

proceso de descubrimiento es elevada [2, 3], requiriendo este estudio de un análisis estadístico

complejo [3]. Existen muchos estudios acerca de cómo acelerar el proceso de descubrimiento

empleando la norma Bluetooth, [4, 5, 6], y en la actualidad se está estudiando la introducción de

nuevas tecnologías, mecanismos fuera de banda, para intentar mejorar este proceso de

descubrimiento y emparejamiento. En concreto, y a partir de la especificación Bluetooth 2.1 y

3.0, se incluye la tecnología NFC como forma de intercambiar información de emparejamiento.

Ahora bien, una vez establecida una conexión Bluetooth, existen una importante variedad

de parámetros relacionados con la calidad de la transmisión y entre sí, por lo que llegar a

concluir cómo es esta calidad resulta una tarea complicada, especialmente por la cantidad de

variables que intervienen, algunas muy difíciles de controlar debido a su componente aleatorio

como se puede observar en los modelos de propagación de la señal que se suelen utilizar [7, 8].

Muchas de estas variables dependen del dispositivo particular y de su diseño particular, lo que

nos lleva por ejemplo al tipo y comportamiento de los amplificadores internos o las antenas [9].

El acercamiento de forma práctica a las tecnologías inalámbricas de tipo Bluetooth se

plantea como objetivo docente a cumplir, dado su extenso uso a nivel de electrónica de

consumo, en una asignatura de origen práctico como es el Laboratorio de Instrumentación del 5º

de la titulación Ingeniero en Telecomunicación adscrita al Departamento de Ingeniería

Electrónica de la Universidad de Sevilla. De esta manera, se instruye experimentalmente a los

alumnos a nuevas formas de instrumentación sin cables utilizando el aire como medio de

transmisión.

127

Figura 1. Diagrama de estados en el controlador de enlaces Bluetooth.

El objetivo de estas prácticas es hacer que los alumnos se paseen por los distintos estados

del controlador de enlaces Bluetooth sin que eso suponga un excesivo gasto de tiempo y

esfuerzo. Tres son los estados principales involucrados en el establecimiento de una conexión

inalámbrica Bluetooth (Fig. 1): STANDBY (Espera), CONNECTION (Conexión) y PARK

(Aparcar). Aparecen, además, otros siete subestados denominados paginación, detección de

paginación, búsqueda, detección de búsqueda, respuesta del maestro, respuesta del esclavo y

respuesta a la búsqueda. Los subestados son estados transitorios que se usan para establecer

conexiones y permitir el descubrimiento de dispositivos. Para pasar de un estado o subestado a

otro, se usan comandos del gestor de enlaces o bien señales internas del controlador de enlaces.

Desde el punto de vista del conjunto de aplicaciones desarrollada para la configuración de

cada uno de los parámetros de los dispositivos Bluetooth, así como la gestión de las

comunicaciones entre los mismos, se ha empleado BlueZ [10], que es la implementación de la

pila de protocolos Bluetooth para sistemas operativos basados en Linux, que ofrece todo un

extenso conjunto de módulos, librerías y aplicaciones para el trabajo con esta tecnología. A

pesar de que existen otras implementaciones, como la desarrollada por el centro de

investigación de Nokia y denominada Affix, el hecho de decantarse por BlueZ es prácticamente

obligado, teniendo en cuenta que ofrece una serie de prestaciones que no ofrece ninguna de las

otras implementaciones posible, tales como:

Está definida como la implementación oficial de la denominada “Bluetooth Stack”

para sistemas UNIX.

Viene por defecto instalada y completamente integrada en la mayoría de

distribuciones Linux del mercado (lo que mejora la capacidad de interoperabilidad

del alumno con la tecnología).

Existencia de infinidad de aplicaciones y librerías.

Sin embargo, a nivel didáctico ofrece lamentablemente carencias, como es la escasa

documentación ofrecida, principal problema de muchos de los proyectos de desarrollo en

software libre y código abierto. Esto hace que su uso en los instantes iniciales sea poco

amigable, y la curva de aprendizaje necesaria para llegar a hacer un uso razonable de BlueZ sea

demasiado extensa. Para resolver este tipo de inconvenientes existe la posibilidad de la

generación de un conjunto de funciones y de APIs en los que los parámetros de configuración a

añadir se resuelven como parámetros a introducir en dichas funciones, elevando el nivel de

abstracción y permitiendo al alumno un primer acercamiento mucho más liviano y menos

costoso en tiempo hacia BlueZ.

BlueZ fue desarrollada por Qualcomm desde 2001 bajo licencia GPL, promovida por el

Bluetooth Interest Group desde 2005 y disponible de manera oficial como parte de la

implementación de los kernels de Linux a partir de la versión 2.4.6.

3. Aplicaciones desarrolladas Las aplicaciones para los alumnos se han hecho en código ANSI C, permitiéndoles

cambiar los parámetros por línea de comando e ir así variándolos, a fin de constatar como afecta

el cambio de las mismas a las pruebas siguientes. En cuanto a la aplicación a la asignatura

denominada Laboratorio de Instrumentación Electrónica, se han desarrollado una serie de

trabajos prácticos para ayudar al alumno a comprender los parámetros que entran en juego al

establecerse un enlace inalámbrico Bluetooth, así como el rango de valores posibles que pueden

tomar. Estos ensayos son:

Pruebas de búsqueda de dispositivos. El proceso de descubrimiento es asimétrico. Un

128

dispositivo Bluetooth trata de encontrar otros dispositivos cercanos enviando mensajes de

descubrimiento (inquiry requests). Los dispositivos Bluetooth que están disponibles para ser

encontrados escuchan estos mensajes y responden con su dirección Bluetooth. Este proceso de

descubrimiento utiliza un canal físico especial para los mensajes de búsqueda. En la prueba

diseñada, se busca que los alumnos interactúen con los parámetros de búsqueda de dispositivos

Bluetooth que se detallan a continuación:

Inquiry length. Valor que especifica el tiempo máximo que el dispositivo debe

esperar las respuestas de los otros dispositivos. Puede tomar valores enteros de 1 a

30, que corresponden a múltiplos de 1,28 s.

Number of responses. Máximo número de respuestas que el dispositivo espera.

Puede tomar valores de 1 a 255 dispositivos. El valor cero significa infinitas

respuestas.

LAP. Representa a la parte baja de una dirección Bluetooth. Puede tomar valores

desde 9E8B00 hasta 9E8B3F, expresado en notación hexadecimal. Si se le asigna

cero, se utiliza el código de acceso general 9E8B33.

IAC. Especifica el número de códigos de acceso de búsqueda que serán utilizados

por el dispositivo local durante la fase Inquiry scan. Puede tomar valores de 1 a 40

en notación hexadecimal.

Type. Selecciona que tipo de búsqueda realizar. Los valores pueden variar de 0 a

FF en notación hexadecimal; el valor 0 implica búsqueda estándar y el 1 hará la

búsqueda entrelazada. Los demás valores están reservados para usos futuros.

Mode. Modifica el tipo de resultado esperado en las búsquedas de dispositivos.

Puede tomar valores de 0 a FF en notación hexadecimal. El valor 0 representa la

respuesta estándar, el valor 1 añade el valor del RSSI a la respuesta y el valor 2 es

para obtener la respuesta extendida. Los valores de 3 a FF, están reservados.

Figura 2. Captura de pantalla de los resultados de la búsqueda de dispositivos con código de acceso

general.

Se ven los resultados de la búsqueda de dispositivos cercanos (Fig. 2), se ven la dirección

Bluetooth y el nombre amigable de cada dispositivo. La aplicación debe ejecutarse con los

parámetros len y max_rsp como entrada, que son el tiempo de búsqueda y la cantidad de

dispositivos que esperamos encontrar respectivamente. La búsqueda finaliza cuando se satisface

una de las dos condiciones.

129

Figura 3. Captura de pantalla de los resultados de la búsqueda de dispositivos con código de acceso

dedicado.

El cambio de los parámetros de búsqueda de dispositivos (Fig. 3), antes y después del

cambio de los valores. La aplicación desarrollada debe ejecutarse con cinco parámetros, que

son: la dirección Bluetooth del dispositivo local, el código de búsqueda, el código de acceso, el

tipo y el modo de respuesta del proceso de búsqueda.

Pruebas de calidad de enlace. Se pretende que los alumnos obtengan los parámetros que

hacen referencia a la calidad del enlace y a la potencia recibida y transmitida por los

dispositivos a fin de establecer métricas y poder comparar los estados de los enlaces. Las

variables analizadas son:

Transmit Power Level (TPL), que especifica el nivel de potencia transmitida (en dBm)

por el módulo Bluetooth. En la mayoría de los casos un emisor responderá con el nivel

de potencia configurado por defecto para iniciar o responder a las preguntas, aunque la

variable TPL puede variar durante la conexión, debido al control de potencia, mediante

comandos de regulación de potencia. En la especificación Bluetooth el control de

potencia es obligatorio en los dispositivos de clase 1 y opcional en los demás.

Received Signal Strength Indicator (RSSI). Variable que indica si el nivel de potencia

recibida está dentro, por encima o abajo del denominado Golden Receiver Power Range

(GRPR), que es considerado como el rango ideal de potencia aplicable al transmisor

para el establecimiento del enlace Bluetooth. Tal como se define en la especificación

Bluetooth, un RSSI positivo o negativo (en dB) indica que el nivel de potencia está por

encima o por debajo de la GPRP, respectivamente, mientras que cero es el valor ideal

(el nivel de potencia recibida está dentro de GRPR).

Link Quality (LQ). Evalúa la calidad del enlace que se percibe en el receptor. El índice

varía desde 0 hasta 255. A mayor valor, mejor es el estado del enlace. Para la mayoría

de los módulos de Bluetooth, que se deriva de la tasa media de error de bit (BER) visto

en el receptor, y se actualiza constantemente en forma de paquetes que se reciban. Sin

embargo, la asignación exacta de BER a LQ es específico del dispositivo. LQ se utiliza

principalmente para adaptarse a los cambios en el estado del enlace, en particular, para

apoyar al denominado CQDDR (Canal Driven Quality Data Rate).

Se muestra la aplicación desarrollada para evaluar las características del enlace (Fig. 4). A

ésta se le pasa la dirección Bluetooth del dispositivo al que estamos conectados y nos devuelve

la potencia actual del transmisor, el valor del RSSI y la calidad del enlace. Se ve como variando

la posición y velocidad de los dispositivos, las características del enlace varían.

130

Figura 4. Captura de pantalla con los resultados de los parámetros de calidad de enlace.

Pruebas de control de enlace. Se han desarrollado pruebas para analizar parámetros y

estados muy importantes de entender a la hora de desarrollar aplicaciones para comunicaciones

Bluetooth. Dentro de estos, destacar:

Park mode. Cuando un dispositivo slave no necesita participar en una piconet, pero aún

necesita estar sincronizado con el master, puede entrar en este modo, donde el slave

tiene muy poca actividad pero se despierta a intervalos regulares de tiempo para

mantenerse sincronizado con la piconet.

Role switch. Un dispositivo necesita intercambiar las funciones cuando, por ejemplo,

necesita ser master de más de una piconet.

Figura 5. Captura de pantalla de la aplicación para cambiar los parámetros de control de enlace.

Se ven las opciones de la aplicación de control de enlace (Fig. 5), que nos permite enviar

ficheros entre dispositivos Bluetooth (para realizar pruebas de control de velocidad o parámetros

que necesiten de un enlace establecido), aparcar dispositivos y, por último, cambiar el rol

master-slave de una piconet.

4. Conclusión Este trabajo presenta el desarrollo de aplicaciones que permitirán a los alumnos de

Laboratorio de Instrumentación acercarse de forma fácil y práctica a la norma Bluetooth,

saltándose los detalles de programación de una pila de protocolos específica. Esto permitirá

concentrarse en el significado y valor de una serie de parámetros referentes a la búsqueda y

detección de dispositivos Bluetooth, así como las características del enlace establecido y la

configuración topológica de una red Bluetooth. Además se intenta estimular el aprendizaje

basado en prácticas, necesario en aplicaciones de este tipo.

131

Referencias [1] Bluetooth Special Interest Group. Bluetooth Specification Version 2.1 + EDR,

http://www.bluetooth.com/ (2007).

[2] G. Záruba y I. Chlamtac. Accelerating Bluetooth Inquiry for Personal Area Networks. Global

Telecommunications Conference, 2003, vol. 2, pp.702-706, GLOBECOM '03, Diciembre 2003.

[3] B. Peterson, R. Baldwin y J. Kharoufeh. Bluetooth Inquiry Time Characterization and Selection.

Mobile Computing, IEEE transactions, vol. 5, pp. 1173-1187, 2006.

[4] G. Záruba y V. Gupta. Simplified Bluetooth Device Discovery – Analysis and Simulation. Systems

Scineces, 2004. Proceedings of 37th Annual Hawaii International Conference, pp. 9pp, 2004.

[5] S. Asthana y D. Kalofonos. The problem of Bluetooth pullution and accelerating connectivity in

Bluetooth Ad-Hoc networks. Pervasive Computing and Communications, 2005. PerCom 2005. Third

IEEE International Conference, pp. 8-12, 2005.

[6] X. Zhang y G. Riley. Evaluatioin and accelerating Bluetooth device discovery. Radio and Wireless

Symposium, pp. 467-470, 2006.

[7] F. Bektas, B. Vondra, P. Veith, L. Faltin, A. Pohl y A. Scholtz. Bluetooth communication employing

antenna diversity. Computers and Communication, 2003. Proceedings. Eighth IEEE International

Symposium on, 2003, pp.652-657, vol 1, 2003.

[8] A. Mohammed y T. Hult. Evaluation of the Bluetooth link and antennas performance for indoor office

environments by measurement trials and FEMLAB simulations. Vehicular Technology Conference,

2005. VTC 2005-Spring. 2005 IEEE 61st, pp. 238-242, vol. 1, 2005.

[9] F. Forno, G. Malnati, G. Portelli. Desing and implementation of a Bluetooth ad hoc network for

indoor positioning. Software, IEE Proceedings, pp. 223- 228, vol. 152, 2005.

[10] BlueZ, pila de protocolos Bluetooth oficial para Linux, http://bluez.org/

132

PLATAFORMA BASADA EN MICROPROCESADOR PARA EL

APRENDIZAJE DE TECNOLOGÍAS INALÁMBRICAS RFID, NFC

Y BLUETOOTH

D. GUTIÉRREZ, E. MARSAL, M. SOTO, J.M. HINOJO, F. CORTÉS, F. BARRERO, S.

TORAL

Departamento de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de

Sevilla. España

[email protected], [email protected], [email protected], [email protected], [email protected],

[email protected], [email protected]

Resumen de la comunicación Las tecnologías inalámbricas han sufrido una enorme expansión en los últimos años,

integrándose en una amplia gama de dispositivos móviles, como teléfonos, PDAs y

computadoras. Dos de estas tecnologías son el estándar NFC (Near Field Communication) y la

tecnología RFID (Radio Frequency Identification). Por otro lado, Bluetooth es una

especificación que define redes inalámbricas de área personal (WPAN) de corto alcance,

trabajando en las frecuencias 2.4 GHz a 2.4835 GHz.

A lo largo de la carrera de Ingeniería de Telecomunicación, el alumno percibe a menudo

ciertas carencias a nivel práctico en su formación. Este hecho es especialmente crítico en el área

de la electrónica, y más específicamente en las tecnologías inalámbricas, donde se tienen

conocimientos teóricos pero es complicado llevarlos al campo práctico por las dificultades que

esto conlleva. Es precisamente una asignatura práctica como el Laboratorio de Instrumentación

Electrónica, perteneciente al 5º curso de la titulación de Ingeniería de Telecomunicación en la

Escuela Superior de Ingenieros de la Universidad de Sevilla, el espacio que consideramos más

adecuado para solventar, dentro de lo posible, esas carencias. El sistema de aprendizaje

desarrollado permite a los alumnos experimentar con las tres tecnologías de forma

independiente, o enlazarlas para formar un sistema pasarela entre ellos. El objetivo es que

tecnologías tan novedosas como NFC se integren en los nuevos sistemas de enseñanza

universitaria dentro del nuevo marco europeo. Para la evaluación del grado de satisfacción de

los alumnos y el nivel de conocimiento adquirido con la experiencia planteada, se ha

desarrollado un cuestionario en el cual los alumnos pueden calificar de 1 a 5 el grado de

satisfacción con cada una de las sesiones desarrolladas. Además se invita a los alumnos a que

expresen su opinión sobre la experiencia y posibles mejoras que se puedan incluir para futuros

años.

Referencias [1] Dean A.Gratton. Developing Practical Wireless Applications 216-224.

[2] ECMA_International. Near Field Communication –white paper-(2004).

[3] Bluetooth SIG, Bluetooth Baseband Specification, version 2.1+EDR, www.bluetooth.org.

[4] Bluetooth SIG, Host Controller Interface Functional Specification, version 2.1+EDR,

www.bluetooth.org.

[5] C.Y.Leong, K.C.Ong, K.K.Tan*, O.P.GAN, Near Field Communication and Bluetooth Bridge

System for Mobile Commerce. IEEE International Conference on Industrial Informatics 50-55

(2006). [6] M. Sallinen, E. Strömer, A. Ylisaukko-oja. Sensor Technologies and applications,

SENSORCOMM’08. Second International Conference586-591 (2008).

[7] G. Matas, I. Luque, M.A. Gómez-Nieto. How NFC can be used for compliance of European Higher

Education Area Guidelines in European Universities. Near Field Communication NFC’09, first

international workshop 3-8 (2009).

[8] H. Mika, H. Mikko, A. Ylisaukko-oja. Practical implementation of passive and semi-passive NFC

enabled sensor. Near Field Communication NFC’09, first international workshop 69-75 (2009).

[9] Página oficial del proyecto Bluez http://www.bluez.org/

133

[10] Página oficial del proyecto LibNFC http://www.libnfc.org/

PLATAFORMA BASADA EN MICROPROCESADOR PARA EL

APRENDIZAJE DE TECNOLOGÍAS INALÁMBRICAS RFID, NFC

Y BLUETOOTH

D. GUTIÉRREZ, E. MARSAL, M. SOTO, J.M. HINOJO, F. CORTÉS, F. BARRERO, S.

TORAL

Departamento de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de

Sevilla. España

[email protected], [email protected], [email protected], [email protected], [email protected],

[email protected], [email protected]

En este trabajo se presenta el desarrollo de una plataforma, basada

en un microprocesador de bajo coste, que pretende acercar a los

alumnos al uso y desarrollo de aplicaciones basadas en las

tecnologías inalámbricas RFID y Bluetooth. Mientras que el estándar

NFC representa el ejemplo más claro del elevado crecimiento que

están experimentado recientemente los dispositivos RFID, Bluetooth

personifica el grado de desarrollo y uso que pueden alcanzar estas

tecnologías inalámbricas gracias a los dispositivos electrónicos de

uso cotidiano como son teléfonos móviles, PDAs y PCs portátiles.

Para mostrar a los alumnos el interés de ambas tecnologías, se ha

desarrollado un sistema simple para la realización de trabajos

prácticos en una asignatura denominada “Laboratorio de

Instrumentación Electrónica”, adscrita a la titulación de Ingeniería

de telecomunicaciones en la escuela Superior de Ingenieros de la

Universidad de Sevilla.

1. Introducción A lo largo de la carrera de Ingeniería de Telecomunicación, el alumno percibe a menudo

ciertas carencias a nivel práctico en su formación. Este hecho es especialmente crítico en el área

de la electrónica, y más específicamente en las tecnologías inalámbricas, donde se tienen

conocimientos teóricos pero es complicado llevarlos al campo práctico por las dificultades que

esto conlleva. Es precisamente una asignatura práctica como el Laboratorio de Instrumentación

Electrónica, perteneciente al 5º curso de la titulación de Ingeniería de Telecomunicación en la

Escuela Superior de Ingenieros de la Universidad de Sevilla, el espacio que consideramos más

adecuado para solventar, dentro de lo posible, esas carencias.

Por otro lado, las tecnologías inalámbricas han sufrido una enorme expansión en los últimos

años, integrándose en una amplia gama de dispositivos móviles, como teléfonos, PDAs y

computadoras. Dos de estas tecnologías son el estándar NFC (Near Field Communication) y la

tecnología RFID (Radio Frequency Identification) las cuales en multitud de ocasiones se

confunden. RFID es una tecnología que surge a finales de la década de los cuarenta y que se

impulsa su uso a través de sistemas de vigilancia electrónica. Los dispositivos RFID pueden

operar dentro de tres distintos rangos de frecuencias en función de la aplicación particular [1];

baja de 125 kHz a 134 kHz o de 140 kHz a 148.5 kHz, alta de 13.56 MHz y ultra alta entre 868

MHz y 928 MHz. Se definen dos elementos en las comunicaciones RFID, la etiqueta o tag y el

lector o interrogador. Por otro lado NFC es un protocolo de comunicaciones de corto alcance

que surge de combinar tecnologías de interconexión y RFID. NFC permite a dos dispositivos

electrónicos realizar una comunicación punto a punto con el simple hecho de que ambos entren

134

en contacto (en la práctica porque estén a una distancia muy corta, hasta 10 cm) utilizando la

banda alta de frecuencia de 13.56 MHz [1, 2]. Por su parte, Bluetooth es una especificación que

define redes inalámbricas de área personal (WPAN) de corto alcance, trabajando en las

frecuencias 2.4 GHz a 2.4835 GHz. La banda de frecuencias se divide, a su vez, en 79 canales,

con un ancho de banda de hasta 3 Mbits/s. Los dispositivos que cumplen el estándar Bluetooth

se conectan entre sí conformando las redes denominadas Piconets, o redes maestro-esclavo que

pueden estar formada por un único maestro, hasta 7 dispositivos activos y 255 estacionados

todos ellos como esclavos. A su vez, varias de estas redes Piconets se pueden unir formando las

denominadas redes Scatternets [3, 4].

El sistema de aprendizaje desarrollado permite a los alumnos experimentar con las tres

tecnologías de forma independiente, o enlazarlas para formar un sistema pasarela entre ellos

(fig.1). Dada la escasez de dispositivos de tipo lector NFC o RFID, se ha incorporado la

funcionalidad pasarela NFC-Bluetooth al sistema para poder realizar aplicaciones basadas en

dispositivos NFC [5, 6], empleando equipos electrónicos comerciales fáciles de localizar y

accesibles a los alumnos como son los teléfonos móviles, que en la actualidad vienen casi todos

provistos de conectividad Bluetooth.

Figura 1: Esquema de funcionamiento del sistema desarrollado.

El objetivo es que tecnologías tan novedosas como NFC se integren en los nuevos sistemas

de enseñanza universitaria dentro del nuevo marco europeo [7]. Sistemas como el que se

presenta ayudan a la integración de este tipo de tecnologías, encajando perfectamente con un

nuevo enfoque eminentemente práctico que se está implantando en la asignatura y que ofrece al

alumno la posibilidad de realizar un pequeño desarrollo basado en sistemas reales, en este caso

basado en el sistema microprocesador presentado, y que permite manejar las tecnologías

inalámbricas Bluetooth, NFC y RFID.

Descripción del sistema El sistema de aprendizaje implementado se basa en un sencillo microprocesador que se

encarga de manejar las comunicaciones RFID, NFC y Bluetooth. Aunque el sistema permite

leer y escribir tanto tags RFID como NFC, la descripción del sistema se va realizar teniendo en

135

cuenta sólo el estándar NFC, ya que el funcionamiento con RFID sería similar. La

comunicación NFC se realiza mediante un lector/escritor de etiquetas pasivas (NFC target) que

lee la información contenida en ellas. La etiqueta no necesita alimentación, y simplemente

aprovecha el campo magnético generado por el lector para alimentarse y poder transferirle los

datos. El encargado de generar el campo electromagnético se denomina Iniciador (NFC

Initatior) [2].

Por su parte, la comunicación Bluetooth se realiza mediante un dispositivo embedded

Bluetooth que permite ser controlado mediante comandos ASCII enviados por el

microprocesador. Estos comandos, parecidos a los comandos AT, permiten establecer enlaces

RFCOMM hacia cualquier otro dispositivo remoto con enlace Bluetooth, como puede ser un

ordenador personal o un teléfono móvil.

El microprocesador elegido ha sido el Atmega128. Se trata de un microprocesador de 8 bits

de núcleo AVR, que se ha programado utilizando ANSI C para desarrollar una biblioteca de

funciones de acceso y control de los dispositivos inalámbricos del sistema. Se ha escogido este

microcontrolador por tratarse de un dispositivo profusamente empleado en el ámbito industrial,

dado su bajo coste y versatilidad. El microprocesador posee sin embargo otras características

que lo hacen aconsejable en un ambiente educativo, en especial, contiene una gran cantidad de

interfaces para comunicar con otros dispositivos electrónicos como son UARTs, I2C y SPI. Para

simplificar el desarrollo del sistema, se ha utilizado el sistema de desarrollo JMS2206 que

contiene el microprocesador Atmega128 trabajando con un cristal de 4 MHz. A su vez,

incorpora la interfaz de programación JTAG, permitiendo utilizar herramientas de depuración

de código (debugger ATJTAGICE). Con este sistema, los alumnos pueden desarrollar sus

propias aplicaciones, visualizando en tiempo real la ejecución de código programado en la

memoria FLASH del microprocesador.

Entre los diferentes dispositivos de acceso a etiquetas NFC pasivas, se escogió el dispositivo

HF Multi ISO OEM de ACG, compatible con las normativas ISO14443 A/B, ISO 15693, ISO

18000-3, dispositivos RFID EPC, Mifare© y NFC. El principal motivo para esta elección es que

el lector soporta un gran número de clases de etiquetas tanto de RFID como NFC. Mediante una

interfaz serie, el lector NFC se conecta con el microprocesador Atmega. Utilizando esta misma

interfaz, el lector NFC se puede conectar a un PC para que los alumnos visualicen y ejecuten,

con la ayuda de la aplicación Hyperterminal de Windows o alguna similar, todos los comandos

integrados en las librerías desarrolladas para realizar escrituras y lecturas de las etiquetas de

forma sencilla e intuitiva, y de forma análoga a como actuaría el microprocesador en el sistema

completo.

Los dispositivos embedded Bluetooth seleccionados son indistintamente el WT-11 o WT-12.

La diferencia entre ambos es la clase de dispositivo Bluetooth, clase 1 y clase 2

respectivamente. La clase del dispositivo está estrechamente ligada con el alcance de la

comunicación Bluetooth, menos de 10 metros para dispositivos clase 2 y hasta 100 metros para

dispositivos clase 1. Ambos dispositivos son controlados mediante comandos ASCII enviados

mediante una comunicación serie establecida entre el microprocesador y el dispositivo WT. Los

comandos se almacenan en la memoria FLASH de datos del Atmega128, ofreciendo el

dispositivo WT dos modos de operación: modo comandos y modo datos. En el modo comandos,

el cual se encuentra definido por defecto, el dispositivo está a la espera de recibir comandos por

parte de microprocesador a través de la comunicación serie establecida. Con estos comandos se

pueden establecer parámetros de configuración fundamentales para el estándar Bluetooth tales

como la potencia de transmisión y el tiempo de Inquiry o búsqueda de dispositivos. En el modo

datos, la información que recibe el dispositivo a través de la interfaz serie es enviada por el

enlace RFCOMM establecido. El cambio entre ambos modos de funcionamiento se gestiona a

través del microprocesador Atmel. Al igual que con el dispositivo NFC, el dispositivo WT se

136

puede conectar a un PC mediante una comunicación serie, haciendo posible a los alumnos de

una manera sencilla y análoga a la del microprocesador, la interacción con el dispositivo WT.

Estos aspectos refuerzan la idea de que las tecnologías Bluetooth y NFC pueden funcionar de

forma independiente en la plataforma de aprendizaje.

Para mejorar la interacción del sistema de aprendizaje con los alumnos se incluyen en el

sistema varios elementos indicadores como son:

Zumbador, para generar una señal sonora en los siguientes casos, cuando el sistema está

preparado para leer un nuevo tag y cuando se abre o cierra la comunicación Bluetooth.

Con esta señal sonora el alumno puede seguir de una forma intuitiva las distintas fases

por las que pasa el sistema.

Diodos leds de indicación. En concreto, un led que se encontrará encendido mientras el

sistema se encuentre alimentado y otro que se iluminará cuando se ha leído

correctamente un tag.

A continuación se muestra una imagen del sistema pasarela implementado (fig.2).

Figura 2: Imagen del sistema desarrollado.

En la parte superior se puede observar el lector/escritor de tags. Situado a la derecha de la

placa, el dispositivo Bluetooth, en este caso WT-12 con todo el hardware de acondicionamiento

asociado al dispositivo. A la izquierda se encuentra el sistema hardware del microprocesador,

entre éste y el WT-12 se encuentra el zumbador. Por último los diodos leds se encuentran

situados en la parte superior, junto a la bornera de alimentación externa.

El sistema pasarela es un sistema abierto desde el punto de vista hardware permitiendo

integrar un gran número de sensores haciendo usos de las interfaces disponibles del

microprocesador, como se puede observar en otros diseños de sistemas pasarela [8].

Desde el punto de vista del desarrollo de aplicaciones, se han implementado varios

137

programas de ejemplo en ANSI C para la conexión con dispositivos remotos provistos de

Bluetooth. Se ha optado por desarrollar las aplicaciones empleando la librería de desarrollo de

BlueZ [9], que nos otorga una extensa API para el manejo de conexiones Bluetooth. Dado que

BlueZ está desarrollada en C bajo licencias de código abierto, es posible tener un control total

sobre la implementación realizada, lo que ofrece numerosas ventajas desde el punto de vista

educativo. Por otro lado, BlueZ es nativa para sistemas UNIX, de manera que viene integrada

por defecto en la mayoría de distribuciones Linux más conocidas, con lo que las dependencias

de paquetes y compatibilidades con las distintas arquitecturas son absolutas.

Algunos de los usos y vertientes didácticas de este tipo de aplicaciones son las siguientes:

Modo espía, o aplicaciones simples que nos permiten tener una visión en pantalla de

las tramas Bluetooth recibidas y realizar un análisis de las mismas para comprobar

cómo se realizan los procesos de búsqueda, de apertura o cierre de una conexión en

Bluetooth.

Iniciador de aplicaciones en local, actuando la conexión entrante como iniciador de

procesos corriendo en local e incluso pasándoles condiciones y/o parámetros a los

mismos. Este tipo de aplicaciones permite integrar el sistema con otras aplicaciones

realizadas en clase, o para dar una visión de cómo otras ramas del conocimiento,

por ejemplo la domótica, podrían hacer uso de estos sistemas.

Conexión con aplicaciones en remoto, como servicios web, actuando la conexión

entrante como lanzadora del proceso cliente que consume el servicio, permitiendo, a

su vez, añadirle condiciones y parámetros a éste.

Cabe destacar que este tipo de aplicaciones ofrecen una visión más software del sistema, y

ofrecen la posibilidad de analizar otras áreas temáticas como son el desarrollo de aplicaciones,

el manejo de APIs, la realización de arquitecturas productor-consumidor o cliente-servidor, el

trabajo a distintos niveles de abstracción (desde conexiones a sockets RFCOMM para el

Bluetooth hasta manejo de servicios web), la generación de aplicaciones multi-hilo y

multiproceso (llamadas al sistema, forks-joins, OpenMP, MPI, regiones críticas, semáforos,

señales, etc.), el trabajo con interfaces de entrada-salida, y prácticamente cualquier integración a

nivel de software que didácticamente creamos conveniente. Aunque toda la implementación está

desarrollada en C, todas las funcionalidades y beneficios para el alumno son perfectamente

extrapolables usando cualquier otro lenguaje de propósito general, ya que otras opciones, como

Java, incluyen sus propias APIs para trabajo con dispositivos y manejo de conexiones

Bluetooth. Por otro lado, el desarrollo de aplicaciones para dispositivos móviles es también

posible haciendo uso de la propia librería BlueZ (para dispositivos con arquitecturas y con

distribuciones Linux soportadas), de opciones en Java (para terminales con máquina virtual

instalada) o empleando .NET (para terminales con Windows Mobile o similar).

La realización de aplicaciones de escritorio para la parte relacionada con el dispositivo NFC

ofrece opciones como el uso de la API de la librería LibNFC [10].

Aplicación al Laboratorio de Instrumentación Electrónica Este sistema va a ser empleado en el Laboratorio de Instrumentación Electrónica de 5º curso

de la titulación de Ingeniero de Telecomunicación, como complemento para la formación

práctica de los alumnos. Se trata de una asignatura práctica en la que los alumnos trabajan en

grupos usando diferentes equipos de instrumentación como osciloscopios, analizadores de

espectro, multímetros, analizadores lógicos, etc. Las prácticas están estructuradas en dos grupos.

El primero, contiene prácticas guiadas, explicadas paso a paso. En estas prácticas, los alumnos

aprenden y revisan el manejo básico de los aparatos de instrumentación, usándolos para obtener

medidas en circuitos sencillos. El segundo grupo contiene prácticas donde los alumnos tienen

que usar todo el conocimiento que han aprendido durante el primer grupo de prácticas, junto con

otros conocimientos adquiridos durante la carrera, para solucionar los problemas propuestos en

138

la práctica. Dado que esta asignatura pertenece al 5º curso, los alumnos ya tienen conocimientos

de instrumentación, y aunque se supone que son capaces de manejar la mayoría de los aparatos,

es aconsejable recordarles su uso. En esta estructura se han detectado algunos problemas, entre

ellos destaca la falta de aplicación directa de los circuitos sobre los que se trabaja.

Con el uso de esta plataforma de aprendizaje se pretende motivar al alumno mediante el

empleo en aplicaciones prácticas reales de dispositivos electrónicos inalámbricos cotidianos.

Para ello, se han planificado diversas sesiones de trabajo en las que los alumnos serán

introducidos en el uso de las distintas tecnologías involucradas en el sistema desarrollado, hasta

llegar al grado de conexionarlas formando el sistema pasarela completo. A continuación se

esboza el contenido de las distintas sesiones planificadas:

Familiarización con dispositivos embedded Bluetooth, y en el manejo y envío de

comandos ASCII mediante comunicación serie desde un PC hasta los dispositivos WTs,

para su configuración y el establecimiento de las comunicaciones Bluetooth.

Manejo del lector/escritor de tags mediante un PC con comunicación serie. Estructura

de memoria de los distintos tags, login de sectores, escritura y lectura de bloques de

memoria.

Introducción a las librerías BlueZ de Linux y uso de las mismas con dispositivos

“dongles” USB.

Desarrollo del sistema pasarela NFC-Bluetooth. Programación del microprocesador

Atmega y uso de la aplicación de depuración.

Inserción de la comunicación del sistema pasarela con dispositivos móviles.

Desarrollo de un programa de aplicación en el PC o en el teléfono móvil para mostrar

los resultados del sistema de aprendizaje.

Para la evaluación del grado de satisfacción de los alumnos y el nivel de conocimiento

adquirido con la experiencia planteada, se ha desarrollado un cuestionario en el cual los

alumnos podrán calificar de 1 (poco satisfactorio) a 5 (muy satisfactorio) el grado de

satisfacción con cada una de las sesiones desarrolladas. En este cuestionario también se pide que

se evalúe al profesorado, por lo que el cuestionario es totalmente anónimo para que los alumnos

puedan expresar sin temor todos sus pensamientos. Además se invita a los alumnos a que

expresen su opinión sobre la experiencia y posibles mejoras que se puedan incluir para futuros

años.

4. Conclusión En este trabajo se presenta una plataforma para la realización de prácticas relacionadas con

la programación de sistemas empotrados, microcontroladores de bajo coste, dispositivos de

comunicación inalámbrica NFC y Bluetooth. El sistema propuesto constituye una herramienta

docente novedosa y útil en asignaturas de últimos cursos y carácter eminentemente práctico,

como es el caso del Laboratorio de Instrumentación Electrónica en el que se utilizará el sistema,

puesto que acerca aplicaciones de tipo práctico y reales al alumno. Trabajar con sistemas reales

permitirá atraer la atención de los alumnos, ayudándoles a comprender mejor la utilidad de los

conocimientos adquiridos a lo largo de la carrera. Finalmente, la amplia funcionalidad del

sistema desarrollado permitirá a los alumnos desarrollar infinidad de aplicaciones prácticas con

dispositivos móviles de uso diario.

Referencias [1] Dean A.Gratton. Developing Practical Wireless Applications 216-224.

[2] ECMA_International. Near Field Communication –white paper-(2004).

[3] Bluetooth SIG, Bluetooth Baseband Specification, version 2.1+EDR, www.bluetooth.org.

[4] Bluetooth SIG, Host Controller Interface Functional Specification, version 2.1+EDR,

www.bluetooth.org.

[5] C.Y.Leong, K.C.Ong, K.K.Tan*, O.P.GAN, Near Field Communication and Bluetooth Bridge

System for Mobile Commerce. IEEE International Conference on Industrial Informatics 50-55

139

(2006). [6] M. Sallinen, E. Strömer, A. Ylisaukko-oja. Sensor Technologies and applications,

SENSORCOMM’08. Second International Conference586-591 (2008).

[7] G. Matas, I. Luque, M.A. Gómez-Nieto. How NFC can be used for compliance of European Higher

Education Area Guidelines in European Universities. Near Field Communication NFC’09, first

international workshop 3-8 (2009).

[8] H. Mika, H. Mikko, A. Ylisaukko-oja. Practical implementation of passive and semi-passive NFC

enabled sensor. Near Field Communication NFC’09, first international workshop 69-75 (2009).

[9] Página oficial del proyecto Bluez http://www.bluez.org/

[10] Página oficial del proyecto LibNFC http://www.libnfc.org/

140

PLATAFORMA PARA EL APRENDIZAJE DE TECNOLOGÍAS

INALÁMBRICAS Y REDES DE SENSORES BASADA EN EL

SISTEMA OPEN HARDWARE DENOMINADO OPENMOKO

J.M. HINOJO, D. GUTIÉRREZ, E. MARSAL, M. SOTO, F. CORTES, F. BARRERO, S.

TORAL

Departamento de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de

Sevilla. España

[email protected], [email protected], [email protected], [email protected],

[email protected], [email protected], [email protected]

Resumen de la comunicación Los mecanismos de gestión y transmisión de contenidos e información están sufriendo en

la actualidad un desarrollo frenético, favorecidos por el desarrollo de la sociedad de la

información y, sobre todo, de las tecnologías electrónicas. Dentro de estos nuevos mecanismos

cabe destacar los estándares de comunicaciones inalámbricas, que permiten la interconexión de

sistemas dotados de una cierta inteligencia, como pueden ser los sistemas empotrados,

formando complejas redes sin cables. Hoy en día, estándares como Bluetooth o Zigbee se han

abierto un importante hueco a nivel industrial (recopilación de información extraída de sensores,

acción de control remota, etc.) o incluso comercial (cualquier teléfono móvil o PDA que se

precie de serlo incorpora en la actualidad la capacidad de comunicarse empleando el estándar

Bluetooth, lo que ha permitido desarrollar nuevos sistemas de información como son los

sistemas de navegación en interiores de edificios) gracias a las prestaciones que ofrecen: bajo

frente a tecnologías como Wifi y una capacidad de transmisión de datos relativamente alta.

No obstante, la formación que los alumnos de Ingeniería reciben sobre este tipo de

sistemas es fundamentalmente teórica y carece de la necesaria visión práctica por la dificultad

que supone desarrollar un sistema sencillo con el que los alumnos puedan trabajar y adquirir

destrezas profesionales en un tiempo razonable. Para intentar mejorar la visión práctica que el

alumnado adquiere sobre el manejo de sistemas de comunicación inalámbricos, en el

Departamento de Ingeniería Electrónica de la Escuela Superior de Ingenieros de Sevilla se está

llevando a cabo un importante esfuerzo en pro de la remodelación de las prácticas de las

diferentes asignaturas que tiene adscritas. Este es el caso de dos asignaturas denominadas

“Complementos de Sistemas Electrónicos Digitales” y “Laboratorio de Instrumentación

Electrónica” y, pertenecientes a 3er y 5º curso, respectivamente, de la titulación de Ingeniería de

Telecomunicación. Ambas asignaturas aúnan esfuerzos en la actualidad para desarrollar nuevas

prácticas que permitan al alumno tener una visión más clara y práctica sobre el manejo de los

sistemas electrónicos de comunicación y, en concreto, de los estándares inalámbricos. Los

estándares WiFi y Bluetooth son algunos de los sistemas de comunicación inalámbrica que

centran estos nuevos desarrollos. En este sentido, y dada las asignaturas involucradas en la

experiencia, parece adecuado el desarrollo de actividades de tipo práctico que involucren al

alumno con el manejo de los sistemas empotrados y el análisis y estudio de sistemas

microprocesadores y microcontroladores actuales, con la caracterización de enlaces

inalámbricos basados en Bluetooth. En esta dirección se encamina la propuesta docente

planteada en este artículo: el desarrollo de un sistema que permita al alumno familiarizarse de

forma práctica con el manejo de una tecnología inalámbrica tan extendida como Bluetooth,

mediante la programación de sistemas empotrados.

Referencias [1] Página oficial del proyecto Openmoko. http://wiki.openmoko.org/wiki/Main_Page

[2] Albert S. Huang, Larry Rudolph. Bluetooth essentials for programmers,. Cambridge University

Press (2007).

[3] Robert Morrow. Bluetooth operation and use, McGraw-Hill (2002).

141

[4] H. Schildt. C:Manual de referencia. McGraw-Hill (2002).

[5] Bluetooth SIG. Core Specification v2.1 + EDR. http://www.bluetooth.com

[6] Ian McLoughlin. Secure embedded systems: the threat of reverse engineering. 14th

IEEE

International Conference on Parallel and Distributed Systems. pp. 729-736. (2008).

PLATAFORMA PARA EL APRENDIZAJE DE TECNOLOGÍAS

INALÁMBRICAS Y REDES DE SENSORES BASADA EN EL

SISTEMA OPEN HARDWARE DENOMINADO OPENMOKO

J.M. HINOJO, D. GUTIÉRREZ, E. MARSAL, M. SOTO, F. CORTES, F. BARRERO, S.

TORAL

Departamento de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de

Sevilla. España

[email protected], [email protected], [email protected], [email protected],

[email protected], [email protected], [email protected]

La enseñanza relacionada con las tecnologías electrónicas requiere

acercar al alumno complejos sistemas, como son aquellos que se

relacionan con las comunicaciones inalámbricas. Para conseguir este

acercamiento se ha desarrollado un sistema para la realización de

prácticas basado en un dispositivo comercial “Open Hardware”

denominado Openmoko, que permite la caracterización del enlace

inalámbrico y, a su vez, potencia la creatividad del alumno en la

aplicación de estas tecnologías.. El sistema genera un enlace

inalámbrico haciendo uso de un sistema empotrado comercial, un PC

y una suite de aplicaciones con las que se pueden realizar prácticas

en asignaturas adscritas a la titulación de Ingeniería de

Telecomunicación e impartida por el Departamento de Ingeniería

Electrónica de la Escuela Superior de Ingenieros de Sevilla.

1. Introducción Los mecanismos de gestión y transmisión de contenidos e información están sufriendo en

la actualidad un desarrollo frenético, favorecidos por el desarrollo de la sociedad de la

información y, sobre todo, de las tecnologías electrónicas. Dentro de estos nuevos mecanismos

cabe destacar los estándares de comunicaciones inalámbricas, que permiten la interconexión de

sistemas dotados de una cierta inteligencia, como pueden ser los sistemas empotrados,

formando complejas redes sin cables. Hoy en día, es habitual encontrar gran cantidad de

sistemas interconectados entre sí, empleando estándares como GPS, GPRS, WiFi, Bluetooth o

Zigbee. Aunque los sistemas de comunicaciones inalámbricos por excelencia son las redes

WiFi, utilizadas profusamente en el mundo de la informática de consumo, otros estándares

como Bluetooth o Zigbee, de menor alcance y tasa de transferencia de información pero

también de mucho menor consumo, se han abierto un importante hueco a nivel industrial

(recopilación de información extraída de sensores, acción de control remota, etc.) o incluso

comercial (cualquier teléfono móvil o PDA que se precie de serlo incorpora en la actualidad la

capacidad de comunicarse empleando el estándar Bluetooth, lo que ha permitido desarrollar

nuevos sistemas de información como son los sistemas de navegación en interiores de

edificios).

No obstante, la formación que los alumnos de Ingeniería reciben sobre este tipo de

sistemas es fundamentalmente teórica y carece de la necesaria visión práctica por la dificultad

que supone desarrollar un sistema sencillo con el que los alumnos puedan trabajar y adquirir

destrezas profesionales en un tiempo razonable. Otro inconveniente asociado a este tipo de

142

sistemas es su indefinición programática, adscrita en simultáneo a áreas de conocimiento

diferentes como son la tecnología electrónica, la teoría de las señales y las comunicaciones o la

telemática. Para intentar mejorar la visión práctica que el alumnado adquiere sobre el manejo de

sistemas de comunicación inalámbricos, en el Departamento de Ingeniería Electrónica de la

Escuela Superior de Ingenieros de Sevilla se está llevando a cabo un importante esfuerzo en pro

de la remodelación de las prácticas de las diferentes asignaturas que tiene adscritas. Este es el

caso de dos asignaturas denominadas “Complementos de Sistemas Electrónicos Digitales” y

“Laboratorio de Instrumentación Electrónica” y, pertenecientes a 3er y 5º curso,

respectivamente, de la titulación de Ingeniería de Telecomunicación. Ambas asignaturas aúnan

esfuerzos en la actualidad para desarrollar nuevas prácticas que permitan al alumno tener una

visión más clara y práctica sobre el manejo de los sistemas electrónicos de comunicación y, en

concreto, de los estándares inalámbricos. Los estándares WiFi y Bluetooth son algunos de los

sistemas de comunicación inalámbrica que centran estos nuevos desarrollos. En este sentido, y

dada las asignaturas involucradas en la experiencia, parece adecuado el desarrollo de

actividades de tipo práctico que involucren al alumno con el manejo de los sistemas empotrados

y el análisis y estudio de sistemas microprocesadores y microcontroladores actuales, con la

caracterización de enlaces inalámbricos basados en Bluetooth. En esta dirección se encamina la

propuesta docente planteada en este artículo: el desarrollo de un sistema que permita al alumno

familiarizarse de forma práctica con el manejo de una tecnología inalámbrica tan extendida

como Bluetooth, mediante la programación de sistemas empotrados.

2. Descripción del sistema El sistema implementado se basa en un PC dotado de conectividad Bluetooth y

ejecutando una distribución de Linux, un dispositivo empotrado conocido como OpenMoko

(Fig. 1) y un conjunto de aplicaciones que permiten a los alumnos caracterizar, mediante la

obtención de datos experimentales, los enlaces Bluetooth. Algunas de las características más

destacables que se pueden estudiar son el establecimiento de conexiones mediante la búsqueda

de servicios por parte de la aplicación cliente, cómo afecta a la búsqueda el publicar servicios de

carácter privado o cómo se reconocen dichos servicios por dispositivos comerciales como puede

ser un teléfono móvil.

Con respecto al PC, se ha utilizado un ordenador de sobremesa de arquitectura x86,

arquitectura con la cual el alumno está familiarizado. La distribución de Linux instalada en el

equipo se corresponde con una distribución Ubuntu 9.04. La elección de esta distribución se

debe, en primer lugar, a que dispone de una extensa comunidad de soporte. De esta forma, si un

alumno se encuentra con algún problema puede recurrir a simples buscadores web, como

Google, o a foros especializados en esta distribución para resolverlo (se fomentaría así el

autoaprendizaje y la búsqueda de información por parte del alumno).En segundo lugar, a la gran

cantidad de paquetes software existentes para esta distribución, lo que permite tener actualizado

el sistema cómodamente, así como instalar librerías adicionales de una manera muy sencilla y

cómoda. Por último, la semejanza de las estructuras de ficheros a las distribuciones de tipo

Debian, lo que supone un punto de partida avanzado debido a nuestra experiencia con este tipo

de sistemas operativos.

Ubuntu se adapta, por tanto, a las exigencias que se le podrían imponer a una distribución

de Linux destinada a fines educativos. En cuanto a las herramientas de compilación para el PC,

se suministrará el compilador gcc, que cuenta además con la ventaja de que se encuentra

incorporado dentro del sistema operativo como una utilidad más. El desarrollo de aplicaciones

mediante compilación cruzada permite, además, que el alumno se familiarice con un proceso de

diseño económico, ya que la programación y compilación se realiza en una máquina diferente al

sistema empotrado, ahorrando tiempo y costes en el desarrollo.

143

Figura 1. Sistema Openmoko denominado Neo FreeRunner.

Por otro lado, el otro dispositivo que formará parte del sistema de comunicaciones

inalámbricas basado en Bluetooth será un teléfono móvil de carácter libre denominado

Openmoko, en concreto la versión Neo FreeRunner. Este terminal se corresponde con un

proyecto de hardware y software abierto destinado a usuarios avanzados para que puedan

personalizar el teléfono móvil para satisfacer sus necesidades. Se caracteriza por disponer de un

microprocesador Samsung S3C2442B, cuya principal característica es que presenta una

arquitectura ARM920T a 400 MHz. Este tipo de arquitecturas (ARM9x) se están implantando

rápidamente en los sistemas empotrados y móviles de comunicaciones debido a su elevada

potencia de cálculo, su bajo consumo y el bajo coste de desarrollo que presenta. Por su parte, el

uso de la misma supone que, a la hora de realizar los códigos fuentes de los programas a

ejecutar en esta plataforma, debamos hacer uso de la compilación cruzada para poder obtener un

ejecutable válido para el procesador en cuestión. Otras ventajas adicionales que ofrece

Openmoko son los dos acelerómetros disponibles (ubicados en diferentes posiciones para poder

realizar las correcciones pertinentes a las medidas obtenidas) o la conectividad GPRS, GSM,

Bluetooth con chipset CSR BlueCore 4, 802.11g y GPS, entre otras. Como se puede comprobar,

se corresponde con un sistema empotrado que permite su uso en una gran cantidad de

aplicaciones diferentes, permitiendo que el alumno pueda investigar y desarrollar tareas en áreas

de conocimientos que involucren las comunicaciones inalámbricas o los sistemas de

instrumentación, medida y adquisición de datos.

El sistema operativo que gobierna Openmoko es una distribución de Linux para

dispositivos móviles con un kernel 2.6.24, de forma que puede aprovecharse para que el alumno

adquiera abundantes conocimientos sobre la programación de dispositivos móviles basada en el

kernel de Linux. El motivo por el que se optó por usar un sistema operativo libre y no uno

privado, como puede ser Symbian o Windows Mobile, se debe a que es de código abierto, lo

que implica un control absoluto de las aplicaciones externas adquiridas. Además, se dispone de

una amplia libertad de uso y desarrollo de aplicaciones (Fig. 2), así como de la existencia de un

amplio soporte por parte de desarrolladores externos. Por ejemplo, existencia de una extensa

API de programación que permite simplificar tareas como la lectura de acelerómetros o leer la

señal del GPS. Por otro lado, se consigue una gran reutilización de las aplicaciones

desarrolladas. Finalmente, se estima que la creación de aplicaciones será rápida puesto que al

ejecutar Linux, el usuario del sistema únicamente debe conocer el funcionamiento del mismo

(algo muy habitual en la actualidad) para empezar a diseñar y construir una primera aplicación.

En cuanto a los dispositivos usados para establecer el sistema destinado a la realización

de las prácticas, en principio se ha implementado un enlace Bluetooth empleando dispositivos

comerciales, dongle USB con chipset CSR BlueCore 4 compatible con la versión 2.1 del

estándar Bluetooth. Esto permite realizar tareas como la modificación de la potencia de

transmisión durante el proceso de inquiry, realizar búsquedas en modo RSSI extendido o

aumentar la velocidad de transferencia. El motivo de la elección de un enlace Bluetooth para las

primeras experiencias es su profusión a nivel comercial, lo que se prevé provoque cierto interés

por parte de los alumnos. En cuanto al tipo de dongle seleccionado, se escogió uno cuyo chipset

144

fuese compatible con la versión 2.1 del estándar Bluetooth para que el alumno pudiese

experimentar con todos los comandos de la capa HCI que permiten configurar la comunicación

inalámbrica a bajo nivel.

Figura 2. Estructura software del dispositivo Neo FreeRunner.

Finalmente, para dotar de una cierta funcionalidad a esta plataforma de aprendizaje

hemos desarrollado una aplicación que sigue una arquitectura de tipo cliente-servidor. Para ello,

hacemos uso del protocolo SDP (Service Discovery Protocol) o Protocolo de Descubrimiento de

Servicios. Este protocolo permite a los programas clientes descubrir la existencia de diversos

servicios proporcionados por uno o varios servidores de aplicaciones, junto con los atributos y

propiedades de los servicios que se ofrecen. Estos atributos incluyen el tipo o clase de servicio

ofrecido y el mecanismo o la información necesaria para utilizar los mismos.

SDP se basa en una determinada comunicación entre un servidor que contiene los

servicios ofrecidos y un cliente que desea algún servicio específico. El servidor mantiene una

lista de registros de servicios, los cuales describen las características de estos. Cada registro

contiene información sobre un determinado servicio. Para recuperar la información asociada a

alguno de estos registros, el cliente debe realizar una petición SDP. Si el cliente o la aplicación

asociada con el cliente deciden utilizar un servicio, deben establecer una conexión

independiente con el servicio en cuestión. SDP proporciona un mecanismo para el

descubrimiento de servicios y sus atributos asociados, pero no proporciona ningún mecanismo

ni protocolo para utilizar dichos servicios. Es en este punto donde se establece una

comunicación RFCOMM (Fig. 3), que se corresponde con la emulación de un puerto serie para

transmitir información a través de él.

Figura 3. Enlace de comunicación establecido por RFCOMM.

Por su parte, un cliente SDP normalmente realiza una búsqueda de servicios acotada por

determinadas características. No obstante, hay momentos en los que resulta deseable descubrir

todos los servicios ofrecidos por un servidor SDP sin que pueda existir ningún conocimiento

previo sobre los registros que pueda contener. Este proceso de búsqueda de cualquier servicio

ofrecido se denomina navegación o browsing.

La tecnología inalámbrica Bluetooth hace un uso muy amplio de procesos de

145

descubrimiento que permiten a los dispositivos identificarse entre sí cuando entran dentro del

radio de acción, y establecer las conexiones apropiadas para que los dispositivos puedan

ejecutar las aplicaciones comunes y acceder a varios servicios. Por medio del descubrimiento de

servicios, las redes personales son básicamente autoconfigurables. Esto, a su vez, hace a los

dispositivos portátiles muy sencillos de utilizar. En consecuencia, las conexiones son

enteramente transparentes para el usuario y no requieren asistentes de instalación ni

configuraciones en línea.

3. Aplicación del sistema Para ayudar a los alumnos a familiarizarse con el sistema propuesto, se han desarrollado

una aplicación de tipo servidor que ofrece servicios y un programa cliente que realiza la

búsqueda de estos servicios. En el caso del servidor, el programa se encargará de atender las

peticiones del cliente suministrándole los ficheros de las páginas del menú solicitadas. También

deberá registrar un servicio SDP que permita al cliente identificar al equipo en concreto. El

cliente, por contra, deberá poder buscar un equipo a partir de un determinado servicio, así como

solicitar los ficheros asociados a las entradas de los menús visitados y procesarlos. La idea

desarrollada ha consistido en aprovechar el protocolo SDP para poder descubrir aquellos

dispositivos que pertenezcan a nuestra aplicación para posteriormente solicitarle un inicio de

conexión y poder realizar el envío de información a través del enlace establecido (Fig. 4). Por

tanto, tendríamos el programa que actúa como servidor en el PC o en una máquina remota. Éste,

al arrancar, registrará en una tabla los servicios que dicha máquina es capaz de soportar. Este

servicio deberá ser público para que el cliente, la aplicación a ejecutar en el terminal móvil,

pueda realizar una búsqueda del mismo y encontrarlo. Una vez que se haya registrado, el

servidor deberá quedar a la escucha de una petición de conexión. Por otro lado, el programa

cliente, lo primero que tendrá que realizar al arrancar es un escaneo de los dispositivos que tiene

a su alcance para que, una vez detectados todos, pueda realizar una consulta a cada uno de ellos

para determinar si el servicio que se solicita está disponible. En caso de encontrarlo, deberá

solicitar los atributos que posee dicho servicio para poder configurar la petición de conexión.

Una vez configurada, se solicitará el inicio de una comunicación mediante el establecimiento de

una conexión RFCOMM al canal donde el servidor se encuentra a la escucha. Tras la detección

del equipo remoto con el programa servidor, y el correspondiente establecimiento de conexión,

el cliente solicitará el fichero principal de configuración de los menús, que albergará la temática

de las entradas, y los procesará, identificando aquellas líneas que hagan referencia a texto plano

a mostrar en la ventana y a botones que contengan las entradas de los menús.

146

Figura 4. Estructura básica de la aplicación cliente y servidor desarrollada.

El funcionamiento de la aplicación desarrollada, fue comprobado mediante dos pruebas.

Una primera en la que se modificó el tiempo de búsqueda del servidor por parte del cliente

(buscando minimizar el tiempo que el cliente debe esperar para poder encontrar al servidor), y

una segunda en la que se declaró un servicio como privado para comprobar que verdaderamente

dicho servicio quedaba oculto al cliente. A continuación, se muestran los resultados obtenidos

(Fig. 5)(Fig. 6). Como se puede observar, esta aplicación sirve como una muestra del potencial

que este sistema de comunicaciones inalámbricas posee y la diversidad de proyectos en los que

se puede aplicar.

RFCOMM

USUARIO

OPENMOKO SERVIDOR SERVICIOS SDP

147

Figura 5. Pruebas de las aplicaciones cliente y servidor. Ejecución del servidor.

Figura 6. Pruebas de las aplicaciones cliente y servidor. Ejecución del cliente.

148

4. Aplicación académica El sistema desarrollado tendrá como finalidad su aplicación en prácticas tanto en cursos

introductorios a los sistemas microprocesadores basados en DSPs como puede ser

“Complementos de Sistemas Electrónicos Digitales” como en las asignaturas de último curso,

donde se le presuponen al alumno los conocimientos suficientes como para poder sacarle el

máximo provecho al sistema mediante la realización de trabajos prácticos. En función del nivel

del curso en el que se utilice se pueden adaptar las prácticas.

Así, por ejemplo, en las asignaturas de cursos inferiores se puede emplear el sistema para

introducir a los alumnos en el proceso de compilación cruzada, de tal forma que sean ellos los

que realicen una aplicación sencilla que haga uso del algún módulo del sistema desarrollado.

Esto les permitirá adquirir pericia con el proceso de realización de programas para

microprocesadores. Con este fin, tendrán que codificar y compilar en el PC un programa

mediante el uso del compilador cruzado y las librerías necesarias para, finalmente, descargarlo

en el sistema Openmoko donde se ejecutaría y depuraría.

Para facilitar esta labor y como parte del sistema diseñado, se desarrolló una API de libre

disposición para los alumnos, interfaz de programación que permite leer los valores de los

acelerómetros del terminal Openmoko. De esta forma, el alumno puede hacer uso de las

funciones incluidas en la API para realizar una lectura del acelerómetro y en función del valor

obtenido generar una respuesta u otra en la pantalla del dispositivo.

Por otra parte, en los últimos cursos, los alumnos poseen un mayor conocimiento de

diversas disciplinas como telemática, teoría de la señal o electrónica. Esto permitiría sacarle un

mayor provecho al sistema puesto que en este caso, pueden aplicar los conocimientos

adquiridos en estas parcelas para aplicarlos en la creación de complejas aplicaciones. Como

ejemplo de posibles proyectos que se les podría asignar a los alumnos se podría mencionar el

diseño de redes distribuidas de procesamiento basados en un sistema inalámbrico de

comunicaciones como el diseñado, aplicaciones de tipo cliente/servidor que hagan uso de

servicios web o el diseño e implementación de algoritmos de posicionamiento.

5. Conclusión Se ha desarrollado una plataforma de comunicaciones inalámbricas, basada en el estándar

Bluetooth, para motivar a los alumnos de Ingeniería mediante el uso de dispositivos electrónicos

de consumo. El sistema desarrollado es una herramienta novedosa y versátil que permite realizar

prácticas a alumnos de los primeros cursos y a aquellos que se haya cerca de finalizar sus

estudios. El hecho de hacer uso de un sistema “open hardware” como es Openmoko permite

ofrecer al alumno un sistema atractivo al alumnos, además de ofrecerle un entorno (incluido el

sistema operativo) totalmente configurable por él. La existencia de una comunidad de

desarrolladores detrás del dispositivo seleccionado permite reducir los tiempos de aprendizaje,

aumentar los conocimientos adquiridos y fomentar el autoaprendizaje y la búsqueda de

información por parte de los alumnos, cualidades que resultarán muy beneficiosas en su futura

actividad profesional.

Referencias [1] Página oficial del proyecto Openmoko. http://wiki.openmoko.org/wiki/Main_Page

[2] Albert S. Huang, Larry Rudolph. Bluetooth essentials for programmers,. Cambridge University

Press (2007).

[3] Robert Morrow. Bluetooth operation and use, McGraw-Hill (2002).

[4] H. Schildt. C:Manual de referencia. McGraw-Hill (2002).

[5] Bluetooth SIG. Core Specification v2.1 + EDR. http://www.bluetooth.com

[6] Ian McLoughlin. Secure embedded systems: the threat of reverse engineering. 14th

IEEE

International Conference on Parallel and Distributed Systems. pp. 729-736. (2008).

149

SISTEMA DE ORIENTACIÓN BASADO EN BRÚJULA

ELECTRÓNICA PARA LA REALIZACIÓN DE PRÁCTICAS

J.M. HINOJO, D. GUTIÉRREZ, E. MARSAL, M. SOTO, F. CORTÉS, F. BARRERO, S.

TORAL

Departamento de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de

Sevilla. España

[email protected], [email protected], [email protected], [email protected],

[email protected], [email protected], [email protected]

Resumen de la comunicación En la actualidad, los terminales móviles, tales como teléfonos móviles, PDAs o Pocket

PCs, se han convertido en dispositivos multimedia que son capaces de ofrecer una gran cantidad

de servicios y funciones muy diferentes de la principal. Este hecho se debe sobre todo al bajo

coste que supone fabricar los sensores necesarios para poder dotar a dichos dispositivos de esas

funcionalidades añadidas. La extraordinaria difusión en dispositivos comerciales de elementos

tales como acelerómetros o brújulas electrónicas motivan a los usuarios de estos, entre los que

se encuentran especialmente los alumnos de Ingeniería. Este interés hacia dispositivos

habitualmente asociados a consolas para juegos y terminales móviles de última generación,

pretende ser aprovechado para incrementar la atención y la motivación de los alumnos adscritos

a la titulación de Ingeniería de Telecomunicación de la Universidad de Sevilla. Se ha

desarrollado un sencillo sistema digital de orientación, basado en una brújula electrónica y

conectado a un microprocesador empleando un puerto I2C. El objetivo perseguido es disponer

de un dispositivo versátil que pueda ser empleado en las prácticas de la asignatura para que el

alumno adquiera conocimientos prácticos sobre el diseño de circuitos de adaptación de señales,

manejo e interpretación de instrumentación electrónica como analizadores lógicos,

programación de microprocesadores y gestión de periféricos de comunicaciones como el I2C o

el SPI, y desarrollo de aplicaciones relacionadas con la gestión del sistema de orientación como

la realización de algoritmos que permitan optimizar el proceso de orientación haciendo uso del

sensor magnético.

Referencias [1] Michael J. Caruso. Applications of Magnetic Sensors for Lof Cost Compass Systems. Honeywell,

SSEC.

[2] Dominique Paret. El Bus I2C: de la teoría a la práctica. Paraninfo (1995).

[3] Francisco Rogelio Palomo Pinto, Alfredo Pérez Vega-Leal, Eduardo Galván. Problemas resueltos

de instrumentación electrónica. Universidad de Sevilla (2006).

[4] Miguel A. Pérez García. Instrumentación electrónica. Thomson-Paraninfo (2008).

[5] Karim Yaghmour. Building Embedded Linux Systems. O´Reilly Media (2003).

[6] Gert van der Horn, Johan L. Huijsing. Integrated smart sensors: desgin and calibration. Kluwer

Academic Publishers (1998).

[7] F. Cortés, S. Gallardo, F. Barrero, S. Toral. Plataforma para el desarrollo de sensores inteligentesy

sistemas microprocesados. 7o Congreso de Tecnologías Aplicadas a la Enseñanza de la Electrónica

(TAEE2006). Madrid (2006).

[8] Hua Sun, Peike Yang. Design and Research on Errors Compensation of Digital Compass.

Proceedings of the 2009 IEEE International Conference on Mechatronics and Automation. pp. 4742-

4747.

[9] Zhi Li, Xiang Li, Youngjun Wang. A Calibration Method for Magnetic Sensors and Accelerometer

in Tilt-compensated Digital Compass. The Ninth International Conference on Electronic

Measurement and Instruments. pp. 868-871, vol. 2, (2009).

[10] Hong-Shik Kim, Jong-Suk Choi. Advanced indoor localization using ultrasonic sensor and digital

compass. International Conference on Control, Automation and Systems. pp. 223-226. (2008)

150

SISTEMA DE ORIENTACIÓN BASADO EN BRÚJULA

ELECTRÓNICA PARA LA REALIZACIÓN DE PRÁCTICAS

J. M. HINOJO, D. GUTIÉRREZ, E. MARSAL, M. SOTO, F. CORTÉS, F. BARRERO, S.

TORAL

Departamento de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de

Sevilla. España

[email protected], [email protected], [email protected], [email protected],

[email protected], [email protected], [email protected]

En este trabajo se presenta el desarrollo de un sistema electrónico de

orientación, basado en diferentes brújulas electrónicas comerciales,

para la enseñanza práctica en un Laboratorio de Instrumentación

Electrónica. Se han analizado diferentes tipos de brújulas

electrónicas de dos y tres ejes para determinar la precisión obtenida

con vistas a ser usadas como sistemas de orientación electrónica. El

sistema desarrollado forma parte de un plan de renovación docente

llevado a cabo en la asignatura, adscrita a la titulación de Ingeniería

de Telecomunicaciones de la Universidad de Sevilla, con vistas a

aumentar la motivación de los alumnos en clase.

1. Introducción En la actualidad, los terminales móviles, tales como teléfonos móviles, PDAs o Pocket

PCs, se han convertido en dispositivos multimedia que son capaces de ofrecer una gran cantidad

de servicios y funciones muy diferentes de la principal. Este hecho se debe sobre todo al bajo

coste que supone fabricar los sensores necesarios para poder dotar a dichos dispositivos de esas

funcionalidades añadidas. La extraordinaria difusión en dispositivos comerciales de elementos

tales como acelerómetros o brújulas electrónicas motivan a los usuarios de estos, entre los que

se encuentran especialmente los alumnos de Ingeniería. Este interés hacia dispositivos

habitualmente asociados a consolas para juegos y terminales móviles de última generación,

pretende ser aprovechado para incrementar la atención y la motivación de los alumnos adscritos

a la titulación de Ingeniería de Telecomunicación de la Universidad de Sevilla. Se ha

desarrollado un sencillo sistema digital de orientación, basado en una brújula electrónica y

conectado a un microprocesador empleando un puerto I2C. El objetivo perseguido es disponer

de un dispositivo versátil que pueda ser empleado en las prácticas de la asignatura para que el

alumno adquiera conocimientos prácticos sobre el diseño de circuitos de adaptación de señales,

manejo e interpretación de instrumentación electrónica como analizadores lógicos,

programación de microprocesadores y gestión de periféricos de comunicaciones como el I2C o

el SPI, y desarrollo de aplicaciones relacionadas con la gestión del sistema de orientación como

la realización de algoritmos que permitan optimizar el proceso de orientación haciendo uso del

sensor magnético.

2. Descripción del sistema El sistema desarrollado se corresponde con un equipo prototipo destinado a la orientación

electrónica basado en una brújula digital, que es la encargada de realizar las mediciones del

campo magnético terrestre y determinar la desviación del sistema frente al norte magnético.

151

Para desarrollarlo, se analizaron diferentes sensores que actúan como brújulas electrónicas

(Tabla 1).

Los criterios de selección del sensor empleado son la precisión del sensor, su precio, las

características eléctricas del sensor y la forma de acceder al dispositivo. Los componentes

analizados pueden ser clasificados en dos grandes grupos: brújulas electrónicas de dos ejes y de

tres ejes. La principal diferencia entre ellas es la obtención de la medida del campo magnético

terrestre en el plano XY, o en un sistema de tres coordenadas. Puesto que el objetivo es poder

realizar una orientación fiable, el hecho de obtener el vector del campo magnético terrestre en

una base tridimensional permite tener caracterizado a dicho vector completamente, por lo que el

resultado obtenido podrá ser más preciso sin encarecer sobremanera el dispositivo final.

Modelo Hitachi

HM55B HMC 6352 V2Xe HMC 5843 1490

Alimentación

[V] 2,7 – 3,3 2,7 – 5,2 3 1,8 – 3,3 5

Sensibilidad

[uT] 1 – 1.6 10 – 75 1100 - -

Consumo

activo [mA] 9 - 13 1 2 - 25

Consumo

pasivo [uA] 1 - 5 1 0,2 - -

Ejes 2 2 2 3 -

Resolución 3° 0,5 ° 0,01° 1º 45°

Precisión - 2,5 ° 2° - -

Interfaz SSI I2C SPI I2C -

Tiempo de

medida [s] 0.040 - - 0,02-2 2,5

Dimensiones

[mmxmm] 0,762 x

0,762 6,6 x 6,5 x

1x5 2,54 x 2,54 x

1,2 0,4 x 0,4 x

0,13 -

Encapsulado 6 pin DIP 24 pin LCC - 25 pin LCC -

Precio [€] 14 26 50 19 15

Tabla 1. Sensores magnéticos analizados tras el proceso de búsqueda.

Por otro lado, una vez se seleccione la brújula es necesario considerar la problemática de

su sistema de referencia al adquirir las medidas[8,9]. Este efecto puede observarse en la figura

1. Cuando la brújula digital inicia el muestreo de los valores del campo magnético, éste los

expresa con respecto a su base, determinada por la posición en la que se haya el integrado con

respecto al suelo. Por tanto, necesitamos aplicar una transformación a los valores medidos para

poder obtener las proyecciones de los mismos en una base que pueda servir de referencia para

operar de forma independiente de la orientación del dispositivo. En concreto, si tomamos el

PCB del hardware desarrollado como el plano XY del sistema de referencia de la brújula, el eje

Z será el eje perpendicular a este plano. Si a continuación, tomamos la superficie de la Tierra

(las distancias manejadas en la aplicación permiten aproximar la Tierra como una superficie

plana) como el sistema de referencia en el que operar (Fig. 1), la brújula tendrá una cierta

orientación definida unívocamente mediante dos ángulos:

Roll o ángulo formado entre el eje Y de la brújula y el eje Yh del sistema de referencia

152

ubicado en la Tierra.

Pitch, que se corresponde con el ángulo formado por el eje X del sistema de referencia de

la brújula con el eje Xh de la Tierra.

Figura 1. Disposición de los ejes de la brújula y de la Tierra.

La orientación del PCB y, por extensión, de la brújula no tiene por qué coincidir con el

sistema de referencia tomado. Por tanto, las medidas que dé el sensor deberán ser corregidas en

la medida de lo posible. Para ello, se pueden usar distintas técnicas para resolver el problema:

1. Usar un inclinómetro. Esta solución contemplaría añadir un sensor más al sistema para

conocer en todo momento la inclinación de la brújula. De esta forma, los ángulos de

roll y pitch se podrían determinar de una manera muy sencilla puesto que tan sólo

sería necesario efectuar una lectura de los valores y sustituir en las fórmulas de

corrección que se adjuntan, para obtener los valores del campo proyectados en el

sistema de referencia ubicado en la Tierra. Así, sólo restaría realizar el arcotangente

del cociente entre Yh y Xh para obtener el ángulo de desviación con respecto al norte

magnético (Ec. 1)[1].

Xh=X·cos(φ)+Y·sen(θ)sen(φ)-Z·sen(φ) (1)

Yh=Y·cos(θ)+Z·sen(θ)

θ =roll

φ=pitch

2. Usar un acelerómetro. Esta segunda solución permitiría detectar los cambios de

aceleración que sufriese el dispositivo de forma que, analizando los signos del módulo

de la aceleración, se podría sacar la posición del PCB, es decir, los ángulos de roll y

pitch. Nuevamente, deberíamos aplicar las correcciones anteriores para poder obtener

la proyección del campo magnético terrestre en un sistema de ejes estático como

resulta ser el ubicado en la superficie de la Tierra.

3. Aplicar aproximaciones y cálculos matemáticos. Esta tercera opción es especialmente

interesante si se utiliza una brújula de tres ejes, y permite, a partir de las medidas

obtenidas por el sensor, realizar transformaciones para rotar la base de la brújula al

sistema de referencia ubicado en la Tierra. Para ello, es necesario conocer los ángulos

de roll y pitch del PCB respecto de la base terrestre. No obstante, si se presupone que

el usuario dispone del PCB en posición horizontal (cosa habitual al realizar el alumno

la práctica), se puede asumir que el ángulo roll puede ser pequeño, inferior a 20º. En

este supuesto, se pueden aproximar las funciones trigonométricas por sus series de

Taylor truncadas hasta el primer orden. Por tanto, el coseno se aproximaría como la

unidad y el seno se podría aproximar por su argumento. Con dicha aproximación, se

elimina una de las incógnitas y bastaría conocer el ángulo de pitch para poder obtener

153

una medida fiable del campo magnético terrestre.

Como se puede observar, las alternativas propuestas para resolver el problema de conocer

la orientación del dispositivo se han clasificado según la facilidad de la solución. La primera

solución resulta eficaz, rápida y sencilla. Sin embargo, el introducir un sensor más implicaría

complicar el hardware excesivamente. La segunda solución, basada en acelerómetro, permite

obtener medidas del ángulo de desviación de manera precisa a base de complicar más el

software y el hardware; necesitaríamos un algoritmo para determinar el ángulo del receptor

respecto del eje X e Y según las aceleraciones registradas. Además, se debería incluir un

segundo sensor, aumentando nuevamente la complejidad del PCB. La ventaja de esta solución

frente a la primera es que aunque acelerómetro complica el software, ofrece mayor versatilidad

al sistema desarrollado, pudiéndose emplear en un mayor número de aplicaciones. Finalmente,

la tercera solución es la menos precisa de todas, puesto que se basa en aproximaciones. No

obstante, es la solución más simple de las tres, dado que sólo requeriría una brújula electrónica

de tres ejes para llevar a cabo la determinación del ángulo de desviación con respecto al norte

magnético.

Tras el análisis de la problemática asociada a la medida, se opta por emplear una brújula

de 3 ejes por lo que de las brújulas analizadas (Tabla 1), la única que se adapta es el modelo

HMC5843 del fabricante Honeywell. El resto de brújulas sólo disponen de las medidas del

campo magnético en 2 ejes, cometiendo un error de precisión elevado (alcanzando hasta 20º de

error como en el caso de la brújula HM55B). La conexión al microprocesador del sistema es

simple al tratarse de una comunicación I2C que tan sólo utiliza dos líneas: I2C_DATA e

I2C_CLOCK (Fig. 2)[2].

Figura 2. Esquema de conexionado de la brújula.

Finalmente, el último componente está constituido por un sistema empotrado gobernado

por un procesador con arquitectura ARM desarrollado por la compañía Freescale. En concreto,

el núcleo del mismo corresponde con una arquitectura ARM926J-S cuya velocidad de

funcionamiento es de 266 MHz. Por tanto, se corresponde con un dispositivo que posee un gran

potencial tanto en aplicaciones de cómputo como en aquellas situaciones donde se requiera una

gran conectividad. Se caracteriza por presentar un puerto I2C, al cual conectaremos nuestro

sistema de orientación, cuatro UART, tres puertos CSPI, dos SSI y un puerto destinado a

aplicaciones de audio. Además, presenta tres temporizadores para poder realizar mediciones de

tiempo, un módulo PWM, líneas de entrada/salida de propósito general y diversos periféricos

más (Fig. 3)[5].

Sistema maestro

Brújula Circuito de

I2C Conexió

n

154

Figura 3. Diagrama de bloques del procesador ARM utilizado.

3. Aplicación del sistema El sistema presentado anteriormente se ha desarrollado para usarse en la asignatura

denominada “Complementos de Sistemas Electrónicos Digitales”, perteneciente al 3er

curso de

la titulación de Ingeniero de Telecomunicación. La idea es emplearlo como sistema de

adquisición de datos y periférico externo a un sistema empotrado basado en una CPU con

arquitectura ARM9. El microprocesador seleccionado dispone de una distribución de Linux

completamente funcional en su interior, lo que permitirá al alumno familiarizarse con las

técnicas de programación de periféricos en sistemas empotrados a alto nivel (sobre GNU/

Linux).

El dispositivo desarrollado posee una doble finalidad. Por un lado, se pretende que el

alumno potencie sus habilidades como diseñador de circuitos electrónicos interconectando el

sistema electrónico de orientación (periférico externo)[7] al sistema empotrado mediante el bus

I2C. Para ello deberá hacer un esfuerzo por entender los manuales de instrucciones de ambos

dispositivos y profundizar en el conocimiento del bus I2C. Por otro lado, el alumno deberá

desarrollar aplicaciones sobre sistemas operativos GNU/Linux, mediante el uso de APIs.

En consecuencia, se consigue ofrecer un entorno de desarrollo similar a otros comerciales

y usados en la industria electrónica. Además de esta labor, se tendrá que enfrentar también a la

tarea de interpretar los datos obtenidos del sensor y diseñar un algoritmo que pueda ser

implementable en el sistema empotrado. El objetivo final es que, en grupos de trabajo, se

desarrolle un sistema de orientación electrónico que pueda ser usado en aplicaciones de campo.

Para ello, el estudiante desarrollará una aplicación software que: permita fijar el norte

geográfico mediante un proceso de calibración, lea y procese los valores del campo magnético

terrestre obtenidos de la brújula electrónica y genere una salida con la desviación que el

dispositivo presente con respecto al norte geográfico (Fig. 4).

155

Figura 4. Captura de la comunicación entre la brújula electrónica y el sistema empotrado.

4. Conclusión En este artículo se ha presentado una nueva implementación electrónica a emplear en las

prácticas de la asignatura denominada “Complementos de Sistemas Electrónicos Digitales”, de

3er curso de la titulación de Ingeniero de Telecomunicación de la Universidad de Sevilla. Se ha

desarrollado un sistema de orientación electrónico que conecta dos dispositivos independientes

mediante un bus I2C: una brújula electrónica y un DSP con núcleo ARM. El objetivo

perseguido es el aprendizaje de conceptos básicos de diseño digital y análisis de sistemas

electrónicos digitales, así como de desarrollo de aplicaciones software para dispositivos

empotrados. La implementación presentada constituirá una herramienta docente útil en

asignaturas de introducción a los sistemas basados en microprocesadores, donde el alumno

podrá comprobar de forma práctica y con aplicaciones conceptualmente sencillas, el interés de

este tipo de dispositivos en la tecnología electrónica actual, así como sus posibilidades. Además,

permitirá instruir al alumno en una metodología de diseño y programación cercana a la realidad,

permitiéndole poner en práctica conceptos teóricos estudiados en otras asignaturas.

Referencias [1] Michael J. Caruso. Applications of Magnetic Sensors for Lof Cost Compass Systems. Honeywell,

SSEC.

[2] Dominique Paret. El Bus I2C: de la teoría a la práctica. Paraninfo (1995).

[3] Francisco Rogelio Palomo Pinto, Alfredo Pérez Vega-Leal, Eduardo Galván. Problemas resueltos

de instrumentación electrónica. Universidad de Sevilla (2006).

[4] Miguel A. Pérez García. Instrumentación electrónica. Thomson-Paraninfo (2008).

[5] Karim Yaghmour. Building Embedded Linux Systems. O´Reilly Media (2003).

[6] Gert van der Horn, Johan L. Huijsing. Integrated smart sensors: desgin and calibration. Kluwer

Academic Publishers (1998).

[7] F. Cortés, S. Gallardo, F. Barrero, S. Toral. Plataforma para el desarrollo de sensores inteligentesy

sistemas microprocesados. 7o Congreso de Tecnologías Aplicadas a la Enseñanza de la Electrónica

(TAEE2006). Madrid (2006).

[8] Hua Sun, Peike Yang. Design and Research on Errors Compensation of Digital Compass.

Proceedings of the 2009 IEEE International Conference on Mechatronics and Automation. pp. 4742-

4747.

[9] Zhi Li, Xiang Li, Youngjun Wang. A Calibration Method for Magnetic Sensors and Accelerometer

in Tilt-compensated Digital Compass. The Ninth International Conference on Electronic

Measurement and Instruments. pp. 868-871, vol. 2, (2009).

[10] Hong-Shik Kim, Jong-Suk Choi. Advanced indoor localization using ultrasonic sensor and

digital compass. International Conference on Control, Automation and Systems. pp. 223-226. (2008)

156

10. Referencias

1. Bruce B. Blasch, William R. Wiener, Richard L. Welsh. Foundations of

orientation and mobility.

2. RNIB Digital Accessibility team.

http://www.tiresias.org/index.htm

3. Organización Mundial de la Salud, nota descriptiva N° 282, Mayo 2009.

http://www.who.int/mediacentre/factsheets/fs282/es/index.html

4. Vitek, S. - Klima, M. PERSEUS Personal Help for Blind User. International

Conference on Applied Electronics, p. 367 - 370, ISBN 978-80-7043-865-7,

Pilsen, 2010.

5. Giudice, N. A., y Legge, G. E. Blind navigation and the role of technology.

Engineering handbook of smart technology for aging, disability, and

independence, pp. 479-500, John Wiley & Sons, 2008.

6. Baudoin, G., Venard, O., Uzan, G., Rousseau, A., Benabou, Y., Paumier A.,

Cesbron, J. How can blinds get information in Public Transports using PDA? The

RAMPE Auditive Man Machine Interface, Proc. 8th European Conference for the

advancement of assistive technology in Europe, AAATE 2005, pp. 304-316, Lille,

2005.

7. Sánchez, J., y Oyarzún C. Asistencia móvil basada en audio para la movilización

por medio de microbús de personas ciegas. 2007.

8. Sánchez, J., Sáenz, M. Audio-Based Mobilization and Orientation of Users with

Visual Disabilities through Subway Networks. International Journal on Disability

and Human Development, IJDHD, pp. 235-242. 2006.

9. España Caparros, José A. El sistema braille. Organización Nacional de Ciegos.

Málaga, 2002.

157

10. Serrano Mascaraque, Esmeralda. La e-accesibilidad y la discapacidad visual en

España. Revista general de información y documentación, ISSN 1132-1873, Vol.

19, Nº 1, pp. 189-219, 2009.

11. Ed Welsh R. L. et al. Mobility Devices, in Foundations of Orientation and

Mobility, ISBN/ISSN 0891280936, pp. 357-402, AFB, EUA, 1979.

12. Kay, L. Electronic aids for blind persons: an interdisciplinary subject. Physical

Science, Measurement and Instrumentation, Management and Education. IEE

Proceedings A Science, Measurement & Technology, vol. 131, no. 7, pp. 559-

576, 1984, EUA.

13. Borenstein, J.; Ulrich, I. The GuideCane-a computerized travel aid for the active

guidance of blind pedestrians. Robotics and Automation. Proceedings IEEE

International Conference on , vol.2, no., pp.1283-1288 vol.2, 20-25, 1997.

14. Benjamin, J. M., Ali, N. A., y Schepis, A. F. A Laser Cane for the Blind.

Proceedings of the San Diego Biomedical Symposium, Vol. 12, pp. 53-57, 1973.

15. Kawai, Y., M. Kobayashi, H. Minagawa, M. Miyakawa y F. Tomita. A Support

System for Visually Impaired Persons Using Three-Dimensional Virtual Sound.

International Conference on Computers Helping People with Special Needs, 327-

334, 2000, Karslruhe, Germany.

16. Loomis, J. M., R.G. Golledge, y R.L. Klatzky. Navigation system for the blind:

Auditory display modes and guidance. Presence: Teleoperators and Virtual

Environments, pp. 193-203, 1998.

17. Strothotte, T.; Petrie,H.; Johnson, V.; y Reichert, L. MoBIC: an aid to increase

the independent mobility of blind and elderly travellers, 2nd TIDE Congress,

Paris, La Villette, 1995.

18. Makino, H.; Ishii, I.; Nakashizuka, M.; Development of navigation system for the

blind using GPS and mobile phone combination. Engineering in Medicine and

Biology Society. Bridging Disciplines for Biomedicine. Proceedings of the 18th

Annual International Conference of the IEEE , vol. 2, pp. 506-507 vol.2, 31, 1996.

19. Marsh, A.; May, M.; y Saarelainen, M.; Pharos: coupling GSM and GPS-TALK

technologies to provide orientation, navigation and location-based services for

the blind. Information Technology Applications in Biomedicine. IEEE EMBS

International Conference on Information Technology Applications in

Biomedicine, pp. 38-43, 2000.

158

20. Moller, K.; Toth, F.; Wang, L.; Moller, J.; Arras, K.O.; Bach, M.; Schumann, S.; y

Guttmann, J. Enhanced Perception for Visually Impaired People. Bioinformatics

and Biomedical Engineering ICBBE 2009. 3rd International Conference, pp.1-4,

11-13, 2009.

21. Pissaloux, E.; A characterization of vision systems for blind people mobility.

Systems, Man and Cybernetics, 2002 IEEE International Conference, vol. 4, pp.

6-4, 6-9, 2002.

22. Robert, Max. Bluetooth: A Short Tutorial. Mobile and Portable Radio Research

Group, Bradley Department of Electrical and Comuper Engineering, Virginia

Tech.

23. ZigBee Alliance, ZigBee Specification, 2008.

http://www.zigbee.org/

24. Smith, Roger. RFID: A Brief Technology Analysis. 2004.

25. Wylie-Green, M.P.; Ranta, P.A.; Salokannel, J. Multi-band OFDM UWB solution

for IEEE 802.15.3a WPANs. Nokia Research Center, Nokia Group.

http://research.nokia.com/

26. IEEE 802 LAN/MAN Committee. http://www.ieee802.org/

27. Nuaymi, Loutfi. WiMAX: technology for broadband wireless a . Wiley &

Sons, 2007.

28. Grupo de interés especial Bluetooth. Comparación entre tecnologías.

http://www.bluetooth.com/Bluetooth/Technology/Works/Compare/

29. Grupo de interés especial Bluetooth. Core Specification Versión 2.1 + EDR,

2007.http://www.bluetooth.com/Bluetooth/Technology/Building/Specifications/Default.htm

30. Sánchez, J., Maureira, E. Subway Mobility Assistance Tools for Blind Users.

Lecture Notes in Computer Science, LNCS 4397, pp. 386-404, 2007, Springer-

Verlag Berlin Heidelberg, 2007.

31. Loomis, J., Golledge, R. y Klatzky, R. GPS-Based Navigation Systems for the

Visually Impaired. Fundamentals of Wearable Computers and Augmented

Reality. Lawrence. Erlbaum Associates, 2001.

32. Cano, J. C. Cano, J.M. Calafate, C. González, E. y Manzoni, P. Evaluation of the

trade-off between power consumption and performance in Bluetooth based

systems. Sensor Technologies and Applications, SensorComm 2007, pp. 313-

318. Octubre 2007.

159

33. Thamrin, Taqwan y Sahib, Shahrin. The Inquiry and Page Procedure in Bluetooth

Connection. International Conference of Soft Computing and Pattern

Recognition, Diciembre 2009.

34. G. Záruba y I. Chlamtac. Accelerating Bluetooth Inquiry for Personal Area

Networks. Global Telecommunications Conference, 2003, vol. 2, pp.702-706,

GLOBECOM '03, Diciembre 2003.

35. B. Peterson, R. Baldwin y J. Kharoufeh. Bluetooth Inquiry Time Characterization

and Selection.Mobile Computing, IEEE transactions, vol. 5, pp. 1173-1187, 2006.

36. G. Záruba y V. Gupta. Simplified Bluetooth Device Discovery – Analysis and

Simulation. Systems Scineces, 2004. Proceedings of 37th Annual Hawaii

International Conference, pp. 9pp, 2004.

37. S. Asthana y D. Kalofonos. The problema of Bluetooth pullution and accelerating

connectivity in Bluetooth Ad-Hoc networks. Pervasive Computing and

Communications, 2005. PerCom 2005. Third IEEE International Conference, pp.

8-12, 2005.

38. X. Zhang y G. Riley. Evaluation and accelerating Bluetooth device discovery.

Radio and Wireless Symposium, 2006. IEEE pp. 467-470, 2006.

39. F. Bektas, B. Vondra, P. Veith, L. Faltin, A. Pohl y A. Scholtz. Bluetooth

communication employing antenna diversity. Computers and Communication,

2003. Proceedings. Eighth IEEE International Symposium on, 2003, pp.652-657,

vol 1, 2003.

40. A. Mohammed y T. Hult. Evaluation of the Bluetooth link and antennas

performance for indoor office environments by measurement trials and FEMLAB

simulations. Vehicular Technology Conference, 2005. VTC 2005-Spring. 2005

IEEE 61st, pp. 238-242, vol. 1, 2005.

41. F. Forno, G. Malnati, G. Portelli. Desing and implementation of a Bluetooth ad

hoc network for indoor positioning. Softwar IEE Proceedings, pp. 223- 228, vol.

152, 2005.

42. Organización BeagleBoard. Página oficial del proyecto. http://beagleboard.org/

43. Kontron Embedded Computers Ag. Página principal. http://www.kontron.com/

44. IEI Technology Corp. Página principal. http://www.ieiworld.com/

45. Openmoko Inc. página oficial. http://www.openmoko.com/

160

46. Linux in a Box Company. Página oficial. http://www.liab.dk/

47. Toradex. Página oficial. Kit Limestone PDA.

http://www.toradex.com/Es/Products/Limestone_PDA_Kit

48. Tanenbaum, Andrew S. Sistemas Operativos Modernos. Pearson Education,

2003.

49. Openmokowiki. Página principal. http://wiki.openmoko.org/wiki/Main_Page

50. S. Asthana y D. Kalofonos. The problem of Bluetooth pullution and accelerating

connectivity in Bluetooth Ad-Hoc networks. Pervasive Computing and

Communications, 2005. PerCom 2005. Third IEEE International Conference, pp.

8-12, 2005.

51. Huang, Albert y Rufolph, Larry. Bluetooth essentials for programmers.

Cambridge University Press, 2007.

52. Stevens, W. Richard. Advanced Programming in the UNIX Environment. Addison

Wesley, 2005.

53. The Apache Software Foundation. Página oficial. http://www.apache.org/

54. Consorcio World Wide Web. Página oficial Libxml2. http://xmlsoft.org/

55. SourceForge. Sintetizador de voz eSpeak. http://espeak.sourceforge.net/

56. Universidad de Edimburgo, The Centre for Speech Technology Research: The

Festival Text to Speech synthesis System.

http://www.cstr.ed.ac.uk/projects/festival/

57. Universidad Carnegie Mellon, Speech Software at CMU: Flite.

http://www.speech.cs.cmu.edu/flite/

58. Almeida, Francisco et al. Introducción a la programación paralela. Paraninfo,

2008.

59. IEEE POSIX y The Open Group. Página principal.

http://posixcertified.ieee.org/

60. OpenMP. The OpenMP API Specification for Parallel Programming.

http://openmp.org/wp/