Sie sind auf Seite 1von 138

ESCUELA TCNICA SUPERIOR DE I N GE NI ER A D E TE L EC OM U NI C AC I N UNIVERSIDAD DE MLAGA

PROYECTO FIN DE CARRERA

CARACTERIZACIN DEL CONSUMO EN REDES ZIGBEE/802.15.4

INGENIERA DE TELECOMUNICACIN

MLAGA, 2009

GONZALO CAMPOS GARRIDO

ESCUELA TCNICA SUPERIOR DE I N GE NI ER A D E TE L EC OM U NI C AC I N UNIVERSIDAD DE MLAGA


Titulacin: Ingeniera de Telecomunicacin

Reunido el tribunal examinador en el da de la fecha, constituido por: D./D.__________________________________________________________ D./D.__________________________________________________________ D./D.__________________________________________________________ para juzgar el Proyecto Fin de Carrera titulado:

CARACTERIZACIN DEL CONSUMO EN REDES ZIGBEE/802.15.4

del alumno/a D. Gonzalo Campos Garrido dirigido por D. Eduardo Casilari Prez ACORD POR ______________________________________ OTORGAR LA CALIFICACIN DE _______________________________________________

Y, para que conste, se extiende firmada por los componentes del tribunal, la presente diligencia

Mlaga, a ______ de __________________ de _________

El/La Presidente/a

El/La Vocal

El/La Secretario/a

Fdo.: _________________ Fdo.: _________________ Fdo.: _________________

ESCUELA TCNICA SUPERIOR DE I N GE NI ER A D E TE L EC OM U NI C AC I N UNIVERSIDAD DE MLAGA


CARACTERIZACIN DEL CONSUMO EN REDES ZIGBEE/802.15.4

REALIZADO POR: Gonzalo Campos Garrido

DIRIGIDO POR: Eduardo Casilari Prez

DEPARTAMENTO DE: Tecnologa Electrnica TITULACIN: Ingeniera de Telecomunicacin PALABRAS CLAVE: Consumo, ZigBee, 802.15.4, CC2480

RESUMEN: En este proyecto se realiza una caracterizacin del consumo de corriente de nodos ZigBee/802.15.4. Se particularizarn los resultados atendiendo a los distintos tipos de nodos que forman una red ZigBee as como a la tarea que realiza cada uno.

Mlaga, Junio de 2009

Agradecimientos
Quisiera agradecer a mis padres, Bartolom y Celia, el apoyo constante que siempre me han ofrecido. Sin su ayuda, consejo y motivacin, jams habra conseguido llegar hasta aqu.  Tambin me gustara dar las gracias a mi tutor, Eduardo Casilari. Su ecaz y rpida ayuda, el inters por este proyecto y, en general, su simpata mostrada hacia mi, han facilitado enormemente mi trabajo durante estos ltimos meses.

ii

Acrnimos
ACLK Auxiliary Clock ADC AF APS Analog to Digital Converter Application Framework Application Support Sub-Layer

AREQ Asynchronous Request BI BO CAP CCA CCM CFP DCO FCS FHSS GPIB GTS HAL IEEE IR ISM ISR Beacon Interval macBeaconOrder Contention Access Period Clear Channel Assessment Counter with CBC-MAC Contention Free Period Digitally-Controlled Oscillator Frame Check Sequence Frequency Hop Spread Spectrum General Purpose Interface Bus Guarantee Time Slots Hardware Abstraction Layer Institute of Electrical and Electronics Engineers Infra Red Industrial, Scientic and Medical Interrupt Service Routine

iii

iv

ITU LED LPM LQI MAC

International Telecommunication Union Light-Emitting Diode Low Power Mode Link Quality Indicator Medium Access Control

MCLK Main Clock MT NV Monitor Test Non-volatile Memory

OFDM Orthogonal Frequency Division Multiplexing PAN PDU Personal Area Network Protocol Data Unit

PPDU Physical Protocol Data Unit RAM RF RISC SD SIG Random Access Memory Radio Frequency Reduced Instruction Set Computer Superframe Duration Special Interest Group

SMCLK Submain Clock SO SOF SPI mac Superframe Order Start of Frame Indicator Serial Peripheral Interface

SREQ Synchronous Request SRSP SYS Synchronous Response Interfaz de Sistema

UART Universal Asynchronous Receiver-Transmitter UWB Ultra-Wideband

WPAN Wireless Personal Area Network ZASA ZDO ZigBee Accelerator Sample Application ZigBee Device Object

ndice general
1. Introduccin
1.1. Ubicacin tecnolgica 1.1.1. 1.1.2. 1.1.3. 1.2. 1.3. 1.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1
1 4 5 6 6 8 8

Ultra-WideBand

Estndares de bajo consumo: aplicaciones

Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estructuracin de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. ZigBee/802.15.4
2.1. 2.2. Introduccin a ZigBee/802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologa 2.2.1. 2.2.2. 2.2.3. 2.3. 2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11
11 12 12 12 13 13 16 16 16 18 20 21 23 23 24 27 28 28 29 30 31 33

Topologa en estrella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologa en malla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologa en rbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Capa Fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capa MAC 2.4.1. 2.4.2. 2.4.3. 2.4.4. 2.4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Descripcin general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modos de funcionamiento Algoritmo CSMA-CA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Inicializacin y mantenimiento de PAN Formato de trama

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5.

Capa de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1. 2.5.2. 2.5.3. Descripcin general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formato de trama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.6.

Capa de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1. 2.6.2. 2.6.3. Descripcin general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subcapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Formato de trama

2.7. 2.8.

Seguridad

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Implementaciones comerciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

vi

NDICE GENERAL

3. Herramientas de desarrollo empleadas y sistema de medida


3.1. Kit de desarrollo eZ430-RF2480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1. 3.1.2. 3.1.3. 3.1.4. 3.1.5. 3.2. Introduccin CC2480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37
37 37 39 54 57 59 64 64 65 65 66 67 67 67 69 69 70 71 71 73 73

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

MSP430 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Esquemtico de conexin entre CC2480 y MSP430 . . . . . . . . . . . . . . . . . . Aplicacin de ejemplo ZASA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Herramientas de instrumentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. 3.2.2. 3.2.3. 3.2.4. Osciloscopio Tektronix TDS 3012B . . . . . . . . . . . . . . . . . . . . . . . . . . . Fuente de alimentacin Tektronix PS2520G . . . . . . . . . . . . . . . . . . . . . . Multmetro HP34401A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CC2520 Evaluation Module Kit y SmartRF05 Evaluation Board . . . . . . . . . .

3.3.

Herramientas software 3.3.1. 3.3.2. 3.3.3. 3.3.4. 3.3.5.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Sensor Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Z-Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Packet Snier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IAR Embedded Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.4.

Circuito de medida empleado 3.4.1. 3.4.2. 3.4.3.

Esquema general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Amplicador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Filtro paso bajo

4. Estudio del consumo


4.1. 4.2. Encendido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1. 4.2.2. 4.2.3. 4.3. Coordinador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77
77 80 80 84 88 90 90 92 93 106 106 107 109

Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dispositivo nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Recepcin y envo de datos 4.3.1. 4.3.2. 4.3.3. Coordinador

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dispositivo nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.4.

Prdida de conexin con el dispositivo padre . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1. 4.4.2. Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dispositivo nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.5.

Tabla de resumen de consumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5. Conclusiones y lneas futuras de trabajo


5.1. 5.2. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lneas futuras de trabajo

111
111 112

NDICE GENERAL

vii

A. Desarrollo de una aplicacin para las comunicaciones va el puerto serie Referencias

115 119

viii

NDICE GENERAL

ndice de guras
1.1. 1.2. 1.3. 1.4. 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 2.9. Espectro electromagntico. Fuente: [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 4 6 11 13 14 15 15 17 20 22 27 27 28 30 32 38 38 39 40 41 42 42 44 45 46 53 55 56 Algunas de las frecuencias ISM para distintas localizaciones. Fuente: [2]

Rango respecto a tasa de transferencia para diferentes tecnologas inalmbricas. . . . . . . Espectros de UWB y Wi-Fi 802.11a. Fuente: [7] . . . . . . . . . . . . . . . . . . . . . . .

Pila de protocolos ZigBee/802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologas de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Canales radio 802.15.4. Fuente: [11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PDU (

Protocol Data Unit ) de nivel fsico o PPDU. Fuente: [10]

. . . . . . . . . . . . . . .

Tratamiento de la PPDU

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Estructura de supertrama. Fuente: [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de bloques del algoritmo CSMA-CA. Fuente: [10] . . . . . . . . . . . . . . . . . Distintos formatos de tramas MAC. Fuente: [11] . . . . . . . . . . . . . . . . . . . . . . .

Ejemplo de red mostrando el Cskip(d) y las direcciones de red . . . . . . . . . . . . . . . .

2.10. Formato general de trama de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11. Capa de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12. Formato general de trama de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.13. Formato de trama con seguridad habilitada 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9.

Distribucin de la pila de protocolos entre microprocesador y CC2480 Componentes del

kit

eZ430-RF2480. Fuente: [22]

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Conexin de los componentes del

kit

eZ430-RF2480. Fuente: [22]

Conexin entre el integrado CC2480 y un microprocesador . . . . . . . . . . . . . . . . . . Distribucin de pines en CC2480. Fuente: [13] . . . . . . . . . . . . . . . . . . . . . . . . . Formato de trama de comunicacin entre microprocesador y CC2480 . . . . . . . . . . . . Bits de comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

AREQ. Fuente: [12]

SREQ. Fuente: [12] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.10. POLL. Fuente: [12] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11. Ejemplo de asignacin de direcciones en una red de 6 nodos formada con el CC2480 3.12. Arquitectura interna del MSP430. Fuente: [19] . . .

. . . . . . . . . . . . . . . . . . . . . . . .

3.13. Distribucin de pines en MSP430. Fuente: [20] . . . . . . . . . . . . . . . . . . . . . . . . .

ix

NDICE DE FIGURAS

3.14. Esquemtico de conexin entre CC2480 y MSP430. Fuente: [21] . . . . . . . . . . . . . . . 3.15. Mquina de estados de la aplicacin de ejempolo ZASA. Fuente: [22] . . . . . . . . . . . . 3.16. Red formada por un coordinador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.17. Coordinador y

58 61 62 62 63 64 65 65 66 67 68 69 70 71 71 72 73 74 74 76 78 78 79 80 81 82 83 83 84 85 85 86 86 87 88 89 89 90 91 92 93

router

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.18. Red compuesta por 3 dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.19. Tektronix TDS 3012B. Fuente: [23] 3.20. Tektronix PS2520G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.21. HP34401A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.22. CC2520EMK y SmartRF05EB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.23. Monitorizacin de una red de 6 dispositivos ejecutando ZASA . . . . . . . . . . . . . . . . 3.24. Z-Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.25.

Packet Snier

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.26. IAR Embedded Workbench

3.27. Representacin de una medida de corriente con MATLAB . . . . . . . . . . . . . . . . . . 3.28. Esquema general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.29. Esquema para la medida del consumo de potencia

3.30. Amplicador INA195 de Texas Instruments. Fuente: [33] . . . . . . . . . . . . . . . . . . . 3.31. INA 195 conectado a un ltro paso bajo. Fuente: [33] . . . . . . . . . . . . . . . . . . . . . 3.32. Filtro Paso Bajo de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.33. Esquema completo del circuito medida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 4.9. Consumo de corriente al conectar la alimentacin . . . . . . . . . . . . . . . . . . . . . . . Consumo de corriente del dispositivo en espera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Consumo al conectar la alimentacin y en espera Inicio del coordinador

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Inicio del coordinador con bsqueda en varios canales Escaneo activo sobre dos canales

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Visin en detalle del escaneo activo sobre dos canales . . . . . . . . . . . . . . . . . . . . . Baliza emitida por el nodo para determinar si ya existe un coordinador . . . . . . . . . . . Consumo durante el inicio de un

4.10. Inicio de un

router

router

con escaneo sobre dos canales

. . . . . . . . . . .

con escaneo sobre dos canales . . . . . . . . . . . . . . . . . . . . . . .

4.11. Baliza enviada por el

router

y respuesta del coordinador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.12. Desglose del paso 8 (vinculacin al coordinador)

4.13. Asociacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.14. Vinculacin del

router

al coordinador

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.15. Consumo durante el inicio de un dispositivo nal con escaneo sobre un canal

4.16. Inicio de un dispositivo nal con escaneo sobre dos canales . . . . . . . . . . . . . . . . . . 4.17. Desglose del paso 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.18. Consumo de corriente durante el funcionamiento regular del coordinador de red . . . . . . 4.19. Consumo de corriente del coordinador de red 4.20. Pasos 4 y 5 y desglose del paso 5 . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.21. Consumo de corriente en un dispositivo nal durante el envo de datos . . . . . . . . . . .

NDICE DE FIGURAS

xi

4.22. Consumo de corriente durante la transmisin de un paquete de datos . . . . . . . . . . . . 4.23. Paquete de datos enviado por un dispositivo nal . . . . . . . . . . . . . . . . . . . . . . . 4.24. Conrmacin

94 95 96 97 98 99 99 100 101 102 102 103 104 104 104 105 105 105 106 107 107 108 108 116 117 118

ack

a nivel MAC

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.25. Consumo de corriente durante una secuencia activa . . . . . . . . . . . . . . . . . . . . . . 4.26. Corriente media consumida y vida til de las bateras en funcin de

. . . . . . . . . . .

4.27. Consumo de corriente durante una secuencia activa . . . . . . . . . . . . . . . . . . . . . . 4.28. Paquete de datos de 5 bytes de carga til . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.29. Duracin del intervalo de transmisin (TX) para distintos tamaos de paquete

4.30. Consumo durante una secuencia activa por partes . . . . . . . . . . . . . . . . . . . . . . . 4.31. Consumo de corriente y vida til de las bateras en funcin del tamao de paquete (n) . . 4.32. Envo de 2 bytes utilizando seguridad 4.33. Consumo durante el envo de datos con . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ack

activo y mensaje POLL

. . . . . . . . . . . .

4.34. Consumo debido a la recepcin del mensaje 4.35. Peticin de 4.36. 4.37.

Ack Ack Ack

ack

ack

de aplicacin y envo de mensaje POLL .

a nivel de aplicacin

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

a nivel MAC y de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a nivel MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.38. Mensaje POLL 4.39.

a nivel MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.40. Corriente media consumida y vida til con y sin error de funcionamiento en el CC2480 . . 4.41. Mensajes de reconexin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.42. Noticacin de orfandad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.43. Proceso de reasociacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.44. Consumo de corriente durante la reconexin realizando escaneo sobre un canal

A.1. Formato de trama de comunicacin entre microprocesador y CC2480 . . . . . . . . . . . . A.2. Diagrama de ujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3. Aplicacin desarrollada para PC en funcionamiento . . . . . . . . . . . . . . . . . . . . . .

xii

NDICE DE FIGURAS

ndice de tablas
1.1. 2.1. 2.2. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. Comparativa entre los protocolos Wi-Fi, Bluetooth, ZigBee y UWB. Fuente: [3] . . . . . . Caractersticas de las frecuencias 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 14 26 41 43 47 48 48 49 50 51 51 52 57 60 75 81 84 88 91 92 101 108

Ejemplo de tamao de subgrupos de direcciones . . . . . . . . . . . . . . . . . . . . . . . . Descripcin de los principales pines del CC2480 . . . . . . . . . . . . . . . . . . . . . . . . Valores posibles para los campos tipo y subsistema de comando . . . . . . . . . . . . . . . Comandos de la interfaz SYS Comandos de la interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Simple

Comandos de la interfaz AF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comandos de la interfaz ZDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros especcos de un dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros especcos de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Consumo de corriente en el CC2480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.10. Cskip(d) en CC2480

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.11. Modos de bajo consumo en el microprocesador MSP430

3.12. Estado de los diodos LED de acuerdo con el programa ZASA

3.13. Velocidad de muestreo del osciloscopio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. Consumo en funcin del nmero de canales escaneados durante el inicio de red Consumo en funcin del nmero de canales escaneados durante el inicio de un Consumo mximo y mnimo durante el inicio de un dispositivo nal Consumo medio de corriente en el coordinador de red Consumo medio de corriente en el coordinador de red . . . . . .

router

. . .

. . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Consumo de corriente en los diferentes intervalos de una secuencia activa Consumo mximo y mnimo durante la reasociacin a la red

. . . . . . . . . . . . . . . .

Resumen del consumo medio de corriente y potencia. La tensin de alimentacin es de 3 V. 109

xiii

xiv

NDICE DE TABLAS

Captulo 1

Introduccin
1.1. Ubicacin tecnolgica
Durante muchos aos, la comunicacin mediante cables ha sido la forma ms habitual de intercambiar informacin entre dos puntos. No obstante, y a pesar de sus evidentes ventajas, este tipo de comunicaciones presenta las siguientes limitaciones: Geogrcas: Dependiendo de la geografa del terreno donde queramos realizar las comunicaciones, la instalacin y el mantenimiento de la infraestructura necesaria pueden resultar complicados. Esto sucede especialmente en reas rurales, donde la orografa y la extensin del terreno son variables a tener en cuenta. Econmicas: El coste de una red es proporcional a la longitud de cable requerido, as como al nmero de repetidores necesarios para contrarrestar los efectos de la atenuacin. Esto signica que un aumento en la envergadura de nuestra red implica un aumento considerable en su coste. Comodidad: Teniendo en cuenta las necesidades de portabilidad de los usuarios de hoy en da, el uso de cables para el intercambio de informacin entre aparatos electrnicos se hace extremadamente inadecuado. Estas tres principales limitaciones de las comunicaciones por cable explican el auge que estn viviendo las tecnologas inalmbricas en los ltimos aos. Dentro del espectro electromagntico, que podemos ver en la gura 1.1, se usan principalmente las bandas infrarrojos (IR) y de radiofrecuencia (RF) para transmitir seales de forma inalmbrica. Las comunicaciones por IR pueden alcanzar tasas de transferencia de hasta 4 Mbps o ms, pero presentan el inconveniente de que slo permiten las comunicaciones para pequeas distancias y siempre que el transmisor y el receptor tengan lnea directa de visin. Su uso se centra principalmente en las comunicaciones de perifricos electrnicos como telfonos mviles. Por contra, las comunicaciones por radiofrecuencia a la vez que poseen altas tasas de transferencia, tambin permiten la comunicacin entre dos puntos muy alejados y sin lnea directa de visin. Dentro del espectro de RF podemos encontrar la banda ISM (

Industrial, Scientic and Medical ). sta

es una parte del espectro electromagntico de propsito general, que puede ser usada sin necesidad de 1

CAPTULO 1: INTRODUCCIN

Figura 1.1: Espectro electromagntico. Fuente: [1]

licencia siempre que se respeten unos ciertos lmites de potencia emitida. La banda ISM fue denida por el sector de radiocomunicaciones de la Unin Internacional de Telecomunicaciones (ITU-R). El nico requerimiento para desarrollar un producto que use la banda ISM es adaptarse a diversas normas especicadas por los organismos que regulan el espectro electromagntico en diversas zonas geogrcas. En concreto, si nos encontramos en Europa tendremos que seguir las normas de la ETSI (

Standars Institute ) Commision ).

y si nos encontramos en los Estados Unidos las de la FCC (

European Telecommunications Federal Communication

Los sistemas diseados para trabajar en la banda ISM se caracterizan por un bajo consumo y, en principio, tasas de transmisin no muy altas. No obstante, en los ltimos aos se ha venido trabajando intensamente para aumentar dichas tasas de transmisin de datos. La mayor parte de los sistemas que trabajan en la banda ISM lo hacen bien a 2,4 GHz o bien en la banda por debajo de 1 GHz. Mientras la banda a 2,4 GHz es universal, por debajo de 1 GHz las frecuencias estandarizadas varan de un pas a otro. Por ejemplo, mientras en Europa la frecuencia estndar por debajo de 1 GHz es 868 MHz, en Estados Unidos se usa aquella centrada en los 915 MHz. En la gura 1.2 podemos ver las frecuencias usadas en diferentes partes del globo. A la hora de elegir una determinada frecuencia de trabajo, los diseadores deben tener muy en cuenta las ventajas y desventajas asociadas a dicha eleccin. En concreto: La banda de 2,4 GHz es recomendable cuando la interoperabilidad es un requerimiento para nuestro dispositivo. Adems, si necesitamos que dicho dispositivo funcione correctamente en distintas zonas geogrcas, 2,4 GHz es la mejor eleccin. Por otro lado, puesto que a esta frecuencia trabajan un gran nmero de tecnologas (Wi-Fi, Bluetooth, ZigBee, etc) e incluso algunos hornos microondas, los

1.1: UBICACIN TECNOLGICA

altos niveles de interferencia son un problema a superar. Por ltimo, una frecuencia mayor implica que la seal ser absorbida ms fcilmente por el entorno y los objetos circundantes, con lo que el rango de alcance disminuir respecto al caso de usar frecuencias menores.

Usando el rango de frecuencias por debajo de 1 GHz mejoramos algunas de las caractersticas que presentaban problemas para el caso de los 2,4 GHz, en concreto aquellas relacionados con las interferencias y con el rango de alcance. No obstante, y como ya sabemos, trabajar con una frecuencia menor hace que disminuya el ciclo de trabajo y, en consecuencia, el ancho de banda. Adems la interoperabilidad y la movilidad geogrca de nuestro dispositivo tambin se ven ampliamente mermandas.

Para el caso de nuestro proyecto nos centraremos en dispositivos que trabajan en la banda de los 2,4 GHz puesto que damos prioridad a la interoperabilidad, la movilidad geogrca y una tasa de bits aceptable.

Figura 1.2: Algunas de las frecuencias ISM para distintas localizaciones. Fuente: [2]

En los ltimos aos hemos asistido al desarrollo de diversos estndares inalmbricos que operan en la banda ISM. En consecuencia, un gran nmero de productos basados en tecnologa inalmbrica han visto la luz. Dichos estndares se diferencian unos de otros por su tasa de transferencia, rango de alcance, sus dominios de aplicacin, tcnicas de modulacin usadas, etc. A da de hoy, los ms usados y con mayor proyeccin de futuro son Wi-Fi, Bluetooth, ZigBee y Ultra-WideBand (UWB). En la tabla 1.1 podemos ver una comparativa de dichos estndares y en la gura 1.3 vemos representado de forma aproximada su rango de alcance respecto a la tasa de transferencia.

Estndar IEEE Banda de frecuencia Mxima tasa de transmisin Rango de alcance Nmero de canales RF Ancho de banda de canal

ZigBee/802.15.4 802.15.4 868/915 MHz ; 2,4 GHz 250 Kbps 10 - 20 m 1/10 ; 16 0,3/0,6 MHz ; 2 MHz

Bluetooth 802.15.1 2,4 GHz 1 Mbps 10 - 100 m 79 1 MHz

Wi-Fi 802.11 a/b/g 2,4 GHz ; 5 GHz 54 Mbps 100 m 14 (2,4 GHz) 22 MHz

UWB 802.15.3a 3,1 - 10,6 GHz 110 Mbps 10 m 1-15 500 MHz - 7,5 GHz

Cuadro 1.1: Comparativa entre los protocolos Wi-Fi, Bluetooth, ZigBee y UWB. Fuente: [3]

CAPTULO 1: INTRODUCCIN

Figura 1.3: Rango respecto a tasa de transferencia para diferentes tecnologas inalmbricas.

A continuacin explicaremos de forma resumida los fundamentos de estas tecnologas. No obstante, ya que este texto se centra en la tecnologa ZigBee 802.15.4, sta ser explicada en profundidad en el prximo captulo.

1.1.1. Bluetooth
En 1994 la compaa sueca Ericsson comienza un estudio para desarrollar una interfaz radio de bajo coste y bajo consumo para la interconexin de dispositivos electrnicos, principalmente telfonos mviles. En 1997 se forma el

Special Interest Group

(SIG) [4] formado por Ericsson, Nokia, Intel, Toshiba e IBM

con el objetivo de promover el uso de este nuevo estndar. Para 1999 ms de 400 empresas forman ya parte del SIG, asegurando el futuro del nuevo estndar. Bluetooth trabaja en la banda ISM a una frecuencia de 2,4 GHz con 79 canales de 1 MHz entre 2402 y 2480 MHz. Esto hace muy alta la probabilidad de interferencia debido la proximidad de redes 802.11, hornos microondas, mandos de garaje, etc. Para evitar en lo posible las interferencias, Bluetooth usa un sistema llamado

Frequency Hop Spread Spectrum

(FHSS). Dicho sistema realiza 1600 saltos de frecuencia

por segundo entre los 79 canales radio. El rango de alcance de Bluetooth es de 10 metros con un consumo de 1 mW, aunque dicho rango puede alcanzar los 100 metros si aumentamos la potencia de transmisin hasta los 100 mW. La tasa de transmisin es de 1 Mbps cuando utilizamos modulacin GFSK (

Gaussian Frequency Shift Key ) aunque

para versiones ms avanzadas del estndar (Bluetooth 2.0) se pueden alcanzar velocidades de hasta 2 Mbps gracias a la combinacin de GFSK con PSK. Una red Bluetooth (comnmente conocida como

piconet ) puede estar formada por hasta 8 dispositivos,

uno de los cuales asume el papel de maestro y el resto el de esclavo. Con objeto de reducir el consumo, Bluetooth dene cinco estados diferentes:

Standby : Es el estado por defecto. En l todava no se ha producido un enlace de comunicacin.


Activo: En este estado el dispositivo s que ha establecido un enlace de comunicacin. Se produce intercambio de paquetes.

1.1: UBICACIN TECNOLGICA

Sni :

El maestro transmite informacin al esclavo pero nicamente en unos determinados

slots

temporales (que previamente han acordado). As, el esclavo slo estar activo una fraccin del tiempo, ahorrando energa.

Hold : En este modo, un nodo apaga el sistema de radio para ahorrar energa. Antes de entrar en el modo hold tanto el maestro como el esclavo acuerdan cuando deben volver al modo activo. Park : Este estado se utiliza cuando un nodo no quiere tomar parte activa en la piconet pero tampoco
quiere perder la sincronizacin con el maestro. Podemos ver un estudio muy interesante sobre el consumo de potencia para los distintos estados Bluetooth en [5].

1.1.2. Wi-Fi
Wi-Fi es una marca usada por la Alianza Wi-Fi. Esta tecnologa se basa en el estndar IEEE 802.11 y pretende ser la alternativa inalmbrica a las redes de rea local (LAN), as, tambin se la conoce como WLAN (

Wireless

LAN).

Una tpica red Wi-Fi se compone por un

Wi-Fi Access Point

(WAP) que est conectado por un lado

a la red Ethernet y por otro a los dems dispositivos Wi-Fi a los que pretende dar cobertura. El alcance es de hasta 100 metros aproximadamente y el consumo es mayor que el de Bluetooth pero, a cambio, Wi-Fi puede alcanzar velocidades de hasta 54 Mbps. Como hemos visto en la primera seccin de este captulo esta tecnologa tambin trabaja en la banda ISM pero, al contrario que Bluetooth, existen varios estndares Wi-Fi, los principales son: 802.11b: Al igual que Bluetooth trabaja a 2,4 GHz por lo cual sufre las mismas interferencias que ste (adems de la interferencia entre Bluetooth y Wi-Fi [6]). Su rango de alcance es de aproximadamente 100 metros con una tasa de transferencia de 11 Mbps. Esta vez, en lugar de FHSS se utiliza DSSS

(Direct Sequence Spread Spectrum) para evitar las interferencias, de forma que se envan varios bits
redundantes por cada bit que compone la seal. Mientras Bluetooth saltaba de una frecuencia a otra para evitar interferencias, Wi-Fi disminuye la tasa de transmisin. En el estndar 802.11b slo se utilizan 3 canales radio de una anchura de 22 MHz y centrados en los 2412, 2437 y 2462 MHz. De esta manera, slo 3 redes W-Fi pueden operar simultneamente en una misma localizacin. La principal ventaja de los dispositivos Wi-Fi basados en 802.11b es su bajo coste. 802.11a: Este estndar surgi en paralelo a 802.11b. Trabaja a una frecuencia de 5 GHz con lo que su tasa de transferencia puede alcanzar los 54 Mbps. Una ventaja es que al trabajar en una frecuencia menos usada, no se dan tantas interferencias. No obstante tiene un rango de unos 30 metros y su coste es mayor. Emplea modulacin OFDM (Orthogonal Frequency Division Multiplexing ). Es incompatible con 802.11b. 802.11g: Es el ms reciente de los tres estndares y, al igual que 802.11b, trabaja a 2,4 GHz. De hecho, la compatibilidad con 802.11b es una de sus principales ventajas. Al igual que 802.11a, utiliza modulacin OFDM pudiendo alcanzar velocidades de hasta 54 Mbps y, al igual que 802.11b, tiene un rango de alcance de unos 100 metros. Por contra, su coste y consumo de potencia son mayores.

CAPTULO 1: INTRODUCCIN

1.1.3. Ultra-WideBand
Basado en los trabajos del IEEE Task Group 802.15.3a, Ultra-WideBand es una tecnologa que pretende saciar la necesidad del intercambio de datos con una alta tasa de transferencia, como pueden ser las videocmaras digitales, sistemas home cinema, etc. De los estndares vistos hasta ahora, UWB es el menos desarrollado y con un futuro ms incierto. UWB hace uso de un espectro muy ancho de frecuencias: desde los 3,1 hasta los 10,6 GHz. Pero, al contrario que Bluetooth y Wi-Fi, no realiza el envo de informacin de forma continua sino en determinados instantes temporales, utilizando gran parte de ese ancho de banda y emitiendo con menos potencia. As, el consumo de los dispositivos basados en este estndar es relativamente bajo. En la gura 1.4 podemos ver una comparacin entre los espectros de UWB y Wi-Fi 802.11a.

Figura 1.4: Espectros de UWB y Wi-Fi 802.11a. Fuente: [7]

Con UWB se pueden alcanzar tasas de transmisin de 110 Mbps con un rango de alcance de 10 metros aproximadamente. No obstante, y de acuerdo con publicaciones como [8], UWB no est alcanzando el xito que a principios de esta dcada algunos auguraban. En parte porque no se estn cumpliendo las expectativas respecto a su capacidad y en parte por el alto coste de fabricacin de los dispositivos basados en este estndar.

1.2.

Estndares de bajo consumo: aplicaciones

Como hemos visto en los apartados anteriores, Bluetooth es ideal para la transmisin de datos a distancias cortas; Wi-Fi aumenta tanto la tasa de transmisin como el rango de alcance, con un mayor consumo, lo que nos permite formar redes inalmbricas equiparables en prestaciones a Ethernet; UWB suple las necesidades de transmisin de grandes cantidades de informacin punto a punto y dentro de un corto rango de alcance, perfecto para el uso de dispositivos multimedia de ltima generacin dentro del entorno domstico. Pero todava hay un campo de aplicacin donde las tecnologas inalmbricas tienen una gran variedad de usos y por el que todava no nos hemos preguntado: el control automatizado de hogares, edicios y plantas industriales. A continuacin se muestran algunos de los requerimientos que una tecnologa inalmbrica debera cubrir para desempear un buen papel en este campo de aplicacin: Puesto que el objetivo es cubrir no solo pequeas distancias (como el hogar) sino tambin medias distancias (como fbricas o naves industriales), el rango de alcance es una caracterstica a tener en

1.2: ESTNDARES DE BAJO CONSUMO: APLICACIONES

cuenta. As, UWB no parece apta puesto que su alcance es del orden de 10 metros. Dichas redes inalmbricas de control industrial y del hogar no necesitaran grandes tasas de transferencia. Por contra, bastara con el envo de pequeas cantidades de datos, como pueden ser comandos con instrucciones, valores discretos ledos por sensores, etc. Wi-Fi y UWB quedan claramente fuera de lugar puesto que se centran en el envo de grandes cantidades de informacin. Larga vida de las bateras. Puesto que los sensores o controles repartidos por la hipottica instalacin podran no tener acceso a la red elctrica, sera idneo que dicha tecnologa inalmbrica presentase un muy bajo consumo, haciendo independientes por un largo tiempo a los diferentes dispositivos que compongan la red. Wi-Fi es claramente inadecuado debido a su alto consumo energtico. En el escenario que estamos proponiendo, los diferentes dispositivos inalmbricos no tendran necesidad de estar el 100 % del tiempo activos. Por contra, bastara con que slo estuvieran activos a instantes peridicos, aprovechando esos momentos para enviar la informacin acumulada. Sera muy deseable poder formar subredes con los distintos dispositivos de la red. Por ejemplo, una subred podra ser la encargada del control de la calefaccin, mientras otra lo sera del control de iluminacin. Como ya hemos dicho, Bluetooth puede formar nicamente de un maestro y siete esclavos. Por todo lo visto en los puntos anteriores, una tecnologa inalmbrica que funcionase en un escenario de control de dispositivos en la industria o dentro del hogar debera estar centrada en: Bajo consumo energtico. Posibilidad de formar subredes. Dispositivos en modo de ahorro energtico cuando no estn siendo usados. Varios estndares han sido diseados para cumplir dichos requerimientos. ZigBee es el estndar con ms proyeccin en este sector puesto que cumple todos los requerimientos anteriores. En el siguiente captulo veremos un estudio en profundidad de dicha tecnologa. Adems de ZigBee, otras tecnologas estn compitiendo por abrirse un hueco en este mercado, ejemplos son Z-Wave o Wibree. Posibles usos de estas tecnologas inalmbricas son: Control de sistemas de iluminacin, sonido o calefaccin. Centralizacin de datos enviados por sensores remotos (temperatura, presin, humedad, movimiento, etc). Recepcin de alarmas. Control remoto de puertas, persianas, etc. Estas funciones ofrecen una inmensa gama de posibilidades a empresas centradas en domtica, inmtica (edicios) o control industrial.

piconets

pero su tamao mximo es

CAPTULO 1: INTRODUCCIN

1.3.

Objetivos del proyecto

Este proyecto se centra en las redes inalmbricas de bajo consumo, en concreto estudiaremos el estndar ZigBee 802.15.4. Nuestro objetivo es realizar una caracterizacin del consumo energtico de dichas redes. En nuestra opinin, el estudio de redes ZigBee tiene un inters enorme. Esto se debe a que es una tecnologa emergente, en parte desconocida y en la cual un gran nmero de empresas estn centrando su atencin. Bsicamente lo que haremos ser medir la corriente que consume un nodo ZigBee/802.15.4 mientras realiza diferentes tareas. Para la realizacin de dicho estudio debemos tener en cuenta los siguientes parmetros: Tipo de nodo que estamos estudiando. Como veremos en el siguiente captulo, dentro de una red ZigBee/802.15.4, un nodo puede desempear tareas de coordinador, nal, siendo su consumo diferente para cada uno de los casos. Tarea que realiza: inicio de una red, conexin a una red, transmisin de datos, etc. Conguracin del nodo: frecuencia de envo de informacin, requerimiento de conrmacin, permisos de conexin, longitud del paquete de datos a enviar, etc. Casos extremos como la prdida de conexin con el padre (nodo inmediatamente por encima en la jerarqua de red), intento de conexin a una red inexistente, etc. Aparte de estos objetivos, la realizacin de este proyecto tambin tiene por meta asentar y mejorar el conocimiento sobre herramientas de instrumentacin, as como sobre el

router o simplemente de dispositivo

software

hardware

necesarios

para el desarrollo de componentes electrnicos relacionados con las tecnologas inalmbricas.

1.4.

Estructuracin de la memoria

El presente texto pretende mostrar de forma ordenada y clara los pasos seguidos para la realizacin del proyecto. Para ello explicaremos los fundamentos de la tecnologa ZigBee, describiremos el sistema de medida usado, expondremos los resultados de las medidas de consumo y sacaremos unas conclusiones. Ms concretamente la estructura de esta memoria es:

Captulo 1: Introduccin. Es el presente captulo y en l hemos expuesto una visin general de


las tecnologas inalmbricas. Tambin hemos expuesto el objetivo de nuestro proyecto.

Captulo 2: ZigBee/802.15.4. En este captulo analizaremos en profundidad los estndares ZigBee/802.15.4.

Captulo 3: Herramientas de desarrollo empleadas y sistema de medida.

Se comenzar

describiendo el sistema sobre el que se realizar el estudio. A continuacin hablaremos sobre las tecnologas involucradas en dicho estudio: herramientas de instrumentacin y herramientas

software.

Captulo 4: Estudio del consumo. En este captulo expondremos los resultados obtenidos tras
realizar el estudio del consumo de corriente.

1.4: ESTRUCTURACIN DE LA MEMORIA

Captulo 5: Conclusiones y lneas futuras de trabajo.


proyecto.

Por ltimo, detallaremos las conclu-

siones a las que hemos llegado y plantearemos posibles lneas de trabajo por las que ampliar nuestro

Apndice A:

Se expondr el desarrollo de una aplicacin cuyo objetivo es comunicarse con un

dispositivo ZigBee/802.15.4 va el puerto serie. La aplicacin en cuestin se ha programado utilizando Visual Basic .NET.

10

CAPTULO 1: INTRODUCCIN

Captulo 2

ZigBee/802.15.4
2.1. Introduccin a ZigBee/802.15.4

Como ya hemos visto en el captulo 1, ZigBee/802.15.4 es una tecnologa inalmbrica de bajo consumo, baja tasa de transmisin y coste reducido. Se engloba dentro del grupo de las tecnologas WPAN (Wireless Personal Area Network ). El estndar ha sido denido por la ZigBee Alliance, de la que forman parte ms de 300 empresas, y por el IEEE Task Group 4. En concreto, la ZigBee Alliance se encarga de la denicin de las capas de red y aplicacin mediante el estndar ZigBee [9] mientras que el Task Group 4 se centra en la denicin de las capas fsica y MAC (Medium Access Control ) mediante estndar 802.15.4 [10]. Estos trminos, ZigBee y 802.15.4, son a veces utilizados como sinnimos cuando en realidad denen partes diferentes de la pila de protocolos. En la gura 2.1 podemos ver una simplicacin de dicha pila de protocolos.

Figura 2.1: Pila de protocolos ZigBee/802.15.4

Esta tecnologa es idnea para formar redes de sensores. Los posibles usos de ZigBee/802.15.4, como principal exponente de las redes inalmbricas de bajo consumo, han sido expuestos en la seccin 1.2. Dentro del estndar ZigBee encontramos dos versiones: ZigBee-2006 y ZigBee PRO (2007). En las siguientes secciones utilizaremos el trmino ZigBee para referirnos a ZigBee PRO. La mayora de los fabricantes comercializan dispositivos compatibles con ambas versiones. 11

12

CAPTULO 2: ZIGBEE/802.15.4

2.2.

Topologa

Antes de describir los distintos tipos de redes ZigBee es necesario denir los 3 tipos distintos de dispositivos que la componen. Estos son:

Coordinador.
Router .

Este dispositivo inicializa y controla la red. Tambin se encarga de gestionar las

tareas de seguridad. Para poder formar una red ZigBee debe existir un coordinador. Estos dispositivos son los encargados de extender la cobertura de la red, gestionando

nuevos caminos en el caso de que la red experimente congestin o se produzca la cada de algn nodo. Pueden conectarse directamente al coordinador o a otros

routers. Gestionan dispositivos hijo.

Dispositivo nal.
hijo.

Este tipo de dispositivo puede enviar y recibir datos pero no realizar tareas de

encaminamiento. Deben estar conectados a un

router

o al coordinador y no admiten dispositivos

Los dispositivos tambin pueden organizarse segn otro criterio:

FFD (Full Function Device). Este dispositivo tiene una funcionalidad completa. Puede funcionar como Coordinador, router o dispositivo nal. RFD
(Reduced Function Device) .
Tiene una implementacin mnima del protocolo 802.15.4. Est pensado para realizar tareas extremadamente simples en las que se enven pequeas cantidades de datos. Ejemplos de esto pueden ser interruptores de luz, sensores de infrarrojos u otros dispositivos con una funcionalidad bsica. Slo pueden estar conectados a un FFD. nicamente pueden funcionar como dispositivos nales. Como podemos ver en la especicacin de ZigBee [9], el estndar soporta 3 tipos de topologas de red: estrella, malla y rbol (gura 2.2). Una red se caracteriza por su identicador PAN (PAN ID), que la distingue de otras posibles redes funcionando en la misma zona.

2.2.1. Topologa en estrella


Este tipo de redes se componen por un FFD funcionando como coordinador y varios FFD o RFD funcionando como dispositivos nales. Todos los dispositivos nales estn directamente conectados al coordinador, que es el encargado de haber iniciado la red y de gestionarla. En una red tipo estrella todas las comunicaciones entre dos dispositivos nales deben pasar antes por el coordinador. Se recomienda que mientras los dispositivos nales estn alimentados por bateras el coordinador lo est directamente a travs de la red elctrica ya que su consumo es mucho mayor. Un problema de esta conguracin es que la expansin de la red est muy limitada puesto que el rango de alcance del coordinador es el que dene el tamao de la red.

2.2.2. Topologa en malla


En este tipo de red se puede establecer comunicacin directa entre cualquier par de nodos. El coordinador no realiza funciones muy diferentes a las que realizan el resto de

routers

de la red; de hecho, la

2.3: CAPA FSICA

13

funcin de coordinador la realiza el primer

router

que forme parte de la red. Al no depender de un nico

dispositivo para gestionar la red, la abilidad de esta conguracin es mayor. En la topologa en malla ganamos en exibilidad a costa de aumentar la complejidad. Esto se debe a que para comunicar cualquier par de dispositivos hay ms de un camino posible. La eleccin de dicho camino conlleva un aumento de computacin que debe realizarse a nivel de red. Por lo tanto, estas consideraciones no se tienen en cuenta en la especicacin del IEEE 802.15.4 si no que se denen en la especicacin de ZigBee.

2.2.3. Topologa en rbol


La topologa en rbol es un caso particular de la topologa en malla. En ella los diferentes componentes de la red se organizan en una estructura jerrquica. El coordinador o los

routers, que son los encargados routers

de gestionar el encaminamiento, pueden tener dispositivos hijos. Estos dispositivos hijos pueden ser otros

routers

o dispositivos nales. La topologa en rbol, al igual que la mallada, es idnea para expandir la

red de forma dinmica. Al igual que en el caso anterior se recomienda que el coordinador y los estn alimentados de forma cableada.

(a) Estrella

(b) Malla
Figura 2.2: Topologas de red

(c) rbol

2.3.

Capa Fsica

La capa fsica gestiona la transmisin y recepcin de datos usando determinados canales radio. En 802.15.4 tenemos tres posibles bandas de frecuencia en las que poder trabajar: 868 MHz, 915 MHz y 2,4 GHz. En la primera banda nicamente tenemos un canal entre 868 y 868,6 MHz. En la siguiente banda tenemos 10 canales entre 902 y 928 MHz. Por ltimo, 16 canales ms estn localizados entre 2,405 y 2,48 GHz. El protocolo permite una seleccin dinmica del canal, de forma que se elija el menos ruidoso de entre aquellos posibles. Lgicamente, la tasa de transferencia es distinta para cada una de las bandas de frecuencia. Para 868 MHz la tasa de transferencia es de 20 Kbps, para 915 MHz es de 40 kbps y para 2,4

14

CAPTULO 2: ZIGBEE/802.15.4

GHz es de 250 kbps. Por supuesto, las bandas de 868 y 915 MHz tienen un rango de alcance mayor que la de 2,4 GHz a cambio de una menor tasa de transferencia. Otra diferencia es que, como vimos en la seccin 1.1, la banda de 868 MHz est disponible slo en Europa mientras que la de 915 MHz slo en Estados Unidos y Australia. Sin embargo la banda a 2,4 GHz es universal, por lo que su uso est permitido en la mayora de pases del mundo. En la gura 2.3 podemos ver una representacin de los canales radio 802.15.4.

Figura 2.3: Canales radio 802.15.4. Fuente: [11]

En 804.15.4 se utiliza DSSS (

Direct Sequence Spread Spectrum ) como tcnica de ensanchado de espec-

tro. En la tabla 2.1 mostramos la tasa de transferencia y el tipo de modulacin usada para las distintas frecuencias de transmisin. Banda de frecuencia 868 MHz 915 MHz 2,4 GHz Tasa de transferencia 20 kbps 40 kbps 250 kbps Modulacin BPSK BPSK O-QPSK

Cuadro 2.1: Caractersticas de las frecuencias 802.15.4

Para congurar la capa fsica se emplean una serie de constantes y atributos. Podemos ver un listado exhaustivo a partir de la pgina 45 de [10]. Ejemplos de dichas constantes y atributos son

PacketSize, aTurnaroundTime, phyCurrentChannel, phyCCAMode, etc.


Respecto a las funciones que realiza la capa fsica en 802.15.4 podemos destacar:

aMaxPHY-

Activar y desactivar el transceptor radio. El transceptor radio tiene tres modos de funcionamiento: transmisin, recepcin y sleeping (descanso). Bajo peticin de la capa MAC la capa
fsica debe conmutar entre estos tres estados. El estndar exige que la conmutacin entre transmisin y recepcin, o viceversa, se haga en menos de 12 smbolos (

aTurnaroundTime

= 12). Para el caso

de 2,4 GHz y teniendo en cuenta que cada smbolo corresponde a 4 bits, se puede calcular el tiempo mximo de conmutacin entre los estados de transmisin y recepcin:

2.3: CAPA FSICA

15

12

250

smbolos = 48 bits 48 bits = 192 s kbits


s
Energy Detection ).

(2.1) (2.2)

Deteccin de energa de cada canal (ED,

La capa fsica tambin es la

encargada de comprobar qu nivel de potencia tiene un determinado canal. Esta medida es utilizada por la capa de red como parte de su algoritmo para la eleccin de canal.

Indicacin de la calidad de enlace (LQI, Link Quality Indicator ). Mide la potencia en dBm
de la seal que ha transmitido el ltimo paquete.

por el algoritmo CSMA-CA ( ms adelante.

Evaluacin de canal libre (CCA, Clear Channel Assessment ). Este indicador ser utilizado Carrier Sense Multiple Access with Collision Avoidance ) como se ver Seleccin de frecuencia. Dentro de los 27 canales posibles de ZigBee, la capa fsica debe ser capaz
de seleccionar aquel que le especiquen las capas superiores.

Envo y recepcin de datos.


De acuerdo con el estndar 802.15.4, el sistema radio debe ser capaz de emitir con una potencia de -3 dBm o superior y debe tener una sensibilidad mnima de -20 dBm. En la gura 2.4 se muestra el formato de trama 802.15.4 a nivel fsico. Dicha trama est compuesta principalmente por una cabecera de sincronizacin (SHR), un campo para indicar la longitud de la trama (PHR) y la carga til.

Figura 2.4: PDU (

Protocol Data Unit ) de nivel fsico o PPDU. Fuente: [10]

Una vez generada la PPDU, y de acuerdo con el estndar 802.15.4 [10], los bits se convierten en smbolos. Puesto que cada smbolo est formado por 4 bits, se tienen 16 posibles smbolos. Para cada uno de ellos existe una secuencia de chips (formada por 32 bits cada una) que ser la que denitivamente se module y enve gracias al sistema de radio. El proceso se esquematiza en la gura 2.5.

Figura 2.5: Tratamiento de la PPDU

16

CAPTULO 2: ZIGBEE/802.15.4

2.4.

Capa MAC

2.4.1. Descripcin general


La capa MAC, o capa de acceso al medio, es la responsable de asegurar la comunicacin entre un nodo y todos los nodos conectados directamente a l, evitando colisiones y mejorando la eciencia. Ms concretamente, las tareas que la capa MAC tiene que realizar son:

Generar balizas (

beacons ) si el dispositivo es un coordinador y se funciona en modo balizado.

Sincronizar las balizas de la red.

Gestionar la conexin y desconexin a la red de los dispositivos asociados al propio nodo.

Emplear el algoritmo CSMA-CA para gestionar el acceso al canal.

Asegurar un enlace able con la capa MAC de los nodos contiguos.

Al igual que ocurre con la capa fsica, para congurar la capa MAC se utilizan una serie de constantes y atributos. Podemos ver un listado exhaustivo en la pgina 159 de [10]. Ejemplos de dichas constantes y atributos son

macBeaconOrder, macSuperframeOrder

aBaseSuperframeDuration, que, junto con otros,

sern utilizados en las siguientes secciones para profundizar en la descripcin de la capa de acceso al medio.

2.4.2. Modos de funcionamiento


El protocolo MAC soporta dos modos de funcionamiento (el coordinador es el encargado de seleccionar uno u otro en el momento de iniciar la red):

Modo balizado. La baliza es generada peridicamente por el coordinador y distribuida por toda la red gracias a los routers. Dicha baliza sirve para sincronizar todos los nodos de la red, de modo
que estos puedan despertarse en un momento determinado (conocido por todos), enviar los datos almacenados y volver al modo de ahorro energtico (

routers

sleep ).

As, tanto el coordinador, como los

y los dispositivos nales pueden pasar gran parte del tiempo en modo de bajo consumo. La

topologa en malla no admite el modo balizado debido a la complejidad que ello conllevara (a un mismo dispositivo podran llegarle balizas provenientes de distintos

routers ). routers

Modo no balizado.

En este modo los dispositivos no estn sincronizados unos con otros. As,

nicamente los dispositivos nales pueden entrar en el modo

sleep

mientras que los

y el

coordinador deben estar continuamente con el sistema radio en modo recepcin y as estar preparados para recibir datos en cualquier momento. Este modo es ms simple pero hace que gran parte de sus nodos (el coordinador y los

routers )

tengan un mayor consumo energtico. Asimismo, impide que

los coordinadores puedan planicar sus envos a los dispositivos nales.

2.4: CAPA MAC

17

Modo balizado
El coordinador es el que determina si trabajamos o no en este modo. En caso positivo, l ser el encargado de distribuir la baliza a todos los elementos de la red. Cuando se trabaja en el modo balizado se utiliza una estructura de envo de datos conocida como supertrama. Una supertrama est delimitada por dos balizas consecutivas y se compone por una parte activa y otra inactiva (gura 2.6). Durante la parte activa el coordinador interacta con la red mientras que en la inactiva entra en modo BO (

sleep. La estructura de una supertrama viene denida por dos parmetros:

del BI ( y

macBeaconOrder ). Determina el intervalo de transmisin de las balizas. El valor del BO y Beacon Interval ) estn relacionados segn la siguiente expresin, donde 0 BO 14
representa el nmero de smbolos que forman una supertrama de

aBaseSuperf rameDuration

orden 0 (por defecto toma el valor de 960):

BI = aBaseSuperf rameDuration 2BO smbolos


SO (

del SO y del SD (

macSuperframeOrder ). Determina el tamao de la parte activa de la supertrama. El valor Superframe Duration ) estn relacionados segn la siguiente expresin, donde
SD = aBaseSuperf rameDuration 2SO smbolos

0 SO BO 14:

Si los valores de BI y SD coinciden la supertrama carecer de periodo inactivo. Por otra parte, de acuerdo con el estndar 802.15.4, si SO y BO valen 15 el coordinador congurar la red para trabajar en modo no balizado.

Figura 2.6: Estructura de supertrama. Fuente: [10]

slots temporales, el primero de los cuales contiene la baliza. Estos slots se dividen en dos grupos: el Contention Access Period (CAP) y el Contention Free Period (CFP). A continuacin los detallamos:
La parte activa de la supertrama se divide en 16

CAP. Un dispositivo que desee comunicarse con su nodo padre debe competir por el canal utilizando el algoritmo CSMA-CA. Si consigue transmitir lo har utilizando uno de los slots del CAP. CFP. Bajo peticin de un nodo, el coordinador puede asignarle uno o varios slots
temporales del CFP de forma que no tenga que competir con otros nodos de la red por el envo de informacin. Un

18

CAPTULO 2: ZIGBEE/802.15.4

grupo de

slots

temporales asignados a un determinado nodo se denominan

Guarantee Time Slots

(GTS). Mediante esta caracterstica, el protocolo 802.15.4 puede ofrecer cierta calidad de servicio a ciertas aplicaciones con requerimientos especiales.

Modo no balizado
Como hemos dicho en el punto anterior, si se asigna el valor de 15 a las variables BO y SO activaremos el modo no balizado. En l no existen los conceptos de

slots temporales, balizas ni supertramas. Cada nodo acknowledgment

disputa el acceso al canal mediante el algoritmo CSMA-CA y, si lo consigue, los dems dispositivos tendrn que esperar su turno. nicamente los mensajes de reconocimiento de mensaje recibido ( o

ack

en ingls) podrn ser enviados inmediatamente y sin necesidad de competir por acceder al medio

mediante CSMA-CA. En este modo el consumo del coordinador y los

routers

es mucho mayor que en el modo balizado. El

consumo de los dispositivos nales s se mantiene prcticamente igual en ambos modos puesto que siempre pueden pasar al modo de bajo consumo una vez transmitidos los datos. Vindolo de otra forma podemos decir que en una red con balizas todos los dispositivos estn dormidos la mayor parte del tiempo, gracias a la sincronizacin entre ellos que les permite despertarse a la vez. En una red sin balizas el coordinador y los

routers

no tienen manera de saber cundo se despertarn los dispositivos nales, por lo que tienen

que estar el 100 % del tiempo con el sistema radio activado. El modo no balizado nos ofrece simplicidad a cambio de un consumo mayor y una menor eciencia.

2.4.3. Algoritmo CSMA-CA


Cuando se emplea este algoritmo los dispositivos anuncian que estn listos para enviar paquetes de datos antes de acceder al canal. De esta forma se evita la colisin. Dependiendo de unos ciertos parmetros se da prioridad a uno de los candidatos, que podr acceder al canal para enviar su paquete de datos. El resto de dispositivos esperarn un tiempo aleatorio (distinto en cada uno de ellos) para volver a intentar acceder al canal. Se denen dos tipos distintos de algoritmo CSMA-CA segn estemos usando el modo balizado o el no balizado. Para el modo balizado se emplea el CSMA-CA ranurado mientras que para el no balizado se utiliza el CSMA-CA no ranurado. En ambos casos, un transmisor slo puede intentar acceder al medio con una periodicidad concreta (determinada por el tiempo de tiempo de

backo

backo ). En el CSMA-CA ranurado, este

debe estar sincronizado con la baliza. Para el caso del CSMA-CA no ranurado, cada

transmisor tiene su propio tiempo de

backo.

El algoritmo CSMA-CA utiliza tres variables para priorizar el acceso al medio: NB (

Number of Backos ). Es el nmero intentos de acceso al canal que un dispositivo lleva acumu-

lados. Cada vez que un dispositivo quiere enviar un nuevo paquete esta variable debe ser inicializada a 0.

Contention Window ). Es la longitud de la ventana de contienda. Representa el nmero de periodos de backo que el canal debe estar sin actividad para que se considere libre y, en consecuencia,
CW ( poder ser asignado a un dispositivo.

2.4: CAPA MAC

19

BE (

Backo Exponent ). Se emplea para determinar, aleatoriamente, el nmero de periodos de backo

que el dispositivo debe esperar para intentar acceder al canal despus de un acceso fallido. A continuacin explicaremos de forma detallada ambos algoritmos. En la gura 2.7 podemos ver su diagrama de bloques.

CSMA-CA ranurado
Este algoritmo se divide en cinco pasos: 1. Inicializacin de NB, CW y BE.

macBattLifExt. Si sta es FALSE entonces BE = macM inBe, que por defecto vale 3. Si macBattLifExt = TRUE (extensin de vida de la batera) entonces BE = mnimo(2, macM inBE).
NB = 0
y

CW = 2.

El valor de BE depende de la variable

2. Tiempo de espera aleatorio para intentar acceder al canal. Este tiempo de espera valdr como mximo

2BE 1

periodos de

backo.

Si

BE = 1

entonces el tiempo de espera es nulo, con lo que

saltamos directamente al paso 3. 3. Evaluacin de canal libre (CCA o el siguiente periodo de

backo.

Clear Channel Assessment ).

El dispositivo escucha el canal en

Si el canal no se encuentra en uso, saltamos al paso 5. Si el canal

resulta estar ocupado pasamos al paso 4. 4. CW es reiniciado a su valor original (2). NB se incrementa en 1. BE tambin se incrementa en 1 siempre que no sobrepasemos el valor de

macMaxBE

(constante de valor 5 segn el estndar). Si

N B > macM axCSM ABackof f s


Si no, volvemos al paso 2.

(tambin de valor 5) se considera que la transmisin ha fallado.

5. El canal no est siendo usado. Se disminuye en 1 el parmetro CW. Si CW es 0 entonces se ha superado la ventana de contienda y el canal se considera libre. La transmisin puede comenzar. Si CW no es 0 todava no hemos superado la ventana de contienda con lo que se vuelve al paso 3.

CSMA-CA no ranurado
Este algoritmo es muy similar al visto en el punto anterior. Los pasos a seguir son: 1. Inicializacin de NB, CW y BE. Al igual que en el caso anterior

N B = 0.

En este caso sin embargo

CW = 0

con lo que no existe ventana de contienda: si se detecta una nica vez que el canal no est

siendo usado se considera que est libre. Por otro lado, el modo no balizado no soporta el modo

macBattLifExt, por lo que directamente BE se iguala a macM inBE .


2. Idntico al caso de CSMA-CA ranurado. 3. Idntico al caso de CSMA-CA ranurado. 4. Idntico al caso de CSMA-CA ranurado excepto que en este caso no reiniciamos CW a su valor original puesto que estamos utilizando la ventana de contencin.. 5. Transmisin (como en el caso ranurado).

20

CAPTULO 2: ZIGBEE/802.15.4

Figura 2.7: Diagrama de bloques del algoritmo CSMA-CA. Fuente: [10]

2.4.4. Inicializacin y mantenimiento de PAN


Como hemos mencionado, la capa MAC es la encargada de gestionar la conexin y desconexin de un dispositivo a la red. Para realizar esta tarea, as como la de inicializar la red para el caso del coordinador, la capa MAC se sirve de los siguientes procedimientos:

Deteccin de energa de canal. Mediante este procedimiento, y a peticin de las capas superiores,
la capa MAC mide la energa de un canal o lista de canales determinados. Para ello indica a la capa fsica realizar una deteccin de energa de canal (ED) para cada uno de los canales elegidos. Mediante este procedimiento el coordinador puede elegir, entre varios, canales aquel con menos trco e iniciar la red PAN en l.

2.4: CAPA MAC

21

Escaneo activo de canal. Permite a un dispositivo localizar a un coordinador que transmita balizas y est dentro de su rango de alcance. Los routers y los dispositivos nales usan este procedimiento
a la hora de asociarse a la red. Si el dispositivo se trata de un coordinador, este mtodo se puede usar para detectar las redes PAN dentro de un canal y as seleccionar un identicador distinto a los ya existentes para la nueva red. Un dispositivo que realice un escaneo activo de canal transmitir peridicamente balizas. Si la red trabaja en modo no balizado, el coordinador responder a cada una de estas balizas con una nueva baliza. Si la red trabaja en modo balizado, el coordinador ignorar estas balizas y seguir transmitiendo de forma regular las suyas. As, en cualquier caso, el dispositivo que realiza el escaneo recibir una serie de balizas como respuesta a su peticin de asociacin.

Escaneo pasivo de canal. La nica diferencia con el caso anterior es que el dispositivo que realiza
el escaneo no transmite baliza alguna. Lo nico que har ser escuchar el canal en busca de balizas emitidas por el coordinador. Obviamente, este modo no es adecuado para el modo no balizado.

Escaneo de canal por un dispositivo hurfano. Si el dispositivo ha perdido la sincronizacin


con su coordinador emitir lo que se conoce como noticaciones de orfandad. Las capas superiores indicarn a la capa MAC por qu canales transmitir dichas noticaciones. El coordinador debe responder a dicha noticacin haciendo que la sincronizacin entre l y el dispositivo hurfano se recupere.

2.4.5. Formato de trama


Se denen cuatro tipos distintos de tramas: formato general de trama MAC, tramas de baliza, tramas de datos y tramas de

ack. Header ):

Estas tramas estn compuestas por:

Cabecera (MHR o MAC

Se compone por un campo de control, nmero de secuencia,

informacin de direccin destino y fuente e informacin relativa a la seguridad utilizada.

Carga til. Este campo vara para cada uno de los cuatro tipos de tramas. Las tramas de contienen este campo.

ack

no

Secuencia de control (MFR o MAC

Sequence ) que no es ms que un cdigo CRC (cdigo de redundancia cclico).

Footer ): secuencia de 16 bits conocida como FCS (Frame Check

Formato general de trama MAC


MHR compuesto por:

Control de trama: 16 bits para indicar el tipo de trama, si la trama utiliza un cdigo de seguridad, si se requiere de

ack

por parte del nodo adyacente, etc.

Nmero de secuencia: 8 bits para identicar la trama.

22

CAPTULO 2: ZIGBEE/802.15.4

(a) Formato general de trama MAC

(b) Trama de baliza

(c) Trama de datos

(d) Trama de

ack

Figura 2.8: Distintos formatos de tramas MAC. Fuente: [11]

Identicador de PAN destino: 16 bits para identicar el nmero de PAN con el que nos estamos comunicando. Usamos el valor hexadecimal FFFF para indicar cualquier PAN.

Direccin destino (16 64 bits). Identicador de PAN origen (16 bits). Direccin origen (16 64 bits).

Carga til.

MFR.

2.5: CAPA DE RED

23

Tramas de baliza
El MHR y el MFR son exactamente iguales que en el caso anterior. En este caso el campo de carga til tiene el siguiente formato: Especicacin de supertrama: 16 bits para especicar los parmetros BO, SO, miso de asociacin, etc. Informacin sobre los campos GTS. Direcciones pendientes de ser atendidas (

macBattLifExt, per-

Pending address ): Lista con las direcciones de los disposi-

tivos pendientes de comunicarse con el coordinador. Carga til: opcional.

Tramas de datos
El MHR y el MFR son exactamente iguales a los casos anteriores. El campo de carga til contiene la informacin pasada por las capas superiores.

Tramas de

ack

El MHR est compuesto nicamente por los campos de control de trama y de nmero de secuencia. Este tipo de trama no posee carga til. El campo MFR es igual que en los casos anteriores.

2.5.

Capa de red

2.5.1. Descripcin general


La capa de red se dene en la especicacin de ZigBee [9]. Esta capa es necesaria para gestionar las capas fsicas y MAC del estndar 802.15.4 y para proveer de una adecuada interfaz de servicio al nivel de aplicacin. Bsicamente las tareas que realiza la capa de red son las siguientes: Conguracin de nuevos dispositivos. Inicializacin de la red PAN. Asociacin, reasociacin y abandono de una red. Adjudicacin de direcciones de red. Descubrimiento de la topologa de red. Encaminamiento (

routing ).

Las constantes y atributos utilizadas para congurar la capa de red son listadas en la denicin del

nwkcCoordinatorCapable, nwkcDefaultSecurityLevel, nwkMaxChildren, nwkMaxDepth, nwkNeighborTable, etc.


estndar ZigBee [9] a partir de la pgina 338. Ejemplos de dichas constantes y atributos son

24

CAPTULO 2: ZIGBEE/802.15.4

A nivel de red, existen dos tipos de direcciones: direcciones cortas (16 bits) y direcciones largas o direcciones IEEE (64 bits). Cada dispositivo debe tener asignada una direccin IEEE nica. No puede haber dos dispositivos que cumplan con la especicacin ZigBee y que posean la misma direccin IEEE. As, esta direccin es asignada en el momento de la fabricacin del dispositivo. Por contra, la direccin corta es asignada por la capa de red de forma dinmica. Dentro de una red ZigBee no puede haber ms de un dispositivo con igual direccin corta.

2.5.2. Funciones
A continuacin explicamos de forma ms detallada las funciones principales que realiza la capa de red ZigBee.

Establecer una nueva red


Slo los dispositivos con capacidad para comportarse como coordinador (constante

Capable

nwkcCoordinator-

igual a 1) y no estn actualmente asociados a una red pueden realizar este procedimiento.

El primer paso para establecer una nueva red es indicar a la capa MAC que realice una deteccin de energa de canal para un determinado conjunto de canales o, en su defecto, para todos. Si estamos obligados a trabajar nicamente en un canal, no es necesario realizar dicha deteccin de energa. Una vez realizada la deteccin de energa de los canales, se ordenan de mayor a menor calidad, descartando aquellos con un nivel de interferencia demasiado elevado. A continuacin se realiza un escaneo activo de canal para cada uno de ellos. Finalmente se elige aquel canal con menor interferencia y en el que trabaje un menor nmero de redes ZigBee. Una vez seleccionado el canal se elige un identicador de red menor que el valor hexadecimal 0xFFFF (ya que ste signica cualquier red) y se indica a la capa MAC dicho valor. A continuacin el dispositivo que ha iniciado la red, el coordinador, se autoasigna la direccin corta 0x0000. Por ltimo se indica a la capa MAC que la red ha sido establecida con xito.

Permitir a los dispositivos unirse a una red


Slo el coordinador y los

routers

pueden realizar este procedimiento.

La capa de red modicar el valor del atributo que m

acAssociationPermit

macAssociationPermit de la capa MAC. Para el caso de

sea TRUE el dispositivo en cuestin permitir a otros dispositivos asociarse a

l. La capa de red puede modicar dicho valor de forma indenida o simplemente durante una cantidad de tiempo determinada.

Descubrimiento de red
Mediante este procedimiento la capa de red indica a la capa superior qu redes ZigBee estn operando dentro del rango de alcance del dispositivo en cuestin. La capa de red solicita a la capa MAC realizar un escaneo activo de canal para un determinado grupo de canales. Una vez realizado la capa MAC responder indicando en qu canales lgicos estn trabajando las redes encontradas, cules son sus identicadores (PAN ID) y si permiten o no a otros dispositivos unirse a ellas.

2.5: CAPA DE RED

25

Unirse a una red


El primer paso para unirse a una red es efectuar un descubrimiento de red, como hemos visto en el punto anterior. Una vez seleccionada la red en la que vamos a trabajar se realiza un listado con los candidatos a padre (estos dispositivos sern

routers

y/o el coordinador que estn dentro del rango

de alcance del dispositivo en cuestin). Lgicamente descartaremos aquellos que no tengan activado el permiso para unirse ellos. Entre los candidatos restantes seleccionaremos aquellos con menor profundidad (mnima distancia hasta el coordinador); esto quiere decir que el coordinador siempre ser prioritario, a continuacin los

routers

conectados directamente a l y as en adelante. Si varios candidatos cumplen las

mismas condiciones el dispositivo que intenta unirse a la red puede elegir libremente entre ellos. Durante el procedimiento de unin a la red, el dispositivo debe enviar su direccin IEEE al candidato a dispositivo. El dispositivo padre guardar en su lista de direcciones dicha direccin IEEE, le asociar una direccin corta y, acto seguido, enviar esta direccin corta al dispositivo. En adelante ambos dispositivos, padre e hijo, utilizarn esta direccin corta para comunicarse. Cuando un dispositivo hijo pierde la conexin con su dispositivo padre, puede solicitar una reasociacin con ste. El procedimiento es idntico al que acabamos de describir excepto por el detalle de que, aunque el dispositivo padre haya cambiado su conguracin y ya no acepte a otros dispositivos unirse a l, permitir asociarse al dispositivo hijo puesto que no se trata de una nueva asociacin. Otra opcin cuando el dispositivo hijo ha perdido la conexin con el dispositivo padre es solicitar a la capa MAC realizar un escaneo de canal por dispositivo hurfano. Cuando la capa MAC de un dispositivo hurfano realiza este procedimiento enva su direccin IEEE. Cuando el padre recibe dicha direccin comprueba que dicho dispositivo era su hijo y le responde indicando su antigua direccin corta, con lo que se considera que la conexin se ha recuperado.

Tablas de vecindad
Un dispositivo debe guardar informacin de cada uno de los dispositivos dentro de su rango de alcance. Esta informacin es almacenada en la tabla de vecindad. Dicha tabla es de utilidad en diferentes contextos. Primero, cuando un dispositivo intenta unirse a la red utiliza esta tabla para realizar el listado de candidatos a dispositivos padre, como hemos visto en el punto anterior. Segundo, una vez asociado, esta tabla se utiliza para almacenar parmetros relacionados con la calidad del enlace, tipo de relacin y dems informacin referente a los dispositivos dentro de nuestro rango de alcance. La tabla de vecindad debe ser actualizada cada vez que recibimos una trama proveniente del otro dispositivo. Los parmetros que se almacenan en esta tabla para cada uno de los distintos dispositivos son: direccin IEEE, direccin corta, tipo de dispositivo, relacin con dicho dispositivo (el dispositivo es el padre, hijo, hijo asociado a un padre comn, antiguo hijo, etc), LQI, nmero de saltos hasta dicho dispositivo, permiso de asociacin, si ha sido seleccionado como candidato a padre, etc.

Mecanismo distribuido de asignacin de direccin corta.


Cuando un dispositivo padre (coordinador o

router ) recibe la peticin de conexin por parte de otro

dispositivo (candidato a dispositivo hijo), el dispositivo padre debe asignarle una direccin corta. Este algoritmo se basa en la generacin de subgrupos de direcciones. El coordinador elige la primera

26

CAPTULO 2: ZIGBEE/802.15.4

direccin libre, 0x0000. A continuacin, asigna un subgrupo de las direcciones restantes a cada uno de sus hijos con capacidades de

router. Cada uno de esos hijos tendr como direccin propia la primera del

subgrupo que le ha sido asignado, teniendo las restantes direcciones disponibles para repetir el proceso con los dispositivos hijos que se conecten a l. Una vez asignados estos subgrupos de direcciones a los

routers, se asignan las direcciones a los dispositivos nales, comenzando por la primera direccin libre.
Para calcular el tamao de estos subgrupos de direcciones se tienen en cuenta ciertos parmetros de

nwkMaxChildren o Cm ), mxima profundidad de la red (nwkMaxDepth o Lm ) y mximo nmero de routers que un padre puede tener como hijos (nwkMaxRouters o Rm ). Teniendo en cuenta que d es la profundidad de un deterla red denidos por el coordinador: mximo nmero de hijos que un padre puede tener ( minado dispositivo [9] (nmero de saltos necesarios por el camino ms corto hasta llegar al coordinador,

0 d Lm )

denimos la funcin

Cskip(d)

como sigue:

Cskip(d) =

1 + Cm (Lm d 1) 1 + Cm
L Rm Cm Rmm d1 1 Rm

si Rm = 1
(2.3)

en otro caso

Cskip(d)

es el tamao del subgrupo de direcciones asignado a cada hijo de dicho dispositivo. Si el

resultado de la expresin anterior es negativo, se asume que

Cskip(d) = 0,

en cuyo caso el dispositivo

no puede tener dispositivos hijo. Formalmente, las direcciones asignadas a los dispositivos nales vienen dadas por la siguiente expresin, donde la direccin de su dispositivo padre:

Direcn

es la direccin asignada al hijo nmero

Direcpadre

es

Direcn

Direcpadre + Cskip(d) Rm + n

(2.4)

En la denicin del estndar ZigBee [9] podemos ver un ejemplo de dicho algoritmo. En l, para todos los dispositivos de la red: subgrupos de direcciones,

Cm = 8, Rm = 4 Cskip(d),

Lm = 3.

En la tabla 2.2 podemos ver el tamao de los

para los distintos valores de profundidad. En la gura 2.9 podemos

ver una representacin de dicha red.

Profundidad en la red, d 0 1 2 3 (=

Cskip(d)
31 7 1 0

Lm )

Cuadro 2.2: Ejemplo de tamao de subgrupos de direcciones

Adems de este, es importante mencionar que existe otro mecanismo de asignacin de direcciones. Su nombre es mecanismo estocstico de asignacin de direccin [9]. En l, todas las direcciones (excepto la del coordinador, que sigue siendo la 0x0000) se asignan de manera aleatoria. nicamente ZigBee PRO soporta el mecanismo estocstico de asignacin de direccin.

2.5: CAPA DE RED

27

Abandonar una red


A la hora de abandonar una red se pueden dar dos casos distintos: el padre decide que un hijo debe abandonar la red o el hijo comunica al padre que quiere abandonar la red. En ambos casos el dispositivo padre debe actualizar su tabla de vecindad de forma que el dispositivo eliminado no aparezca en ella.

Encaminamiento
El coordinador de red y los

routers

tienen la opcin de crear tablas de encaminamiento. Dichas tablas

contienen datos como la direccin corta del destino, el estatus de la ruta, o la direccin corta del siguiente dispositivo en la ruta. Para calcular la mejor ruta posible se usa un algoritmo que se basa en el coste de un camino determinado. El coste se puede calcular teniendo en cuenta el nmero de saltos necesario y la calidad de los enlaces (usando el indicador LQI).

Figura 2.9: Ejemplo de red mostrando el Cskip(d) y las direcciones de red

2.5.3. Formato de trama


El formato general de trama de capa de red se muestra en la gura 2.10.

Figura 2.10: Formato general de trama de red

28

CAPTULO 2: ZIGBEE/802.15.4

La trama est formada por:

Campo de control de trama. Est compuesto por 16 bits que indican el tipo de trama, la versin
del protocolo y si se est empleando seguridad en la transmisin, principalmente.

Direccin corta de destino.


dentro del rango de alcance.

El valor 0xFFFF se usa para enviar el paquete a todos los nodos

Direccin corta de origen. Radio.


Cada dispositivo que reciba la trama restar uno al valor de esta variable. As podremos limitar el mximo nmero de saltos de la trama.

Nmero de secuencia. Gracias a la direccin origen y al nmero de secuencia se puede identicar


una trama de forma unvoca.

Direccin IEEE destino. Su uso es opcional y es indicado en el campo de control de trama. Direccin IEEE origen. Su uso es opcional y es indicado en el campo de control de trama. Campo de control Multicast . Su uso es opcional y es indicado en el campo de control de trama. Dene parmetros necesarios para la transmisin multicast. Subtrama de ruta origen. Su uso es opcional y es indicado en el campo de control de trama. Carga til.
2.6. Capa de aplicacin

2.6.1. Descripcin general


La capa de aplicacin ZigBee est compuesta por la subcapa de soporte de aplicacin (APS), el marco de aplicacin (

application framework )

y el objeto de dispositivo ZigBee (

ZigBee Device Object

o ZDO).

En la gura 2.11 podemos ver una representacin de la capa de aplicacin y sus diferentes partes.

Figura 2.11: Capa de aplicacin

2.6: CAPA DE APLICACIN

29

En el siguiente subapartardo explicaremos cada una de las partes que componen la capa de aplicacin ZigBee. No obstante, antes es necesario explicar el signicado de varios trminos bastante recurrentes a la hora de hablar de la capa de aplicacin:

Perl de aplicacin. Describe el intercambio de mensajes de un conjunto de dispositivos empleados


para una determinada aplicacin. Por ejemplo, el perl de aplicacin que dene un sistema de domtica es distinto al que dene un sistema de control de sensores para la industria.

Cluster . Es un conjunto de atributos que se utilizan en la comunicacin de los distintos dispositivos


ZigBee. Por ejemplo, dentro de un sistema de domtica, se puede denir un de luces, otro para el control de temperatura, etc.

cluster

para el control

Punto de acceso (endpoint ). Dentro de un mismo dispositivo, se pueden denir varios puntos de
acceso. Cada uno de estos puntos de acceso gestiona el funcionamiento de una aplicacin diferente. Siguiendo con el ejemplo del sistema de domtica, un

router

que funcione como control remoto

puede tener un punto de acceso para el manejo del sistema de alarmas, otro para el control de luces, otro para el de temperatura, etc.

Vnculo (binding ).

Es una conexin lgica entre un punto de acceso origen y uno o varios de

destino. Slo se puede realizar un vnculo entre puntos de acceso que compartan el mismo

cluster.

Ya que un dispositivo puede poseer varios puntos de acceso, tambin puede soportar varios vnculos.

2.6.2. Subcapas
Subcapa de soporte de aplicacin (APS o Application
la capa de aplicacin. Las tareas que realiza esta capa son: Genera la PDU a nivel de aplicacin. Una vez los puntos de acceso de dos dispositivos estn vinculados, la capa APS es la encargada de gestionar el intercambio de mensajes. Mejorar la abilidad de la capa de red. Por ejemplo, se puede denir una conrmacin de aplicacin. Rechaza mensajes recibidos por duplicado.

Sublayer )

La subcapa de soporte de aplicacin proporciona una interfaz de comunicacin entre la capa de red y

ack

a nivel

Marco de aplicacin (AF o Application

Framework )

El marco de aplicacin es el entorno en el cual se gestionan las diferentes aplicaciones. Cada una de dichas aplicaciones est relacionada a un punto de acceso distinto. Se permiten hasta 240 aplicaciones distintas dentro de un mismo dispositivo. El punto de acceso 0 est asignado al nivel ZDO. El rango de 241-254 est reservado para uso futuro. Por ltimo, el punto de acceso 255 es usado para la comunicacin

broadcast

con todas las aplicaciones dentro del marco de aplicacin.

Esta capa es la encargada de denir tanto el perl de aplicacin como los diferentes

cluster

se caracteriza por un identicador propio (

cluster

clusters.

Cada

ID).

30

CAPTULO 2: ZIGBEE/802.15.4

Objeto de dispositivo ZigBee (ZDO o


tareas que realiza son: Inicializar las capas APS y de red.

ZigBee Device Object )

Este nivel satisface necesidades comunes a todas las aplicaciones dentro del marco de aplicacin. Las

Denir el rol del dispositivo dentro de la red (coordinador, Gestiona los vnculos entre puntos de acceso. Asegura una comunicacin segura entre dispositivos.

router

o dispositivo nal).

Como hemos dicho anteriormente, el ZDO se encuentra en el punto de acceso 0.

2.6.3. Formato de trama


El formato general de trama de capa de aplicacin se muestra en la gura 2.12.

Figura 2.12: Formato general de trama de aplicacin

La trama est compuesta por:

Campo de control de trama. Est formado por 8 bits que indican el tipo de trama, si se utiliza seguridad, si estamos empleando la extensin de cabecera y si se requiere conrmacin ack a nivel
de aplicacin.

Direccin del punto de acceso destino. Direccin de grupo. Si se usa direccionamiento de grupo la trama no debe incluir la direccin del
punto de acceso destino. Todos los puntos de acceso asociados a la direccin de grupo en cuestin recibirn esta trama.

Cluster

ID. Identicador de cluster.

Perl ID. Identicador del perl de aplicacin. Direccin del punto de acceso origen. Contador APS. Se usa para evitar la recepcin de tramas duplicadas. Extensin de cabecera. Extiende la funcionalidad de la cabecera. Carga til.

2.7: SEGURIDAD

31

2.7.

Seguridad

Desde el punto de vista de la seguridad, las redes inalmbricas son altamente vulnerables debido a que no se requiere tener acceso a un medio cableado para participar en las comunicaciones. ZigBee/802.15.4 est orientado hacia un mercado en el que el bajo consumo y el bajo coste son requisitos esenciales. Debido a la restriccin en lo que al coste se reere, los dispositivos que trabajan con esta tecnologa se enfrentan a una limitacin computacional evidente. Esto quiere decir que los sistemas de seguridad son mas difciles de implementar en sistemas que trabajan bajo ZigBee/802.15.4. Adems, a la hora de implementar mecanismos de seguridad para ZigBee/802.15.4 se ha tenido en cuenta que los dispositivos no tienen por qu tener acceso a una base de datos de forma continua. De esta forma, los distintos dispositivos deben ser capaces de gestionar los mecanismos de seguridad por s mismos. Por ltimo, es importante destacar que ZigBee/802.15.4 est orientado hacia en envo de pequeos paquetes de informacin, por lo que los mecanismo de seguridad utilizados no deberan aumentar en exceso el tamao de la cabecera En los estndares ZigBee [9] y 802.15.4 [10] se denen mecanismos de seguridad para las capas MAC, de red y de aplicacin. El mecanismo criptogrco utilizado se basa en el uso de claves simtricas. La clave en cuestin debe ser generada por las capas superiores. El mecanismo criptogrco debe ser capaz de asegurar: Condencialidad de los datos o privacidad. Esto quiere decir que la informacin transmitida slo de llegar a los dispositivos asociados a la red. Autenticacin de los datos. Se debe asegurar que la informacin recibida proviene de un dispositivo vlido (en otras palabras, no ha habido intromisin en las comunicaciones). Deteccin de informacin duplicada. Los paquetes de informacin deben de ser recibidos nicamente una vez. De acuerdo al estndar [10] la clave utilizada puede ser conocida por los dos dispositivos que participan en la comunicacin o por un grupo de dispositivos. Si utilizamos una nica clave para un grupo de dispositivos ganamos en simplicidad pero, por contra, estamos desprotegidos ante el ataque de un dispositivo de la propia red. ZigBee/802.15.4 usa el modo CCM*, una variante del modo CCM ( usa bloques de encriptacin basados en el algoritmo AES-128 (

Counter with CBC-MAC ). CCM* Advanced Encryption Standard ). CCM* es

un modo simtrico, lo que quiere decir que tanto el dispositivo que transmite como el que recibe usan la misma clave para descifrar el mensaje. En caso de que la seguridad est habilitada, el coordinador es normalmente el que realiza las funciones de centro de seguridad, permitiendo o no la asociacin de un nuevo dispositivo. El centro de seguridad debe actualizar peridicamente la clave utilizada, cambindola por una nueva si lo estima necesario. Para ello, distribuye la nueva clave encriptada con la antigua. Despus comunica a todos los dispositivos que a partir de ese momento deben usar la nueva clave. El centro de seguridad, que como hemos dicho suele ser el coordinador pero que tambin puede ser un dispositivo expresamente dedicado a ello, realiza las siguientes funciones: Autenticar dispositivos que quieren unirse a la red.

32

CAPTULO 2: ZIGBEE/802.15.4

Generar y distribuir nuevas claves. Habilitar el uso de seguridad punto a punto entre dispositivos. ZigBee/802.15.4 usa tres tipos de claves:

Claves de enlace.

Sirven para dotar de seguridad las comunicaciones punto a punto a nivel de

aplicacin. Slo lo dos dispositivos que participan en la comunicacin conocen esta clave.

Claves de red. Esta clave se usa para la seguridad a nivel de red. Todos los dispositivos dentro de
una misma red deben compartir esta clave.

Claves maestro. Esta clave es utilizada por dos dispositivos en el inicio de la comunicacin para
generar la clave de enlace. La clave maestro no se usa para encriptar tramas. Se denen dos tipos de seguridad:

Modo de seguridad estndar.

En este modo la lista de dispositivos pertenecientes a la red y

las diferentes claves pueden estar almacenadas dentro de cada uno de los distintos dispositivos. El centro de seguridad solamente se encarga de mantener una clave de red comn y de controlar las polticas de admisin. As, el centro de seguridad no necesita una gran memoria para almacenar los datos relacionados con la seguridad de la red.

Modo de seguridad avanzado. En este caso el centro debe almacenar tanto las claves como el
listado de dispositivos, as como de controlar las polticas de admisin. Conforme crezca el nmero de dispositivos asociados a la red, aumentarn los requerimientos de memoria del centro de seguridad. Solamente ZigBee PRO soporta este modo de seguridad. Las diferentes capas aadirn una cabecera auxiliar en el caso de que utilicemos un modo seguro de transmisin. Adems, se debe incluir un cdigo de integridad (MIC o de la carga til. Figura 2.13.

Message Integrity Code ) a continuacin

(a) Capa MAC

(b) Capa de red

(c) capa de aplicacin


Figura 2.13: Formato de trama con seguridad habilitada

2.8: IMPLEMENTACIONES COMERCIALES

33

2.8.

Implementaciones comerciales

Algunos de los principales fabricantes de dispositivos electrnicos basados en ZigBee/802.15.4 son:

Atmel (www.atmel.com)
Esta empresa ofrece dispositivos basados en la combinacin de su serie de microcontroladores conocida como AVR y un sistema radio especialmente diseado para 802.15.4. Atmel ofrece dos gamas de dispositivos: Series AT86RF230 y AT86RF231. Ambas trabajan a 2,4 GHz. Serie AT86RF212. Esta serie trabaja en las frecuencias de 868 y 915 MHz y cumple con el estndar 802.15.4c. Dicho estndar es una variante del 802.15.4 que especica el uso de la banda ISM en China. Con la comercializacin de esta serie Atmel pretende expandir su cuota de mercado en dicho pas. El entorno de desarrollo utilizado para la programacin de los microcontroladores es AVR Studio. Atmel tambin dispone de

kits

de desarrollo/evaluacin, como ATAVRRZRAVEN, muy tiles para

desarrolladores en las primeras etapas de diseo.

Ember (www.ember.com)
Ember se centra casi exclusivamente en la fabricacin de dispositivos relacionados con ZigBee/802.15.4. Los productos bsicos que ofrece son: EM250 EM260

SoC. Sistema que engloba tanto el microprocesador como el transceptor. Trabaja a 2,4 GHz. Co-Processor.
Este chip combina un transceptor, que tambin trabaja a 2,4 GHz, con un

microprocesador de capacidad limitada. Tiene una conexin SPI ( (

Universal Asynchronous Receiver-Transmitter )

Serial Peripheral Interface )/UART

para poder conectar cualquier microprocesador a

dicho sistema. De esta forma se permite al diseador implementar de forma independiente la parte ms alta de la capa de aplicacin (marco de aplicacin). Las capas de red y de aplicacin de dichos dispositivos trabajan usando EmberZNet PRO, una versin propia del estndar ZigBee. Ember tambin ofrece

kits

de desarrollo basados bien en EM250 o en EM260.

Freescale (www.freescale.com)
En relacin con ZigBee/802.15.4, Freescale ofrece las siguientes gamas de productos: MC1320X

RF Transceiver.

Transceptor basado en 802.15.4. Posee una conexin SPI para poder

conectarlo a cualquier microprocesador. MC1321X

System in Package. Combina un transceptor MC13202 con un microprocesador de freescale

(MC9S08GT).

34

CAPTULO 2: ZIGBEE/802.15.4

MC13224

Platform in Package. Combinacin de transceptor 802.15.4 y microcontrolador centrada

en la optimizacin energtica del transceptor. La versin ZigBee de Freescale es conocida como BeeStack. Respecto a la capa MAC, Freescale ofrece la posibilidad de usar el protocolo SMAC (simple MAC), una versin propia y simplicada de la capa MAC 802.15.4. Los

kits

de desarrollo que ofrece son 1321X 1322X Development Kits.

Jennic (www.jennic.com)
Jennic oferta los siguientes chips: JN5148. JN5139. JN5121. Los tres estn compuestos por un transceptor y un microprocesador. JN5148 es el producto ms reciente y el que ofrece unas mejores caractersticas. Jennic tiene una versin propia de la capa de red conocida como JenNet.

JN5139 IEEE802.15.4/JenNet Starter Kit, una versin ms profesional, JN5139 IEEE802.15.4/JenNet Evaluation Kit.
Dispone de un de desarrollo para principiantes,

kit

y de

Texas Instruments (www.ti.com)


Texas Instruments (TI) ofrece varias gamas de productos ZigBee/802.15.4, todas ellas trabajando a 2,4 GHz: CC2430 y CC2431. Combinacin de transceptor y microcontrolador en un nico chip. Trabaja usando Z-Stack, la versin de ZigBee de TI. Los

Kits

de desarrollo asociados son CC2430DK y CC2431DK.

CC2480. Coprocesador ZigBee con conexin SPI/UART. Est pensado para trabajar conectado a un microprocesador. El coprocesador ZigBee maneja el sistema radio y en l se integran las capas fsica, MAC, de red y parte de la de aplicacin. El

Kit

de desarrollo asociado es eZ430-RF2480.

CC2420 y CC2520. Transceptor 802.15.4 pensado para trabajar conectado a un microprocesador MSP430 de TI. El

Kit

de desarrollo asociado es CC2520DK.

TI tambin brinda la oportunidad de trabajar con una capa MAC propia conocida como TIMAC. El entorno de desarrollo utilizado para la programacin de los microcontroladores es IAR

Workbench
 

Embedded

[31].

El listado de empresas expuesto no es exhaustivo y slo pretende servir como visin general del mercado de componentes electrnicos ZigBee/802.15.4. Por supuesto, otras muchas empresas dedican sus esfuerzos al desarrollo y comercializacin de este tipo de dispositivos. Ejemplos de ello son Microchip Technology, STMicroelectronics, Uniband Electric Corporation, ZMD, etc.

2.8: IMPLEMENTACIONES COMERCIALES

35

De entre todas las opciones comerciales posibles hemos elegido el

kit

de desarrollo eZ430-RF2480 de

TI para la realizacin de nuestro proyecto. En primer lugar TI es una empresa con gran proyeccin de futuro dentro del campo de los componentes electrnicos orientados a ZigBee/802.15.4. En segundo lugar, eZ430-RF2480 nos ofrece todo lo necesario para realizar nuestro estudio sobre el consumo de corriente en nodos 802.15.4 de forma ms simple y rpida que utilizando otros

kits

de desarrollo.

En el siguiente captulo expondremos en profundidad las componentes eZ430-RF2480.

hardware

software

del

kit

36

CAPTULO 2: ZIGBEE/802.15.4

Captulo 3

Herramientas de desarrollo empleadas y sistema de medida


En el presente captulo expondremos todas las herramientas de las cuales nos hemos servido durante el desarrollo de nuestro proyecto. En primer lugar veremos el

kit

de desarrollo eZ430-RF2480, el cual est

compuesto por una serie de dispositivos congurables que nos permitirn formar una red ZigBee/802.15.4. A continuacin daremos un repaso a todas las herramientas de instrumentacin y el

software

que hemos

utilizado. Por ltimo, expondremos el circuito de medida empleado para realizar nuestras medidas.

3.1.

Kit de desarrollo eZ430-RF2480

3.1.1. Introduccin
Para la realizacin de nuestro estudio del consumo de potencia en redes ZigBee/802.15.4 usaremos el

kit

de desarrollo eZ430-RF2480 de Texas Instruments. Antes de entrar en detalles deniremos los tres

tipos distintos de dispositivos ZigBee/802.15.4 en lo que a arquitectura

hardware

se reere:

Arquitectura basada en un transceptor 802.15.4 y un Microprocesador. En este tipo de dispositivos el transceptor se ocupa de la parte radio (capa fsica 802.15.4) mientras que el microprocesador se encarga de gestionar la capa MAC, de red y de aplicacin. Arquitectura basada en un procesador ZigBee/802.15.4 y un Microprocesador. Ahora, el procesador ZigBee/802.15.4 gestiona tanto la capa fsica como las capas MAC y de red, dejando al microprocesador encargado nicamente de la parte de aplicacin. Estos sistemas son ms simples, pero menos exibles, de cara al desarrollador puesto que ste slo se debe ocupar de la aplicacin, dejando que el procesador ZigBee/802.15.4 gestione el resto de capas. Arquitectura basada en un dispositivo completamente integrado (

System-on-chip

o SoC). En este

ltimo caso, tanto el transceptor como el microprocesador estn integrados en un nico chip. El

kit

de desarrollo eZ430-RF2480 pertenece al segundo tipo de los mencionados arriba, se trata de un

procesador ZigBee/802.15.4 ms microprocesador. El procesador ZigBee/802.15.4 es un CC2480 y, como 37

38

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

hemos dicho, realiza las tareas de la capa fsica, MAC y de red. El microprocesador es un MSP430. Ambos dispositivos estn conectados por un bus SPI. En la gura 3.1 podemos ver una representacin de la distribucin de las capas del protocolo ZigBee/802.15.4 entre CC2480 y MSP430. La versin propia del estndar ZigBee que ha realizado TI se denomina Z-Stack. As, se puede decir que en este tipo de dispositivo el procesador CC2480 se encarga del protocolo Z-Stack. A esta combinacin de procesador ZigBee/802.15.4 y del protocolo Z-Stack, TI la denomina Z-Accel. El objetivo es hacer que el desarrollador se centre en la creacin de su aplicacin dejando que el dispositivo Z-Accel se encargue de la parte ZigBee/802.15.4.

Figura 3.1: Distribucin de la pila de protocolos entre microprocesador y CC2480

La aplicacin que, por defecto, viene instalada en el MSP430 se denomina ZASA (

Sample Application ) y pretende ser un ejemplo simple de una aplicacin ZigBee. El kit eZ430-RF2480 est compuesto por tres tabletas iguales (gura 3.2c), un conector USB (gura

ZigBee Accelerator

3.2a) y dos conectores para bateras AAA (gura 3.2b). La tableta, aparte de contener el procesador CC2480 y el microprocesador MSP430 tambin est compuesta por un sensor de luz, un botn, dos diodos LED (uno verde y otro rojo) y, lgicamente, por una antena que, para este caso particular y para ahorrar en tamao y consumo, es de tipo chip.

(a) Conector USB eZ430

(b) Conector de bateras AAA

(c) Tableta vista por ambas caras

Figura 3.2: Componentes del

kit

eZ430-RF2480. Fuente: [22]

3.1: KIT DE DESARROLLO EZ430-RF2480

39

En la gura 3.3 vemos como las diferentes partes se conectan entre s. Como vemos, con un

kit

disponemos de hasta tres nodos ZigBee/802.15.4 para formar nuestra red. Estos nodos son de tipo FFD puesto que pueden funcionar como coordinador,

router

o dispositivo nal. Dos dispositivos estn alimen-

tados por bateras y un tercero lo est a travs de la conexin USB a un PC. Gracias al dispositivo conectado al PC, podemos visualizar diferentes parmetros de la red.

Figura 3.3: Conexin de los componentes del

kit

eZ430-RF2480. Fuente: [22]

Cuando utilizamos los dispositivos con ZASA como aplicacin, es en el momento de la inicializacin cuando denimos la funcionalidad del dispositivo. As, una conguracin bsica sera congurar el primer dispositivo como coordinador, el siguiente como

router,

y el ltimo de ellos como dispositivo nal. Una

vez los dispositivos han sido congurados, todos ellos comienzan a enviar de forma peridica datos al coordinador. La idea es que el coordinador sea el que est conectado al PC de forma que podamos visualizar los paquetes de datos recibidos mediante alguna aplicacin. Esta es simplemente una visin general de la aplicacin ZASA. En la seccin 3.1.5 describiremos su funcionamiento en profundidad y propondremos posibles modicaciones de dicha aplicacin.

3.1.2. CC2480
Como hemos dicho, el CC2480 es un procesador ZigBee/802.15.4 que abarca las capas fsica, MAC y de red. Posee una conexin SPI/UART para poder conectarse con cualquier microprocesador. La implementacin ZigBee de TI, Z-Stack, est cargada en el CC2480. CC2480 cumple con el estndar ZigBee-2006 [9]. Por ltimo es importante destacar que el procesador CC2480 trabaja en modo no balizado. Para una comprensin en profundidad de las caractersticas tcnicas del procesador CC2480 aconsejamos acudir a su hoja de caractersticas en [13].

Arquitectura
En la gura 3.4, realizada basndonos en [12], se muestra un esquema de la arquitectura de conexin entre el CC2480 y un microprocesador funcionando como

host

40

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Figura 3.4: Conexin entre el integrado CC2480 y un microprocesador

Las diferentes interfaces del chip CC2480 son:

Interfaz SPI/UART. Es el bus que permite el intercambio de datos entre CC2480 y el microprocesador. SPI es un bus serie de transmisin sncrono. UART es un bus asncrono que convierte los bits de paralelo a serie antes de enviarlos. Esta interfaz requiere 4 pines. Ms adelante profundizaremos en su funcionamiento.

Control de activacin. Esta interfaz est compuesta por 2 seales: SRDY (slave ready ) y MRDY (master ready ). SRDY es activada por el CC2480 cuando ste est listo para recibir datos, se activa
a nivel bajo. MRDY es activada a nivel bajo por el microprocesador para indicar que tiene datos listos que enviar al CC2480.

Reset. El microprocesador puede inicializar, mediante esta interfaz, el chip CC2480. Est compuesto por un pin. Aparte de este reseteo hardware, tambin existe la posibilidad de realizar un reseteo software a travs de la interfaz SPI/UART. Conguracin.
Compuesta por dos pines, denominados CFG0 y CFG1. CFG0 indica si el oscilador de cristal opcional de 32,768 kHz est instalado. CFG1 est activo cuando seleccionamos comunicacin por SPI e inactivo cuando lo hacemos por UART.

GPIO.

Est compuesto por 4 pines. El microprocesador puede leer y escribir en dichos pines a

travs del CC2480.

Entrada ADC. El CC2480 posee un conversor analgico digital. La entrada ADC (Analog to Digital Converter ) est compuesta por dos pines que pueden ser utilizados como entrada a este conversor.
En la gura 3.5 mostramos los diferentes pines del CC2480 y en la tabla 3.1 describimos los ms signicativos.

3.1: KIT DE DESARROLLO EZ430-RF2480

41

Figura 3.5: Distribucin de pines en CC2480. Fuente: [13]

Pin 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18

Nombre GPIO3 GPIO2 SRDY MRDY GPIO1 GPIO0 RESET_N CFG0 CFG1 SO/RX SI/TX SS/CT C/RT A0 A1

Direccin Congurable Congurable Salida Entrada Congurable Congurable Entrada Entrada Entrada Salida/Entrada Entrada/Salida Entrada/Salida Entrada Entrada Entrada

Conexin Opcional Opcional Obligatoria para SPI Obligatoria para SPI Opcional Opcional Recomendada Opcional Opcional Obligatoria Obligatoria Obligatoria Obligatoria Opcional Opcional

Descripcin Pin congurable Pin congurable Esclavo listo (SPI) Maestro listo (SPI) Pin congurable Pin congurable Reset (activo a nivel bajo) Pin de conguracin Pin de conguracin Salida SPI o RX UART Entrada SPI o TX UART (SPI) o

Slave Select

Clear to Send (UART) reloj SPI o Request to Send (UART)


Entrada analgica al conversor ADC Entrada analgica al conversor ADC

Cuadro 3.1: Descripcin de los principales pines del CC2480

42

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Vemos que el CC2480 est concectado a dos relojes de cristal: XTAL1, de 32 MHz y XTAL2, de 32,768 kHz. Como hemos mencionado ms arriba, el reloj de 32,768 kHz es opcional y su instalacin la indicaremos activando el pin CFG0. En eZ430-RF2480 tenemos instalado el reloj de 32,768 kHz luego CFG0 est activo por defecto. Aparte de estos relojes de cristal externos, el dispositivo CC2480 tiene dos relojes RC internos de valores 32 kHz y 16 MHz que son calibrados usando el reloj de cristar externo XTAL1. Respecto a la antena podemos mejorar las caracteristicas de transmisin utilizando un dipolo o una antena impresa en lugar de una antena tipo chip. El

kit

eZ430-RF2480 viene de serie con una antena chip

de forma que tanto el consumo como su coste, como ya hemos dicho antes, sean menores. Por supuesto, el alcance con una antena chip es menor que utilizando otro tipo de antena ms sosticado. En eZ430-RF2480, el microprocesador (MSP430 en este caso) y el CC2480 estn conectos a travs de un bus SPI. Esto lo indicamos de cara al CC2480 activando el pin CFG0. El conversor ADC interno del CC2480 est conectado a los pines de entrada A0 y A1 que, para el caso particular del modelo eZ430-RF2480, no son utilizados. A continuacin, veremos con ms profundidad el formato de trama que se intercambian microprocesador y CC2480 y cmo funcionan las comunicaciones entre ellos.

Formato de trama de comunicacin entre los integrados MSP430 y CC2480


En la gura 3.6 se muestra el formato de trama de los mensajes intercambiados entre CC2480 y MSP430. El byte de la izquierda se transmite primero por el bus SPI y as hasta llegar al ltimo.

Figura 3.6: Formato de trama de comunicacin entre microprocesador y CC2480

El primer byte que se transmite es SOF (

Start Of Frame indicator ) que indica el comienzo de trama. Frame Check Sequence ), que no

En ZASA, por defecto, SOF tiene el valor de 0xFE. El siguiente byte indica la longitud del campo de datos. Los dos siguientes bytes sirven para indicar el comando. A continuacin se transmiten los datos (este campo puede estar vaco). Por ltimo se transmite el campo FCS ( es ms que un

checksum

(XOR) entre todos los bytes de la trama excepto el SOF.

Los bits del comando se distribuyen tal y como vemos en la gura 3.7.

Figura 3.7: Bits de comando

Los comandos intercambiados entre microprocesador y CC2480 pueden ser de tres tipos. El caso ms

3.1: KIT DE DESARROLLO EZ430-RF2480

43

simple es cuando el microprocesador enva una peticin al CC2480 de la que no espera respuesta. Este tipo de peticin se denomina asncrona (AREQ o

Asynchronous Request

en ingls). En el segundo, cuando

el microprocesador necesita recibir una repuesta por parte del CC2480, se dice que la peticin es sncrona

Synchronous Request ). La repuesta por parte del CC2480 debe ser inmediata y se denomina SRSP (Synchronous Response ). Por ltimo, el CC2480 tiene la posibilidad de enviar tambin peticiones al
(SREQ o microprocesador. Como el microprocesador es siempre quien lleva la iniciativa, deber enviar un comando POLL (sondeo) al CC2480 para ver si ste tiene una peticin para l. Los bits que indican el tipo de comando toman los valores que vemos en la tabla 3.2a.

Valor 0 1 2 3 Resto

Tipo de comando POLL SREQ AREQ SRSP Reservado

Valor 1 4 5 6 Resto

Subsistema Interfaz SYS Interfaz AF Interfaz ZDO Interfaz

Simple

API

Reservado

(a) Tipo de comando

(b) Subsistema del comando

Cuadro 3.2: Valores posibles para los campos tipo y subsistema de comando

Como vimos en la seccin 2.6.2, la parte ms alta de la capa de aplicacin ZigBee est formada por las subcapas Marco de aplicacin (AF) y Objeto de dispositivo ZigBee (ZDO). Los bits de subsistema dentro del campo comando sirven para indicar a qu subcapa de aplicacin va destinado el comando (tabla 3.2b). Las interfaces SYS y

Simple

API (

Application Programming Interface ) sern explicadas ms adelante.

Por ltimo, el subcampo ID, formado por 8 bits, sirve como identicador para cada uno de los comandos.

Comunicaciones entre MSP430 y CC2480


Como ya hemos dicho en varias ocasiones, MSP430 y CC2480 pueden utilizar un bus SPI o UART para sus comunicaiones. La eleccin de uno u otro la realiza el microprocesador, el cual se la indica al CC2480 mediante el pin CFG0 (activo para SPI e inactivo para UART). Tanto si utilizamos uno u otro mecanismo de comunicacin los pines empleados son los mismos: SO/RX, SI/TX, SS/CT y C/RT (pines 13 a 16). En el

kit

de desarrollo eZ430-RF2480 se utiliza el bus SPI para las comunicaciones por lo que ser este

procedimiento el que explicaremos a continuacin. Tambin es importante sealar que las comunicaciones por SPI se sirven del uso de los pines SRDY y MRDY gestionados respectivamente por CC2480 (esclavo) y MSP430 (maestro) para indicar que estn listos para realizar las comunicaciones. Puesto que SPI es un bus de transferencia sncrono, es necesario transmitir una seal de reloj. El pin C/RT sirve para transmitir dicha seal de reloj como vemos en la tabla 3.1. El pin SS (

slave select ),

activo a nivel bajo, se usa cuando hay ms de un esclavo conectado a un maestro. En ese caso, el esclavo seleccionado debe activar este pin. Puesto que en nuestro caso slo tenemos un esclavo, el valor de SS y de MRDY siempre deben coincidir. Cuando SS y MRDY estn activos (0 lgico) quiere decir que el CC2480 es elegido como destinatario y que el MSP430 est listo para enviar informacin. El pin SI se utiliza para el envo serie en el sentido maestro a esclavo mientras que el pin SO funciona en sentido inverso, del

44

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

esclavo hacia el maestro. Cuando el microprocesador quiera enviar una peticin al CC2480 activar MRDY y SS y esperar a que SRDY se active indicando que ste est listo para recibirla. Repetimos que MRDY, SRDY y SS se activan a nivel bajo (0 lgico). El microprocesador nunca deber desactivar MRDY sin antes haber transmitido todos los bytes de la trama. A continuacin mostramos las variaciones de las distintas seales para los casos de envo de AREQ, SREQ con SRSP como respuesta y POLL con respuesta:

AREQ

Figura 3.8: AREQ. Fuente: [12]

1. El microprocesador tiene una trama AREQ por transmitir. Activa MRDY a nivel bajo y espera a SRDY.

2. CC2480 detecta el anco de bajada de MRDY. Cuando est listo para recibir la trama activa SRDY a nivel bajo.

3. El microprocesador detecta que SRDY est a nivel bajo y comienza la transmisin.

4. El microprocesador transmite la trama al completo.

5. El CC2480 recibe la trama al completo.

6. El microprocesador ha nalizado de transmitir y espera que SRDY se desactive (nivel alto).

7. CC2480 ha recibido todos los datos y pone SRDY a nivel alto.

8. El microprocesador detecta que SRDY est a nivel alto y pone MRDY a nivel alto tambin.

3.1: KIT DE DESARROLLO EZ430-RF2480

45

SREQ

Figura 3.9: SREQ. Fuente: [12]

Es importante sealar que, en este caso, cuando el CC2480 est listo para enviar su respuesta sncrona (SRSP) al microprocesador, pone SRDY a nivel alto indicando que ya no est listo para recibir sino para transmitir (paso 8). Los pasos ahora seguiran la siguiente secuencia:

1. El microprocesador tiene una trama SREQ por transmitir. Activa MRDY a nivel bajo y espera a SRDY.

2. CC2480 detecta el anco de bajada de MRDY. Cuando est listo para recibir la trama activa SRDY a nivel bajo.

3. El microprocesador detecta que SRDY est a nivel bajo y comienza la transmisin.

4. El microprocesador transmite la trama al completo.

5. El CC2480 recibe la trama al completo.

6. El microprocesador espera a que SRDY vuelva a nivel alto.

7. CC2480 procesa el comando solicitado por el microprocesador y ejecuta la funcin.

8. Una vez ejecutada la funcin el CC2480 prepara la trama SRSP y pone SRDY a nivel alto indicando que ya no est listo para recibir sino para transmitir.

9. El microprocesador detecta SRDY a nivel alto y comienzan las comunicaciones.

10. El microprocesador recibe la trama al completo.

11. CC2480 transmite la trama al completo.

12. El microprocesador ha recibido todos los bytes y desactiva MRDY ponindolo a nivel alto.

46

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

POLL

Figura 3.10: POLL. Fuente: [12]

Al igual que en el caso anterior, el CC2480 pondr SRDY a nivel alto para indicar que tiene los datos listos para transmitir hacia el microprocesador (paso 6). 1. CC2480 est listo para enviar una trama AREQ hacia el microprocesador. Como es necesario que el microprocesador le solicite primero dicha trama, el CC2480 coloca SRDY a nivel bajo a la espera de un comando POLL por parte del microprocesador. 2. El microprocesador detecta SRDY a nivel bajo y coloca MRDY a nivel bajo tambin. Prepara el comando POLL y comienza la transmisin de la trama. 3. El microprocesador transmite la trama al completo. 4. El CC2480 recibe la trama al completo. 5. El microprocesador espera hasta que SRDY se ponga a nivel alto. 6. El CC2480 prepara la trama AREQ a enviar y, cuando est listo, coloca SRDY a nivel alto. 7. El microprocesador detecta SRDY a nivel alto y comienzan las comunicaciones. 8. El microprocesador recibe la trama al completo. 9. El CC2480 transmite la trama al completo. 10. El microprocesador ha recibido todos los bytes y desactiva MRDY ponindolo a nivel alto. 

Interfaz de aplicacin
En este apartado explicaremos la funcin de las cuatro interfaces que se utilizan para las comunicaciones entre microprocesador y CC2480. Para cada una de ellas daremos un listado con los comandos que la componen. En este documento no entramos en detalles respecto a cmo utilizar cada comando ni de qu partes est compuesto su campo de datos. Para ello se propone la consula del documento 

Specication 

CC2480 Interface

[12]. Aunqu ser ms adelante cuando explicaremos de forma detallada el funcionamiento

3.1: KIT DE DESARROLLO EZ430-RF2480

47

de la aplicacin ZASA, mencionaremos ahora cules de los comandos expuestos son utilizados por esta aplicacin. Las diferentes interfaces son:

Interfaz de sistema (SYS).


Esta interfaz proporciona al microprocesador un medio para modicar atributos del CC2480. Por ejemplo podremos manejar el conversor ADC, acceder a la

volatile memory ), manejar los pines GPIO, los relojes software

software y hardware memoria NV (non-

o el generador de nmeros aleatorios

que tambin incorporta el CC2480. En la tabla 3.3 podemos ver todos los compandos que pertenecen a esta interfaz. Todos los comandos tipo SREQ llevan asociada una respuesta SRSP que no se muestra ni en esta tabla ni en las siguientes por simplicidad. En ZASA el nico comando de la interfaz SYS que se utiliza es

sys_reset_ind.

Comando 0x4100 0x4180 0x2102 0x2109 0x2108 0x210A 0x210B 0x4181 0x210C 0x210D 0x210E 0x4140 0x2141

Tipo AREQ AREQ SREQ SREQ SREQ SREQ SREQ AREQ SREQ SREQ SREQ AREQ SREQ

Nombre sys_reset_req sys_reset_ind sys_version sys_osal_nv_write sys_osal_nv_read sys_osal_start_timer sys_osal_stop_timer sys_osal_timer_expired sys_random sys_ADC_read sys_GPIO sys_test_RF sys_test_loopback

Cuadro 3.3: Comandos de la interfaz SYS

Simple

API [14].

Esta es una versin reducida de la interfaz API [15] que proporciona Texas Instrument para Z-Stack. La interfaz Z-Stack API est pensada para dispositivos en los que la pila de protocolos est cargada en el procesador (seccin 3.1.1). Entre otras, Z-Stack API est compuesta por una serie de primitivas con las que manejar tanto la capa de red como la subcapa APS. Como hemos dicho, CC2480 abarca las capas fsica, MAC y de red. Por lo tanto no es necesario disponer de todas las primitivas de las que est compuesta Z-Stack API. La solucin es esta versin reducida conocida como

simple

API.

Los comandos de esta interfaz simplicada nos permitirn cambiar la conguracin del dispositivo, formar una red, realizar vnculos entre puntos de acceso y transferir la informacin. En la tabla 3.4 podemos ver todos los comandos que pertenecen a esta interfaz. ZASA utiliza todos los comandos que ofrece

Simple

API.

48

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Comando 0x4609 0x2604 0x2605 0x260A 0x2600 0x4680 0x2608 0x2601 0x4681 0x2602 0x4682 0x2603 0x4683 0x4687 0x2606 0x2607 0x4685

Tipo AREQ SREQ SREQ SREQ SREQ AREQ SREQ SREQ AREQ SREQ AREQ SREQ AREQ AREQ SREQ SREQ AREQ

Nombre zb_systemreset zb_read_conguration zb_write_conguration zb_app_register_req zb_start_req zb_start_conf zb_permit_joining_req zb_bind_device zb_bind_conf zb_allow_bind zb_allow_bind_conf zb_send_data_req zb_send_data_conf zb_receive_data_ind zb_get_device_info zb_nd_device_req zb_nd_device_conf

Cuadro 3.4: Comandos de la interfaz

Simple

API

Interfaz AF.
Nos proporciona una interfaz con el Marco de aplicacin (seccin 2.6.2). Bsicamente lo que podemos hacer con las primitivas que nos proporciona esta interfaz es registar la aplicacin en el CC2480 y, al igual que con la interfaz

Simple

API, enviar y recibir datos hacia otros dispositivos de la red. En

la tabla 3.5 podemos ver todos los comandos que pertenecen a esta interfaz. La aplicacin de ejemplo ZASA emplea los cuatro comandos AF.

Comando 0x2400 0x2401 0x4480 0x4481

Tipo SREQ SREQ AREQ AREQ

Nombre af_register af_data_req af_data_conf af_incoming_msg

Cuadro 3.5: Comandos de la interfaz AF

Interfaz ZDO.
Es una interfaz con el Objeto de dispositivo ZigBee (seccin 2.6.2). Es necesaria para manejar la funcionalidad del coordinador,

routers y dispositivos nales. Esto incluye la creacin, descubrimiento zdo_match_desc_req zdo_match_desc_rsp.

y asociacin a una red ZigBee y la vinculacin de puntos de acceso. En la tabla 3.6 podemos ver todos los comandos que pertenecen a esta interfaz. ZASA slo hace uso de los comandos y

3.1: KIT DE DESARROLLO EZ430-RF2480

49

Comando 0x2500 0x4580 0x2501 0x4581 0x2502 0x4582 0x2504 0x4584 0x2505 0x4585 0x2506 0x4586 0x45C2 0x2508 0x4588 0x250B 0x4589 0x250A 0x45C1 0x2520 0x45A0 0x2521 0x45A1 0x2522 0x45A2 0x2531 0x45B1 0x2534 0x45B4 0x2536 0x45B6 0x45C0

Tipo SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ AREQ

Nombre zdo_nwk_addr_req zdo_nwk_addr_rsp zdo_ieee_addr_req zdo_ieee_addr_rsp zdo_node_desc_req zdo_node_des_rsp zdo_simple_desc_req zdo_simple_desc_rsp zdo_active_ep_req zdo_active_ep_rsp zdo_match_desc_req zdo_match_desc_rsp zdo_match_desc_resp_sent zdo_user_desc_req zdo_user_desc_rsp zdo_user_desc_set zdo_user_desc_conf zdo_end_device_annce zdo_end_device_annce_ind zdo_end_device_bind_req zdo_end_device_bind_rsp zdo_bind_req zdo_bind_rsp zdo_unbind_req zdo_unbind_rsp zdo_mgmt_LQI_req zdo_mgmt_LQI_rsp zdo_mgmt_leave_req zdo_mgmt_leave_rsp zdo_mgmt_permit_join_req zdo_mgmt_permit_join_rsp zdo_state_change_ind

Cuadro 3.6: Comandos de la interfaz ZDO

Parmetros de conguracin
El integrado CC2480 tiene varios parmetros que pueden ser modicados por el microprocesador. Estos parmetros son almacenados en una memoria

ash

interna de 128 kbytes. Este tipo de memoria es no

voltil (NV) por lo que estos parmetros permanecen en ella aun cuando el dispositivo no est alimentado. Para leer o escribir dichos parmetros de conguracin usamos los comandos

zb_write_conguration

de la interfaz

Simple

zb_read_conguration

API.

Estos parmetros de conguracin se dividen en dos grupos: los especcos de un dispositivo y los especcos de la red. Para un correcto funcionamiento, los parmetros especcos de la red deben ser compartidos por todos los dispositivos que pertenezcan a una determinada red ZigBee. Los especcos

50

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

de un dispositivo pueden variar de un dispositivo a otro. En [12] podemos encontrar una descripcin pormenorizada de cada uno de estos parmetros, tamao en bytes, valor por defecto, etc. Aqu simplemente los nombraremos y daremos una breve descripcin de cada uno (ver tablas 3.7 y 3.8). Algunos de dichos parmetros hacen referencia a los mensajes de tipo POLL (sondeo). Es importante hacer incapi en la diferencia entre un comando POLL que, como hemos visto en las secciones anteriores, es un tipo de comando entre CC2480 y microprocesador, y un mensaje POLL entre dos dispositivos de la red ZigBee. Los mensajes POLL entre dispositivos de la red ZigBee son necesarios en las redes no balizadas. En estas redes, cuando un dispositivo nal debe enviar un paquete a su dispositivo padre no hay ningn problema puesto que ste, bien sea un

router o un coordinador, siempre tendr el sistema radio

encendido. El problema surge cuando el ujo de informacin es en sentido inverso. Como hemos dicho, los dispositivos nales entran en modo de bajo consumo cuando no necesitan enviar informacin. Por lo tanto el dispositivo padre nunca sabr con certeza si un dispositivo nal conectado a l estar activo. La solucin a este problema es el envo de un mensaje POLL del dispositivo nal hacia el padre. Este mensaje sirve para preguntar al padre si hay informacin a la espera de ser transmitida en el sentido padre-hijo. Resumiendo, cuando un dispositivo nal tenga informacin para su dispositivo padre simplemente la enviar. Cuando un dispositivo padre tenga informacin para un dispositivo nal conectado a l, deber esperar que dicho dispositivo nal le enve un mensaje POLL y en ese momento enviar el paquete de informacin.

Parmetro ZCD_NV_STARTUP_OPTION ZCD_NV_LOGICAL_TYPE ZCD_NV_POLL_RATE

Descripcin Controla opciones de inicio. Coordinador (0),

router

(1) o dispositivo nal (2)

Si el dispositivo es un dispositivo nal se despertar con la frecuencia indicada por este parmetro (en ms) para comprobar si su padre tiene informacin para l.

ZCD_NV_QUEUED_POLL_RATE

Si el dispositivo nal realiza un sondeo a su padre y ste tiene informacin para l, se vuelve a sondear una vez ms con un intervalo menor. Este parmetro, expresado en ms, indica dicho intervalo.

ZCD_NV_RESPONSE_POLL_RATE

Si el dipositivo nal enva un paquete de datos al padre puede comprobar si hay una respuesta pasado un intervalo de tiempo. Este parmetro, expresado en ms, indica dicho intervalo.

ZCD_NV_POLL_FAILURE_RETRIES ZCD_NV_INDIRECT_MSG_TIMEOUT ZCD_NV_APS_FRAME_RETRIES ZCD_NV_APS_ACK_WAIT_DURATION ZCD_NV_BINDING_TIME ZCD_NV_USERDESC

Mximo nmero de intentos de reenvo de informacin a un dispositivo padre. Tiempo mximo en ms durante el cual un padre almacenar datos para enviar a un dispositivo hijo. Nmero de veces que se reintentar el envo de un paquete si el

ack

a nivel de aplicacin falla.

Tiempo en ms que esperar un dispositivo con

ack

a nivel de aplicacin activado a dicha conrmacin. Tiempo mximo en ms que un dispositivo esperar la respuesta a un intento de vinculacin (

binding ).

Parmetro a denir por el desarrollador.

Cuadro 3.7: Parmetros especcos de un dispositivo

3.1: KIT DE DESARROLLO EZ430-RF2480

51

Parmetro ZCD_NV_PANID ZCD_NV_CHANLIST ZCD_NV_PRECFGKEY ZCD_NV_PRECFGKEYS_ENABLE

Descripcin Identicador de la red PAN. Valor menor a 0x3FFF. Para indicar cualquier red se usa 0xFFFF. Listado de canales en los que el dispositivo puede funcionar. 128 bits para la clave de seguridad. Si este parmetro es TRUE se considera que todos los dispositivos de la red conocen la clave de seguridad. Si es FALSE el coordinador debe distribuirla.

ZCD_NV_SECURITY_MODE ZCD_NV_BCAST_RETRIES ZCD_NV_PASSIVE_ACK_TIMEOUT ZCD_NV_BCAST_DELIVERY_TIME

Indica si usamos o no seguridad. Mximo nmero de intentos de envo de un paquete

broadcast

sin recibir

ack.

Cantidad de tiempo (en unidades de 100 ms) que un dispositivo espera antes de retransmitir un paquete. Tiempo mximo (en unidades de 100 ms) que puede tardar un paquete

broadcast

en propagarse

por toda la red. ZCD_NV_ROUTE_EXPIRY_TIME Tiempo mximo (en segundos) que una ruta puede estar sin trco antes de marcarla como inutilizable. Cuadro 3.8: Parmetros especcos de la red

Consumo
Como ya hemos mencionado, el CC2480 trabaja en modo no balizado. En este modo, los dispositivos nales pueden activar el modo de bajo consumo cuando no estn enviando informacin. Por el contrario, tanto el coordinador como los

routers

deben estar siempre despiertos. Por despiertos se entiende que

deben tener el sistema radio encendido (a la escucha en este caso) y con el procesador CC2480 activo. Para el caso de tratarse de un dispositivo nal, el CC2480 entra en modo de bajo consumo automticamente. En la tabla 3.9, obtenida de la hoja de caractersticas del CC2480 [13], podemos ver el consumo de corriente para los principales modos de funcionamiento, incluyendo los modos de bajo consumo (LPM o

Low Power Modes


Modo

en ingls). Consumo 12,3 mA 26,7 mA 26,9 mA 0,5 0,3 Caractersticas Oscilador de cristal de 32 MHz activo Potencia de entrada -50 dBm Potencia de salida 0 dBm Osc. RC de 16 MHz y Osc. de cristal de 32 MHz inactivos Osc. de cristal de 32,768 kHz activo Todos los osciladores inactivos

CPU activa CPU activa y recibiendo CPU activa y transmitiendo LPM2 LPM3

A A

Cuadro 3.9: Consumo de corriente en el CC2480

52

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Segn el documento de noticacin de errata [16] de Texas Instruments, el CC2480 puede no entrar en el modo de bajo consumo en momentos en los que s debera hacerlo. Este fallo del procesador CC2480, que ser analizado en profundidad en el captulo 4, aumenta considerablemente el consumo.

Caractersticas del Transceptor


El sistema radio est completamente integrado en el CC2480. El transceptor, que trabaja en la banda de los 2,4 GHz, est basado en el diseo del CC2420. Como podemos ver en la hoja de caractersticas el integrado CC2480 transmite con una potencia igual a 0 dBm (1 mW), la cual supera el mnimo de -3 dBm especicado en el estndar 802.15.4 [10]. La sensibilidad, de -50 dBm, tambin mejora el mnimo de -20 dBm especicado en dicho documento. El tiempo de conmutacin entre los estados de recepcin y transmisin o viceversa es de 192 cumple con lo especicado en el estndar y visto en la expresin 2.2 de la seccin 2.3. Para una descripcin pormenorizada del esquema del transceptor y de sus propiedades se recomienda acudir a la hoja de caractersticas [13].

s.

Dicho valor

Conrmacin de recibo
de conrmacin de recibo:

Ack

Para los mensajes que no sean

ack

broadcast

(direccin corta destino distinta de 0xFFFF) hay dos tipos

a nivel de capa MAC o

ack

a nivel de aplicacin. El

est siempre activo en el CC2480. Esto quiere decir que el bit que indica si se requiere cabecera MAC (seccin 2.4.5) siempre vale 1. El

ack

ack de capa MAC ack dentro de la

a nivel de aplicacin, o punto a punto, lo gestiona

la subcapa APS y es opcional. Su uso conlleva un aumento en el consumo de corriente. Esta repercusin sobre el consumo ser analizada en el captulo 4.

Asignacin de direcciones
El CC2480 utiliza el mecanismo distribuido de asignacin de direccin corta descrito en la seccin 2.5.2. De acuerdo con el documento [17] el coordinador o los dispositivos hijo (Cm

routers

pueden tener un mximo de 20

= 20).

De ellos, un mximo de 6 pueden ser otros

routers (Rm = 6) y un mximo

de 14, dispositivos nales. La profundidad mxima de la red o distancia mxima entre un dispositivo y el coordinador es 5 (Lm valores de Cskip(d): Profundidad en la red, d 0 1 2 3 4 5 (=

= 5)1 .

En estas condiciones, y aplicando la expresin 2.3, tenemos los siguientes

Cskip(d)
5.181 861 141 21 1 0

Lm )

Cuadro 3.10: Cskip(d) en CC2480

1 Segn este documento de Texas Instruments L = 6. No obstante, tras comprobar en el laboratorio las direcciones m asignadas y el nmero mximo permitido de saltos desde un hijo hasta el coordinador, se ha deducido que dicho documento presenta un error y que Lm = 5.

3.1: KIT DE DESARROLLO EZ430-RF2480

53

En la gura 3.11 podemos ver, como ejemplo, cules son las direcciones asignadas dentro de una red con seis nodos. Como vimos en la seccin 2.5.2 cada de direcciones (de tamao

router

toma la primera direccin dentro del subgrupo

Cskip(d))

que se le ha asignado. Para asignar una direccin a un dispositivo

nal se utiliza la expresin 2.4 de la misma seccin. Para el hijo directamente conectado al coordinador (Direcpadre

= 0)

tendramos:

Direc1 = 0 + 5181 6 + 1 = 31087 (0x796F )


Para el dispositivo nal conectado al

(3.1)

router (Direcpadre = 1):


(3.2)

Direc1 = 1 + 861 6 + 1 = 5168 (0x1430)

Figura 3.11: Ejemplo de asignacin de direcciones en una red de 6 nodos formada con el CC2480

Seguridad
El integrado CC2480 tiene un bloque de cifrado AES-128 que realiza las tareas de seguridad especicadas en el estndar ZigBee y explicadas en la seccin 2.7. El uso o no de seguridad se indica al procesador CC2480 a travs de uno de sus parmetros de conguracin:

ZCD_NV_SECURITY_MODE.

Es lgico que se trate de un parmetro especco de la

red, y no especco de un dispositivo, puesto que debe tomar el mismo valor para todos los dispositivos que forman la red ZigBee. Si este parmetro es TRUE la red aplicar el mecanismo de seguridad. Por defecto,

ZCD_NV_SECURITY_MODE

toma el valor FALSE por lo que no se aplica el mecanismo de

seguridad. Si activamos el uso de seguridad en nuestra red debemos tener en cuenta que existen dos mtodos de distribucin de la clave. El primero asume que todos los dispositivos tienen precongurada la misma clave de seguridad. Esta clave comn debe ser indicada al CC2480 a travs del microprocesador. En el segundo mtodo nicamente el coordinador de red tiene precongurada esta clave de seguridad. As, deber transmitirla a cada uno de los dispositivos conectados a la red para que stos pueden aplicar mecanismos de seguridad. En este segundo mtodo hay un momento de vulnerabilidad justo cuando el coordinador distribuye la clave. En ese momento, un dispositivo que no pertenezca a la red pero que

54

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

escuche el canal puede obtener dicha clave. Por lo tanto este segundo mtodo de distribucin de clave slo debe ser utilizado si el desarrollador considera que el riesgo de intromisin no es demasiado alto. La eleccin de uno u otro mtodo se indica a los distintos dispositivos a travs de otro parmetro especco de la red,

ZCD_NV_PRECFGKEYS_ENABLE. Cuando este parmetro es TRUE, valor por ZCD_NV_PRECFGKEY


(16 bytes).

defecto, se utilizar el primer mtodo por lo que todos los dipositivos utilizarn la clave precongurada indicada por el parmetro especco de la red

En el captulo 4 estudiaremos el efecto sobre el consumo que tiene el uso de seguridad en la red.

3.1.3. MSP430
El

kit

eZ430-RF2480 hace uso de un microprocesador MSP430 como sistema de control del procesador

CC2480. Texas Instruments dispone de varios modelos dentro de la familia MSP430. La diferencia bsica

ash y RAM de que disponen. El modelo exacto de microprocesador que usa este kit es MSP430F2274. Este modelo dispone de 32 Kbytes + 256 bytes de memoria ash y 1
entre ellos es la cantidad de memoria Kbyte de memoria RAM. El MSP430 es un microprocesador RISC (

Reduced Instruction Set Computer )

de 16 bits. Los proce-

sadores RISC se basan en un nmero reducido de instrucciones que, para este caso, es de 27. Que el procesador sea de 16 bits implica que todos los registros y buses internos de comunicaciones estn formados por 16 bits. En esta seccin slo daremos un repaso general a las caractersticas del MSP430. Para obtener informacin de manera mas detallada se recomienda acudir a la gua de usuario [19] y a la hoja de caractersticas [20].

Arquitectura y funcionamiento bsico


La gura 3.12 muestra la arquitectura interna del MSP430. La CPU contiene 16 registros. El funcionamiento bsico es el siguiente: a una frecuencia dada, por ejemplo 1 MHz, se copia una instruccin desde la memoria

ash hasta un registro determinado y a continuacin se ejecuta. Un ejemplo simple sera

sumar dos registros y guardar el resultado en un tercero. El cdigo necesario para hacer que el microprocesador lleve a cabo estas tareas se escribe en ensamblador. No obstante, para agilizar y simplicar el diseo de aplicaciones se suelen usar compiladores que pasan nuestro cdigo de C o C++ a ensamblador de forma que el programador no tenga que involucrarse en procesos de muy bajo nivel. Este es el sistema que utilizamos en nuestro caso. Ms concretamente usamos un entorno de desarrollo conocido como IAR Embedded Workbench especialmente diseado para el trabajo con el microprocesador MSP430 [18]. Este entorno de desarrollo ser expuesto en la seccin 3.3.4 del presente captulo. Una vez compilado nuestro cdigo en C o C++ y, tras pasar de ensamblador a cdigo binario, se carga el resultado en la memoria

ash

de nuestro microprocesador. De esta forma, al encenderlo la CPU ejecuta la primera instruccin que

encuentra en dicha memoria. Para el caso particular de nuestro proyecto la aplicacin que cargamos en el MSP430 se llama ZASA, como ya hemos dicho, y ser explicada en la siguiente seccin.

3.1: KIT DE DESARROLLO EZ430-RF2480

55

Figura 3.12: Arquitectura interna del MSP430. Fuente: [19]

En cualquier aplicacin es muy comn necesitar esperar un tiempo determinado antes de realizar una cierta tarea. Para ello usamos las diferentes seales de reloj del MSP430. Este microprocesador posee una seal de reloj interna conocida como DCO (

digitally-controlled oscillator ).

Existen diferentes registros

dentro del microprocesador que generan interrupciones con frecuencias que son divisores de la frecuencia de la seal DCO. As, podemos obtener seales de reloj de 1, 8, 12 y 16 MHz dependiendo de a qu registro accedamos. Cuando queremos comunicarnos con un elemento exterior al microprocesador, como es el caso un botn, un sensor de luz o el propio CC2480, conectamos dicho dispositivo a uno de los pines de entrada/salida de que dispone el MSP430. El MSP430 debe ser programado de forma que un cambio en el valor digital de dicho pin genere una interrupcin y podamos actuar en consecuencia. Cuando generamos una interrupcin el microprocesador detiene la tarea que est realizando en ese momento y ejecuta un tipo de funcin denominada ISR (

Interrupt Service Routine ), que realiza una tarea especca relacionada

con dicha interrupcin. Una vez ejecutada la funcin ISR el microcontrolador puede seguir realizando sus anteriores tareas. El MSP430 tiene 40 pines (gura 3.13) de los cuales 4 realizan funciones de alimentacin del dispositivo, 2 son usados para testeo, 2 para conectar un reloj de cristal externo (no es el caso de eZ430-RF2480) y 32 pines para conexiones digitales con otros dispositivos. Estos 32 pines de entrada salida se agrupan en cuatro puertos de 8 pines cada uno. La nomenclatura es Px.y donde x indica el puerto e y indica la posicin del pin dentro de ese puerto. Para poder trabajar con estos pines se usan los siguientes registros: PxDIR.y dene la direccin del puerto: salida si PxDIR.y vale 1 y entrada si vale 0. Ejemplo: P1DIR = 0b11110000 P1.7 sean de salida.

2 hace que los pines P1.0 a P1.3 sean de entrada y los pines P1.4 a

2 Igual

que la expresin 0xz indica que z est representado en hexadecimal, 0bz indica que z est expresado en binario

56

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

PxOUT.y da un valor al pin Px.y si ste es de salida. PxIN.y lee el valor del pin Px.y si ste es de entrada. PxIE.y habilita las interrupciones en el puerto Px.y. Por ltimo decir que el MSP430 tambin tiene incorporado un conversor analgico-digital (ADC). Como veremos ms adelante, la aplicacin ZASA har uso de este conversor para digitalizar los valores del voltaje de alimentacin y del sensor interno del MSP430.

Figura 3.13: Distribucin de pines en MSP430. Fuente: [20]

Consumo
La familia MSP430 est orientada a conseguir un bajo consumo. Es por ello que resulta idnea para el control de transceptores y procesadores ZigBee/802.15.4. Siempre que el microprocesador est esperando una interrupcin es de vital importancia apagar los relojes que no estemos usando si queremos disminuir el consumo. Para ello se denen cuatro modos de bajo consumo (LPM) que se diferencian en el nmero de relojes de que prescinde cada uno. Podemos ver dichos modos de bajo consumo en la tabla 3.11. El consumo de corriente del microprocesador es proporcional tanto a la frecuencia de trabajo como a la tensin de alimentacin. As, para los valores representados en la tabla, se ha supuesto una tensin de alimentacin de 3 V y una frecuencia de trabajo de 8 MHz en el modo activo, que son los valores con los que trabajaremos en nuestro proyecto. Para unos valores de consumo ms detallados se recomienda acudir a la hoja de caractersticas [20]. MCLK ( (

Submain Clock )

es un reloj secundario

Main Clock ) es el reloj principal usado por la CPU, SMCLK y ACLK (Auxiliary Clock ) es un reloj auxiliar. Podemos ver su

distribucin en la arquitectura interna anteriormente mostrada (gura 3.12).

3.1: KIT DE DESARROLLO EZ430-RF2480

57

En la prctica slo dejando activo el reloj auxiliar ACLK, que despierta el integrado MSP430 despus de un determinado intervalo de tiempo, es suciente. Esto se consigue usando el modo LPM3. Modo Activo LPM0 Consumo 2,8 90 Caractersticas CPU activada Todos los relojes activos CPU desactivada ACLK y SMCLK activos MCLK inactivo LPM1 90A LPM0 + generador de continua de DCO inactivo si DCO no se usa durante el modo activo LPM2 25A CPU desactivada MCLK y SMCLK inactivos generador de continua de DCO activo ACLK activo LPM3 1A CPU desactivada MCLK y SMCLK inactivos generador de continua de DCO inactivo ACLK activo LPM4 0,1A CPU desactivada MCLK, SMCLK y ACLK inactivos generador de continua de DCO inactivo Oscilador de cristal inactivo Cuadro 3.11: Modos de bajo consumo en el microprocesador MSP430

mA A

3.1.4. Esquemtico de conexin entre CC2480 y MSP430


En la gura 3.14 mostramos el esquemtico de conexin entre CC2480 y MSP430. Las principales conexiones entre ellos son: Comunicacin SPI. Se realiza conectando los pines P3.0, P3.1, P3.2 y P3.3 del MSP430 a los pines SS, SI, SO y C del CC2480 respectivamente. Control de activacin. Se conectan los pines P2.6 y P3.6 a SRDY y MRDY respectivamente. Conguracin. Los pines P4.0 y P4.1 controlan la conguracin del CC2480 mediante los pines CFG0 y CFG1. Aparte de las conexiones entre ambos dispositivos el MSP430 se conecta a dos diodos LED mediante los pines P1.0 y P1.1, a un botn mediante el pin P1.2 y a un sensor de luz a travs de los pines P2.0 y P2.1. Adems, tambin permite la conexin a 5 de sus pines GPIO (P2.2, P2.3, P2.4, P4.4 y P4.5). Por ltimo, los pines P3.5 (RX) y P3.4 (TX) estn controlados por el conector USB y es gracias a ellos, y usando una conexin UART, que podemos cargar nuestra aplicacin en el microprocesador. Por otra parte, como ya se ha mencionado, el CC2480 se conecta a dos osciladores de cristal de 32 MHz y 32,768 kHz (siendo el segundo de estos opcional) y a una antena tipo chip.

58

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Figura 3.14: Esquemtico de conexin entre CC2480 y MSP430. Fuente: [21]

3.1: KIT DE DESARROLLO EZ430-RF2480

59

3.1.5. Aplicacin de ejemplo ZASA


ZASA, o

ZigBee Accelerator Sample Application

por sus siglas en ingls, es la aplicacin que viene

cargada por defecto en el microcontrolador MSP430. Su objetivo es demostrar de una manera simple cmo funciona una red basada en tecnologa ZigBee/802.15.4. Bsicamente lo que hace esta aplicacin es centralizar y monitorizar la lectura de unos sensores de temperatura y voltaje. ZASA nos proporciona dos puntos de acceso a nivel de aplicacin: sumidero y fuente. La funcin de sumidero slo la puede realizar el coordinador. Su tarea ser recibir las lecturas de temperatura y voltaje que las fuentes le proporcionan. La funcin de fuente la realizan los

routers

los dispositivos nales. Por defecto, cada 10 segundos la fuente enva los datos al sumidero. Si la fuente, bien sea un

router

o un dispositivo nal, est directamente conectada al coordinador el envo nicamente

debe efectuar un salto. Si por el contrario la fuente est conectada a un datos y encaminarlos hacia el coordinador por la ruta correspondiente.

router, ste tendr que recibir los

Como hemos dicho, el procesador CC2480 est preprogramado para realizar las tareas de las capas inferiores del protocolo ZigBee/802.15.4 por lo que no tenemos acceso a l. Por contra, podemos modicar la aplicacin cargada en el MSP430 y situada en lo alto de la pila de protocolos (ZASA en este caso). El mecanismo para modicar dicha aplicacin, como hemos mencionado anteriormente, es a travs del entorno de desarrollo IAR Embedded Workbench. En los apartados siguientes comenzaremos explicando el funcionamiento de ZASA. Respecto a los perifricos, ZASA hace uso del pulsador conectado al MSP430. Como veremos en el siguiente punto, lo utiliza como mecanismo de conguracin del dispositivo. Tambin hace uso de los dos diodos LED, uno verde y otro rojo, de que se dispone. Mediante ellos sabremos si el dispositivo ha sido congurado como un dispositivo nal, paquete de datos.

router

o coordinador y cundo se ha transmitido o recibido un

Funcionamiento
El

kit

de desarrollo eZ430-RF2480 proporciona tres dispositivos FFD por lo que, potencialmente,

todos pueden ser congurados como coordinador,

router

o dispositivo nal. Por supuesto, al programar

una aplicacin ZigBee podemos denir de antemano de qu tipo ser nuestro dispositivo. Sin embargo ZASA nos da la oportunidad de elegir si un dispositivo ser coordinador,

router

o dispositivo nal en

pleno proceso de ejecucin. Esto se consigue gracias al uso del pulsador que incorpora la tableta. Cuando encendemos un dipositivo ste queda a la espera. El usuario puede reconocer este estado porque ambos LED, tanto el rojo como el verde, parpadean una vez por segundo. En el momento que el usuario presiona una vez el botn se inicia una ventana de espera que dura dos segundos. Si se vuelve a pulsar una segunda vez el botn dentro de ese margen de tiempo, ZASA interpretar que el dispositivo debe comportarse como un dispositivo nal. Si dentro de esos dos segundos no volvemos a presionar el botn, el dispositivo se congurar como

router

e intentar conectarse a un coordinador. Si no encuentra un coordinador, el

propio dispositivo funcionar como coordinador e inicializar la red. Cuando un dispositivo funciona como coordinador tendr siempre encendido el diodo LED rojo, cuando funciona como

router

tendr siempre

encendido el verde y cuando lo hace como dispositivo nal har parpadear el LED verde una vez por segundo. Como hemos explicado en la seccin 2.5.2 un coordinador o

router

puede permitir o no que otros

60

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

dispositivos se asocien a l. La manera que ZASA proporciona para modicar esta opcin es utilizando de nuevo el botn. Cuando un dispositivo se congura como coordinador o como

router

tiene activado el

permiso de asociacin por defecto. Si pulsamos el botn de nuevo desactivaremos dicho permiso por lo que un dispositivo que intente conectarse a l ser rechazado. Si pulsamos el botn otra vez se volver a activar el permiso de asociacin. Los diodos LED nos darn informacin de cmo est congurado dicho permiso. Cuando el permiso de asociacin est desactivado, el LED (rojo para el coordinador y verde para el

router

como hemos dicho) pasar de estar continuamente encendido a parpadear una vez por segundo.

Una vez que un dispositivo que funcione como fuente se ha conectado correctamente al coordinador, bien directamente o a travs de un padre, comienza a enviar datos de forma peridica cada 10 segundos. Los datos que enva son la temperatura del sensor interno del MSP430 y el valor de la tensin de alimentacin. El tamao es de un byte para la temperatura y otro para el voltaje. Cuando un dispositivo nal o un

router

envan un paquete de datos hacia el coordinador, el LED verde del dispositivo parpadea una vez.

Cuando el coordinador recibe el paquete de datos parpadea una vez su LED rojo. En la tabla 3.12 podemos ver un resumen del estado de los diodos LED para los distintos casos de funcionamiento. Tipo de dispositivo Sin congurar Coordinador (sumidero) LED rojo Parpadeando Permiso de conexin: Encendido Sin permiso de conexin: Parpadeando Envo de datos: Un parpadeo Envo de datos: Un parpadeo Permiso de conexin: Encendido Sin permiso de conexin: Parpadeando Parpadeando LED verde Parpadeando Datos recibidos: Un parpadeo

Router

(fuente) Dispositivo nal (fuente)

Cuadro 3.12: Estado de los diodos LED de acuerdo con el programa ZASA

Un dispositivo nal pasar la mayor parte de su tiempo en modo de bajo consumo, despertando nicamente para enviar los datos hacia el cordinador cada 10 segundos. El coordinador y los

routers

deben estar siempre activos y con el sistema radio encendido puesto que en cualquier momento puede llegarles un paquete de datos o una solicitud de asociacin. En la gura 3.15 podemos ver la mquina de estados de ZASA. Como ya sabemos, el

kit

eZ430-RF2480 viene incorporado con un adaptador USB. Dicho adaptador

proporciona una conexin UART entre el MSP430 y un PC. Idealmente el coordinador debe ir conectado a este adaptador lo que permitir la monitorizacin en un PC los datos enviados por todos los dispositivos que funcionen como fuente. El programa utilizado para dicha monitorizacin que nos proporciona Texas Instuments se llama

Sensor Monitor. Aparte de la posibilidad de monitorizar, tambin se puede aprovechar

esta conexin UART para comunicarnos de forma ms general con el microprocesador en tiempo de ejecucin. De hecho, cuando un dispositivo est conectado al adaptador USB, ZASA enva por el puerto serie UART una copia de todos los comandos intercambiados entre los integrados MSP430 y CC2480. Adems, tambin podremos hacer que el MSP430 enve un comando determinado hacia el CC2480. La aplicacin que se emplea para este propsito se llama Z-Tool. Tanto

Sensor Monitor

como Z-Tool sern

expuestos en la seccin 3.3 de este captulo. Por otra parte, en el apndice que se incluye al nal de este texto explicaremos cmo podemos utilizar Visual Basic .NET para desarrollar una aplicacin propia que

3.1: KIT DE DESARROLLO EZ430-RF2480

61

nos permita realizar tareas similares a las de

Sensor Monitor

y Z-Tool

Figura 3.15: Mquina de estados de la aplicacin de ejempolo ZASA. Fuente: [22]

Ejemplo del funcionamiento de una red ZigBee con dispositivos ejecutando ZASA
A continuacin veremos un ejemplo de inicializacin de red, asociacin de dispositivos y funcionamiento general de una red cuyos dispositivos estn ejecutando ZASA. Puesto que el

kit

eZ430-RF2480 slo nos

proporciona tres unidades, nos limitaremos a mostrar una red con tres nodos. La manera de aadir ms dispositivos puede inferirse a partir de este ejemplo. Conectamos la tableta con el adaptador USB a nuestro PC. Ambos diodos comenzarn a parpadear indicando que el dispositivo debe ser congurado. Pulsamos una vez el botn y esperamos primero a que se agote la ventana de dos segundos y luego a que el CC2480 realice un escaneo activo a la bsqueda de una red existente. Puesto que no encuentra ninguna dentro de un tiempo determinado

62

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

por la constante APP_JOIN_TIME (que ser expuesta ms adelante), ZASA congura el dispositivo como coordinador de red y el LED rojo se enciende. Nuestra red est ahora formada nicamente por un coordinador. Este dispositivo tiene siempre el sistema radio a la escucha, preparado para recibir peticiones de asociacin y datos. Su consumo es mayor que el de un dispositivo nal pero, al estar alimentado a travs del puerto USB, esto no supone un gran problema.

Figura 3.16: Red formada por un coordinador.

Conectamos otra tableta a la batera y pulsamos el botn una nica vez. Pasada la ventana de dos segundos el CC2480 realiza un escaneo activo y encuentra que ya existe una red. El dispositivo toma entonces la funcionalidad de

router,

enciende el LED verde y se intenta conectar al coordinador.

Este proceso se realiza exitosamente puesto que el coordinador acepta peticiones de asociacin. Es necesario destacar que aqu tambin se realiza la vinculacin entre los puntos de acceso de ambos dispositivos (

binding ).

Para poder vincularse ambos dispositivos deben estar ejecutando la

misma aplicacin (ZASA en este caso). Puesto que todo es correcto, se realiza la vinculacin entre el sumidero (coordinador) y fuente (

router ).

A partir de ahora, el

router

enviar una medida de

temperatura y otra de voltaje hacia el coordinador cada 10 segundos. Cada vez que el

router

enve

un paquete de datos parpader su LED rojo. Cuando el coordinador los reciba parpadear su LED verde. Aqu es necesario sealar que el

router

est siempre en modo activo y con el sistema de

radio conectado por si otro dispositivo intenta asociarse a l. En esta conguracin la batera no aguantara mucho tiempo por lo que se recomienda alimentar el dispositivo de forma cableada.

Figura 3.17: Coordinador y

router

Conectamos ahora la tercera tableta a la batera y pulsamos el botn dos veces. El dispositivo se congura como dispositivo nal e intenta conectarse a la red. Si el coordinador tiene activado el permiso de conexin el dispositivo nal se conectar a l (gura 3.18a). Si antes de conectar el dispositivo nal pulsamos una vez el botn del coordinador, este desactivar el permiso de conexin y el dispositivo nal no tendr ms remedio que conectarse al

router

(gura 3.18b). En cualquiera

de los dos casos el dispositivo nal envir los datos cada 10 segundos hacia el sumidero, haciendo parpadear el LED rojo. Puesto que el dispositivo nal apaga el sistema radio cuando no est enviando datos, su consumo es muy bajo y la batera presentar una larga vida til.

3.1: KIT DE DESARROLLO EZ430-RF2480

63

(a) Dispositivo nal conectado al coordinador

(b) Dispositivo nal conectado al router

Figura 3.18: Red compuesta por 3 dispositivos

Estructuracin del cdigo


ZASA est escrito en lenguaje C y pensado para ser compilado y cargado en el MSP430 usando el entorno de desarrollo IAR Embedded Workbench. La versin gratuita de dicho entorno de desarrollo tiene un lmite de 4 Kbytes para el cdigo a compilar y cargar en el microprocesador. As, ZASA ha sido diseado para no sobrepasar dicho lmite y ocupa poco menos de 4 Kbytes. El cdigo de ZASA se divide en los siguientes mdulos:

APP (Aplicacin).

Implementa la funcionalidad a ms alto nivel. Se encarga de hacer que el

dispositivo funcione segn lo descrito en el punto anterior.

HAL (Hardware Abstraction Layer ). Esta parte del cdigo se encarga de controlar al MSP430. Gestiona las conexiones SPI y UART, los relojes software, modos de funcionamiento (activo, LPM)
y dispositivos externos conectados al MSP430 como el pulsador o los LED.

MT

(Monitor Test ).

Realiza las funciones necesarias para poder comunicar el MSP430 con el

PC a travs de una conexin UART. MT enva una copia de todos los comandos intercambiados entre MSP430 y CC2480 a travs de la conexin UART. As, podremos ver en nuestro PC todos los comandos que se intercambian dichos dispositivos. Adems de esto el mdulo MT tambin nos permite ordenar al MSP430, desde el PC, el envo de un comando determinado al CC2480. Los programas cdigo.

Sensor Monitor

y Z-Tool se comunican con el microprocesador gracias a esta parte del

SAPI (Simple API).


captulo.

Gestiona la interfaz

Simple

API vista en la seccin 3.1.2 de este mismo

ZACCEL (Z-Accel).

Controla el intercambio de comandos entre MSP430 y CC2480 actuando

como maestro y esclavo, respectivamente, a travs de la conexin SPI.

64

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

3.2.

Herramientas de instrumentacin

3.2.1. Osciloscopio Tektronix TDS 3012B


Como dijimos en la seccin 1.3 del captulo 1 el objetivo de nuestro proyecto es medir el consumo en nodos ZigBee/802.15.4. Para realizar dicho estudio mediremos la tensin que cae sobre una resistencia conectada entre la fuente de alimentacin y el dispositivo ZigBee. Aplicando la ley de Ohm deduciremos la corriente que circula por dicha resistencia y as el consumo en cada momento del nodo ZigBee/802.15.4 en cuestin. As, teniendo en cuenta que los estados cambian muy rpidamente, el uso de un osciloscopio digital resulta de gran inters.

Figura 3.19: Tektronix TDS 3012B. Fuente: [23]

A continuacin resumimos las principales particularidades del modelo utilizado, el Tektronix TDS 3012B, obtenidas a partir de su hoja de caractersticas [23]: Ancho de banda de 100 MHz. Frecuencia de muestreo mxima: 2 canales. Resolucin vertical: 9 bits. Sensibilidad vertical: 10 mV/div a 10 V/div. Precisin vertical:

Gmuestras/s.

2 %.

Rango de la base de tiempos: 4 ns/div a 10 s/div. Impedancia de entrada a elegir entre 1 Conexin Ethernet. Pantalla a color.

y 50

3.2: HERRAMIENTAS DE INSTRUMENTACIN

65

3.2.2. Fuente de alimentacin Tektronix PS2520G


El

kit

eZ430-RF2480 proporciona dos conectores para la alimentacin mediante bateras. No obstante,

es conveniente reemplazarlos por una fuente de alimentacin indendiente para asegurar la estabilidad y continuidad de dicha alimentacin. En la realizacin de nuestro proyecto hemos usado la fuente Tektronix PS2520G.

Figura 3.20: Tektronix PS2520G

Sus principales propiedades, obtenidas a partir de su hoja de caractersticas [24], son: Dos salidas con un rango de 0 a 26 V y 0 a 1,5 A. Una salida con un rango de 0 a 6 V y 0 a 3 A. Precisin de voltaje: 0,05 % + 25 mV. Precisin de corriente: 0,2 % + 10 mA. Conexin GPIB (

General Purpose Interface Bus ).

Pantalla LED digital de 4 dgitos.

3.2.3. Multmetro HP34401A


A la hora de calcular la tensin que cae sobre la resistencia que colocamos entre la fuente de tensin y el nodo ZigBee/802.15.4 alternaremos entre dos casos generales: cuando el nodo est en modo bajo consumo y cuando est transmitiendo/recibiendo informacin (activo). Cuando el nodo est en modo de bajo consumo el valor de la tensin que cae sobre la resistencia toma un valor muy pequeo, como veremos en la seccin 4.3.3 del captulo 4. As, necesitamos un instrumento con ms precisin que el osciloscopio para realizar dicha medida de tensin. La solucin es utilizar un multmetro, en su funcionalidad como voltmetro, que para nuestro caso ser el HP34401A de Hewlett-Packard.

Figura 3.21: HP34401A

66

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

En la hoja de caractersticas [25] podemos ver todas las propiedades de este multmetro. Aqu nos centraremos en aquellas que lo caracterizan en su funcionamiento como voltmetro en DC. Caractersticas:

Mnimo rango de tensin en DC: 100.0000 mV.

Precisin para dicho rango: 0.0030 mV.

Resistencia de entrada: 10

Conexin GPIB.

3.2.4. CC2520 Evaluation Module Kit y SmartRF05 Evaluation Board


A la hora de realizar el estudio sobre el consumo de potencia usando el

kit

eZ430-RF2480 es de gran

utilidad analizar los paquetes de datos en el momento de ser transmitidos. Para ello utilizaremos un

Snier. Este Snier se compone por una parte hardware (la aqu expuesta) y una parte software. El software nos lo proporciona gratuitamente Texas Instruments y ser descrito en la seccion 3.3. El hardware est compuesto por el modulo de evaluacin CC2520 que est formado bsicamente por
dos transceptores CC2520 ZigBee/802.15.4 de Texas Instruments y por las antenas correspondientes. Estos dispositivos sern los que escuchen e interpreten en tiempo real los paquetes de datos que se intercambian los distintos nodos de nuestro

kit

eZ430-RF2480.

Uno de los transceptores CC2520 estar conectado a la placa SmartRF05EB, que ser la que nos permitir visualizar los datos al estar conectada por USB con el PC. Para ms informacin sobre el sistema CC2520EMK es recomendable acudir a la hoja de caractersticas del transceptor CC2520 [26] y la gua de inicio rpido del

kit

CC2520EMK [27]. Respecto a la placa

SmartRF05Eb encontraremos ms informacin en su gua de usuario [28].

(a) CC2520EMK. Fuente: [28]

(b) SmartRF05EB. Fuente: [29]

Figura 3.22: CC2520EMK y SmartRF05EB

3.3: HERRAMIENTAS SOFTWARE

67

3.3.

Herramientas software

3.3.1. Sensor Monitor


Sensor Monitor
es una aplicacin diseada para trabajar conjuntamente con los nodos del

kit

eZ430-

RF2480 cuando estos ejecutan ZASA. Esta aplicacin para PC nos permite monitorizar los datos recibidos por el sumidero (coordinador) y procedentes de las fuentes (

routers

y dispositivos nales).

Es una aplicacin gratuita que nos proporciona Texas Instruments como herramienta para la monitorizacin. En [29] vemos los pasos necesarios para instalarla as como una descripcin en profundidad de su funcionamiento.

kit

Sensor Monitor

es una aplicacin muy simple que puede resultar muy til para familiarizarse con el

eZ430-RF2480. En la gura 3.23 podemos ver la ventana principal de

la red est formada por 6 nodos (hemos utilizado dos en color rojo, los

routers

kits

Sensor Monitor. En este caso,

eZ430-RF2480). El coordinador se representa

en azul y los dispositivos nales en dorado. Se ha congurado el dispositivo que

utiliza el adaptador USB como coordinador de red o sumidero. Este dispositivo ser el que se comunique con

Sensor Monitor Sensor Monitor

a travs de la conexin UART entre MSP430 y PC. El mdulo MT del cdigo de

ZASA es el encargado de gestionar el intercambio de informacin entre el microprocesador y el PC. Vemos que nos permite visulizar los datos que recibe el coordinador. As, podemos ver cul es

la temperatura y el voltaje que lee cada nodo, su direccin corta y la topologa general de la red.

Figura 3.23: Monitorizacin de una red de 6 dispositivos ejecutando ZASA

3.3.2. Z-Tool
Como hemos explicado en la seccin 3.1.2 de este captulo, MSP430 y CC2480 se intercambian una serie de comandos pertenecientes a cuatro tipos de interfaces (SYS, uso de la conexin UART entre MSP430 y PC para:

Simple API, AF y ZDO). Z-Tool hace

68

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Visualizar por pantalla los comandos recibidos por el MSP430. Estos comandos siempre sern tipo AREQ (el CC2480 inicia la comunicacin con el MSP430) o tipo SRSP (CC2480 responde a una peticin por parte del MSP430). Hacer que el MSP430 enve un comando determinado hacia el CC2480. Podremos, por ejemplo, enviar el comando resetee. En genearal, Z-Tool est pensado para trabajar con cualquier dispositivo que implemente la pila de protocolos Z-Stack de Texas Instruments. En la imagen 3.24 vemos la aplicacin Z-Tool en ejecucin. Sus distintas partes son:

zb_systemreset

de la interfaz

Simple

API para hacer que el integrado CC2480 se

Monitorizacin. En la subventana derecha se muestran todos los comandos, AREQ o SRSP, que
recibe el MSP430 por parte del CC2480 (<RX>, en azul). Cuando el usuario hace que el MSP430 enve un comando al CC2480 ste tambin aparece por pantalla (<TX>, en rojo).

Seleccin de comando. Cuando queremos enviar un comando determinado al CC2480 debemos


previamente seleccionarlo en la subventana de seleccin de comando. En dicha ventana podemos ver todos los comandos agrupados segn el tipo de interfaz: SYS,

Simple

API, AF o ZDO.

Conguracin de comando.

Algunos comandos deben ser congurados antes de ser enviados.

Por ejemplo, imaginemos que queremos leer un parmetro de conguracin del CC2480. Para ello el MSP430 debe enviar el comando

zb_read_conguration

al CC2480. Antes de enviar dicho comando

debemos congurarlo para indicar qu parmetro queremos leer (tipo lgico, PAN ID, y dems parmetros vistos en la seccin 3.1.2).

Figura 3.24: Z-Tool

3.3: HERRAMIENTAS SOFTWARE

69

Es importante destacar que, mientras

Sensor Monitor

est pensado para trabajar nicamente con el

coordinador (conectado a travs del adaptador USB), Z-Tool puede comunicarse con cualquier tipo de dispositivo. As, aunque no sea recomendable mantener al coordinador alimentado por bateras, podemos usar esta conguracin y conectar un dispositivo nal al PC a travs del adaptador USB.

3.3.3. Packet Snier


Como hemos mencionado en la seccin anterior, el CC2520

Evaluation board

Evaluation Module Kit

y el SmartRF05

necesitan una aplicacin en nuestro PC para poder visualizar los paquetes interceptados

en el aire. Esta aplicacin es

Packet Snier, un programa gratuito suministrado por Texas Instruments. Packet Snier
diferencia la parte fsica, MAC, de red y de aplicacin.

Gracias a esta aplicacin podemos monitorizar cualquier paquete interceptado por el transceptor CC2520. Dentro de una trama,

Aparte de esto tambin numera todas las tramas, indica el tiempo en ms entre una trama y otra, y, por ltimo, seala la intensidad en dBm con que se recibe la seal. En conjunto, CC2520EMK, SmartRF05EB y

Packet Snier

representan una potente herramienta

para el estudio de nuestra red. Como veremos ms adelante, su uso nos aclara muchos aspectos del funcionamiento de nuestra red ZigBee/802.15.4. En la gura 3.25 vemos la pantalla principal de

Packet Snier.

Remitimos al lector al manual de

usuario de esta aplicacin [30] para conocer ms en detalle su conguracin y funcionamiento.

Figura 3.25:

Packet Snier

3.3.4. IAR Embedded Workbench


IAR Embedded Workbench V4.11B es un entorno de desarrollo especialmente pensado para la familia de microprocesadores MSP430 de Texas Instruments. Con esta herramienta compilamos el cdigo (escrito en lenguaje C) y posteriormente lo cargamos en el microprocesador. Texas Instruments nos ofrece el cdigo

70

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

fuente de ZASA de manera gratuita por lo que, usando este entorno de desarrollo, podemos modicarlo y cargarlo en el microprocesador cuantas veces veamos oportuno. Como ya hemos dicho con anterioridad, IAR ofrece una versin gratuita de este producto que limita el cdigo compilado a 4 Kbytes. ZASA fue creado pensando en cumplir con dicha limitacin. Es por ello que su tamao es prcticamente de 4 Kbytes. El Departamento de Tecnologa Electrnica de la Universidad de Mlaga dispone de la versin completa de IAR Embedded Workbench por lo que, afortunadamente, no tenemos ningn lmite ms all del propio espacio de memoria que ofrece el microprocesador MSP430. Como cualquier otro entorno de desarrollo, IAR Embedded Workbench est compuesto principalmente por la ventana donde escribir el cdigo fuente, el espacio de trabajo y la ventana de depuracin (gura 3.26). Para una descripcin detallada del funcionamiento de este entorno de desarrollo se recomienda acudir al tutorial ocial de IAR [31].

Figura 3.26: IAR Embedded Workbench

3.3.5. MATLAB
A la hora de realizar el estudio sobre el consumo de potencia es necesario analizar las capturas de pantalla del osciloscopio. Utilizamos MATLAB para leer estos datos de forma automtica. En este texto asumiremos que el lector conoce de antemano esta aplicacin por lo que prescindiremos de dar una descripcin ms detallada de ella (que puede encontrar, en cualquier caso, en [32]). El osciloscopio Tektronix TDS 3012B guarda los archivos de captura de pantalla en formato de hoja de clculo (.csv). Usando MATLAB, hemos creado un

script

que nos permite cargar y representar estos

datos de forma sistemtica. Adems, tambien podemos calcular y representar la media de dicho consumo de corriente para un intervalo dado. En la gura 3.27 vemos un ejemplo de una captura de pantalla y la media asociada. El eje de las abcisas representa el tiempo en ms y el de las ordenadas la corriente en

3.4: CIRCUITO DE MEDIDA EMPLEADO

71

mA. Utilizamos la expresin 3.3 para calcular la corriente media consumida por un dispositivo, donde representa la ensima muestra de corriente y

I[n]

el nmero total de muestras.

Figura 3.27: Representacin de una medida de corriente con MATLAB

IM edia =

N n=1

I[n]

(3.3)

3.4.

Circuito de medida empleado

En esta seccin se explicar el esquema del circuito que se ha usado para medir la corriente consumida por los nodos de nuestro

kit eZ430-RF2480. En primer lugar hablaremos del esquema general de medida. A

continuacin justicaremos la inclusin de un amplicador y de un ltro paso bajo a dicha conguracin.

3.4.1. Esquema general


El esquema general para medir el consumo de corriente en un nodo se representa en la gura 3.28. Como vemos, utilizaremos una resistencia entre la alimentacin y el nodo sobre la cual se realiza la medida.

Figura 3.28: Esquema general

72

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Para calcular el consumo de potencia (gura 3.29) utilizaremos la siguiente expresin, por todos conocida:

P = I V V
representa la tensin en bornas del nodo,

(3.4)

la corriente entrante. La relacin entre

Valim

(tensin

proporcionada por la fuente, tal y como se observa en la gura 3.29) sigue la siguiente expresin:

Valim = V + R I
Si hacemos

(3.5)

RI

entonces:

Valim

(3.6)

La alimentacin de la tableta es de 3 V. Por otra parte, y como veremos en el siguiente captulo, toma valores mximos del orden de los 40 mA luego:

R 40 mA

3V

(3.7)

75

(3.8)

Llegamos pues a la conclusin de que un buen valor para la resistencia colocada entre la fuente de alimentacin y el nodo ZigBee/802.15.4 sera:

R=1

(3.9)

As, se podra considerar que la de tensin que cae en nuestro nodo es despreciable frente a la que nos proporciona la fuente de alimentacin. Tomando en cuenta entonces las expresiones 3.4 y 3.6 llegamos a la siguiente relacin lineal entre la potencia consumida por nuestro nodo y la corriente que circula por la resistencia

R: P = I Valim
(3.10)

En conclusin podemos decir que midiendo nicamente la corriente que circula por nuestra resistencia tenemos una medida del consumo de potencia del dispositivo. Para calcular la corriente voltaje que cae en

medimos el

utilizando el osciloscopio y aplicamos la ley de Ohm.

Figura 3.29: Esquema para la medida del consumo de potencia

3.4: CIRCUITO DE MEDIDA EMPLEADO

73

3.4.2. Amplicador
Del apartado anterior se puede deducir que si que el osciloscopio debera ser capaz de leer es:

Imax

40

mA y

R=1

entonces el voltaje mximo

Vmax = Imax R = 40 mV

(3.11)

Este valor no es de un orden muy superior a la sensibilidad mxima del osciloscopio, que es de 1 mV/div. Por este motivo y para mejorar adems la relacion seal a ruido, es deseable el uso de un amplicador entre nuestro circuito y el osciloscopio. Se ha elegido para ello el amplicador INA195 de Texas Instruments [33]. Este amplicador est especcamente pensado para ser conectado a una resistencia de un valor pequeo, dando a la salida un voltaje 100 veces mayor al que cae en ella (A amplicador.

= 100

V V ). En la gura 3.30 vemos el esquema de dicho

Figura 3.30: Amplicador INA195 de Texas Instruments. Fuente: [33]

3.4.3. Filtro paso bajo


Para la implementacin del ltro utilizaremos la conguracin de primer orden que nos propone Texas Instruments en [33] (gura 3.31). El ltro se coloca antes del amplicador, en lugar de a su salida, para aprovechar la baja impedancia de salida del INA195 (1.5 conguracin est formada por dos resistencias idnticas del INA195 sea simtrica, y por un condensador

segn la hoja de caractersticas). Esta de forma que la entrada a las patillas

RF ILT ,

CF ILT .

74

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Figura 3.31: INA 195 conectado a un ltro paso bajo. Fuente: [33]

Figura 3.32: Filtro Paso Bajo de primer orden

La expresin 3.12 calcula la frecuencia de corte en funcin de los valores de

RF ILT

CF ILT .
(3.12)

fc =

1 2 (2RF ILT ) CF ILT

A continuacin calcularemos los valores de resistencia y condensador de nuestro ltro.

Resistencia RF ILT .
Por un lado interesa que

RF ILT

de forma que la mayor parte de la corriente siga circulando por

R. Por otro lado, segn [33], esta conguracin presenta el problema de que la amplicacin real es menor
a la terica (A

V = 100 V ),

como vemos en la expresin 3.13. Debido a este hecho interesa elegir valores no

demasiado altos para

RF ILT . Areal = 100 5 k 5 k + RF ILT


(3.13)

3.4: CIRCUITO DE MEDIDA EMPLEADO

75

Llegado a un compromiso entre ambos criterios, hemos elegido para cumple con

RF ILT

el valor de

47 ,

lo que

RF ILT

y nos da una amplicacin real de:

Areal = 100

5 k V = 99,068 5 k + 47 V

(3.14)

De este modo el error relativo introducido por nuestro ltro, expresin 3.15, resulta ser inferior al 1 %.

Errorrelativo = 1

Areal 99,068 =1 A 100

0,93 % < 1 %

(3.15)

Condensador CF ILT
Una vez conocida ltro. Para hallar dicha frecuencia de corte buscaremos una cota superior y una inferior. La superior viene impuesta por el osciloscopio, como veremos a continuacin. La inferior la calcularemos de forma aproximada mediante medidas en el laboratorio. El osciloscopio, lgicamente, tiene una limitacin a la hora de tomar muestras de la seal a medir. Por otra parte, el teorema de Nyquist nos dice que una seal peridica puede ser perfectamente reconstruida siempre que se utilice una frecuencia de muestreo superior al doble de su ancho de banda. Por lo tanto, la frecuencia de muestreo de nuestro osciloscopio nos determinar la frecuencia mxima (fc ) de la seal de entrada que ste ser capaz de distinguir.

RF ILT

ser el valor de

CF ILT

el que nos dena la frecuencia de corte de nuestro

F recuencia de muestreo > 2 fc

(3.16)

Para nuestras medidas hemos congurado el osciloscopio de forma que tenga una resolucin horizontal total de 10.000 muestras. Esto da un valor de 1.000 muestras/div. Conociendo este valor de muestras dentro de cada divisin y la resolucin horizontal expresada en segundos/div, podemos calcular la frecuencia de muestreo de nuestro osciloscopio.

F recuencia de muestreo =

1000 (muestras/divisin) o Resolucin horizontal (segundos/divisin) o o

(3.17)

En la tabla 3.13 vemos como ejemplo la frecuencia de muestreo de nuestro osciloscopio para algunos valores de resolucin horizontal. Como dijimos en la seccin 3.2.1 la frecuencia de muestreo mxima del osciloscopio Tektronix TDS 3012B es de 1 Gmuestras/s por lo que, a partir de una resolucin de 1 dicha frecuencia se mantiene constante. Resolucin horizontal 10 s/div 1 s/div 200 ms/div 20 ms/div Frecuencia de muestreo 100 muestras/s 1 Kmuestras/s 5 Kmuestras/s 50 Kmuestras/s 1 Gmuestras/s 1 Gmuestras/s

s/div,

s/div 10 ns/div
1

Cuadro 3.13: Velocidad de muestreo del osciloscopio

76

CAPTULO 3: HERRAMIENTAS DE DESARROLLO EMPLEADAS Y SISTEMA DE MEDIDA

Como veremos en el siguiente captulo, la mnima resolucin horizontal que vamos a necesitar es de 20 ms/div. Esto nos da una frecuencia de muestreo mxima de 50 Kmuestras/s. Por lo tanto, y aplicando 3.16, la mxima frecuencia que el osciloscopio ser capaz de distinguir ser:

fc <

F recuencia de muestreo 50 103 = = 25 kHz 2 2 fc < 25

(3.18)

Por lo tanto, podemos ltrar la seal con un ltro de pierda parte de la informacin. Respecto a la cota inferior, no podemos hacer

kHz sin miedo a que el osciloscopio

fc

muy pequea puesto que estaramos ignorando

componentes importantes de la seal. As, debemos llegar a un compromiso entre un valor menor de 25 kHz, que nos permita cumplir con el criterio de Nyquist, pero no demasiado pequeo, de forma que no deformemos la seal original. Despus de repetidas pruebas en el laboratorio hemos elegido el valor comercial de 220 nF para nuestro condensador.  As pues, para los valores de

RF ILT = 47 fc =

CF ILT = 220 nF

la frecuencia de corte del ltro es:

1 = 7,7 kHz 2 (2 47) 220 109

(3.19)

La gura 3.33 muestra el esquema nal de nuestro sistema para la medida del consumo de potencia en nodos ZigBee/802.15.4.

Figura 3.33: Esquema completo del circuito medida

Captulo 4

Estudio del consumo


En el presente captulo realizaremos el estudio sobre el consumo de potencia en nodos ZigBee/802.15.4. Para ello nos basaremos en los dispositivos del

kit

eZ430-RF2480. En cada seccin nos centraremos en la

tarea que realiza el dispositivo: encendido, inicializacin y conexin a la red, envo/recepcin de datos, etc. Adems, dentro de cada seccin distinguiremos entre el consumo que presentan el coordinador, los

routers

y los dispositivos nales.

Es importante resaltar que el presente estudio slo pretende ser un indicador del consumo en redes ZigBee/802.15.4. Nosotros nos hemos centrado en los dispositivos del

kit

eZ430-RF2480 con la aplicacin

de ejemplo ZASA cargada en el microcontrolador pero, como hemos dicho, existen un gran nmero de otros dispositivos en el mercado (as como aplicaciones), tanto de Texas Instruments como de otros muchos fabricantes. As pues, repetimos que los datos obtenidos en este estudio slo deben ser tenidos en cuenta como un indicador general del reducido consumo que dispositivos basados en esta tecnologa pueden alcanzar.

4.1.

Encendido

Como hemos dicho en la seccin 3.1.5 los dispositivos del

kit

eZ430-RF2480, una vez conectada la

alimentacin, quedan a la espera de ser congurados por parte del usuario. ste les indicar, mediante el uso del pulsador conectado al MSP430, si deben congurarse como

router /coordinador o como dispositivo

nal. En esta seccin estudiaremos el consumo de corriente que presentan los nodos desde que conectamos la alimentacin hasta que el usuario presiona el botn por primera vez.

Consumo
En la gura 4.1 vemos representada la corriente consumida por el dispositivo justo en el momento de la conexin de la fuente de alimentacin. La corriente media, obtenida gracias a la implementacin de la expresin 3.3 en MATLAB, es:

IM edia = 3,9 mA
77

(4.1)

78

CAPTULO 4: ESTUDIO DEL CONSUMO

Figura 4.1: Consumo de corriente al conectar la alimentacin

Una vez pasado este intervalo de tiempo de 1,3 segundos aproximadamente, el dispositivo queda en espera (gura 4.2) hasta que el usuario presiona el pulsador . En este estado el procesador CC2480 debe estar activo puesto que, en cualquier momento, el microprocesador MSP430 puede enviarle los comandos necesarios para su conguracin. La corriente media en este estado es:

IM edia = 15,5 mA

(4.2)

Figura 4.2: Consumo de corriente del dispositivo en espera

Llegados a este punto sera muy interesante calcular la vida til de nuestro dispositivo para el caso de que continuara indenidamente en este estado. Para el clculo de la vida til utilizaremos la expresin 4.3. La capacidad de batera, expresada en unidades de

mAh

vara de un fabricante a otro. Para el caso

de bateras tipo AAA los valores tpicos oscilan entre 900 y 1500 de referencia

mAh. En este texto usaremos como valor

1200 mAh.

4.1: ENCENDIDO

79

V ida util =

1200 mAh Capacidad de la batera = = 77,4 horas IM edia 15,5 mA

3 das y 5 horas

(4.3)

Descripcin detallada del consumo


En la gura 4.3 podemos ver de nuevo las grcas anteriores, indicndose los distintos estados por los que pasa el dispositivo.

(a) Consumo al conectar la alimentacin

(b) Consumo del dispositivo en espera

Figura 4.3: Consumo al conectar la alimentacin y en espera

1. El microprocesador MSP430 puede funcionar a 1, 8, 12 16 MHz. En el caso particular de ZASA la frecuencia de trabajo es de 8 MHz. As pues, nada ms conectar el microprocesador a la alimentacin el reloj del sistema debe sincronizarse con esta frecuencia. El chip MSP430 no puede realizar dicha sincronizacin a no ser que la tensin de alimentacin sea de, al menos, de 2,2 V. Este punto es un margen de tiempo, de aproximadamente 1 segundo, que el MSP430 da a la tensin de alimentacin para asentarse. La corriente consumida es de 1,8 mA aproximadamente.

2. Calibracin del reloj del sistema. En este intervalo, la corriente toma el valor de 4,6 mA.

3. Cuando el reloj se ha calibrado el MSP430 despierta al procesador CC2480. Nos mantenemos indenidamente en este estado en el que el procesador CC2480 se encuentra activo. El valor medio de la corriente en este punto es de 15,4 mA

4. Los picos de corriente que vemos son debidos al parpadeo de los diodos LED que, como hemos explicado, ocurre una vez por segundo para indicar que el dispositivo se encuentra en espera de ser congurado. Los picos de corriente tienen una valor de 3 mA.

80

CAPTULO 4: ESTUDIO DEL CONSUMO

4.2.

Inicio

4.2.1. Coordinador
En esta seccin analizaremos el consumo desde el momento que el usuario presiona el pulsador hasta que el dispositivo se ha congurado correctamente. Como hemos explicado en la seccin 3.1.5, una vez que el dispositivo est en espera, si el usuario presiona una vez el pulsador, se inicia una ventana de 2 segundos de duracin. Si no volvemos a presionar el pulsador, ZASA congurar el dispositivo como coordinador o como

router. Si el dispositivo encuentra una red a la que poder conectarse se congurar como router

y se conectar a ella. Si por el contrario no encuentra ninguna red, se comportar como coordinador y proceder a la inicializacin de la red. En este apartado estudiaremos el consumo durante el inicio de un dispositivo que se comporta como coordinador. Cuando un dispositivo intenta asociarse a la red, la capa MAC gestiona el nivel fsico de forma que se realice un escaneo para una lista de canales determinada, en busca de algn dispositivo padre. Puesto que el procesador CC2480 trabaja en modo no balizado, el escaneo debe ser activo. Esto signica que el dispositivo que realiza un escaneo de canal enviar una baliza y, justo a continuacin, permanecer a la escucha en busca de una baliza de respuesta por parte del coordinador . Realizar este proceso varias veces para cada uno de los canales seleccionados. Si en alguno de los canales se encuentra un padre que responda a dicha solicitud, nuestro dispositivo se conectar a l. En la gura 4.4 vemos el consumo de corriente de un dispositivo desde que presionamos el pulsador hasta que forma la red.

Figura 4.4: Inicio del coordinador

Para obtener un resultado ms general, no tendremos en cuenta el consumo de corriente durante la ventana de 2 segundos ya que esta es una caracterstica particular de ZASA. As pues, el consumo de corriente desde que transcurre dicha ventana hasta que el dispositivo forma la red es:

IM edia = 28,6 mA

(4.4)

1 Recordamos aqu que en el modo balizado, el escaneo es pasivo (sin envo de balizas) puesto que se sobreentiende que ya existe un coordinador que enva balizas de forma peridica.

4.2: INICIO

81

El dispositivo anterior slo busca la red en un canal. Recordemos que los 26 canales ZigBee se distribuyen de la siguiente manera: 1 canal para la frecuencia 868 MHz (canal 0), 10 canales para 915 MHz (canales de 1 a 10) y 16 canales para 2,4 GHz (canales de 11 a 26). Por defecto, ZASA intenta conectarse nicamente al canal nmero 16. Si pasado un tiempo denido por la variable APP_JOIN_TIME no ha encontrado red alguna, formar la suya propia. Dentro del mdulo APP de ZASA podemos acceder al chero

sample_app.cfg

en el que es posible seleccionar la lista de canales en los cuales el dispositivo

buscar la red. Conforme aumentamos el nmero de canales de esta lista, es necesario incrementar el tiempo de espera APP_JOIN_TIME, que por defecto vale 6 segundos (variable denida en el chero

sample_app.c

del mdulo APP). De forma prctica hemos comprobado que si elegimos escanear los 16

canales de la banda de 2,4 GHz esta variable debe ser, de al menos, 30 segundos para que d tiempo a enviar y recibir una posible respuesta. Utilizando IAR Embedded Workbench hemos modicado el nmero de canales sobre los que ZASA realiza el escaneo activo. En la gura 4.5, mostramos el consumo de un dispositivo que realiza el escaneo activo sobre ms de un canal

2 (tras lo cual, al no encontrar una red, se congura como coordinador).

(a) Escaneo activo sobre 2 canales

(b) Escaneo activo sobre 3 canales

Figura 4.5: Inicio del coordinador con bsqueda en varios canales

Como hemos dicho, conforme aumentamos el nmero de canales sobre los que se realiza el escaneo activo debemos aumentar el tiempo mximo de asociacin (APP_JOIN_TIME). En la tabla 4.1 mostramos el consumo para el caso de escaneo de 1 y 16 canales, teniendo en cuenta que tambin podemos medir el consumo como el producto de corriente media por tiempo (mA ms).

Nmero de canales escaneados 1 16

APP_JOIN_TIME

IM edia (mA)
28,6 34,3

Tiempo total empleado 8 46

mA ms

(s)
6 30

(s) 228,8 103 1578 103

Cuadro 4.1: Consumo en funcin del nmero de canales escaneados durante el inicio de red

2 En

la imagen no se muestra la ventana de espera de 2 segundos

82

CAPTULO 4: ESTUDIO DEL CONSUMO

Descripcin detallada del consumo


A continuacin analizaremos el consumo de un modo ms detallado. Para ello nos basaremos en el caso de que el dispositivo realice el escaneo activo sobre dos canales (gura 4.6).

Figura 4.6: Escaneo activo sobre dos canales

1. El dispositivo se encuentra en espera tal y como se ha visto en la seccin anterior. Los diodos LED parpadean una vez por segundo.

2. El usuario presiona el pulsador.

3. Ventana de espera de 2 segundos. En este caso el pulsador no se vuelve a presionar por lo que el dispositivo se comportar como ZigBee.

router /coordinador

dependiendo de si encuentra o no una red

4. El MSP430 enva los comandos necesarios al CC2480 para que ste realice el escaneo activo.

5. El CC2480 comienza el escaneo activo para el primer canal, enviando una baliza y permaneciendo a continuacin a la escucha. En la gura 4.7 se muestran ampliados los pasos 5, 6 y 7 as como el paso 5 (que es idntico al 7) en detalle .

3 Las caidas de corriente de la gura 4.7b no se aprecian en la gura 4.7a debido a la gran diferencia en la escala de tiempos de ambas grcas.

4.2: INICIO

83

(a) Pasos 5, 6 y 7

(b) Desglose de los pasos 5 y 7

Figura 4.7: Visin en detalle del escaneo activo sobre dos canales

El paso nmero 5 est compuesto por:

a) b)

En primer lugar el dispositivo escucha el canal segn requiere el algoritmo CSMA-CA explicado en la seccin 2.4.3. A continuacin el dispositivo transmite la baliza, que puede ser visualizada utilizando

Snier

Packet

(gura 4.8). Como vemos, este es un mensaje tipo broadcast (0xFFFF) que no requiere

de conrmacin

ack

a nivel MAC.

Figura 4.8: Baliza emitida por el nodo para determinar si ya existe un coordinador

c)

Por ltimo, el dispositivo vuelve a escuchar el canal a la busca de una baliza de respuesta.

6. Cambio al siguiente canal.

7. Paso idntico al nmero 5. Se transmite una baliza, pero esta vez sobre el segundo canal. Tras realizar el escaneo en todos los canales, el CC2480 espera un intervalo de tiempo de aproximadamente 100 ms antes de comenzar de nuevo.

8. Tras repetir los pasos 5, 6 y 7 tantas veces como es posible dentro de APP_JOIN_TIME, el dispositivo entiende que no existe ninguna red ZigBee y se congura como coordinador de red. El aumento de consumo de unos 3 mA se debe a que, cuando funcionamos como coordinador, el diodo LED rojo permanece encendido, aumentando el consumo de corriente del dispositivo.

84

CAPTULO 4: ESTUDIO DEL CONSUMO

4.2.2. Router
El inicio de un

router

es similar al del coordinador. La principal diferencia es que ahora el dispositivo

recibir respuesta por parte de la red antes de que acabe el tiempo APP_JOIN_TIME, por lo que entender que no debe congurarse como coordinador. En lugar de ello simplemente se asociar al coordinador de red ya existente (o a un router si ste tiene el permiso de asociacin desactivado) y comenzar su funcionamiento normal, enviando datos cada cierto periodo de tiempo. En la gura 4.9 podemos observar el consumo de corriente durante el inicio de un

router

para el caso de escaneo activo sobre dos canales.

No hemos considerado la ventana de espera de 2 segundos por ser una caracterstica particular de ZASA.

Figura 4.9: Consumo durante el inicio de un

router

con escaneo sobre dos canales

De nuevo, la corriente media as como el tiempo empleado en el inicio del dispositivo depender del nmero de canales que escaneemos y del valor del tiempo lmite de espera para asociarse a la red (APP_JOIN_TIME). En la tabla 4.2 vemos los valores de corriente para el caso de escaneo de 1 y 16 canales.

Nmero de canales escaneados 1 16

APP_JOIN_TIME

IM edia (mA)
26,6 33,8

Tiempo total empleado 2 27,5

mA ms

(s)
6 30

(s) 53,2 103 929,5 103

Cuadro 4.2: Consumo en funcin del nmero de canales escaneados durante el inicio de un

router

Descripcin detallada del consumo


En la gura 4.10 vemos los puntos ms importantes durante el inicio de un escaneo sobre dos canales.

router

que realiza un

4.2: INICIO

85

Figura 4.10: Inicio de un

router

con escaneo sobre dos canales

1. Parpadeo de LED durante el modo de espera. 2. El usuario presiona el pulsador. 3. Ventana de espera de 2 segundos. 4. El MSP430 enva los comandos necesarios al CC2480 para que ste realice el escaneo activo. 5. El CC2480 comienza a escanear el primer canal, enviando una baliza y permaneciendo a la escucha. Suponiendo que este sea el canal sobre el cual funciona la red, recibiremos una baliza como respuesta, que podemos visualizar utilizando

Packet Snier

(gura 4.11).

Figura 4.11: Baliza enviada por el

router

y respuesta del coordinador

El coordinador (direccin corta 0x0000) responde a la baliza del escaneo con otra baliza en la que especica algunos parmetros de la red. Podemos ver en el campo de especicacin de supertrama que SO y BO valen 15 lo que, como explicamos en la seccin 2.4.2, signica que la red funciona en modo no balizado. Tambin podemos ver que el coordinador tiene el permiso de asociacin (campo Assoc) activado. 6. Se cambia al siguiente canal. 7. El CC2480 escanea este canal enviando una baliza. Si suponemos que la red funciona en el primero de los canales, dicha baliza no recibir ninguna respuesta por parte del coordinador. 8. Tras repetir el escaneo activo sobre todos los canales el

router

da por localizado el canal sobre el

cual trabaja la red. Si se obtuviera respuesta en ms de un canal, el CC2480 elegira aquel con una

86

CAPTULO 4: ESTUDIO DEL CONSUMO

mejor calidad de enlace. El siguiente paso es asociarse a un dispositivo padre y realizar la vinculacin (

binding ) a nivel de aplicacin.

Figura 4.12: Desglose del paso 8 (vinculacin al coordinador)

En la gura 4.12 vemos de forma ampliada el consumo de corriente durante los procesos de asociacin y vinculacin. Utilizando el

Packet Snier podemos monitorizar los paquetes intercambiados durante

el proceso de asociacin (gura 4.13).

Figura 4.13: Asociacin

El paquete nmero 7 (P.nbr. = 7) es una peticin de asociacin (

router

que, como vemos, requiere de conrmacin

ack

a nivel MAC. Este

Association request ) por parte del ack es el paquete 8. El router

paquete 9 sirve para reclamar una respuesta por parte del coordinador. Cuando dicho coordinador recibe la peticin calcula una direccin corta para el

router

segn el mecanismo distribuido de

asignacin visto en la seccin 2.5.2. Una vez calculada esta direccin, es comunicada al

mediante el paquete 10 (conrmado a su vez por el paquete 11). De ahora en adelante ambos dispositivos se comunicarn utilizando dichas direcciones cortas. Una vez asociados, los dispositivos deben vincularse a nivel de aplicacin. Esto sirve para comprobar que ambos dispositivos funcionan con la misma aplicacin (mismo perl de aplicacin), y que sus puntos de acceso son compatibles. Como explicamos en la seccin 2.6.2 la subcapa ZDO (punto de

4.2: INICIO

87

acceso 0) es la encargada de realizar la vinculacin y de inicializar la subcapa APS. En la gura 4.14 vemos los paquetes intercambiados en dicho proceso. Como vemos, todos los puntos de acceso, tanto de origen como de destino, son 0x00 (ZDO). El identicador de perl de aplicacin es 0x0000, lo que quiere decir que todava no hemos registrado nuestra aplicacin. ZASA tiene como identicador 0x0F10. En la carga til de los paquetes 12 y 13 podemos ver como coordinador y

router

se comunican mutuamente el identicador de ZASA.

El proceso de vinculacin tambin requiere que el padre comunique al hijo su direccin larga IEEE. El paquete 18 (

cluster ID 0x0001) sirve para preguntar al padre dicha direccin. El paquete 20 (cluster

ID 0x8001), que es la respuesta a dicha peticin, adjunta la direccin IEEE en la carga til. Como podemos observar en el campo de control esta trama requiere de conrmacin a nivel de aplicacin. El paquete 22 representa dicha conrmacin. Como vemos, las tramas 20 a 23 representan un buen ejemplo de cmo un paquete puede requerir solamente conrmacin o conrmacin a nivel MAC y a nivel de aplicacin (paquete 20). Una vez realizada la vinculacin, ambos dispositivos comenzarn a comunicarse segn lo denido por la aplicacin ZASA. Utilizando para ello las direcciones de puntos de acceso e identicadores de

ack

a nivel MAC (paquete 22)

cluster

denidos por dicha aplicacin y que sern expuestos ms adelante.

9. El dispositivo se ha congurado correctamente como

router

y comienza su funcionamiento regular.

Figura 4.14: Vinculacin del

router

al coordinador

88

CAPTULO 4: ESTUDIO DEL CONSUMO

4.2.3. Dispositivo nal


La gura 4.15 muestra la corriente media consumida por un dispositivo nal durante la inicializacin para el caso de que realice el escaneo activo sobre un canal. En la tabla 4.3 vemos el consumo para el caso de escaneo de 1 y 16 canales. En general, la corriente consumida durante el inicio del dispositivo nal es menor que en el caso del coordinador de red o de un

router.

Figura 4.15: Consumo durante el inicio de un dispositivo nal con escaneo sobre un canal

Nmero de canales escaneados 1 16

APP_JOIN_TIME

IM edia (mA)
17,2 29,6

Tiempo total empleado 2 27,5

mA ms

(s)
6 30

(s) 34,4 103 814 103

Cuadro 4.3: Consumo mximo y mnimo durante el inicio de un dispositivo nal

Descripcin detallada del consumo


En la gura 4.16 vemos los puntos ms importantes durante el inicio de un dispositivo nal que realiza el escaneo activo sobre dos canales.

1. Parpadeo de LED durante el modo de espera.

2. El usuario presiona dos veces el pulsador, indicando que el dispositivo debe congurarse como dispositivo nal.

3. La ventana de espera de 2 segundos se agota.

4. El MSP430 enva los comandos necesarios al CC2480 para que ste realice el escaneo activo.

4.2: INICIO

89

Figura 4.16: Inicio de un dispositivo nal con escaneo sobre dos canales

5. Se escanea el primer canal. Este apartado es idntico al paso nmero 5 visto para el caso de un

router.
6. Se cambia al siguiente canal. 7. Escaneo del segundo canal. De nuevo, este apartado es igual al paso 7 para el caso de un

router.

8. Tras repetir los pasos 5, 6 y 7 tres veces el dispositivo nal da por localizado el canal e inicia los procesos de asociacin y vinculacin. Dichos mecanismos son prcticamente iguales al caso de un

router

por lo que no entraremos de nuevo en detalle. En la gura 4.17 podemos ver en detalle el

consumo durante este paso.

Figura 4.17: Desglose del paso 8

9. El dispositivo se ha congurado correctamente como dispositivo nal y comienza su funcionamiento regular.

90

CAPTULO 4: ESTUDIO DEL CONSUMO

4.3.

Recepcin y envo de datos

En esta seccin analizaremos el consumo de corriente durante la recepcin y el envo de datos, es decir, durante el funcionamiento regular de los dispositivos. Como ya hemos expuesto en diversas ocasiones, el consumo de los dispositivos nales ser mucho menor que el del coordinador y los

routers

puesto que

estos deben tener siempre activado el sistema radio. Por contra, los dispositivos nales slo saldrn del modo de bajo consumo para enviar o recibir datos (en el caso particular de ZASA, slo enviarlos) y, acto seguido, volvern a l. Comenzaremos estudiando el consumo de corriente para el caso del coordinador y los

routers

y, a continuacin, nos centraremos en el de los dispositivos nales para distintos casos de

funcionamiento.

4.3.1. Coordinador
En la gura 4.18a se muestra el consumo de corriente en el coordinador. Con el programa ZASA el coordinador acta como sumidero de la informacin. Esto quiere decir que nunca enviar datos a sus dispositivos hijo, exceptuando el caso de los paquetes

ack

a nivel MAC y de aplicacin. Como vemos, el

consumo es alto debido a que el sistema radio siempre est conectado en modo de recepcin. Como se ha explicado, ZASA hace que el diodo LED rojo est encendido cuando el dispositivo es el coordinador de red y tiene el permiso de asociacin activado. En la gura 4.18b se muestra el consumo una vez desactivado dicho permiso de asociacin (se ha presionado una vez el pulsador). Como vemos, el consumo de corriente disminuye aproximadamente 3 mA, que es exactamente lo que consume el LED rojo. En dicha gura tambin podemos observar los picos de corriente de periodicidad 1 segundo que son provocados por el parpadeo del LED, indicando que el dispositivo tiene desactivado el permiso de asociacin.

(a) Permiso de asociacin activado (LED encendido)

(b) Permiso de asociacin desactivado (LED parpadeando)

Figura 4.18: Consumo de corriente durante el funcionamiento regular del coordinador de red

La tabla 4.4 muestra el consumo medio de corriente en ambos estados as como la vida media para una batera de capacidad

1200 mAh.

Para hallar la vida til de una batera conocida la corriente media con-

4.3: RECEPCIN Y ENVO DE DATOS

91

sumida remitimos al lector a la expresin 4.3. Como vemos, utilizando una batera de estas caractersticas la vida til es muy baja, por lo que es muy recomendable alimentar al coordinador de red conectndolo a la red de distribucin. Estado Permiso de asociacin activado Permiso de asociacin desactivado

IM edia (mA)
38,45 35,45

Vida til de la batera 1 da y 7 horas 1 da y 10 horas

Cuadro 4.4: Consumo medio de corriente en el coordinador de red

Descripcin detallada del consumo


En esta descripcin detallada del consumo de corriente se considerar que el coordinador ha recibido dos paquetes de informacin por parte de un dispositivo hijo. Dichos paquetes requieren de conrmacin

ack

a nivel MAC, que es obligatorio, pero no a nivel de aplicacin. Igualmente, en la gura 4.19 se muestra

dicho caso de funcionamiento.

Figura 4.19: Consumo de corriente del coordinador de red

Los eventos sealados en la gura son los que a continuacin se describen:

1. El coordinador est a la escucha y con el permiso de asociacin activado (LED rojo encendido).

2. Se recibe un paquete de datos. El pico de corriente hacia abajo se debe al cambio del sistema radio de recepcin a transmisin (para enviar el

ack a nivel MAC) y de nuevo a recepcin. El pico hacia arriba

se debe al parpadeo del LED verde que demuestra que el paquete ha sido recibido correctamente. Este paso es idntico al paso 5, que ser desglosado a continuacin.

3. El usuario presiona una vez el pulsador por lo que se desactiva el permiso de asociacin del coordinador y el LED rojo pasa de estar permanentemente encendido a parpadear una vez por segundo.

4. El LED rojo parpadea.

92

CAPTULO 4: ESTUDIO DEL CONSUMO

5. De nuevo, el coordinador recibe un paquete de informacin proveniente de una fuente de datos (paso es idntico al nmero 2). En la gura 4.20a vemos en detalle los pasos 4 y 5 . Este ltimo est compuesto por:

a) b) c) d)

El coordinador recibe el paquete de datos. Se enva el

ack

a nivel MAC.

El coordinador vuelve a poner el sistema radio en modo de recepcin. Se enciende el LED verde (durante 20 ms) para indicar que se ha recibido correctamente el paquete de informacin.

(a) Pasos 4 y 5

(b) Desglose del paso 5

Figura 4.20: Pasos 4 y 5 y desglose del paso 5

4.3.2. Router
El caso del consumo de un

router

cuando funciona de manera regular es anlogo al del coordinador. No

obstante, para la placa de desarrollo que estamos utilizando, su consumo medio de corriente es levemente inferior puesto que el LED verde consume menos que el rojo, aproximadamente 2 mA. En la tabla 4.5 se muestra el consumo medio de corriente para los dos estados posibles, as como la vida til para el caso de utilizar bateras

1200 mAh

de capacidad. Estado

IM edia (mA)
37,28 35,26

Vida til de la batera 1 da y 8 horas 1 da y 10 horas

Permiso de asociacin activado Permiso de asociacin desactivado

Cuadro 4.5: Consumo medio de corriente en el coordinador de red

Cuando un

router

recibe un paquete de datos el consumo sigue el mismo patrn que para el caso

del coordinador. Por otro lado, puesto que un

router

funciona como fuente a nivel de aplicacin, tambin

4.19

4 El

paso 4 mostrado en la gura 4.20a corresponde al segundo parpadeo del LED, y no al primero, como seala la gura

4.3: RECEPCIN Y ENVO DE DATOS

93

realiza envo de datos de forma peridica hacia su padre aunque, nuevamente, el impacto sobre el consumo total debido al envo de paquetes no es signicativo. Por todo lo anterior, obviaremos la descripcin detallada del consumo para el caso de un

router.

4.3.3. Dispositivo nal


Introduccin
Como hemos visto en los apartados anteriores, el consumo de corriente del coordinador y de los es del orden de los 35 mA por lo que la vida til de dos bateras AAA de capacidad

routers

1200 mAh

no llega

a los dos das de duracin. Por este motivo, tal y como hemos dicho, es muy recomendable alimentar tanto el coordinador como los diferentes

routers de forma cableada. Como veremos en esta seccin, el caso

del dispositivo nal cambia radicalmente puesto que pasa la mayor parte del tiempo en modo de bajo consumo, despertando nicamente en el momento de enviar los datos. En este apartado estudiaremos el consumo de corriente en un dispositivo nal que nicamente emplea mensajes de

ack

a nivel MAC, y lo relacionaremos con diversos parmetros como el periodo de envo de

informacin, el tamao del paquete de datos y si utilizamos o no seguridad en nuestra red.

Descripcin general del consumo


En la gura 4.21

5 se muestra el consumo de corriente de un dispositivo nal con periodo de envo de

datos de 2 y 8 segundos (guras 4.21a y 4.21b respectivamente). Se denomina secuencia activa a cada uno de dichos pulsos de corriente. Como se puede ver, un dispositivo nal pasa la mayor parte de su tiempo en modo de bajo consumo.

(a) Periodo de envo igual a 2 s

(b) Periodo de envo igual a 8 s

Figura 4.21: Consumo de corriente en un dispositivo nal durante el envo de datos

5 El eje de tiempos tiene unidades de 5 s/div por lo que el ancho de pulso del parpadeo de los LED es comparativamente muy pequeo. Esta es la razn por la cual la mayora de los pulsos debidos al parpadeo de dichos diodos no se representan por pantalla.

94

CAPTULO 4: ESTUDIO DEL CONSUMO

En el caso del coordinador y los

routers

la corriente media toma valores cercanos a 35 mA, como se

ha visto. Sin embargo, la corriente media durante el modo de bajo consumo en un dispositivo nal toma valores menores de 1

A,

como se demostrar ms adelante. Puesto que las medidas realizadas estn

tomadas sobre una resistencia de 1

la tensin que caer sobre ella ser del orden de 1

V.

Como se

puede ver en la hoja de caractersticas del amplicador INA195 [33], la tensin de

oset

a la entrada toma

valores tpicos de 0,5 mV. Llegamos pues a la conclusin de que el error introducido por el amplicador tiene un orden de magnitud mucho mayor que el parmetro que se desea medir. En conclusin, para el estudio del consumo de corriente en un dispositivo nal aplicaremos mtodos ms precisos que nos permitirn calcular el valor medio de corriente con mayor exactitud.

Descripcin detallada del consumo


La gura 4.22 muestra una visin ampliada de una secuencia activa (picos anteriormente mostrados en la gura 4.21).

Figura 4.22: Consumo de corriente durante la transmisin de un paquete de datos

Los puntos sealados en la gura se corresponden con: 1. Este paso representa el consumo (de unos 3 mA) del parpadeo del LED verde que, como se ha explicado, parpadea una vez por segundo para mostrar que el dispositivo est congurado como dispositivo nal. Adems del parpadeo del LED, este pico de corriente tambin es debido a la lectura de temperatura que realiza el MSP430. Tras leer dicho valor de temperatura, el microprocesador espera 20 ms para de digitalizarlo utilizando el conversor ADC. 2. Transcurrida dicha ventana de 20 ms, el MSP430 realiza la lectura de la tensin de alimentacin. De nuevo, se vuelve a esperar 20 ms antes de digitalizar dicho valor. 3. El MSP430 ha terminado de realizar las medidas por lo que despierta al CC2480 y le enva un comando

zb_send_data_req

(comando tipo SREQ) para que ste enve los datos al nodo destino.

Este pico de corriente tambin es debido al inicio del oscilador RC de 16 MHz interno del CC2480 y del oscilador de cristal externo de 32,768 kHz (vistos en la seccin 3.1.2).

4.3: RECEPCIN Y ENVO DE DATOS

95

4. El CC2480 inicia el reloj de cristal externo de 32 MHz, que ser utilizado como reloj principal.

5. El CC2480 se encuentra en estado activo, la corriente en este estado es de 13 mA, valor que coincide con el que se muestra en su hoja de caractersticas [13].

6. El procesador CC2480 despierta al MSP430 y le enva la respuesta sncrona (SRSP) que el comando

zb_send_data_req
envo.

requiere. Adems, este pico de corriente tambin es debido a que el LED rojo

parpadea para indicar que el paquete de datos ha sido entregado al CC2480 para proceder a su

7. El CC2480 activa el sistema radio y lo pone en modo de escucha, conforme requiere el algoritmo CSMA-CA. El ancho de este pulso es variable y depende de lo ocupado que est el canal. El ancho de pulso que se muestra en la gura es un valor tpico. El consumo en este estado es de 32,5 mA, valor levemente superior al que nos especica la hoja de caractersticas [13] (valor tpico de 26,7 mA).

8. El procesador CC2480 cambia el sistema radio de recepcin a transmisin. La duracin de este intervalo es de exactamente 192

segn vemos en la gura y en la hoja de caractersticas [13],

valores que cumplen con el estndar [10].

9. El CC2480 se encuentra ahora en modo de transmisin, enviando los dos bytes de datos (uno de temperatura y otro de medida de voltaje) a una velocidad de 250 kbps. Utilizando

Packet Snier

podemos ver el paquete de datos conforme es transmitido (gura 4.23). En ella podemos observar que el identicador del perl de aplicacin es 0x0F10, lo que determina que se est usando ZASA. Los puntos de acceso tienen por direcciones 0x01 (fuente) y 0x02 (sumidero). Por ltimo, el identicador de

cluster

es 0x0001, lo que signica que la fuente (dispositivo nal) est enviando informacin al

sumidero (coordinador). Por otro lado vemos como la carga til (

APS Payload ) toma el valor 0x1C

y 0x1E, que son los bytes que representan la temperatura y la medida de voltaje de alimentacin, respectivamente.

Figura 4.23: Paquete de datos enviado por un dispositivo nal

Como veremos ms adelante, este pulso se ensanchar si aumentamos el nmero de bytes que transmitimos, como es lgico. El consumo en este paso es de 30,5 mA, de nuevo levemente por encima del que nos indica la hoja de caractersticas del CC2480 (valor tpico de 26,9 mA).

10. Se cambia de transmisin a recepcin.

11. El procesador CC2480 permanece a la escucha para recibir la conrmacin De nuevo, podemos visualizar dicho paquete (gura 4.24).

ack

del nodo contiguo.

96

CAPTULO 4: ESTUDIO DEL CONSUMO

Figura 4.24: Conrmacin

ack

a nivel MAC

De nuevo, el consumo de corriente en este intervalo es 32,5 mA. 12. El CC2480 despierta al MSP430 para enviarle un comando

zb_send_data_conf

(AREQ) para in-

dicar que el paquete de datos ha sido correctamente entregado al siguiente nodo. 13. Los dispositivos CC2480 y MSP430 entran en modo de bajo consumo hasta el siguiente envo de datos.

Clculo exacto de la corriente media consumida


El siguiente paso es obtener la corriente media consumida durante el funcionamiento de un dispositivo nal. Como se ha dicho anteriormente, no podemos calcularla con el circuito de medida que se ha empleado hasta ahora puesto que en el modo de bajo consumo, donde la corriente toma valores muy pequeos, el error introducido por el amplicador es comparativamente alto. As pues, se prescindir de dicho elemento por lo que mediremos la tensin directamente sobre la resistencia. Como complemento, se usar un multmetro en lugar del osciloscopio ya que ste nos brinda una mayor precisin. El osciloscopio se utilizar nicamente para calcular la corriente media consumida durante una secuencia activa puesto que en ella los valores de corriente son del orden de 20 mA. Una vez realizadas dichas medidas utilizaremos la siguiente expresin para el clculo exacto de la corriente media consumida:

IM edia =
 Donde: 

d d ISec + (1 ) ISleep P P

(4.5)

d= P =

Duracin de la secuencia activa. Esto es, el tiempo que se tarda en enviar un paquete de datos y

conrmar su recepcin. Periodo de envo de datos. Corriente media consumida durante la secuencia activa. Corriente media consumida durante el modo de bajo consumo.

ISec =


ISleep =

En la gura 4.25

6 se muestra una secuencia activa. Como se puede ver, los valores de la corriente

media consumida y la duracin de la secuencia activa son:

ISec = 17, 27 mA

(4.6)

d = 17 ms
6 Para

(4.7)

simplicar los clculos se supone que la secuencia activa comienza en el paso 3 de los expuestos anteriormente

4.3: RECEPCIN Y ENVO DE DATOS

97

Figura 4.25: Consumo de corriente durante una secuencia activa

El siguiente paso es calcular la corriente del modo de bajo consumo (ISleep ). Para ello cambiaremos nuestra resistencia de 1

por una de valor mayor. Este valor debe ser sucientemente grande para que la

tensin que caiga sobre ella sea medible por el multmetro, y sucientemente pequeo para que nuestro dispositivo siga funcionando debidamente. Recordamos que segn la expresin 3.5 la relacin entre el voltaje de alimentacin y el que cae en las bornas de nuestro dispositivo es:

Valim = V + R I
Luego:

(4.8)

R= V

Valim V I

(4.9)

representa la tensin que cae en las bornas de nuestro dispositivo que, segn la hoja de caractersticas

del MSP430 [20], no debe ser menor que 2,2 V:

V = Valim R IM ax 2,2 V IM ax
(IM ax

(4.10)

representa el caso en el que nuestro dispositivo ZigBee consume la mayor corriente posible

40 mA V

en el caso del coordinador y de un

router ).

Nuestro objetivo es hacer

lo ms grande

posible sin que

baje de 2,2 V (Vmin ), ya que en ese caso el dispositivo dejara de funcionar. Aplicando

una tensin de alimentacin (Valim ) de 3,6 V y considerando el caso ms desfavorable de consumo de corriente (IM ax ) tenemos:

Valim Vmin 3,6 2,2 = = 35 IM ax 40 103

(4.11)

Luego si utilizamos una resistencia de valor aproximado 35

estaremos asegurando tanto la correcta

alimentacin de nuestro dispositivo (V no bajar de 2,2 V) como un valor de tensin sucientemente alto como para que nuestro multmetro lo lea correctamente. El valor que se ha usado es de 32 paralelo dos resistencias de 47 y 100

a partir del

98

CAPTULO 4: ESTUDIO DEL CONSUMO

Utilizando el multmetro obtenemos el siguiente valor para la tensin que cae sobre la resistencia en el modo de bajo consumo:

VSobre R = Valim V = 0,024 mV


Esto nos da el siguiente valor para la corriente de bajo consumo:

(4.12)

ISleep =

VSobre R 0,024 mV = = 750 nA R 32

(4.13)

As pues, ya hemos encontrado el valor de todos los parmetros necesarios para caracterizar el consumo en un dispositivo nal, a excepcin de

P , que ser impuesto por nosotros. Como muestra, cuando P

toma

el valor de 10 segundos (caso por defecto en ZASA) la corriente media consumida por un dispositivo nal es

30,1 A. En la gura 4.26a se puede ver la relacin entre corriente media consumida y periodo de envo

de datos (P ). Para su obtencin se ha aplicado la expresin 4.19. Por otra parte, en la gura 4.26b se muestra la vida til que obtendramos con esta corriente media para unas bateras AAA de capacidad 1200 mAh (valores calculados gracias a la expresin 4.3).

(a) Corriente media consumida por un dispositivo nal

(b) Vida til para bateras AAA con capacidad 1200 mAh

Figura 4.26: Corriente media consumida y vida til de las bateras en funcin de

Como vemos, la corriente media consumida por un dispositivo nal toma por lo general valores muy inferiores a 1 mA. Este resultado es considerablemente inferior al obtenido en un coordinador o un

router

que, recordamos, consumen alrededor de 38 mA cuando funcionan de manera regular. Este bajo consumo permite obtener una vida til para las bateras de hasta 5 aos o ms, dependiendo del valor de

P.

Efecto del tamao de paquete de datos sobre el consumo de corriente


Hasta ahora se ha estudiado el caso de envo de un paquete de datos de tamao jo. En ZASA este tamao es de 2 bytes, uno para la medida de temperatura y otro para la de voltaje. En este apartado estudiaremos el efecto del aumento de tamao de dicho paquete sobre el consumo total.

4.3: RECEPCIN Y ENVO DE DATOS

99

En la gura 4.27 vemos una imagen ampliada de una secuencia activa en la que se transmite un paquete de 2 bytes de tamao (1,1 ms aproximadamente).

Figura 4.27: Consumo de corriente durante una secuencia activa

Conforme incrementamos el nmero de bytes que contiene dicho paquete aumentar la duracin del intervalo de transmisin (TX) y, en consecuencia, el de la secuencia activa. Ello tiene como resultado el aumento del consumo medio de corriente de nuestro dispositivo. El procedimiento que se ha seguido es modicar el cdigo de ZASA para aumentar el tamao de paquete a enviar y medir la duracin del intervalo de transmisin asociado. En la gura 4.28 vemos un paquete de datos que transmite 5 bytes (en

APS Payload ), los dos primeros de los cuales siguen siendo las medidas de temperatura y voltaje.

Figura 4.28: Paquete de datos de 5 bytes de carga til

Se ha realizado dicha medida para ciertos valores del tamao del paquete de datos y, aplicando el mtodo de los mnimos cuadrados, se ha extrapolado el resultado (gura 4.29). Como vemos, la recta corta al eje de las ordenadas en el punto 1 mA aproximadamente, esto es debido a que, aun en el hipottico caso de enviar un paquete vaco, es necesario transmitir las cabeceras de las capas fsica, MAC, de red y de aplicacin.

100

CAPTULO 4: ESTUDIO DEL CONSUMO

Figura 4.29: Duracin del intervalo de transmisin (TX) para distintos tamaos de paquete

Antes de seguir sealaremos que la anterior grca nos permite, adems, comprobar de manera prctica el rgimen binario que presta el estndar 802.15.4 [10]. Como vemos, en ella se relaciona el tamao del paquete de datos (bytes) con la duracin del intervalo de transmisin (segundos). En consecuencia, se puede deducir el rgimen binario como la inversa de la pendiente de la recta representada en dicha grca. Esto es:

P endiente = 0,032

ms byte

(4.14)

Rgimen binario = e

1 bytes = 31,25 = 250 kbps P endiente ms

(4.15)

Como vemos, el rgimen binario es exactamente de 250 kbps lo que coincide con la denicin del estndar para la frecuencia de 2,4 GHz.  Cuando aumentamos el tamao del paquete de informacin la duracin de una secuencia activa (d) y el valor de corriente media en dicho intervalo (ISec ) aumentarn. Esto hace que el valor de corriente media consumida por nuestro dispositivo (IM edia , expresin 4.19) tambin aumente. Anteriormente vimos que la secuencia activa (d) dura 17 ms, de los cuales 0,1 ms se emplean en transmitir los 2 bytes de datos, 1 ms en transmitir las cabeceras a nivel fsico, MAC, de red y de aplicacin y 15,9 ms en el resto de procesos. Si denimos

como el nmero de bytes del paquete de informacin,

estamos ya en condiciones de generalizar la duracin

d(n)

de una secuencia activa para cualquier valor de

n: d(n) = 15,9 ms + 1 ms +
El siguiente paso es calcular puede aproximar

n (bytes) Rgimen binario (bytes/ms) e n.

(4.16)

ISec

en funcin de

Teniendo en cuenta la gura 4.30 y la tabla 4.6 se

ISec (n)

como:

4.3: RECEPCIN Y ENVO DE DATOS

101

ISec (n) =
i
Siendo

[corriente intervalo(i)

duracin intervalo(i) o ] d(n)

(4.17)

el nmero que indica el estado por el que pasa el dispositivo.

Figura 4.30: Consumo durante una secuencia activa por partes

i 1 2 3 4 5 6 7

Estado CC2480 en estado activo CC2480 activo y LED rojo CC2480 en estado activo Recepcin (CSMA-CA) Transmisin Recepcin (

Corriente (mA) 13 17 13 32,5 30,5 32,5 13

Duracin del intervalo (ms) 7,8 1,2 1,2 1,6 (valor medio)

1 ms +

ack

n (bytes) Rgimen binario (bytes/ms) e


1,3 2,8

a nivel MAC)

CC2480 en estado activo

Cuadro 4.6: Consumo de corriente en los diferentes intervalos de una secuencia activa

 La expresin 4.19 nos quedara ahora como:

IM edia (n) =

d(n) d(n) ISec (n) + (1 ) ISleep P P

(4.18)

As pues, podemos ahora caracterizar el consumo en un nodo para distintos tamaos de paquete. En la gura 4.31 vemos la corriente consumida y la vida til para bateras de 1200 mAh, todo ello en funcin de n. Como vemos, la vida til disminuye en gran medida conforme aumentamos el tamao de paquete. Es por ello que ZigBee/802.15.4 est recomendado para envos de paquetes de datos pequeos, y no para una conexin ja de comunicacin entre dos nodos.

102

CAPTULO 4: ESTUDIO DEL CONSUMO

(a) Consumo de corriente

(b) Vida til

Figura 4.31: Consumo de corriente y vida til de las bateras en funcin del tamao de paquete (n)

Efecto del uso de seguridad sobre el consumo de corriente


Por defecto, la aplicacin de ejemplo ZASA no utiliza el mecanismo de seguridad que nos proporciona el integrado CC2480 (seccin 3.1.2). Para estudiar el efecto del uso de seguridad sobre el consumo de corriente se ha tenido que modicar el cdigo de dicha aplicacin. En concreto, hemos utilizado el comando

zb_write_conguration

de la interfaz

Simple

API para, en el momento de la inicializacin, congurar el

parmetro especco de la red ZCD_NV_SECURITY_MODE. Haciendo que dicho parmetro valga 1, tanto en el dispositivo hijo como en el padre, ambos nodos utilizarn el modo seguro en sus comunicaciones. En la gura 4.32 vemos un paquete de datos enviado desde un dispositivo nal hasta el coordinador. Podemos ver como los dos bytes se codican usando un total de 20 bytes. Como no poda ser de otra manera, en el campo de control de trama a nivel de aplicacin se indica que la seguridad est activada (Sec vale 1).

Figura 4.32: Envo de 2 bytes utilizando seguridad

Se deduce pues, que el uso de seguridad implica un aumento en el tamao de la carga til del nivel de aplicacin. Por lo tanto nos remitimos al punto anterior, en el que se estudia el efecto sobre el consumo cuando enviamos paquetes de tamao variable. De forma prctica hemos comprobado que, al codicar un paquete de tamao

n,

el paquete resultante tiene un tamao de

+ 18 bytes.

Para ms informacin respecto a la codicacin a nivel de aplicacin remitimos al lector al estndar ZigBee [9].

4.3: RECEPCIN Y ENVO DE DATOS

103

Efecto del uso de

ack

a nivel de aplicacin y mensajes POLL


ack
a nivel de aplicacin. Este tipo

En la aplicacin de ejemplo ZASA, podemos activar la opcin de

de conrmacin se realiza extremo a extremo, lo que quiere decir que, para el caso particular de ZASA, el sumidero deber enviar a la fuente un mensaje de conrmacin una vez recibos los datos. Por otra parte, recordamos que un dispositivo nal tiene la opcin de enviar mensajes POLL (sondeo) a su dispositivo padre por si ste tiene informacin para l. Aunque este tipo de mensajes no tienen relacin con el

ack

ack

a nivel de aplicacin, ZASA est congurado de tal forma que cuando activamos el

de aplicacin el dispositivo nal tambin enva mensajes POLL a su padre. En concreto, se enviar

un mensaje POLL despus de cada envo de datos. ZASA est congurado de forma que la fuente nunca reciba datos, es por ello que un dispositivo nal nunca recibir respuesta a un mensaje POLL. Por todo lo anterior es necesario enfatizar que los resultados mostrados a continuacin son meramente orientativos y especcos de la aplicacin de ejemplo ZASA. La gura 4.33a muestra el consumo de corriente durante el envo de un paquete de datos (1), la recepcin del

ack

de aplicacin (2), y el envo de un mensaje POLL (3). El tiempo entre el paso 1 y el 2, y

entre el 2 y el 3, siempre es el mismo y viene denido en ZASA por la variable APP_RESPONSE_POLL (100 ms por defecto). En este punto es importante destacar que, como vemos en dicha grca, entre el paso 1 y el 2 el integrado CC2480 queda en modo activo, consumiendo 13 mA. En dicho intervalo el CC2480 debera estar en modo de bajo consumo pero, por contra, prcticamente la totalidad de las ocasiones el integrado CC2480 se mantiene en modo activo consumiendo como media 13 mA. En la gura 4.33b se muestra un caso de funcionamiento correcto. Este error del dispositivo CC2480 est especicado en el documento Errata Notes CC2480 de Texas Instruments [16]. Dicho problema aumenta en gran medida el consumo de corriente total.

(a) Funcionamiento incorrecto


Figura 4.33: Consumo durante el envo de datos con

(b) Funcionamiento correcto

ack

activo y mensaje POLL

El paso 1 es idntico al caso expuesto con anterioridad, en el cual el dispositivo nal enva un paquete de datos hacia el coordinador. Los pasos 2 y 3, para el caso de funcionamiento incorrecto, se muestran detalladamente en las guras 4.34a y 4.34b respectivamente.

104

CAPTULO 4: ESTUDIO DEL CONSUMO

(a) Envo de

ack de aplicacin (paso 2)


ack

(b) Envo de mensaje POLL (paso 3)


de aplicacin y envo de mensaje POLL

Figura 4.34: Consumo debido a la recepcin del mensaje

Desglose de los pasos:

1. Envo de informacin. Paso idntico al caso expuesto en el apartado Descripcin detallada del consumo del presente captulo. Al igual que antes, y por simplicidad, se considera que la secuencia activa comienza en el momento que el CC2480 comienza a consumir 13 mA (modo activo).

2. Envo de la conrmacin

ack

a nivel de aplicacin. Paso compuesto por:

a) b) c)

El CC2480 se encuentra en modo activo debido al error que presenta dicho integrado. Se escucha el canal segn requiere el algoritmo CSMA-CA. Se transmite una peticin de

ack

a nivel de aplicacin.

Figura 4.35: Peticin de

ack

a nivel de aplicacin

d)

Se reciben el

ack

a nivel MAC asociado a c) y el

ack

a nivel de aplicacin.

Figura 4.36:

Ack

a nivel MAC y de aplicacin

e)

Se enva un

ack

a nivel MAC para conrmar que se ha recibido el

ack

a nivel de aplicacin.

4.3: RECEPCIN Y ENVO DE DATOS

105

Figura 4.37:

Ack

a nivel MAC

f) g)

Se enciende el LED rojo para indicar que se ha enviado correctamente el paquete de datos. El CC2480 entra en modo de bajo consumo.

3. Mensaje tipo POLL. Es importante remarcar que el microprocesador MSP430 no interere en este proceso. nicamente en el caso de que, efectivamente, el dispositivo padre tuviera datos para el hijo, el MSP430 sera despertado por el integrado CC2480.

a) b) c) d)

El CC2480 se despierta. CC2480 pasa a modo activo. Sistema radio en modo recepcin conforme al algoritmo CSMA-CA. Envo del mensaje POLL.

Figura 4.38: Mensaje POLL

e)

Recepcin de

ack

a nivel MAC.

Figura 4.39:

Ack

a nivel MAC

f)

CC2480 en modo activo. Al nal de este paso se considere que termina la secuencia activa.

De nuevo, utilizaramos la expresin (4.19) para calcular la corriente media consumida por nuestro dispositivo:

IM edia =

d d ISec + (1 ) ISleep P P

(4.19)

La duracin de una secuencia activa es en este caso:

d = 235 ms

(4.20)

Para el caso de que ocurra el error, es decir, entre el paso 1 y el 2 el CC2480 sigue en modo activo, la corriente media durante una secuencia activa sera:

ISec = 8,7 mA

(4.21)

106

CAPTULO 4: ESTUDIO DEL CONSUMO

Teniendo en cuenta que la corriente en modo de bajo consumo toma el valor de 750 el siguiente resultado para la corriente media consumida (con defecto en ZASA):

nA

tendramos

igual a 10 segundos, que es el valor por

IM edia = 0,2 mA
En el caso de que no se diera el error,

(4.22)

ISec

tomara el valor de

3,64 mA,

por lo que para un periodo

de envo de datos de 10 segundos, la corriente media consumida sera slo de

86,27 A.

Como vemos, el

consumo aumenta considerablemente debido al error del integrado CC2480. En la gura 4.40 mostramos el consumo de corriente y la vida til de las bateras para el caso de funcionamiento con error y sin l.

(a) Corriente media consumida

(b) Vida til

Figura 4.40: Corriente media consumida y vida til con y sin error de funcionamiento en el CC2480

4.4.

Prdida de conexin con el dispositivo padre

En este punto estudiaremos el consumo de un dispositivo una vez pierde la conexin con su dispositivo padre. Lgicamente, slo tiene sentido analizar este caso para un

router

o para un dispositivo nal.

4.4.1. Router
Cuando un

router

pierde la conexin con su dispositivo padre, es decir, no recibe respuesta

ack

a nivel

MAC, comenzar un proceso de reconexin. Durante este proceso el dispositivo hijo enva un paquete

broadcast routers

en busca de un nuevo dispositivo padre. En la gura 4.41a podemos ver una captura de dicho

paquete realizada con

Packet Snier. Puesto que se trata de un mensaje tipo broadcast, la direccin MAC

destino es 0xFFFF; sin embargo, a nivel de red, se utiliza la direccin 0xFFFC, que signica todos los (incluido el coordinador) en el rango de alcance [10]. Esto es as puesto que, como es lgico,

resulta imposible conectarse a un dispositivo nal. En el caso particular de ZASA este mensaje se enva con un periodo igual al de envo de informacin. Si el

router

recibe una respuesta a dicho mensaje (gura

4.4: PRDIDA DE CONEXIN CON EL DISPOSITIVO PADRE

107

4.41b) por parte de un candidato a padre que pertenezca a la red de la que formaba parte, se conectar a l.

(a) Solicitud de reconexin

(b) Respuesta de reconexin


Figura 4.41: Mensajes de reconexin

Respecto al consumo de corriente, al tratarse de un

router,

el sistema radio deber seguir activo

continuamente. Es por ello que el consumo durante este proceso coincide con el caso del funcionamiento regular del

router

(apartado 4.3.2).

4.4.2. Dispositivo nal


Cuando un dispositivo nal pierde la conexin enva una noticacin de orfandad (gura 4.42) en todos los canales de su lista de canales posibles. De esta forma se intenta recuperar la conexin de manera inmediata.

Figura 4.42: Noticacin de orfandad

Si no recibe respuesta, comenzar un escaneo activo sobre dicha lista de canales. Esto quiere decir que enviar balizas y permanecer a la escucha de forma peridica, tal y como se ha visto en la seccin 4.2.3. Si el dispositivo nal recibe una respuesta a alguna de las balizas que ha transmitido, enviar al candidato a padre un mensaje de reasociacin (para comprobar si pertenece a la red de la que previamente formaba parte). En caso de recibir respuesta, se dar por concluido el proceso de reasociacin. En la gura 4.43 se muestra el proceso de envo de baliza, respuesta y reasociacin. El paquete 54 (P.nbr. = 54) es la baliza emitida por el dispositivo nal. El paquete 55 se trata de la respuesta a dicha baliza por parte del coordinador de red. Acto seguido, el dispositivo nal enva una peticin de reasociacin (paquete 56) que requiere de conrmacin

ack

a nivel MAC (paquete 57). Los paquetes 58 y 59 son una solicitud de

respuesta al mensaje anterior y su conrmacin

ack. Por ltimo, el dispositivo padre responde a la peticin

de reasociacin (paquete 60) conrmando la direccin corta asignada al dispositivo hijo. El paquete 61 se trata de una nueva conrmacin

ack

a nivel MAC.

108

CAPTULO 4: ESTUDIO DEL CONSUMO

Figura 4.43: Proceso de reasociacin

En la gura 4.44 se puede ver el consumo de corriente durante la bsqueda de un dispositivo padre para el caso de escaneo activo sobre un canal. En la tabla 4.7 se resume el consumo para los casos de bsqueda sobre uno y diecisis canales (como vemos, los valores de corriente son muy similares a los obtenidos para el proceso de inicio en la seccin 4.2.3).

Figura 4.44: Consumo de corriente durante la reconexin realizando escaneo sobre un canal

Nmero de canales escaneados 1 16

IM edia (mA)
9,34 27,64

Cuadro 4.7: Consumo mximo y mnimo durante la reasociacin a la red

4.5: TABLA DE RESUMEN DE CONSUMO

109

4.5.

Tabla de resumen de consumo

La tabla 4.8 muestra un resumen de la corriente media consumida para cada uno de los casos estudiados. Destacamos aqu que estos resultados son meramente orientativos puesto que han sido obtenidos para el caso particular de un integrado CC2480, un microprocesador MSP430 y la aplicacin de ejemplo ZASA. Adems, dentro del estado de envo y recepcin de datos, se ha tomado el caso bsico de

ack

slo a nivel

MAC, paquetes de datos de tamao 2 bytes, envo cada 10 segundos y modo sin seguridad.

Estado Proceso de encendido Inicio  Recepcin de datos

Subestado Conexin de la alimentacin Espera Escaneo sobre 1 canal Escaneo sobre 16 canales Permiso de asociacin activado (LED rojo) Permiso de asociacin desactivado (Parpadeo de LED rojo)

IM edia

(mA)

Duracin (s) 1,3 Variable 8 46 Variable Variable

Potencia (mW) 11,7 46,5 85,8 100,6 115,3 106,3

3,9 15,5 28,6 34,3 38,45 35,45

(a) Coordinador
Estado Proceso de encendido Inicio  Recepcin y envo de datos  Prdida de conexin Subestado Conexin de la alimentacin Espera Escaneo sobre 1 canal Escaneo sobre 16 canales Permiso de asociacin activado (LED verde) Permiso de asociacin desactivado (Parpadeo de LED verde) Permiso de asociacin activado (LED verde) Permiso de asociacin desactivado (Parpadeo de LED verde) 35,26 Variable 105,8 37,28 Variable 111,8 35,26 Variable 105,8

IM edia

(mA)

Duracin (s) 1,3 Variable 2 27,5 Variable

Potencia (mW) 11,7 46,5 79,8 101,4 111,8

3,9 15,5 26,6 33,8 37,28

(b) Router
Estado Proceso de encendido Inicio Subestado Conexin de la alimentacin Espera Escaneo sobre 1 canal Escaneo sobre 16 canales Secuencia activa Envo de datos Prdida de conexin Modo de bajo consumo Total Escaneo sobre 1 canal Escaneo sobre 16 canales

IM edia

(mA)

Duracin (s) 1,3 Variable 2 27,5 0,017 Variable Variable Variable Variable

Potencia (mW) 11,7 46,5 51,6 88,8 51,8 0,00225 0,09 28 82,9

3,9 15,5 17,2 29,6 17,27 0,00075 0,03 9,34 27,64

(c) Dispositivo nal


Cuadro 4.8: Resumen del consumo medio de corriente y potencia. La tensin de alimentacin es de 3 V.

110

CAPTULO 4: ESTUDIO DEL CONSUMO

Recordamos adems que la corriente media consumida por un dispositivo nal para paquetes de datos de tamao

bytes viene denida por:

IM edia (n) =
Donde: 

d(n) d(n) ISec (n) + (1 ) ISleep P P

(4.23)

d(n)

dene la duracin de la secuencia activa y su expresin es:

d(n) = 15,9 ms + 1 ms +
Con 

n (bytes) Rgimen binario (bytes/ms) e

(4.24)

Rgimen binario = 31,25 bytes . e ms


es la corriente media consumida durante una secuencia activa denida como:

ISec (n)

ISec (n) =
i


[corriente intervalo(i)

duracin intervalo(i) o ] d(n) nA.

(4.25)

ISleep


es la corriente en el modo de bajo consumo y su valor es de 750

es el periodo de envo de datos.

Captulo 5

Conclusiones y lneas futuras de trabajo


En el presente captulo expondremos de forma breve las conclusiones a las que hemos llegado tras la realizacin de este proyecto. Adems, plantearemos una serie de posibilidades en cuanto a la ampliacin del mismo, de forma que otros alumnos de esta u otra escuela puedan utilizar en benecio propio.

5.1.

Conclusiones

Tras el estudio que se ha realizado sobre el estndar ZigBee/802.15.4 y su consumo de corriente, podemos resaltar las siguientes ventajas que aportan los dispositivos basados en dicha tecnologa: El bajo consumo de corriente que presentan. Como se ha visto en el captulo anterior, un dispositivo ZigBee/802.15.4, bajo determinadas condiciones y durante su funcionamiento regular, puede alcanzar un consumo medio muy por debajo de 1 mA. Esto permite que las bateras que alimenten dicho dispositivo puedan alcanzar una vida til del orden de aos. Dado el n de esta tecnologa, que no es otro que formar redes de domtica, inmtica o control industrial, que los dispositivos que forman la red tengan una gran independencia energtica se hace altamente deseable. Bajo coste. Tal y como se ha mencionado, los componentes mnimos de un dispositivo basado en este estndar es un microprocesador, un transceptor o procesador ZigBee/802.15.4 y una antena chip. Estos tres componentes pueden alcanzar precios muy bajos en el mercado, convirtiendo este tipo de tecnologa en accesible a gran nmero de desarrolladores. Facilidad de programacin. Como hemos visto con la aplicacin de ejemplo ZASA, no es necesario un gran conocimiento en el campo de la programacin de microcontroladores para ser capaz de desarrollar una aplicacin ZigBee. Por otro lado, tambin hemos comprobado una serie de dicultades que este estndar tendr que salvar en el futuro: Dicultad de desarrollo de aplicaciones basadas en el modo balizado. Como se ha visto en el captulo 4, los dispositivos nales son capaces de alcanzar un consumo mnimo mientras que, el coordinador de red y los

routers tienen un mayor consumo. Esto es as, conforme a lo que se ha explicado, puesto
111

112

CAPTULO 5: CONCLUSIONES Y LNEAS FUTURAS DE TRABAJO

que estos ltimos deben estar continuamente escuchando el canal a la espera de informacin de sus dispositivos hijo. Claramente este es un problema que presenta el modo no balizado, en el que no existe una sincronizacin entre los nodos de la red. La dicultad en este punto se encuentra en el hecho de que las distintas compaas estn centradas por ahora en dicho modo de funcionamiento, que ofrece peor rendimiento (en

routers y coordinadores) a cambio de una mayor simplicidad. En el caso

de Texas Instruments, en lugar de utilizar Z-Stack, existe la posibilidad de trabajar con un protocolo de nivel MAC conocido como TIMAC [34]. ste nos permite formar una red en conguracin de estrella utilizando el modo balizado, aunque su uso no est muy generalizado. El estndar se encuentra en sus primeros pasos. Aunque ya existe un gran nmero de empresas que fabrican tanto

hardware

como

software

basado en ZigBee/802.15.4, todava es demasiado pronto

para hablar de una completa implantacin. Esto hace que, en ocasiones, encontrar informacin sobre dicha tecnologa, tanto a nivel comercial como tcnico, se haga una tarea difcil. Existencia de otros estndares similares. Dado el amplio mercado existente para este tipo de tecnologa, han aparecido una serie de estndares paralelos que se presentan como una alternativa a ZigBee/802.15.4. Algunos ejemplos son Z-Wave [35] o Bluetooth

Low Energy Technology

[36].

5.2.

Lneas futuras de trabajo

ZigBee/802.15.4 es una tecnologa relativamente nueva por lo que se nos abre un amplio abanico de posibilidades en cuanto a su estudio se reere. A continuacin mencionamos algunas opciones que, por su relacin con el presente proyecto, nos resultan muy interesantes: Estudio del efecto de la potencia de transmisin sobre el consumo. El integrado CC2480 transmite con una potencia de 1 mW (0 dBm) que no es congurable [13]. No obstante, otros dispositivos de Texas Instruments, como el CC2520 [37] s nos permiten variar dicha potencia de transmisin. Esto nos da la posibilidad de ampliar el presente estudio atendiendo a la variacin que dicha potencia de transmisin provoca en el consumo de corriente. Mejora del sistema de medidas. Como se ha visto en el captulo anterior, todas las medidas de tensin sobre la resistencia utilizada han sido tomadas utilizando un osciloscopio Tektronix TDS 3012B. Este instrumento nos permite la conexin al PC mediante un cable de red RJ45. Esto hace posible su control (as como el envo de las capturas de pantalla) desde un ordenador. Para ello, se recomienda el uso del entorno LabVIEW de National Instruments [38]. Realizacin una comparativa entre el consumo de ZigBee y Bluetooth. Estudio de las interferencias entre ZigBee, Bluetooth y Wi-Fi. Realizacin de un estudio sobre el consumo de corriente en un dispositivo que utilice el modo balizado comprobando que, aparte de los dispositivos nales, el coordinador de red y los alcanzaran un mnimo consumo. Para ello recomendamos utilizar el [39] de Texas Instruments junto con TIMAC.

kit

routers

tambin

de desarrollo CC2430DK

5.2: LNEAS FUTURAS DE TRABAJO

113

Desarrollo de una aplicacin ZigBee. El presente estudio se ha realizado basado en la aplicacin de ejemplo ZASA. Proponemos aqu el desarrollo de una aplicacin similar, que sirva para demostrar las posibilidades comerciales de dispositivos basados en la tecnologa ZigBee/802.15.4. Desarrollo de una aplicacin para PC. Al igual que, gracias a la aplicacin ejecutable en el ordenador

Sensor Monitor, podemos monitorizar los datos de nuestra red basada en ZASA, proponemos aqu
igualmente el desarrollo de una aplicacin para PC que nos permita monitorizar e interactuar con la supuesta aplicacin ZigBee del punto anterior.

114

CAPTULO 5: CONCLUSIONES Y LNEAS FUTURAS DE TRABAJO

Apndice A

Desarrollo de una aplicacin para las comunicaciones va el puerto serie


Introduccin
El objetivo de este anexo es mostrar el desarrollo de una aplicacin de PC que se comunique, va el puerto serie, con un dispositivo que ejecute ZASA. As, podremos monitorizar en nuestro ordenador algunos de los parmetros de los distintos dispositivos. Esta funcionalidad es muy similar a la que nos dan Z-Tool o

Sensor Monitor.

No obstante, nuestro objetivo es simplemente abrir una posible va de

trabajo futuro ya que, adaptando esta aplicacin a nuestros requerimientos, podramos comunicarnos con cualquier microprocesador. La manera que tenemos de comunicar el PC y el microprocesador MSP430 es a travs de la conexin UART que nos proporciona el conector USB del

kit

eZ430-RF2480 (seccin 3.1.1). ZASA, la aplicacin

cargada en dicho microprocesador, tiene un mdulo especialmente diseado para las comunicaciones por el puerto serie: MT (seccin 3.1.5). Bsicamente, lo que hace esta parte del cdigo es enviar una copia por la conexin UART de cualquier comando intercambiado entre los integrados MSP430 y CC2480. As, podremos monitorizar algunos de los parmetros de la red. Adems de enviar esta copia, el mdulo MT tambin hace que el microprocesador MSP430 enve una copia hacia el CC2480 de cualquier comando que reciba por la conexin UART. Esto nos permite controlar, en cierta medida, el CC2480 desde el PC. Respecto a ZASA, podremos monitorizar los datos recibidos por el coordinador, identicar el tipo de dispositivo conectado al PC (coordinador, el dispositivo, etc. El entorno de desarrollo que hemos elegido es Visual Studio y el lenguaje de programacin Visual Basic .NET. Repetimos aqu que, aunque esta aplicacin est especcamente desarrollada para funcionar junto a ZASA, el esquema que deberamos seguir para comunicarnos con cualquier otra aplicacin en un microprocesador sera muy similar. 115

router, dispositivo nal), descubrir la topologa de red, resetear

116CAPTULO A: DESARROLLO DE UNA APLICACIN PARA LAS COMUNICACIONES VA EL PUERTO SERIE

Funcionamiento general
Lo primero que haremos al iniciar nuestra aplicacin es indicar el puerto serie utilizado (COM1, COM2, etc.). Una vez hecho esto se establecer la conexin y leeremos continuamente todos los bytes recibidos por dicho puerto, gracias a la conexin UART entre el PC y el MSP430. Estos bytes forman los comandos que se intercambian los integrados MSP430 y CC2480, enviados a hacia el PC gracias al mdulo MT de ZASA. El formato de estos comandos, que ha sido expuesto la seccin 3.1.2, se muestra de nuevo en la gura A.1.

Figura A.1: Formato de trama de comunicacin entre microprocesador y CC2480

Cada comando recibido ser identicado gracias al campo Comando, de tamao dos bytes. Para una descripcin detallada de todos los comandos disponibles se recomienda la lectura del documento [12] Para que nuestra aplicacin funcione correctamente debemos conectar el dispositivo al PC antes de que haya sido congurado como coordinador, nuestra aplicacin sern: 1. Leemos todos los comandos recibidos por el puerto serie. Si el comando recibido es

router

o dispositivo nal. Si estoy es as, los pasos que seguir

zb_start_conf

esto signica que el usuario ha presionado el pulsador y el dispositivo ha sido congurado. En este caso enviamos el comando

zb_read_conguration

con el parmetro ZCD_NV_LOGICAL_TYPE

en el campo de datos. As, estaremos preguntando al nodo cul es su tipo lgico. 2. Recibimos un comando como respuesta a la anterior solicitud (comando SRSP). Dicho comando nos especicar en su campo de datos el tipo lgico del dispositivo conectado. Mostraremos por pantalla si es un coordinador de red,

router

o un dispositivo nal. o un dispositivo nal (fuentes de datos), no se realizar

3. Si el dispositivo conectado es un

router

ninguna tarea ms. Si es un coordinador (sumidero) mostraremos por pantalla los valores de temperatura y voltaje recibidos, as como la direccin corta del nodo que nos enva dichos datos. Esto se consigue ignorando todos los comandos recibidos excepto

zb_receive_data_ind, que contiene tanto

la informacin enviada por la fuente como su direccin corta. Bsicamente esta es la funcionalidad de nuestra aplicacin. Aunque es muy simple, como ya hemos dicho, slo pretende ser una muestra de cmo realizar las comunicaciones entre PC y microcontrolador.

117

Diagrama de ujo
En la gura A.2 mostramos el diagrama de ujo de nuestra aplicacin.

Figura A.2: Diagrama de ujo

Ejemplo de funcionamiento
En la gura A.3a vemos la pantalla inicial de la aplicacin de comunicacin. Lo primero que debemos hacer es introducir el puerto serie al cual hemos conectado nuestro dispositivo. A continuacin presionaremos el pulsador para congurarlo. Si dicho dispositivo es un coordinador de red, la pantalla de eventos se mostrar roja. Conforme el dispositivo, que en este caso funciona como sumidero, reciba datos, se irn mostrando por pantalla (gura A.3b). Cada vez que recibimos un paquete de datos proveniente de una fuente se muestra por pantalla DATOS RECIBIDOS, la direccin corta del dispositivo que nos ha enviado dicho paquete, el valor de la temperatura y el del voltaje. Si por contra, el dispositivo es un

router

o un dispositivo nal, la pantalla se colorear azul o amarillo, respectivamente, y la aplicacin termina su funcionamiento. En la gura A.3c se muestra el caso en el que el dispositivo conectado al puerto serie es un

router.

118CAPTULO A: DESARROLLO DE UNA APLICACIN PARA LAS COMUNICACIONES VA EL PUERTO SERIE

(a) Inicio

(b) Coordinador recibiendo datos

(c) Router

Figura A.3: Aplicacin desarrollada para PC en funcionamiento

Referencias
[1] Santa Cruz Institute for Particle Physics.

http://scipp.ucsc.edu/ http://focus.ti.com/lit/ml/swrp086a/swrp086a.pdf

[2]

Texas Instrumentas, TI Low Power Wireless, ZigBee Technical Overview, 2007, Documento en formato pdf accesible por internet en la direccin:

[3]

L. Jin-Shyan, S. Yu-Wei, S. Chung-Chou, A Comparative Study of Wireless Protocols: Bluetooth, UWB, ZigBee, and Wi-Fi,

(IECON),
[4]

The 33rd Annual Conference of the IEEE Industrial Electronics Society

Taipei (Taiwan), Noviembre, 2007. Documento en formato pdf accesible por internet en

la direccin:

http://eee.guc.edu.eg/Announcements/Comparaitive_Wireless_Standards.pdf http://www.bluetooth.com

URL de Bluetooth SIG.

[5]

J.C. Cano, J.M. Cano, E. Gonzlez, C. Calafate, P. Manzoni, Evaluation of the Energetic Impact of Bluetooth Low-Power Modes for Ubiquitous Computing Applications, 3rd ACM* International Workshop on Performance Evaluation of Wireless Ad Hoc, Sensor, and Ubiquitous Networks, Octubre, 2006.

[6]

Wi-Fi Enero,

and 2002.

Bluetooth Documento

Interference en formato

Issues, pdf

Revisin por

1,

Informe en

interno, la

HP,

accesible

iternet

direccin:

http://www.hp.com/rnd/library/pdf/WiFi_Bluetooth_coexistance.pdf
[7] K. Mandke, H. Nam, L. Yerramneni, C. Zuniga, The Evolution of UWB and IEEE 802.15.3a for Very High Data Rate WPAN, Informe interno, Mayo, 2003. Documento en formato pdf acesible por internet en la direccin:

http://users.ece.utexas.edu/~mandke/docs/Evolution_of_UWB.pdf

[8]

D. Takahashi, Tzero Technologies shuts down; that's the end of ultrawideband, Publicacin electrnica Venture Beat, Febrero, 2009. Documento accesible por internet en la direccin: http://venturebeat.com/2009/02/12/tzero-technologies-shuts-down-thats-the-end-of-ultrawideband/

[9]

ZigBee Alliance, ZigBee Specication, Enero, 2008.

[10] IEEE

Computer Layer

Society, (PHY)

Part

15.4:

Wireless for

Medium

Access

Control

(MAC)

and

Physical

Specications 2006.

Low-Rate accesible

Wireless por

Personal en

Area la

Networks direccin:

(WPANs),

Septiembre,

Documento

internet

http://standards.ieee.org/getieee802/download/802.15.4-2006.pdf
119

120

REFERENCIAS

[11] A. Koubaa, M. Alves, E. Tovar, IEEE 802.15.4 for Wireless Sensor Networks: A Technical Overview, TR-050702,

Technical Report, Julio, 2005. Documento direccin: http://www.hurray.isep.ipp.pt/asp/

en formato pdf accesible por internet en la

[12] CC2480 Interface Specication, SWRA175A, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:

http://focus.ti.com/lit/er/swra175a/swra175a.pdf

[13] CC2480 Data Sheet, SWRS074A, Texas Instruments, Mayo, 2008. Documento en formato pdf accesible por internet en la direccin:

http://focus.ti.com/lit/ds/symlink/cc2480a1.pdf http://focus.ti.com/docs/toolsw/folders/print/zSWRA19 accesible versin por 1.5, Texas en la Instrudireccin:

[14] Simple API for Z-Stack, SWRA196 versin 1.2, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:

stack.html#Technical Documents
[15] Z-Stack ments, Application Abril, 2008. Programming Documento en formato

Interface, pdf

internet

http://focus.ti.com/docs/toolsw/folders/print/z-stack.html#Technical Documents
[16] Errata Notes CC2480, SWRZ027, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:

http://focus.ti.com/docs/prod/folders/print/cc2480a1.html http://focus.ti.com/docs/prod/folders/print/cc2480a1.html . http://iar.com/website1/1.0.1.0/220/1/


SLAU144E, accesible por Texas internet Instruments, en la Julio, direccin:

[17] CC2480 Developer's Guide, SWRA176, Texas Instruments, Mayo, 2008. Documento en formato pdf accesible por internet en la direccin:

[18] IAR Embedded Workbench for TI MSP430 [19] MSP430x2xx 2008. Family en User's formato

Guide, pdf

Documento

http://focus.ti.com/docs/prod/folders/print/msp430f2274.html
[20] MSP430F22x2, ments, Julio, MSP430F22x4 2007. Documento Mixed en Signal Microcontroller, pdf accesible por SLAS504B, internet en Texas la Instruformato direccin:

http://focus.ti.com/docs/prod/folders/print/msp430f2274.html
[21] CCZACCC06 struments, Target Board Schematics en 1 3, Project pdf No. 02598, por Revisin internet 1.3, en la Texas InMarzo, 2008. Documento formato accesible direccin:

http://focus.ti.com/docs/toolsw/folders/print/ez430-rf2480.html
[22] eZ430-RF2480 Demonstration Kit, SWRU151A, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:

rf2480.html
[23] Digital Documento Phosphor en Oscilloscopes formato pdf

http://focus.ti.com/docs/toolsw/folders/print/ez4303012B, por Tektronix, internet en Agosto, la 2005. direccin:

TDS accesible

http://www.valuetronics.com/Details.aspx?ProdID=72&Model=Tektronix_TDS3000B %20Series
[24] PS2520, 1997. PS2520G, Documento en PS2521 formato & PS2521G pdf accesible User por Manual, internet Tektronix, en la Enero, direccin:

http://www.ptc.edu/OnlineLabs/Devices/Manuals/PS2520G_um.pdf

REFERENCIAS

121

[25] HP 1996.

34401A

User's en

Guide, formato

Part pdf

Number

34401-90004, por

Hewlett-Packar, en la

Febrero, direccin:

Documento

accesible

internet

http://centrum.feld.cvut.cz/?download=_/hp34401a/hp34401.pdf
[26] CC2520 Datasheet, SWRS068, Texas Instruments, Diciembre, 2007. Documento en formato pdf accesible por internet en la direccin: [27] CC2520-CC2591EMK to 2008. Documento Quick en

http://focus.ti.com/lit/ds/symlink/cc2520.pdf
Guide, pdf SWRU172A, accesible por Texas internet Instruments, en la Agosdireccin:

Start formato

http://focus.ti.com/lit/ml/swru172a/swru172a.pdf
[28] SmartRF05 zo, 2009. Evaluation Documento Board en User's Guide, pdf SWRU210, por Texas internet Instruments, en la Marformato accesible direccin:

http://focus.ti.com/lit/ug/swru210/swru210.pdf
[29] eZ430-RF2480 ments, Abril, Sensor 2008. Monitor User's en Guide, pdf Revisin accesible B, por SWRU157, internet en Texas la InstruDocumento formato direccin:

http://focus.ti.com/lit/ug/swru157b/swru157b.pdf
[30] SmartRF Febrero,

Packet

Snier

User en

Manual

Rev.

1.9,

SWRU187, por internet

Texas en

Instruments, la direccin:

2009.

Documento

formato

pdf

accesible

http://focus.ti.com/lit/ug/swru187a/swru187a.pdf
[31] MSP430 nio, 2000. IAR EMBEDDED en WORKBENCH pdf

Tutorials, por

IAR en

Systems, la

Ju-

Documento

formato

accesible

internet

direccin:

http://www.eecs.berkeley.edu/~boser/courses/40/labs/docs/IAR %20tutorial.pdf
[32] URL de MATLAB.

http://www.mathworks.com/ http://focus.ti.com/lit/ds/symlink/ina195.pdf

[33] Current Shunt Monitor, SBOS307, revisin E, Texas Instruments, Mayo, 2004. Documento en formato pdf accesible por internet en la direccin: [34] URL de Texas Instruments sobre TIMAC. [35] URL de Z-Wave Alliance. [36] URL de Bluetooth

http://focus.ti.com/docs/toolsw/folders/print/timac.html

http://www.z-wavealliance.org

Low Energy Technology. http://www.bluetooth.com/Bluetooth/Products/Low_Energy.htm http://focus.ti.com/lit/ds/symlink/cc2520.pdf http://www.ni.com/labview/


SWRU133, por Texas internet Instruments, en la Ocaccesible direccin:

[37] CC2520 Data Sheet, SWRS074A, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:

[38] URL de National Instruments sobre LabVIEW. [39] CC2430DK tubre, 2007. Development Documento Kit en User formato

Manual, pdf

http://focus.ti.com/lit/ug/swru133/swru133.pdf

Das könnte Ihnen auch gefallen