Documente Academic
Documente Profesional
Documente Cultură
El protocolo de red que se utilizará es el denominado MiWi que es propietario del fabricante estadounidense
Microchip y que está basado en el estándar de IEEE 802.15.4 para redes inalámbricas de área personal. Para
ajustar los parámetros de funcionamiento de la red o realizar modificaciones, el usuario deberá consultar los
siguientes documentos de referencia de Microchip:
MiWi® propone una implementación, liviana y royaltie-free, de la recomendación IEEE 802.15.4-A que se apoya
en una herramienta para manejar los transceptores a nivel del controlador de acceso al medio llamada MiMAC y
una interfaz de cara al manejo de los protocolos propietarios (MiWi, MiWi P2P y MiWi PRO) llamada MiApp.
• MiApp está diseñada para permitir la flexibilidad de utilizar cualquier protocolo inalámbrico propietario de
Microchip con poca o ninguna modificación en la capa de aplicación.
• MiMAC está diseñada para permitir la flexibilidad de utilizar cualquier transceptor RF de Microchip con la misma
capa de protocolo propietario de Microchip.
El protocolo MiWi (MiWi Wireless Networking Protocol Stack) es un protocolo simple, diseñado para redes de bajas
tasas de transmisión de datos, distancias cortas y bajo costo. MiWi está orientado a redes relativamente pequeñas,
con pocos saltos. Una red que utilice el protocolo MiWi puede tener un máximo de 1024 nodos. Cada coordinador
puede tener máximo 127 nodos a su cargo o “hijos”, con un máximo de 8 coordinadores en una red. Los paquetes
pueden viajar un máximo de 4 saltos en la red y 2 saltos máximo desde el coordinador de la PAN.
MiWi P2P
El protocolo MiWi P2P modifica la capa de control de acceso al medio (MAC) de la especificación IEEE 802.15.4
agregándole comandos que simplifican el proceso de handshaking o establecimiento de la comunicación.
Topologías de Red:
El protocolo soporta las topologías P2P y estrella. No posee mecanismo de enrutamiento, de modo que el
cubrimiento de la comunicación inalámbrica se define mediante el rango del radio. No es multihop o multisalto.
Topología Estrella
Desde la perspectiva del rol de un dispositivo, la topología tiene un Coordinador de Red de Área Personal (PAN)
que inicia la comunicación y acepta conexiones de otros dispositivos. Se tienen varios dispositivos terminales (end
devices) que se unen a la comunicación. Los dispositivos terminales pueden establecer conexiones solo con el
coordinador de la PAN, no entre ellos. En cuanto al tipo de funcionalidad, el coordinador de la PAN es un FFD. Un
dispositivo terminal puede ser un FFD con su radio encendido todo el tiempo o un RFD con su radio apagado
cuando esté inactivo (idle). Sin importar su tipo funcional, los dispositivos terminales solo se pueden comunicar con
el coordinador de la PAN. (El coordinador si puede comunicarse con todos).
Desde la perspectiva del rol del dispositivo, esta topología también tiene un coordinador de PAN que inicia la
comunicación desde los dispositivos terminales. Sin embargo, cuando se unen a la red, los dispositivos terminales
no tienen que establecer su conexión con el coordinador de la PAN. En cuanto al tipo funcional, el coordinador de
la PAN es un FFD y los dispositivos terminales pueden ser FFDs o RFDs. No obstante, en esta topología los
dispositivos terminales pueden solo conectarse a un FFD y no a otro RFD, es decir, los end-devices si pueden
conectarse entre ellos pero solo con un FFD que no tiene que ser el PAN coordinator como en la topología estrella.
El protocolo MiWi P2P solo soporta redes sin beacon.
Fig. Topología Peer-to-Peer bajo el protocolo MiWi P2P
Direccionamiento de la red: Las direcciones de red se asignaran teniendo como fija para el coordinador de la red
(PAN Coordinator) la dirección 11-22-33-44-55-66-77-01. Para los nodos sensores se asignará en en el orden de
programación e incorporación como elementos de monitorización, es decir a partir del elemento 11-2233-44-55-
66-77-02 y así sucesivamente. La dirección de identificación de la red (PAN ID) será por defecto 1234.
El protocolo MiWi P2P solo soporta comunicación de un-salto, de allí que solo se transmitan mensajes con la
dirección EUI o larga. El direccionamiento corto se utiliza solo cuando el stack transmite un mensaje de difusión
amplia (broadcast). Para los transceptores de Microchip, la longitud de la dirección única puede estar entre 2 y 8
bytes, dependiendo de las necesidades de la aplicación.
El formato del protocolo MiWi P2P es un subconjunto del formato de mensaje de la especificación IEEE 802.15.4.
La figura ilustra el formato de paquete del stack y sus campos.
Fig. Campos de direccionamiento en el formato de los paquetes del protocolo MiWi P2P
En el protocolo MiWi P2P, el modo de dirección de destino se pone usualmente en el Long Address mode. El Short
Address mode se utiliza solo para mensajes tipo broadcast. Para mensajes tipo broadcast, el campo de dirección
de destino en los campos de direccionamiento se fijará en 0xFFFF.
El protocolo MiWi P2P categoriza los dispositivos con base en sus definiciones IEEE y su rol en la realización de
las comunicaciones como se indica en las tablas a continuación.
Transmisión y Recepción
Los paquetes tipo Broadcast tienen todos los dispositivos en el rango del radio y su destino IEEE 802.15.4 define
una dirección corta específica como la dirección broadcast, pero no tiene definición para la dirección larga. Como
resultado, para el receptor que cumple con IEEE 802.15.4, broadcasting es la única situación en la que el stack
MiWi P2P utiliza una dirección corta. No hay Acknowledgement para los mensajes de broadcasting.
Las mensajes o paquetes Unicast solo tienen un destino y utilizan al dirección larga como dirección de destino. El
protocolo MiWi P2P requiere Acknowledgemente para todos los mensajes unicast.
La mayor diferencia del protocolo MiWi P2P con la especificación IEEE 802.15.4 reside en el proceso de
Handshaking. El protocolo MiWi P2P está diseñado para la simplicidad y para conexiones directas en topologías
de comunicación P2P y estrella. Algunos requerimientos de IEEE 802.15.4 que van en contravía de ese propósito
son:
• El proceso de handshaking de cinco pasos, más dos time-outs, requiere un stack más complejo.
• El proceso de asociación utiliza comunicación de una-conexión en lugar del concepto de
multiconexión de la topología peer-to-peer.
Por las razones precedentes, el protocolo MiWi P2P utiliza su propio proceso de handshaking de dos pasos como
se muestra en la figura 6:
Este es uno de muchos procesos que pueden establecer múltiples conexiones, cuando sea posible, para establecer
una topología P2P. Puesto que este proceso de handshaking utiliza un comando de capa MAC, se aplica CSMA-
CA para cada transmisión. Esto reduce la probabilidad de una colisión de paquetes.
Los dispositivos de funciones reducidas (RFDs) pueden recibir el comando de petición de conexión desde varios
dispositivos de funciones completas (FFDs), pero se pueden conectar a solo un FFD. Un RFD escoge como su par
(peer) al FFD desde el que recibe la primera respuesta de conexión P2P.
Este protocolo soporta una conexión directa, punto a punto y de funcionalidad reducida y una buena variedad de
características. Todas las características pueden ser habilitadas o deshabilitadas y compiladas en el stack, según
las necesidades de la aplicación.
En la tabla se relacionan los elementos requeridos a nivel de Hardware, Software y Firmware para integrar un nodo
bajo MiWi. Inicialmente todo se plantea de la manera como se ha realizado hasta ahora, sin que esto signifique,
como se ha dicho antes, que no puedan integrarse microcontroladores o transceptores o software diferente al de
Microchip.
Tabla. Recursos necesarios para desarrollar aplicaciones con nodos sensores bajo MiWi
Elementos de Hardware Elementos de Software Elementos de Firmware
Microchip pone a disposición de los usuarios de sus productos, a través de los complementos llamados Microchip
Solutions, una serie de archivos de base que soportan varias de las funcionalidades especiales que se pueden
integrar en soluciones embebidas tales como:
Para el desarrollo e implementación de los nodos sensores se ha elegido como referencia la suite de librerías
llamada Application Libraries que ofrece Microchip de manera gratuita y que ofrece una serie de recursos para el
desarrollo de aplicaciones avanzadas que aprovechan diferentes recursos de los microcontroladores de 8, 16 y 32
bits. En este sentido se han encontrado diferencias significativas entre el soporte y los recursos que ofrece este
proveedor con lo ofrecido por otras compañías que suministran productos similares.
La especificación MiApp define las interfaces de programación entre la capa de aplicación y los protocolos de
comunicación inalámbricos propietarios de Microchip. La interface MiApp se implementa en dos formas: como
parámetros de definidos en el archivo de configuración y como un conjunto de llamadas de funciones a los
protocolos inalámbricos propietarios de Microchip. Al cumplir con la especificación MiApp, las aplicaciones pueden
utilizar cualquier protocolo propietario de Microchip. Con poca o ninguna modificación en la capa de aplicación, el
desarrollo de software puede ser cambiado fácilmente entre un protocolo de conexión con topología P2P/estrella
a un protocolo de malla completo para redes pequeñas o grandes, dependiendo de las necesidades de la
aplicación.
Como hemos mencionado, el desarrollo de la programación de los nodos se realizará utilizando el ambiente
integrado de desarrollo de Microchip para aplicaciones con microcontroladores: MPLAB. Al revisar un proyecto
relativo al protocolo MiWi nos encontramos con un escenario similar al mostrado en la figura.
Fig. Aspecto general de un proyecto de MPLAB para comunicaciones inalámbricas bajo el protocolo MiWi
En el entorno de programación existen una serie de archivos que contienen la declaración de funciones
especializadas que realizan todo tipo de operaciones matemáticas, lógicas, de búsqueda, sobre todo tipo de datos,
simples y compuestos. Estos archivos utilizan la extensión .h y se pueden incluir al principio del programa para
poder emplear las funciones que declaran.
Estos archivos de cabecera y las funciones que definen se encuentran disponibles en diferentes entornos de
programación de un mismo lenguaje de programación y es una de las características que hacen portables a los
programas en C.
En estas carpetas encontramos toda la serie de archivos de extensión .c que abarcan todas las funciones o
firmware propias del microcontrolador y sus módulos, además todo el código que garantiza el funcionamiento del
protocolo de comunicación.
Dependiendo de los microcontroladores utilizados para los elementos de red (Nodos sensores y Coordinador de la
Red de Área Personal), debe elegirse un compilador, la plataforma se apoya en compiladores que poseen la opción
de adquirirse sin costo en algunas de sus variantes, tal es el caso de los compiladores C18, C30 y XC, todos ellos
para compilación de proyectos en lenguaje C. Compiladores de Microchip para el trabajo con microcontroladores
de 8,16 y 32 bits.
A continuación se presenta la descripción de los diferentes bloques de archivos agrupados en las subcarpetas de
un proyecto para comunicación MiWi bajo el entorno de MPLAB. Los archivos tipo header como aquellos tipo
source, aparecen agrupados en cuatro bloques o conjuntos llamados: Application, Common, Protocols y
Transceivers
Al interior del proyecto MPLAB para comunicación utilizando el protocolo MiWi nos encontramos con un número
de archivos asociados que pueden ser de hasta unos treinta y cinco para el caso de los Demos, no obstante para
el caso de aplicaciones definitivas, de este conjunto se pueden prescindir de unos diez archivos puesto que
corresponden a versiones iguales del mismo archivo (header ó source), replicados para los diferentes tipos de
transceptores y de variantes de los protocolos, además también hay archivos relativos a la consola, recursos UART
y manejo de LCD, que no son necesarios en todos los casos . La totalidad de los archivos tienen que ver con tareas
como la configuración del stack MiWi, de los transceptores, del rol del nodo dentro de la red y su configuración a
nivel de direcciones, de seguridad y de específicamente del elemento de red en cuanto a sus funciones como
Coordinador o como nodo sensor.
De manera simplificada, ilustraremos la integración de un nodo nuevo nodo a la red de monitorización. En general
podemos decir, que esta integración es un proceso de cuatro pasos que describiremos a continuación.
Fig. Flujograma simplificado de integración de un nuevo nodo a la red MiWi
Paso 1: Creación del proyecto de MPLAB con los archivos MiWi de Referencia
En el entorno de programación MPLAB se trabaja con base a proyectos, constituidos por el conjunto de archivos
que se compilan para generar el archivo .hex que se transferirá al microcontrolador para ejecutar la aplicación
programada.
Se muestra en la tabla el detalle de los nombres, el tipo (source o header file) y el bloque en el cual aparecen
dentro del proyecto, de la totalidad de los archivos que constituyen el proyecto de referencia para implementar los
nodos requeridos dentro de una aplicación de monitorización ambulatoria.
Tabla. Conjunto de archivos de referencia para la implementación de nodos en la plataforma
Archivos Fuente (Source Files) Archivos Encabezado (Header files)
Application
Console.c Compiler.h
MSPI.c Console.h
TimeDelay.c GenericTypeDefs.h
MSPI.h
TimeDelay.h
Protocols
LCDBlocking.c ConfigMiWi.h
MiWi.c ConfigP2P.h
NVM.c LCDBlocking.h
P2P.c MCHP_API.h MiWi.h
SymbolTime.c NVM.h
P2P.h
SymbolTime.h
Transceivers
Crc.c ConfigMRF24J40.h
MRF24J40.c Crc.h
Security.c MCHP_MAC.h
MRF24J40.h
Security.h
Transceivers.h
A través del menú “Configure” de MPLAB y dentro de este en la opción “Select Device” se selecciona la referencia
del microcontrolador de 8, 16 o 32 bits que ejecutará la aplicación programada. La configuración del compilador
debe hacerse en concordancia con el número de bits del microcontrolador seleccionado a través de la opción
“Select Language Toolsuite” que pertenece al menú Project del entorno MPLAB.
Son cuatro los archivos que normalmente se deben intervenir para la incorporación de un nuevo nodo a la red de
monitorización, en este apartado nos ocupamos de la descripción de las intervenciones que deben realizarse sobre
dos de ellos: HardwareProfile.c y HardwareProfile.h
El archivo HardwareProfile provee las configuraciones y las funcionalidades básicas de hardware para los
microcontroladores de referencia (pertenecientes a las familias PIC18, PIC24, PIC32, dsPIC30 y dsPIC33). Este
archivo debe intervenirse para ajustar configuraciones de pines adicionales a los de las funcionalidades de
comunicaciones, lo que se conoce como la palabra de configuración de la palabra de los registros específicos, el
tipo de oscilador, prescaler, watchdog timer, reset por bajo voltaje, carácter análogo-digital y entrada-salida de los
pines, entre otros aspectos.
En estos dos archivos también se acceden a los detalles de la configuración de las conexiones
microcontroladortransceptor e, igualmente, se pueden configurar las conexiones a todos los periféricos o elementos
de entradasalida que estarán en la tarjeta electrónica del nodo sensor. Es así como encontraremos secciones de
código referidas a los leds, pulsadores, módulos LCD, la interfaz SPI y además se tendrá acceso a configurar
recursos como las interrupciones.
Fig. Intervención sobre archivos del proyecto de referencia MiWi
Debe existir coherencia en las direcciones como los roles de red y las funcionalidades a nivel de seguridad, escaneo
de red, administración de energía u otras habilitadas. Por estas razones se debe intervenir el archivo ConfigApp.h
para definir si el nodo va a tener el rol de Coordinador o Dispositivo Terminal (End Device) si el protocolo va a ser
P2P o MiWi, confirmar el transceptor (MRF24J40, MRF49XA o MRF89XA), definir la dirección de ocho bytes
permanente del nodo, el tamaño del buffer de transmisión y recepción, el identificador de la red de área personal
(PAN ID), el número máximo de conexiones simultaneas que permite el dispositivo, los aspectos de seguridad, de
modo sleep, el manejo de como el dispositivo despierta, el salto entre canales ante condiciones de ruido, entre
otros.
Es importante anotar que el archivo de referencia ConfigApp.h de la carpeta de referencia está ya bien configurado
para garantizar la comunicación y normalmente las modificaciones que deben realizarse son pocas. En caso de
modificaciones avanzadas deben consultarse los archivos del proyecto de Referencia y la documentación de
Microchip relacionada.
Luego se procede a hacer los ajustes específicos que corresponden a las tareas particulares que debe realizar el
nodo al interior de la red. En este caso específico, se configuran los aspectos relativos al canal A/D para realizar
la adquisicion de la señal, el algoritmo de procesamiento y la transmisión del valor de temperatura.
Fig. Configuración de modulo A/D
En el coordinador de red deben programarse las funcionalidades que permitan recibir los datos enviados por los
nodos sensores, transferirlos a la interfaz de usuario vía serial/USB o almacenarlos. En algunos casos, parte del
algoritmo de procesamiento de la señal captada por los nodos sensores puede encargársele al nodo coordinador
puesto que es común, más no imprescindible, que este tenga unas capacidades de procesamiento mayores que
las de los nodos sensores.
En el coordinador también se programan las líneas de código que se ocupan de garantizar la funcionalidad de los
dispositivos tipo enlace o Gateway que hacen posible el paso de los datos de la plataforma de monitorización hacia
redes una jerarquía superior e interfaces alternas para la visualización, procesamiento y manejo de la información.
Descripción de Elementos
Especificaciones Técnicas: Nuestro coordinador de red (coordinador de Red de Área Personal o Coordinador
PAN) está basado en un microcontrolador de 16 bits que pertenece a la familia PIC24 y cuyas características se
resumen en la figura.
La Unidad de Procesamiento Central (CPU) de los microcontroladores de la familia PIC24 posee una arquitectura
Harvard modificada con un conjunto de instrucciones con palabras de 24-bits de ancho. Las instrucciones se
ejecutan en un solo ciclo de programa salvo algunas excepciones como las instrucciones que cambian el flujo del
programa e instrucciones que pueden ocupar más.
Anexos
Ejemplo de un coordinador PAN, con un transceptor MRF24J40MB que soporta el protocolo MiWi y de una interfaz
serial-USB, realizado utilizando la tarjeta de desarrollo denominada Explorer 16.
Comunicaciones:
Protocolo MiWi – MiWi Stack
(MiWi App + MiWi MAC)
Algoritmos:
Algoritmo de gestión de red
Estimación del valor de variables Fig.
Control de Hardware:
Conversión A/D,
Interfaz SPI
Interfaz Serial-USB
Interfaz paralela para LCD
Hardware de Circuito:
Microcontrolador de 16 bits
pic24FJ128GA010 Transceptor
MRF24J40MB
Conversor dc-dc 5V-3.3V
Conexión Programador/Debugger serial
Sockets para hacer posible el reemplazo
de elementos
En la figura se muestra el microcontrolador pic18F4620 de 40 pines que sirve de base para algunos de los nodos.
El transceptor utilizado en los nodos sensores es el MRF24J40MA, elemento compatible con el estándar IEEE
802.15.4 y que se direcciona desde el microcontrolador a través de una interfaz SPI. Este dispositivo tiene
básicamente las mismas prestaciones del transceptor MRF24J40MB utilizado en el coordinador de la red. La
diferencia mayor radica en el alcance que es menor y algunas pequeñas diferencias no muy significativas en el
diagrama de radiación.
Fig. Características técnicas y distribución de pines para el microcontrolador de extrabajo consumo pic18F46K20
15 RC0/T1OSO/T13CKI 8 CS
16 RC1/T1OSI/CCP2 3 WAKE
24 RC5/SDO 5 SDI
18 RC3/SCK/SCL 6 SCK
23 RC4/SDI/SDA 7 SDO
33 RB0/INT0/FLTO/AN12 4 INT
17 RC2/CCP1/P1A 2 RESET
PIC24FJ128GA010:
PLL interno
5 Módulos
Comparación/Captura/PWM. 16bits
PWM.
Timers, 5 x 16-bit 2 x 32-bit.
Microchip Technology inc., “Microchip Wireless (MiWi) Application Programming Interface - MiApp,” 2009.
Microchip Technology, “Microchip Wireless (MiWiTM) Media Access Controller – MiMAC,” 2009.
Microchip Technology inc., “Microchip MiWi PRO Wireless Networking Protocol Stack,” 2011.
Microchip Technology inc., “Development Tools Product Detail Page.” *Online+. Available:
http://www.microchip.com/. [Accessed: 15-Oct-2012].
Microchip Technology, “PIC24FJ128GA010 Family Data Sheet 16-Bit Flash Microcontrollers,” 2009.
Microchip Technology inc., “PIC18F2525/2620/4525/4620 Data Sheet Enhanced Flash Microcontrollers with
10Bit A / D and nanoWatt Technology,” 2004.
Microchip Technology inc., “PIC18F23K20/24K20/25K20/26K20/ 43K20/44K20/45K20/46K20 Data Sheet
28/40/44-Pin Flash Microcontrollers with nanoWatt XLP Technology,” 2010.