INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA
MECÁNICA Y ELÉCTRICA
“RED INALÁMBRICA DE SENSORES AMBIENTALES MEDIANTE EL
USO DE LA TECNOLOGÍA ZIGBEE”
PROYECTO DE INVESTIGACIÓN
QUE PARA OBTENER EL TÍTULO DE INGENIERO
EN COMUNICACIONES Y ELECTRÓNICA
PRESENTAN
HORACIO CONDE HERNÁNDEZ
JUAN ANTONIO MARTÍNEZ HERNÁNDEZ
ASESORES
M. EN C. MIGUEL SÁNCHEZ MERÁZ
DR. MARIO EDUARDO RIVERO ÁNGELES
MÉXICO, D.F. DICIEMBRE DE 2013
2
AGRADECIMIENTOS
Agradezco al IPN, mi alma máter, por darme una formación completa a un nivel
competitivo. Le agradezco por brindarme la oportunidad de desarrollarme
culturalmente, y brindar espacios para desarrollar estas habilidades adquiridas
Agradezco a la ESIME Zacatenco porque en sus aulas me brindo amistades y lo
más importante, el conocimiento
Agradezco todo el apoyo incesable brindado por mi familia, padres, hermanos y
amigos, que siempre estuvieron cerca y me continuaron enseñando el valor de la
amistad.
El valioso apoyo de mi asesor M. en C. Miguel Sánchez Meráz y de profesores
que con poco o mucho contribuyeron a la culminación de este proyecto.
Gracias a Pedro por darnos tutorías para el desarrollo de la interfaz de diseño de
este proyecto
Agradezco a Juan Antonio Martínez Hernández coautor de este proyecto, por
brindarme apoyo durante la realización del proyecto, por mantenerme despierto
cuando los tiempos se acortaban, por nunca darse por vencido y dar igualmente
su mejor esfuerzo
Agradezco a todo el personal del IPN por mantener esta escuela con el nivel que
tiene en todos los aspectos.
Un agradecimiento personal, por saber que por más difícil que este la situación,
supe que siempre existe un camino que resuelva todo.
A todas las generaciones antes y después de mí, con concebir un universo que no
muchos pueden comprender y por compartirlo con los demás, exhorto a todos a
seguir luchando por un futuro utópico y porque siempre esté:
“LA TÉCNICA AL SERVICIO DE LA PATRIA”
Horacio Conde Hernández
3
DEDICATORIA
Quiero dedicar este proyecto terminal a todos mis conocidos ya que este grande
reto siempre fue con el afán de grandeza, pero siempre aunado a la humildad y el
respeto
A Gudelia Hernández Peralta, Horacio Conde Sánchez, Mayra Conde Hernández,
Carlos Conde Hernández, mi familia.
A la H. Casa Nacional del Estudiante que me brindó la oportunidad de alojarme en
esa gran casa con tanto historia, tantos acontecimientos y tanta buena vibra, que
en ella no solo aprendí a soñar sino a conocer más allá de lo que nuestra nublada
visión permite, fue aquí donde aprendí a conocerme, conocer a la gente, a ser
más humano, a valorar cualquier cosa por tan insignificante que parezca, a
siempre mantener la cabeza en alto ante lo difícil que sea la situación, por la
dignidad, por lo que humanamente nos corresponde, donde luchar es una
actividad diaria y donde aprendí lo siguiente:
“Desgraciados los pueblos donde la juventud no haga temblar el mundo y los
estudiantes se mantengan sumisos ante el tirano” Lucio Cabañas.
En esta casa conocí a México oralmente, mediante historias de tradiciones,
costumbres, paisajes, lugares, gente, todo gracias a mis compañeros que
considero mis hermanos
“Cámara, pivote y rin, cámara pivote y rin, en Tepito y en la lucha, la Casa
Estudiantil”
Que viva esta casa por la eternidad y que en ella se formen más personas con una
perspectiva distinta de nuestra sociedad.
Darle tiempo al tiempo.
Muchos sacrificamos varias cosas, pero los grandes sacrificios siempre tienen su
recompensa.
Horacio Conde Hernández
4
AGRADECIMIENTOS
A mis padres a quienes les debo su infinito apoyo y amor incondicional,
agradezco sus consejos y el esfuerzo para que siguiéramos adelante en la
vida. A mi hermana por su amor, apoyo y compañía. A mi familia entera por
ser mi motivación en la vida.
A mis amigos por estar en los buenos y malos momentos y con quienes día
a día sigo aprendiendo.
A mis asesores por confiar en mí y en el proyecto, así como a todo y cada
uno de mis profesores por todos los conocimientos transmitidos.
Gracias también al Instituto Politécnico Nacional y a la Escuela Superior de
Ingeniería Mecánica y Eléctrica- Zacatenco, por darme la oportunidad de
pertenecer a tan honrosa institución y vivir miles de experiencias en ella.
Juan Antonio Martínez Hernández
5
ÍNDICE
OBJETIVO ............................................................................................................. 8
JUSTIFICACIÓN ................................................................................................... 8
INTRODUCCIÓN ................................................................................................... 9
CAPÍTULO 1 REDES INALÁMBRICAS .............................................................. 10
1.1 SENSORES ............................................................................................... 11
1.1.1. TIPOS DE SENSORES........................................................................... 11
1.2. REDES INALÁMBRICAS .......................................................................... 12
1.2.1 TIPOS DE REDES .................................................................................. 13
1.2.2 REDES INALÁMBRICAS DE SENSORES ............................................. 16
CAPÍTULO 2 IEEE 802.15.4/ZIGBEE .................................................................. 19
2.1 TECNOLOGÍA ZIGBEE ............................................................................. 20
2.1.1 IEEE 802.15.4 - ZIGBEE......................................................................... 20
2.1.2 TIPOS DE DISPOSITIVOS ..................................................................... 21
2.2 TOPOLOGÍAS DE RED ............................................................................. 22
2.2.1 TOPOLOGÍA DE ESTRELLA ................................................................. 23
2.2.2 TOPOLOGÍA “PEER-TO-PEER” ........................................................... 24
2.2.2.1 TOPOLOGÍA DE MALLA (MESH TOPOLOGY) ..................................... 24
2.2.2.2 TOPOLOGÍA DE ÁRBOL (CLÚSTER TREE TOPOLOGY) .................... 24
2.2.3 TAREAS BÁSICAS DEL COORDINADOR PAN .................................... 25
2.3 ARQUITECTURA ....................................................................................... 26
2.4 CAPA FÍSICA ............................................................................................ 27
2.5 CAPA MAC ................................................................................................ 32
2.5.1 MODOS DE FUNCIONAMIENTO DE RED ............................................. 33
2.5.2 ALGORITMO CSMA-CA ........................................................................ 36
2.5.3 INICIO Y MANTENIMIENTO DE REDES DE ÁREA PERSONAL .......... 39
2.5.4 FORMATO DE TRAMAS ........................................................................ 40
2.6 IMPLEMENTACIÓN DEL ESTÁNDAR ZIGBEE ........................................ 42
2.7 CAPA DE RED........................................................................................... 43
2.8 CAPA DE APLICACIÓN ............................................................................ 45
2.9 CAPA DE SEGURIDAD ............................................................................. 47
6
2.10 VENTAJAS DE ZIGBEE ............................................................................ 48
2.11 APLICACIONES ZIGBEE .......................................................................... 49
CAPÍTULO 3 SISTEMA DE DESARROLLO ....................................................... 51
3.1 SISTEMA DE DESARROLLO .................................................................... 52
3.2 KIT DE DESARROLLO CC2530 (ZDK) ..................................................... 52
3.2.1 MÓDULO CC2530EM ............................................................................. 53
3.2.2 MÓDULO CC2531 USB DONGLE ........................................................ 54
3.2.3 SMARTRF05BB ..................................................................................... 55
3.2.4 PLACA DE DESARROLLO (SMARTRF05EB) ...................................... 55
3.2.4.1 CONTROLADOR USB CC2530 ............................................................. 57
3.2.4.2 ALIMENTACIÓN DE LA PLACA ............................................................ 57
3.2.4.3 INTERFAZ UART RS232 ........................................................................ 59
3.2.4.4 JOYSTICK .............................................................................................. 60
3.2.4.5 PANTALLA LCD .................................................................................... 60
3.2.4.6 BOTONES .............................................................................................. 60
3.2.4.7 DIODOS LED .......................................................................................... 61
3.2.4.8 CONECTORES EM ................................................................................ 61
3.2.4.9 CABECERAS DE JUMPERS USB Y E/S ............................................... 62
3.2.5 CIRCUITO INTEGRADO CC2530 .......................................................... 62
3.2.5.1 CPU Y MEMORIA ................................................................................... 63
3.2.5.2 GESTIÓN DE ALIMENTACIÓN .............................................................. 63
3.2.5.3 PERIFÉRICOS ........................................................................................ 64
3.2.5.4 RADIO .................................................................................................... 65
3.2.5.5 CONVERTIDOR ANALÓGICO DIGITAL (ADC - ANALOGIC DIGITAL
CONVERTER) ..................................................................................................... 66
3.3 HERRAMIENTAS DE SOFTWARE ........................................................... 67
3.3.1 IAR EMBEDDED WORKBENCH EW8051 ............................................. 67
3.3.2 MICROSOFT VISUAL STUDIO 2012 ..................................................... 69
3.4 PERFIL Z-STACK ...................................................................................... 70
CAPÍTULO 4 IMPLEMENTACIÓN DE LA RED Y DESARROLLO DE LA
INTERFAZ DE USUARIO .................................................................................... 72
7
4.1 CONFIGURACIÓN DE LA RED DE SENSORES ..................................... 73
4.2 OBTENCIÓN E INTERPRETACIÓN DE TRAMA ...................................... 74
4.2.1 FORMATO DE MENSAJE DEL SENSOR .............................................. 74
4.2.2 TRAMA DEL PUERTA DE ENLACE ...................................................... 75
4.3 LECTURA Y VISUALIZACIÓN DE TRAMA ............................................... 77
4.4 PRUEBAS SOBRE LA RED ...................................................................... 80
4.4.1 RANGO DE COBERTURA DE LOS DISPOSITIVOS ZDK ..................... 80
4.4.2 MENSAJES PERDIDOS ......................................................................... 81
4.4.3 MONITOREO AMBIENTAL .................................................................... 81
CONCLUSIONES ................................................................................................ 85
LÍNEAS FUTURAS DE TRABAJO ...................................................................... 86
ACRÓNIMOS ....................................................................................................... 87
BIBLIOGRAFÍA Y REFERENCIAS ..................................................................... 90
8
OBJETIVO
Desarrollar una Red Inalámbrica de Sensores de temperatura ambiental
comunicada por medio de la tecnología ZigBee, la cual hará el muestreo de estos
parámetros durante un lapso de tiempo.
Dicha información provendrá de un dispositivo sensor y será enviada a un
dispositivo coordinador, este último estará conectado mediante la comunicación
serial a una PC donde se interpretará, analizara y visualizará, todo esto mediante
una interfaz de usuario.
JUSTIFICACIÓN
Este proyecto se realizó desarrollando una Red Inalámbrica de Sensores con el
propósito de hacer un muestreo de las temperaturas ambientales existentes en
una región determinada por los usuarios.
Sin embargo, la implementación de esta red con las adecuaciones necesarias
podría lograr una recopilación de cantidades físicas diferentes, tales como presión
atmosférica, humedad, nivel de suelo, etc., dicha información podrá ser utilizada
en diferentes ámbitos por ejemplo; de exploración, militares, académicos entre
otros.
9
INTRODUCCIÓN
En la era de las comunicaciones, nuestra sociedad se halla inmersa en la
información, debido a esto, la Ingeniería moderna tiene mayores retos en poner a
disposición del usuario dispositivos que faciliten el acceso a esta.
La Ingeniería ha evolucionado de una manera sorprendente ya que desde las
primeras computadoras de escritorio hasta los más modernos PDA (Personal
Digital Assistant, Asistente Personal Digital) y teléfonos móviles, se han logrado
crear dispositivos más rápidos, pequeños, versátiles y multitarea; el desarrollo de
estos dispositivos no tendría sentido si no existiera la infraestructura para su
implementación y así permitir la interconexión y por ende la interacción entre ellos.
Conforme a este principio de creación paralela se han desarrollado redes de
interconexión, desde las primeras redes cableadas LAN (Local Area Network),
hasta las redes inalámbricas WLAN (Wireless Local Area Network), WPAN
(Wireless Personal Area Network), LR-WPAN (Low Rate Wireless Personal Area
Network) o RIS (Redes Inalámbricas de Sensores, por sus siglas en inglés
Wireless Sensor Network, WSN).
Son estas últimas redes, las inalámbricas, las que han evolucionado en los últimos
tiempos debido a una de las necesidades más demandadas por los usuarios, la
movilidad.
10
CAPÍTULO 1 REDES INALÁMBRICAS
11
1.1 SENSORES
Un sensor, es un dispositivo capaz de adquirir conocimientos de cantidades físicas
del medio que lo rodea, las cuales por su naturaleza o tamaño no pueden ser
medidas de forma exacta por los sentidos, dando como resultado una señal
transducible en función de la variable medida.
1.1.1. TIPOS DE SENSORES
La cantidad de diversos tipos de sensores existentes para las distintas magnitudes
físicas es muy elevada, por lo que es necesaria una clasificación previa de
acuerdo a algún criterio.
Según el aporte de energía, los sensores se pueden clasificar en moduladores o
generadores. Los sensores moduladores son aquellos en que la energía de la
señal de salida es proveniente de una fuente de energía auxiliar. En cambio, en
los sensores generadores, la energía de la señal de salida es adquirida por la
señal de entrada.
Según su señal de salida, los sensores se dividen en analógicos y digitales. Los
sensores analógicos presentan una señal de salida variable y continua en el
tiempo. Los sensores digitales proporcionan una señal de salida que varía en
forma discreta por lo que no requieren de una conversión analógica/digital.
De acuerdo a su modo de operación pueden ser de deflexión o de comparación.
En los sensores por deflexión, la magnitud a medir produce un efecto similar pero
en sentido contrario. En los sensores por comparación, se intenta evitar la
deflexión mediante un efecto opuesto al de la magnitud a medir buscando un
equilibrio mediante un patrón al cual hace referencia.
Según su tipo de relación entrada-salida, se dividen en primer orden, segundo
orden y de orden superior donde su clasificación dependerá del número de
12
elementos almacenadores de energía independientemente del sensor, los cuales
afectan la exactitud y velocidad de respuesta del sensor.
Cualquier clasificación es adecuada y dependerá en gran parte de lo que se desea
medir. Pero lo más recurrente es establecer una clasificación acorde a la magnitud
de medida. Es decir, sensores de temperatura, presión, humedad, velocidad,
fuerza, etc. No obstante, este tipo de clasificación carece de profundidad ya que
las cantidades de magnitudes a medir son inmensas.
1.2. REDES INALÁMBRICAS
Podemos definir una red inalámbrica como aquella que se caracteriza por el
empleo del aire y las ondas electromagnéticas como soporte de la comunicación.
Estas redes poseen ciertas ventajas a diferencia de sus homólogas cableadas
(cable de cobre o fibra óptica), a continuación haremos mención de las mismas.
Ventajas
Flexibilidad: La zona de cobertura de cualquier red inalámbrica dependerá
de la localización de los nodos existentes en ella, por lo que la
comunicación se hará de manera libre.
Poca planificación con respecto a las redes cableadas: En las redes
inalámbricas no es necesario saber en dónde estará la distribución física de
los equipos, sino solo es necesario que estén dentro del rango de cobertura
para que se comuniquen entre ellos.
Robustez frente a eventos inesperados: Este tipo de redes puede
sobrevivir a cualquier tipo de percance de una forma más eficiente evitando
la perdida de comunicación, dichos eventos podrían ser catástrofes
naturales, fallas en la conexión (como ocurre en las redes cableadas), etc.
Sin embargo, también tiene algunos inconvenientes como:
13
Calidad de servicio: Esta red ofrece una menor calidad de servicio en
comparación con redes cableadas debido a las interferencias existentes en
el medio.
Mayor costo: Esto es debido a que los dispositivos empleados en esta red
suelen ser muy caros
Restricciones: Estas son debido a los diferentes anchos de banda
asignados dentro del espectro radioeléctrico, y las redes deben adecuarse
a la normatividad de cada país.
Seguridad: En este tipo de redes la seguridad de la información transmitida
puede ser muy poca debido a que puede existir un robo de datos, de igual
manera ocurrirían interferencias con algunas instancias oficiales como son:
bomberos, policías, servicios médicos, etc.
1.2.1 TIPOS DE REDES
La clasificación de redes depende de muchos factores, las más comunes son en
función de su extensión o alcance, por ejemplo:
PAN (Personal Area Network Red de Área Personal). Red inalámbrica de
interconexión de periféricos que se puede encontrar tanto a unos pocos
centímetros, como a metros de distancia del emisor. Las velocidades de
transferencia son inferiores al megabit por segundo. Un estándar común que
podemos encontrar es el Bluetooth, usado para el intercambio de archivos
“Persona a Persona” (Person to Person) o “Terminal a Terminal”
(Device~to~Device, D2D). ZigBee como se le conoce comúnmente al estándar
IEEE 802.15.4 entra en esta clasificación. Otros estándares, son los infrarrojos,
RFID, TAG, UWB, etc. que cumplen el estándar IEEE 802.15.
LAN (Local Area Network. Red de Área Local). Este tipo de red es implementada
en un mismo edificio o en entorno de 200m, extendiéndose hasta un kilómetro
utilizando repetidores, o hasta 450 m para una implementación inalámbrica. La red
inalámbrica más conocida de esta clasificación es la llamada WiFi, bajo el
14
estándar IEEE 802.11 en sus diversas versiones (a, b, g y n), aunque existen otras
tecnologías como el HiperLAN2.
MAN (Metropolitan Area Network. Red de Área Metropolitana). Es la red situada
en un barrio, urbanización, ciudad o municipio pequeño, su alcance oscila entre 1
y 7 Km sin repetidores y decenas de kilómetros con repetidores. Las redes de
cable sobre par trenzado alcanzan velocidades 10, 20, 45, 75 megabits por
segundo (Mbps) y las que van sobre fibra óptica alcanzan velocidades de 1 y
hasta 10 gigabits por segundo (Gbps). Las tecnologías utilizadas en este tipo de
redes son llamadas de banda ancha. Respecto a las redes inalámbricas tenemos
el ejemplo de WiMAX, que soporta hasta 54 Km con condiciones de clima
favorables y has 22 Km en condiciones adversas.
WAN (Wide Area Network. Red de Área Amplia). Es la red global, y se compone
de varios países, un continente o incluso mundial. Estas redes son comúnmente
diseñadas para la interconexión de redes. Las tecnologías empleadas en este tipo
de redes son vSAT (para conexiones satelitales), 2G, 3G y 4G (para telefonía
móvil).
La figura 1.1 muestra los tipos de redes según su rango de cobertura.
Figura 1.1. Tipos de Redes
Dentro del catálogo de redes inalámbricas, las WPAN (Wireless Personal Area
Network) y las RIS (Redes Inalámbricas de Sensores)enfocan su mercado en
15
escenarios donde es prioridad reducir tanto el consumo energético como la
complejidad de diseño, y por tanto, las tecnologías WLAN no ofrecen soluciones
eficientes. Además este tipo de redes proporciona baja velocidad de transferencia
y un área de cobertura reducida.
El grupo de trabajo 802.15 del IEEE se encarga de regular toda la normativa
referente a redes WPAN, y define 3 tipos en función del ámbito de aplicación de
las mismas:
WPAN de alta velocidad: Responden a la norma IEEE 802.15.3, y se usan
principalmente para aplicaciones en tiempo real y multimedia,
proporcionando tasas de transferencia de hasta 55 Mbps.
WPAN de media velocidad: fueron las primeras redes de área personal,
usadas principalmente para sustituir cables por enlaces inalámbricos en
conexiones de corta distancia. Están reguladas bajo la norma IEEE
802.15.1 (Bluetooth), que en su segunda versión alcanza hasta 3 Mbps.
WPAN de baja velocidad: También conocidas como LR-WPAN, estas redes
corresponden al estándar IEEE 802.15.4 y ofrecen tasas de transferencia
de hasta 250 Kbps. Dan respuesta a aplicaciones muy específicas donde
no es necesaria una gran velocidad de transferencia, o aplicaciones en las
que los nodos de red estén conectados directamente y el consumo de
potencia sea un parámetro crítico, por ejemplo, las Redes de Área Corporal
o WBAN (Wireless Body Area Network).
Es conveniente destacar que, pese a que existe una propia definición del estándar
802.15.4/ZigBee, éste pertenece al ámbito de las redes LR-WPAN y son las
Redes Inalámbricas de Sensores las que sacan más partido de esta tecnología.
Las RIS tratan de proporcionar conectividad inalámbrica a conjuntos de sensores y
actuadores que se encuentren distribuidos en un determinado espacio, realizando
tareas tan diversas como medición de fenómenos atmosféricos, seguimiento de
objetos, monitorización de estructuras y detección de eventos, entre otros. Debido
a que estos sensores pueden estar colocados en lugares de difícil accesibilidad,
16
es necesario minimizar su consumo, de forma que puedan funcionar durante el
mayor tiempo posible sin reemplazar las baterías que los alimentan.
1.2.2 REDES INALÁMBRICAS DE SENSORES
Las Redes Inalámbricas de Sensores (RIS), conocidas en inglés como Wireless
Sensor Network (WSN), es una de las tecnologías más prometedoras hoy en día
debido al sin fin de nuevas aplicaciones posibles. Ejemplo de ello es que en los
últimos años, varios laboratorios de investigación, y especialmente
multinacionales, han apostado fuertemente por esta tecnología. En diversos
informes se espera que este tipo de redes llevan una revolución tecnológica
similar a la que tuvo la aparición de Internet.
Las redes inalámbricas de sensores son un conjunto de dispositivos autónomos
llamados nodos, los cuales son distribuidos espaciadamente para monitorear
condiciones físicas o ambientales, poseen la capacidad de obtener información del
entorno y reenviarla de forma inalámbrica a un centro de coordinación. Son
dispositivos de bajo costo y elevada duración sin mantenimiento.
La capacidad principal de las RIS es su organización automática, por lo que son
posibles los despliegues de sensores en lugares de difícil acceso o en zonas de
desastre, mediante medios aéreos. Gracias a esta característica y a su largo
tiempo de vida sin necesidad de mantenimiento, aun considerando los fallos en los
nodos por cualquier circunstancia, la red se mantiene sin el dispositivo y continua
su funcionando.
La implementación de una red de sensores debe considerar a uno o más de los
siguientes requisitos:
Despliegue masivo y aleatorio. Por lo general la mayoría de las RIS
poseen un gran número de nodos sensores que se distribuyen en áreas de
interés.
17
Limitación de recursos. El funcionamiento de los sensores estará
condicionado por parámetros tales como su consumo de energía, ancho de
banda, memoria y control de potencia.
Topología y entornos. Debido a que el despliegue de una red de sensores
no tiene una configuración física fija, es decir, los nodos podrían moverse.
La RIS debe ser capaz de auto configurarse ante algún cambio en su
despliegue.
Medio de transmisión poco fiable. El hecho de una comunicación
inalámbrica presenta una tasa de error mayor a las cableadas.
Seguridad y privacidad. Factores importantes espacialmente para
aplicaciones militares o de vigilancia. Por lo tanto se deben considerar
ataques de intrusión o manipulación de datos entre otros.
Un rubro muy destacable en las redes inalámbricas de sensores es que aún tienen
como tema de investigación abierto el empleo de protocolos de comunicación que
hagan a la red más eficiente en cuanto a costos, rendimiento, seguridad, entre
otras, sin embargo ya existen protocolos estándar establecidos como el IEEE
802.15.4.
Las tecnologías consideradas para la implementación de redes inalámbricas de
sensores son:
WiFi: El estándar de comunicaciones IEEE 802.11. Ampliamente extendido
en comunicación entre PC’s.
Bluetooth: El estándar Bluetooth posibilita la transmisión de voz y datos
entre diferentes equipos mediante un enlace por radiofrecuencia.
802.15.4 /ZigBee: 802.15.4 ha sido diseñado específicamente para el
desarrollo de redes de sensores inalámbricas. ZigBee está orientado a
proporcionar comunicación entre dispositivos de un bajo costo, así como
reducido consumo de energía y sencillez de hardware y software.
18
Tecnologías inalámbricas sub‐GHz: tecnologías también diseñadas
específicamente para redes de sensores, que operan en bandas inferiores
al GHz, típicamente sobre los cuatrocientos y ochocientos megahertz, y
cuyo primordial objetivo es el bajo consumo tanto en transmisión como en
recepción. La gran ventaja de estas tecnologías frente a las ubicadas en los
2.4Ghz es que tienen un mayor radio de alcance, les afecta menos las
inclemencias meteorológicas, y tienen generalmente menos interferencias
de otros dispositivos inalámbricos en dichas bandas que en la de 2.4 GHz
En el desarrollo del presente trabajo se hará uso de la tecnología ZigBee.
En lo que respecta a los campos de aplicación, las RIS están siendo
implementadas con éxito en:
Aplicaciones militares: Tareas de reconocimiento y alerta temprana.
Aplicaciones medioambientales: Monitorización de hábitat, estudio de
invernaderos, detección de inundaciones, incendios, etc.
Aplicaciones industriales.
Edificios (Inmótica): Sistemas de climatización más eficientes, localización
de personas u objetos, aplicaciones en domótica y de seguridad, etc.
Sistemas de emergencia.
Ciencias de la salud: Seguimiento y monitorización de las constantes
biomédicas.
Hogar (Domótica): Alarmas técnicas y de seguridad (inundación, gas,
incendio, intrusión), etc.
Exploración científica: Entornos inaccesibles o peligrosos (simas
oceánicas, volcanes, etc.).
19
CAPÍTULO 2 IEEE 802.15.4/ZIGBEE
20
2.1 TECNOLOGÍA ZIGBEE
Su concepción comenzó en el año de 1998 gracias a la investigación en conjunto
de varias empresas entre ellas Motorola, Ember, Honeywell y Mitsubishi. Dicho
consorcio se denominó ZigBee Alliance y su motivación era solventar la necesidad
de un estándar para comunicaciones a baja velocidad, con un bajo costo de
implementación y donde los dispositivos que forman parte de una red requieran un
bajo consumo, llegando a funcionar durante muchos años con un par de pilas.
La norma IEEE 802.15.4 se refiere a la especificación de un protocolo de radio
basado en paquetes destinados a dispositivos de bajo costo, los cuales funcionan
en diferentes topologías basando su alimentación eléctrica en baterías
El protocolo ZigBee ha sido diseñado para proporcionar solución inalámbrica más
fácil de utilizar datos la cual se caracteriza por arquitecturas de redes inalámbricas
seguras y fiables.
2.1.1 IEEE 802.15.4 - ZIGBEE
El estándar 802.15.4 está enmarcado dentro de las redes inalámbricas de área
personal y baja velocidad de transmisión. Estas redes se caracterizan por su
simplicidad y bajo costo, proporcionando conectividad inalámbrica en aplicaciones
que requieren un consumo de potencia muy reducido.
Los términos ‘ZigBee’ y ‘802.15.4’ son incorrectos, ya que la norma IEEE 802.15.4
define únicamente las capas Física y de Control de Acceso al Medio e implementa
una solución propia para las capas de red, aplicación y seguridad.
El protocolo ZigBee ha sido diseñado para proporcionar una solución inalámbrica
más simple en el uso de datos, la cual se caracteriza por arquitecturas de redes
inalámbricas seguras y fiables. En la figura 2.1 su puede observar la estructura de
la Tecnología ZigBee.
21
Figura 2.1. Estructura de la Tecnología ZigBee
2.1.2 TIPOS DE DISPOSITIVOS
El estándar 802.15.4 define dos tipos de dispositivos, los de funcionalidad
reducida o RFD (Reduced-Function Devices), y los de funcionalidad completa o
FFD (Full-Function Devices).
Los RFD suelen ser los dispositivos finales (generalmente sensores),
responsables de recolectar datos y retransmitirlos para que puedan ser
posteriormente procesados. Una de sus principales características es que
permanecen inactivos la mayoría del tiempo, despertando de manera programada
para enviar datos o simplemente para sincronizar sus relojes con los de
dispositivos de niveles superiores en la red. El hecho de tener un grado de
actividad muy pequeño hace que el consumo de potencia sea mínimo, permitiendo
a los RFD poder estar alimentados por baterías, lo que facilita la portabilidad de
los dispositivos y colocación en lugares poco accesibles donde no hay posibilidad
de conexión a otro tipo de alimentación externa.
22
Dispositivo de funcionalidad completa (FFD): Es un dispositivo capaz de recibir
mensajes en formato del estándar 802.15.4 y funcionar como coordinador o router.
Puede ser usado en dispositivos de red que actúen como interfaz con los usuarios.
A continuación se describen las configuraciones posibles para los dos tipos de
dispositivos anteriores:
Puerta de enlace o Coordinador ZigBee (ZC): Se trata del dispositivo más
completo e importante. Su función es almacenar información sobre la red y
actuar como su centro de confianza en la distribución de claves de cifrado.
Este puede actuar como director de una red en árbol así como servir de
enlace a otras redes. Debe existir uno por cada red.
Router ZigBee (ZR): Como su nombre lo indica actúa como router, esto es,
interconecta los dispositivos separados en la red y limitados debido a su
rango.
Dispositivo final (ZED): Este dispositivo puede comunicarse con su nodo
padre (el coordinador o un router), pero no puede transmitir información
destinada a otros dispositivos. De esta forma, este tipo de nodo puede estar
dormido la mayor parte del tiempo, aumentando la vida media de sus
baterías. Un ZED tiene requerimientos mínimos de memoria y es por tanto
significativamente más barato.
2.2 TOPOLOGÍAS DE RED
En el estándar 802.15.4 se brinda la posibilidad de operar en las topologías que se
describen a continuación, las cuales también se representan en la figura 2.2.
23
Figura 2.2. Ejemplos de topologías en la red.
2.2.1 TOPOLOGÍA DE ESTRELLA
En este tipo de topología se permite establecer la comunicación entre dispositivos
y un solo nodo central que toma la función de coordinador de la red (PAN
COODINATOR). Este Coordinador es el controlador principal de la WPAN, siendo
el responsable de iniciar y terminar las conexiones. Cualquier información entre
dos nodos debe pasar por el Coordinador y por tal motivo el área de cobertura
estará determinada por el radio de alcance del mismo, este tipo de topologías
resulta demasiado útil en aplicaciones como de control y monitorización, así como
redes inalámbricas de sensores y agricultura inteligente o seguridad centralizada.
Las redes en estrella que trabajan dentro de la misma área de influencia pueden
hacerlo independientemente. Esto se consigue con un identificador único. Cuando
se inicia una nueva red el FFD que va a tomar el rol de coordinador debe elegir un
identificador PAN que no está siendo usado por ninguna red del área de influencia.
TOPOLOGÍA DE ESTRELLA TOPOLOGÍAS PEER TO PEER
TOPOLOGÍA DE ÁRBOL
Dispositivo de función completa (FFD)
Dispositivo de función reducida (RFD)
Flujo de información
Coordinador PAN
TOPOLOGÍA DE MALLA
24
Una vez establecido el FFD como coordinador, puede permitir que otros
dispositivos, ya sean FFD o RFD, se unan a la red.
2.2.2 TOPOLOGÍA “PEER-TO-PEER”
En este tipo de topología, cada nodo de la red es capaz de comunicarse con los
demás siempre y cuando los dispositivos a unirse a la red se encuentren dentro de
la misma área de influencia. En esta red uno de los FFD debe asumir el papel de
coordinador PAN o Puerta de enlace, por ejemplo, el primero que transmita por un
determinado canal. Los dispositivos que son encargados de retransmitir y guiar o
encaminar los mensajes son denominados FFD. Por su parte los RFD únicamente
pueden fungir como nodos finales, con la capacidad de comunicarse con un único
dispositivo de nivel inmediatamente superior ya sea coordinador o router, el cual
se ocupará de dirigir los mensajes a su destino.
Dependiendo de las restricciones que tengan los dispositivos, las redes “Peer-to-
Peer” se pueden configurar de las siguientes maneras:
2.2.2.1 TOPOLOGÍA DE MALLA (MESH TOPOLOGY)
Cada FFD puede interactuar y comunicarse con los demás FFD de la red que
están dentro de su área de cobertura y con los RFD que estén asociados a él.
La ventaja más notable de esta topología es que si se transmite un mensaje desde
un dispositivo final u otro y dejara de funcionar un router intermedio, será posible
encontrar un camino alternativo para llevar a cabo el envío de la información.
2.2.2.2 TOPOLOGÍA DE ÁRBOL (CLÚSTER TREE TOPOLOGY)
En esta configuración, una vez que se establece un FFD como coordinador de
nuestra red PAN, los routers que se unen a la red lo hacen de una manera
25
jerárquica, prestando servicio a varios nodos de nivel inmediatamente inferior pero
sólo pueden depender de un único nodo del nivel inmediatamente superior.
Conforme a esta restricción, en la figura 2.3 se representa esquemáticamente la
topología que se asemeja a una ramificación de un árbol (de donde toma el
nombre), en la que el coordinador PAN sería la raíz, los enlaces entre routers
formarían las ramas y los nodos finales formarían las hojas
Figura 2.3 Topología de Árbol
2.2.3 TAREAS BÁSICAS DEL COORDINADOR PAN
Una red IEEE 802.15.4 siempre es creada por un coordinador PAN, el cual se
encarga de gestionarla y de realizar lo siguiente:
Seleccionar un identificador PAN para la red, así, se permite a los
dispositivos que la integran usar direcciones de 16 bits y aun así poder
comunicarse con otros dispositivos en otras redes
Comenzar, finalizar y encaminar los mensajes a través de la red
Asignar una dirección de 16 o 64 bits a cada uno de los nodos.
FFD
S RFD
26
2.3 ARQUITECTURA
ZigBee es una pila de protocolos constituido por diferentes capas independientes
una de la otra.
A continuación presentamos una breve descripción de cada una:
Capas PHY y MAC: La capa de más bajo nivel es la capa física (PHY), que
en conjunto con la capa de acceso al medio (MAC), brindan los servicios de
transmisión de datos por el aire, punto a punto.
Estas dos capas están descritas en el estándar IEEE 802.15.4–2003.
Capa de red (NWK): Esta capa actúa como interfaz entre la capa MAC y la
capa aplicación. Esta capa es la responsable de iniciar la red, unirse a la
red, enrutar paquetes dirigidos a otros nodos en la red, proporcionar los
medios para garantizar la entrega del paquete al destinatario final, filtrar
paquetes recibidos, cifrarlos y autentificarlos. Por lo tanto, esta capa
implementa seguridad y encamina tramas a sus respectivos destinos. Cabe
destacar que la capa de red del controlador de red es la responsable de
crear una nueva red y asignar direcciones a los dispositivos de la misma.
Por último debemos comentar que esta es la capa donde están
implementadas las diferentes topologías de red que soporta ZigBee:
o Topología en estrella: el coordinador se sitúa en el centro.
o Topología en árbol: el coordinador es la raíz del árbol.
o Topología de malla: al menos uno de los nodos tiene más de dos
conexiones.
Capa de aplicación: Esta la capa de la que se encargan los fabricantes,
donde se encuentran los ZDO (ZigBee Device Objects) que se encargan de
definir el papel del dispositivo en la red. Podemos decir que esta capa es la
aplicación misma.
27
Subcapa de soporte a la aplicación: El siguiente nivel se encarga de filtrar
paquetes a nivel de aplicación, mantener la relación de grupos y
dispositivos con los que la aplicación interactúa y simplificar el envío de
datos a los diferentes nodos de la red. Las capas de red y de soporte a la
aplicación son definidas por la ZigBee Alliance.
Cada capa se comunica con sus capas subyacentes a través de una interfaz de
datos y otra de control, las capas superiores solicitan servicios a las capas
inferiores, y éstas reportan sus resultados a las superiores.
Además de las capas mencionadas, a la arquitectura se integran otro par de
módulos:
Módulo de seguridad: que es quien provee los servicios para cifrar y
autentificar los paquetes
Módulo de administración del dispositivo ZigBee: que es quien se
encarga de administrar los recursos de red del dispositivo local, además de
proporcionar a la aplicación funciones de administración remota de red.
2.4 CAPA FÍSICA
La especificación bajo la que opera ZigBee es la IEEE 802.15.4 física, funciona en
algunas bandas sin licencia como son 2.4GHz, 900MHz y 868 MHz por mencionar
algunos ejemplos.
La capa física (PHY) es la capa del estándar 802.15.4 más cercana al hardware,
encargada de controlar su funcionamiento y de proporcionar una interfaz de
comunicación con la capa inmediatamente superior de la pila de protocolos (la
capa MAC). Dentro de las funciones más relevantes de esta capa se pueden
destacar las siguientes:
28
Selección del canal de comunicaciones.
Activar y desactivar el transceptor radio.
Detección de energía en el canal de comunicaciones (ED, Energy
Detection).
Indicación de la calidad del enlace (LQI, Link Quality Indicator).
Evaluación del canal libre (CCA, Clear Channel Assessment).
Transmisión y recepción de datos.
Capa
física
(MHz)
Banda de
frecuencia
(MHz)
Parámetros de
Propagación
Parámetros de Datos
Velocidad
de chip
(Kchip/s)
Modulación Velocidad
de bits
(Kbps)
Rango
de
símbolos
Símbolos
68/915 868-868.6 300 BPSK 20 20 Binario
902-928 600 BPSK 40 40 Binario
2450 2400-
2483.5
2000 O-QPSK 250 62.5 16-ario
Ortogonal
*En las tecnologías de espectro ensanchado de secuencia directa tales como
DSSS y CDMA, es el número de bits por segundo (chips por segundo) utilizados en
la difusión de la señal
Tabla 1. Bandas de frecuencias y velocidades de Datos
Selección de Canal
Existe un único canal simple centrado entre los 868-868.6 MHz, este es 868.3
MHz; 10 canales entre 902.0 a 928 MHz y 16 canales entre 2.4 a 2.4835 GHZ.
La primera implementación posibilita la comunicación en las bandas de 868 y 915
MHz. Para estas dos bandas se usa la técnica de modulación BPSK (Binary
Phase Shift Keying).
29
En la segunda implementación, la banda de 915 donde se definen 10 canales
cuyas frecuencias centrales se pueden calcular con la siguiente fórmula:
𝐹𝑐 = 906 + 2(k − 1)en 𝑀𝐻𝑧, para 𝑘 = 1, 2, 3 … 10
Donde k es el número de canal del cual se desea obtener la frecuencia central.
La tercera implementación es en la banda de 2.4 GHz, de uso extendido en casi
todo el mundo, utilizando una técnica de modulación O-QPSK (Orthogonal
Quadrature Phase Shift Keying). En esta banda se definen 16 canales de 2 MHz
estos se encuentran numerados del 11 al 26 y separados 5MHz de cada uno. Su
frecuencia central se calcula de la siguiente manera:
𝐹𝑐 = 2405 + (𝑘 − 11)en MHz
Detección de Energía (ED)
La medición de la energía recibida se trata de una estimación de la potencia de
señal recibida en el ancho de banda de un canal determinado. Esta puede ser
usada por la capa de Red como parte de un algoritmo de selección de canal. La
detección se realiza cada 8 periodos de símbolo y el resultado se informa con un
entero de 8 bits.
El valor mínimo ED (0) indicará la potencia recibida menor de 10 dB por encima de
la sensibilidad del receptor especificado. La gama de potencia recibida abarcada
por los valores de ED será de al menos 40 dB. Dentro de este rango, el mapeo de
la potencia recibida en decibeles a los valores de ED será lineal con una precisión
de + - 6 dB.
Con la ED se puede saber si un canal está siendo usado por otro dispositivo, pero
en ningún caso para identificar el tipo de señal que se está transmitiendo.
30
Indicación de la Calidad del Enlace (LQI)
La medición LQI es una caracterización de la fuerza y / o la calidad de un paquete
recibido. El resultado es enviado a la capa MAC, donde queda disponible para las
capas superiores. Por ejemplo, la capa de red puede utilizar el valor de LQI para
decidir la ruta más óptima que debe seguir el siguiente mensaje a transmitirse.
Para su estimación se usan parámetros como la potencia de la señal recibida
(RSS: Received Signal Strength), la relación señal a ruido (SNR: Signal to Noise
Ratio), o una combinación de ambas.
El resultado LQI debe ser reportado como un número entero de 0x00 a 0xFF. Los
valores mínimos y máximos LQI deben estar asociados con la calidad más baja y
más alta de señales detectables por el receptor y los valores LQI deben ser
distribuidos de manera uniforme entre estos dos límites. La ruta con mayor LQI
brindara una mayor garantía a la entrega de los mansajes.
Evaluación Del Canal Libre (CCA)
Es un mecanismo de la capa física que se encarga de determinar si un canal está
siendo utilizado por algún dispositivo. La capa de Red es la encargada de realizar
la petición a la capa física para realizar esta evaluación previa a la ejecución del
algoritmo CSMA-CA (Carrier Sense Multiple Access with Collision Avoidance), que
se explicara más adelante.
La evaluación del Canal Libre se puede realizar conforme a los siguientes criterios:
Energía por encima del umbral, detección de Energía (ED): CCA puede
reportar que un canal está ocupado haciendo una Detección de Energía, si
este nivel de energía supera el umbral que el fabricante ha dado en el
dispositivo dirá que está ocupado.
Detección de portadora única: En este caso el canal se considera
ocupado si se detecta alguna señal conforme al estándar 802.15.4,
31
coincidiendo el tipo de modulación y técnica de ensanchamiento de
espectro.
Detección de portadora por detección de energía: Es la combinación de
ambos criterios anteriores. Se considera que un canal está ocupado si, tras
detectar una señal en el medio del mismo tipo de las que se pretende
transmitir, la energía de esta supera el umbral que determina el fabricante
en cada dispositivo.
Transmisión y Recepción de Datos
La capa física es la encargada de gestionar la transmisión y recepción de
información, tomando el papel de interfaz en conjunto con la capa MAC y con el
medio físico.
La información que se va a transmitir debe venir en forma de una trama de datos
de la capa MAC o MPDU (MAC Protocol Data Unit). Cuando ha sido recibida la
MPDU, esta se encapsula dentro de una trama de datos de nivel físico, PPDU
(PHY Protocol Data Unit), del cual se describe su formato en la figura 2.4.
La información que se añade en esta trama es información útil ya que se utiliza
para la sincronización de los datos en la capa física, alcanzando un tamaño
máximo de 133 bytes.
4 bytes 1 byte 1 byte MAC Frame variable
Preamble
Sequence
Start-of-Frame-
Delimiter (SFD)
Largo de trama
(7 bits)
Reservado
(1 bit)
PSDU
(variable)
SHR PHR PHY payload
Figura 2.4. Formato PPDU
Primeros Transmitidos Últimos transmitidos
32
Una vez creado el PPDU, la secuencia de bits obtenidos se transforma en
símbolos y posterior a esto se realiza la conversión de símbolos a chips y, los
chips resultantes se modulan. Como resultado se obtiene una señal analógica que
se envía a través de medio físico.
Ocurre un proceso contrario al descrito cuando la señal se recibe en el
transceptor, la capa física hace una notificación a la MAC de que la información
está llegando. La información analógica se demodula, obteniendo la secuencia de
chips y que a su vez estos se convierten en símbolos y estos a bits que
conformarán una PPDU, de esta trama se extrae la MPDU, que se envía a la capa
MAC junto con la información de la calidad del enlace.
2.5 CAPA MAC
La capa MAC proporciona una comunicación fiable entre los nodos de una red,
esto lo hace ayudando a evitar colisiones entre mensajes y a mejorar la eficiencia
en la transmisión, además de que proporciona una interfaz entre las capas Física
(PHY) y la de red.
Las características o funciones que realiza la capa MAC, están:
Generación de Balizas (beacons)
Sincronización con las balizas recibidas
Permitir la conexión y desconexión de nodos a la red
Empleo del algoritmo de acceso al canal CSMA-CA.
Mantenimiento y gestión del mecanismo GTS (Guaranteed Time Slot)
Proporcionar un enlace fiable entre las distintas entidades MAC.
33
2.5.1 MODOS DE FUNCIONAMIENTO DE RED
En el protocolo 802.15.4 se contemplan dos modos de funcionamiento de red,
dependiendo de la complejidad de la misma y de los requerimientos de consumo
de los routers intermedios.
Modo no balizado
Conocido como “Non Beacon-Enabled mode”, el modo de funcionamiento no
balizado está dirigido a redes en las que el empleo de los routers intermedios y del
coordinador PAN no es un parámetro crítico de diseño.
Esta configuración ofrece la posibilidad de que los nodos finales mantengan su
transceptor de radio apagado mientras no tengan que transmitir ningún dato, o que
se enciendan en tiempos periódicos para comprobar si es que existe algún dato
pendiente de recepción. Cuando se transmite una trama se debe asegurar que el
canal esté libre, para esto se ejecuta el algoritmo CSMA-CA ranurado, que se
mencionara posteriormente.
En este tipo de redes el coordinador no trasmite balizas a no ser que reciba una
petición por parte de un nodo de la red para así poder localizar e indicar que tiene
datos pendientes para transmitir.
Modo balizado
El modo “Beacon-Enabled” está orientado a aplicaciones en las que es necesario
garantizar la transmisión de un dispositivo en un momento determinado, y a redes
en las que el consumo de los routers intermedios ha de ser optimizado ya que
deben ser alimentados mediante baterías. Para ello debe permitirse que estos
nodos tengan períodos de inactividad al igual que los nodos finales. Esto implica
un ahorro de energía que se refleja en la durabilidad de las baterías de los
34
dispositivos ya que cuando no está enviando balizas se pone en forma de ahorro
de energía y cada cierto periodo de tiempo despierta para monitorear la red. Esto
se consigue mediante la utilización de estructuras de Supertrama.
Una Supertrama es una estructura delimitada por balizas que incluyen información
referente a la misma, como por ejemplo su duración o el número de GTS (o slots
garantizados) que contiene. Tal y como se muestra en la figura 2.5, en una
supertrama se pueden distinguir hasta 3 tipos de períodos:
CAP (Contention Access Period).
CFP (Contention-Free Period).
Periodo Inactivo (Inactive Period).
Figura 2.5. Estructura de una Supertrama
Durante el CAP, todos los dispositivos que desean transmitir deben usar el
algoritmo CSMA-CA ranurado para conseguir acceso al canal de radio. Una vez
que un dispositivo accede al canal, lo mantendrá ocupado hasta que finalice su
transmisión, siempre y cuando ésta no se traslape con el CFP. No existe ninguna
garantía de que un nodo pueda transmitir en el momento exacto en que lo
necesite, ya que en el caso de encontrar el canal ocupado, debe dejar que pase
un tiempo aleatorio para volver a intentar acceder al canal.
35
En caso de trabajar con aplicaciones de baja latencia, en las que un dispositivo no
se puede permitir esperar un período de tiempo aleatorio potencialmente largo
hasta que el canal esté disponible, éste puede transmitir durante el CFP. Este
período reserva una ranura temporal específica en la que un determinado
dispositivo puede acceder al canal de radio sin necesidad de usar CSMA-CA.
La combinación del CAP y el CFP se conoce como Periodo Activo “active period”,
el cual se divide en 16 slots (ranuras) temporales iguales, de los cuales 7 pueden
dedicarse a GTS. A cada GTS se le puede asignar más de un slot temporal.
Una supertrama puede tener, de manera opcional, un período inactivo, en el que
se permite que el dispositivo pueda apagar su transceptor de radio y aumentar de
manera significativa la duración de su batería.
La estructura de supertrama es definida por el coordinador de red y configurada
por la capa de red usando una primitiva. La duración entre balizas, también
conocida como BI (Beacon Interval) es determinada con el BO (Beacon Order) y la
constante aBaseSuperframeDuration=15.36 ms, relacionados mediante la
siguiente ecuación:
𝐵𝐼 = 𝑎𝐵𝑎𝑠𝑒𝑆𝑢𝑝𝑒𝑟𝑓𝑟𝑎𝑚𝑒𝐷𝑢𝑟𝑎𝑡𝑖𝑜𝑛 ∗ 2𝐵𝑂
Donde BO toma valores entre 0 y 14 para funcionamiento balizado, y 15 para
funcionamiento no balizado.
Análogamente, la longitud del período activo de la supertrama, conocida como SD
(Superframe Duration), es determinada con el SO (Superframe Order),
relacionados como sigue:
𝑆𝐷 = 𝑎𝐵𝑎𝑠𝑒𝑆𝑢𝑝𝑒𝑟𝑓𝑟𝑎𝑚𝑒𝐷𝑢𝑟𝑎𝑡𝑖𝑜𝑛 ∗ 2𝑆𝑂
Donde SD se mide en símbolos y su longitud no puede exceder de la del BI, por lo
que el valor del SO siempre debe ser menor o igual que el de BO.
36
En una red balizada, cualquier coordinador, además del coordinador PAN, tiene la
opción de transmitir balizas para crear su propia estructura de supertrama. En este
caso, el coordinador puede transmitir su baliza durante el período inactivo de la
supertrama del coordinador PAN, para evitar que se traslapen transmisiones de
otros nodos que quieren comunicarse con ambos coordinadores.
2.5.2 ALGORITMO CSMA-CA
El protocolo IEEE 802.15.4 usa el algoritmo CSMA-CA (Carrier Sense Multiple
Access with Collision Avoidance) como mecanismo de acceso al canal de
comunicaciones. Cualquier dispositivo que desea transmitir ha de asegurarse,
mediante CCA, de que el canal no está siendo usado por otro dispositivo.
Hay tres casos en los que no es necesario el uso del algoritmo CSMA-CA para
acceder al medio:
Al transmitir una baliza.
Acceso al canal durante el período CFP.
Al transmitir una trama de ACK para confirmar la recepción de un dato.
El algoritmo CSMA-CA utiliza dos variantes, dependiendo de si se está operando
en modo balizado o en modo no balizado:
CSMA-CA Ranurado: se usa para conseguir el acceso al canal de
transmisión en sistemas con estructura de supertrama habilitada. Una
supertrama divide su período activo en 16 slots temporales de igual
duración, siendo necesario que los períodos de back-off del algoritmo
CSMA-CA estén alineados con éstos.
CSMA-CA no Ranurado: se usa cuando no existe estructura de
supertrama, en redes no balizadas, por lo que no es necesaria la alineación
de los períodos de back-off del algoritmo CSMA-CA.
37
En la figura 2.6 se aprecia el diagrama de flujo del algoritmo CSMA-CA, tomando
en cuenta las variantes que existen de este ranurado y no ranurado.
El algoritmo basa su funcionamiento en que cada vez que se quiere acceder al
canal de comunicación y éste está ocupado, el dispositivo permanece en espera
durante un período aleatorio de tiempo antes de volver a intentar acceder al canal.
Los parámetros básicos que intervienen en el algoritmo son:
BEB (Back-off Binary Exponent): Determina el período de tiempo que hay
que esperar antes de intentar acceder al canal tras un intento fallido. El
número de períodos de Back-off a esperar entre intentos es un número
aleatorio entre 0 y 2BE-1, que al multiplicarlo por la constante de la capa
MAC aUnitBackOffPeriod, da como resultado el tiempo de espera.
Este parámetro, BE, puede tomar valores entre macMinBE y macMaxBE
(constantes de la capa MAC) tanto en el modo ranurado como en el no
ranurado, incrementándose de uno en uno cada vez que se encuentra el
canal ocupado. Si está activado el denominado modo de ahorro de energía
(CSMA-CA ranurado), BE solo puede tomar valores dentro del rango min
(2, macMinBE).
NB (Number of Back-Offs): Se trata de un contador que almacena el
número de veces que el dispositivo encuentra el canal ocupado y vuelve a
intentar acceder. Su valor se incrementa en uno cada vez que el dispositivo
encuentra el canal ocupado.
El valor máximo que puede alcanzar NB es macMaxCSMABackoffs, en
cuyo caso, acaba el algoritmo CSMA-CA y se comunica a la capa de red un
fallo de acceso al canal.
CW (Contention Window length): esta variable determina el número de
períodos de Back-Off que debe estar libre el canal antes de empezar a
transmitir (este parámetro sólo es usado en el algoritmo CSMA-CA
ranurado).
38
No Si Si Si No Si Si No No éxito No No No Si Si Si
Figura 2.6. Diagrama de flujo del algoritmo CSMA-CA
NB=0, BE= macMinBE
NB>macMaxCS
MABackoffs?
CANAL LIBRE?
NB=NB-1 BE=min
(BE+1,macMaxBE)
Espera por un numero aleatorio (entre 0 y 2BE-1
-1)* periodos back-off
Perform CCA
Éxito Falló
CANAL LIBRE?
NB>macMax
CSMABackof
fs?
?
CW=2,NB=NB+1
BE=min (BE+1,macMaxBE) CW=CW-1
CW=0?
Falló Éxito
NB=0, CW=2
BE=min (2,macMinBE)
BE=macMinBE
Perform CCA
Espera por un numero aleatorio (entre 0 y 2BE-1
-1)* periodos back-off
Localice límite de periodo de retraso (BACK-OFF)
BATTERY
LIFE EXTEN?
SLOTTED
?
INICIO
39
2.5.3 INICIO Y MANTENIMIENTO DE REDES DE ÁREA PERSONAL
La capa MAC toma parte durante las fases de inicio y mantenimiento de redes
PAN realizando las siguientes acciones:
Detección de Energía (ED): La capa MAC puede requerir a la capa PHY que
realice el procedimiento de Detección de Energía sobre un conjunto de canales
determinados, para así decidir el canal óptimo para iniciar la red.
Escaneo activo del canal: tiene como objetivo localizar a cualquier coordinador
de red transmitiendo balizas dentro del radio de cobertura del nodo que realiza el
escaneo.
Escaneo pasivo del canal: al igual que en el escaneo activo, el objetivo es
localizar los coordinadores de red que estén transmitiendo balizas dentro de su
radio de cobertura, pero en este caso simplemente escuchando los canales (sin
necesidad de transmitir ninguna baliza).
Escaneo del canal por parte de un dispositivo huérfano: permite que un
dispositivo huérfano (que ha perdido la sincronía con su coordinador o router)
consiga localizar la red a la que pertenecía y unirse a ella. Durante este escaneo,
la capa MAC debe descartar todas las tramas recibidas a través del servicio de
datos de la capa física que no sean tramas con comandos de realineación del
coordinador.
Resolución de conflictos con identificadores PAN: puede darse el caso de que
existan dos o más coordinadores PAN dentro del mismo área de influencia usando
el mismo identificador de red, lo que puede provocar problemas a la hora de enviar
mensajes a través de las redes implicadas. Cuando un dispositivo detecta la
duplicidad de identificadores, debe notificar a su coordinador PAN dicha
incidencia,
Inicio de redes: una PAN puede ser iniciada únicamente por un FFD, que se
establecerá como coordinador PAN, después de haber inicializado su capa MAC,
40
haber realizado un escaneo activo del canal y haber elegido un identificador
correcto. Tras completar estos pasos, la capa MAC debe entregar un mensaje de
confirmación positivo a las capas superiores para poder comenzar a operar como
coordinador.
Generación de balizas: tiene como objetivo que dispositivos FFD puedan
transmitir balizas para gestionar la sincronización de la red a la que pertenecen, ya
sea actuando como coordinadores PAN o coordinadores intermedios. La
generación y transmisión de balizas sólo está permitida si el parámetro
macBeaconOrder toma un valor menor que 15.
Cada trama MAC consiste en los siguientes componentes básicos:
2.5.4 FORMATO DE TRAMAS
En función de la información contenida, el estándar IEEE 802.15.4 define cuatro
tipos de tramas MAC:
Trama de Baliza
Trama de Datos
Trama ACK
Trama de Comando
Trama de Baliza
Estas tramas de baliza contienen la información necesaria para sincronizar
dispositivos de una red balizada; pueden ocuparse igualmente en redes no
balizadas para informar a un dispositivo que tiene datos pendientes por recibir.
A continuación se visualizan sus secciones (Figura 2.7.) y se describe cada una:
MHR, que comprende la trama de control, numero de secuencia e
información de la dirección.
41
MAC payload: de longitud variable, que contiene información específica del
tipo de trama. Las tramas de reconocimiento no contienen un payload.
MFR, que contiene el FCS (Frame-Check-Sequence), para comprobar si
existe algún error en la trama recibida.
Figura 2.7. Formato de la Trama de baliza de la Capa MAC
Trama de datos
Son las tramas que se utilizan para enviar información entre nodos de una red.
Como se puede ver en la figura 2.8, los campos que la componen son similares a
los de las tramas de baliza, a excepción de los campos de supertrama, GTS, y
direcciones pendientes, que en este tipo de trama no aparecen.
Figura 2.8. Formato de la Trama de datos
Trama ACK
Este tipo de tramas se usa para la confirmación, entre dispositivos, de la recepción
correcta de datos o peticiones. La confirmación se hace a nivel MAC, por lo que no
es necesario incluir información de capas superiores, reduciendo notablemente la
longitud de la trama, tal y como se muestra en la figura 2.9.
42
Figura 2.9. Formato de la Trama ACK
Trama de comando
El uso de estas tramas está dedicado al envío de comandos de capa MAC, tales
como asociación y abandono de dispositivos, petición de baliza, petición de GTS,
notificación de conflicto de identidad de la PAN, etc. En la figura 2.10 se puede ver
la estructura de la trama.
Figura 2.10. Formato de la Trama de Comando
2.6 IMPLEMENTACIÓN DEL ESTÁNDAR ZIGBEE
El estándar ZigBee define las capas de red, aplicación y seguridad apoyándose de
las capas Física y MAC de la norma IEEE 802.15.4. ZigBee incorpora funciones
de enrutamiento y permite realizar comunicaciones multisalto, incorpora seguridad
a nivel de enlace y red, aunque quizás, la prestación más interesante sea la
posibilidad de creación de ZigBee Profiles (perfiles de aplicación que facilitan la
interoperabilidad de productos gracias a la definición de unos servicios y su
lenguaje común).
Debido a que el proyecto se centra en el uso de Z-StackTM (implementación de la
norma 802.15.4 por parte de Texas Instruments), se describe a continuación los
43
aspectos importantes de las capas de ZigBee, para así tener una visión global del
estándar.
2.7 CAPA DE RED
La capa de Red (NWK) ejerce de interfaz entre las capas de Aplicación y MAC.
Las funciones que desempeña, se pueden destacar:
Enrutamiento
Descubrimiento de ruta óptima
Mantenimiento de las rutas y reparación de las mismas
Gestión de la formación de la red y de los mecanismos de comunicación.
Gestión de unión y abandono de nodos de una red
Enrutamiento
Es la elección del camino que han de seguir los paquetes cuando es el momento
de ser dirigidos a través de la red para alcanzar su destino. Los dispositivos
destinados para esta tarea son los routers y los coordinadores de red, en ningún
caso los dispositivos finales.
Se denomina link al enlace que se forma entre dos nodos consecutivos, a cada
uno se le asigna un costo relacionado con la probabilidad de entregar
correctamente un paquete entre los nodos. Esta probabilidad se puede calcular
usando el parámetro LQI.
Sumando los costos individuales para obtener el costo de una ruta completa hace
que la ruta con menor costo sea la que tenga más probabilidad de entregar
correctamente los paquetes.
44
Descubrimiento de la ruta óptima
Esta actividad es realizada por routers y coordinadores de red, se inicia cuando se
quiere establecer comunicación entre dos nodos en los que no existía
comunicación previa, o cuando se rompe un enlace que forma una ruta.
Para establecer una nueva ruta, el dispositivo interesado difunde un “Requisición
de conexión” (Binding request), en el que indica la dirección destino. Así, los
dispositivos que estén dentro del área de influencia y tengan capacidad de
enrutamiento, añadirán en sus tablas de descubrimiento de ruta esta petición y
sumaran el costo del enlace al paquete para así volver a difundirlo. Cuando existe
el caso en que un router intermedio reciba el mismo mensaje de descubrimiento
de ruta procedente de distintos nodos, se analizaran todas las peticiones, se
actualizara la tabla de descubrimiento de ruta óptima con el enlace que
proporcione el menor costo acumulado.
Una vez alcanzado el dispositivo final, este analizara todos los mensajes que
recibió desde distintos nodos, modificando su tabla de ruta optima con la de menor
costo. Una vez establecida la ruta óptima, el dispositivo final envía una
confirmación al dispositivo origen siguiendo esta ruta.
Mantenimiento y reparación de rutas
Estos procesos se llevan a cabo cuando se pierde la conexión entre algún enlace.
El proceso es parecido al descubrimiento de la ruta óptima con la diferencia de
que el dispositivo que lo inicia es el primero que detecta el enlace roto. Si no se
encuentra una ruta al nodo destino, se envía un mensaje de error al nodo origen
para iniciar una nueva búsqueda.
Gestión de la formación de red y de los mecanismos de comunicación
La capa de red configura los FFD para que se comporten como coordinadores
ZigBee. Le comunica a la capa MAC la realización de un escaneo de energía del
45
conjunto de canales de interés y, dependiendo de este resultado en cada canal,
selecciona el óptimo para iniciar la red y asignar un identificador PAN único.
Otra función destacable de la capa de red en lo que a gestión de la formación de
la red se refiere, es configurar a los FFD como routers cuando la capa de
Aplicación lo requiera, mediante el uso de una primitiva específica. Debido a que
los routers pueden tener su propia estructura de supertrama, distinta a la del
coordinador PAN, y gestionar las peticiones de otros dispositivos que quieran
unirse o abandonar la red, la primitiva anterior debe incluir todos los parámetros de
configuración de la supertrama.
Gestión de unión y abandono de nodos de una red
Se inicia el proceso por el nodo interesado, se realiza un escaneo, activo o pasivo,
para encontrar los routers o el coordinador de la red a la que se quiere unir.
Cuando se selecciona el nodo al que se requiere unir, el nodo hijo inicia el proceso
de asociación usando otra primitiva.
Una vez que el nodo padre recibe la petición de unión a la red, comprueba si el
dispositivo se encuentra previamente registrado en su tabla de vecindad y si es
posible aceptar dicha petición. Si el nodo no está registrado se le asigna una
dirección de 16 bits y se actualizan las tablas de vecindad.
El abandono de la red puede ser iniciado por cualquiera de los dos nodos ya sea
el padre o hijo que requiera esto. Cuando un nodo abandona la red, también lo
abandonan todos los dispositivos que dependían de este, posteriores al abandono,
todos los nodos implicados actualizan sus tablas de vecindad.
2.8 CAPA DE APLICACIÓN
Es la más alta capa del protocolo ZigBee y se subdivide como se muestra a
continuación en la figura 2.11.
46
Figura 2.11. Capa de Aplicación del protocolo ZigBee
Subcapa APS (Application Support, Soporte de Aplicación). Su misión
es la de proporcionar un interfaz entre la Capa de Red y la Capa de
Aplicación. Dentro de las funciones de esta subcapa, se pueden destacar el
mantenimiento de las tablas de vecindad, la gestión de las direcciones de
grupos, o el “mapeo” entre direcciones de 16 y 64 bits.
Marco de Aplicación, Application Framework. Almacena las aplicaciones
que van a ser utilizadas en el dispositivo ZigBee. Cada dispositivo puede
almacenar hasta un máximo de 240 aplicaciones, que pueden ser
direccionadas de manera independiente, posibilitando así compartir el uso
del mismo módulo radio.
ZDO (ZigBee Device Object). Proporciona un interfaz entre la subcapa
APS y la subcapa de Marco de Aplicación. Contiene las funcionalidades
que son comunes en todas las aplicaciones que se pueden implementar,
como puede ser definir el rol de los dispositivos dentro de la red, descubrir
los dispositivos que la integran o realizar las tareas relativas a la seguridad.
47
2.9 CAPA DE SEGURIDAD
Las redes inalámbricas son las más vulnerables, ya que el medio de transmisión
de información es fácilmente accesible. Por tanto, la seguridad en este tipo de
redes juega un papel crucial a la hora de mantener la integridad y privacidad de la
información que se transmite.
Los dispositivos ZigBee, ideados para optimizar el consumo energético, están
basados en microcontroladores de bajas prestaciones en cuanto a capacidad de
cómputo se refiere. Por tanto, el sistema de encriptación asociado debe ser
sencillo a la hora de la implementación y ejecución.
El algoritmo de encriptación utilizado es AES (Advanced Encryption Standard) con
claves de 16 bytes. Para garantizar la seguridad en las comunicaciones se definen
tres tipos de claves:
Claves Maestras: Están preinstaladas en cada nodo. Su función es
garantizar la confidencialidad durante el procedimiento de intercambio de
“Claves de Enlace” entre nodos.
Claves de Enlace: Son únicas entre cada par de nodos que pueden
comunicarse de manera directa. Estas claves se gestionan a nivel de
aplicación, y se usan para encriptar toda la información intercambiada entre
pares de nodos.
Clave de Red: es una única clave de 128 bits, compartida entre todos los
dispositivos pertenecientes a una red. Esta clave es la utilizada por los
nodos para obtener permiso de unirse a la red.
48
2.10 VENTAJAS DE ZIGBEE
El protocolo de ZigBee se diseñó para comunicar datos a través de entornos de
RF hostiles, es decir, bajo condiciones adversas, las cuales son comunes en
aplicaciones comerciales e industriales.
Algunas de las características que definen al protocolo ZigBee son:
Soporte para múltiples topologías de red como punto a punto,
malla o punto a multipunto.
Ciclo de trabajo bajo, lo que proporciona una larga duración de la batería.
Baja latencia.
Espectro de Difusión de Secuencia Directa, Direct Sequence Spread
Spectrum (DSSS).
Contiene hasta 65.000 nodos por red.
Cifrado AES de 128 bits para conexiones de datos seguras.
Evitación de colisiones, reintentos y reconocimientos
Opera en las bandas libres ISM (Industrial, Scientific & Medical) de 2.4
GHz, 868 MHz (Europa) y 915 MHz (Estados Unidos).
Utiliza un protocolo asíncrono, half duplex y estandarizado, permitiendo a
productos de distintos fabricantes trabajar juntos.
Su velocidad de transmisión será de entre 25-250 Kbps (debe emplearse en
aplicaciones que no requieran alta transmisión de datos).
El rango de cobertura va de los 10 a los 75 metros.
Se puede decir que ZigBee ocupa el vacío que hay por debajo de
Bluetooth, para comunicaciones de datos que no requieren altas
velocidades.
Capacidad de operar en redes de gran densidad, esta característica ayuda
a aumentar la confiabilidad de la comunicación, ya que entre más nodos
existan dentro de una red, mayor será el número de rutas alternas que
existirán para garantizar que un paquete llegue a su destino.
49
Cada red ZigBee tiene un identificador de red único, lo que permita que
coexistan varias redes en un mismo canal de comunicación sin ningún
problema.
Teóricamente pueden existir hasta 16 000 redes diferentes en un mismo
canal y cada red puede estar constituida por hasta 65 000 nodos,
obviamente estos límites se ven truncados por algunas restricciones físicas
(memoria disponible, ancho de banda, etc.).
Es un protocolo fiable, es decir, la red se organiza y se repara de forma
automática y el ruteo de los paquetes se realice de manera dinámica.
Es un protocolo de comunicación multisalto, lo que genera que se pueda
establecer una comunicación entre dos nodos aun cuando estos se
encuentren fuera del rango de transmisión, siempre y cuando existan otros
nodos intermedios que los interconecten, de esta forma, se incrementa el
área de cobertura de la red.
Su topología de malla (MESH) permite a la red auto recuperarse de
problemas en la comunicación, lo que provoca que su confiabilidad vaya
aumentando.
Tiene escalabilidad, lo que significa que puede la red puede contener desde
dos dispositivos hasta un centenar de ellos.
Es un protocolo seguro, ya que se le puede implementar encriptación y
autentificación.
2.11 APLICACIONES ZIGBEE
ZigBee permite la implementación de una amplia gama de las redes inalámbricas
con las soluciones de bajo costo y bajo consumo de energía. De esta manera
proporciona durabilidad, principales necesidades en aplicaciones de monitoreo y
control.
Entre sus aplicaciones más comunes también podemos encontrar:
50
AMR (Automatic Meter Reading)
Controles de iluminación
Construcción de sistemas de automatización
Control de climatización
Dispositivos médicos y aplicaciones de flota
51
CAPÍTULO 3 SISTEMA DE DESARROLLO
52
3.1 SISTEMA DE DESARROLLO
Los requerimientos para llevar a cabo este proyecto son un equipo que nos
permita una comunicación inalámbrica, segura, con baja tasa de envío como de
recepción de datos y que la energía consumida fuese muy baja, para lograr la
durabilidad de las baterías y el tiempo de vida.
3.2 KIT DE DESARROLLO CC2530 (ZDK)
El Kit de Desarrollo de TI CC2530 ZDK fue elegido para la realización del
proyecto, debido a que es un sistema que nos permite la configuración de nodos
para la obtención de una topología que maximice un mayor alcance y fiabilidad en
la comunicación, además de soportar estrategias de conexión con balizas, redes
balizadas, en las cuales existe un control de potencia en la red y donde cada nodo
sabe el momento en el que debe transmitir, estas redes balizadas sirven para
sincronizar los dispositivos, identificar la red y describir la estructura de la trama.
Los dispositivos que incluye el kit y que conforman la red, ‘escuchan’ a un
coordinador, así, cada dispositivo que quiera intervenir tendrá que ‘registrarse’ al
coordinador. El coordinador establece los lapsos de baliza que van de 15 ms a 4
minutos.
El kit de desarrollo está compuesto de los siguientes elementos (Figura 3.1):
2 Placas de desarrollo SmartRF05EB v1.7.
5 Placas de desarrollo de alimentación exclusiva mediante baterías
SmartRF05BB.
7 Módulos de evaluación CC2530EM.
7 Antenas.
1 Módulo CC2531 USB Dongle.
Cables, baterías y documentación necesaria para el funcionamiento inicial.
53
Figura 3.1. Kit de Desarrollo ZigBee
3.2.1 MÓDULO CC2530EM
El CC2530EM es un completo módulo de RF basado en una de la
recomendaciones designadas por el CC2530 radio. El módulo está equipado con
un cristal a 32 MHz, un segundo cristal a 32.768 KHz, un conector SMA para la
antena otro instrumento RF y headers/conectores generales de entrada/salida.
Podemos visualizar cada uno de los componentes del módulo en la figura 3.2.
54
Figura 3.2. Módulo CC2530EM
3.2.2 MÓDULO CC2531 USB DONGLE
Es un dispositivo con interfaz USB operacional que puede ser conectado a una
PC. En la figura 3.3 se observar los componente de este dispositivo. Cuenta con
un chip CC2531, una antena integrada, 2 diodos LED, 2 push botton pequeños y 2
huecos conectores que permiten la conexión de sensores externos o dispositivos.
Además, viene pre-programado para ser usado como Packet Sniffer, aunque se le
puede cargar cualquier otro firmware a través del conector específico que
incorpora.
Figura 3.3. Módulo CC2531 USB Dongle
55
3.2.3 SMARTRF05BB
La tarjeta de la batería SmartRF05 (Figura 3.4) se puede utilizar como una
alternativa a la EB, proporcionando un nodo autónomo cuando se conecta el
CC2530EM. Se alimenta con 2 pilas AA en las tomas debajo del tarjeta. Los
periféricos incluyen 4 LED’s controlados por un EM, 2 push button y un joystick. El
BB también tiene un conector de depuración SoC para la conexión a una
depuración/programación externa. Además posee 2 switches; uno para encendido
y el segundo para selección de transmisión.
Figura 3.4. SMARTRF05BB
3.2.4 PLACA DE DESARROLLO (SMARTRF05EB)
El SmartRF05EB (Figura 3.5) es la placa base en el kit con una amplia gama de
interfaces de usuario:
LCD de 3x16 Caracteres serial
56
Velocidad de la interfaz USB 2.0
UART
LEDs
Serial Flash
Potenciómetro
Joystick
Botones
El EB es la plataforma para los módulos de evaluación (EM) y se puede conectar a
la PC a través de USB para controlar el EM.
La placa SmartRF05EB hace la función de placa base, proporcionando
alimentación y comunicación bidireccional con el módulo CC2530EM a través de
sus conectores EM. Cuenta con varias interfaces de usuario y conexiones hacia
diversas interfaces externas, lo que proporciona gran rapidez a la hora de diseñar
y testear prototipos, tanto software como hardware.
Figura 3.5. Placa de desarrollo SMARTRF05EB
57
La placa de evaluación (SmartRF05 EB) contiene elementos que son de
relevancia, estos se describen a continuación:
3.2.4.1 CONTROLADOR USB CC2530
Se puede considerar como el elemento principal de la placa, ya que es el
controlador de USB y se encarga de gestionar la comunicación con la PC, a través
de un conector USB, y con el módulo de evaluación usando el SPI (Serial
Peripheral Interface), la UART (Universal Asynchronous Receive Transmit) o el
interfaz de depuración para SoC.
La figura 3.6 muestra la arquitectura de la placa SmartRF05EB, una vez
conectados a la placa el CC2530EM, tiene acceso completo a los periféricos,
como la pantalla LCD, la memoria flash, los diodos LED, los botones, el joystick y
la interfaz UART RS232.
Figura 3.6. Arquitectura de la placa desarrollo SMARTRF05EB
3.2.4.2 ALIMENTACIÓN DE LA PLACA
Su alimentación es muy variada ya que cuenta con diversas formas de obtener
energía.
58
Esto se puede seleccionar a través de un jumper específico P11 (Figura 3.7).
Figura 3.7. Jumper de alimentación de la placa
Baterías
Alimentación mediante dos baterías de 1.5V formato AA. En este caso el jumper
de selección debe conectar los pines 1 y 2. La placa cuenta un diodo LED que se
enciende cuando el voltaje cae por debajo de los 1.56V.
Alimentación externa
Alimentación a través de un conector DC jack estándar de 2.5 mm. El jumper de
selección debe conectar los pines 2 y 3.
Alimentación USB
Se utiliza cuando la placa está conectada a un PC mediante un cable USB,
utilizando parte de la corriente que éste es capaz de suministrar. Al igual que en el
caso de la alimentación externa, el jumper de selección debe conectar los pines 2
y 3.
Alimentación mediante fuente de laboratorio
En este caso hay que retirar el jumper de selección de método de alimentación. La
toma de tierra de la fuente externa ha de conectarse a cualquiera de los puntos de
conexión de la placa etiquetados con GND. La tensión de alimentación, que puede
variar entre los 2.7 y 3.6 voltios, se aplica directamente sobre el pin número 2 de la
sección P11. Hay que tener cuidado, ya que cuando se utiliza este método de
alimentación quedan deshabilitados todos los reguladores de tensión de la placa,
pudiéndose causar daños a la misma.
59
3.2.4.3 INTERFAZ UART RS232
En la figura 3.8 se muestra un esquema de interconexión entre las líneas de la
UART y los diferentes dispositivos de la placa de evaluación.
La interfaz UART puede ser utilizada por aplicaciones propias para establecer
comunicación con otros dispositivos. Esta interfaz usa un driver de línea de
manera que el puerto es compatible con la señalización RS232, permitiendo tres
tipos de comunicación:
Comunicación entre un PC y la placa de evaluación mediante un cable
serie.
Comunicación entre un PC y el controlador USB mediante un cable
cruzado.
Comunicación entre el controlador USB y el microcontrolador del módulo de
evaluación, mediante la conexión directa de las líneas de transmisión y
recepción.
Figura 3.8. Esquema de interconexión entre las líneas de la UART y los diferentes
dispositivos de la placa de evaluación.
60
3.2.4.4 JOYSTICK
El joystick integrado en la placa puede adoptar cinco posiciones distintas: centro,
derecha, izquierda, arriba y abajo, siendo la posición central la posición por
defecto y de retorno después de cualquier movimiento (incluida la pulsación del
mismo).
Para que todos los módulos de evaluación que se conecten a la placa puedan
usar el joystick, cuando se produce cualquier movimiento o pulsación se generan
dos señales analógicas adicionales. La primera, JOY_MOVE, indica que se ha
producido un movimiento del joystick partiendo de su posición central. La segunda,
JOY_LEVEL, dependiendo del voltaje de salida, indica qué movimiento se ha
realizado.
3.2.4.5 PANTALLA LCD
La placa SmartRF05EB cuenta con una pantalla LCD (Liquid Crystal Display) de 3
líneas y 16 caracteres por línea, cuyo acceso se hace a través del bus SPI.
3.2.4.6 BOTONES
La placa de desarrollo dispone de cinco botones distintos:
S1 y S2: Se trata de dos botones configurables a través del módulo de
evaluación para que interactúen con las aplicaciones instaladas en el
mismo.
USB: Está conectado al controlador USB.
USB Reset: Reinicia el controlador USB y el controlador del módulo de
evaluación, ya que durante el inicio del software del controlador USB se
reinicia por defecto el controlador de dicho módulo.
EM Reset: Reinicia el controlador del módulo de evaluación.
61
3.2.4.7 DIODOS LED
La placa SmartRF05EB integra 6 diodos LED cuya funcionalidad se describe a
continuación:
Diodos D1 a D4: Se trata de 4 diodos LED de propósito general, cuya
funcionalidad es totalmente programable a través del módulo de evaluación
conectado a la placa, pudiendo actuar, por ejemplo, como indicadores del
estado de la aplicación que se esté ejecutando, lo que facilita la depuración
del código de la misma.
Diodo D7: Cuando la placa de evaluación está alimentada mediante
baterías, este diodo indica el estado de las mismas, encendiéndose cuando
su nivel cae por debajo de los 1.56V.
Diodo D6: Está asociado al controlador USB y se usa para indicar el estado
de funcionamiento de la placa. Presenta cinco estados diferentes:
o OFF: Cuando el sistema está apagado o el controlador USB está
dañado.
o ON: Tras detectar un transceptor si se está usando el firmware
estándar.
o Parpadeo Corto: El diodo parpadea una sola vez durante la
secuencia de encendido, quedando apagado.
o Parpadeo a 1Hz: El controlador USB ha entrado en modo de
recuperación.
o Parpadeo a 10Hz: El controlador USB no ha podido encontrar una
aplicación válida. Los servicios básicos USB permanecen activos de
forma que se pueda cargar una aplicación que sí sea correcta.
3.2.4.8 CONECTORES EM
Los conectores EM forman la interfaz entre el módulo de evaluación y la placa de
desarrollo, permitiendo la comunicación entre ambos. Están formados por dos
zócalos de pines identificados como P5 y P6 en la placa, y la funcionalidad de
62
cada uno de los pines puede ser consultada en el documento “SmartRF05
Evaluation Board User´s Guide”.
3.2.4.9 CABECERAS DE JUMPERS USB Y E/S
Las señales que provienen de los conectores EM están conectadas a los
interfaces de usuario o al controlador USB a través de la cabecera de jumpers de
E/S o la cabecera de jumpers USB, respectivamente.
Los jumpers de estas cabeceras permiten controlar qué señales van a qué
dispositivos, haciendo más fácil la tarea de diseñar y depurar aplicaciones usando
dispositivos propios.
Figura 3.9. Esquema de conexión entre el EM y las cabeceras de jumpers.
3.2.5 CIRCUITO INTEGRADO CC2530
El chip CC2530 de Texas Instrumente es un dispositivo 802.15.4/ZigBee de
segunda generación, opera en la banda ISM de 2.4 GHz y está diseñado para
operar en redes de muy bajo consumo.
63
Este dispositivo se puede describir en cuatro módulos, especificados a
continuación: CPU y Memoria, Gestión de Alimentación, Periféricos y Radio.
3.2.5.1 CPU Y MEMORIA
La familia de los dispositivos CC2530 usa una CPU 8051 mejorada, posibilita la
ejecución de una instrucción por periodo de reloj. Cuenta con tres buses diferentes
para el acceso a memoria, con acceso en único ciclo al SFR (Special Function
Register), registro de datos DATA, y la memoria SRAM (Static Random-Access
Memory) principal.
El controlador de interrupciones es capaz de gestionar un total de 18 fuentes de
interrupción divididas en seis grupos.
El gestor de memoria se encarga de conectar la CPU y el controlador DMA con las
memorias físicas y todos los periféricos a través del bus SFR. Además es el
responsable de arbitrar y secuenciar los accesos simultáneos a una misma
memoria física.
La memoria SRAM de 8-KB es una memoria de muy bajo consumo capaz de
conservar el contenido incluso cuando la parte digital del dispositivo está
desconectada, característica fundamental para el desarrollo de aplicaciones en las
que es necesario optimizar al máximo el consumo.
El bloque de memoria flash de 256 KB se utiliza para el almacenamiento de
aplicaciones y de datos que deben estar disponibles después de reiniciar el
dispositivo.
3.2.5.2 GESTIÓN DE ALIMENTACIÓN
Tanto el núcleo del chip como los periféricos están alimentados a través de un
regulador de tensión de 1.8V, que permite el uso de diferentes modos de
64
alimentación para aplicaciones de bajo consumo. Además el dispositivo CC2530
dispone de 5 fuentes de reset distintas.
3.2.5.3 PERIFÉRICOS
El dispositivo CC2530 tiene una serie de periféricos que permiten el desarrollo de
aplicaciones avanzadas.
Uno de estos periféricos es el Interfaz de Depuración, que ofrece diferentes
funcionalidades. Entre ellas se la posibilidad de borrar por completo la memoria
flash, controlar qué osciladores están habilitados, iniciar y parar la ejecución de
programas de usuario y establecer breakpoints en código.
Dependiendo del modelo del dispositivo, este incluirá una memoria flash cuya
capacidad oscila entre 32 y 256 KB. Esta memoria puede ser programada desde
el software externo de usuario y a través del interfaz de depuración. El controlador
flash gestiona la lectura y escritura en la memoria.
El CC2530 cuenta con un controlador E/S, que es el responsable de gestionar
todos los pines de E/S de propósito general. Estos pines pueden ser configurados
por la CPU para que puedan ser controlados por software o por los periféricos.
Otro periférico es el controlador DMA de 5 canales, con acceso a todas las
memorias físicas, que proporciona gran eficiencia en la transferencia de datos
para todos los periféricos que lo usan.
El sistema cuenta con 6 temporizadores, cuya funcionalidad se describe a
continuación:
Temporizador 1: temporizador de 16 bits con funcionalidad de contador,
temporizador y PWM (Pulse Width Modulator).
Temporizador 2: también conocido como temporizador MAC, está
especialmente diseñado para soportar una capa MAC que cumpla con el
65
protocolo IEEE 802.15.4, o cualquier otro software que implemente un
protocolo de tiempo ranurado.
Temporizadores 3 y 4: son temporizadores de 8 bits con funcionalidad de
contador, temporizador y PWM.
Sleep Timer: se trata de un temporizador de muy bajo consumo con un reloj
de 32 KHz. Se suele usar como contador en tiempo real o en aplicaciones
para despertar al dispositivo y sacarlo del modo de alimentación 1 o 2.
Watchdog Timer: permite al dispositivo reiniciarse en caso de que el
firmware se bloquee.
El CC2530 incluye un coprocesador AES que permite la codificación y
descodificación de datos mediante el algoritmo AES con claves de 128 bits.
El convertidor analógico-digital proporciona una resolución de entre 7 y 12 bits con
anchos de banda que oscilan entre los 30 KHz y los 4KHz respectivamente.
La comunicación serie se gestiona con la USART 0 (Universal
Synchronous/Asynchronous Receiver/Transmitter) y la USART 1, ambas
configurables como SPI maestro/esclavo o UART. Además, el CC2531 incluye un
controlador USB 2.0 de doble buffer con una memoria RAM de 1KB.
Para finalizar, el CC2530 cuenta con un generador de números aleatorios de 16
bits, que puede ser usado, por ejemplo, para la generación de claves aleatorias
para la seguridad en las comunicaciones.
3.2.5.4 RADIO
La familia de dispositivos CC253x incluye un transceptor radio que cumple con la
norma IEEE 802.15.4. El núcleo de RF controla los módulos analógicos y
proporciona una interfaz entre la MCU y la radio.
66
3.2.5.5 CONVERTIDOR ANALÓGICO DIGITAL (ADC - ANALOGIC DIGITAL CONVERTER)
El ADC soporta hasta 14 bits de conversión de analógico a digital de hasta 12 bits
de ENOB (número efectivo de bits). Se incluye un multiplexor analógico con hasta
ocho canales configurables individualmente y un generador de tensión de
referencia. Resultados de la conversión pueden ser escritos a la memoria a través
de DMA. Varios modos de funcionamiento disponibles.
Las principales características de la ADC son los siguientes:
Tasas de diezmado seleccionables que también establecen la resolución
efectiva (7 a 12 bits).
Ocho canales de entrada individuales, de una sola terminal o diferencial
Interrupción de la generación de solicitud
DMA se dispara al final de conversiones
Entrada de sensor de temperatura
Capacidad de medición de la batería
La entrada del ADC es una etapa de capacitancia conmutada que toma la
corriente durante la conversión.
El ADC puede realizar una secuencia de conversiones y mover los resultados a la
memoria (DMA a través) sin ninguna interacción de la CPU.
Además de esta secuencia de conversiones, el ADC puede ser programado para
llevar a cabo una sola conversión de cualquier canal. Tal conversión se
desencadena por escrito a un registro llamado ADCCON3. La conversión se inicia
de inmediato a menos que una secuencia de conversión ya está en curso, en cuyo
caso la conversión solo se lleva a cabo tan pronto como esa secuencia está
terminada.
El resultado de la conversión digital se representa en forma complemento a 2.
Para las configuraciones de un solo extremo, el resultado se puede esperar que
sea positivo. Esto es debido a que el resultado es la diferencia entre la señal y de
67
tierra de entrada, que siempre se firmó. El valor máximo se alcanza cuando la
señal de entrada es igual a VREF, el voltaje de referencia seleccionado.
La exactitud de los resultados de la conversión depende de las propiedades de
estabilidad y de ruido del voltaje de referencia. La compensación del voltaje
deseada introduce un error de ganancia en el ADC proporcional a la relación del
voltaje deseado y el voltaje real. El Ruido en la referencia debe ser más bajo que
el ruido de cuantificación del ADC para asegurar que se alcanza la SNR
especificada.
3.3 HERRAMIENTAS DE SOFTWARE
3.3.1 IAR EMBEDDED WORKBENCH EW8051
IAR Embedded Workbench es un software desarrollado por la empresa IAR
Systems, que actualmente ofrece una amplia gama de compiladores y
depuradores para desarrollar aplicaciones basadas en los microcontroladores más
conocidos del mercado.
En concreto, el IAR EW8051 es un compilador C/C++ optimizado, capaz de
generar un código muy compacto y eficiente, que da soporte para la creación de
aplicaciones sobre una gran variedad de dispositivos basados en
microcontroladores de la familia 8051.
Ofrece una gran cantidad de funcionalidades, como la posibilidad de insertar
puntos de ruptura en el código o realizar el seguimiento de variables para la
mejora del rendimiento.
La versión utilizada para la elaboración de este proyecto ha sido la 8.10, ya que es
la misma con la que se compiló la pila de protocolos Z-Stack 2.5.1a. En la
siguiente figura se muestra el aspecto de la interfaz gráfica de usuario.
68
Figura 3.10. Interfaz de Usuario de IAR EW8051 v8.10
La interfaz de usuario se compone de tres ventanas:
Entorno de trabajo: muestra la estructura de ficheros asociada al proyecto
que se esté llevando a cabo. Permite una fácil localización de los archivos
ya que estos estarán organizados atendiendo a la estructura de la pila de
protocolos.
Ventana de código: visualiza el código asociado a los archivos que
componen el proyecto, permitiendo la edición del mismo.
Ventana de depuración: muestra el resultado obtenido durante la
compilación del código, indicando posibles errores y avisos si los hubiere.
69
3.3.2 MICROSOFT VISUAL STUDIO 2012
Microsoft Visual Studio 2012 es la última edición del entorno Microsoft Visual
Studio, el cual es un entorno de desarrollo integrado (IDE, por sus siglas en inglés)
para sistemas operativos Windows. Soporta varios lenguajes de programación,
tales como Visual C++, Visual C#, Visual J#, y Visual Basic .NET, al igual que
entornos de desarrollo web como ASP.NET, aunque actualmente se han
desarrollado las extensiones necesarias para muchos otros.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones
web, así como servicios web en cualquier entorno que soporte la plataforma .NET
(a partir de la versión .NET 2002). Así se pueden crear aplicaciones que se
intercomuniquen entre estaciones de trabajo, páginas web y dispositivos móviles.
La figura 3.11 mostrada a continuación es una imagen del IDE Visual Studio 2012
donde se muestra su interfaz de usuario que se manejó para la realización de la
interfaz gráfica. Se explican a continuación las ventanas y sus características que
componen la IDE Visual Studio.
VENTANA DE MENÚS: es donde se encuentra los comandos para editar,
compilar, depurar, analizar, dar formato a muestra interfaz o aplicación a
desarrollar
VENTANA DE EXPLORADOR DE SOLUCIONES: en esta se editan los
parámetros de las herramientas que se utilizan para elaborar nuestra
interfaz, como su valor numérico, nombre, características.
VENTANA DE TRABAJO: es esta la ventana más importante ya que es
donde se pueden agregar más ventanas como la de herramientas, para
agregar más botones, cuadros de texto, etcetera, la ventana de
70
compilación, encargada de mostrar el proceso de compilación y advertir de
posibles errores de sintaxis o de código, aquí es donde.
Figura 3.11. Interfaz de Usuario de Visual Studio
3.4 PERFIL Z-STACK
El conjunto de parámetros de pila que necesitan ser configurados con valores
específicos, junto con los valores de tipo del dispositivo anterior, son llamados
perfiles de pila. Los parámetros que componen el perfil de pila están definidos por
ZigBee Alliance.
Todos los dispositivos en la red deberán cumplir el mismo perfil de pila.
ZigBee Alliance ha definido dos diferentes perfiles de pila para la especificación
ZigBee 2007, ZigBee y ZigBee PRO, con el propósito de promover la
interoperabilidad. Todos los dispositivos que se ajusten a este perfil de pila
71
podrán trabajar en red con dispositivos similares que se ajusten a las
especificaciones.
Si los desarrolladores de aplicaciones deciden cambiar la configuración de
cualquiera de estos parámetros, pueden hacerlo con la advertencia de que esos
dispositivos ya no serán capaces de interactuar con los dispositivos de otros
fabricantes que optan por seguir la especificación ZigBee del perfil pila (ZigBee
Stack Profile – Z-Stack). Por lo tanto, los desarrolladores de " redes cerradas "
pueden optar por cambiar la configuración de las variables de perfil pila. Estos
perfiles de pila se denominan perfil pila " específico de la red".
El identificador de perfil de pila al que un dispositivo se ajusta está presente en la
baliza transmitida por dicho dispositivo. Esto permite a un dispositivo determinar el
perfil pila de una red antes de unirse a ella.
72
CAPÍTULO 4 IMPLEMENTACIÓN DE LA RED Y DESARROLLO DE LA INTERFAZ DE USUARIO
73
4.1 CONFIGURACIÓN DE LA RED DE SENSORES
Este trabajo fue realizado con la expectativa de realizar el despliegue de una red
de sensores de temperatura ambiental, que pudiera ser implementada de
diferentes maneras, por ejemplo, en aplicaciones de domótica, aplicaciones de
agronomía (uso de invernaderos) e incluso para uso industrial. Es por ello que se
estudiaron sus características y efectuaron ciertas pruebas para su desarrollo e
implementación.
El desarrollo de este proyecto está basado en la aplicación ejemplo Sensor Demo
proporcionada junto a la pila de protocolos Z-Stack de Texas Instruments. Esta
aplicación permite la creación de redes 802.15.4, balizadas o no balizadas, que
siguen una topología en estrella, en las que el coordinador de red será el primer
nodo que intente transmitir en un determinado canal. Una vez establecido el
coordinador de red, los nodos que intenten transmitir en el mismo canal deberán
unirse a dicha red, adaptándose a los parámetros que la rigen.
Primeramente, se realizó la configuración de los dispositivos componentes del Kit
de Desarrollo ZigBee, los cuales fueron programados usando el ambiente de
desarrollo IAR Embedded Workbench 8051 y aprovechando las herramientas y
códigos que el mismo Kit de Desarrollo proporciona.
Debido al empleo del estándar 802.15.4/ZigBee la red se divide en tres niveles
identificando los siguientes dispositivos.
El Coordinador ZigBee el cual fungirá como Puerta de enlace recibiendo toda la
información de la red y a través del cual se recuperara dicha información, el
Router ZigBee o Nodo Colector encargado de ampliar la red y redireccionar la
información de dispositivos separados; y los Dispositivos Finales los cuales se
comunicarán con su nodo padre (el coordinador o el router) enviando la
temperatura del sensor.
74
4.2 OBTENCIÓN E INTERPRETACIÓN DE TRAMA
El acceso a la información recopilada por la red se obtuvo utilizando la interfaz
serial UART RS232 del Coordinador ZigBee.
La configuración adecuada de la interfaz permitirá la lectura correcta de la trama
entregada por la Puerta de enlace, los parámetros correctos establecidos para la
interacción: Puerta de enlace–PC, son localizados en la programación de la
aplicación, como se muestran a continuación:
Baudrate: 38400
Bits de datos: 8
Paridad: None
Bit de Parada: 1
Control de Flujo: RTS/CTS
El uso de la interfaz UART RS232 emplea una conexión cableada con la PC, de
esta manera es que se reconoce y obtiene directamente la trama generada por el
Puerta de enlace, que en su composición presenta la información de los
dispositivos finales. Cada dispositivo final en la red genera una mensaje de 4
bytes, está a su vez es recolectado por el Router o Puerta de enlace donde se
encapsula en una trama de mayor longitud para ser finalmente enviada por la
interfaz serial.
Las funciones que se describirán a continuación son las que se encuentran
programadas en los dispositivos, en estas funciones es donde se encapsulan los
datos, se arman las tramas y se envían al coordinador y al puerto serial
respectivamente.
4.2.1 FORMATO DE MENSAJE DEL SENSOR
Este mensaje se forma en el dispositivo final (Sensor) y es enviado a través del
aire hacia el Puerta de enlace o Router.
75
1 Byte 1 Byte 2 Bytes
Temperatura Voltaje Dirección corta de padre
Figura 4.1. Trama de Dispositivo Final
A continuación se muestra la función que construye y envía dicho reporte:
FUNCIÓN GENERADA POR EL SENSOR HACIA EL COORDINADOR PUERTA
DE ENLACE ‘SEND REPORT’.
4.2.2 TRAMA DEL PUERTA DE ENLACE
Esta trama es generada en el Puerta de enlace, presenta una longitud de 15 bytes
y es enviada hacia la PC a través de la interfaz serial como reporte de la red. Esta
se conforma de los siguientes campos:
static void sendReport(void)
{
uint8 pData[SENSOR_REPORT_LENGTH];
static uint8 reportNr=0;
uint8 txOptions;
// Read and report temperature value
pData[SENSOR_TEMP_OFFSET] = readTemp();
// Read and report voltage value
pData[SENSOR_VOLTAGE_OFFSET] = readVoltage();
pData[SENSOR_PARENT_OFFSET] = HI_UINT16(parentShortAddr);
pData[SENSOR_PARENT_OFFSET + 1] = LO_UINT16(parentShortAddr);
// Set ACK request on each ACK_INTERVAL report
// If a report failed, set ACK request on next report
if ( ++reportNr<ACK_REQ_INTERVAL && reportFailureNr==0 )
{ txOptions = AF_TX_OPTIONS_NONE;
} else
{ txOptions = AF_MSG_ACK_REQUEST;
reportNr = 0;
} // Destination address 0xFFFE: Destination address is sent to
previously
// established binding for the commandId.
zb_SendDataRequest( 0xFFFE, SENSOR_REPORT_CMD_ID,
SENSOR_REPORT_LENGTH, pData, 0, txOptions, 0 );
}
76
o Identificador de trama: 1 Byte
o Longitud: 1 Byte
o Tipo de comando: 2 Bytes
o Dirección fuente: 2 Bytes
o Comando ID: 2 Bytes
o Longitud del mensaje del sensor: 2 Bytes
o Dato del sensor: 4 bytes
Temperatura_1 Byte
Voltaje_1 Byte
Dirección corta de padre_2 Bytes
o Verificador de calidad de canal: 1 Byte
A continuación se muestra la función que construye y envía dicho reporte:
FUNCIÓN GENERADA POR EL PUERTA DE ENLACE HACIA LA PC
‘SENDGTWREPORT’
static void sendGtwReport(gtwData_t *gtwData)
{ uint8 pFrame[ZB_RECV_LENGTH];// Start of Frame Delimiter
pFrame[FRAME_SOF_OFFSET] = CPT_SOP; // Start of Frame Delimiter BIT 0 // Length
pFrame[FRAME_LENGTH_OFFSET] = 10; // BIT 1 2 // Command type
pFrame[FRAME_CMD0_OFFSET] = LO_UINT16(ZB_RECEIVE_DATA_INDICATION); //BIT 2 3
pFrame[FRAME_CMD1_OFFSET] = HI_UINT16(ZB_RECEIVE_DATA_INDICATION); //BIT3 4
//Source address
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_SRC_OFFSET] = LO_UINT16(gtwData->source); //BIT4
5 pFrame[FRAME_DATA_OFFSET+ ZB_RECV_SRC_OFFSET+ 1] = HI_UINT16(gtwData->source);
//BIT5 6 // Command ID
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_CMD_OFFSET] = LO_UINT16(SENSOR_REPORT_CMD_ID);
//BIT6 7
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_CMD_OFFSET+ 1] = HI_UINT16(SENSOR_REPORT_CMD_ID);
//BIT7 8 // Length
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_LEN_OFFSET] = LO_UINT16(4); //BIT 8 9
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_LEN_OFFSET+ 1] = HI_UINT16(4); //BIT 9
10
// Data
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_DATA_OFFSET] = gtwData->temp; //BIT 10
11
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_DATA_OFFSET+ 1] = gtwData->voltage; //BIT 11
12
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_DATA_OFFSET+ 2] = LO_UINT16(gtwData-
>parent);//BIT12 13
pFrame[FRAME_DATA_OFFSET+ ZB_RECV_DATA_OFFSET+ 3] = HI_UINT16(gtwData->parent);//BIT
13 14
// Frame Check Sequence
pFrame[ZB_RECV_LENGTH - 1] = calcFCS(&pFrame[FRAME_LENGTH_OFFSET], (ZB_RECV_LENGTH -
2) ); //BIT 14 15
// Write report to UART
HalUARTWrite(HAL_UART_PORT_0,pFrame, ZB_RECV_LENGTH);
}
77
4.3 LECTURA Y VISUALIZACIÓN DE TRAMA
Para el caso específico de este proyecto, se ha empleado el software Microsoft
Visual Studio 2012, como herramienta para el desarrollo de una aplicación que
proporcione una interfaz gráfica sencilla y manipulable que permita la obtención de
la trama que el dispositivo Puerta de enlace genera y envía hacia el puerto COM
de la PC para así visualizar los datos e interpretarlos.
La creación de la interfaz con la herramienta de software Visual Studio se hizo
creando un nuevo proyecto basado en el lenguaje de programación C#, ya que es
un lenguaje orientado a objetos permite crear una Aplicación de Windows Forms,
útil para el desarrollo de la interfaz.
Figura 4.2. Creación del Proyecto en C#
Con la configuración anterior se generó el ambiente de desarrollo para la interfaz
de usuario en donde se agregaron las herramientas que servirían para cumplir los
objetivos de la interfaz como son la configuración de puerto, lectura de trama o
interpretación de trama, y monitoreo de los dispositivos finales.
78
En la figura 4.3 se muestra la interfaz diseñada para el cumplimiento de las tareas
mencionadas.
Figura 4.3. Interfaz creada para el Sistema de Monitoreo ZigBee
La interfaz diseñada para este proyecto presenta 3 secciones funcionales;
La primera sección se enfoca a la configuración del puerto COM de la PC, a través
del cual se realiza la comunicación serial. En esta sección debemos seleccionar el
puerto COM a utilizar, los parámetros requeridos para la comunicación serial
vienen predeterminados evitando así una lectura de trama incorrecta asegurando
una comunicación estable y segura.
La interfaz permite actualizar los puertos COM por si hubiese la necesidad de
cambiar de puerto en algún momento dado.
79
Figura 4.4. Configuración de la comunicación Serial
La segunda es la visualización de la tramas recolectadas por el Puerta de enlace
de cada sensor en los dispositivos finales de la red.
Figura 4.5. Visualización de tramas de los dispositivos finales
Para la última sección se realiza un seccionamiento de la trama por cada
dispositivo sensor y se organiza para un monitoreo constante y adecuado de la
red.
Figura 4.6.Visualización de la temperatura y dirección de los dispositivos finales
80
4.4 PRUEBAS SOBRE LA RED
4.4.1 RANGO DE COBERTURA DE LOS DISPOSITIVOS ZDK
De acuerdo a las características que ZigBee presenta, posee un rango de
cobertura de 10 a 75 m. en base a esta información se realizaron pruebas físicas
sobre edificios de Escuela Superior de Ingeniería Mecánica y Eléctrica – Unidad
Zacatenco en las cuales se desplegó un enlace simple entre un coordinador y un
dispositivo sensor obteniendo los siguientes resultados:
Con línea de vista
Se obtuvo un alcance máximo de entre 80 y 90 metros sin embargo el dispositivo
presentaba un estado intermitente de conexión ya que a esta distancia dejaba de
reportar la temperatura continuamente y abandonaba la red.
Para evitar estos problemas de desconexión se optó por no colocar los
dispositivos a más de 75 metros de distancia uno del otro, tal y como lo marcan las
características ZigBee.
Figura 4.7 Alcance de cobertura en línea directa de 75 metros
81
Sin línea de vista
Se presentó un alcance no mayor a 10 metros, debido a los obstáculos presentes
que ocasionaron la perdida de la señal, lo que concuerda con la característica
ZigBee ya antes mencionada.
En el caso de que la red quisiera ser instalada en interiores o exteriores se deberá
establecer una topología adecuada que permita evitar ciertos relieves que afectan
la conexión. Por tal motivo se pueden crear topologías que resuelvan estos
problemas
4.4.2 MENSAJES PERDIDOS
El estándar ZigBee proporciona un espacio de memoria para la pila de mensajes
en la cual se almacenan los mensajes a enviar. Además posee una memoria que
permite al dispositivo mantener la vinculación con su nodo padre, aun si este se
desconecta. Sin embargo los mensajes con los reportes de temperatura son
automáticamente eliminados debido a que el sensor es desactivado.
4.4.3 MONITOREO AMBIENTAL
Según las características bajo las que se creó la interfaz de monitoreo se realizó
una prueba sobre la red tanto en interior como en exterior.
Para efectuar dicha prueba se llevó a cabo primeramente la configuración de cada
dispositivo según su propósito. Una vez configurados los dispositivos de la red se
estableció la topología sobre la cual se trabajaría y se desplegaron los nodos en la
zona propuesta para las pruebas, considerando que el rango de cobertura de los
dispositivos no fuese afectado.
La prueba consistió en un monitoreo continuo de la zona propuesta, en la cual la
red permaneció trabajando durante aproximadamente 5 horas con pequeños
82
lapsos de interrupción utilizados para verificar el funcionamiento correcto de la
red y sus elementos.
La topología empleada en el despliegue de la red fue una topología tipo árbol que
se muestra en la figura 4.8.
Figura 4.8. Topología de árbol implementada en la red
Después de desplegados los dispositivos sensores y haber colocado el router
estratégicamente, procedimos al monitoreo de la red mediante el Puerta de
enlace, el cual como se mencionó anteriormente es el dispositivo que actuaría
como director de la red y enlace hacia otras redes, así para establecer el enlace
hacia la PC se empleó la interfaz serial UART RS-232 a través de un cable DB9 a
USB.
Realizada esta conexión se configuro la interfaz considerando las
especificaciones ya tratadas en este proyecto, seleccionando únicamente el puerto
83
que correspondiera a la conexión Puerta de enlace-PC y estableciendo el inicio de
la comunicación Serial y así finalmente verificar la lectura de tramas y el monitoreo
de la temperatura registrada por cada dispositivo sensor (Figura 4.9).
Además, periódicamente los datos recolectados fueron almacenados en un
archivo de texto lo que permitiría su consulta posterior (Figura 4.10).
Figura 4.9. Interfaz del sistema de monitoreo operando con cinco dispositivos sensores.
Figura 4.10.Los datos son
guardados en archivos .txt
84
Y aunado a esto realizar la interpretación grafica para observar el comportamiento
de los dispositivos sensores en ambiente donde los cambios de temperatura
fueran fácilmente registrados sin perjudicar el equipo. (Figura 4.11)
Figura 4.11. Interpretación grafica de los datos recolectados
85
CONCLUSIONES
A continuación se realiza un análisis acerca de los resultados obtenidos en el
transcurso del proyecto y sobre la tecnología 802.15.4/ZigBee, esto dejando líneas
de investigación para dar continuidad a este trabajo.
Una vez finalizado el desarrollo de la aplicación se visualizan los parámetros
obtenidos y reportan las tramas enviadas con su dirección de cada uno de los
dispositivos sensores, nodos, en redes IEEE 802.15.4 y comprobando el
funcionamiento de la red, se llegó a las siguientes conclusiones:
Debido a su bajo consumo se destaca la Tecnología ZigBee, lo cual aumenta la
autonomía de las baterías de los dispositivos respecto a otras tecnologías
inalámbricas.
Una de las características importantes es el bajo costo de producción, ya que
están equipados con microcontroladores sencillos y transceptores de muy baja
potencia.
Conforme a las características mencionadas y debido a la sencillez referida al
desarrollo de aplicaciones, hacen a esta tecnología la indicada para aplicar en
áreas en plena expansión, como la domótica, inmótica (automatización de
edificios) o para aplicaciones médicas mediante redes de área personal.
Una característica igualmente importante es la posibilidad de crear redes
balizadas, en las que optimizan el consumo de energía en coordinadores de red
como en routers. Sin embargo al día de hoy existen pocos fabricantes que
produzcan dispositivos con estas características implementadas directamente
sobre ZigBee. Para permitir toda esta funcionalidad debemos prescindir de las
funcionalidades de las altas capas de ZigBee y requerimos el empleo de
protocolos simplificados basados en la norma IEEE 802.15.4, como es el caso de
Z-Stack
La versión de Z-Stack utilizada en este proyecto es limitada, pero incluye más
funcionalidades que TIMAC (Pila de Protocolos hermana a Z-Stack), ya que,
86
además de crear topologías tipo estrella, puede crear redes con topología tipo
árbol, lo cual sirve para aumentar la cobertura de la red y poder evitar obstáculos
que perjudiquen la comunicación entre los dispositivos de la red.
En lo que respecta a la interfaz de usuario diseñada en Visual Studio, esta cumplió
su objetivo al permitir el monitoreo de la red de sensores, así como usar la
información recolectada para interpretarla y visualizarla gráficamente.
TRABAJO A FUTURO
Realizar un estudio real del consumo de dispositivos de las redes balizadas
Mejora y optimización de la aplicación SensorDemo de Z-Stack para resolver
problemas derivados de la asignación de direcciones cortas de red.
Creación de un módulo en la interfaz gráfica para que el usuario pueda editar
parámetros específicos en donde se requiera mejorar la red establecida
Creación de una base de datos en un servidor web el cual recopile toda la
información generada y entregada por la PC y que esta información sea accesible.
Crear la vinculación de la base de datos con una interfaz web donde se transfiera
información para propósitos de manipulación de esta.
Realizar una página web o una aplicación en un celular, en donde se pueda
visualizar la información, mediante gráficas, donde se puedan realizar pronósticos
respecto a días anteriores.
Seguimiento en la modificación de la programación en los elementos del Kit de
Desarrollo para implementar actuadores, que desarrollaran actividades asignadas,
en las terminales de los dispositivos sensores y así ejecutar ordenes remotas, las
cuales podrán realizarse desde dispositivos móviles con acceso a internet
87
ACRÓNIMOS
ACK Acknowledge
ADC Analogic Digital Converter. Convertidor Analógico Digital
AES Advanced Encryption Standard
APS Application Support
BI Beacon Interval
BO Beacon Order
BPSK Binary Phase Shift Keying
CAP Contention Access Period
CFP Contention-Free Period
CSMA-CA Carrier Sense Multiple Access with Collision Avoidance
FCS Frame Check Sequence
FFD Full-Function Devices
GTS Guaranteed Time Slot
IEEE Institute of Electrical and Electronics Engineers
ISM Industrial, Scientific & Medical
LAN Local Area Network
LQI Link Quality Indicator
LR-WPAN Low Rate Wireless Personal Area Network
MAC Medium Access Control. Control de Acceso al Medio
MAN Metropolitan Area Network. Red de Área Metropolitana
88
MFR MAC Footer
MHR MAC Header
O-QPSK Orthogonal Quadrature Phase Shift Keying
PAN Personal Area Network Red de Área Personal
PC Personal Computer
PDA Personal Digital Assistant
PHR Physical Header
PPDU PHY Protocol Data Unit. Unidad de Protocolo de Datos Físico
PWM Pulse Width Modulator
RFD Reduced Function Device
RFD Reduced-Function Devices
RIS Redes Inalámbricas de Sensores
SD Superframe Duration
SFR Special Function Register
SO Superframe Order
SoC System on Chip
SRAM Static Random-Access Memory
UART Universal Asynchronous Receive Transmit
USART Universal Synchronous/Asynchronous Receiver/Transmitter
USB Universal Serial Bus
WAN Wide Area Network. Red de Área Amplia
89
WBAN Wireless Body Area Network. Red Inalámbrica de Área Corporal
WLAN Wireless Local Area Network. Red de Área Locas
WPAN Wireless Personal Area Network. Red de Area Personal
WSN Wireless Sensor Network. Red Inalámbrica de Sensores
ZC Coordinador ZigBee
ZDK ZigBee Development Kit
ZDO ZigBee Device Object
ZED Dispositivo final
ZR Router ZigBee
90
BIBLIOGRAFÍA Y REFERENCIAS
Texas Instruments. “CC2530ZDK User´s Guide (Rev. B)”, 2010.
Documento en formato PDF accesible por internet en la dirección:
http://www.ti.com/tool/cc2530ZDK
Texas Instruments. “CC253x System-on-Chip Solution for 2.4 GHz IEEE
802.15.4 and ZigBee Application”, 2010.
Documento en formato PDF accesible por internet en la dirección:
http://www.ti.com/lit/ug/swru191/swru191.pdfsrw191.pdf
Texas Instruments. “SmartRF05 Evaluation Board User´s Guide”, 2010.
Documento en formato PDF accesible por internet en la dirección:
http://www.ti.com/lit/ug/swru210a/swru210a.pdf
A fully compliant ZigBee 2012 solution: Z-Stack
http://www.ti.com/tool/z-stack
CC2530 ZigBee Development Kit User’s Guide
http://www.ti.com/lit/ug/swru209b/swru209b.pdf
IAR Embedded Workbench for 8051
http://www.iar.com/Products/IAR-Embedded-Workbench/8051/
http://www.embeddedcraft.org/UsingIAREmbeddedWorkbenchPART1.pdf
Tutorial: Explorar el IDE de Visual Studio con C#
http://msdn.microsoft.com/es-es/library/jj153219.aspx
http://msdn.microsoft.com/es-es/library/k4cbh4dh(v=vs.100).aspx
Enciclopedia De Microsoft Visual C#. Francisco Javier Ceballos,
Coedición: Alfaomega, Ra-Ma / 3ª. Edición
Redes Inalámbricas de Sensores: Teoría y Aplicación práctica. Roberto Fernández
Martínez, Universidad de la Rioja / Servicio de Publicaciones 2009