“estudio e implementación - dinel.us.es · proyecto final de carrera “estudio e...

158
Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth” Autor: José María Hinojo Montero Tutor: Federico José Barrero García

Upload: lamdat

Post on 02-Dec-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

Proyecto Final de Carrera

“Estudio e implementación

de técnicas de localización

basadas en redes de

sensores sobre tecnología

Bluetooth”

Autor: José María Hinojo Montero

Tutor: Federico José Barrero García

Page 2: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”
Page 3: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

1

Índice de contenidos

ÍNDICE DE CONTENIDOS ........................................................................................................... 1

ÍNDICE DE FIGURAS .................................................................................................................. 4

ÍNDICE DE TABLAS .................................................................................................................... 6

ÍNDICE DE ECUACIONES ............................................................................................................ 7

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

CAPITULO 2. REVISIÓN DEL ESTADO DEL ARTE ...................................................................... 10

2.1. WSN ............................................................................................................................. 11

2.1.1. Componentes ......................................................................................................... 11

2.1.2. Arquitectura de red ................................................................................................ 12

2.1.2.1. Redes en estrella ........................................................................................................... 12

2.1.2.2. Redes Mesh ................................................................................................................... 13

2.1.2.3. Redes Híbridas ............................................................................................................... 14

2.1.3. Área de aplicaciones .............................................................................................. 15

2.1.3.1. Detección de eventos .................................................................................................... 16

2.1.3.2. Estimación de procesos aleatorios temporales y espaciales ......................................... 17

2.1.3.3. Ejemplos de usos ........................................................................................................... 18

2.2. TECNOLOGÍA .................................................................................................................... 19

2.2.1. Bluetooth................................................................................................................ 20

2.2.2. ZigBee ..................................................................................................................... 21

2.2.3. RFID ........................................................................................................................ 22

2.2.4. Ultra Wide Band ..................................................................................................... 24

2.2.5. Wi-fi ........................................................................................................................ 25

2.2.5.1. 802.11a ......................................................................................................................... 25

2.2.5.2. 802.11b ......................................................................................................................... 26

2.2.5.3. 802.11g.......................................................................................................................... 26

2.2.5.4. 802.11n ......................................................................................................................... 27

2.2.6. WiMAX ................................................................................................................... 28

2.2.7. Comparativa ........................................................................................................... 29

2.3. ESTIMACIÓN DE LA POSICIÓN ............................................................................................... 32

2.3.1. Parámetros relacionados ....................................................................................... 33

2.3.1.1. Potencia de señal recibida ............................................................................................ 34

2.3.1.2. Ángulo de llegada .......................................................................................................... 35

2.3.1.3. Tiempo de llegada ......................................................................................................... 36

2.3.1.4. Diferencia de tiempos de llegada .................................................................................. 37

2.3.2. Técnicas para estimar la posición ........................................................................... 38

Page 4: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

2

2.3.2.1. Triangulación ................................................................................................................. 38

2.3.2.1.1. Lateración .............................................................................................................. 38

2.3.2.1.2. Angulación ............................................................................................................. 40

2.3.2.1.3. Proximidad ............................................................................................................ 41

2.3.2.2. Análisis de escenas ........................................................................................................ 41

2.4. ELECCIÓN TECNOLÓGICA ..................................................................................................... 42

CAPÍTULO 3 BLUETOOTH COMO TECNOLOGÍA INALÁMBRICA ............................................... 44

3.1. DESCRIPCIÓN GENERAL ...................................................................................................... 44

3.2. ARQUITECTURA BLUETOOTH ............................................................................................... 47

3.2.1. Radio ...................................................................................................................... 48

3.2.2. Banda Base ............................................................................................................. 50

3.2.2.1. Enlaces físicos ................................................................................................................ 50

3.2.2.2. Enlaces físicos ................................................................................................................ 53

3.2.2.3. Transportes lógico ......................................................................................................... 54

3.2.2.4. Enlaces lógicos .............................................................................................................. 56

3.2.2.5. Código de acceso ........................................................................................................... 56

3.2.3. Operación del controlador de enlaces ................................................................... 58

3.2.4. LMP ........................................................................................................................ 67

3.2.4.1. Modos de operación ..................................................................................................... 70

3.2.5. HCI .......................................................................................................................... 72

3.2.5.1. Comandos HCI ............................................................................................................... 73

3.2.6. L2CAP ..................................................................................................................... 74

3.2.6.1. Modo de operación de L2CAP ....................................................................................... 77

3.3. PERFILES ......................................................................................................................... 79

3.3.1. RFCOMM ................................................................................................................ 81

3.3.1.1. Señales de control ......................................................................................................... 83

3.3.1.2. Emulación Módem-Null................................................................................................. 83

3.3.1.3. Puerto serie emulado .................................................................................................... 84

CAPÍTULO 4. DESCRIPCIÓN DE LA ARQUITECTURA PROPUESTA. ............................................. 85

4.1. HARDWARE ..................................................................................................................... 85

4.1.1. Nodo principal ........................................................................................................ 86

4.1.2. Nodo de localización .............................................................................................. 88

4.1.2.1. Microcontrolador ATMEGA 8 ........................................................................................ 89

4.1.2.2. Módulo Bluetooth Bluegiga WT12 ................................................................................ 91

4.1.2.2.1. Configuración del módulo ..................................................................................... 93

4.2. SOFTWARE ...................................................................................................................... 95

4.2.1. Aplicación principal ................................................................................................ 95

4.2.2. Firmware nodo de localización .............................................................................. 99

4.2.3. Matlab .................................................................................................................. 104

4.2.3.1. Caracterización del medio físico de propagación ........................................................ 106

Page 5: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

3

4.2.3.2. Algoritmos de estimación de posición ........................................................................ 108

4.2.3.2.1. Multilateración .................................................................................................... 108

4.2.3.2.2. Algoritmo Min-Max ............................................................................................. 111

4.2.3.2.3. Algoritmo Multilateración iterativo ..................................................................... 112

4.2.3.2.4. Aproximación mecánica. Algoritmo de Malguki .................................................. 113

CAPÍTULO 5. RESULTADOS .................................................................................................... 116

5.1. MULTILATERACIÓN .......................................................................................................... 118

5.2. MULTILATERACIÓN ITERATIVA ........................................................................................... 120

5.3. MIN-MAX ..................................................................................................................... 121

5.4. ALGORITMO DE MALGUKI ................................................................................................. 123

5.5. COMPARATIVA ............................................................................................................... 124

CAPÍTULO 6. CONCLUSIONES ................................................................................................ 127

6.1. FUTURAS LÍNEAS DE TRABAJO ............................................................................................ 128

BIBLIOGRAFÍA ....................................................................................................................... 130

APÉNDICE A. PSEUDOCÓDIGOS DEL NODO DE LOCALIZACIÓN ............................................. 133

APÉNDICE B. CÓDIGO FUENTE DEL NODO DE LOCALIZACIÓN .............................................. 141

APÉNDICE C. CÓDIGO FUENTE DE LA APLICACIÓN PRINCIPAL. ............................................. 151

Page 6: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

4

Índice de Figuras

FIGURA 2.1.1. REPRESENTACIÓN DE UNA RED WSN MULTISALTO TÍPICA. .................................................................. 11

FIGURA 2.1.2. REPRESENTACIÓN DE UNA TOPOLOGÍA EN ESTRELLA EN REDES WSN. .................................................... 12

FIGURA 2.1.3. REPRESENTACIÓN DE UNA TOPOLOGÍA MESH EN REDES WSN ............................................................. 14

FIGURA 2.1.4. REPRESENTACIÓN DE UNA TOPOLOGÍA HÍBRIDA EN REDES WSN ........................................................... 15

FIGURA 2.2.1. REPRESENTACIÓN DE LAS DIFERENTES TECNOLOGÍAS EN CUANTO A PRECISIÓN Y ESTADO DE DESARROLLO. .... 20

FIGURA 2.2.2. FUNCIONAMIENTO DE UN SISTEMA RFID CON ETIQUETA PASIVA. ......................................................... 24

FIGURA 2.3.1. REPRESENTACIÓN DE UNA ARRAY DE ANTENAS QUE DETERMINAN EL ÁNGULO DE LLEGADA. ....................... 35

FIGURA 2.3.2. EFECTOS DEL MULTITRAYECTO SOBRE LA TRANSMISIÓN DE UNA SEÑAL ................................................... 37

FIGURA 2.3.3. EJEMPLO DE TRIANGULACIÓN POR LATERACIÓN EN UNA SUPERFICIE DE 2D ............................................. 39

FIGURA 2.3.4. EJEMPLO DE TRIANGULACIÓN POR ANGULACIÓN EN UNA SUPERFICIE DE 2D ............................................ 40

FIGURA 3.1.1. PILA DE PROTOCOLOS BLUETOOTH. ................................................................................................ 47

FIGURA 3.2.1. (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 TRANSMIÓN PARA PAQUETES DE UN SOLO INTERVALO. ............... 52

FIGURA 3.2.2. 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. ........................... 53

FIGURA 3.2.3. (A) TEMPORIZACIÓN DE UN PAQUETE DE RESPUESTA AL INQUIRY CON ÉXITO EN LA PRIMERA MITAD DEL

INTERVALO. (B) TEMPORIZACIÓN DE UN PAQUETE DE RESPUESTA AL INQUIRY CON ÉXITO EN LA SEGUNDA MITAD DEL

INTERVALO. ........................................................................................................................................... 53

FIGURA 3.2.4. (A) ESTRUCTURA DE UN PAQUETE GENÉRICO PARA EL MODO BÁSICO Y (B) ESTRUCTURA DE UN PAQUETE

GENÉRICO PARA EL MODO EDR. ................................................................................................................ 56

FIGURA 3.2.5. FORMATO DEL CÓDIGO DE ACCESO. ................................................................................................ 57

FIGURA 3.2.6. PREÁMBULO. ............................................................................................................................. 57

FIGURA 3.2.7. (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. ............................................................................................................................ 58

FIGURA 3.2.8. DIAGRAMA DE ESTADOS DEL CONTROLADOR DE ESTADOS. ................................................................... 58

FIGURA 3.2.9. REPRESENTACIÓN DETALLADA DEL ESTADO CONNECTION. ................................................................... 60

FIGURA 3.2.10. ESQUEMA TEMPORAL DEL FUNCIONAMIENTO DEL MODO SNIFF. ......................................................... 61

FIGURA 3.2.11. INTERCAMBIO DE MENSAJES DURANTE LA FASE INICIAL DE LA CONEXIÓN CUANDO UN ESCLAVO RESPONDE UN

PRIMER MENSAJE PAGE. ........................................................................................................................... 62

FIGURA 3.2.12. TEMPORIZACIÓN DE LOS PAQUETES DE RESPUESTAS EN EL SUBESTADO PAGE. ........................................ 64

FIGURA 3.2.13. FORMATO DEL PAQUETE FHS. ..................................................................................................... 65

FIGURA 3.2.14. OPERACIÓN DEL PROTOCOLO DE GESTIÓN DE ENLACES...................................................................... 68

FIGURA 3.2.15. ESTRUCTURA DE LAS PDU’S INTERCAMBIADAS POR LOS GESTORES DE ENLACE. ...................................... 69

Page 7: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

5

FIGURA 3.2.16. INFORMACIÓN GENERAL DE EXTREMO A EXTREMO DE LAS CAPAS DE SOFTWARE INFERIORES UTILIZADAS EN LA

TRANSFERENCIA DE DATOS. ....................................................................................................................... 73

FIGURA 3.2.17. UBICACIÓN DE L2CAP DENTRO DE LA TORRE DE PROTOCOLOS DE BLUETOOTH...................................... 75

FIGURA 3.2.18. DIAGRAMA DE BLOQUES DEL PROTOCOLO L2CAP. .......................................................................... 75

FIGURA 3.2.19. EJEMPLO DEL USO Y SIGNIFICADO DEL CAMPO CID. ......................................................................... 78

FIGURA 3.3.1. MODELO DE REFERENCIA RFCOMM.............................................................................................. 82

FIGURA 4.1.1. REPRESENTACIÓN ORIENTATIVA DEL SISTEMA PROPUESTO. .................................................................. 86

FIGURA 4.1.2. FOTOGRAFÍA DE LA TARJETA PC/104+ USADA COMO NODO PRINCIPAL. ................................................ 87

FIGURA 4.1.3. FOTOGRAFÍA DE UN NODO DE LOCALIZACIÓN. ................................................................................... 88

FIGURA 4.1.4. DIAGRAMA DE BLOQUES DEL NODO DE LOCALIZACIÓN ........................................................................ 89

FIGURA 4.1.5. DIAGRAMAS DE BLOQUE DEL ATMEGA8. ....................................................................................... 90

FIGURA 4.1.6. UBICACIÓN DE IWRAP EN LA TORRE DE PROTOCOLOS BLUETOOTH. ....................................................... 92

FIGURA 4.1.7.CCOMUNICACIÓN HOST-IWRAP-HOST. .......................................................................................... 94

FIGURA 4.1.8. COMUNICACIÓN HOST-IWRAP-DISPOSITIVO REMOTO Y VICEVERSA. .................................................... 94

FIGURA 4.2.1. PASO DE MENSAJES ..................................................................................................................... 96

FIGURA 4.2.2. FORMATO DEL FICHERO DE ALMACENAMIENTO. ................................................................................ 97

FIGURA 4.2.3. DIAGRAMA DE FLUJOS DE LA APLICACIÓN PRINCIPAL. .......................................................................... 98

.FIGURA 4.2.4 DIAGRAMA DE FLUJO DE LAS FUNCIONES SECUNDARIAS DE LA APLICACIÓN PRINCIPAL................................ 99

FIGURA 4.2.5. MÁQUINA DE ESTADOS DEL NODO DE LOCALIZACIÓN. ....................................................................... 101

FIGURA 4.2.6 PROBABILIDAD DE DESCUBRIR A TODOS LOS DISPOSITIVOS EN FUNCIÓN DE LA LONGITUD DEL PROCESO DE

DESCUBRIMIENTO. ................................................................................................................................ 102

FIGURA 4.2.7. REPRESENTACIÓN GRÁFICA DEL MÉTODO MULTILATERACIÓN. ............................................................ 109

FIGURA 4.2.8. CONSTRUCCIÓN DEL RECTÁNGULO FRONTERA. ................................................................................ 111

FIGURA 4.2.9. DEFINICIÓN DE LA FUERZA ELÁSTICA EN EL OBJETIVO A LOCALIZAR EN BASE A DOS NODOS DE LOCALIZACIÓN.114

FIGURA 4.2.10. EJEMPLO DE UN VALOR MAL AJUSTADO Y DE CÓMO EL ALGORITMO NO PUEDE ALCANZAR EL MÍNIMO DE LA

FUNCIÓN DE ERROR. .............................................................................................................................. 115

FIGURA 5.1 FOTOGRAFÍA DE LA SALA UTILIZADA PARA LA PRUEBA. .......................................................................... 116

FIGURA 5.2. REPRESENTACIÓN ESQUEMÁTICA DE LA INSTALACIÓN DEL SISTEMA EN LA SALA. ........................................ 117

FIGURA 5.1.1. RESULTADOS OBTENIDOS DEL PROCESO DE LOCALIZACIÓN. ................................................................ 119

FIGURA 5.1.2. REPRESENTACIÓN DEL ERROR CUADRÁTICO MEDIO. ......................................................................... 120

FIGURA 5.2.1. RESULTADOS OBTENIDOS DEL PROCESO DE LOCALIZACIÓN. ................................................................ 120

FIGURA 5.2.2. REPRESENTACIÓN DEL ERROR CUADRÁTICO MEDIO. ......................................................................... 121

FIGURA 5.3.1. RESULTADOS OBTENIDOS DEL PROCESO DE LOCALIZACIÓN. ................................................................ 122

FIGURA 5.3.2. REPRESENTACIÓN DEL ERROR CUADRÁTICO MEDIO. ......................................................................... 123

FIGURA 5.4.1. RESULTADOS OBTENIDOS DEL PROCESO DE LOCALIZACIÓN. ................................................................ 123

FIGURA 5.4.2. REPRESENTACIÓN DEL ERROR CUADRÁTICO MEDIO. ......................................................................... 124

FIGURA 5.5.1. REPRESENTACIÓN CONJUNTA DE LOS ERRORES CUADRÁTICOS MEDIOS DE LOS DISTINTOS ALGORITMOS ....... 125

Page 8: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

6

Índice de tablas

TABLA 2.2.1. COMPARATIVA ENTRE LAS DIFERENTES VERSIONES DE LA ESPECIFICACIÓN WI-FI. .............................. 28

TABLA 2.2.2. TABLA COMPARATIVA DE LAS DIFERENTES TECNOLOGÍAS INALÁMBRICAS. ........................................ 30

TABLA 3.2.1. ESPECIFICACIÓN DE LAS CLASES DE DISPOSITIVOS Y SUS CARACTERÍSTICAS. ....................................... 50

TABLA 3.2.2. RESUMEN DE LOS TIPOS DE CÓDIGOS DE ACCESO DIFERENTES ESPECIFICADOS EN LA NORMA. ............... 57

TABLA 3.2.3. COMANDOS HCI: AGRUPACIÓN Y DESCRIPCIÓN. ........................................................................ 74

TABLA 3.2.4. DESCRIPCIÓN DE LOS DIFERENTES CID QUE SE PUEDEN UTILIZAR.................................................... 78

TABLA 3.3.1. PÉRFILES Y PROTOCOLOS SOPORTADOS POR LA ESPECIFICACIÓN 2.1 DE BLUETOOTH. ......................... 81

TABLA 3.3.2. LÍNEAS RS-232 EMULADAS EN RFCOMM. .............................................................................. 83

TABLA 3.3.3. CORRESPONDENCIA DE LAS SEÑALES DE CONTROL RECOGIDAS EN LA NORMA TS07.10 Y LAS SEÑALES DE

CONTROL RS-232. ................................................................................................................................. 83

TABLA 4.1.1. FORMATO DE TRAMA EN EL MODO MULTIPLEXADO. .................................................................... 93

TABLA 4.2.1. COMANDOS DEL PROTOCOLO UTILIZADO ENTRE EL NODO PRINCIPAL Y LOS NODOS DE LOCALIZACIÓN. ... 97

TABLA 5.1. UBICACIÓN DE LOS DIFERENTES NODOS EN LA HABITACIÓN UTILIZADA. ............................................ 117

TABLA 5.2. COORDENADAS DE LOS DIFERENTES PUNTOS A LOCALIZAR UTILIZADOS DURANTE LA PRUEBA ................ 118

TABLA 5.5.1. VALORES MEDIOS DEL ERROR CUADRÁTICO MEDIO DE CADA ALGORITMO. ..................................... 126

Page 9: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

7

Índice de ecuaciones

ECUACIÓN 2.1.1.NÚMERO DE NODOS PARA UNA RED DE UN SOLO SALTO Y UN SUMIDERO. ........................................... 13

ECUACIÓN 2.3.1. ECUACIÓN DE FRIIS. ................................................................................................................ 34

ECUACIÓN 2.3.2. ECUACIÓN DE PROPAGACIÓN QUE CONTEMPLA EL CANAL DE PROPAGACIÓN ........................................ 34

ECUACIÓN 2.3.3. EXPRESIONES PARA DETERMINAR LA DISTANCIA EN FUNCIÓN DEL ÁNGULO DE LLEGADA. ........................ 36

ECUACIÓN 2.3.4. EXPRESIÓN DE LA SEÑAL RECIBIDA. ............................................................................................. 36

ECUACIÓN 3.2.1. EXPRESIÓN QUE PERMITE HALLAR LAS FRECUENCIAS CENTRALES DE LOS CANALES BLUETOOTH. ............... 48

ECUACIÓN 3.2.2. EJEMPLO DE UN ESQUEMA DE MULTIPLEXACIÓN POR DIVISIÓN EN EL TIEMPO EN UNA COMUNICACIÓN

BLUETOOTH. .......................................................................................................................................... 49

ECUACIÓN 4.2.1. EXPRESIÓN PARA EL CÁLCULO DEL ERROR CUADRÁTICO MEDIO. ...................................................... 104

ECUACIÓN 4.2.2. ECUACIÓN DE PROPAGACIÓN QUE CONTEMPLA EL CANAL DE PROPAGACIÓN ...................................... 105

ECUACIÓN 4.2.3. EXPRESIÓN DEL ERROR COMETIDO EN EL PROCESO DE CALIBRACIÓN. ............................................... 107

ECUACIÓN 4.2.4. DEFINICIÓN DE LA NORMA ESPECTRAL DE UNA MATRIZ DADA. ........................................................ 107

ECUACIÓN 4.2.5. DESARROLLO MATEMÁTICO EFECTUADO PARA DERIVAR LA EXPRESIÓN DE LA MATRIZ DE TRANSFORMACIÓN T

......................................................................................................................................................... 108

ECUACIÓN 4.2.6. CÁLCULO DEL VECTOR DE DISTANCIAS ESTIMADO EN BASE A LA MATRIZ DE TRANSFORMACIÓN T. .......... 108

ECUACIÓN 4.2.7. EXPRESIÓN DEL ERROR COMETIDO ENTRE LA POSICIÓN REAL Y EL NODO I-ÉSIMO. ............................... 109

ECUACIÓN 4.2.8. MANIPULACIÓN ALGEBRAICA DE LA EXPRESIÓN DEL ERROR. ........................................................... 110

ECUACIÓN 4.2.9. EXPRESIÓN FINAL DEL ALGORITMO MULTILATERACIÓN. ................................................................. 110

ECUACIÓN 4.2.10. DESARROLLO MATEMÁTICO PARA LA OBTENCIÓN DE LA POSICIÓN ESTIMADA. .................................. 110

ECUACIÓN 4.2.11. EXPRESIÓN FINAL DE LA POSICIÓN ESTIMADA. ........................................................................... 110

ECUACIÓN 4.2.12. EXPRESIÓN DE LAS COORDENADAS DE LOS RECTÁNGULOS FRONTERAS. ........................................... 111

ECUACIÓN 4.2.13. COORDENADAS DEL RECTÁNGULO INTERSECCIÓN....................................................................... 111

ECUACIÓN 4.2.14. EXPRESIÓN DEL ERROR PARCIAL RELATIVO AL NODO DE LOCALIZACIÓN I-ÉSIMO. ............................... 112

ECUACIÓN 4.2.15. EXPRESIÓN DEL ERROR GLOBAL. ............................................................................................. 112

ECUACIÓN 4.2.16. DEFINICIÓN DE LA MATRIZ DE DESPLAZAMIENTO . ................................................................... 112

ECUACIÓN 4.2.17. DEFINICIÓN DE LA MATRIZ B. ................................................................................................. 113

ECUACIÓN 4.2.18. CÁLCULO DE LAS DERIVADAS PARCIALES DE LA MATRIZ B. ............................................................ 113

ECUACIÓN 4.2.19. EXPRESIÓN FINAL DE LA POSICIÓN ESTIMADA. ........................................................................... 113

ECUACIÓN 4.2.20. DEFINICIÓN DE LA FUERZA ELÁSTICA Y DEL CAMPO ESCALAR . ........................................ 114

Page 10: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

8

Capítulo 1.

Introducción

Los sistemas de localización son una de las aplicaciones más interesantes de las redes

de sensores inalámbricas, siendo cada vez más demandadas debido a la proliferación de los

sistemas de comunicaciones móviles y dispositivos personales portátiles. En este tipo de

aplicaciones, las redes de sensores recogen del entorno una serie de parámetros físicos que les

permiten posicionar los dispositivos que se encuentran dentro de su alcance. Estas redes son

complementarias a los sistemas de navegación satelitales globales como puede ser la

tecnología GPS. Esto se debe a que este tipo de sistemas sólo son válidos para entornos

exteriores ubicados en campo abierto, debido a que en zonas con sombras (aquellos lugares

donde el receptor no posee visión directa con el emisor, como por ejemplo un receptor GPS

que se ubica en una calle con edificios elevados) o en interiores dejan de funcionar por falta de

visión directa con los satélites.

En esta línea, este proyecto pretende definir un sistema cuyo objetivo final sea la

localización y determinación de la posición de un usuario que porta un terminal móvil

genérico. Con este objetivo, será necesario un estudio de las diferentes tecnologías

inalámbricas existentes en la actualidad así como del funcionamiento de las redes de sensores

inalámbricas. Tras ello, se deberá proceder a comprender y resolver la problemática asociada a

la elección arquitectónica y tecnológica del sistema. Finalmente, como último paso tras definir

los componentes del sistema, se tendrán que analizar los diferentes algoritmos de localización

existentes para determinar aquel que mejor resultado da.

Atendiendo a los objetivos que se pretenden cubrir en este proyecto, el presente

documento se organiza de la siguiente manera:

Capítulo 1. Se presenta el interés de la localización en exteriores y se definen los

objetivos y estructura del presente proyecto.

Page 11: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

9

Capítulo 2. En él se efectuar una revisión del estado del arte a nivel de redes de

sensores inalámbricas, de tecnologías inalámbricas y de técnicas de medida y

estimación de la posición.

Capítulo 3. Se corresponde con análisis de la tecnología inalámbrica seleccionada,

en concreto, Bluetooth. Se realiza una descripción de la versión2.1. de la

especificación, incidiendo de manera detallada en aquellos aspectos que serán

útiles para la implementación del sistema.

Capítulo 4. Este capítulo resume la arquitectura del sistema propuesto tanto a nivel

hardware como software. En él se describirán los componentes del sistema y la

misión que deberán desempeñar dentro del mismo. Además, se realiza una

descripción matemática y algorítmica de las diferentes técnicas de localización que

se van a estudiar.

Capítulo 5. Recoge los resultados obtenidos de una prueba de funcionamiento del

sistema.

Capítulo 6. En él se describirán las conclusiones y líneas futuras de investigación y

mejora del sistema propuesto.

Por último, se detallará toda la bibliografía utilizada para el desarrollo de este

proyecto.

Page 12: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

10

Capitulo 2.

Revisión del

estado del arte

En este capítulo se pretende dar una visión general de las diferentes tecnologías

usadas en redes inalámbricas de sensores, así como los diferentes algoritmos utilizados para la

localización de un nodo en el interior de una red de sensores. Para ello, será necesario

familiarizarse con el concepto de red inalámbrica de sensores (en inglés, Wireless Sensors

Network, WSN). Este debe ser el punto de partida puesto que permitirá formar una idea de los

requisitos necesarios para poder llevar a cabo la localización de un sujeto en el interior de

edificios.

Por su parte, el desarrollo tecnológico asociado a las comunicaciones inalámbricas ha

sido muy importante en los últimos años, existiendo multitud de protocolos que han sido

adoptados como estándares internacionales por diversos organismos como el IEEE, ZigBee

Alliance o Bluetooth. Esto hace necesario un estudio previo de cada una de las tecnologías

para poder determinar las principales características de las mismas y determinar de esta

manera cuál se adapta mejor a las necesidades establecidas.

Finalmente, la localización se corresponde con un tema ampliamente estudiado en la

literatura científica y, en concreto, la determinación de la posición de un dispositivo en el

interior de una red de sensores inalámbricos. Con esta finalidad, se encuentran diferentes

algoritmos que hacen uso de propiedades tan diversas como la estimación de la distancia a un

nodo baliza mediante la estimación del tiempo de propagación de un dato o del nivel de

potencia recibida del terminal cuya posición queremos estimar.

Page 13: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

11

2.1. WSN

Una red de sensores (en adelante WSN, Wireless Sensor Network) puede definirse

como una red de dispositivos denominados nodos que pueden obtener una medida (nivel de

CO2 en el ambiente, la temperatura, la humedad o la potencia de señal recibida desde un

dispositivo remoto) del entorno que los rodea y comunicar dicha información tomada in situ a

un nodo remoto, cuyo nombre se denomina sumidero, a través de un enlace inalámbrico que

puede usarla localmente o transmitirla a una estación de procesamiento ubicada en otra zona

mediante el acceso a otras redes (Internet) a través de una pasarela. Es decir, una red de

sensores inalámbricos, no es más que una red compuesta por una gran cantidad de equipos

terminales que cooperan entre sí para medir y registrar algún parámetro del entorno que los

rodea para transmitirlos de forma inalámbrica a un equipo que los procesará. Estos nodos

pueden encontrarse en movimiento o estar fijados en un punto.

Figura 2.1.1. Representación de una red WSN multisalto típica.

2.1.1. Componentes

Los elementos básicos de las WSN son los nodos, los sumideros y las pasarelas, en

orden creciente de complejidad y coste. La idea de realizar los nodos de la forma más sencilla

posible radica en que el número de estos inmersos en la red de sensores puede ser muy

elevado, mucho mayor que la cantidad de sumideros y pasarelas a utilizar. Por tanto, se hace

necesario intentar contener el precio y tamaño de los nodos lo más bajo posible, reduciendo al

mínimo su coste de producción y la circuitería necesaria en su fabricación.

En cuanto a la estructura de los nodos, estos están compuestos en la mayoría de las

situaciones por un microcontrolador que se encarga de dotar de una cierta inteligencia al

Page 14: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

12

dispositivo, un módulo de memoria donde almacenar los información registrada del entorno,

el sensor con la electrónica necesaria para poder realizar el acondicionamiento de la señal

obtenida y un transceptor de radiofrecuencia que dote de una interfaz inalámbrica que

permita al nodo interactuar con su sumidero. Además de los componentes descritos, será

necesaria una etapa de alimentación que suministre la energía necesaria para el correcto

funcionamiento de los diferentes componentes.

2.1.2. Arquitectura de red

En cuanto a la topología de la red podemos distinguir tres casos:

Redes en estrella

Redes Mesh

Redes híbridas

2.1.2.1. Redes en estrella

Las redes en estrella se corresponden con una topología de red compuesta por varios

nodos y un único sumidero, también denominado estación base, cuya misión es recolectar la

información procedente de los sensores. Los nodos remotos pueden solamente enviar o recibir

información del nodo sumidero, prohibiendo el intercambio de mensajes entre los propios

nodos. Por tanto, se corresponde con una red de un único salto, puesto que todos los nodos

están comunicados directamente con la estación base.

Figura 2.1.2. Representación de una topología en estrella en redes WSN.

En función de que la densidad de sensores sea elevada o no, la topología en estrella

podrá ser sostenible o no. El número de nodos que pueda soportar la red se verá limitado por

el ancho de banda del enlace físico disponible y el volumen de información a gestionar. Para

Page 15: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

13

ello, basta realizar un pequeño cálculo que permita realizar una estimación del número de

nodos que puede soportar cada red. Si se denota por N el número de nodos sensores de una

red, Rb la tasa de transferencia soportada por el enlace inalámbrico establecido, Tr al tiempo

que se tarda en obtener una medida del entorno y D al tamaño promedio en bytes de los

paquetes generados por la capa de aplicación, se tiene que cumplir la siguiente relación para el

caso de un solo salto

Ecuación 2.1.1.Número de nodos para una red de un solo salto y un sumidero.

En ella se pone de manifiesto que el volumen de datos que se genera en la red debe

ser inferior a la capacidad neta del enlace, es decir, sin tener en cuenta las cabeceras añadidas

por los diferentes protocolos existentes entre el nivel físico y la capa de aplicación.

Por su parte, la principal ventaja de este tipo de topologías es su simplicidad, puesto

que los nodos remotos pueden ser muy simples así como el software de control y gestión de

las comunicaciones. Además, otra de las ventajas que poseen estas redes son que al permitir

únicamente las comunicaciones entre el nodo remoto y el sumidero, los sensores pueden

encontrarse en un modo de bajo consumo hasta que sean reclamados por su estación base.

Esto permite ahorrar en consumo, aspecto muy importante para las redes de sensores

inalámbricas. Como desventajas cabe mencionar la difícil escalabilidad de la red debido al

número limitado de nodos remotos que se pueden conectar al sumidero, así como el hecho de

que todos ellos deban estar en el rango de cobertura de la estación base. Esto se debe al

hecho de no permitirse la interacción entre los nodos remotos. La segunda gran desventaja

que posee esta arquitectura es que no resultan tan robustas como otro tipo de redes debido a

la dependencia existente del nodo sumidero. En el supuesto caso de que éste se cayese, la red

no podría operar.

2.1.2.2. Redes Mesh

Una red Mesh consiste en una arquitectura de red en la que se permite que cualquier

nodo que pertenezca a ésta pueda comunicarse con otro que esté a su alcance. Es decir, no

existe ningún tipo de restricción en el establecimiento de las comunicaciones al igual que con

el envío y recepción de información. Por tanto, en este tipo de topologías se permiten

comunicaciones multisalto que permiten alcanzar el nodo sumidero aunque el nodo remoto

Page 16: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

14

no se encuentre en su radio de cobertura. En esta situación, el nodo remoto debería utilizar el

mínimo número posible de nodos intermedios hasta alcanzar un sumidero.

Figura 2.1.3. Representación de una topología Mesh en redes WSN

La gran ventaja de esta topología es la redundancia que se puede conseguir así como la

escalabilidad de la arquitectura debido a que si un nodo intermedio falla, si el nodo remoto

que desea enviar el mensaje dispone de otro nodo a su alcance podrá usar ese para enviar a

un sumidero dicho mensaje. El único requisito que debe satisfacerse es que los nodos remotos

tengan a su alcance a más nodos. Asimismo, el rango de la red se ve aumentado con creces

como consecuencia de que ya no sólo se limita al rango alcanzable por dos nodos únicamente,

sino que ahora se puede extender tanto como el administrador lo desee sin más que satisfacer

el requisito anterior.

La desventaja de las redes Mesh radica en que el incremento del número de saltos

provoca un aumento del tiempo de entrega del mensaje o la información a enviar, pudiéndose

convertir en un problema si se deben cumplir restricciones temporales muy estrictas. En

segundo lugar, se comprueba experimentalmente que el consumo de potencia de los nodos

remotos aumenta en estas situaciones.

2.1.2.3. Redes Híbridas

Se corresponde con una arquitectura que mezcla las dos topologías revisadas en los

epígrafes anteriores. En esta situación se disponen de varias estaciones bases o sumideros,

que pueden comunicarse entre ellas, y, pendiendo de éstas con una configuración en estrella,

varios nodos. En consecuencia, los nodos remotos sólo podrán interactuar con su sumidero

enviándole o recibiendo información de éste. Mientras tanto, el nodo sumidero se encargará

de controlar y gestionar la red para poder determinar aquellas estaciones bases que le pueden

Page 17: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

15

permitir alcanzar un determinado destino, bien una pasarela que comunique la red de

sensores con otra red como pueda ser Internet, por ejemplo.

Figura 2.1.4. Representación de una topología híbrida en redes WSN

Se corresponde con un escenario más general, en el que al aumentar el número de

sumideros las probabilidades de que un conjunto de nodos de la red se queden aislado del

resto es más baja que en el caso anterior para una densidad de nodos dada. Esta extensión

genérica presenta una gran escalabilidad puesto que la introducción de diversos sumideros

permite dividir en sectores la red pudiendo dar servicio a muchos más nodos. Sin embargo,

estas redes no son una extensión trivial puesto que la existencia de varios sumideros complica

los protocolos utilizados para recolectar la información procedente de los nodos.

2.1.3. Área de aplicaciones

El área de aplicación de las redes WSN es muy extenso y puede ir desde aplicaciones

industriales tales como dotar de inteligencia una fábrica que permita automatizar diversos

procesos hasta el seguimiento de objetos en el interior de edificios o supervisión de pacientes

Page 18: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

16

en sus domicilios. Por tanto, debido a la extensión de usos, se intentará agruparlos en dos

grandes categorías: la detección de sucesos y en la estimación de procesos aleatorios

temporales y espaciales.

Sin embargo, se hace necesario mencionar que las aplicaciones de seguimiento, bien

de objetos o de personas o animales, se pueden considerar un caso especial. Dependiendo de

cómo se diseñe la aplicación puede resultar un caso especial de detección de eventos o, por el

contrario, de estimación de procesos aleatorios. Si se pretende monitorizar de forma periódica

el entorno para localizar el objetivo y seguirlo, entonces se correspondería con una aplicación

del segundo tipo, puesto que se necesita estimar la posición del objetivo en el espacio. En el

supuesto caso de que el seguimiento se base únicamente en la detección del objetivo a su

paso por determinados puntos específicos indicados en el sistema (una puerta, la entrada a un

edificio o un determinado sector de una nave), entonces se correspondería con una aplicación

de tipo detección de eventos.

2.1.3.1. Detección de eventos

En la detección de sucesos se engloban todos aquellos posibles usos que se basan en el

uso de sensores para detectar un determinado suceso como puede ser un incendio, un

terremoto o un escape de gas. En este caso, los nodos remotos deben estar supervisando el

entorno hasta detectar un evento que puede ocurrir en cualquier instante de tiempo y en

cualquier punto del espacio monitorizado por la red WSN. Esto provoca que la capacidad de

computación de los nodos remotos no tenga que ser muy compleja. Su labor será comprobar

los valores obtenidos por parte del sensor con los niveles de disparo, entiéndase aquellos

valores definidos por el usuario como críticos, es decir, a partir de los cuales se consideraría

que se ha producido el suceso, y enviarlos al sumidero correspondiente.

El diseño de la red debe garantizar que el suceso esperado podrá ser detectado con

una probabilidad superior a una dada, por lo que el número de dispositivos deberá ser lo

suficientemente elevado como para poder ofrecer una determinada cobertura, pudiendo

variar en función del rango sensitivo de los nodos y del tipo de suceso. Además, se podrán usar

algoritmos de localización distribuidas para poder determinar el punto exacto donde se ha

producido el evento.

Otro asunto a tratar será la recepción de la información por parte del sumidero. En

este aspecto, se deberá tener en cuenta la probabilidad de que la información reportada

Page 19: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

17

llegue al destino. Se hace vital supervisar los asuntos de conectividad para mantenerlos bajo

control, permitiendo a los protocolos de comunicaciones diseñados alcanzar los nodos

sumideros en un tiempo especificado y con una alta probabilidad.

Por tanto, como se puede comprobar de lo descrito anteriormente, los aspectos que se

deben controlar en este tipo de aplicaciones serán:

Cobertura

Localización distribuida

Conectividad

Protocolos de comunicación

En cuanto al diseño de una red WSN con el objetivo de detectar un suceso, se deberán

especificar los siguientes requisitos como mínimo:

Probabilidad de cobertura del suceso mínima

Error de localización máximo

Probabilidad de conectividad mínima

Probabilidad de pérdidas de paquetes máxima

Retraso máximo en la entrega de los paquetes

2.1.3.2. Estimación de procesos aleatorios temporales y espaciales

En este segundo caso, el objetivo consiste en estimar un fenómeno físico o cualquier

otro proceso susceptible de ser modelado como un proceso aleatorio bidimensional,

generalmente no estacionario. Si se considera una aplicación típica, esta estará compuesta por

la recolección de datos de un determinado área de cobertura a través de los nodos remotos y

su posterior envío al sumidero que será el encargado de recolectar toda la información

recopilada por los nodos y estimar el proceso analizado.

A diferencia de la detección de eventos, el envío de la información se realiza de

manera periódica siendo la frecuencia de muestreo establecida un parámetro crítico. Si se

elige una frecuencia demasiada baja puede darse el caso de que no se pueda estimar al

proceso aleatorio debido a que éste varía muy rápidamente. Por otro lado, si la frecuencia es

demasiado alta, se estará sobrecargando la red WSN con un volumen de datos muy elevado.

Los parámetros que caracterizarán estas aplicaciones serán:

Page 20: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

18

Procesamiento de señal

Conectividad

Tiempo de sincronización

Protocolos de comunicaciones que deben minimizar el error en la estimación del

proceso aleatorio.

En consecuencia, algunos de los requisitos básicos de la estimación de procesos

aleatorios serán:

Error estimado máximo

Error de localización máximo

Probabilidad de conectividad

Probabilidad de pérdidas de paquetes máxima

2.1.3.3. Ejemplos de usos

A continuación se presentarán algunas posibles aplicaciones de las redes WSN.

a) Detección de incendios en bosques

Se trataría de una aplicación de tipo detección de eventos. En este posible uso, el

objetivo de la red sería detectar un incendio en una determinada área cubierta por los nodos y

dar una alarma que permita actuar a los cuerpos de seguridad pertinentes antes de que el

incendio sea incontrolable. La red WSN debe cubrir todas aquellas zonas susceptibles de poder

sufrir un incendio: áreas de descansos o zonas de tránsito. Cuando se registre el disparo de

una alarma en un sensor el centro de control debe ser alertado inmediatamente con los datos

obtenidos del proceso de monitorización y de la zona aproximada donde se ha generado la

alarma.

b) Monitorización de la integridad estructural

Se correspondería con un uso de tipo detección de eventos. El objetivo de la red es

estimar el estado estructural de edificios, puentes o cualquier estructura. Una red de sensores

podría detectar aquellos cambios en la estructura que puedan desencadenar una alteración de

la estructura. Desde el punto de vista del usuario, el sistema podría valorar el intervalo de

tiempo transcurrido y la gravedad de los cambios. El intervalo de tiempo daría una idea de

Page 21: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

19

cómo de rápido suceden los cambios en la estructura y la gravedad, representaría cómo de

severos resultan dichos cambios.

c) Salud

En esta situación se podrían tener aplicaciones como la monitorización de pacientes

graves o el dotar de un sistema de cuidados continuos. En ambas situaciones se estaría en una

aplicación de estimación de procesos aleatorios. La idea sería medir periódicamente las

constantes vitales del paciente o algún parámetro de análisis como el azúcar y transmitirlos a

una estación base para generar una acción en función de los resultados obtenidos tras el

procesamiento de la información recibida.

2.2. Tecnología

En la actualidad, el número de tecnologías inalámbricas a utilizar en un sistema de

localización en entornos interiores es muy elevado a diferencia de lo que sucede en la

localización y el posicionamiento en exteriores. Para esta finalidad, el sistema de

posicionamiento global, conocido por sus siglas en inglés GPS (Global Posicionament 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. Por esta razón es necesario

recurrir a otras tecnologías inalámbricas como puede ser ZigBee, Bluetooth o Wifi. 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, del grado de precisión que se necesite conocer la situación de

un determinado objetivo. En general, cuanto mayor sea el grado de precisión que se requiera,

mayor deberá ser el gasto en infraestructura, puesto que se requerirá un mayor despliegue de

sensores.

Page 22: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

20

Figura 2.2.1. Representación de las diferentes tecnologías en cuanto a precisión y estado de desarrollo.

2.2.1. Bluetooth

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

radiofrecuencia, de bajo coste y bajo consumo energético. 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 miembros del Bluetooth SIG permitió una rápida

aceptación por parte de los fabricantes; así como la compatibilidad entre dispositivos de los

Page 23: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

21

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.2.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. 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 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:

Page 24: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

22

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.2.3. RFID

La tecnología RFID (RadioFrequency 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. 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.

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.

Page 25: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

23

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 (procede de la nomenclatura inglesa) 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.

Page 26: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

24

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

2.2.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. 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.

Page 27: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

25

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 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.2.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:

2.2.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.

Page 28: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

26

2.2.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.2.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.

Page 29: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

27

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.2.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.

Page 30: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

28

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.1. Comparativa entre las diferentes versiones de la especificación Wi-fi.

2.2.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, 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:

Page 31: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

29

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 cabo la comunicación, provocando el

encarecimiento de la instalación al tener que aumentar el número de estaciones que

coloquemos.

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 cocanal 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,

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.2.7. 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.

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

Page 32: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

30

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.2.2. Tabla comparativa de las diferentes tecnologías inalámbricas.

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 de 2,4 GHz.

o Puede operar a una distancia de entre 10 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

Page 33: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

31

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.

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 preciso, 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.

Page 34: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

32

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.

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.

2.3. Estimación de la posición

La estimación de la posición a partir de una red de sensores inalámbricos es un área de

conocimiento importante en la actualidad, se involucran diferentes áreas de estudio como el

Page 35: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

33

procesamiento de señal, algoritmia o desarrollo de protocolos, y de gran atractivo

investigador, debido al amplio desarrollo tecnológico existente que ha permitido acelerar el

crecimiento de este tipo de redes rápidamente.

La capacidad de poder localizar un objetivo dentro de una red WSN es una

característica altamente deseable puesto que en aquellos entornos susceptibles de ser

monitorizados o vigilados, puede permitir generar una acción de control o una actuación con

una mayor rapidez, precisión y eficacia ya que se pueden centrar todas estas medidas en un

punto concreto y no en un área de terreno.

Por su parte, los algoritmos de localización en las redes de sensores, generalmente,

infieren la posición del objetivo a partir del conocimiento de las posiciones absolutas de unos

pocos nodos y de ciertas medidas tomadas entre dichos nodos. Algunas de estas medidas

pueden ser la diferencia de tiempos existente entre que se envía un tren de pulsos al objetivo

y éste lo devuelve, o el nivel de potencia de la señal recibida. En este punto, cabe mencionar

que aquellos nodos cuya información de localización es conocida se denominan balizas, en la

literatura inglesa se puede encontrar bajo el nombre de anchors, haciendo referencia a que se

corresponden con nodos anclados en el sistema de referencia y cuya posición no varía. El

mecanismo para determinar la información de localización puede ser tan variado como el uso

de sistemas GPS, siempre y cuando la baliza se encuentre en un punto ubicado en el exterior, o

mediante la instalación de las mismas en puntos ubicados en un sistema de coordenadas

definido por el usuario.

2.3.1. Parámetros relacionados

La señal recibida presenta una serie de parámetros característicos que pueden ser

susceptibles de utilizarse para extraer información sobre la localización del nodo cuya posición

se desconoce. Estos parámetros están relacionados con la energía, el retardo o la dirección de

la señal.

Se describirán los siguientes parámetros:

Potencia de señal recibida

Ángulo de llegada

Tiempo de llegada

Diferencia de tiempos de llegada

Page 36: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

34

2.3.1.1. Potencia de señal recibida

La potencia de señal recibida o, por sus siglas inglesas, RSS (Received Signal Strength)

se corresponde con una medida de la potencia de señal presente en el receptor tras la

correspondiente emisión del transmisor. Por tanto, conocida la potencia de transmisión y la

potencia de recepción se puede realizar una estimación de la distancia existente entre ambos a

través del modelo de propagación. Éste modela las pérdidas sufridas por la señal al viajar por

el medio.

En el espacio libre, el RSS varia con el inverso al cuadrado de la distancia que separa el

transmisor del receptor. Si se denota por a la potencia recibida, ésta se puede relacionar

con la distancia d a través de la ecuación de Friis

Ecuación 2.3.1. Ecuación de Friis.

Donde es la potencia transmitida, es la ganancia de la antena de transmisión,

es la ganancia de la antena de recepción y es la longitud de onda de la señal transmitida en

metros.

No obstante, este cálculo supone una idealización debido a que la señal transmitida se

ve afectada por reflexiones, difracciones, desvanecimientos, multitrayectos, atenuaciones y

dispersiones. Por tanto, el valor RSS de la señal se hace dependiente del entorno por donde se

propaga. No obstante, en la comunidad científica está aceptado en base a evidencias empíricas

que parece razonable modelar el RSS para cualquier valor de la distancia en una localización

particular como una variable aleatoria distribuida logarítmico-normal con un valor medio

dependiente de la distancia. En base a este modelo, la ecuación de propagación resultante

quedaría como:

Ecuación 2.3.2. Ecuación de propagación que contempla el canal de propagación

Donde es un valor de potencia de referencia conocida en dBm a una

distancia desde el transmisor, es el exponente de pérdidas en el trayecto que mide el

ratio en el que el RSS disminuye con la distancia y su valor depende del entorno de

Page 37: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

35

propagación específico, es una variable aleatoria gaussiana con media acero y desviación

y registra el efecto aleatorio de las zonas sombreadas, es decir, de las zonas carentes de

cobertura.

2.3.1.2. Ángulo de llegada

Este parámetro expresa el ángulo con el que el nodo receptor recibe la señal

procedente del emisor. Para poder utilizarlo con el fin de localizar algún objetivo, es necesario

disponer de un array de antenas que permitan determinar los diferentes ángulos con los que la

señal se recibe. Este hecho permitirá trazar las líneas rectas indicadoras de la dirección de

procedencia de la señal. De tal forma que el punto de intersección de todas ellas darán el

punto del nodo a localizar.

Para ello, es necesario realizar una observación de la diferencia en los tiempos de

llegada en los diferentes elementos de la antena de geometría conocida para hallar el ángulo.

Figura 2.3.1. Representación de una array de antenas que determinan el ángulo de llegada.

La señal incidente en cada uno de los elementos del array de antenas recorre una

distancia diferente y, por lo tanto, el tiempo de llegada será distinto permitiendo determinar el

ángulo de llegada. Analíticamente supone aplicar una sencilla regla de trigonometría:

Page 38: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

36

Ecuación 2.3.3. Expresiones para determinar la distancia en función del ángulo de llegada.

Donde d es la distancia adicional que recorre la señal al llegar a cada elemento del

array. Puesto que la diferencia de tiempos existente entre una antena y su vecina se

corresponde con

siendo c la velocidad de la luz. Por tanto, el ángulo de llegada

será

.

2.3.1.3. Tiempo de llegada

Se corresponde con el tiempo que tarda una señal, generada en el transmisor, en

alcanzar el receptor y viceversa. Este tiempo se puede usar para realizar una estimación de la

distancia existente entre ambos dispositivos.

Un factor importante a tener en cuenta en este tipo de parámetros, es la necesidad de

mantener una base de tiempos común que permita conocer el instante en el que se inició la

transmisión. Por este motivo, un requisito imprescindible es la sincronización de la red, de tal

forma que todos los nodos estén perfectamente sincronizados con el nodo emisor, o bien,

sean capaces de intercambiar la información de temporización pertinente mediante algún

protocolo.

A la hora de implementar este tipo de técnicas se hace uso de correladores o filtros

adaptativos. Si se considera una señal transmitida , la señal que llegará al receptor será:

Ecuación 2.3.4. Expresión de la señal recibida.

Donde es el tiempo de llegada, es decir, el tiempo que ha tarda en propagarse la

señal desde el transmisor hasta el receptor, y es el ruido asociado al canal que puede

modelarse como un ruido blanco y gaussiano. En el caso del correlador, el receptor hace la

correlación de la señal con una señal patrón local para diversos retardos ,

seleccionando el que provoca el valor máximo de ésta.

Page 39: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

37

Por su parte, hay que considerar que al tratar entornos reales existe el problema del

multitrayecto y, por tanto, el patrón a usar debería considerar todos los caminos de señal

incidentes en el receptor. Al no ser posible conocer a priori todos ellos, los resultados para

determinados entornos pueden ser muy imprecisos. Para conseguir aumentar la precisión de

este tipo de medidas, se usa lo que se denomina detección del primer camino, que consisten

en usar la señal que antes llega al nodo destino, en vez de la que llega con mayor potencia.

Figura 2.3.2. Efectos del multitrayecto sobre la transmisión de una señal

2.3.1.4. Diferencia de tiempos de llegada

Este parámetro se basa en la medida de la diferencia entre los tiempos de llegada de la

señal procedente del objetivo a localizar de las diferentes balizas estáticas que permiten

calcular la posición (o el tiempo de llegada de la señal emitida por las estaciones fijas al

dispositivo móvil, en el caso de que la localización esté asistida por un terminal). Puesto que la

curva cuyos puntos satisfacen la condición de que su distancia a dos referencias es una

constante es una hipérbola, si se calcula esta correlación para varios pares de estaciones, la

intersección de las hipérbolas resultantes muestra el punto donde se encuentra el terminal

móvil.

Al igual que en el tiempo de llegada, la sincronización entre las balizas es muy

importante puesto que una falta de sincronía puede traducirse en errores de precisión

considerables. No obstante, la principal ventaja de usar este parámetro es que elimina la

necesidad de sincronizar el objetivo con la red de balizas.

Page 40: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

38

2.3.2. Técnicas para estimar la posición

La finalidad de los algoritmos de posicionamiento es, dado un conjunto de medidas

como pueden ser distancias, ángulos de llegada o tiempos de llegada, localizar la posición de

los nodos cuya situación es desconocida. En consecuencia, el posicionamiento ocurre en dos

etapas. En un primer momento se obtienen las medidas, en ese instante, éstas son

combinadas usando técnicas de posicionamiento para deducir la posición de los nodos a

localizar.

Las técnicas de localización se clasifican habitualmente en la literatura en cuatro

grupos:

Basadas en balizas. Algunos nodos conocen sus posiciones absolutas, de tal forma que

la distancia estimada a las balizas puede obtenerse por interacción directa con éstas,

un solo salto puesto que interviene una única baliza, o indirectamente, denominada

multisalto debido a la colaboración de diversas balizas intermedias.

Balizas libres. Ninguno de los nodos conoce su posición. Por este motivo, sólo se

puede hablar de coordenadas relativas o virtuales, debido a que se desconoce las

posiciones absolutas de las mismas.

Basadas en el rango. Las medidas proporcionan una especie de información sobre la

distancia o ángulo de los nodos.

Rango libre. Sólo aportan información sobre la conectividad.

En este proyecto se analizarán únicamente las técnicas basadas en nodos de

localización de un único salto.

2.3.2.1. Triangulación

La técnica de localización por triangulación se basa en las propiedades geométricas de

los triángulos para calcular la posición de los objetos. Los diferentes algoritmos usados para

efectuar la triangulación pueden ser divididos en tres categorías: lateración, uso de medidas

de distancias, y angulación, utilización de la medida de los ángulos.

2.3.2.1.1. Lateración

Se define la lateración como el cálculo de la posición a partir de las medidas de

distancias efectuadas. Es necesario tener en cuenta que para poder llevar a cabo la localización

Page 41: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

39

en una superficie de dos dimensiones, se necesitan al menos tres medidas de distancias no

colineares. Para el caso de tres dimensiones, los requisitos se incrementan en una medida

más, es decir, se requerirán, al menos, cuatro medidas no coplanares. No obstante, el

conocimiento del dominio específico donde se va a efectuar la localización puede reducir el

número de medidas de distancias requeridas.

El dispositivo a localizar envía una señal a todos los nodos fijos a su alcance,

comunicando estos, al sistema que se encarga de ejecutar el algoritmo, las medidas de la

potencia de señal recibida o la diferencia de tiempos de llagada para poder trazar unas

circunferencias con centra en cada uno de los nodos y así, mediante la intersección de dichas

circunferencias, poder hallar la ubicación del objetivo.

Figura 2.3.3. Ejemplo de triangulación por lateración en una superficie de 2D

Hay tres aproximaciones para medir la distancia requerida por la técnica de la

lateración:

Directa. En esta situación la medida de la distancia requiere de un movimiento o una

acción física.

Tiempo de llegada. La medición de la distancia de un objeto a un punto P(x,y) donde

se ubica una baliza se efectúa mediante el cálculo del tiempo que tarda en viajar la

señal emitida, es decir, mediante el tiempo de llegada. Este método permite que el

objeto a localizar se encuentre en movimiento o permanezca en una posición fija.

Atenuación. La intensidad de una señal emitida decrece a medida que la distancia con

respecto la fuente emisora se incrementa. Este decrecimiento con respecto a la

Page 42: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

40

intensidad original es lo que se denomina atenuación. En consecuencia, dada una

función de correlación entre la atenuación y la distancia para un tipo de emisión y la

potencia de transmisión, es posible estimar la distancia de un objeto a un punto P(x,y)

sin más que aplicar la ecuación propagación. En entornos con muchos obstáculos,

como puede ser el interior de un edificio, las medidas de distancia utilizando

atenuación son menos precisas que las obtenidas por tiempo de llegada. Esto se debe

a que la señal emitida se ve afectada por fenómenos físicos como la reflexión o la

refracción y por el multitrayecto.

2.3.2.1.2. Angulación

La angulación es un proceso similar al de la lateración salvo que en vez de usar

distancias, se utilizan ángulos para determinar la posición de un objeto. En general, para poder

localizar un objetivo en una superficie de dos dimensiones, la angulación requiere de dos

medidas de ángulos y una medida de longitud, como puede ser la distancia entre los nodos de

referencia. En tres dimensiones, se requiere una medida de longitud, una medida de azimut y

dos ángulos para especificar una posición. En determinadas ocasiones, se decide elegir un

vector de referencia constante como el ángulo de cero grados.

Figura 2.3.4. Ejemplo de triangulación por angulación en una superficie de 2D

Para esta técnica, los arrays de antenas sincronizadas son una excelente tecnología. Al

disponer de múltiples antenas con una separación conocida, el tiempo de llegada puede ser

calculado. Teniendo en cuenta las diferencias en el tiempo de llegada y la geometría del array

receptor, es posible calcular el ángulo del segmento que une el receptor con la fuente de

transmisión. Si hay suficientes elementos en el array y la separación entre ellos es lo

suficientemente grande, los valores obtenidos por el mecanismo de ángulación pueden ser

muy precisos.

Page 43: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

41

2.3.2.1.3. Proximidad

La técnica de localización basada en proximidad se caracteriza por determinar la

posición del objetivo en base a la cercanía del mismo a la posición conocida de una baliza del

sistema. La presencia del objeto se detecta por algún fenómeno físico con alcance limitado.

Hay tres aproximaciones para determinar la proximidad del objetivo:

Detección por contacto físico directo. Se corresponde con el mecanismo más simple de

todos, puesto que requiere una interacción física del objetivo con el sistema. La tecnología

para detectar dicha interacción puede ser muy variada, utilizando desde sensores de presión

hasta detectores de campos capacitivos.

Monitorización de un punto de acceso en redes inalámbricas organizadas en celdas. En

esta técnica, se monitorizan cada una de las celdas correspondientes a un punto de acceso. De

forma que cuando el objetivo penetre en una celda, se conocerá su posición por la cercanía ha

dicho punto de acceso.

Observación de sistemas de identificación automáticos. La tercera implementación usa

sistemas de identificación automática como pueden ser tarjetas electrónicas con una etiqueta

identificadora o registros de acceso en ordenadores. Por tanto, observando al sistema de

identificación, se puede inferir la posición del objetivo sin más que asociar cada punto de

control a una posición.

2.3.2.2. Análisis de escenas

La técnica de análisis de la escena utiliza las características de una escena observada

desde un punto de vista en particular, para extraer conclusiones sobre la posición relativa de

los objetos. Habitualmente las escenas observadas se simplifican para obtener características

que son fáciles de representar y comparar. Cuando se produce una diferencia en la escena

observada, podemos determinar el movimiento de un objeto.

Una escena podría ser una o imagen visual (obtenida con una cámara) o cualquier otro

parámetro físico susceptible de ser medido, tal como las características electromagnéticas que

existen cuando un objeto se encuentra en una posición y orientación determinadas.

Page 44: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

42

2.4. Elección tecnológica

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

inalámbricas utilizadas y de las diferentes técnicas de localización y de posicionamiento

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 y gran 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 sensores inalámbricos, puesto que los nodos que la componen

deberán tener una gran autonomía debido a que en su mayoría son alimentados mediante

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

caracterizarse por su bajo consumo. No obstante, 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 segundo factor, se ha impuesto como un requisito fundamental el

crear un sistema de localización que pueda ser utilizado por cualquier usuario sin necesidad de

adquirir un terminal electrónico específico que interactúe con el sistema. Esto provoca que la

elección tecnológica se centre en tecnologías inalámbricas ampliamente utilizadas y que se

hayan establecido como un estándar en la industria.

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 permite

al usuario poder utilizar dicho sistema de localización mediante el uso de una aplicación

software. Por tanto, se evita al usuario el desembolso económico en un dispositivo específico,

además del transporte y uso del mismo. 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á

Page 45: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

43

continuamente en desarrollo y los transceptores poseen un precio muy asequible,

aproximadamente 10€.

Page 46: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

44

Capítulo 3

Bluetooth como

tecnología inalámbrica

La tecnología inalámbrica Bluetooth 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 multimedia comerciales.

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.1. Descripción general

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

(WPANs) 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.

Page 47: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

45

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.

Page 48: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

46

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 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 applications) 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

1MSí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

Page 49: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

47

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 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.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.1.1. Pila de protocolos Bluetooth.

3.2. 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.

Page 50: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

48

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.

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.2.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 3.1:

Ecuación 3.2.1. Expresión que permite hallar las frecuencias centrales de los canales Bluetooth.

Como se puede comprobar del análisis de la expresión 3.2.1, 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 dependiendo la usada

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

Page 51: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

49

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 8DPSK, 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 semi-

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 bajada. Esto supone una gran ventaja

cuando los enlaces son asimétricos ya que permiten asignar más capacidad al canal que lo

requiera.

Ecuación 3.2.2. Ejemplo de un esquema de multiplexación por división en el tiempo en una comunicación 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:

Page 52: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

50

Clase Potencia máxima de salida (Pmax)

Potencia Nominal

Potencia mínima 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.2.1. Especificación de las clases de dispositivos y sus características.

La clase de dispositivo Bluetooth es un parámetro importante a la hora de usarlo en

una aplicación ya que determinará el alcance máximo del sistema.

3.2.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.

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.2.2.1. Enlaces 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:

Page 53: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

51

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 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

Page 54: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

52

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.2.1. (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 transmió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

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.2.2. Para el

intervalo de recepción, el dispositivo escuchará los mensajes de respuestas en dos

frecuencias diferentes.

Page 55: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

53

Figura 3.2.2. 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.

Figura 3.2.3. (a) Temporización de un paquete de respuesta al inquiry con éxito en la primera mitad del intervalo. (b) Temporización de un paquete de respuesta al inquiry con éxito en la segunda mitad del intervalo.

3.2.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.

Page 56: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

54

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.

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.2.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

Page 57: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

55

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 a 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 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.

Page 58: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

56

3.2.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.

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.2.2.5. 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.

Figura 3.2.4. (a) Estructura de un paquete genérico para el modo básico y (b) Estructura de un paquete genérico 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.

Page 59: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

57

Figura 3.2.5. 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.

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 inglesas: 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.2.2. 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.2.6. 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.

Page 60: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

58

Finalmente, el tráiler 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.2.7. (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.

3.2.3. 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.2.8. Diagrama de estados del controlador de estados.

Page 61: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

59

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. 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.

Page 62: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

60

Figura 3.2.9. 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.2.9. 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 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 .

Page 63: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

61

Figura 3.2.10. 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.

En la figura 3.2.8 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

Page 64: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

62

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.2.11. Intercambio de mensajes durante la fase inicial de la conexión cuando un esclavo responde un primer mensaje page.

El 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

Page 65: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

63

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, 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.2.11, 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 (véase la figura

3.2.13 para más detalles del contenido del paquete) 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 respuesta cumpla. En este último caso, el

Page 66: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

64

maestro volverá al subestado page y enviará un error al gestor de recursos de

la bandabase.

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.2.11, 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.2.12. 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.

Page 67: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

65

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 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.2.13. 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.

Page 68: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

66

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.

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 suestada

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á

Page 69: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

67

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.

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.2.4. 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

Page 70: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

68

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.

Figura 3.2.14. 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.

Page 71: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

69

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 PDU’s se vean retrasadas por

las retransmisiones múltiples de paquetes de bandabase 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 PDU’s no

contienen 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 PDU’s 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.2.15. Estructura de las PDU’s 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

Page 72: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

70

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 PDU’s 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 PDU’s 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.2.4.1. Modos de operación

Existen tres modos de operación diferentes:

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,

Page 73: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

71

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 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

Page 74: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

72

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.2.5. 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 bandabase 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 bandabase 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 bandabase, 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 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.

Page 75: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

73

Figura 3.2.16. Información general de extremo a extremo de las capas de software inferiores utilizadas en la transferencia de datos.

3.2.5.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:

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

Inquiry Command

Page 76: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

74

cobertura 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.2.3. Comandos HCI: agrupación y descripción.

3.2.6. 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 (ver figura 3.2.18). También se encarga de transportar información

de calidad de servicio entre un dispositivo y otro. Al igual que LMP, L2CAP se halla en un nivel

superior a la bandabase y reside en el nivel de enlace de datos del modelo de referencia OSI.

Page 77: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

75

Figura 3.2.17. Ubicación de L2CAP dentro de la torre 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.2.18. Diagrama de bloques del protocolo L2CAP.

En otro orden, mientras que en la especificación de la bandabase 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

Page 78: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

76

ACL y no puede existir nada más que un enlace de este tipo. Esto se debe a que L2CAP

depende de las comprobaciones de integridad en el nivel de bandabase 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 bandabase no posee ningún tipo de campo

identificativo que permita realizar dicha tarea.

Segmentación y reensamblado. 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 bandabase puede no ser

Page 79: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

77

suficiente para la mayoría de las aplicaciones. Por este motivo, L2CAP también

provee un servicio de control de flujo para aplicaciones 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 bandabase.

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 PDU’s 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.2.6.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.

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

Page 80: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

78

0x0003-0x003F Reservados para funciones específicas de L2CAP

0x0040-0xFFFF Asignados dinámicamente

Tabla 3.2.4. Descripción de los diferentes CID que se pueden utilizar.

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 CID’s reservados que se muestran en la tabla 3.2.4.

La figura 3.2.19 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.2.19. Ejemplo del uso y significado del campo CID.

Con respecto al modo de funcionamiento de L2CAP, este protocolo puede operar de

tres formas diferentes:

Page 81: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

79

Modo L2CAP básico.

Modo control de flujo. En este modo, en caso de pérdida no se realizan

retransmisiones, sino que se detecta las PDU’s 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 PDU’s 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.3. 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.

Page 82: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

80

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.

Page 83: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

81

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 descubrimiento de servicio (SDAP)

El perfil SDAP detalla cómo una aplicación debe utilizar el perfil SDP para 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.3.1. 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 [11] y revise el documento correspondiente.

3.3.1. 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

Page 84: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

82

de la ETSI, European Telecommunications Standards Institute, organismo que se encarga de la

normalización en la industria de las telecomunicaciones.

Figura 3.3.1. Modelo de referencia RFCOMM.

En la figura 3.3.1 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.

Page 85: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

83

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.

3.3.1.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.3.2. Líneas RS-232 emuladas en RFCOMM.

3.3.1.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.3.3. Correspondencia de las señales de control recogidas en la norma TS07.10 y las señales de control RS-232.

Page 86: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

84

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.3.1.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 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.

Page 87: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

85

Capítulo 4.

Descripción de la

arquitectura propuesta.

En este capítulo se procederá a describir la arquitectura, tanto hardware como

software, propuesta para llevar a cabo el análisis de diferentes algoritmos que permitan la

localización de un dispositivo Bluetooth en un espacio interior como puede ser, por ejemplo,

un centro comercial.

4.1. Hardware

Para poder llevar a cabo la estimación de la posición, se ha optado por la configuración

que puede contemplarse en la figura 4.1. En ella se observan los dispositivos electrónicos

utilizados para la obtención de la información necesaria como para poder ubicar un objetivo

en el interior de un edificio. Estos se corresponden con los siguientes elementos:

Nodo principal: se corresponde con una tarjeta PC104 ejecutando una distribución de

GNU/Linux. En su interior, se encontrará la aplicación encargada de procesar la información

enviada por los nodos de localización así como de gestionar la comunicación con los mismos.

Nodo de localización: está compuesto por un sistema microprocesador de bajo coste

que implementa un módulo Bluetooth serie así como diversos puertos de entrada y salida

digitales.

Page 88: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

86

Figura 4.1.1. Representación orientativa del sistema propuesto.

El funcionamiento básico del sistema propuesto se basa en la utilización del parámetro

RSSI obtenido durante el proceso de descubrimiento de la norma Bluetooth para poder hacer

una estimación de la posición del objetivo a localizar. Por tanto, la misión del nodo de

localización será obtener este valor la repetición continuada de ciclos de descubrimientos. Una

vez que dicho valor es conocido, se encapsulará en un paquete para su posterior envío al

servidor. Dicho paquete contendrá, además del valor RSSI, más información necesaria para el

correcto funcionamiento de la estimación de la posición. Una vez que los datos se encuentren

en el servidor, la aplicación principal se encargará de traducirlos a unas coordenadas estimadas

.

4.1.1. Nodo principal

El nodo principal tiene como finalidad la ejecución de una aplicación que permita

obtener una estimación de la posición de un dispositivo en base de los datos recogidos de los

diferentes nodos de localización ubicados a su alrededor. Por tanto, se requiere de un sistema

que presente una gran capacidad de cómputo. Por este motivo, se ha decidido optar por un

ordenador industrial en formato PC/104+. Este dispositivo se adapta perfectamente a las

exigencias de cómputo y, además, posee una gran conectividad al estar dotado de diversos

puertos series y USB. Esto permite establecer una arquitectura base para servicios con diversa

finalidad. En la figura 4.2 se puede observar una imagen del dispositivo.

Las características principales son:

Page 89: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

87

Procesador AMD Geode LX800 de bajo consumo y una frecuencia de 500 MHz.

512 MB de memoria DDR-RAM.

4 puertos serie.

4 puertos USB.

Conectividad Bluetooth a través de un dongle.

Puerto Ethernet.

Socket para Compact Flash.

Soporte para sistemas operativos GNU/Linux.

Capacidad para ejecutar complejos algoritmos de procesamiento.

Figura 4.1.2. Fotografía de la tarjeta PC/104+ usada como nodo principal.

Con respecto a la conectividad Bluetooth, esta se aporta a través de un dongle

comercial USB que cumple con la especificación Bluetooth v.2.1. Se ha optado por este diseño

por dos razones. La primera de ellas, es el ahorro económico que supone este tipo de

componentes frente a módulos comerciales con interfaz de conexión serie. El segundo motivo

se debe a que la mayor parte de módulos Bluetooth comerciales utilizan una implementación

propietaria de la torre de protocolos de Bluetooth. Esto limita en gran medida la configuración

y gestión de las comunicaciones. Por el contrario, los dongles USB tan sólo implementan el

controlador radio y la banda base, el resto de capas se implementarán de manera software en

el sistema operativo. Esto permite el poder hacer uso de la torre de protocolos conocida como

BlueZ. Esta se corresponde con un proyecto de código libre que implementa la torre de

protocolos de Bluetooth. Para su utilización, se suministra una biblioteca de funciones que

permiten realizar tareas tales como el cambio de modo de funcionamiento, establecimiento de

conexiones RFCOMM, ejecutar un proceso de descubrimiento o cambiar el rol de un

Page 90: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

88

dispositivo en una comunicación. Además, otorga un gran control sobre parámetros

característicos de Bluetooth.

Finalmente, para gobernar el nodo principal se ha optado por una distribución de

GNU/Linux por ser un sistema operativo de libre distribución, con herramientas de desarrollo

libre y por su compatibilidad con la pila BlueZ.

4.1.2. Nodo de localización

El nodo de localización se corresponde con un sistema microcontrolador de bajo coste

cuya tarea radica en realizar continuamente procesos de descubrimiento para determinar el

nivel de señal que le llega desde el objetivo a localizar y desde otros nodos de localización

diferentes. De esta forma se consigue obtener la información necesaria para la estimación de

la posición. Para ello, los datos recogidos de la zona donde se encuentren, se empaquetarán

en una trama y se enviarán al nodo principal para su posterior procesamiento.

Figura 4.1.3. Fotografía de un nodo de localización.

La idea de realizar un sistema microcontrolador de bajo coste radica en el hecho de

que para poder efectuar una estimación de la posición es necesario tener información

diferente con respecto al menos tres puntos diferentes. Por ello, el número de nodos de

localización que se deberán usar en una misma área puede resultar elevado, según la precisión

que se requiera. En consecuencia, el coste económico de producción del nodo debe

Page 91: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

89

permanecer lo más bajo posible para así poder usar un mayor número de los mismos en el

despliegue de la arquitectura.

Figura 4.1.4. Diagrama de bloques del nodo de localización

En la figura 4.1.4 se puede observar un diagrama de bloques de los distintos

componentes que forman el nodo de localización. En él se puede comprobar que se han

utilizado los componentes básicos para dotar de funcionalidad al nodo de localización. La

inclusión del zumbador, así como del puerto de entradas y salidas digitales, se ha hecho para

poder dotar de una finalidad secundaria al nodo de localización. Un ejemplo de esta podría ser

la activación del zumbador al detectar que el objetivo localizado se encuentra en una zona

restringida o la inclusión de sensores que permitan registrar datos como la temperatura de la

sala o la detección de humo y transmitir dichos datos al nodo principal para llevar un control

de los mismos.

4.1.2.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.

Page 92: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

90

Figura 4.1.5. Diagramas de bloque del ATMEGA8.

Las principales características que posee son:

Arquitectura RISC.

Memoria:

8 KB de memoria Flash para programa

512 B de EEPROM.

1 HB de RAM interna

Periféricos:

2 temporizadores/contadores de 8 bits.

1 temporizador/contador de 16 bits.

Contador de tiempo real con oscilador externo.

3 canales PWM.

6 canales ADC de 10 bits.

Page 93: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

91

Temporizador Watchdog con oscilador separado

Comparador analógico.

Interfaz de conexión:

23 puertos de entradas/salidas digitales.

I2C.

USART programable.

SPI maestro/esclavo.

Características especiales:

Power-on-Reset.

Oscilador interno RC que puede ser calibrado.

5 modos de funcionamiento.

4.1.2.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 diversos nodos de localización que puedan existir en su rango de cobertura.

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.

Page 94: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

92

Figura 4.1.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:

A2DP: modo fuente y sumidero.

AVRCP.

Identificación de dispositivo.

Puerto Serie, soportando los dos tipos de dispositivos.

Manos libres.

DUN

OPP

FTP

PBAP

Page 95: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

93

HDP

SSP

4.1.2.2.1. 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:

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 4.1.1. Formato de trama en el modo multiplexado.

Como se puede observar en la tabla4.1.1, 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.

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

Page 96: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

94

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 4.1.7.Ccomunicación Host-iWRAP-Host.

Figura 4.1.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, los nodos de localización y el

nodo principal 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

temporizador asociado a un error en el establecimiento de una conexión sea

de 2,56 segundos. Este valor se obtiene de multiplicar el parámetro

por 0.625 ms.

Page 97: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

95

"SET BT POWER 3 3 3": fija el nivel de potencia en el proceso de

descubrimiento a 3dBm, 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 los nodos 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.

"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.

4.2. Software

Desde el punto de vista del funcionamiento del sistema, se ha dividido en dos partes

diferenciadas la aplicación. Una primera parte, está destinada a la implementación de un

protocolo que permita la obtención de los datos necesarios. Mientras que la segunda parte,

está enfocada al análisis de diferentes algoritmos de estimación de la posición.

4.2.1. Aplicación principal

Este programa será ejecutado en el nodo principal y será el responsable de interactuar

con los nodos de localización, así como de obtener los valores RSSI procedentes del

descubrimiento de dichos nodos. Con el objetivo de minimizar la posible interferencia que

pudieran generar los nodos de localización al efectuar el descubrimiento a la vez, se ha optado

por diseñar un protocolo propio que permita a un nodo en exclusiva efectuar un proceso de

descubrimiento, mientras, los restantes nodos quedan a la espera. Para conseguir este

objetivo, la aplicación principal se encarga de descubrir a todos los terminales que posee en su

rango de cobertura. Tras ello, cederá el turno al primer nodo descubierto mediante el envío

del comando “START”. De esta forma, el nodo de localización que lo reciba, saldrá del reposo,

indicando tal acción mediante el envío de un comando “OK”, e iniciará un proceso de

descubrimiento del que obtendrá los nodos que posee a su alcance y el valor de la potencia

con el que recibe la respuesta de los mismos. Una vez, finalizado el proceso de

descubrimiento, el nodo de localización generará una trama con toda la información necesaria

y se lo enviará de vuelta al nodo principal. Una vez éste haya guardado en un fichero la trama

Page 98: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

96

recibida, procederá al envío del comando “OK” para indicar al nodo de localización que la

recepción de la trama ha sido correcta. Cuando el nodo de localización reciba el asentimiento

positivo, este enviará el comando “CIERRE”, indicando que ha finalizado su tarea y que la

aplicación principal puede proceder a preguntar al siguiente nodo de localización. El

intercambio de mensajes puede observarse más claramente en la figura 4.

Figura 4.2.1. Paso de mensajes

Page 99: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

97

El protocolo diseñado consta de los siguientes mensajes:

Nombre Formato Descripción

START START Este comando sirve para iniciar un proceso de descubrimiento en un nodo de localización. Actúa como una entrada externa en la máquina de estados que permite sacar al nodo de localización del reposo y llevarlo al estado de búsqueda de dispositivos.

OK OK Indica un asentimiento positivo RSSI RSSI + Nº Dispositivos

descubiertos + Dir_BT Disp_1 + Valor RSSI_1 + Dir_BT Disp_2 + Valor RSSI_2 +

Trama que contiene los datos necesarios para efectuar la localización de un dispositivo. Está compuesta por el número de terminales descubiertos y a la dupla (dirección Bluetooth, valor RSSI) asociados a los dispositivos encontrados.

CIERRE CIERRE Permite cerrar una comunicación con la aplicación principal.

Tabla 4.2.1. Comandos del protocolo utilizado entre el nodo principal y los nodos de localización.

Por tanto, la aplicación principal deberá implementar este protocolo. Con este

objetivo, se ha diseñado como se puede comprobar en la figura 4.2.3, donde se representa el

diagrama de flujo de dicha aplicación.

Con respecto al fichero generado, este presentará el siguiente formato:

Dirección Bluetooth Origen: se corresponde con la dirección Bluetooth del nodo que

ha enviado la trama RSSI.

Trama RSSI: se almacena la trama RSSI enviada por el nodo de localización remoto tal

y como ha sido enviada.

Figura 4.2.2. Formato del fichero de almacenamiento.

Fichero de almacenamiento:

<Dir BT origen> <trama RSSI>

00:07:80:93:9A:FE RSSI 2 00:02:5b:0a:6e:52 -78 00:07:80:93:9a:ff -73

00:07:80:93:9A:FF RSSI 3 00:02:5b:0a:6e:52 -71 00:07:80:93:9a:fe -71 00:07:80:90:c8:1a -84

Page 100: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

98

Figura 4.2.3. Diagrama de flujos de la aplicación principal.

Page 101: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

99

.Figura 4.2.4 Diagrama de flujo de las funciones secundarias de la aplicación principal.

4.2.2. Firmware nodo de localización

La programación del nodo de localización se ha basado en una máquina de estados

finita que implementa el protocolo especificado en la sección de la aplicación principal.

Además, será necesario un paso previo donde se inicializará el hardware de la tarjeta

correctamente.

Por tanto, el primer paso que deberá efectuar el programa diseñado será la correcta

inicialización de los pines del microcontrolador usado en el nodo de localización. Estos se

corresponderán con los siguientes valores:

Pin PB0: se corresponde con el diodo LED rojo. Se debe configurar como un pin de

salida, si se coloca un cero lógico en dicho pin, el LED estará apagado y si se fija un uno

lógico, el estado del LED será encendido.

Page 102: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

100

Pin PB1: está asociado al zumbador existente en la tarjeta. Se tiene que configurar

como un pin de salida, si se coloca un cero lógico en dicho pin, el zumbador estará

apagado y si se fija un uno lógico, pitará.

Pin PD6: está relacionado con el pin de reset del módulo Bluetooth. Este pin es activo

a nivel bajo. Por defecto, los pines del microcontrolador Atmega8 al fijarse como salida

se establecen a nivel bajo, por lo que será necesario inicializar este pin con un uno

lógico. De esta forma, el módulo saldrá del reset hardware y podrá operar con

normalidad. Si fuese necesario dar un reset hardware al módulo durante el

funcionamiento normal del dispositivo, este se debería efectuar como sigue:

El retraso introducido es necesario para permitir al módulo WT12-A detectar

que se ha producido un reset hardware.

A continuación será necesario inicializar los periféricos que se van a utilizar del

microcontrolador y el módulo Bluetooth. La configuración del módulo se realizará en base a los

parámetros de configuración especificados en la sección 4.1.2.2.1 del documento. Tras el

proceso de inicialización y configuración, se podrá iniciar la máquina de estados en el estado

“RESTAURAR”.

PORTD=(0<<PD6);

Delay_ms(10);

PORTD=(1<<PD6);

Page 103: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

101

Figura 4.2.5. Máquina de estados del nodo de localización.

Como se puede comprobar en la figura 4.2.5, la máquina de estados del nodo de

localización está compuesta por once estados diferentes. A continuación se describirá cada

uno de estos.

RESTAURAR. Este estado se utiliza para inicializar las variables de memorias utilizadas

durante la ejecución. De esta forma, en la primera y restantes ejecuciones las variables

estarán iniciadas con un valor adecuado.

REPOSO. Se corresponde con un estado donde el microcontrolador la única tarea que

está efectuando es un envío cada segundo del comando de configuración “SET BT

Page 104: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

102

PAGEMODE 3 1000 0”, debido a un problema detectado en el módulo Bluetooth. Éste

tras ser detectado, pierde la configuración de la visibilidad, por lo que es necesario

reconfigurar dicho parámetro cada cierto tiempo. Por otro lado, se estará pendiente

de recibir a través de un enlace RFCOMM, por parte de la aplicación principal, el

comando START. La única forma de salir de este estado, es mediante la recepción por

la USART del comando START, que implicaría modificar el estado actual de la máquina

con el valor del estado OK.

OK. Se trata de un estado de transición cuya única misión es transmitir por el enlace

0x00, que se corresponde con el identificador del canal donde ha iniciado la

comunicación el nodo principal, el comando “OK” a modo de asentimiento positivo.

Tras el envío de dicho comando, se procederá a saltar al estado “INQUIRY”.

INQUIRY. Es un estado de transición cuya finalidad radica en transmitir por el enlace

0xFF, destinado al envío de comandos al módulo Bluetooth, el comando “INQUIRY 5”.

Mediante este comando, se le indica a la capa HCI de la pila de protocolos iWRAP que

realice un proceso de descubrimiento con una duración de 5 veces 1,28 segundos. En

consecuencia, el período total de descubrimiento será de 6,4 segundos. Se ha elegido

este valor porque la probabilidad de descubrir a todos los nodos de localización en el

rango de cobertura es próxima al 100%, como puede observarse en la figura4.2.6. Tras

el envío de dicho comando, se procederá a saltar al estado “ESPERA”.

Figura 4.2.6 Probabilidad de descubrir a todos los dispositivos en función de la longitud del proceso de descubrimiento.

0

20

40

60

80

100

120

1 2 3 4 5 6 7 8

Pro

bab

ilid

ad d

e s

er

de

scu

bie

rto

[%

]

Múltiplo del la longitud de descubrimiento

Probabilidad descubrimiento vs Número de Length

Probabilidad

Page 105: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

103

ESPERA. Este estado permite esperar a que el módulo WT12-A devuelva todos los

resultados obtenidos durante el proceso de descubrimiento. En esta situación,

mientras se espera a recibir el resultado final, el microcontrolador irá almacenando

cada uno de los resultados parciales devueltos para posteriormente procesarlos. Una

vez se recibe confirmación de que el descubrimiento de dispositivos ha finalizado

mediante la recepción del comando “INQUIRY x”, donde la x representa al número de

dispositivos descubiertos, se procede a pasar al estado ESPERA_INQUIRY.

ESPERA_INQUIRY. Este segundo estado de espera, se introduce para filtrar los

resultados finales devueltos por el módulo Bluetooth. Esto se debe a que estos

resultados tan sólo aportan información sobre la dirección Bluetooth y la clase del

dispositivo remoto descubierto, información que ya ha sido almacenada durante el

estado “ESPERA” gracias a los descubrimientos parciales que devuelve. La condición de

salida de este estado, será que el número de comandos del tipo “INQUIRY

00:11:22:33:44:55 123456” sea igual al número de dispositivos descubiertos

previamente. En ese momento, la máquina de estado evolucionará hacia el estado

PROCESAR.

PROCESAR. En este estado se realiza el procesamiento de los resultados parciales

devueltos por el módulo Bluetooth. La información que se saca de estos se

corresponde con la dirección Bluetooth y el valor RSSI con el que se ha recibido la

señal. Esta información se copia a una matriz donde se almacenan para su posterior

envío. La finalización de este procesamiento conlleva el salto al estado “TRAMA”.

TRAMA. La construcción de la trama se realiza en este estado. Para ello, se añade a un

buffer destinado a la transmisión de órdenes, el comando “RSSI”, seguido del número

de dispositivos descubiertos. A continuación se concatena a dicho buffer la dirección

Bluetooth y el valor RSSI asociado a cada dispositivo remoto. Una vez generada la

trama en el buffer de transmisión, se procede a su envío por el canal RFCOMM

establecido previamente hacia el nodo principal. A continuación, la máquina de estado

evoluciona hacia el estado “ESPERA_FIN”.

ESPERA_FIN. Se corresponde con un estado donde el nodo de localización espera un

asentimiento positivo por parte de la aplicación principal, que indicará que la trama

RSSI ha llegado correctamente y se ha podido almacenar en disco correctamente. Para

ello, cuando se recibe el comando “OK”, la rutina de interrupción lo detectará y

pondrá la variable fin a uno. De esta forma, al volver a la función principal del

firmware, la máquina de estado irá al estado “CIERRE”.

Page 106: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

104

CIERRE. Se trata de un estado de transición cuya única misión es transmitir por el

enlace 0xFF, que se corresponde con el identificador del canal donde ha iniciado la

comunicación el nodo principal, el comando “CIERRE” para finalizar la comunicación.

Tras el envío de dicho comando, se procederá a saltar al estado “ESPERA_CIERRE”.

ESPERA_CIERRE. Se corresponde con un estado donde el nodo de localización espera

el cierre de la comunicación por parte del nodo principal. Cuando éste cierre el socket

asociado al canal RFCOMM, el módulo Bluetooth lo detectará y enviará el comando

“NO CARRIER 0 ERROR 0”, indicando que ya no existe conexión disponible y que no se

ha producido ningún tipo de error. La detección de esta orden en la rutina de

interrupción asociada a la recepción de la USART, actualizará la variable fin_cierre,

permitiendo que la máquina de estados pueda ir al estado “RESTAURAR” para

devolver los valores iniciales a las diferentes variables utilizadas y se puede repetir el

proceso nuevamente al recibir un nuevo comando START.

Finalmente, con el objetivo de aclarar el funcionamiento de la máquina de estados

diseñada, en el apéndice A se presentan los pseudocódigos de los diferentes estados así como

de las funciones utilizadas en la programación del microcontrolador.

4.2.3. Matlab

Finalmente, la última parte del software diseñado para la localización de un objetivo

en un recinto ubicado en el interior de un edificio ha sido implementada en Matlab. De esta

forma, tras recolectar la información necesaria mediante los nodos de localización y los nodos

principales, se pueden estudiar diferentes algoritmos de estimación de la posición y comparar

los resultados obtenidos para determinar el algoritmo que mejor se adapta al entorno

estudiado. Este estudio se ha realizado con el objetivo de determinar el algoritmo que

presenta menor error cuadrático medio en la estimación de la distancia. Para llevar a cabo

dicha comparación, se ha utilizado como figura de mérito el error cuadrático medio de la

posición estimada con respecto a la posición real debido a que permite hacerse una idea de lo

bien o mal que se ajusta el algoritmo a la realidad, ecuación 4.2.1. En ella, los términos e ,

representan las coordenadas estimadas, mientras que los términos y , hacen referencia a

las coordenadas reales del objetivo.

Ecuación 4.2.1. Expresión para el cálculo del error cuadrático medio.

Page 107: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

105

Con respecto al software diseñado para Matlab es necesario realizar dos distinciones.

Por un lado, es necesario caracterizar el medio físico de propagación para determinar la

atenuación que sufre la señal al viajar por dicho medio. Esto se debe a que en interiores, la

propagación de la señal de radiofrecuencia se puede ver afectada por factores tales como la

propagación multitrayecto, las variaciones de la temperatura o la aparición de sombras

debidas al mobiliario del recinto. Por tanto, el valor RSSI de la señal se hace dependiente del

entorno por donde se propaga. No obstante, en la comunidad científica está aceptado en base

a evidencias empíricas que parece razonable modelar el RSS para cualquier valor de la

distancia en una localización particular como una variable aleatoria distribuida logarítmico-

normal con un valor medio dependiente de la distancia. En base a este modelo, la ecuación de

propagación resultante quedaría como:

Ecuación 4.2.2. Ecuación de propagación que contempla el canal de propagación

Donde es un valor de potencia de referencia conocida en dBm a una

distancia desde el transmisor, es el exponente de pérdidas en el trayecto que mide el

ratio en el que el RSS disminuye con la distancia y su valor depende del entorno de

propagación específico, es una variable aleatoria gaussiana con media acero y desviación

y registra el efecto aleatorio de las zonas sombreadas, es decir, de las zonas carentes de

cobertura.

El principal problema de esta caracterización es que requiere un modelado del entorno

donde se está llevando a cabo la localización, lo que provocaría tener que realizar un estudio

exhaustivo de cada uno de los posibles recintos donde este sistema se aplicase. Para evitar

este problema, se ha realizado un mecanismo de calibración dinámico que será explicado en el

epígrafe 4.2.3.1., denominado “Caracterización del medio físico de propagación”.

En segundo lugar, una vez que se ha podido realizar una correcta conversión entre los

valores RSSI recibidos y un valor de distancia, se puede efectuar la estimación de la posición

del objetivo mediante el uso de alguno de los algoritmos propuestos. El objetivo de estudiar

varios algoritmos radica en comprobar cómo funcionan cada uno de ellos en diferentes

situaciones.

Page 108: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

106

4.2.3.1. Caracterización del medio físico de propagación

Como se ha comentado anteriormente, para poder estimar la posición del objetivo es

necesario disponer primeramente de un mecanismo de caracterización del medio. Puesto que

el uso de la ecuación 4.2.2, provoca un estudio detallado de cada uno de los medios, se ha

optado por un sistema de calibración dinámico. Para ello, se necesita disponer de los valores

RSSI entre el objetivo a localizar y los nodos de localización y, además, los valores RSSI entre

los distintos nodos de localización. De esta forma, se pretende realizar una estimación del

medio físico que compense las condiciones de propagación del canal. La ventaja de utilizar este

método es que no se requiere de una etapa previa en la que se realice un proceso de

aprendizaje, como ocurriría en el caso de usar una red neuronal, o de una etapa previa de

caracterización que permita obtener un mapa de valores RSSI en función de la posición. Por

tanto, el sistema podrá calibrar dinámicamente el medio en base a las mediciones obtenidas

desde los nodos de localización, compensando automáticamente loas condiciones observadas

por cada una de ellas.

Por su parte, esta conversión será ejecutada en el lado del nodo principal debido al

elevado coste computacional que conlleva y a la necesidad de minimizar lo máximo posible el

coste económico del nodo de localización. Por este último motivo, no resultaría conveniente

efectuarla en él; puesto que esto implicaría tener que utilizar un microcontrolador con mayor

capacidad de cálculo, lo que provoca un incremento del precio.

Si se considera la disponibilidad de m nodos de localización, todas ellas en el rango de

cobertura de las demás, cuya distancia a un punto tomado como origen de coordenadas de un

sistema cartesiano sea conocida, se pueden definir los siguientes elementos:

Matriz D: se corresponde con una matriz que contiene sobre la distancia que

separa los diferentes nodos de localización. De tal forma que el elemento ,

hace referencia a la distancia existente entre el nodo de localización i y el nodo

j. Cabe destacar que esta matriz deberá ser simétrica, puesto que se cumplirá

que . Además, los elementos de la diagonal principal de la matriz

deberán ser cero, puesto que la distancia de un nodo de localización con

respecto el mismo es cero.

Matriz R: hace referencia a una matriz que almacenará los valores RSSI

recibidos con respecto a cada nodo de localización. Esto supone que el

elemento contenga información sobre la potencia de señal recibida por el

Page 109: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

107

nodo de localización i con respecto al nodo j. Debido a la aleatoriedad

presente en el proceso de medida del valor RSSI y a las características

cambiantes del entorno, no tiene por qué cumplirse que el elemento .

Al igual que en el caso de la matriz D, la diagonal principal deberá ser nula.

Matriz T: esta matriz actuará como una matriz de transformación, ya que debe

ser la responsable de convertir los valores RSSI obtenidos durante los procesos

de descubrimientos en medidas de distancias. Por tanto, el elemento de

dicha matriz se corresponderá con el valor que permitirá mapear el valor RSSI

obtenido por el nodo de localización i del nodo j en una medida de la distancia

que separa dichos nodos.

Matriz E: se trata de una matriz que almacenará las diferencias existentes

entre la matriz D, que posee la distancia real entre los diferentes nodos, y la

matriz resultante del producto de .

Con estos elementos definidos, el problema de caracterizar el medio se basaría en

minimizar la expresión del error entre la distancia real y la inferida, es decir, se buscaría hacer

los elementos de la matriz E lo más pequeño posibles, tendiendo a cero en el límite. De forma

general, el error se puede expresar como:

Ecuación 4.2.3. Expresión del error cometido en el proceso de calibración.

Puesto que la norma euclídea de una matriz dada se determina como la raíz

cuadrada del radio espectral de la matriz , es decir:

Ecuación 4.2.4. Definición de la norma espectral de una matriz dada.

Donde el término hace referencia al autovalor máximo de la matriz . Si se

aplica este hecho a la matriz E y se iguala a cero el resultado se obtiene el siguiente resultado:

Page 110: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

108

Ecuación 4.2.5. Desarrollo matemático efectuado para derivar la expresión de la matriz de transformación T

Es decir, se puede determinar la matriz de transformación T sin más que resolver un

sistema de ecuaciones lineales. Una vez determinada la matriz T, para transformar en medidas

de distancias los valores RSSI generados por el objetivo en los diferentes nodos de localización

bastará con efectuar la siguiente operación:

Ecuación 4.2.6. Cálculo del vector de distancias estimado en base a la matriz de transformación T.

Donde , se corresponde con el vector de distancias estimado en el instante n y ,

hace referencia a un vector columna con los valores RSSI que el objetivo a localizar ha

generado en los nodos de localización y es recibido por el nodo principal.

4.2.3.2. Algoritmos de estimación de posición

El objetivo último de los algoritmos de estimación de la posición que se van a

presentar a continuación es, dado un conjunto de medidas de distancias obtenidos como se ha

indicado en el epígrafe anterior, encontrar la localización de un nodo objetivo.

En este estudio, la atención recaerá sobre los algoritmos de un único salto, es decir,

aquellos que requieren la interacción del objetivo con un único nodo de localización. Los

algoritmos utilizados para dicho estudio se describirán en las subsecciones posteriores.

4.2.3.2.1. Multilateración

Como se describió en el capítulo 2, la multilateración consiste en un método de

posicionamiento basado en la intersección de, al menos, tres círculos centrados cada uno de

ellos en las coordenadas de los correspondientes nodos de localización, véase la figura

4.2.7. La intersección de estos círculos se corresponderá con la posición del objetivo.

Page 111: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

109

Figura 4.2.7. Representación gráfica del método multilateración.

En consecuencia, si se define el parámetro como el error cometido entre la distancia

medida y la distancia resultante de estimación de la posición, se obtiene:

Ecuación 4.2.7. Expresión del error cometido entre la posición real y el nodo i-ésimo.

Donde representa la distancia medida por el nodo de localización i-ésimo con

respecto al objetivo, las coordenadas , la posición estimada del objetivo y las

coordenadas conocidas del i-ésimo nodo de localización.

Puesto que la idea es obtener un estimador de la posición que sea lo más exacto

posible, lo ideal sería que la diferencia existente entre la distancia medida y la distancia

estimada fuese nula. En consecuencia, se puede hacer el término , resultando el

siguiente desarrollo:

Page 112: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

110

Ecuación 4.2.8. Manipulación algebraica de la expresión del error.

Tras operar, se ha llegado a una expresión en la que las variables que desean

determinarse no poseen una relación lineal. Éstas se encuentran elevadas al cuadrado, lo que

impide utilizar las técnicas de resolución de sistemas lineales. Este inconveniente, se puede

resolver si referenciamos todas las medidas a un mismo nodo, el cual puede ser el nodo

principal sin pérdida de generalidad. Si denominamos por N mayúscula a dicho nodo, se

obtiene que:

Ecuación 4.2.9. Expresión final del algoritmo multilateración.

Si se reordena la expresión en forma matricial, se observa el siguiente sistema de

ecuaciones lineales:

Ecuación 4.2.10. Desarrollo matemático para la obtención de la posición estimada.

Como se puede comprobar, se consigue obtener una solución en el sentido de los

mínimos cuadrados de dicho sistema de ecuaciones lineales. Esto se debe a que la solución

hallada minimiza la norma del error , que era lo que se buscaba desde un

comienzo. Por su parte, el sistema siempre tendrá solución debido a que el producto ,

siendo A una matriz real, da lugar a una matriz simétrica y, por definición, una matriz simétrica

siempre es invertible.

Por tanto, la posición estimada se hallará mediante el cómputo de la siguiente

expresión:

Ecuación 4.2.11. Expresión final de la posición estimada.

Page 113: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

111

4.2.3.2.2. Algoritmo Min-Max

Resolver la ecuación 4.2.11 es bastante costoso debido a las operaciones matriciales

en punto flotante que se requieren. Por este motivo, surge el algoritmo Min-Max, que se

corresponde con una variante de la multilateración. En este caso, la idea consiste en construir

un rectángulo que actúa de frontera para cada nodo de localización. Dicho rectángulo se

encontrará centrado en las coordenadas de cada nodo. En concreto, las esquinas de

cada uno de estos rectángulos coinciderán con el siguiente valor:

Ecuación 4.2.12. Expresión de las coordenadas de los rectángulos fronteras.

di di

di

di

( xi , yi )

( xi +di, yi+di )( xi -di, yi+di )

( xi -di, yi -di) ( xi+di , yi -di)

Figura 4.2.8. Construcción del rectángulo frontera.

La posición estimada se obtiene como el centro de la intersección de estos

rectángulos. Para ello, basta con determinar el mínimo de todas las coordenadas máximas y el

máximo de todas las coordenadas mínimas, es decir:

Ecuación 4.2.13. Coordenadas del rectángulo intersección.

Page 114: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

112

En consecuencia, la posición final se obtiene como el promedio de las coordenadas de

las esquinas. La ventaja de este método es que requiere una baja complejidad de cálculo,

puesto que únicamente se realizan operaciones de suma y comparaciones.

4.2.3.2.3. Algoritmo Multilateración iterativo

Se trata de una variante del algoritmo de multilateración. En este caso, lo que se hace

es utilizar éste para una estimación inicial de la posición. Tras dicho cálculo, el valor obtenido

se utiliza como semilla de un proceso iterativo, donde se somete la posición estimada a un

proceso de refinamiento.

Para ello, se define una función de error parcial relativa a cada nodo de localización

tal y como sigue:

Ecuación 4.2.14. Expresión del error parcial relativo al nodo de localización i-ésimo.

Donde representa la distancia estimada mediante la calibración del canal de

propagación, son las coordenadas del nodo de localización i-ésimo y son las

posiciones estimadas mediante el algoritmo de multilateración.

La función global del error será:

Ecuación 4.2.15. Expresión del error global.

Gracias a esta definición, se puede definir un vector de incremento como sigue:

Ecuación 4.2.16. Definición de la matriz de desplazamiento .

Donde B se corresponde con , es decir,

Page 115: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

113

Ecuación 4.2.17. Definición de la matriz B.

Ecuación 4.2.18. Cálculo de las derivadas parciales de la matriz B.

Finalmente, el último paso del algoritmo será actualizar la posición inicial estimada con

una versión escalada del desplazamiento indicado por la matriz . Este proceso se repetirá

hasta conseguir que el error global sea inferior a un cierto valor.

Ecuación 4.2.19. Expresión final de la posición estimada.

4.2.3.2.4. Aproximación mecánica. Algoritmo de Malguki

El algoritmo de Malguki está basado en un símil mecánico, los nodos de localización se

consideran como masas que están unidas entre ellas mediante una fuerza elástica similar a la

de un muelle. Por tanto, cada muelle representa una restricción para la posición del nodo y su

fuerza está relacionada con la distancia estimada que une dichos nodos. Cuando los nodos se

ubican en la posición determinada por el conjunto de distancias estimadas, entonces los

muelles no deberán efectuar ningún tipo de fuerza que corrija dicha posición. No obstante, si

el nodo estuviera desplazado con respecto a la posición estimada, entonces los muelles

actuarían ejerciendo una fuerza sobre dicho nodo tal que permitiese trasladarlo hacia la

posición estimada. Para mayor detalle, véase la figura 4.2.9 De esta forma, el error global de la

posición se reducirá al mínimo. Con este proceso, se consigue reducir la energía elástica de

todo el sistema cuando los nodos se encuentran en su posición final.

Page 116: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

114

Si se representa por a la posición ocupada por el i-ésimo nodo de localización,

entonces la fuerza elástica producida por todos los muelles se podrá determinar como la

suma de cada una de las fuerzas, es decir:

Ecuación 4.2.20. Definición de la fuerza elástica y del campo escalar .

Los términos que aparecen en la ecuación 4.2.20, se corresponde con:

se corresponde con la fuerza elástica ejercida por el i-ésimo nodo de localización

sobre el nodo objetivo.

distancia estimada del nodo del nodo de localización i-ésimo con respecto al

objetivo que se desea localizar.

módulo de la distancia existente entre el i-ésimo nodo de localización y el

objetivo cuya posición se desea estimar.

vector unitario que marca la dirección relativa del objetivo a posicionar

frente al -ésimo nodo de localización.

se corresponde con una función escalar que depende de la relación

. Para el caso de la fuerza elástica mencionada en el párrafo anterior, esta

función se corresponde con

Figura 4.2.9. Definición de la fuerza elástica en el objetivo a localizar en base a dos nodos de localización.

Page 117: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

115

El objetivo principal de este algoritmo es minimizar el error global dado por la suma

de todos los errores parciales . Esta tarea se puede llevar a cabo de una forma eficaz

teniendo en cuenta que la fuerza elástica total tiene la misma dirección y sentido opuesto

que el gradiente de la función del error. En consecuencia, para una posición de la estimación

dada por , la fuerza mostrará en qué dirección debe corregirse ésta para reducir el error

asociado. El vector nuevo de fuerza será indicado mediante un vector desplazamiento ,

usando un parámetro ( ) como factor de conversión. El valor de puede necesitar ser

actualizado durante cada iteración del algoritmo para asegurar la convergencia del mismo.

Este hecho es necesario para evitar los posibles valles que la función de error pueda presentar.

Puesto que en ese caso, si el valor de fuese demasiado elevado, el algoritmo podría saltarse

el mínimo de la función y no llegar a converger nunca.

Figura 4.2.10. Ejemplo de un valor mal ajustado y de cómo el algoritmo no puede alcanzar el mínimo de la función de error.

Page 118: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

116

Capítulo 5.

Resultados

En este capítulo se presentarán los resultados obtenidos en base a una prueba

empírica realizada. Para su realización, se instaló la arquitectura presentada en el capítulo 4 de

este documento en una habitación cerrada del Departamento de Ingeniería Electrónica de la

Escuela Superior de Ingenieros de Sevilla. El sistema instalado se ha compuesto de un nodo

principal encargado colocado en el centro de una de las paredes de la habitación y de cuatro

nodos de localización ubicados en las esquinas. Para un mayor detalle, ver la figura 5.1. En este

caso, el nodo objetivo a localizar se ha compuesto de un terminal móvil con transceptor

Bluetooth, al que ha sido necesario configurar de una forma adecuada para su detección.

Figura 5.1 Fotografía de la sala utilizada para la prueba.

En la tabla 5.1, se puede comprobar la ubicación exacta de cada uno de los elementos

que conforman el sistema. Las coordenadas cartesianas de dichos componentes se han

estimado tomando como origen de coordenadas el nodo principal. Esta elección se ha

Page 119: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

117

efectuado de esta forma para simplificar los cálculos matemáticos de los algoritmos utilizados,

ya que permiten simplificar las expresiones matemáticas.

Coordenada X [m] Coordenada Y [m] Dirección Bluetooth

Nodo principal 0 0 00:02:5B:0A:6E:52 Nodo de localización 1 -3.575 0 00:07:80:93:9A:FE Nodo de localización 2 -3.425 -3.315 00:07:80:93:9A:FF Nodo de localización 3 3.02 -3.3325 00:07:80:90:C8:1ª Nodo de localización 4 3.02 0 00:07:80:90:C8:1E

Tabla 5.1. Ubicación de los diferentes nodos en la habitación utilizada.

Figura 5.2. Representación esquemática de la instalación del sistema en la sala.

Finalmente, los puntos utilizados para llevar a cabo el procedimiento de localización

fueron seleccionados aleatoriamente, eligiendo un total de 15 puntos. Este número de

posiciones se eligió por ser un número lo suficientemente alto como para poder realizar un

análisis comparativo de los distintos algoritmos. En la tabla 5.2, se recogen las diferentes

posiciones referenciadas al nodo principal.

Posición Coordenada X [m] Coordenada Y [m]

1 0 -1.600 2 -1.645 -1.600

Page 120: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

118

3 -3.305 -1.600 4 -2.385 -0.590 5 -1.460 -0.665 6 -3.560 -0.215 7 -3.890 -2.635 8 -0.090 -2.940 9 0.008 -0.400

10 1.275 -0.580 11 0.380 -2.560 12 -0.380 -3.030 13 1.655 -1.600 14 1.425 -2.545 15 2.735 -2.455

Tabla 5.2. Coordenadas de los diferentes puntos a localizar utilizados durante la prueba

A continuación se presentarán los resultados obtenidos para cada uno de los

estimadores de posición utilizados, dejando para el epígrafe 5.5 el análisis de los mismos,

donde se compararán entre ellos.

5.1. Multilateración

A continuación se presentan los resultados obtenidos de aplicar el algoritmo de

multilateración. En la figura 5.1.1, el punto representado por una circunferencia roja

representa la posición real, mientras que la aspa azul representa la posición estimada.

Page 121: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

119

Figura 5.1.1. Resultados obtenidos del proceso de localización.

Page 122: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

120

Figura 5.1.2. Representación del error cuadrático medio.

5.2. Multilateración iterativa

En las siguientes figuras, se representan los resultados obtenidos de aplicar el

algoritmo de multilateración iterativa. En la figura 5.2.1, el punto representado por una

circunferencia roja representa la posición real, mientras que la aspa azul representa la posición

estimada.

Figura 5.2.1. Resultados obtenidos del proceso de localización.

Page 123: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

121

Figura 5.2.2. Representación del error cuadrático medio.

5.3. Min-Max

Seguidamente se muestran los resultados obtenidos de aplicar el algoritmo Min-Max.

En la figura 5.3.1, el punto representado por una circunferencia roja representa la posición

real, mientras que la aspa azul representa la posición estimada.

Page 124: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

122

Figura 5.3.1. Resultados obtenidos del proceso de localización.

Page 125: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

123

Figura 5.3.2. Representación del error cuadrático medio.

5.4. Algoritmo de Malguki

A continuación se presentan los resultados obtenidos de aplicar el algoritmo de

Malguki. En la figura 5.4.1, el punto representado por una circunferencia roja representa la

posición real, mientras que la aspa azul representa la posición estimada.

Figura 5.4.1. Resultados obtenidos del proceso de localización.

Page 126: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

124

Figura 5.4.2. Representación del error cuadrático medio.

5.5. Comparativa

Para llevar a cabo la comparativa de los diferentes algoritmos, se ha representado en una

misma gráfica el error cuadrático medio de todos ellos. Esta puede observarse en la figura

Page 127: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

125

5.5.1.

Figura 5.5.1. Representación conjunta de los errores cuadráticos medios de los distintos algoritmos

Al observar dicha figura, el primer resultado que se deriva es que el error en la

posición estimada varía en función de la posición que se ha deseado estimar. De forma que

aquellos puntos que se encuentran más alejados de la zona media de la habitación presentan

un mayor error. Esto hace pensar que el rango de cobertura de los diferentes nodos de

localización es diferente. Algunos de los motivos a los que puede atribuirse dichas diferencias

son:

Diferencias en la ganancia de las antenas de los transceptores Bluetooth.

Obstáculos en la línea de visión entre el nodo de localización y el objetivo a localizar.

Presencia de conductores cerca de la ubicación del nodo que alteren el patrón de

radiación.

Todo ello hace que el rango de cobertura del nodo de localización se aleje del ideal y

no se cubra todo el espacio de la sala. Este efecto, se traduce en la generación de errores al

obtener la distancia a partir del vector RSSI obtenido durante el proceso de descubrimiento.

Con respecto a los algoritmos estudiados, se puede comprobar que el algoritmo

basado en la multilateración iterativa es el que mejor estima la posición. Como se puede ver

Page 128: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

126

en la tabla 5.5.1, es el que posee una menor media en el error cuadrático medio. Esto se debe

al proceso de refinamiento al que somete la posición estimada inicial.

No obstante, si se efectúa un promedio del error obtenido para cada una de las

posiciones, como se presenta en la tabla 5.5.1, se puede comprobar que el error medio

cometido por el algoritmo de Malguki es similar al algoritmo de multilateración iterativa. Esto

manifiesta la importancia de someter a la posición estimada a un proceso de corrección.

Puesto que éste permite corregir en gran parte, el error cometido al determinar la distancia a

la que se encuentra el objetivo usando la matriz de transformación obtenida del proceso de

calibración.

Por otro lado, cabe destacar que el método basado en rectángulos es el que peor

resultados nos ofrece, algo lógico teniendo en cuenta que está basado en una simplificación

del método de multilateración. Sin embargo, el ahorro computacional que presenta ese

algoritmo frente a los demás, puede hacerlo una opción recomendable siempre y cuando el

sistema diseñado no requiera una gran precisión en la posición estimada para su

funcionamiento.

Multilateración Multilateración iterativa

Min-Max Malguki

Media 1.8374 1.7171 2.2722 1.7873 Varianza 0.8956 0.9641 1.2143 0.8333

Tabla 5.5.1. Valores medios del error cuadrático medio de cada algoritmo.

Page 129: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

127

Capítulo 6.

Conclusiones

En este proyecto se ha presentado una red de sensores inalámbrica cuya finalidad es

poder localizar un objetivo en el interior de edificios. Como se derivan de los resultados

expuestos en el capítulo 5, el sistema propuesto puede ser un candidato adecuado para

resolver dicha problemática, pudiendo competir con otras soluciones comerciales existentes

hoy en día. De esta forma, se demuestra que la tecnología Bluetooth puede ser útil, no sólo

para la transferencia eficaz de datos en distancias cortas, sino que también para tareas de

posicionamiento.

Desde el punto de vista del sistema, este se ha diseñado de forma que se pueda

maximizar el número de dispositivos descubiertos, logrando un porcentaje de descubrimiento

cercano al 100%. Esto permite obtener una mayor población de datos en un tiempo inferior.

Por este motivo, se ha decidido implementar el protocolo de comunicación explicado en el

capítulo 4. En el supuesto caso de que todos los nodos de localización estuvieran descubriendo

dispositivos de manera simultánea, sin establecer esperas, se producirían interferencias entre

ellos por dos razones:

La probabilidad de colisiones de los paquetes de descubrimiento en una misma

frecuencia aumentaría.

Mientras que un nodo se encuentra en un proceso de descubrimiento, el tiempo que

permanece a la espera de recibir los paquetes de otro nodo se ve reducido. Por lo que

la probabilidad de descubrir a todos los dispositivos se vería reducida.

Por otro lado, el estudio realizado sobre los diferentes algoritmos de localización ha

dejado ver la importancia del número de nodos de localización, de la ubicación de los mismos

y de la importancia de la etapa de calibración. En primer lugar, cuanto mayor sea el número de

nodos, más precisa podrá ser la localización. Esto se debe a que existirán un mayor número de

circunferencias que intersecten entre sí delimitando mejor la zona donde se estima que se

encuentra el objetivo. En segundo lugar, la ubicación de los mismos es un factor decisivo

Page 130: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

128

puesto que debe evitarse cualquier tipo de objeto que apantalle al nodo de localización. Esto

provocaría un gran error en la estimación de la distancia y, en consecuencia, de la posición.

Finalmente, la calibración del sistema para la conversión de los valores RSSI en distancia es una

etapa crítica, ya que cualquier error que se introduzca en dicha matriz, se arrastrará a lo largo

del proceso de estimación. Esto puede provocar que el error en la posición calculada sea

elevado.

En conclusión, se ha llegado a obtener un sistema que posee una gran versatilidad

comercial debido a la naturaleza de los dos elementos utilizados: el nodo principal y el nodo de

localización. En el caso del nodo principal, al tratarse de un ordenador industrial en formato

PC/104+, además del software asociado al sistema de localización, puede implementar otra

serie de aplicaciones tales como un servidor web, las aplicaciones necesarias para convertirlo

en un punto de acceso a Internet mediante la utilización de una pasarela Bluetooth-Ethernet o

una base de datos donde almacenar las posiciones de los objetivos a localizar para un estudio

posterior. Este carácter polivalente que se le puede asignar al nodo principal hace que la

arquitectura propuesta resulte de interés para los grandes centros comerciales. La principal

utilidad para ese caso, sería ubicar al usuario del dispositivo en un lugar de la planta del centro

comercial y poder enviarle información de interés para el usuario en base a su localización. De

esta forma, el usuario podría recibir un anuncio del comercio más cercano.

6.1. Futuras líneas de trabajo

Para la mejora del sistema propuesto para la localización se podría avanzar en el

desarrollo de las siguientes tareas:

Estudio de mecanismos diferentes para la transformación de los valores RSSI en

medidas de distancias. Por ejemplo, el uso de redes neuronales.

Implementación del seguimiento de objetivos.

Estudio de algoritmos de estimación de la posición basados en funciones

probabilísticas que contemplen la aleatoriedad del proceso de descubrimiento y del

valor RSSI.

Aumentar el número de transceptores Bluetooth en los nodos de localización, de

forma que el número de respuestas de descubrimiento con información de RSSI sea

mayor.

Page 131: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

129

Configuración de una base de datos en el nodo principal para almacenar la posición del

objetivo.

Desarrollo de una interfaz web para acceder al sistema y poder ver en tiempo real cada

objetivo.

Page 132: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

130

Bibliografía

[1] R. Verdone, D. Dardari, G. Mazzini, A. Conti, “Wireless Sensor and Actuator Networks”

Academic Press.

[2] Lewis, F.L., “Wireless Sensor Networks”, Smart Environments: Technologies, Protocols,

and Applications, ed. D.J. Cook and S.K. Das, John Wiley, New York, 2004. Wireless

sensor network localization techniques. Guoqiang Mao, Baris Fidan, Brian D.o.

Anderson

[3] J. Werb, and C. Lanzl, “Designing a positioning system for finding things and people

indoors,” IEEE Spectrum,Vol. 35 , No. 9, pp. 71-78, Sept. 1998.

[4] M. Vossiek, L. Wiebking, P. Gulden, J. Wieghardt, and C. Hoffmann, “Wireless local

positioning - Concepts, solutions, applications,” Radio and Wireless Conference, 2003,

RAWCON '03, pp. 219 – 224, Aug. 10-13, 2003.

[5] J. Hightower and G. Borriello, “Location systems for ubiquitous computing,”IEEE

Computer, vol. 34, no. 8, pp. 57–66, Aug. 2001

[6] S. Guolin, C. Jie, G. Wei, and K. J. R. Liu, "Signal processing techniques in network-aided

positioning: a survey of state-of-the-art positioning designs," IEEE Signal Processing

Magazine, vol. 22, no. 4, pp. 12-23, 2005.

[7] A. H. Sayed, A. Tarighat, and N. Khajehnouri, "Network-based wireless location:

challenges faced in developing techniques for accurate wireless location information,"

IEEE Signal Processing Magazine, vol. 22, no. 4, pp. 24-40, 2005.

[8] Eva Lagunas Targarona, “Estimación conjunta de TOA y DOA en sistemas UWB”,

Proyecto final de carrera.

[9] J.M. Paés, F. García y A. Férnandez, Seminario Técnico “Tecnologías inalámbricas en

domótica,” Junio, 2004. Tema: propagación y planificación radioeléctrica.

[10] “Seguridad mobile,” http://www.seguridadmobile.com

[11] Bluetooth SIG group,“Especificación Bluetooth v.2.1.”http://www.bluetooth.com

[12] Nathan J.Muller,”Tecnología Bluetooh,”McGraw-Hill, Serie de Telecomunicaciones.

[13] Luis Díaz-Ambrona Tabernilla,”Sistema de localización en interiores,” Proyecto final de

carrera.

[14] Jose A. Costa, Neal Patwari y Alfred O. Hero, “Distributed Weigth-Multidimensional

Scaling for Node Localization in Sensor Networks,”ACM Journal NAmc, Vol V, No. N,

Junio 2005.

Page 133: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

131

[15] Jagoba Arias, Aitzol Zuloaga, Jesús Lázaro, Jon Andreu, Armando Astarloa, “Malguki: an

RSSI based ad hoc location algorithm,”Microprocessors and Microsystems, 28, 2004.

[16] Thomas Haenselmann,”Sensor Networks”, Abril, 2006.

[17] L. Doherty, K. S. J. Pister, and L. El Ghaoui. Convex position estimation in wireless

sensor networks. In Proc. IEEE Infocom 2001, Anchorage, AK, USA, April 2001.

[18] T. Adebutu, L. Sacks, and I. Marshall. Simple position estimation for wireless sensor

networks. In London Communications Symposium 2003, London, United Kingdom,

September 2003

[19] Javier I. Portillo García, Ana Belén Bermejo Nieto, Ana M. Bernardos

Barbolla,”Tecnología de identificación por radiofrecuencia (RFID): aplicaciones al

ámbito de la salud,” Informe de vigilancia médica, 2007.

[20] Josef Hallberg, Marcus Nilsson, Käre Synnes,”Bluetooth Positioning”,CSEE, 2002.

[21] Josef Hallberg, Marcus Nilsson, Käre Synnes,”Positioning with Bluetooth, IrDA,

RFID”,CSEE, 2002.

[22] R. L. Moses, D. Krishnamurthy, and R. Patterson. A self-localization method for wireless

sensor networks. Eurasip Journal on Applied Signal Processing, Special Issue on Sensor

Networks,

[23] N. Patwari, A. Hero III, M. Perkins, N. Correal, and R. O'Dea. Relative location

estimation in wireless sensor networks. IEEE Transactions on Signal Processing,

51(8):2137-2148, Aug 2003.

[24] V. Ramadurai and M. L. Sichitiu. Localization in wireless sensor networks: a

probabilistic approach. 2003 International conference on Wireless Networks (ICWN03),

pages 275-281, Las Vegas, NV, June 2003.

[25] N. B. Priyantha, A. Chakraborty, and H. Balakrishnan. The cricket location-support

system. Proc.6th ACM MOBICOM, Boston, MA, Aug 2000

[26] T.S. Rappaport. Wireless Communications Principles and Practice. Prentice Hall, 1996.

[27] Jaime José García Reinoso,”Contribución al desarrollo de aplicaciones alternativas de

Bluetooth: Localización de usuarios y telemando”, Tesis Doctoral, Abril 2003.

[28] F.J. González-Castaño y J.J. García-Reinoso. “Bluetooth location networks,” En Proc.

IEEE Global Telecommunications Conference 2002 (Globecom'02), Taipei, Taiwan, nov.

2002.

[29] F.J. González-Castaño y J.J. García-Reinoso. Survivable Bluetooth location networks. En

Proc. IEEE International Conference on Communications 2003 (ICC 2003), Anchorage,

EEUU, may. 2003.

Page 134: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

132

[30] F.J. González-Castaño, J.J. García-Reinoso, F. Gil-Castiñeira, E. Costa- Montenegro y

J.M. Pousada-Carballo. Bluetooth-assisted contextawareness in educational data

networks. Computers & Education.

[31] M. Leopold. Evaluation of Bluetooth communication: Simulation and experiments.

Technical report 02/03. Department of Computer Science, University of Copenhagen.

[32] J. Werb y C. Lanzl. A positioning system for _nding things indoors.IEEE Spectrum,

35(9):71.78, 1998.

[33] José Antonio Cobano Suárez,”Localización y seguimiento de trayectorias con robots

caminantes en entornos naturals,” Tesis doctoral, 2007

[34] Albert Huang,”The use of Bluetooth in Linux and Location Aware Computing”, Master

of Science Thesis, MIT, Mayo 2005.

[35] Brent A. Miller and Chatschik Bisdikian. Bluetooth Revealed. Prentice Hall, Upper

Saddle River, NJ, second edition, 2002.

[36] P. Bahl and V. N. Padmanabhan. RADAR: An in-building RF-based user locationand

tracking system. In IEEE Infocom, March 2000. D. Graumann, J. Hightower, W. Lara,

and G. Borriello. Real-world implementation of the Location Stack: The Universal

Location Framework. In Fifth IEEE Workshop on Mobile Computing Systems and

Applications, October 2003.

[37] F. Naya, H. Noma, R. Ohmura, K. Kogure, ”Bluetooth-based IndoorProximity Sensing for

Nursing Context Awareness”, ISWC’05, 2005.

[38] J. Rodas, T. M. Fernández, D. I. Iglesia, C. J. Escudero, “Sistema de Posicionamiento

Basado en Bluetooth con Calibrado Dinámico”, in Proc. URSI, Santa Cruz de Tenerife,

Spain, September 2007.

[39] O. Fresnedo, D. Iglesia, C. J. Escudero, “Bluetooth Inquiry Procedure: Optimization and

Influence of the Number of Devices”, in Proc. International Conference Communication

Systems and Networks (IASTED-CSN), Palma de Mallorca, Spain, 29-31 August 2007.

[40] J. Rodas, and C. J. Escudero, "Joint Estimation of Position and Channel Propagation

Model Parameters in a Bluetooth Network", in Proc. Synergies in Communications and

Localization (SyCoLo), ICC 2009, Dresden, Germany, 18 June 2009.

[41] Silke Feldmann, Kyandoghere Kyamakya, Ana Zapater, Zighuo Lue,”An indoor

Bluetooth-based positioning system: concept, Implementation and experimental

evaluation”,2003

Page 135: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

133

Apéndice A.

Pseudocódigos del nodo de

localización

Page 136: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

134

Page 137: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

135

Page 138: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

136

Page 139: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

137

Page 140: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

138

Page 141: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

139

Page 142: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

140

Page 143: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

141

Apéndice B.

Código fuente

del nodo de localización

Page 144: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

142

#include <stdio.h> #include <stdlib.h> #include <avr/io.h> #include <string.h> #include <avr/interrupt.h> #include <compat/ina90.h> #define F_CPU 7372800 #define BAUDRATE 115200 #define RXBUFFER_SIZE_MAX 55 #define TXBUFFER_SIZE_MAX 150 #define INQUIRY_SIZE_MAX 50 #define NUM_DISPOSITIVOS 5 #define INQUIRY 0 #define ESPERA 1 #define PROCESAR 2 #define RESPUESTA_OK 3 #define TRAMA 4 #define RESTAURAR 5 #define IDLE 6 #define ERROR 7 #define PROCESAR_TRAMA_DATOS 8 #define PROCESAR_TRAMA_CONTROL 9 #define CIERRE 11 #define ESPERA_FIN 12 #define ESPERA_CIERRE 13 #define ESPERA_INQUIRY 15 typedef unsigned char uint8; typedef unsigned int uint16; void ioinit(void); void wt12_init(void); void USART_flush(void); void USART_init(unsigned int baud); void USART_transmit(char data); void timer1Init(void); void EEPROM_write(unsigned int uiAddress, unsigned int data); unsigned char EEPROM_read(unsigned int uiAddress); void delay_ms(double ms); void delay_us(double us); void delay_loop_2(unsigned int count); void delay_loop_1(unsigned int count); void tx_cad(const char *cad); void transmite_cmd(const char *cad, uint8 link); void iniciar_cadena(char *cad,uint8 tam); /****************************/ /* Variables globales */ /****************************/ char TXbuffer[TXBUFFER_SIZE_MAX]; char RXbuffer[RXBUFFER_SIZE_MAX]; uint8 RXbuffer_indice; uint8 estado; static volatile uint8 salir; static volatile uint8 salir_inquiry; static volatile uint8 q; uint8 fin; uint8 fin_cierre; static volatile uint8 num_disp; char inquiry_partial[NUM_DISPOSITIVOS][INQUIRY_SIZE_MAX]; char direccion_bt[NUM_DISPOSITIVOS][18];

Page 145: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

143

char rssi[NUM_DISPOSITIVOS][4]; char resp[2]; char trama[50]; const char cmd0[]={"SET CONTROL MUX 1\n"}; //0 const char cmd1[]={"SET BT LAP 9e8b05"}; //1 const char cmd2[]={"SET BT PAGEMODE 3 1000 0"}; //2 const char cmd3[]={"SET BT POWER 3 3 3"}; //3 const char cmd4[]={"SET CONTROL CONFIG 0 001F"}; //4 const char cmd5[]={"SET CONTROL ECHO 4"}; //5 const char cmd6[]={"RESET"}; //6 const char answer0[]={"OK\r"}; const char answer1[]={"INQUIRY 5"}; const char answer2[]={"CIERRE\r"}; uint8 desp_control; uint8 desp_datos; uint8 salir_reposo; /****************************/ /* Funcion principal */ /****************************/ int main(void) { uint8 bit=0; uint8 k=0; uint8 contador=0; cli(); ioinit(); delay_ms(100); sei(); while(1) { /*transmite_cmd(cmd[1],0xFF); delay_ms(5000);*/ /*PORTB=(1<<PB0); delay_ms(1000); PORTB=(0<<PB0); delay_ms(1000);*/ switch(estado) { case RESTAURAR: for(contador=0;contador<NUM_DISPOSITIVOS;contador++) { iniciar_cadena(inquiry_partial[contador],INQUIRY_SIZE_MAX); iniciar_cadena(direccion_bt[contador],18); iniciar_cadena(rssi[contador],4); } iniciar_cadena(TXbuffer,TXBUFFER_SIZE_MAX); iniciar_cadena(RXbuffer,RXBUFFER_SIZE_MAX); RXbuffer_indice=0; salir=0; fin=0; num_disp=0; desp_control=0; desp_datos=0; salir_reposo=0; salir_inquiry=0; q=0; num_disp=0; estado=IDLE;

Page 146: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

144

break; case IDLE: while(salir_reposo==0 && estado==IDLE) { delay_ms(1000); transmite_cmd(cmd2,0xFF); }; salir_reposo=0; break; case RESPUESTA_OK: delay_ms(200); transmite_cmd(answer0,0x00); estado=INQUIRY; break; case INQUIRY: delay_ms(200); transmite_cmd(answer1,0xFF);//INQUIRY 3 delay_ms(200); estado=ESPERA; break; case ESPERA: while(salir==0); salir=0; estado=ESPERA_INQUIRY; break; case ESPERA_INQUIRY: while(salir_inquiry==0&&q!=num_disp); salir_inquiry=0; estado=PROCESAR; break; case PROCESAR: for(contador=0;contador<(num_disp);contador++) { bit=16; k=0; while(bit<33) direccion_bt[contador][k++]=inquiry_partial[contador][bit++]; direccion_bt[contador][k]=0x00; bit=44; k=0; while(bit<47) rssi[contador][k++]=inquiry_partial[contador][bit++]; rssi[contador][k]=0x00; } switch(num_disp) { case 0: resp[0]='0'; resp[1]=0x00; break; case 1: resp[0]='1'; resp[1]=0x00; break; case 2: resp[0]='2'; resp[1]=0x00; break; case 3: resp[0]='3'; resp[1]=0x00; break;

Page 147: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

145

case 4: resp[0]='4'; resp[1]=0x00; break; case 5: resp[0]='5'; resp[1]=0x00; break; default: break; } estado=TRAMA; break; case TRAMA://f PORTB=(1<<PB0); strcpy(TXbuffer,"RSSI "); strcat(TXbuffer,resp); strcat(TXbuffer," "); contador=0; for(contador=0;contador<num_disp;contador++) { strcat(TXbuffer,direccion_bt[contador]); strcat(TXbuffer," "); strcat(TXbuffer,rssi[contador]); strcat(TXbuffer," "); } strcat(TXbuffer,"\r"); transmite_cmd(TXbuffer,0x00); PORTB=(0<<PB0); estado=ESPERA_FIN; break; case ESPERA_FIN: while(fin==0) { delay_ms(100); }; fin=0; estado=CIERRE; break; case CIERRE: delay_ms(100); transmite_cmd(answer2,0x00); estado=ESPERA_CIERRE; break; case ESPERA_CIERRE: while(fin_cierre==0) { delay_ms(100); }; fin_cierre=0; estado=RESTAURAR; break; default: break; } } return 0; } /****************************/ /* INTERRUPCIONES */

Page 148: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

146

/****************************/ ISR(USART_RXC_vect) { uint8 j; uint8 i; cli(); RXbuffer[RXbuffer_indice]=UDR; if(RXbuffer[1]==0xFF&&((RXbuffer[RXbuffer_indice]^RXbuffer[1])==0xFF)&&RXbuffer_indice!=2) { RXbuffer_indice=0; desp_control=RXbuffer[3]; j=0; while(j<desp_control) { trama[j]=RXbuffer[4+j]; j++; } trama[j]=0x00; if(strstr(trama,"INQUIRY_PARTIAL")!=NULL) { strcpy(inquiry_partial[num_disp],trama); num_disp++; estado=ESPERA; } else { if(strstr(trama,"INQUIRY 00:")!=NULL) { q++; estado=ESPERA_INQUIRY; } else { if(strstr(trama,"INQUIRY ")!=NULL) { salir=1; estado=ESPERA; } else { if((strstr(trama,"NO CARRIER 0 ERROR 0")!=NULL)) { fin_cierre=1; estado=ESPERA_CIERRE; } } } } } else { if(RXbuffer[1]==0x00&&((RXbuffer[RXbuffer_indice]^RXbuffer[1])==0xFF)&&RXbuffer_indice!=2) { RXbuffer_indice=0; desp_datos=RXbuffer[3]; i=0; while(i<desp_datos) { trama[i]=RXbuffer[4+i]; i++;

Page 149: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

147

} trama[i]=0x00; if(strstr(trama,"START")!=NULL) { salir_reposo=1; estado=RESPUESTA_OK; } else { if(strstr(trama,"OK")!=NULL) { fin=1; estado=ESPERA_FIN; } else { if(strstr(trama,"REPETIR")!=NULL) { estado=TRAMA; } } } } else RXbuffer_indice++; } sei(); } /****************************/ /* Inicialización */ /****************************/ /****************************/ /* Puertos */ /****************************/ void ioinit(void) { DDRB = (1<<PB1)|(1<<PB0); PORTB = (0<<PB1)|(0<<PB0); DDRD = (1<<PD6); PORTD = (1<<PD6); USART_init((unsigned int)((F_CPU/16)/BAUDRATE-1)); // ocillator fq/(16*baud) rate -1 or f_cpu/16/BAUDRATE-1 delay_ms(100); USART_flush(); delay_ms(100); wt12_init(); estado=RESTAURAR; } /****************************/ /* Bluegiga */ /****************************/ void wt12_init(void) { delay_ms(200); tx_cad(cmd0); delay_ms(200); transmite_cmd(cmd1,0xFF); delay_ms(200); transmite_cmd(cmd2,0xFF); delay_ms(200); transmite_cmd(cmd3,0xFF);

Page 150: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

148

delay_ms(200); transmite_cmd(cmd4,0xFF); delay_ms(200); transmite_cmd(cmd5,0xFF); delay_ms(200); // transmite_cmd("SET",0xFF); // delay_ms(2000); } void iniciar_cadena(char *cad,uint8 tam) { uint8 byte=0; while(byte<tam) { cad[byte++]=0x00; } } /****************************/ /* Funciones de la USART */ /****************************/ void USART_flush( void ) { uint8 dummy; while ( UCSRA & (1<<RXC) ) dummy = UDR; } void USART_init(unsigned int baud) { UBRRH = 0x02; //Formato de comunicaciones: 8-N-1 UCSRC = (0<<URSEL)|(0<<USBS)|(1<<UCSZ1)|(1<<UCSZ0); //Configuración del baudrate UBRRH = (uint8) baud>>8; UBRRL = (uint8) baud; //Habilitar Recepcion y Transimision UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); } void USART_transmit(char data) { if(data=='\n') { USART_transmit(0x0D); } //Esperar a que el buffer de transmision este vacio while (((UCSRA)&(1<<UDRE))==0); //Transmision del dato UDR=data; } void tx_cad(const char *cad) { uint8 pos=0; while(cad[pos]!=0x00) USART_transmit(cad[pos++]); } void transmite_cmd(const char *cad,uint8 link) { char outbuf[150]={0};

Page 151: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

149

// uint8 *outbuf=NULL; uint8 pos=0; uint8 len=strlen(cad); uint8 m=0; outbuf[pos++]=0xBF; outbuf[pos++]=link; outbuf[pos++]=0x00; outbuf[pos++]=len; memmove(outbuf+pos,cad,len); pos+=len; outbuf[pos++]=link^0xFF; while(m<pos) USART_transmit(outbuf[m++]); } /****************************/ /* DELAY */ /****************************/ void delay_loop_1(unsigned int count) /* time delay for us */ { __asm__ volatile ( "1: dec %0" "\n\t" "brne 1b" : "=r" (count) : "0" (count) ); } void delay_loop_2(unsigned int count) { __asm__ volatile ( "1: sbiw %0,1" "\n\t" "brne 1b" : "=w" (count) : "0" (count) ); } void delay_us(double us) { unsigned char ticks; double tmp = ((F_CPU) / 3e6) * us; if ( tmp < 1.0 ) ticks = 1; else if ( tmp > 255) { delay_ms( us / 1000.0); return; } else ticks = (uint8)tmp; delay_loop_1( ticks ); } void delay_ms(double ms) { unsigned int ticks; double tmp = ((F_CPU) / 4e3) * ms;

Page 152: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

150

if ( tmp < 1.0 ) ticks = 1; else if ( tmp > 65535 ) { // __ticks = requested delay in 1/10 ms ticks = (unsigned int) ( ms * 10.0); while( ticks ) { // wait 1/10 ms delay_loop_2(((F_CPU) / 4e3) / 10); ticks --; } return; } else ticks = (unsigned int)tmp; delay_loop_2(ticks); }

Page 153: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

151

Apéndice C.

Código fuente

de la aplicación principal.

Page 154: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

152

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <syslog.h> #include <sys/socket.h> #include <sys/stat.h> #include <sys/types.h> #include <bluetooth/bluetooth.h> #include <bluetooth/hci.h> #include <bluetooth/hci_lib.h> #include <bluetooth/rfcomm.h> #include <bluetooth/sdp.h> #include <bluetooth/sdp_lib.h> #define ERROR_LECTURA -1 #define BDADDR_DONGLE "00:02:5B:0A:6E:52" typedef struct param { int dev_id; int dd; char bt_address[19]; uint8_t *lap; uint8_t len_inq; uint8_t max_rsp; uint8_t tipo_inq; uint8_t modo_inq; uint8_t flags; }PARAM; void change_iac(int dd,uint8_t lap[3],uint8_t tipo_inquiry,uint8_t modo_inquiry); void init(PARAM *arg, int dev_id, int dd); int leer_cmd(int s, char *buffer); int main(int argc,char *argv[]) { int dev_id, dd; PARAM parametros; char bd_address[18]={0}; char buffer[128]={0}; char buffer_fichero[128]={0}; int sock[5]; int num_rsp=0; int i=0; int contador=0; int estado=0; int bytes_write=0; int salir_lectura=0; FILE *fd=NULL; char *cmd[]={"START\r\n","OK\r\n","REPITE\r\n"}; char *nodos[]={"00:07:80:90:C8:1E","00:07:80:93:9A:FF","00:07:80:93:9A:FE","00:07:80:90:C8:1A"}; inquiry_info *ii=NULL; struct sockaddr_rc addr; if(argc!=2) { printf("USO: server + nombre_fichero\n"); exit(0); }

Page 155: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

153

dev_id=hci_devid(BDADDR_DONGLE); dd=hci_open_dev(dev_id); if(dev_id < 0 || dd < 0){ printf("Error: no se ha podido abrir el dispositivo\n"); exit(1); } init(&parametros,dev_id,dd); change_iac(dd,parametros.lap,parametros.tipo_inq,parametros.modo_inq); while(1){ ii = (inquiry_info*)malloc(parametros.max_rsp * sizeof(inquiry_info)); #ifdef _DEBUG_ printf("Dev_id:0x%2.2x Length:0x%2.2x Max_rsp:0x%2.2x Lap:0x%2.2x%2.2x%2.2x\n",parametros.dev_id,parametros.len_inq,parametros.max_rsp,parametros.lap[2],parametros.lap[1],parametros.lap[0]); #endif num_rsp = hci_inquiry(parametros.dev_id, parametros.len_inq, parametros.max_rsp, parametros.lap, &ii, parametros.flags); if( num_rsp < 0 ){ printf("Error: no hay dispositivos encontrados\n"); //exit(0); } #ifdef _DEBUG_ for(i=0;i<num_rsp;i++){ ba2str(&(ii+i)->bdaddr,bd_address); printf("[%d]\t%s %d %d %d %d %d %d %d\n",i+1,bd_address,(ii+i)->pscan_rep_mode,(ii+i)->pscan_period_mode,(ii+i)->pscan_mode,(ii+i)->dev_class[0],(ii+i)->dev_class[1],(ii+i)->dev_class[2],(ii+i)->clock_offset); memset(bd_address,0,sizeof(bd_address)); } #endif for(i=0;i<num_rsp;i++){ sock[i] = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM); addr.rc_family = AF_BLUETOOTH; addr.rc_channel = (uint8_t) 1; addr.rc_bdaddr=(ii+i)->bdaddr; estado = connect(sock[i], (struct sockaddr *)&addr, sizeof(addr)); if(estado<0 || estado>0){ perror("Error: No se ha podido establecer conexion\n"); close(sock[i]); } else{ bytes_write=write(sock[i],cmd[0],strlen(cmd[0])); if(bytes_write<0){ while(bytes_write<0&&contador<3){ bytes_write=write(sock[i],cmd[0],sizeof(cmd[0])); contador++; } contador=0; salir_lectura=1; printf("Error: No se ha podido enviar %s\n",cmd[0]); } while(salir_lectura!=1){ printf("Lectura OK:\n"); if(leer_cmd(sock[i],buffer)<0) salir_lectura=1; else{ if(strstr(buffer,"OK")!=NULL){ printf("Lectura RSSI:\n"); memset(buffer,0,sizeof(buffer)); if(leer_cmd(sock[i],buffer)<0)

Page 156: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

154

salir_lectura=1; else{ if(strstr(buffer,"RSSI")!=NULL){ fd=fopen(argv[1],"a+b"); if(fd==NULL){ printf("Error al abrir el fichero solicitado\n"); exit(1); } ba2str(&addr.rc_bdaddr,buffer_fichero); strcat(buffer_fichero," "); strcat(buffer_fichero,buffer); strcat(buffer_fichero,"\n"); fwrite(buffer_fichero,sizeof(char),strlen(buffer_fichero),fd); memset(buffer_fichero,0,sizeof(buffer_fichero)); memset(buffer,0,sizeof(buffer)); fclose(fd); bytes_write=write(sock[i],cmd[1],strlen(cmd[1])); if(bytes_write<0){ printf("Error: no se ha podido enviar %s",cmd[1]); close(sock[i]); salir_lectura=1; } else{ printf("Lectura CIERRE:\n"); if(leer_cmd(sock[i],buffer)<0) salir_lectura=1; else{ printf("Cierre\n"); if(strstr(buffer,"CIERRE")!=NULL){ memset(buffer,0,sizeof(buffer)); close(sock[i]); salir_lectura=1; } else memset(buffer,0,sizeof(buffer)); } } } } } } } salir_lectura=0; } } printf("Liberando memoria\n"); bt_free(ii);

Page 157: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

155

} return 0; } /*! \fn int leer_cmd(int s, char *buffer) * \brief Función que permite leer datos del módulo Bluegiga WT-12 * \param int s: paso por valor del descriptor de ficheros asociado con el socket RFCOMM que soporta la comunicación Bluetooth. * \param char *buffer: paso por referencia de una cadena de caracteres donde se procederá a escribir el comando enviado por * el nodo de localización. */ int leer_cmd(int s, char *buffer) { int error=0; int salir=0; int bytes_read=0; int i=0; char caracter=0x00; while(salir!=1){ bytes_read=recv(s,&caracter,sizeof(caracter),0); if(bytes_read<0){ perror("Error: no se ha podido efectuar la operacion de lectura\n"); salir=1; error=ERROR_LECTURA; } else{ buffer[i++]=caracter; if(buffer[i-1]=='\r'){ buffer[i-1]='\0'; salir=1; #ifdef _DEBUG_ printf("Cadena recibida [%s]\n",buffer); #endif } } } return error; } void init(PARAM *arg, int dev_id, int dd) { arg->dev_id=dev_id; arg->dd=dd; arg->lap=(uint8_t *)malloc(3*sizeof(uint8_t)); arg->lap[0]=0x05; arg->lap[1]=0x8b; arg->lap[2]=0x9e; arg->len_inq=0x05; arg->max_rsp=255; arg->tipo_inq=0x01; arg->modo_inq=0x01; arg->flags=IREQ_CACHE_FLUSH; } void change_iac(int dd,uint8_t lap[3],uint8_t tipo_inquiry,uint8_t modo_inquiry) { int iac_liac; uint8_t iac,type,mode; uint8_t lap_check[3];

Page 158: “Estudio e implementación - dinel.us.es · Proyecto Final de Carrera “Estudio e implementación de técnicas de localización basadas en redes de sensores sobre tecnología Bluetooth”

156

#ifdef _DEBUG_ iac_liac = hci_read_current_iac_lap(dd, &iac, lap_check, 1000); hci_read_inquiry_mode(dd,&mode,1000); hci_read_inquiry_scan_type(dd, &type,1000); printf("iac = 0x%2.2x\n",iac); printf("lap = 0x%2.2x%2.2x%2.2x\n",lap_check[2],lap_check[1],lap_check[0]); printf("Inquiry:\n\tTipo:\t0x%2.2x\n\tModo:\t0x%2.2x\n",type,mode); #endif iac=0x01; iac_liac = hci_write_current_iac_lap(dd, iac, lap, 1000); if(iac_liac<0) { printf("Error al modificar el valor del iac\n"); exit(1); } if(hci_write_inquiry_scan_type(dd, tipo_inquiry,1000)<0) { printf("Error: no se ha podido escribir el tipo de inquiry\n"); exit(1); } if(hci_write_inquiry_mode(dd, modo_inquiry,1000)<0) { printf("Error: no se ha podido escribir el modo de inquiry\n"); exit(1); } #ifdef _DEBUG_ iac_liac = hci_read_current_iac_lap(dd, &iac, lap_check, 1000); hci_read_inquiry_mode(dd,&mode,1000); hci_read_inquiry_scan_type(dd, &type,1000); printf("iac = 0x%2.2x\n",iac); printf("lap = 0x%2.2x%2.2x%2.2x\n",lap_check[2],lap_check[1],lap_check[0]); printf("Inquiry:\n\tTipo:\t0x%2.2x\n\tModo:\t0x%2.2x\n",type,mode); #endif }