evaluación y análisis del microcontrolador pic32 para utilizarlo en implementación de...

12
Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores Fernando Xavier Arias Ing. Luis Garrido Dr. Humberto Rodríguez Resumen Palabras clave: PIC32, redes, sensores, inalámbricos, arquitectura. El principal enfoque de este artículo es la observación de las herramientas embebidas en la arquitectura del PIC32. Se analizan sus características y se identifican cuales de las mismas son las más críticas para la implementación de los nodos dentro de una red de sensores inalámbricas. Se realizan algunas pruebas de transmisión para observar el desempeño del hardware de transmisión y el enlace de comunicación entre dos nodos implementados con el PIC32. También, se logran establecer relaciones entre su velocidad de procesamiento, consumo energético y tasa de errores de transmisión. Se presentan los resultados correspondientes a las pruebas realizadas. Abstract Keywords: PIC32, network, sensor, wireless, architecture. The main focus of this article is the observation of the PIC32 architecture’s embedded tools. Its main characteristics are analyzed and the ones most critical to the implementation of a wireless sensor network’s node are identified. Data transmission and reception tests are conducted in order to observe and document the performance of both the transceiver hardware and the data link between two PIC32 wireless sensor nodes. Also established within this article is the existing relationship between processing speed, transmission bit error rate and energy usage in a PIC32 wireless sensor node. The experimental results are presented alongside their respective tests.

Upload: xavier-arias

Post on 31-Oct-2015

72 views

Category:

Documents


2 download

DESCRIPTION

The main focus of this article is the observation of the PIC32 architecture’s embedded tools. Its main characteristics are analyzed and the ones most critical to the implementation of a wireless sensor network’s node are identified. Data transmission and reception tests are conducted in order to observe and document the performance of both the transceiver hardware and the data link between two PIC32 wireless sensor nodes. Also established within this article is the existing relationship between processing speed, transmission bit error rate and energy usage in a PIC32 wireless sensor node. The experimental results are presented alongside their respective tests.

TRANSCRIPT

Page 1: Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

Fernando Xavier AriasIng. Luis Garrido

Dr. Humberto Rodríguez

Resumen

Palabras clave: PIC32, redes, sensores, inalámbricos, arquitectura.

El principal enfoque de este artículo es la observación de las herramientas embebidas en la arquitectura del PIC32. Se analizan sus características y se identifican cuales de las mismas son las más críticas para la implementación de los nodos dentro de una red de sensores inalámbricas. Se realizan algunas pruebas de transmisión para observar el desempeño del hardware de transmisión y el enlace de comunicación entre dos nodos implementados con el PIC32. También, se logran establecer relaciones entre su velocidad de procesamiento, consumo energético y tasa de errores de transmisión. Se presentan los resultados correspondientes a las pruebas realizadas.

Abstract

Keywords: PIC32, network, sensor, wireless, architecture.

The main focus of this article is the observation of the PIC32 architecture’s embedded tools. Its main characteristics are analyzed and the ones most critical to the implementation of a wireless sensor network’s node are identified. Data transmission and reception tests are conducted in order to observe and document the performance of both the transceiver hardware and the data link between two PIC32 wireless sensor nodes. Also established within this article is the existing relationship between processing speed, transmission bit error rate and energy usage in a PIC32 wireless sensor node. The experimental results are presented alongside their respective tests.

Introducción

Las redes inalámbricas de sensores son arreglos de sensores autónomos distribuidos a lo largo de un espacio geográfico que se desea monitorear. Éstos sensores, o nodos, disponen típicamente de un elemento sensor que transforma una condición física del entorno (temperatura, presión, humedad, vibración, intensidad luminosa, etc.) en una señal eléctrica,

algún dispositivo de transmisión inalámbrica de datos (Infrarrojo, láser, ondas de radio, etc.), una fuente de energía (usualmente una batería y/u otro dispositivo capaz de obtener energía del medio) y un microcontrolador, que realiza la gestión de las funciones de los elementos anteriores de una manera previamente establecida para el correcto funcionamiento de la red.

Page 2: Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

Una de las principales dificultades al momento de desplegar una red inalámbrica de sensores es asegurar que los nodos de ésta dispongan siempre de energía para realizar sus funciones satisfactoriamente. Debido a esto, resulta de muy alta prioridad diseñar los nodos de la red con la más alta eficiencia energética que sea económicamente rentable para asegurar el máximo aprovechamiento de los limitados recursos de los que disponen los nodos de la red. En la actualidad existe una gran diversidad de controladores utilizados en redes inalámbricas de sensores. En éste artículo, se presenta al microcontrolador PIC32 de Microchip como una alternativa en la implementación de arquitecturas de redes inalámbricas de sensores. Se considera al PIC32 como una plataforma adecuada para aplicaciones de redes inalámbricas de sensores debido a que es suficientemente versátil para ser utilizado fácilmente en aplicaciones en donde se hace necesario el uso de una cantidad considerable de recursos a alta velocidad y con un alto grado de eficiencia energética. Haciendo usos de sus características y propiedades, se ejecutan algunos programas sobre la arquitectura del PIC32 que nos permita observar su comportamiento utilizando algunas de las herramientas necesarias en la implementación de redes inalámbricas de sensores.

Material y Método

Para los efectos de éste artículo, se utilizarán las siguientes herramientas tanto de hardware como de software para la obtención de datos experimentales.

Microchip PIC32 Starter Kit II: Microcontrolador que gestionará todas las funciones de los nodos de la red. Mostrado en la figura 1.

Figura 1 – PIC32 Starter Kit II

Microchip Expansion Board I/O: Tarjeta de expansión que permite fácil acceso a todos los puertos del microcontrolador y facilidades de acople para módulos de funcionalidades adicionales. Mostrado en la figura 2.

Figura 2 – Microchip Expansion Board I/O

Módulo de transmisión/recepción inalámbrica MRF24J40MA: Se puede acoplar a la tarjeta de expansión para su integración con el microcontrolador PIC32, dispone de una antena de radiofrecuencias para transmisión/recepción de datos de manera inalámbrica. Mostrado en la figura 3.

Page 3: Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

Figura 3 – Módulo de transmisión/recepción inalámbrica MRF24J40MA

MPLAB IDE: Entorno de desarrollo para el PIC32.

Compilador C32: Transforma las instrucciones del entorno MPLAB IDE a lenguaje de máquina que puede interpretar el PIC32.

La arquitectura del PIC32 dispone de algunas características especiales que la hacen muy interesante en el contexto de redes inalámbricas de sensores, entre las cuales podemos mencionar las siguientes:

Modos alternativos de operación IDLE y SLEEP, que maximizan la eficiencia energética del microcontrolador en aplicaciones en las que se requiere únicamente el funcionamiento periódico no continuo de éste enviándolo a ‘dormir’ (modo sleep), o a ejecutar en un modo de mínimo consumo energético (modo idle). A pesar de configurar el microcontrolador para entrar en cualquiera de éstos modos de operación, los periféricos externos y los puertos entrada/salida de éste se mantienen activos, en caso de darse cualquier interrupción o evento que requiera de la ejecución de alguna tarea por el microcontrolador.

Operaciones atómicas de SET, CLEAR e INVERT sobre ciertos registros periféricos, y 4 canales DMA, que pueden ser accesados por todos los módulos del PIC32 , lo cual contribuye a una reducción en la latencia y un aumento en la eficiencia de ejecución de las instrucciones, ya que estas instrucciones y canales permiten realizar una manipulación de la información almacenada en memoria, aprovechando mejor los ciclos de instrucción y el esquema de canalización de instrucciones (instruction pipeline) de 5 etapas que caracteriza a la arquitectura del PIC32

Librería gratuita de funciones para procesamiento digital de señales de alto rendimientocapaz de realizar una transformada rápida de Fourier (FFT) de 256 puntos en 283µs, lo que representa una mejora del 22% sobre la última librería de procesamiento digital de señales de Microchip.

Módulo de comunicación en paralelo maestro/esclavo altamente configurable, que permite comunicación con dispositivos en paralelo de 8 y/o 16 bits (LCD's, memoria externa y/o otros microprocesadores).

Calendario y Reloj en tiempo real, que asegura la exactitud temporal de la operación del sistema durante períodos extendidos de tiempo, con una intervención mínima o nula del CPU. Un sistema que pueda llevar cuenta del tiempo de manera exacta es vital en el funcionamiento de un sistema en tiempo real, en caso de aplicaciones de monitoreo periódico.

Seis módulos UART y hasta 5 módulos I²C, que permite que se realicen múltiples operaciones de transmisión/recepción de manera serial con periféricos externos de manera síncrona o asíncrona, sin la necesidad de multiplexar éstas señales a través de una menor cantidad de puertos e incurrir en la

Page 4: Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

penalidad de latencia que esto significa para el sistema en general. Además de esto, posee soporte nativo para los protocolos de comunicación RS-232, RS-485, LIN e IRdA, lo que nos presenta una plataforma versátil muy compatible con una variedad de periféricos externos, de ser necesario.

Cinco módulos deInput y Output Compare, que proporcionan una importante herramienta de programación , que presenta la facilidad de poder recibir una señal mientras se está ejecutando otro proceso, y mantener una referencia del tiempo exacto (además de una bandera) en que recibió la señal en memoria. De igual manera, pueden generarse eventos (señales) en tiempos específicos de acuerdo a una referencia temporal almacenada en memoria. El módulo output compare puede igualmente generar una señal PWM como uno de los eventos programables, lo que representa una facilidad al momento de realizar control de dispositivos externos en base a las lecturas/eventos del microprocesador.

Figura 4 – Módulo a utilizar en las pruebas (PIC32 Starter Kit II acoplado al Expansion Board I/O, con

su respectivo módulo RF).

De igual manera, es importante mencionar el hecho que la arquitectura del microcontrolador

PIC32 cuenta con los recursos suficientes como para poder cargar el sistema operativo de tiempo real FreeRTOS, que permite la implementación de dispositivos basados en PIC32 que sean capaces de ejecutar aplicaciones en tiempo real, que tienen requisitos muy estrictos de latencias y capacidades tanto de procesamiento como de rápido almacenamiento/llamado de datos.

Ya disponiendo de todas las herramientas necesarias, se realizarán diferentes pruebas a nivel de hardware delimitadas de la siguiente manera:

Pruebas de transmisión:o Medición de la potencia disipada por el

nodo en función de su rata de transmisión de datos.

o Medición de las tasas de error de bit resultantes de distintas configuraciones de distancia entre dos nodos y ratas de transmisión de datos.

o Medición de la eficiencia del uso del ancho de banda de las señales transmitidas en función de su rata de transmisión.

Pruebas de consumo energético:o Medición de la potencia disipada por el

PIC32 en función a su velocidad de procesamiento.

Resultados

Pruebas de transmisión:Para la primera parte de las pruebas de transmisión, se establecieron seis distancias fijas conocidas, y se hicieron mediciones de tasas de errores de bit a las distintas distancias. Se colocó un nodo configurado para transmitir una serie de 8 bits conocidos de información en un punto fijo. Debido a la magnitud de las distancias de la comunicación entre los dos nodos, los valores específicos de la distancia de éstas se obtuvieron promediando las mediciones obtenidas utilizando

Page 5: Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

un medidor de distancia GPS de alta precisión. Las tasas de error de bit se obtuvieron utilizando una lógica en el receptor que comparara el valor conocido transmitido por el nodo que envía datos con lo recibido en la antena, que en condiciones ideales, deberá ser siempre igual al valor conocido transmitido.

Se realizó un conjunto de 10 transmisiones controladas, y 10 transmisiones en forma de “ráfaga” de 8 bits cada una para cada distancia. Debido al hecho que es mucho más intuitivo realizar una comparación directa entre la razón de error de bit y la potencia recibida, y tomando en cuenta el hecho que existe una relación matemática establecida entre la distancia de un enlace y las pérdidas en el espacio libre de potencia transmitida por el nodo configurado como transmisor y recibida por la antena en el nodo receptor en función de la frecuencia de comunicación (en éste caso 2.4GHz), se tabuló la relación existente entre la razón de error de bit y la potencia recibida en el receptor. De la hoja de datos del módulo transceptor RF MRF24J40MA se obtiene que la potencia de transmisión es de 0+ dBm, por lo que la potencia recibida será igual a ésta cantidad menos las pérdidas en el espacio libre.

Los valores calculados para la potencia recibida se calcularon utilizando la Ecuación de Friis, mostrada e ilustrada en la figura 5, muy utilizada en el modelado de radioenlaces con línea de vista, y nos permite obtener las pérdidas en el espacio libre de una señal transmitida únicamente en función de la frecuencia a la que se transmite (2.4GHz para el enlace en cuestión) y la distancia entre embos puntos del enlace. La relación es la siguiente, en donde d es la distancia en kilómetros entre ambos puntos del enlace, y f es la frecuencia de transmisión, en MHz:

Figura 5 – Ecuación de Friis, y las pérdidas que representa dentro de radioenlace de

comunicaciones.

El bus de periféricos del PIC32 es el encargado de controlar la frecuencia de operación de los periféricos externos al microprocesador, ésta frecuencia puede ser controlada mediante un divisor de la frecuencia del microprocesador, el cual puede ser fácilmente modificado dentro del código del programa. Se hicieron pruebas con tres valores distintos de éste divisor: 1, 4 y 8. Conociendo que la frecuencia del microcontrolador es de 40MHz, esto nos da frecuencias de operación para el periférico que controla la comunicación serial de 40MHz, 10MHz y 5MHz, respectivamente. Basado en éstos resultados se confeccionó la tabla 1.

40MHz 10MHz 5MHzPotencia Recibida

(dBm)

BER (Errores/bit)

BER (Errores/bit)

BER (Errores/bit)

-54.72 0.00000 0.00000 0.00000-64.98 0.00000 0.00000 0.00000-73.13 0.00000 0.05000 0.00000-75.58 0.00000 0.00000 0.13750-78.39 0.00625 0.00000 0.00000

Tabla 1 – Razón de Error de bit vs. Potencia Recibida

Page 6: Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

Figura 6 – Razón de Error de bit vs. Distancia de transmisión.

Pruebas de consumo energético:Se varió cuidadosamente la frecuencia del oscilador interno mediante la configuración de los distintos divisores y multiplicadores de frecuencia del PIC32 para ajustarla a los valores de referencia mostrados en la tabla 2, se obtuvo las mediciones de corriente consumida, y los cálculos de potencia respectivos para un voltaje de alimentación de 9.5V.

Frecuencia

Corriente(mA) Potencia(W)

80MHz 220.07 2.09

70MHz 219.18 2.08

60MHz 218.94 2.07

50MHz 188.58 1.79

40MHz 176.60 1.67

Tabla 2 – Potencia disipada vs. frecuencia de operación

Figura 7 – Potencia disipada vs. frecuencia de operación

Discusión

Durante la primera sección de las pruebas de transmisión, que correspondía en realizar mediciones sobre la relación existente entre la distancia entre los dos extremos del enlace de comunicación y la tasa de error de bit de éste.

Es importante mencionar, que durante el proceso de realización de las pruebas de transmisión en el campo, hubo ciertas ocasiones en las que se dio pérdida de paquetes. En otras palabras, el receptor no registraba la recepción de información con algunos bits erróneos con respecto a la referencia establecida, sino que más bien el nodo receptor simplemente no registraba ninguna información recibida del otro lado de la transmisión. Esto se tomó en cuenta dentro de las tablas como un mensaje con 8 bits erróneos, y de ésta manera se integró dentro de los cálculos para la razón de error de bit.

Otro punto importante, que a pesar del hecho que si la comunicación entre los dos nodos se iniciaba mientras éstos estaban a relativa proximidad uno del otro y lentamente se incrementaba la distancia entre ellos, éstos eran capaces de comunicarse a distancias de hasta 185m con una tasa de error de bit bastante baja y pocas pérdidas de paquetes, lo cual no era el

Page 7: Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

caso si se intentaba iniciar la comunicación a grandes distancias, a las cuales se dificultaba establecer una comunicación inicial entre los dos puntos. Debido a ésta particularidad, se procuró colocar los nodos a las distancias establecidas previo al inicio de la comunicación entre ellos. Fuera de los resultados presentados, encontramos experimentalmente que desde la tercera distancia (~45.3m) se hacía crucial la falta de obstrucciones metálicas (automóviles estacionados, en el caso de nuestro ambiente de prueba) para el establecimiento inicial del enlace. Encontramos también que la distancia máxima de separación aproximada con una línea de vista relativamente libre de obstrucciones bajo la que los módulos eran capaz de inicializar un enlace de comunicaciones era de aproximadamente 130m.

Con respecto a las mediciones realizadas utilizando diferentes tasas de bit, es un axioma establecido que cuanto mayor sea la tasa de bits de una transmisión dada, mayor será su relación señal a ruido, y consecuentemente mayor será su tasa de error de bit.

Sin embargo, dentro de nuestras pruebas de campo, nos percatamos que al colocar la frecuencia de reloj de periféricos a frecuencias menores que la de operación del microcontrolador (40MHz) obtuvimos resultados que no se apegaban a éste hecho. Según los resultados, al disminuir la frecuencia del módulo de comunicación serial (un periférico externo del PIC32), que debería consecuentemente disminuir la tasa de bits de transmisión, y debería asegurar una comunicación más robusta, resistente a ruido que a frecuencias mayores, con el costo de una menor velocidad de transmisión, la razón de error de bit parecía tener una relación directamente proporcional a la tasa de transmisión de bits, cuando éstos factores teóricamente mantienen una relación inversamente proporcional.

Las pruebas de consumo energético presentan resultados que se apegan a lo esperado, es decir, que la potencia disipada por el PIC32 sea proporcional a su frecuencia de operación. En la figura 2 se hace gráficamente evidente ésta relación, y se observa que aunque en las tres primeras frecuencias de operación la potencia disipada no varía por más de 1mA, ésta disminuye por magnitudes de poco más de 30mA al pasar de 60MHz a 50MHz, y de casi 12mA al pasar de 50MHz a 40MHz

Conclusión

Éste artículo presenta un análisis preliminar que profundiza sobre las cualidades de potencia y eficiencia de comunicación presentes en el microcontrolador PIC32 y su módulo compatible de transmisión/recepción RF. Se consideraron éstos como los factores más importantes al momento de considerar una plataforma específica para ser aplicada a redes inalámbricas de sensores, ya que, tomando en cuenta el hecho que en casi la totalidad de las aplicaciones, se requiere que sensores de difícil acceso utilicen de la manera más eficiente posible una fuente de energía de capacidad limitada.

La principal ventaja del PIC32 sobre otras plataformas consiste en su excepcional capacidad y velocidad de procesamiento, lo que reduce los problemas de latencia que pueden surgir al momento de querer monitorear información en tiempo real a través de la red utilizando plataformas con velocidades y capacidades de procesamiento inferiores. Además de esto, su funcionalidad nativa con el protocolo propietario de comunicación inalámbrica MiWi, de Microchip le proporciona una excepcional plataforma de comunicación inalámbrica a distancias grandes y con robustos procesos de corrección de errores que aseguran una comunicación eficaz en una amplia gama de ambientes de operación.

Page 8: Evaluación y análisis del microcontrolador PIC32 para utilizarlo en implementación de arquitecturas de redes inalámbricas de sensores

Sin embargo, ésta substancial mejora que mantiene el PIC32 sobre sus competidores tiene un precio, y es que, mientras se encuentre operando a su máxima velocidad de procesamiento, su consumo energético puede alcanzar hasta poco más de 2W, lo cual puede ser mitigado en gran parte utilizando código optimizado, uso liberal de los estados de IDLE y SLEEP con los que cuenta el microprocesador y manteniendo las transmisiones de datos lo más concisas que sea posible.

Sería mandatorio además para trabajos futuros revisar la anomalía observada en los resultados de las pruebas de transmisión con diferentes tasas de bits de transmisión, y profundizar y verificar la explicación para la que la calidad del enlace empeore al disminuir la tasa de bits de transmisión, cuando debería ser todo lo contrario.

Cabe mencionar, que actualmente se está desarrollando una plataforma redes inalámbricas de sensores en tiempo real basada en PIC32 y una modificación del sistema operativo FreeRTOS llamada SIWA-RTOS, cuya concepción radica precisamente en la necesidad de un sistema operativo de tiempo real especialmente optimizado para su implementación en sistemas de redes inalámbricas de sensores en tiempo real. Ésta plataforma tendrá la particularidad que será diseñada como una red ad-hoc. Es decir, además de implementar la posibilidad que uno o varios nodos se comuniquen directamente con un concentrador previamente designado, éstos podrán comunicarse con el concentrador enviando su información de manera indirecta enviando su información hacia nodos adyacentes que se encuentren a su alcance de manera consecutiva hasta que la información sea capaz de llegar al concentrador, lo que permite el despliegue de redes inalámbricas de sensores de cobertura mucho mayor sin la necesidad de la

inversión en concentradores o estaciones repetidoras adicionales que proporcionen una cobertura para el limitado número de sensores a su alcance. Además, debido a la naturaleza dinámica del flujo de información dentro de la red, ésta será mucho más resistente a daños a enlaces o nodos localizados, debido a que cada nodo de la red, en esencia, se comporta como un concentrador, y en caso de ser imposible transmitir información a través de un enlace dañado, ésta se podrá transmitir hacia el concentrador de monitoreo a través de otro camino. Todo esto empleando las mismas herramientas de hardware que las empleadas para la confección de éste artículo.

Bibliografía

[ 1 ] PIC32MX5XX/6XX/7XX Data Sheet - Microchip [en línea]. http://ww1.microchip.com/downloads/en/devicedoc/ds-61156b.pdf [Consulta: 9 agosto 2011].

[ 2 ] MRF24J40MA Data Sheet - Microchip [en línea]. http://ww1.microchip.com/downloads/en/devicedoc/70329b.pdf [Consulta: 9 agosto 2011].