RED DE SENSORES INALÁMBRICOS: COMUNICACIÓN INALÁMBRICA

Tamaño: px
Comenzar la demostración a partir de la página:

Download "RED DE SENSORES INALÁMBRICOS: COMUNICACIÓN INALÁMBRICA"

Transcripción

1 DEPARTAMENTO DE INGENIERÍA ELÉCTRICA. RED DE SENSORES INALÁMBRICOS: COMUNICACIÓN INALÁMBRICA REPORTE DE PROYECTO DE INGENIERÍA ELECTRÓNICA II PRESENTADO POR: LÓPEZ HUERTA JORGE IVÁN ARROYO GÓMEZ YUKIO ASESORES: DR. RICARDO MARCELÍN JIMÉNEZ M. EN C. MAURICIO LÓPEZ VILLASEÑOR Diciembre 2008

2 2 PROYECTO DE INGENIERÍA ELECTRÓNICA II CONTENIDO INTRODUCCIÓN 4 CAPÍTULO 1. HARDWARE Y TECNOLOGÍAS EN LAS WSN 1.1 Microcontrolador PIC16F Memoria de datos MSSP USART Módulo CC1000PP Transceiver CC Interfaz de configuración Interfaz de datos Codificación Manchester 18 CAPÍTULO 2. ESTADO INICIAL DEL PROYECTO 2.1 Información heredada Decisión sobre los componentes a usar Punto de partida para la implementación 20 CAPÍTULO 3. DISEÑO MODULAR 3.1 Segmentación del nodo en módulos Objetivos del diseño modular Módulo de enlace de datos Módulo de comunicación inalámbrica (capa física) 24

3 3 WSN: COMUNICACIÓN INALÁMBRICA CAPÍTULO 4. IMPLEMENTACIÓN 4.1 Buffers circulares Registro de Banderas Funcionamiento del nodo y flujo de datos Función Control Función ISR Funciones TX_DIO y RX_DIO Cronología y detalles de la implementación Configuración del transceiver Comunicación con el transceiver Flujo de datos en el PIC de control Modo de operación Sincronización Frecuencia de operación de los dispositivos Sincronización de los dispositivos 37 CAPÍTULO 5. NOTAS FINALES 5.1 Estado final de la implementación Lo que falta por hacer Conclusiones 39 BIBLIOGRAFÍA 41 ANEXO A 42

4 4 PROYECTO DE INGENIERÍA ELECTRÓNICA II Introducción. Las redes de sensores inalámbricos (WSN: Wireless Sensor Network) son una tecnología que ha tomado una gran fuerza en los últimos años resultado de los avances en la microelectrónica y la computación y son fuente de inspiración para múltiples proyectos de investigación y desarrollo. La implementación y desarrollo de una red de sensores inalámbricos para propósitos específicos ofrece una serie de ventajas tales como la capacidad de adaptación, escalabilidad y robustez. Por estas razones, una red de este tipo puede encontrar un amplio espectro de aplicaciones. Sin embargo, dado que los nodos de la red deben tener una arquitectura lo más simple posible, también implica que una serie de problemas de instrumentación y comunicación deben ser resueltos primero a fin de tener una tecnología madura que pueda ser aplicada. Para tener una red inalámbrica de sensores en operación, es necesario cumplir con requerimientos de hardware y software muy específicos y que inherentemente acarrean limitaciones. En una red de sensores, lo ideal es que la colaboración entre nodos sea eficiente y que funcionen a partir de cantidades mínimas de información ya que los nodos son carentes de recursos, además de que la topología puede cambiar muy rápidamente provocando que los nodos en la red continuamente tengan nuevos vecinos con los cuales colaborar. Se sabe que en una red de sensores, en términos de energía, la transmisión de un bit puede ser mucho más costosa que su procesamiento y/o almacenamiento. De ahí que sea muy importante el uso de técnicas bien establecidas para el desarrollo e implementación de los circuitos que formen cada uno de los nodos de la red. El objetivo general del proyecto es desarrollar e implementar una red de sensores inalámbricos ad-hoc donde cada nodo está compuesto de un protocolo de comunicación y un sistema de hardware basado en microcontrolador. Cada nodo en la red sirve como interfaz de un sensor y a su vez puede interactuar con otros sistemas del mismo tipo para intercambiar y/o transmitir información. La red así obtenida debe ser autoconfigurable, escalable y tolerante a fallas, debe ser capaz de recolectar información de cada sensor considerado y concentrarla para su procesamiento e interpretación en un punto designado para tal fin. Para que exista una comunicación entre dos puntos (nodos) cualesquiera de la red, se necesita de un canal de comunicación que pueda transportar la información que un emisor envíe a un destinatario(s) especifico(s), para la red de sensores inalámbricos es el espacio libre a través de la radiofrecuencia. El objetivo principal de este proyecto y de la información descrita en los capítulos posteriores de este documento, se centra en el estudio e implementación de una interfaz de comunicación inalámbrica que proporcionará a los nodos de la red un medio de

5 5 WSN: COMUNICACIÓN INALÁMBRICA transporte para el intercambio de información. Para cumplir con el objetivo se seleccionaran y propondrán métodos adecuados para su implementación en un sistema con recursos de cómputo limitados. Cabe mencionar que el protocolo de comunicación (protocolo cross-layer) ya fue implementado en una primera versión por pasadas colaboraciones del proyecto general, dicha implementación fue con un medio de comunicación guiado (cableado) y a través del hardware embebido en los microcontroladores para la comunicación serial (USART). Ahora el trabajo principal consiste en sustituir el medio de comunicación alambrado entre nodos por un medio de comunicación inalámbrico y dotar al protocolo de esa capacidad de comunicación. Para evaluar los objetivos planteados en este proyecto, el presente trabajo documenta el desarrollo e implementación de un sistema de comunicación inalámbrico basado en dispositivos de lógica reconfigurable. El sistema desarrollado posee una estructura modular para permitir la fácil adaptación a diferentes (o nuevos) componentes y posibilita la utilización de diferentes bandas de comunicación libres en función de los requerimientos de velocidad de transmisión y alcance, así como en el consumo de energía.

6 6 PROYECTO DE INGENIERÍA ELECTRÓNICA II Capítulo 1. Hardware y tecnologías en las WSN 1.1 Microcontrolador PIC16F877 El núcleo de un nodo en una red de sensores inalámbricos, desde el punto de vista del hardware, debe ser un dispositivo ligero en cuanto al consumo de energía, pero con recursos suficientes que le proporcionen la capacidad para procesar información. Los microcontroladores han sido una muy buena opción para satisfacer dichas necesidades. Para el desarrollo e implementación del proyecto se utilizó el microcontrolador PIC16F877, es un microcontrolador de propósito general desarrollado por Microchip, dentro de sus características principales se puede destacar que está diseñado bajo una arquitectura Harvard, tiene 8Kb de memoria programa, cinco puertos de entrada/salida, módulo USART, módulo MSSP (SPI), 4 temporizadores y convertidor analógico-digital. Se trata de un dispositivo con las características suficientes para los propósitos que se siguen en este proyecto y en general el uso de estos dispositivos es lo más común en las WSN. La documentación completa de las características técnicas y de las múltiples configuraciones de los periféricos del microcontrolador PIC16F877 se puede encontrar en la hoja de datos del microcontrolador y en las notas de aplicación de Microchip. Para los fines prácticos de este reporte, en esta parte del documento sólo se hace referencia a las características básicas de los periféricos y de los recursos y configuraciones que son relevantes para el desarrollo e implementación del protocolo y la comunicación inalámbrica Memoria de datos Debido a la arquitectura Harvard sobre la que está diseñado el PIC16F877, en él podemos encontrar dos bloques de memoria principales, un primer bloque (8k) consiste en una memoria programa no volátil (ROM Flash) que contiene las instrucciones que ejecutará el microcontrolador y un segundo bloque (512 bytes) de memoria volátil (EEPROM) que funciona como memoria de datos. La memoria de datos (memoria RAM) se organiza en múltiples bancos de registros. Existen 4 bancos, cada uno contiene registros de funciones especiales (SFR: Special Function Registers) y registros de propósito general. En la figura 1.1 se puede observar la organización de la memoria de datos del microcontrolador. Por ejemplo, para el primer banco (Bank 0 en la figura 1.1), se tiene que el bloque de registros de funciones especiales va de la localidad 01h a la 1Fh, mientras que los registros de propósito general se encuentran de la localidad 20h a la 7Fh. Este último bloque nos da un total de 96 localidades de un byte que se pueden utilizar

7 7 WSN: COMUNICACIÓN INALÁMBRICA libremente para el almacenamiento de datos y variables. Los registros de funciones especiales son registros que sirven para configurar los recursos del microcontrolador. Figura 1.1 Organización de la Memoria del PIC16f877 El diseño de la memoria de datos del microcontrolador tiene como consecuencia que el acceso a sus localidades sea de dos maneras muy especificas, un método de direccionamiento directo y otro indirecto. En el método directo la posición de la memoria con la que se trabaja viene directamente definida en el código de la instrucción; en el método indirecto la posición de la

8 8 PROYECTO DE INGENIERÍA ELECTRÓNICA II memoria con la que se trabaja viene definida en un registro de función especial llamado FSR (File Select Register). El método usado en este proyecto será el direccionamiento directo MSSP (Master Synchronous Serial Port) El MSSP es un módulo útil para la comunicación serial con dispositivos periféricos u otros microcontroladores. Estos dispositivos periféricos pueden ser EEPROM, registros de corrimiento, displays, convertidores A/D, etc. El módulo MSSP puede operar en dos formas, puede ser en un modo I 2 C (Inter-Integrated Circuit) o en modo SPI (Serial Peripheral Interface). De estos, el último es el de interés para nosotros, pues es el protocolo de comunicación que se ocupará para la configuración del transceiver CC1000, dispositivo del cual más adelante se profundizará. El módulo MSSP cuando es configurado en modo SPI permite que 8 bits de datos puedan ser síncronamente transmitidos y recibidos de forma simultánea. Para lograr una comunicación operando en modo SPI, típicamente se dispone de los siguientes pines del PIC16F877: Serial Data Out(SDO) Serial Data In(SDI) Serial Clock(SCK) El bus SPI es una forma de comunicación serial síncrona estándar que opera en modo fulldúplex. Los dispositivos se comunican tanto en modo maestro como en modo esclavo, donde el maestro es el que inicia la comunicación. El bus SPI es capaz de operar con un sólo maestro y uno o más esclavos. Para empezar la comunicación, el maestro configura el reloj (escogiendo una frecuencia que sea menor o igual a la que el esclavo puede soportar) a frecuencias que comúnmente están en el rango de 1 a 70 Mhz. El maestro entonces selecciona al esclavo (si es el caso de varios esclavos) con la línea chip select y comienza el envío de la señal de reloj y con ello la transmisión y recepción de datos. La figura 1.2 muestra un diagrama simplificado del módulo MSSP del PIC16F877. Las transmisiones por medio del bus SPI en el PIC16F877 involucran dos registros de corrimiento de ocho bits (SSPSR), uno en el maestro y otro en el esclavo; y estos están conectados en forma de anillo. Los datos son transmitidos comenzando con el bit más significativo y haciendo un corrimiento a la izquierda, de forma simultánea por el lado de los menos significativos el espacio que queda libre después del corrimiento es ocupado por un nuevo bit proveniente de la recepción, dando lugar a la comunicación full-dúplex. Después de que el procedimiento anterior ocurre para todos los bits del dato, el maestro y el esclavo habrán intercambiado los datos de sus registros y cada una de las partes puede disponer de dichos datos para su procesamiento. Si hay más datos que transmitir o recibir (intercambiar), los registros son cargados con nuevos datos y el proceso se repite.

9 9 WSN: COMUNICACIÓN INALÁMBRICA Figura 1.2 Módulo MSSP del PIC16F877 La comunicación por medio del bus SPI en el PIC16F877 involucra un ciclo de reloj por cada bit de información que se desea transmitir o recibir. Cuando no hay más datos que transmitir o recibir, el maestro para de enviar la señal de reloj (SDK) y la comunicación finaliza. La figura 1.3 muestra un ejemplo de comunicación por el puerto MSSP en modo SPI entre dos microcontroladores. Figura 1.3 Comunicación por SPI maestro/esclavo

10 10 PROYECTO DE INGENIERÍA ELECTRÓNICA II Figura 1.4 Registros de configuración del módulo MSSP.

11 11 WSN: COMUNICACIÓN INALÁMBRICA La utilización del módulo MSSP es relativamente sencilla y sólo requiere de configurar los bits de control en los SFR (Special Function Registers) correspondientes del PIC para que la interfaz serial funcione en modo SPI. Los SFR a configurar son: SSPCON1 - Control Register SSPSTAT - Status Register La figura 1.4 muestra más detalles de los registros SSPCON1 y SSPSTAT y sobre los bits que determinan la configuración del módulo MSSP USART La USART (Universal Synchronous Asynchronous Receiver Transmiter) es una interfaz de comunicación serial que posee el PIC16F877 y que permite la comunicación serial con otros dispositivos tales como computadoras personales, EEPROM s serie, circuitos integrados, convertidores A/D o D/A, otros microcontroladores, etc. La USART puede ser configurada para establecer una comunicación serial en los siguientes modos: Full-dúplex (modo asíncrono). Half-dúplex (modo síncrono). El modo asíncrono permite una comunicación full-dúplex puesto que los recursos de hardware para transmisión y recepción son independientes. En modo asíncrono se utiliza un formato estándar en el que se deben definir parámetros como: velocidad de transmisión (bps), bits de datos (8 ó 9), bit de paridad, etc. El formato de datos más común es: un bit de inicio, ocho (o nueve) bits de datos y un bit de paro. Una característica importante de la USART es que la velocidad de transmisión de la comunicación serial puede ser configurada (generador de baudios BRG) para trabajar en un amplio rango de valores (dependiendo del reloj del sistema) permitiendo flexibilidad en la comunicación con otros dispositivos. En el desarrollo de este proyecto, la velocidad de transmisión que se utilizará para la comunicación de dispositivos con este medio será de 9600 bps. En la figura 1.5 se muestran diagramas que revelan la versatilidad de la USART. 1.2 Módulo CC1000PP-868 El CC1000PP-868 es un módulo plug-and-play fabricado por Chipcon (Texas Instruments) que tiene como componente principal el transceiver CC1000 del mismo fabricante. La característica principal del CC1000PP-868 es que es un módulo que puede trabajar en conjunto con otros prototipos, ya que posee todos los componentes (componentes con valores muy específicos) necesarios para que el transceiver CC1000 opere adecuadamente. Las bandas de radiofrecuencia en las que el CC1000PP-868 puede trabajar es 868 y de a 902 a 928 MHz y un voltaje de 2.1 a 3.6 volts.

12 12 PROYECTO DE INGENIERÍA ELECTRÓNICA II Figura 1.5 Versatilidad de la USART del PIC16F877. Aunque el módulo CC1000PP-868 está diseñado para trabajar en un determinado rango de frecuencias determinadas por el fabricante, la hoja de especificaciones del prototipo indica ciertos valores de frecuencia óptimos, uno de estos valores es MHz y es la frecuencia con la que se trabajara a lo largo del proyecto. Aunque existe un rango de frecuencias en las cuales puede operar el CC1000PP-868, es preferible la elección de un valor de frecuencia óptimo, ya que con la elección de una frecuencia arbitraria dentro del rango de operación se puede ver afectado el rendimiento del dispositivo ya sea en el consumo de corriente, en la potencia de la señal al transmitir o en la sensibilidad de la recepción debido a la tolerancia en los valores de los componentes del módulo. La breve descripción que se hizo del módulo CC1000PP-868 deja ver que es simplemente una aplicación muy específica para la correcta operación del CC1000 en un rango determinado de frecuencias; sin embargo el CC1000 es la parte de hardware que realmente se encargará de la transmisión y recepción (física) de datos de forma inalámbrica, por lo que en los párrafos siguientes se da una vista más general de dicho componente y de sus características más importantes. Una documentación extensa y bien detallada del módulo CC1000PP-868 así como del CC1000 se puede consultar en la hoja de datos técnicos de ambos dispositivos, dicha documentación se encuentra en la página principal de Chipcon. Los datos técnicos citados en este apartado del documento con respecto al CC1000 son sólo los más relevantes para el proyecto Transceiver CC10000 El transceiver CC1000 es un chip diseñado para aplicaciones inalámbricas de baja potencia y bajo consumo de voltaje, características vitales en las redes de sensores. Está diseñado para

13 13 WSN: COMUNICACIÓN INALÁMBRICA funcionar en las bandas ISM (Industrial, Scientific and Medical) y las bandas de frecuencia SRD (Short Range Device) que comprenden las bandas de frecuencia de 315, 433, 868 y 915 MHz. Los variables de configuración para el funcionamiento del CC1000 se pueden programar por medio de un bus serial (SPI), razón por la cual se convierte en un dispositivo muy flexible y fácil de usar. En una aplicación típica, el CC1000 estará acompañado de un microcontrolador que se encargará de enviarle las variables de configuración y usará pocos componentes externos pasivos. La figura 1.6 muestra el diagrama de un circuito de aplicación (sobre el que está basado el módulo CC1000PP-868) para el CC1000, los valores de los componentes pueden variar de acuerdo a la frecuencia o rango de frecuencias en que vaya a operar el dispositivo. Figura 1.6 Circuito de aplicación del CC1000 A continuación se enlistan las características más importantes del CC1000 con las cuales se puede tener una visión más clara del porque es una buena elección para implementar una WSN. Bajo consumo de corriente y voltaje de operación de 2.1 a 3.6 volts Rango de frecuencias de 300 a 1000 MHz Salida RSSI (Received Signal Strength Indicator) Modulación FSK

14 14 PROYECTO DE INGENIERÍA ELECTRÓNICA II Modo de transmisión: UART, NRZ y Manchester Algunos de los parámetros configurables en el CC1000 y que son importantes para el desarrollo del proyecto son la frecuencia, la potencia de la señal de transmisión, el formato de los datos transmitidos (UART, NRZ o Manchester) y el modo de operación (transmisor, receptor y bajo consumo). En la figura 1.7 se muestra un diagrama a bloques con la arquitectura interna del CC1000. Cuando el transceiver funciona como transmisor, la señal que se quiere transmitir se introduce por el pin DIO (Digital I/O), posteriormente el oscilador controlado por voltaje (VCO) envía la señal directamente al amplificador de potencia (PA). La señal que entra por el pin DIO es modulada en FSK. Figura 1.7 Arquitectura interna del CC1000 Cuando el CC1000 es configurado como receptor, la circuitería interna del transceiver funciona como un receptor superheterodino, la señal de entrada RF_IN es amplificada por el amplificador LNA (amplificador de bajo ruido) y posteriormente convertida a una frecuencia intermedia (IF) por el mezclador (mixer). En la etapa IF (IF stage) la señal es amplificada y filtrada antes de ser demodulada. Ya en la etapa de demodulación se trata la señal de acuerdo a la codificación que se éste usando (NRZ o Manchester) Interfaz de Configuración (configuración del CC1000) Para llevar a cabo la configuración del CC1000, el fabricante Chipcon provee el software SmartRF Studio, dicho software permite a los usuarios generar los datos con los valores necesarios para la correcta configuración del CC1000, los datos generados son basados en la selección de varios parámetros (como los mencionados en el apartado anterior 1.2.1) por parte del usuario. Los datos que genera el software SmartRF Studio son valores en hexadecimal que deben ser cargados en los registros de configuración del CC1000.

15 15 WSN: COMUNICACIÓN INALÁMBRICA Para cargar los parámetros de configuración en los registros del CC1000, se usa una conexión (figura 1.12) de tres líneas seriales: PDATA, PALE y PCLK y el protocolo de comunicación estándar SPI. Hay 28 registros de 8 bits cada uno, direccionados con 7 bits. El bit Read/Write inicia la operación indicando el modo de lectura o escritura. La configuración completa del transceiver requiere que sean enviadas 22 tramas de 16 bits cada una (un bit para indicar lectura o escritura, 7 bits para la dirección y 8 bits de datos). El PCLK es la señal de reloj generada por el microcontrolador, pues lleva la función de maestro en la comunicación serial que se gesta entre éste y el CC1000 permitiendo la sincronía en la comunicación; el tiempo necesario para la configuración completa del transceiver dependerá de la frecuencia de la señal PCLK. En cada ciclo de escritura, 16 bits son enviados por la línea PDATA. La figura 1.8 ejemplifica muy bien el procedimiento para el envío de las tramas de configuración del CC1000. Los datos que determinan la configuración deseada son guardados en la RAM del CC1000. Los datos también son retenidos durante el modo de bajo consumo de energía, pero no cuando se deja sin alimentación. Los registros pueden ser configurados en cualquier orden y también pueden ser leídos por el microcontrolador por la misma interfaz de configuración. Para los fines de este proyecto no es necesaria la lectura de los registros del transceiver. Figura 1.8 Formato de las tramas de configuración del CC1000 De la figura 1.8 puede observarse que cuando se envía la trama de direcciones, la señal PALE se mantiene en un nivel bajo; caso contrario con la trama de datos. La señal PALE no es parte del protocolo SPI, sin embargo es necesaria para la correcta configuración del CC1000, ya que es la señal que indica al transceiver cuando se trata de una trama que especifica un dato de configuración o la dirección de alguno de sus registros. Cuando se ha llevado a cabo la configuración exitosa del transceiver, las líneas que forman la interfaz de configuración (del lado del microcontrolador) pueden ser ocupadas para otro propósito. De cualquier forma para el presente proyecto las líneas de la interfaz de configuración así como las líneas de todas las conexiones de los componentes que forman el nodo son totalmente dedicadas, pues entre las múltiples características del PIC16F877 está la

16 16 PROYECTO DE INGENIERÍA ELECTRÓNICA II de contar con 5 puertos de entrada salida, que son una cantidad más que suficiente para la implementación de los nodos Interfaz de Datos (comunicación con el CC1000) Las líneas PDATA, PCLK y PALE son las líneas que forman la interfaz de configuración del CC1000, mientras que las líneas correspondientes al DIO y al DCLK forman la interfaz de comunicación. La línea DIO es bidireccional, debido a que la transmisión y recepción de datos se hace por el mismo canal, es decir, puede haber transmisión de datos del microcontrolador hacia el CC1000 y viceversa. En la línea de DCLK se genera una señal de reloj por parte del CC1000, ésta es enviada al microcontrolador y cada flanco de subida (inicio de un nuevo ciclo) del reloj es la indicación de que el transceiver está listo para la trasmisión o recepción de un nuevo bit según sea el modo de operación. El formato de los datos a transmitir o recibir por el CC1000 es un parámetro configurable, el formato puede ser elegido de los tres siguientes formatos: Modo NRZ síncrono (figura 1.9) Modo síncrono codificación Manchester (figura 1.10) Modo asíncrono UART (figura 1.11) Figura 1.9 Formato de datos en modo NRZ síncrono

17 17 WSN: COMUNICACIÓN INALÁMBRICA Figura 1.10 Formato de datos en modo síncrono codificación Manchester Figura 1.11 Formato de datos en modo asíncrono UART

18 18 PROYECTO DE INGENIERÍA ELECTRÓNICA II En un sistema típico, el CC1000 tendrá la interfaz de configuración y la interfaz de datos conectadas a un microcontrolador, la primera para transferir direcciones y parámetros que determinan el modo de operación y la segunda para los datos que se desean transmitir o recibir del medio inalámbrico. En la figura 1.12 se puede apreciar el diagrama de conexión con un microcontrolador. Figura 1.12 Conexión de la interfaz de datos y de la interfaz de configuración en el CC Codificación Manchester. Debido a que el CC1000 hace una modulación FSK a las tramas que se desean transmitir, es necesario introducir algún sistema de codificación que garantice transiciones periódicas en la señal de salida. La codificación Manchester es el formato de los datos de salida que se eligió para el presente proyecto por ser una de las codificaciones más fiables en los sistemas de comunicación digital, además de que es una de las opciones que brinda el CC1000 para el formato de los datos de salida. La codificación Manchester es un método de codificación de señales binarias en donde por cada tiempo de bit hay una transición entre dos niveles de señal. La transición se da a la mitad del período de cada bit, estas transiciones sirven como mecanismos de reloj y también son datos. La convención Manchester (figura 1.13) indica que una transición que va de un nivel bajo a un alto representa un 0, y la transición de un nivel alto a un bajo representa un 1. Figura 1.13 Convención usada en la codificación Manchester para el CC1000.

19 19 WSN: COMUNICACIÓN INALÁMBRICA La principal ventaja de la codificación Manchester es que la señal de los datos y la de sincronía se combinan en una sola, de manera que el flujo de datos se sincroniza por sí mismo. El único inconveniente en éste tipo de codificación es que el ancho de banda que consume es el doble en comparación con las comunicaciones asíncronas, pues por cada bit que se desea transmitir se necesitan dos para codificarlo (figura 1.13). Internamente el CC1000 cuenta con el hardware necesario para la codificación (modo transmisor) y decodificación (modo receptor) de los datos.

20 20 PROYECTO DE INGENIERÍA ELECTRÓNICA II Capítulo 2. Estado inicial del proyecto. Llevar a cabo la implementación de una red de sensores inalámbricos es una tarea con un grado de dificultad alto y que requiere de trabajo conjunto, este proyecto no es la excepción. A partir de este capítulo nos enfocaremos en el proceso de desarrollo e implementación de la interfaz inalámbrica que permitirá al protocolo cross-layer dejar de depender de un medio dirigido (comunicación serial por la USART) para su funcionamiento. Proveer al protocolo cross-layer la capacidad de comunicación por radiofrecuencia nos permite acercarnos mas a una verdadera WSN, de modo que nos dedicaremos a resolver los problemas de comunicación a nivel físico para que los próximos participantes del proyecto se concentren totalmente en los problemas de las capas superiores. 2.1 Información heredada (proyectos previos) La información contenida en este capítulo es resultado de la recopilación de dos trabajos que se realizaron por separado. Por un lado el equipo predecesor de este proyecto realizó una versión del protocolo cross-layer [2], este protocolo es el software que soporta la comunicación entre los nodos de la red a nivel de enlace de datos, proveyendo a los nodos de mecanismos de enrutamiento y control de acceso al medio. Para esta primera versión de cross-layer, la capa física se resolvió ocupando como medio de comunicación la interfaz serial (USART) de los microcontroladores, de modo que el hardware embebido en el microcontrolador se ocupa de la correcta transmisión y recepción de los datos. Por otro lado, se retoma parte de la información de un proyecto alterno y que trata de la Comunicación a nivel de enlace de datos con unidades de radiofrecuencia [1]. De dicho proyecto se hace uso principalmente de las funciones y parámetros necesarios para la configuración del módulo CC1000PP-868. El módulo CC1000PP-868, ya descrito en el capítulo anterior, es el transceiver sobre el cual se basa la interfaz de comunicación inalámbrica que se implementará para el protocolo cross-layer. Como se puede ver, la situación inicial es aprovechar el trabajo que ya se realizó con el CC1000PP-868, para de ahí partir e integrar al protocolo cross-layer el código (software) necesario para configurar y controlar la operación del módulo CC1000PP-868. Una vez planteada la situación inicial del proyecto, daremos paso a detallar los problemas surgidos al iniciar con la implementación de la interfaz inalámbrica del cross-layer así como la manera en que se les dio solución.

21 21 WSN: COMUNICACIÓN INALÁMBRICA En el apartado 1.2 del capítulo 1, se mencionan las características del módulo CC1000PP-868 y se hace notar que su componente principal (los demás sólo son componentes de acoplamiento) es el transceiver CC1000; de modo que a partir de este capítulo nos referiremos al módulo CC1000PP-868 como tal, como transceiver o simplemente CC1000. Igualmente para el PIC16F877, de ahora en adelante también nos referiremos a él como microcontrolador o simplemente PIC. 2.2 Decisión sobre los componentes a usar. El primer problema al que hubo que darle solución es que al conjuntar el trabajo realizado para el protocolo cross-layer y la comunicación por RF, resultó que los proyectos fueron desarrollados con microcontroladores de diferente fabricante, el primero desarrollado con microcontroladores PIC de Microchip y el segundo con microcontroladores AVR de Atmel. La pregunta natural era continuar con el proyecto sobre AVR s o sobre PIC s?, hacer una conjunción de ambos? Se llegó a la conclusión de hacer la implementación con PIC s por las siguientes razones: La mayor parte de código (cross-layer) estaba programada en ensamblador para PIC s, cambiar a AVR s requería de tiempo extra para rescribir el mismo código para ensamblador de AVR s. Con respecto a este punto la única ventaja de los AVR s sobre los PIC s es el ahorro de memoria programa, ya que por la arquitectura de uno y otro (Von Neuman y Harvard respectivamente) se requieren más líneas de código en los PIC s. Las características y recursos de hardware de los PIC s y de los AVR s son muy similares. Aunque el código en ensamblador para la configuración del módulo CC1000PP-868 está hecho para AVR s, existe un anexo que contiene código ensamblador para PIC s, en este último, la interfaz de configuración SPI está implementada en software. 2.3 Punto de partida para la implementación. El primer paso en la implementación del proyecto fue la configuración del módulo CC1000PP-868 y comprobar su correcto funcionamiento. A pesar de que la implementación de las funciones de configuración para el CC1000PP-868 ya estaba realizada, como se comentó anteriormente, fue realizada con una interfaz SPI por software. El problema de esta situación es que el código en ensamblador crecía mucho y los recursos de memoria programa para el PIC16F877 se limitan a 8k. La solución más natural fue hacer uso del módulo MSSP en modo SPI del PIC16F877. Cabe mencionar que la implementación del protocolo SPI por software fue la solución del proyecto heredado [1] para la configuración de CC1000PP-868, pues en los AVR s el hardware destinado para este fin presentaba algunos errores al momento de leer los registros del tranceiver. Por ende cuando fueron implementadas las funciones en código ensamblador

22 22 PROYECTO DE INGENIERÍA ELECTRÓNICA II para PIC s en el mismo proyecto, también se hizo la interfaz SPI por software, además de que el modelo de microcontrolador ocupado (PIC16F84) no tenía módulo MSSP. Para los objetivos de este proyecto, lo único que se necesita es la escritura de los registros de configuración del transceiver, es decir que no requeriremos de la lectura de sus registros. Por lo tanto se usó el módulo MSSP del PIC y el código ensamblador disminuyo de tamaño. La utilización del módulo MSSP es relativamente sencilla y sólo requiere de configurar los bits de control de los SFR (Special Function Registers) que configuran el módulo MSSP para que la interfaz serial del PIC funcione en modo SPI (ver figura 1.4). En el anexo A de este documento se encuentra el código en ensamblador debidamente documentado donde se puede identificar el código correspondiente (primeras instrucciones ejecutadas al encender el PIC) para la configuración del módulo MSSP en modo SPI del PIC. La información correspondiente a las funciones utilizadas y a los valores grabados en los registros de configuración del CC1000 puede ser consultada en el reporte del proyecto Comunicación a nivel de enlace de datos con unidades de radiofrecuencia [1] y en la hoja de datos del fabricante. A pesar de que el código ensamblador se redujo al utilizar el hardware del módulo MSSP del PIC, al final el tamaño del código resultante tan sólo para la configuración del CC1000 era de aproximadamente 3K; el tamaño del código se debe a la gran cantidad de constantes definidas (direcciones y datos) con los valores que se tienen que enviar al transceiver para su configuración. El problema radicó en que la memoria programa ocupada por el código del protocolo cross-layer era de 6K y al agregar el código para la configuración del CC1000, la memoria programa del PIC resultó insuficiente. Figura 2..1 Propuesta inicial para la arquitectura de un nodo. La idea en un principio era tener un nodo con una arquitectura simple (figura 2.1) y conjuntar los códigos del protocolo cross-layer con el de la configuración del módulo CC1000 para que sólo un PIC se encargara del control del nodo (configuraciónn de los dispositivos y control de la comunicación con otros nodos). Pensar en la optimización del código era poco probable, pues además faltaba agregar el código encargado de la transmisión y recepción de los datos inalámbricamente ya que en ésta última parte, el envío y recepción de datos es bit por bit (ver apartado Interfaz de Datos) y el código que se encargaría del manejo del

23 23 WSN: COMUNICACIÓN INALÁMBRICA sensor (el punto del manejo del sensor es un tema que no se discute en este proyecto). Puesto que la optimización de código no era la solución, se pensó en que el control del nodo se podía dividir (divide y vencerás) en bloques, optando por la idea de tener dos microcontroladores que realizaran conjuntamente el trabajo. En el capítulo siguiente se describe una propuesta modular que intenta dividir la arquitectura del nodo en dos bloques bien definidos. Cada bloque tendrá funciones muy específicas y facilitará la implementación del nodo.

24 24 PROYECTO DE INGENIERÍA ELECTRÓNICA II Capítulo 3. Diseño Modular 3.1 Segmentación del nodo en módulos. La solución al problema de la sobrecarga de código ensamblador en un sólo PIC, fue dividir las funciones de control del nodo. Por una parte, un PIC contendría el código del protocolo cross-layer, y otro PIC que se encargaría del control y configuración del CC1000. Con esta solución el problema se simplificó de manera sustancial. Primero se estableció que los dos microcontroladores se comunicarían por medio de la USART, de modo que la comunicación entre ambos PIC s estaba resuelta, además puesto que la USART es el medio de comunicación original del protocolo cross-layer, éste no sufriría severas modificaciones. La velocidad de transmisión se eligió a 9600 bps por ser uno de los valores estándar más comunes. Por otro lado la configuración y control del CC1000 se aisló del protocolo cross-layer, permitiendo ver al nodo como dos módulos o capas bien definidas trabajando conjuntamente. Por una parte el PIC que contiene el protocolo cross-layer (de ahora en adelante PIC de protocolo ) se puede ver como un módulo que provee al nodo las funciones de una capa MAC y de encaminamiento y al PIC que contiene el código para el control y configuración del transceiver (de ahora en adelante PIC de control ) junto con el CC1000PP-868 como un módulo que ofrece al nodo las funciones de una capa física; tal como se hace en modelos de comunicación más robustos como TCP o el modelo OSI. 3.2 Objetivos del diseño modular. El objetivo que se persigue con el diseño modular que se plantea, es que el PIC de protocolo se encargue únicamente de los mecanismos MAC y de control de acceso al medio sin tener que ocuparse del modo en que se vayan a transmitir o recibir los datos entre los nodos de la red. La comunicación entre el módulo de enlace de datos (PIC de protocolo) y el módulo de la capa física (en este caso el PIC de control) se hará a través de la USART (ver apartado 1.1.3). El PIC de protocolo enviará los datos que desea transmitir al PIC de control y éste último se encargará de enviar dichos datos al canal de comunicación inalámbrico. La modificación que se tiene que hacer al protocolo cross-layer consiste en implementar la forma en que el PIC de protocolo indicará al PIC de control que desea enviar o recibir datos del canal de comunicación inalámbrico, es decir que requiere de los servicios de la capa física.

25 25 WSN: COMUNICACIÓN INALÁMBRICA En cuanto al módulo de la capa física, el PIC de control será el encargado de configurar y controlar el envío y recepción de datos a través del CC1000PP-868. Los datos usarán una codificación Manchester y serán modulados en FSK. La función principal del PIC de control es estar atento a las solicitudes del PIC de protocolo para configurarr al transceiver como transmisor o receptor y en conjunto brindar al nodo la capacidad de comunicarse inalámbricamente con otros nodos. La figura 3.1 muestra un esquema general de la nueva arquitectura del nodo. En dicha figura se aprecian claramente las funciones de cada microcontrolador y la forma de comunicación entre los dispositivos que forman el nodo. Se recomienda dar una revisión a la documentación técnica del capítulo uno, de manera que la comprensión de la siguiente figura sea evidente. 3.3 Módulo de enlace de datos. Figura 3..1 Esquema general del funcionamiento un nodo. Al hacer un diseño modular del nodo, el protocolo cross-layer sufrirá muy pocas modificaciones. En primera instancia es el mismo modelo de microcontrolador (PIC16F877) y sólo es necesario definir y agregar al código las terminales que funcionarán como bits de control indicando el modo de operación (transmisor, receptor o bajo consumo). Una de las funciones principales del protocolo cross-layer es proporcionar a cada nodo un acceso ordenado y eficiente al canal de comunicación reduciendo al mínimo las interferencias (colisiones) entre transmisiones; de modo que la forma más eficiente es que funcione en base a períodos de actividad o ranuras de tiempo [2]. Un funcionamiento en base a períodos de actividad permite disminuir el tráfico de la red y también el ahorro de energía, característica fundamental de las WSN.

26 26 PROYECTO DE INGENIERÍA ELECTRÓNICA II Dicho lo anterior el protocolo cross-layer tendrá períodos de inactividad y períodos en los que transmite o recibe datos del la red, es por eso que el PIC de protocolo debe avisar al PIC de control de dicha situación. Durante el período de inactividad lo más razonable es que el transceiver permanezca en un estado de bajo consumo de energía y que sólo permanezca en modo activo (transmisión o recepción) cuando se requiera. 3.4 Módulo de comunicación inalámbrica (capa física) El módulo de comunicación inalámbrica formado por el PIC de control y el CC1000PP-868 es la parte medular de este proyecto. El código ensamblador para el PIC de control se divide en dos partes fundamentales: Una rutina (función control) para atender las líneas de control (figura 3.1) que indican el modo de operación del transceiver. Después de identificar un cambio en el modo de operación del nodo, la función control ejecuta las instrucciones correspondientes para configurar el nuevo modo sin perturbar la estabilidad del transceiver. Una segunda (función ISR) para atender las interrupciones generadas por la USART y por la señal de reloj del transceiver. Si el nodo se encuentra transmitiendo datos al canal inalámbrico, las interrupciones serán originadas por la recepción de un byte por parte de la USART (del PIC de protocolo) o por el transceiver (flanco de subida de la señal de reloj) indicando que está listo para la transmisión de un nuevo bit. Si el nodo se encuentra recibiendo datos del canal inalámbrico, las interrupciones serán originadas por la transmisión de un byte por parte de la USART (al PIC de protocolo) o por el transceiver (flanco de subida de la señal de reloj) indicando que ha recibido un nuevo bit del canal de comunicación inalámbrico. Los detalles del código en ensamblador para estas funciones y en general para todo el programa se puede consultar en el anexo A al final de este documento. Ya ha quedado listo el diseño del nodo en base a dos bloques o módulos (figura 3.1), ahora lo que resta es la implementación de las funciones en el código y las conexiones de los dispositivos que hagan funcionar al nodo conforme a lo planeado.

27 27 WSN: COMUNICACIÓN INALÁMBRICA Capítulo 4. Implementación. 4.1 Buffers circulares Un buffer circular es un TDA (Tipo de Dato Abstracto) que funciona como una lista circular y con un mecanismo muy dinámico para la entrada y salida de datos (FIFO: First In First Out). La implementación de buffers circulares, uno de recepción y otroo de transmisión en el PIC de protocolo, es una solución que permite un flujo simultáneo de datos del PIC de protocolo al PIC de control y de éste al canal de comunicación inalámbrico, cuando el nodo se encuentra transmitiendo datos. Cuando el nodo se encuentra recibiendo datos, el flujo de datos también es simultaneo pero en sentido contrario. Cada buffer tiene un apuntador de lectura y otro de escritura, de modo que los datos que son almacenados no puedan ser sobrescritos cuando el buffer se encuentra lleno. Los buffers circulares fueron implementados usando los registros de propósito general (memoria RAM) del PIC16F877 y en específico los registros del banco 1 (figura 1.1). Las localidades asignadas al buffer de transmisión van de la 0xA0 a la 0xAF (16 registros), mientras que para el buffer de recepción de la 0xB0 a la 0xEF (64 registros). La figura 4.1 muestra una abstracción grafica de dichos buffers. Figura 4.1 Implementación de buffers circulares. Como más adelante se detallará, el tamaño de los buffers responde básicamente a que la velocidad a la que se pueden procesar los datos que se transmiten es mas rápida en comparación con los datos que se reciben, esto se debe a que cuando se reciben datos, se ejecuta un mayor número de instrucciones para validar el formato de las tramas recibidas y obtener de ellas sólo los datos que son de interés, mientras que cuando se transmite, no se lleva a cabo ninguna validación y lo único que se hace es dar formato a las tramas de salida.

28 28 PROYECTO DE INGENIERÍA ELECTRÓNICA II Es por eso que el tamaño del buffer de transmisión es muy poco probable que se desborde aun cuando tiene un tamaño mas pequeño en comparación con el buffer de recepción, si embargo el tamaño de ambos puede ser el mismo. El tamaño del buffer de recepción debe ser elegido de acuerdo a los recursos de memoria que se tengan y a la velocidad tanto del sistema (instrucciones ejecutadas por unidad de tiempo) como de la transmisión inalámbrica. Las funciones implementadas en código ensamblador para el manejo de los buffers son INSERTA_TX y OBTIENE_TX para el buffer de transmisión e INSERTA_RX y OBTIENE_RX para el buffer de recepción. Ambas funciones son muy similares, pues como su nombre lo indica, son las encargadas de insertar datos al buffer así como de obtenerlos. La función INSERTA_TX es llamada cuando se ha recibido un dato (por la USART) del PIC de protocolo y se debe insertar en el buffer de transmisión. La función INSERTA_TX primero verifica que el buffer de transmisión no esté lleno (registro de banderas) y de ser así, inserta el dato en la localidad de memoria apuntada por el apuntador de escritura. Por otro lado la función OBTIENE_TX es llamada por la función ISR al iniciar el envío de una nueva trama de datos por parte del CC1000. La función OBTIENE_TX primero verifica que el buffer no esté vacío y de ser así, transfiere el dato de la localidad de memoria señalada por el apuntador de lectura a un registro auxiliar (ENVIAR). Las funciones INSERTA_RX y OBTIENE_RX realizan funciones similares a las descritas anteriormente, la diferencia únicamente radica en que ahora la función INSERTA_RX inserta un dato recibido del CC1000, mientras que la función OBTIENE_RX transfiere los datos del buffer de recepción al registro TXREG de la USART del PIC de control. En general las funciones para la entrada y salida de datos de ambos buffers son muy parecidas, lo que cambia son los valores de sus respectivas variables debido a la zona de memoria en donde se implementó cada buffer. En cuanto a los apuntadores de lectura y escritura el mecanismo es sencillo, si el buffer está vacío, ambos apuntadores están en la misma localidad de memoria, conforme se introducen datos al buffer el apuntador de escritura se va incrementando de modo que siempre apunta a la primera localidad de escritura disponible. El buffer se considera lleno cuando no existen localidades de memoria vacías que separen ambos apuntadores. Cuando el buffer contiene datos, el apuntador de lectura siempre va detrás del apuntador de escritura, la única manera de que sean iguales es que el buffer esté vacío. El otro ajuste importante en los apuntadores es no dejarlos salir del espacio de memoria donde está definido cada buffer, las rutinas AJUSTA_POINTER_TX y AJUSTA_POINTER_RX cumplen con esa función permitiendo que los buffers se puedan comportar como una lista circular. 4.2 Registro de Banderas El registro de banderas en un registro de propósito general, habilitado y nombrado así porque sus bits funcionan como banderas de control. El registro de banderas fue implementado con la finalidad de hacer más sencillo el monitoreo de las variables que definen el estado y funcionamiento del PIC de control. Básicamente la información que podemos encontrar en el registro de banderas es el estado (vacío o lleno) de los buffers y el modo de operación del

29 29 WSN: COMUNICACIÓN INALÁMBRICA transceiver (transmisión, recepción y bajo consumo). El bit que representa cada bandera tiene un valor de 0 para falso y un 1 para cierto. En la figura siguiente (figura 4.2) se muestra el registro de banderas y las variables de control asociadas a cada uno de sus bits. En el caso de las banderas que indican el modo de operación, sólo puedee estar activa una a la vez. Es por eso que cuando la función control (ver apartado 3.4) después de verificar el valor en las líneas de control (figura 3.1) y antes de proceder a hacer un cambio en el modo de operación del transceiver, primero verifica el estado de operación actual (registro de banderas). Si el modo de operación ya está activo, no se hace ningúnn cambio y la función control regresa al comienzo de la misma. La verificación del modo de está ejecutando en el PIC de Figura 4.2 Registro de banderas. operación en las líneas de control es una rutina que siempre se control y sólo se ve interrumpida por la función ISR. Otro caso en el que se da uso del registro de banderas es en la función encargada de atender las interrupciones del PIC de control (función ISR). Por ejemplo cuando se dará comienzo a la transmisión de una nueva trama de datos, la función ISR es la encargada de transferir un dato del buffer de transmisión al registro auxiliar ENVIAR. Se puede dar el caso de que el buffer de transmisión este vacío, de modo que lo primero que prueba la función ISR es la bandera de buffer de transmisión vacío antes de comenzar con la transmisión del primer bit de la trama. Como se puede ver, el uso del registro de banderas simplifica mucho los procedimientos (en el código ensamblador) que realiza el PIC de control, ya que es preferible verificar el valor de un sólo bit que la verificación de registros completos (normalmente se requiere de mucho mas operaciones). 4.3 Funcionamiento del nodo y flujo de datos. El funcionamiento del nodo sigue un mecanismo relativamente sencillo. Como primer ejemplo supongamos que en un primer momento el nodo transmitirá datos a la red. El PIC de protocolo indica el modo de operación del transceiver por medio de las líneas de control y posteriormente el PIC de control configura el CC1000 en modo transmisor. Cuando se ha configurado el transceiver, el PIC de control pone a 1 la línea de control que va al PIC de protocolo, señal con la que se da inicio al flujo de datos que serán transmitidos hacia el canal inalámbrico.

30 30 PROYECTO DE INGENIERÍA ELECTRÓNICA II Los datos (registros de 8 bits) que desea enviar el protocolo cross-layer son enviados por la UART al PIC de control, éste los recibe y los almacena en el buffer de transmisión. De forma simultánea y cuando hay por lo menos un dato almacenado en el buffer de transmisión, el dato localizado al frente del buffer es transferido a un registro auxiliar llamado ENVIAR, el cual es enviado bit por bit al canal de comunicación inalámbrico a través del CC1000. La señal de reloj generada por el CC1000 es la pauta para la transmisión de cada bit de información en esta última etapa del hardware del nodo. Cuando el nodo está recibiendo datos (transceiver en modo receptor) el mecanismo es exactamente el inverso pero con el buffer de recepción y un registro auxiliar llamado RECIBIR. En la figura 4.3 se ejemplifica de manera clara el flujo de datos que se da en el PIC de control. Figura 4.3 Flujo de datos en el PIC de control. 4.4 Función Control El código del programa en el PIC de control, comienza con instruccioness que configuran todos los periféricos que se usará para su interacción con los dispositivos que forman el nodo. Los periféricos a usar por el PIC de control son la USART, el módulo MSSP en modo SPI y los puertos B, C y D de I/O, estee último sólo para desplegar el registro de banderas y monitorear el funcionamiento del PIC de control. Inicialmente la función control verifica el valor en las líneas de control y de acuerdo al valor binario leído configura el CC1000 llamando a las funciones MODO_TX, MODO_RX y MODO_PD. Los nombres de las funciones anteriores hacen evidente el modo de operación del transceiver, éstas ocupan la interfaz de configuración (bus SPI) para enviar los parámetros de configuración al CC1000. Los parámetros de configuración son valores constantes que se definen en tablas al inicio del programa, dichos valores configuran al CC1000 para trabajar en

31 31 WSN: COMUNICACIÓN INALÁMBRICA una frecuencia MHz ya sea como transmisor o receptor. La función control consiste en un ciclo infinito en donde se prueba el valor de los bits de control y únicamente sale de este ciclo infinito cuando hay un cambio en el modo de operación del transceiver. La convención para indicar el modo de operación del transceiver se hizo mediante dos bits de control (líneas de control). En la siguiente figura se muestran los valores binarios de las líneas de control correspondiente a los tres modos de operación del CC1000. Modo de operación Líneas de control Transmisión (modo TX) 0 0 Recepción (modo RX) 0 1 Bajo consumo (modo PD) Figura 4.4 Control del modo de operación del CC1000 La lógica de la función control se basa en el siguiente algoritmo para cambiar el modo de operación del transceiver: Verificación del modo de operación en que se encuentra el PIC de control: PD, TX o RX. Si se encuentra en el modo TX, y los bits de control indican un cambio al modo PD, el cambio se realiza inmediatamente llamando a la función TURNOFF_TX. Si el cambio es al modo RX primero se desactiva el modo TX (función TURNOFF_TX) y posteriormente se activa el modo RX con la función TURNON_RX. Si se encuentra en el modo RX, y los bits de control indican un cambio al modo PD, el cambio se realiza inmediatamente llamando a la función TURNOFF_RX. Si el cambio es al modo TX primero se desactiva el modo RX (función TURNOFF_RX) y posteriormente se activa el modo TX con la función TURNON_TX Si se encuentra en el modo PD, el cambio al modo TX o RX es inmediato con las funciones TURNON_TX y TURNON_RX respectivamente. Para seguir de manera gráfica el funcionamiento de la función control, en la figura 4.5 se muestra su diagrama de flujo. Las funciones internas a las que salta la función control después de la validación de las líneas que indican el modo de operación (MODO_TX, MODO_RX y MODO_PD), primero validan el modo de operación actual del transceiver por medio del registro de banderas (ver apartado 4.1), el propósito del registro de banderas es no permitir la misma configuración dos veces (cambio de modo TX a TX por ejemplo) y que no se vea afectado el rendimiento del transceiver reflejándose en la perdida de datos.

32 32 PROYECTO DE INGENIERÍA ELECTRÓNICA II Fig. 4.5 Diagrama de flujo de la función control. Como se puede ver la función control engloba todas las funciones de configuración del CC1000 que se han mencionado en párrafos anteriores. Sin embargo las funciones de configuración son tomadas en su totalidad del proyecto Comunicación a nivel de enlace de datos con unidades de radiofrecuencia [1]. Salvo la modificación casi total de la función WRITETOCC1000 y algunas otras pequeñas adaptaciones derivadas del modelo de microcontrolador usado, la mayoría de las funciones son utilizadas íntegramente, por lo que si se desea ahondar más en su implementación, se recomienda leer la bibliografía correspondiente y de la que se hace referencia al final de este documento. 4.5 Función ISR La función ISR es la encargada de atender las interrupciones generadas en el PIC de protocolo. Las fuentes de interrupción sólo pueden ser dos: La interrupción por transmisión o recepción completa de un dato (8 bits) por parte de la USART.

33 33 WSN: COMUNICACIÓN INALÁMBRICA Y la interrupción externa generada por un flanco de subida del reloj del CC1000 cuando se encuentra en un modo de operación activo (TX o RX). A diferencia de la función control que en esencia sólo se encarga de la configuración del CC1000, la función ISR es la que se encarga realmente del control del flujo de datos en el nodo. Al presentarse una solicitud de interrupción, la función ISR lo primero que hace es validar el origen de la interrupción y ejecutar la sección de código que corresponda. El procedimiento para la validación de la fuente de interrupción es un método obligado, ya que los PIC s cuentan con un sólo vector de interrupción [6]. Cuando la solicitud de interrupción es generada por la señal de reloj del CC1000 (interrupción externa), significa que el transceiver está listo para recibir o transmitir un nuevo bit según sea el modo de operación. La señal de reloj sincroniza el envío y recepción de las tramas de bits por la terminal DIO del CC1000, de modo que si se trata de una transmisión, por cada ciclo de reloj un bit de información es codificado, modulado y enviado al canal de comunicación inalámbrico. En el caso de recepción el transceiver hace el proceso inverso. A continuación se enlista la secuencia de pasos que sigue la función ISR para atender las solicitudes interrupción. Primero se verifica la fuente de interrupción, ya sea la USART por transmisión/recepción o interrupción externa. En el caso de que las banderas de interrupción de ambas fuentes estén activadas, la prioridad es concedida a la interrupción externa, por la sencilla razón de que la comunicación entre el transceiver y el PIC de control (interfaz de datos) es síncrona a diferencia de la comunicación asíncrona de la USART. En caso de que se trate de una interrupción externa, las dos únicas posibilidades son que el transceiver esté operando en modo transmisor o en caso contrario como receptor. Si el transceiver está operando en modo receptor, se llama a la función RX_DIO. La función RX_DIO se encarga de recibir los datos del CC1000 validando el formato de las tramas de bits que llegan al pin DIO y formando datos de ocho bits que son almacenados en el buffer de recepción, para posteriormente ser transferidos al protocolo cross-layer. Si el transceiver está operando en modo transmisor, se llama a la función TX_DIO. La función TX_DIO se encarga de hacer el envió de los datos contenidos en el buffer de transmisión, el envió lo hace bit por bit y con un formato de trama de 24 bits (ocho bits de preámbulo, ocho de datos y ocho bits de paro). Cuando se trata de una interrupción de la USART, al igual que con la interrupción externa también se pueden dar dos casos: Si el nodo está transmitiendo datos, la interrupción se debe a que se ha recibido un dato del PIC de protocolo, el cual debe ser almacenado en el buffer de

34 34 PROYECTO DE INGENIERÍA ELECTRÓNICA II transmisión para su posterior transmisión al canal de comunicación inalámbrico. Figura 4.6 Diagrama de flujo de la función ISR

35 35 WSN: COMUNICACIÓN INALÁMBRICA Si el nodo se encuentra recibiendo datos, la interrupción se debe a que se ha completado la transmisión de un dato del PIC de control al PIC de protocolo y es momento de sacar un nuevo dato del buffer de recepción y enviarlo al PIC de protocolo. Si se da el caso de que el buffer de recepción se encuentra vacío simplemente se desactiva la interrupción por recepción de la USART, hasta que el buffer de recepción tenga por lo menos un dato almacenado. La figura 4.6 muestra el diagrama de flujo de la función ISR (por cuestiones en la resolución de la imagen, ésta se muestra verticalmente). 4.6 Funciones TX_DIO y RX_DIO La función TX_DIO es la encargada de generar la señal que el transceiver codificará, modulará y enviará al canal de comunicación inalámbrico. Los datos almacenados en el buffer de transmisión son turnados uno a la vez (y éstos a su vez bit por bit) a un registro auxiliar llamado ENVIAR, el registro ENVIAR representa la puerta de salida a la red. La señal de reloj generada por el CC1000 está presente en todo momento cuando el transceiver está activo, ya sea como receptor o transmisor, por lo tanto en cada ciclo de reloj el transceiver codificará y modulará el valor que esté presente en el pin DIO sin importar si el valor pertenece o no a un dato valido. Dado que la comunicación inalámbrica a través del CC1000 siempre permanece activa, se puede ver que es necesario implementar mecanismos de señalización en las tramas de datos transmitidas por el CC1000, para que el receptor pueda identificar el comienzo y fin de una trama, discriminando datos no validos y ruido. El no poder garantizar que en todo momento pueda estar presente una señal con información valida en el pin DIO del CC1000, requiere de establecer una convención para el formato de los datos de salida generados por el transceiver. Esta convención en el formato de los datos de salida, da como resultado una comunicación asíncrona a nivel físico entre los nodos de la red. En una primera instancia, la función TX_DIO se implementó de manera que el formato de las tramas fuera similar al manejado en la USART de los microcontroladores (ver figura 1.5), es decir un estado alto 1 cuando no hay datos que transmitir, un 0 como bit de inicio, ocho bits de datos y un 1 al final como bit de paro, es decir una trama de 10 bits. Sin embargo, al hacer pruebas de comunicación entre dos nodos (un transmisor y un receptor) nos encontramos con los siguientes inconvenientes: Cuando se establecía la comunicación entre transmisor y receptor, el envió de datos funcionó muy bien, pero si por alguna razón el transmisor era apagado (nodos que van y vienen en una WSN) el receptor empezaba a recibir mucho ruido e identificaba ese ruido como datos validos insertándolos en el buffer de recepción. Esto deja ver que el transceiver trabajando en modo receptor requiere que haya una transmisión activa por parte de otro nodo para funcionar óptimamente, de lo contrario también identifica las señales de ruido como transmisiones validas.

36 36 PROYECTO DE INGENIERÍA ELECTRÓNICA II La situación descrita en el punto anterior hizo más que evidente que el CC1000 es muy sensible al ruido cuando funciona como receptor. Recordemos que el transceiver codifica los datos en Manchester y los modula en FSK, este procedimiento es un estándar muy común en las comunicaciones digitales y por lo tanto muchas de las señales en el medio tienen esas características. Después de que se identificó muy bien el problema de la sensibilidadd del CC1000 a otras señales en el medio, el siguiente paso fue implementar un mecanismo de señalización más robusto de manera que la discriminación de señales no validas por parte del PIC de control (nivel de capa física) fuera eficiente. En las pruebas que se hicieron en esta primera parte, se pudo observar que la señal entregada por el CC1000 funcionando en modo receptor y en ausencia de un transmisor, no tenía secuencias largas de bits con el mismo valor. Por lo tanto en dicha señal, la frecuencia de cadenas de 1s o de 0s consecutivos (mas de 5 ó 6) era casi nula. En las pruebas realizadas, en la pantalla del osciloscopio no se detectaron más de una decena de secuencias de este tipo, sin embargo aunque la frecuencia de cadenas de este tipo sea mayor, el rendimiento del nodo no se verá afectado después de implementar el nuevo formato de trama. El nuevo formato de las tramas se propuso de manera que la señalización de los datos fuera más grande. El formato de la trama ahora tendría ocho bits de preámbulo, ocho bits de datos y ocho bits de paro, dando lugar a tramas de datos de 24 bits. El preámbulo consiste en una cadena de 0s, mientras que los bits de paro son 1s. La figura 4.7 muestra el formato de la trama propuesta para discriminar la señal de ruido entregada por el CC10000 en ausencia de una transmisión activa. Figura 4.7 Formato de trama con 24 bits La versión final de la función TX_DIO quedó implementada para hacer la transmisión de tramas con un formato de 28 bits, tiene contadores (registros de propósito general) auxiliares que le permiten llevar un conteo de los bits de cada trama (preámbulo, datos y paro). Si no hay datos que transmitir, la función TX_DIO pone un 1 en el pin DIO del transceiver. La función RX_DIO hace el proceso inverso, valida la trama de 24 bits, extrayendo los ocho bits que constituyen los datos que interesan y posteriormente los almacena en el buffer de recepción.

37 37 WSN: COMUNICACIÓN INALÁMBRICA Para más detalles de la implementación de las funciones RX_DIO y TX_DIO se puede consultar el anexo A donde se muestra el código ensamblador y los comentarios pertinentes. 4.7 Cronología y detalles de la implementación. En este apartado haremos mención de algunos detalles de implementación que surgieron como respuesta a problemas de comunicación y sincronización entre los dispositivos que forman el nodo. Como primer paso y para tener una referencia gráfica que nos permita entender mejor el funcionamiento del nodo, en la figura 4.8 se muestra un diagrama de conexión de los dispositivos que forman el nodo, especificando nombre del componente y nombre de los pines de conexión. A partir de este diagrama se puede construir muy fácilmente el circuito. Figura 4.8 Diagrama final de la implementación. El recuento de los problemas que se fueron solucionando a lo largo del proyecto se enlista en los siguientes párrafos, se presentan de acuerdo a cómo se fue desarrollando el programa que controla el flujo de datos entre el canal inalámbrico y el protocolo cross-layer. A lo largo del proyecto sólo se trabajó con dos nodos, uno como transmisor y otro como receptor. Ya en la etapa final, ambos nodos tuvieron la capacidad de intercambiar el modo de operación de manera que pudieran funcionar indistintamente como transmisor o receptor Configuración del transceiver. El primer problema que se presentó fue al momento de configurar el CC1000, el código heredado implementaba la interfaz de comunicación SPI (interfaz de configuración) por software, esto representaba un problema, pues las limitaciones de memoria de los PIC s impedían tener código muy extenso. De modo que para reducir el tamaño del programa (código ensamblador) se usó el módulo MSSP configurado en modo SPI para la interfaz de configuración del CC1000.

38 38 PROYECTO DE INGENIERÍA ELECTRÓNICA II La implementación de la primera versión del programa para configurar el CC1000 no resultó sencilla, pues aunque se reutilizó gran parte del código, fue necesario modificar y en algunos casos rescribir algunas funciones para adaptarlo al PIC16F877, pues originalmente el código fue escrito para AVR s y PIC16F84. El inconveniente más engorroso en esta primera parte del proyecto, es que el código está repleto de parámetros (direcciones y datos) de configuración y al momento de configurar el CC1000 hay que monitorear que en efecto sean enviados todos al CC Comunicación con el transceiver. El siguiente punto en la implementación del código, fue diseñar una rutina que enviara y recibiera datos del transceiver. Esta parte del código no es la más extensa pero si es la más importante, pues se trata de la programación de la puerta de entrada y salida de datos al nodo. En una primera versión del código, el trabajo se enfocó sólo en atender las solicitudes de interrupción originadas por los flancos de subida de la señal de reloj de CC1000. El objetivo era darle formato a las tramas de salida para que transmisor y receptor trabajaran con una señalización que le permitiera al receptor extraer los ocho bits de información contenidos en cada trama. Como se menciona en el apartado 4.6, el primer formato de trama implementado fue el de 10 bits (bit de inicio, 8 bits de datos y un bit de paro). Cuando se observaron los inconvenientes de ocupar este formato de trama, se optó por un nuevo formato de trama. En este nuevo formato de trama, el bit de inicio se convirtió en una cadena de ocho 0 s consecutivos que constituían un preámbulo y el bit de paro se convirtió en una cadena de ocho 1 s consecutivos. El nuevo formato de trama eliminó los problemas de ruido en el receptor cuando no había una transmisión activa. El resultado final de esta etapa es un par de funciones que se encargan, según sea el caso, de recibir o transmitir los datos al transceiver, las funciones son TX_DIO y RX_DIO Flujo de datos en el PIC de control. Solucionado el problema de la comunicación entre nodos, el siguiente problema fue implementar una rutina que supiera de donde tomar los datos a transmitir e igualmente donde colocar los datos recibidos. Hasta antes de este punto, el dato que se transmitía era únicamente el registro ENVIAR (ver figura 4.3) el cual contenía un valor fijo (0xF0), mientras que en la recepción el dato simplemente se extraía de la trama recibida y se desplegaba en un puerto del microcontrolador. Para esta altura del proyecto ya se había visto la necesidad de ocupar dos microcontroladores en lugar de sólo uno. Entonces la solución más práctica fue que un microcontrolador se encargara de todo el proceso de transmisión y recepción de datos inalámbricamente, mientras que el otro estaría destinado únicamente al protocolo cross-layer. Planear el funcionamiento del nodo de manera modular (ver capítulo 3) permitió que el PIC de control fuera dedicado únicamente al transporte de datos del PIC de protocolo al canal inalámbrico y viceversa.

39 39 WSN: COMUNICACIÓN INALÁMBRICA El PIC de protocolo se comunicaría con el PIC de control a través de la USART, de modo que los datos recibidos por este medio del lado del PIC de control, son datos que llevan como destino el canal de comunicación inalámbrico. La manera de mantener esos datos antes de que sean transmitidos al canal inalámbrico es mediante un buffer circular (buffer de transmisión), en el que se van almacenando los datos y de donde la función TX_DIO los toma uno a uno para formar las tramas que serán enviadas al transceiver. La idea de utilizar un buffer circular (TDA lista circular) es porque representa una manera muy práctica para guardar y extraer datos en memoria. Para el proceso de recepción de datos, la mecánica es muy similar a la del transmisor. Las tramas recibidas son validadas por la función RX_DIO, la cual extrae el dato contenido en la trama y lo guarda en el buffer de recepción. La función ISR es la encargada de sacar los datos del buffer de recepción, uno a la vez, cada que se genera una interrupción de la USART cuando se ha completado la transmisión de un dato al PIC de protocolo. La codificación de las funciones que permitieron el flujo de datos a través del PIC de control, fue un punto crucial en el desarrollo de este proyecto, pues con esto la interfaz inalámbrica del nodo ya estaba implementada en su totalidad. A estas alturas del proyecto, puede verse al PIC de control como un bloque intermediario entre el PIC de protocolo y el transceiver, dicho bloque funciona como un traductor, donde a partir de las tramas de 24 bits recibidas del transceiver se genera un dato de ocho bits, las tramas de ocho bits representan una unidad de información para el protocolo cross-layer. El bloque intermediario también funciona como traductor en la dirección opuesta, de manera que el protocolo cross-layer (PIC de protocolo) queda totalmente habilitado para poder comunicarse con otros nodos inalámbricamente Modo de operación. El protocolo cross-layer trabaja en base a períodos de actividad, pues el ahorro de energía es un requisito indispensable en las redes de sensores. Aunque el ahorro de energía no es la única razón para que el cross-layer trabaje por períodos de tiempo, es conveniente que un nodo no permanezca por períodos indefinidos transmitiendo o recibiendo información del canal de comunicación común a todos los nodos de la red. En general se desea que haya la menor cantidad de transmisiones a un mismo tiempo de manera que el tráfico en la red sea mínimo, ya que un medio de comunicación inalámbrico es muy sensible a interferencias por ruido o por otras señales (incluyendo a las señales transmitidas por otros nodos). Cada vez que un nodo entra en un período de actividad, puede ser para recibir o transmitir información. Por lo pronto el protocolo cross-layer sólo tiene la capacidad para la configuración de la red, de modo que la transmisión y recepción de datos por parte de un nodo estará determinada principalmente por las tramas Hello y Ficha [2]. Para que el nodo pueda cambiar de modo de operación, se implementó la función control, esta función está constantemente monitoreando al PIC de protocolo con el fin de ofrecer los servicios de la interfaz inalámbrica (capa física) al protocolo cross-layer cuando éste los requiera.

40 40 PROYECTO DE INGENIERÍA ELECTRÓNICA II Sincronización. El problema que se observó al momento de cambiar el modo operación del nodo fue que la reconfiguración requería valores muy específicos en ciertas terminales de los dispositivos. Inclusive el mismo problema se presentaba al encender por primera vez el nodo. Uno de los principales factores en la sincronización del nodo es el reloj con el que trabaja cada dispositivo Frecuencia de operación de los dispositivos. Inicialmente los dos microcontroladores trabajaban con un reloj de 4 MHz, es decir, una instrucción por microsegundo y el módulo CC1000PP-868 con un reloj de MHz. Pero cuando se implementaron las funciones TXDIO y RXDIO hubo la necesidad de aumentar la frecuencia del PIC de control; lo anterior obedece a que las funciones que debe realizar el PIC de control se ven limitadas en tiempo por la señal de reloj que genera el transceiver. El reloj generado por el CC1000 tiene un período de 26us, de modo que mientras el transceiver se encuentre en un modo activo, el PIC de control tendrá una solicitud de interrupción cada 26us. Un período de tiempo ligeramente menor a 26us es con el que cuenta el PIC de control y en especial la función ISR para atender las dos fuentes de interrupción posibles (USART e interrupción externa), de modo que lo que se espera es que antes de que llegue la siguiente interrupción externa el PIC de control ya se encuentre listo para atenderla. La comunicación serial (USART) entre los microcontroladores del nodo (ver apartado 1.1.3) se configuró a una velocidad de 9600 bps, de modo que si suponemos una transmisión o recepción continua (el peor caso) habrá una solicitud de interrupción por parte de la USART cada 1.04 ms. La elección de la velocidad de transmisión en la USART (9600 bps) hace imposible que se llenen las localidades disponibles en el buffer de transmisión. Por todo lo mencionado anteriormente, se decidió usar un reloj de 16 MHz en el PIC de control aumentando en 4 veces su velocidad para ejecutar instrucciones con respecto al PIC de protocolo. El resultado de aumentar la velocidad de ejecución en el PIC de control fue asegurar que la función ISR, en el peor de los casos, se terminara de ejecutar en un tiempo menor a 26us y evitar errores en los bits de las tramas; un bit de más para el caso de transmisión y la omisión de un bit en el caso de recepción Sincronización de los dispositivos. Además de tomar en cuenta las frecuencias de operación de los dispositivos que forman el nodo, también fue necesario sincronizar la configuración de cada una de las interfaces de comunicación que hay entre los dispositivos del nodo. Esta parte de sincronizar la configuración de las interfaces de comunicación, fue el último problema resuelto en el desarrollo de este proyecto. El problema radicó en que como el PIC de control es 4 veces más rápido (reloj de 16 MHz) que el PIC de protocolo, cuando el PIC de control ejecutaba la sección de código para

41 41 WSN: COMUNICACIÓN INALÁMBRICA configurar el modo de operación del transceiver, la señal de control (bits de control) del modo de operación aun no estaba lista. Otro lugar donde se presentaron problemas fue en la configuración de la USART en ambos PIC s, pues como se vio en el capítulo 1, se trata de una comunicación asíncrona, de modo que importa mucho el valor inicial de las terminales de la USART. El problema se presentaba porque la configuración de la USART se llevaba a cabo más rápido en el PIC de control que en el PIC de protocolo y esta situación causaba una serie de confusiones en el hardware del PIC de control, pues si la señal TX del PIC de protocolo no estaba en 1, el pin RX del PIC de control interpretaba los cambios de voltaje en el pin TX (debidos a la configuración del puerto) como datos y producía interrupciones que alteraban el funcionamiento del PIC de control. Para resolver el problema se agregó a las líneas de control del modo de operación, un par de líneas más (líneas de sincronización en figura 4.8), una que va del PIC de control al PIC de protocolo (sem1) y otra en sentido contrario (sem). Estas nuevas líneas servirán como semáforos entre ambos PIC s para indicarse que ya están configurados y listos para comenzar a funcionar en conjunto. El mecanismo de señalización es el siguiente: al arrancar el sistema (nodo) el PIC de protocolo configura primero sus periféricos (puertos y USART), al acabar pone a 1 la línea sem1 indicando al PIC de control que está listo. Cuando el PIC de control recibe la señal de que ya se puede configurar, hace la configuración de sus periféricos y del transceiver en modo PD y seguidamente pone a 1 la línea sem indicando al PIC de protocolo que ya está listo y pueden empezar a trabajar en conjunto. A partir de este punto, el funcionamiento del PIC de control estará totalmente gobernado por el PIC de protocolo. Ya que el nodo ha arrancado, sólo se ocupa la línea sem. Se ocupa cuando hay un cambio en el modo de operación. El mecanismo es el siguiente: cuando el PIC de protocolo indica mediante las líneas de control un cambio en el modo de operación, pasa a una rutina donde esperará a que el valor de la línea sem sea 1. Cuando esto sucede, es la señal del PIC de protocolo de que el transceiver ya tiene la nueva configuración y puede empezar el flujo de datos, si es el caso de un modo de operación como transmisor o receptor.

42 42 PROYECTO DE INGENIERÍA ELECTRÓNICA II Capítulo 5. Notas finales. 5.1 Estado final de la implementación. La elección de componentes, la migración de código al PIC16F877, la correcta configuración del transceiver CC1000 y el desarrollo de un programa capaz de proveer al PIC de protocolo una interfaz de comunicación inalámbrica para comunicarse con otros nodos, es a grandes rasgos el proceso de desarrollo del presente proyecto. En una red de sensores inalámbricos se tienen que cuidar muchos aspectos como ahorro de energía, trafico en la red, tolerancia a fallas, sincronía en la comunicación entre nodos, etc. Sin embargo algo que nunca debe de fallar en un nodo es la conectividad; un nodo siempre debe estar en capacidad de poderse comunicar con otros nodos, lo cual es vital para su subsistencia dentro de la red. El diseño modular implementado, permite que el nodo pueda funcionar en base a capas o niveles en la comunicación que se establece con otros nodos, una primera capa que hace la función de interfaz inalámbrica y a la que nos referimos como capa física, es la encargada de establecer la comunicación a nivel de bit con otros nodos, en esta parte únicamente se transmiten o reciben tramas de bits (24 bits), las cuales son procesadas para extraer o agregar los datos útiles (ocho bits) que sirven como unidad de información al protocolo cross-layer. Una segunda capa formada por el protocolo cross-layer, este protocolo es el software que soporta la comunicación entre los nodos de la red a nivel de enlace de datos, dicho protocolo provee a los nodos mecanismos de enrutamiento y control de acceso al medio. Al final del proyecto la implementación realizada es capaz de comunicar dos nodos inalámbricamente y bajo el control del protocolo cross-layer poder construir una red inalámbrica más robusta y que pueda ser adaptada de acuerdo a los objetivos para los que ésta sea desarrollada. El trabajo realizado sobre el protocolo cross-layer consistió en una migración de código del PIC16F876 al PIC16F877. Puesto que en el proyecto antecesor [2] la prueba del cross-layer se hizo con el puerto serie de una PC como nodo raíz, al inicio de este proyecto y después de la migración de código al PIC16F877, las pruebas realizadas al poner en marcha el protocolo con tres nodos de los cuales uno funcionaba como nodo raíz y comunicados a través de la USART no fueron satisfactorias. Dicho lo anterior y por la escasez de tiempo, las pruebas realizadas a la interfaz de comunicación inalámbrica se hicieron mediante un módulo alterno al protocolo cross-layer. El módulo alterno consiste en un programa que controla el modo de operación (transmisión, recepción y bajo consumo) de la capa física y el valor de los datos a transmitir, estos últimos son datos con un valor fijo 0xAA y transferidos a la capa física a través de la USART, en el

43 43 WSN: COMUNICACIÓN INALÁMBRICA caso de la recepción los datos simplemente son transferidos al PIC de protocolo también a través de la USART y monitoreados con el osciloscopio. 5.2 Lo que falta por hacer. La capa física obedece a los requerimientos de comunicación del protocolo cross-layer, por lo que este último indica el modo de funcionamiento del nodo, es decir que desea transmitir o recibir información. Establecer mecanismos de sincronización en el funcionamiento de los módulos del nodo y la inserción del código necesario en el protocolo cross-layer para que controle los servicios de la capa física, es el trabajo pendiente que queda de este proyecto. Además de la adaptación del protocolo cross-layer (inserción de código) para trabajar de manera sincronizada con la capa física, también queda pendiente hacer los ajustes necesarios al código del cross-layer y en especifico a un sólo nodo para que funcione como nodo raíz y posteriormente se realicen las pruebas de comunicación de manera que se pueda establecer la configuración de una red de tres nodos (inicialmente) de forma autónoma. Dentro de las pruebas de comunicación también se recomienda hacer pruebas variando la velocidad de los dispositivos del nodo (principalmente de los PIC s) y de la sincronía que debe haber entre ellos, de manera que se encuentre una velocidad de transferencia de datos lo mas alta posible y como consecuencia aumentar la velocidad de transmisión de la red en general. 5.3 Conclusiones. El desarrollo de una red de sensores inalámbricos (WSN) es una tarea complicada y que requiere de esfuerzo conjunto; el trabajo desarrollado en este proyecto no fue la excepción. Para este proyecto, la labor realizada previamente en otros proyectos fue de mucha ayuda, aunque requirió de muchas modificaciones, y en específico la modificación sustancial del código ensamblador heredado. La implementación de una interfaz inalámbrica que permitiera la comunicación entre nodos, es el punto de partida para hablar realmente de una WSN. En el proyecto general el primer paso fue desarrollar un protocolo capaz de configurar una red sin intervención de algún operador (protocolo cross-layer), el siguiente paso y tema fundamental de este proyecto, es la comunicación inalámbrica entre nodos. Los resultados más importantes que se obtuvieron al desarrollar el proyecto fueron el poder comunicar dos o más nodos inalámbricamente, así como el diseño modular del nodo. El diseño modular permitió segmentar el proceso de comunicación de cada nodo en dos grandes bloques, un primer bloque o módulo cumpliendo con funciones a nivel de capa física y un segundo bloque realizando funciones MAC y de encaminamiento. Al concluir el proceso de desarrollo e implementación, queda construido un nodo con una arquitectura modular con dos bloques bien definidos y que hacen del nodo un sistema fácilmente adaptable a otros elementos, además de hacerlo muy factible para el trabajo colaborativo. Por lo tanto un trabajo que se recomienda a futuro y para aprovechar el diseño modular resultado del presente proyecto, es la nueva implementación de cada módulo con otras tecnologías de modo que después de varias pruebas se pueda determinar la más óptima.

44 44 PROYECTO DE INGENIERÍA ELECTRÓNICA II El trabajo descrito en el presente reporte forma parte de un proyecto más general para la construcción de una red de sensores inalámbricos ad-hoc, de manera que en este documento sólo se describe el desarrollo para la implementación de una interfaz inalámbrica que ofrece los servicios de capa física a los nodos de la red y quedando por realizar una evaluación del rendimiento del nodo cuando hay múltiples transmisiones. Al realizar el proyecto la mayor dificultad fue la inclusión de dos proyectos realizados con diferentes tecnologías y con ideas un tanto distantes, por lo que al final de este proyecto se espera que los proyectos posteriores puedan hacer uso del diseño modular que se plantea en este documento de manera que la forma de comunicación entre los módulos del nodo no se pierda y se pueda trabajar en nuevas implementaciones de manera más fácil y probando nuevas tecnologías o simplemente haciendo y proponiendo mejoras al código desarrollado.

45 45 WSN: COMUNICACIÓN INALÁMBRICA Bibliografía. [1] Moreno Escobar Carlos Ernesto. Comunicación a nivel de enlace de datos entre microcontroladores con unidades de radiofrecuencia. UAM [2] León López Roboam Darío, López Arreola Luis Octavio. Construcción de una red de sensores. UAM [3] Leonidas Guibas Feng Zhao. Wireless Sensor Networks: An Information Processing Approach. Morgan Kaufmann, [4] Microcontroladores - Fundamentos y aplicaciones con PIC. Valdés Pérez Fernando E. Editorial Marcombo, S.A. [5] Angulo Usategui José María, Romero Yesa Susana, Angulo Martínez Ignacio León Microcontroladores Pic 2ª Parte. Pic 16f87x. Diseño Práctico De Aplicaciones Editorial McGraw-Hill 2ª edición, 2006 [6] PIC16F87X Data Sheet 28/40-Pin 8-Bit CMOS FLASH Microcontrollers. ftp://ftp.microchip.com [7] MPLAB IDE User s Guide ftp://ftp.microchip.com [8] Chipcon CC1000 Single Chip Very Low Power RF Transceiver [9] CC1000PP Plug and Play Module User Manual (rev. 1.22)

46 46 PROYECTO DE INGENIERÍA ELECTRÓNICA II Anexo A Código Fuente. En este anexo se presenta el código ensamblador grabado en la memoria programa del PIC16F877 y al que en el documento nos referimos como PIC de control. El código ensamblador se muestra de forma integra y está dividido y comentado de tal forma que se puedan apreciar claramente las secciones de código correspondientes a cada función programada. De todos modos también se anexa a la versión digital de este documento el archivo de texto con el código fuente (código ensamblador) para que pueda ser nuevamente compilado y ejecutado paso a paso en el IDE de desarrollo MPLAB. Declaración de registros En esta sección de código se declaran las principales variables que se ocuparon a lo largo del programa. Las variables definidas son los registros donde se cargarán los datos y direcciones que son grabadas en el CC1000, el registro de banderas que es utilizado para monitorear el modo de operación del transceiver, así como el estado de los buffers circulares. Por último simplemente se declaran los apuntadores de lectura y escritura de los buffers y los registros ENVIAR y RECIBIR que son los registros que interactúan directamente con las rutinas para enviar y recibir datos (bits) del CC1000.

47 47 WSN: COMUNICACIÓN INALÁMBRICA Constantes de configuración. En esta sección se presentan básicamente las constantes (direcciones y parámetros) que deben ser grabadas en el CC1000 para su configuración en los diferentes modos de operación.

48 48 PROYECTO DE INGENIERÍA ELECTRÓNICA II

49 49 WSN: COMUNICACIÓN INALÁMBRICA Rutina de atención a interrupción (ISR). En esta sección de código se evalúa de qué fuente proviene la interrupción. Si la interrupción proviene de la USART o si proviene de una fuente externa. Si se trata de la interrupción externa, se salta a una rutina REQUEST_CC1000, que a su vez se compone de diferentes subrutinas que se verán más adelante. Y si la interrupción proviene de la USART, se evalúa si ésta corresponde a la transmisión o recepción de un dato. Rutina REQUEST_CC1000 La rutina comienza validando en el registro de banderas el modo de operación del CC1000. Si la validación indica que el CC1000 está en modo transmisión, se llama a la función TX_DIO, y en caso contrario se llama a la función RX_DIO. Las rutinas que se encargan de dar formato a las tramas al momento de la transmisión son ENVIA_BYTE_CEROS y ENVIA_BYTE_UNOS y están contenidas en la función TX_DIO. Ahora, si la validación del registro de banderas indica el modo recepción se llama a la función RX_DIO, esta función se encarga de ir verificando bit a bit si lo que entrega el CC1000 es una trama valida, es decir, si la trama está conformada por un preámbulo de ocho 0 s, ocho bits de datos y ocho 1 s como bits de paro. Las subrutinas asociadas que se encargan de esto son VALIDA_COMIENZO, RECIBIENDO_BYTE y VALIDA_FINAL respectivamente. Hay que tomar en cuenta que cada una de las subrutinas también puede presentar la ejecución de subrutinas auxiliares y que por cuestiones practicas no se comentan.

50 50 PROYECTO DE INGENIERÍA ELECTRÓNICA II

51 51 WSN: COMUNICACIÓN INALÁMBRICA

52 52 PROYECTO DE INGENIERÍA ELECTRÓNICA II

53 53 WSN: COMUNICACIÓN INALÁMBRICA Rutinas REQUEST_USART_RX y REQUEST _USART_TX Cuando hay una solicitud de interrupción por parte de la USART, la rutina REQUEST_USART_TX es llamada cuando la USART está lista para el envío de un nuevo dato al PIC de protocolo, la función principal de esta rutina es llamar a la función OBTIENE_RX que es la encargada de obtener del buffer de recepción el dato que será enviado. Si la interrupción es generada por la recepción de un dato a traves de la USART, se llama a la función REQUEST _USART_RX cuya tarea principal es llamar a la función INSERTA_TX. La función INSERTA_TX es la encargada de almacenar los datos recibidos por la USART en el buffer de transmisión. Reset La etiqueta RESET marca el inicio del programa, esta sección de código es para la configuración de los puertos de entrada/salida, la configuración del módulo SPI y la llamada a la rutina de configuración de la USART además de la inicialización de los apuntadores de de lectura y escritura de los buffers.

54 54 PROYECTO DE INGENIERÍA ELECTRÓNICA II

55 55 WSN: COMUNICACIÓN INALÁMBRICA Rutina CONTROL En esta rutina se verifica algún cambio en el modo de operación del transceiver así como la configuración del transceiver en caso de que dicho cambio sea requerido por el PIC de protocolo. Las rutinas asociadas son MODO_PD, MODO_TX y MODO_RX. Dentro de cada rutina se hace el llamado a otras rutinas que cambian el estado del CC1000 si es el caso. Lo que primero se valida cuando se llama a alguna de las funciones anteriores es el modo de operación actual del transceiver y hacer el cambio en el modo de operación sólo cuando es necesario. Las rutinas TXMODE y RXMODE son rutinas asociadas a la configuración del CC1000, dentro de estas se hacen llamados a rutinas como INIT_CC1000 para enviar los parámetros de configuración al CC1000. Si lo que se busca es configurar el CC1000 en modo bajo consumo, sólo se valida el modo de operación actual y según sea el caso se llama a la función TURNOFFRX o TURNOFFTX.

56 56 PROYECTO DE INGENIERÍA ELECTRÓNICA II

57 57 WSN: COMUNICACIÓN INALÁMBRICA

58 58 PROYECTO DE INGENIERÍA ELECTRÓNICA II Rutinas asociadas a los buffers de recepción y de transmisión. Dentro de las rutinas INSERTA_TX y OBTIENE_TX para el buffer de transmisión así como OBTIENE_RX e INSERTA_RX para el buffer de recepción, se valida el estado de los buffers de manera que no se sobrescriban datos en al caso de la inserción de datos e indicar que el buffer está vacío cuando se pretende extraer algún dato. Así que las rutinas asociadas al estado de los buffers son ES_VACIOTX, ES_LLENOTX, ES_VACIORX, ES_LLENORX, mientras que para los apuntadores, el llamado a las funciones AJUSTA_POINTER_RX y AJUSTA_POINTER_TX se usa para mantener bien delimitado el espacio de memoria designado para cada buffer y mantener su comportamiento de buffer circular.

59 59 WSN: COMUNICACIÓN INALÁMBRICA

60 60 PROYECTO DE INGENIERÍA ELECTRÓNICA II Rutinas asociadas a la configuración del CC1000. La rutina RESETCC1000 se ejecuta cada vez que el CC1000 es configurado, su función es grabar algunos de sus registros con parámetros que permiten la reconfiguración del CC1000 de manera óptima y hace uso principalmente de la rutina WRITETOCC1000. La rutina WRITETOCC1000 se encarga de escribir a través del módulo MSSP los parámetros de configuración del CC1000, primero se envía la dirección y posteriormente el dato.

61 61 WSN: COMUNICACIÓN INALÁMBRICA INIT_CC1000 Esta rutina inicializa el módulo de radiofrecuencia, primero aplicando un RESET al dispositivo y después cargando los valores de configuración (rutinas LEEDIRECCIONES Y LEEDATOS) ya sea de recepción o de transmisión. Una vez cargados los valores en los registros correspondientes, se procede a la calibración del CC1000. Rutina de calibración:

62 62 PROYECTO DE INGENIERÍA ELECTRÓNICA II

63 63 WSN: COMUNICACIÓN INALÁMBRICA RUTINAS PARA EL MODO DE OPERACIÓN Las rutinas TURNONTX, TURNOFFTX TURNONRX y TURNOFFRX cargan los valores a los registros del CC1000 para activar o desactivar el modo de transmisión o recepción del transceiver.

64 64 PROYECTO DE INGENIERÍA ELECTRÓNICA II

65 65 WSN: COMUNICACIÓN INALÁMBRICA Obsérvese la pequeña rutina que genera un retardo de 250us, es una rutina necesaria para la correcta configuración del CC1000 y aunque el objetivo de tal retardo no es realmente claro, es lo que indica la hoja de especificaciones del dispositivo. Rutinas para la calibración del filtro promedio.

66 66 PROYECTO DE INGENIERÍA ELECTRÓNICA II

67 67 WSN: COMUNICACIÓN INALÁMBRICA Rutinas de lectura de datos y direcciones. Estas rutinas realizan la función de leer los datos y las direcciones que serán enviadas al CC1000.

68 68 PROYECTO DE INGENIERÍA ELECTRÓNICA II Rutina de inicialización de USART. Finalmente se presenta la rutina que habrá de configurar la USART a una velocidad de 9600 bps y un reloj de 16 MHz. Al principio se deshabilita la interrupción por transmisión, esto con el fin de que no genere interrupciones antes de que haya un dato en el buffer de recepción.

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez Estructura de Microprocesadores PIC 18F4550 Módulos de Comunicación Serie Profesor Ing. Johan Carvajal Godínez Contenido Módulos de comunicación serie sincrónica I2C SPI Módulo de comunicación serie Asincrónico

Más detalles

INTRODUCCIÓN. Comunicación Serial.

INTRODUCCIÓN. Comunicación Serial. INTRODUCCIÓN La función principal de este tipo de comunicación es la de convertir datos de salida de forma paralela a serial y la de convertir datos de entrada de forma serial a paralela. El acceso al

Más detalles

2.5-1 USART Introducción.

2.5-1 USART Introducción. 2.5-1 USART Introducción. El USART (universal synchronous asynchronous receiver transmitter) es uno de los dos puertos series de los que dispone los PIC16F87X. Puede funcionar de forma síncrona (half duplex)

Más detalles

3 Interfaz PC DSP. 3.1 Introducción a las comunicaciones serie. 3 Interfaz PC DSP

3 Interfaz PC DSP. 3.1 Introducción a las comunicaciones serie. 3 Interfaz PC DSP 3 Interfaz PC DSP 3.1 Introducción a las comunicaciones serie Las comunicaciones serie se utilizan para enviar datos a través de largas distancias, ya que las comunicaciones en paralelo exigen demasiado

Más detalles

MICROCONTROLADORES PIC USART

MICROCONTROLADORES PIC USART USART Universal Synchronous Asynchronous Receiver Transmitter Síncrona o asíncrona Recibe y transmite Operación full duplex asíncrona Aplicación típica: comunicación con un PC mediante el protocolo RS232,

Más detalles

PANORAMA GENERAL DE LOS µc

PANORAMA GENERAL DE LOS µc PANORAMA GENERAL DE LOS µc Sistemas Digitales II Este tipo de dispositivos en la actualidad se encuentran en los supermercados, artículos electrodomésticos, instrumentos musicales, juguetes, equipo automotriz

Más detalles

PUERTOS DE ENTRADA / SALIDA EN UN MICROCONTROLADOR

PUERTOS DE ENTRADA / SALIDA EN UN MICROCONTROLADOR PUERTOS DE ENTRADA / SALIDA EN UN MICROCONTROLADOR Cualquier aplicación de un sistema digital basado en un microprocesador o microcontrolador requiere la transferencia de datos entre circuitos externos

Más detalles

Microcontroladores ( C)

Microcontroladores ( C) Microcontroladores ( C) Bibliografia: Hoja de datos del PIC 16F84 y 16F628 (www.microchip.com) Microcontroladores PIC: la clave del diseño (biblioteca) Microcontroladores PIC: diseño práctico de aplicaciones

Más detalles

Capítulo 1. Introducción a los PIC de 8 bits

Capítulo 1. Introducción a los PIC de 8 bits Capítulo 1. Introducción a los PIC de 8 bits 1.1 Memorias y Registros Entre los componentes básicos de un microcontrolador podemos definir el contador, sus registros, la memoria, el watchdog timer, el

Más detalles

CAPÍTULO III. FM vs Bluetooth en el Autómata

CAPÍTULO III. FM vs Bluetooth en el Autómata CAPÍTULO III FM vs Bluetooth en el Autómata En este capítulo se discutirá las ventajas y desventajas que tiene cada tecnología en general, en especifico para el desarrollo y buen desempeño del autómata

Más detalles

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI DEFINICIÓN Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, completamente estático es decir si el reloj se detiene los datos

Más detalles

EVOLUCIÓN HISTÓRICA DE LOS µp

EVOLUCIÓN HISTÓRICA DE LOS µp EVOLUCIÓN HISTÓRICA DE LOS µp El primer procesador fue inventado por los Babilonios en el año 500 ac En 1642 se perfeccionó la primera calculadora por Blas Pascal A mediados del siglo pasado se inventaron

Más detalles

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata Ing. Guillermo Murcia Ing. Jorge Luis Strack gjmurcia@fi.mdp.edu.ar jlstrack@fi.mdp.edu.ar Lecto-grabadora de SDcard - Se comunica con Arduino a través del protocolo de comunicación SPI. - Se comanda a

Más detalles

Diseño e Implementación de detección de errores mediante CRC y algoritmo que supervisa la comunicación entre dispositivos.

Diseño e Implementación de detección de errores mediante CRC y algoritmo que supervisa la comunicación entre dispositivos. PROYECTO Diseño e Implementación de detección de errores mediante CRC y algoritmo que supervisa la comunicación entre dispositivos. Integrante : Darwin Cardemil Rol : 2891002-9 Integrante : Camilo Díaz

Más detalles

Redes y Sistemas Computarizados de Control CAPITULO 1. Introducción a las Redes de Comunicación Industrial

Redes y Sistemas Computarizados de Control CAPITULO 1. Introducción a las Redes de Comunicación Industrial Redes y Sistemas Computarizados de Control CAPITULO 1 Introducción a las Redes de Comunicación Industrial AGENDA Topología de las Redes. Modos de Transmisión, Direccionamiento y Jerarquías de comunicación.

Más detalles

USB232. Hoja de datos

USB232. Hoja de datos - 1 - USB232 Hoja de datos 9600, 19200, 38400, 57600, 115200 bps Interfaz USB serie RS232 Integración de tecnología USB Para sistemas con comunicación serie RS232 - 2 - USB232 Interfaz USB serie RS232

Más detalles

Memoria y Entrada/Salida Tecnología Organización - Expansión

Memoria y Entrada/Salida Tecnología Organización - Expansión Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC2721 Arquitectura del Computador I Prof. Osberth De Castro Clase 05 Memoria y Entrada/Salida Tecnología Organización - Expansión La memoria

Más detalles

CURSO: MICROCONTROLADORES UNIDAD 4: COMUNICACIÓN SERIE- ARDUINO PROFESOR: JORGE ANTONIO POLANÍA

CURSO: MICROCONTROLADORES UNIDAD 4: COMUNICACIÓN SERIE- ARDUINO PROFESOR: JORGE ANTONIO POLANÍA CURSO: MICROCONTROLADORES UNIDAD 4: COMUNICACIÓN SERIE- ARDUINO PROFESOR: JORGE ANTONIO POLANÍA Un receptor asíncrono / transmisor universal (UART) es un bloque de circuitería responsable de implementar

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras Arquitectura de Computadoras Dr. Andrés David García García Escuela de Diseño, Ingeniería y Arquitectura Departamento de Mecatrónica 1 Microprocesadores y Periféricos Objetivos: Analizar la arquitectura

Más detalles

4. Tarjeta de control

4. Tarjeta de control 4. Tarjeta de control 4.1. Características Esta tarjeta permite conectar cualquier microcontrolador del mercado al resto de tarjetas esclavo. Como se detalla en la sección 2 de este documento (Bus de Intercomunicación),

Más detalles

CAPÍTULO 2. ARQUITECTURA Y COMPONENTES.

CAPÍTULO 2. ARQUITECTURA Y COMPONENTES. CAPÍTULO 2. ARQUITECTURA Y COMPONENTES. 2.1. ARQUITECTURA DEL SISTEMA. Vamos a proporcionar en este apartado una visión general de la arquitectura del sistema, para que así el lector pueda obtener una

Más detalles

En el presente capítulo, se tratará lo referente a los circuitos necesarios para la

En el presente capítulo, se tratará lo referente a los circuitos necesarios para la Capítulo 3. Adquisición de Señales En el presente capítulo, se tratará lo referente a los circuitos necesarios para la captura de las señales de los signos vitales y su envío al equipo de cómputo donde

Más detalles

Tema: Microprocesadores

Tema: Microprocesadores Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 1

Más detalles

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA INTRODUCCIÓN AL PIC NOMENCLATURA ARQUITECTURA. TEMPORIZACIÓN. SET DE INSTRUCCIONES. MODOS DE DIRECCIONAMIENTO.

Más detalles

ARQUITECTURA DEL PIC16F84A

ARQUITECTURA DEL PIC16F84A ARQUITECTURA DEL PIC16F84A Arquitectura interna del PIC16F84A CPU ALU Decodificador de Instrucciones - Buses Registro de trabajo W PC Contador de Programa Organización de la memoria Memoria de Programa

Más detalles

Modelo OSI y TCP/IP. Teleprocesamiento Ing. Zoila Marquez.

Modelo OSI y TCP/IP. Teleprocesamiento Ing. Zoila Marquez. Modelo OSI y TCP/IP Teleprocesamiento Ing. Zoila Marquez. Modelo OSI El Modelo OSI divide en 7 capas el proceso de transmisión de la información entre equipo informáticos, donde cada capa se encarga de

Más detalles

Protocolos de Telecomunicaciones Capa Física y Capa de Enlace de datos. Semana 2

Protocolos de Telecomunicaciones Capa Física y Capa de Enlace de datos. Semana 2 Protocolos de Telecomunicaciones Capa Física y Capa de Enlace de datos Semana 2 La capa física controla de qué manera se ubican los datos en los medios de comunicación. La función de la capa física de

Más detalles

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255 MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255 INTRODUCCIÓN Este integrado de la firma INTEL, conocido como PPI 8255 (Programmable Peripherical Interfase) realizado

Más detalles

Elección de un microcontrolador

Elección de un microcontrolador Elección de un microcontrolador Decisión multivariable. No hay un óptimo evidente Factores: Herramientas de desarrollo Base de conocimientos Precio y disponibilidad Familia versátil y en desarrollo Cantidad

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

SISTEMAS ELECTRÓNICOS DIGITALES

SISTEMAS ELECTRÓNICOS DIGITALES SISTEMAS ELECTRÓNICOS DIGITALES PRÁCTICA 6 SISTEMA DE ENCRIPTACIÓN 1. Objetivos - Estudio del funcionamiento de memorias RAM y CAM. - Estudio de métodos de encriptación y compresión de datos. 2. Enunciado

Más detalles

El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico

El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico El Modelo Es una arquitectura por niveles para el diseño de sistemas de red que permiten la comunicación entre todos los dispositivos de computadoras. Esta compuesto por siete niveles separados, pero relacionados,

Más detalles

Sistemas con Microprocesadores I

Sistemas con Microprocesadores I Sistemas con Microprocesadores I 1 Microcontroladores Introducción Harvard vs. von-neumann Clasificación del procesador Segmentado o Pipeline Ortogonal vs. No ortogonal 2 Microcontroladores PIC Siglas

Más detalles

Instituto Tecnológico de Morelia

Instituto Tecnológico de Morelia Instituto Tecnológico de Morelia Arquitectura de Computadoras Unidad 1b Programa 1.2.2 Memoria. 1.2.2.1 Conceptos de manejo de memoria. 1.2.2.2 Memoria principal semiconductora. 1.2.2.3 Memoria cache.

Más detalles

Desarrollo de Herramientas de Programación de Alto Nivel y Aplicaciones de Conectividad y Almacenamiento para el Microcontrolador MSP430

Desarrollo de Herramientas de Programación de Alto Nivel y Aplicaciones de Conectividad y Almacenamiento para el Microcontrolador MSP430 Desarrollo de Herramientas de Programación de Alto Nivel y Aplicaciones de Conectividad y Almacenamiento para el Microcontrolador MSP430 Memoria presentada por Carlos Pablo Silva Lütty Comisión: Wolfgang

Más detalles

Conceptos básicos de comunicación de datos

Conceptos básicos de comunicación de datos Conceptos básicos de comunicación de datos Comunicación de Datos Es el proceso de comunicar información en forma binaria entre dos o más puntos. Requiere cuatro elementos básicos que son: Emisor: Dispositivo

Más detalles

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús Microprocesador Introducción El microprocesador es la parte de la computadora diseñada para llevar acabo o ejecutar los programas. Este viene siendo el cerebro de la computadora, el motor, el corazón de

Más detalles

ARQUITECTURA DE LOS SUBSISTEMAS DE BUSES Y ENTRADA/SALIDA

ARQUITECTURA DE LOS SUBSISTEMAS DE BUSES Y ENTRADA/SALIDA U C V F A C C I E N C I A S Organización y Estructura del Computador II ARQUITECTURA DE LOS SUBSISTEMAS DE BUSES Y ENTRADA/SALIDA T e m a 2 G D O E C - II S e m e st r e I - 2012 AGENDA Subsistema de Buses

Más detalles

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc.

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc. REDES DE DATOS Modelo OSI Angélica Flórez Abril, MSc. Jerarquía de protocolos Organización en capas o niveles. El número de capas y sus funciones difieren de red a red. Cada capa ofrece servicios a las

Más detalles

Velocidades Típicas de transferencia en Dispositivos I/O

Velocidades Típicas de transferencia en Dispositivos I/O Entradas Salidas Velocidades Típicas de transferencia en Dispositivos I/O Entradas/Salidas: Problemas Amplia variedad de periféricos Entrega de diferentes cantidades de datos Diferentes velocidades Variedad

Más detalles

Guia para examen de Sistemas Embebidos I Para primer parcial Febrero 2013 Revisión 2 Ing. Julio Cesar Gonzalez Cervantes

Guia para examen de Sistemas Embebidos I Para primer parcial Febrero 2013 Revisión 2 Ing. Julio Cesar Gonzalez Cervantes Qué significa ALU? Arithmetic Logic Unit Guia para examen de Sistemas Embebidos I Para primer parcial Febrero 2013 Revisión 2 Ing. Julio Cesar Gonzalez Cervantes que operaciones realiza un ALU? suma, resta,

Más detalles

Medidas de Distancia mediante Rayos Infrarrojos

Medidas de Distancia mediante Rayos Infrarrojos Medidas de Distancia mediante Rayos Infrarrojos Con un nuevo módulo sensor de proximidad. La casa Sharp ha fabricado un nuevo sensor, en la forma del módulo GP2D02 que, con la ayuda de un microcontrolador,

Más detalles

Para implementar una memoria de mayor capacidad se deben considerar los siguientes pasos:

Para implementar una memoria de mayor capacidad se deben considerar los siguientes pasos: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE INGENIERIA LAB. DISPOSITIVOS DE ALMACENAMIENTO Y DE E/S PREVIO #5 IMPLEMENTACION DE MEMORIAS DE MAYOR CAPACIDAD 1. Investigar los pasos que se deben

Más detalles

Sensores inalámbricos de bajo

Sensores inalámbricos de bajo Sensores inalámbricos de bajo consumo. Parte 1. El sistema de telemetría con microcontroladores PIC Autor: Marc Ralita Álvarez Director proyecto: Francesc Sánchez Robert Sensores inalámbricos de bajo consumo

Más detalles

Este documento presenta las ventajas de la tarjeta de evaluación DRAGONFRUIT con respecto a la tarjeta de evaluación Arduino/Genuino UNO

Este documento presenta las ventajas de la tarjeta de evaluación DRAGONFRUIT con respecto a la tarjeta de evaluación Arduino/Genuino UNO Este documento presenta las ventajas de la tarjeta de evaluación DRAGONFRUIT con respecto a la tarjeta de evaluación Arduino/Genuino UNO Ventajas de producto Dragonfruit Rev 2 TECSEBI Rev. 2 Contenido

Más detalles

INTRODUCCIÓN A LAS REDES DE ORDENADORES

INTRODUCCIÓN A LAS REDES DE ORDENADORES INTRODUCCIÓN A LAS REDES DE ORDENADORES Historia Primeros ordenadores ( 1960) Un voluminoso y costoso ordenador Solo gobiernos y universidades Modo de trabajo Los usuarios codifican en tarjetas perforadas

Más detalles

EL BUS I2C CARACTERISTICAS. Fernando Remiro

EL BUS I2C CARACTERISTICAS. Fernando Remiro CARACTERISTICAS Fernando Remiro 1 CARACTERÍSTICAS Utiliza 2 líneas para transportar la información entre los distintos periféricos conectados al bus SDA (datos) SCL (reloj) Cada dispositivo se identifica

Más detalles

Introducción a la arquitectura PIC

Introducción a la arquitectura PIC 18 de septiembre de 2012 Contenido 1 Microprocesadores y Microcontroladores 2 3 4 Microprocesadores y Microcontroladores Microcomputadora consiste básicamente de: Unidad central de procesamiento (CPU),

Más detalles

Transmisión y Comunicación de Datos. Luis Aldana

Transmisión y Comunicación de Datos. Luis Aldana Transmisión y Comunicación de Datos. Luis Aldana 2010 Todos los derechos reservados. Queda estrictamente prohibida la reproducción parcial o total de esta obra por cualquier medio sin previa autorización

Más detalles

Introducción. Modo monitor. Cuaderno técnico 4: Grabación de microcontroladores PIC

Introducción. Modo monitor. Cuaderno técnico 4: Grabación de microcontroladores PIC Cuaderno técnico 4: Grabación de microcontroladores PIC [Introducción] [Modo monitor] [Arquitectura] [Autores] [Licencia] [Download] [Links] [Noticias] Introducción Los microcontroladores PIC se graban

Más detalles

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos

Más detalles

Tema: Comunicación en Serie. Interfaz RS-232.

Tema: Comunicación en Serie. Interfaz RS-232. Redes de Comunicación Industrial. Guía 1 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Redes de Comunicación Industrial Lugar de ejecución: Instrumentación y Control (Edificio 3, 2da planta)

Más detalles

Comunicación Serial: Conceptos Generales

Comunicación Serial: Conceptos Generales Comunicación Serial: Conceptos Generales Conceptos Generales Qué es la comunicación serial? Qué es RS-232? Qué es RS-422? Qué es RS-485? Qué es handshaking (o intercambio de pulsos de sincronización)?

Más detalles

UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA. Ingeniería en Electrónica EL MICROCONTROLADOR PIC16F84 PRESENTA: M. C. Felipe Santiago Espinosa

UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA. Ingeniería en Electrónica EL MICROCONTROLADOR PIC16F84 PRESENTA: M. C. Felipe Santiago Espinosa UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA Ingeniería en Electrónica EL MICROCONTROLADOR PIC16F84 PRESENTA: M. C. Felipe Santiago Espinosa Noviembre de 2007 Objetivos 2 Que los participantes adquieran el conocimiento

Más detalles

FUNDAMENTOS DE TELECOMUNICACIONES MULTIPLEXACIÓN. Marco Tulio Cerón López

FUNDAMENTOS DE TELECOMUNICACIONES MULTIPLEXACIÓN. Marco Tulio Cerón López FUNDAMENTOS DE TELECOMUNICACIONES MULTIPLEXACIÓN Marco Tulio Cerón López QUE ES LA MULTIPLEXACIÓN? La multiplexación es la combinación de dos o más canales de información en un solo medio de transmisión

Más detalles

CAPITULO III CONTROLADORES

CAPITULO III CONTROLADORES CAPITULO III CONTROLADORES 3.1 Controladores El controlador es el segundo elemento en un sistema de control automático, éste toma una señal de entrada y la compara con un valor establecido para obtener

Más detalles

Arquitectura de un Controlador Electrónico de Procesos

Arquitectura de un Controlador Electrónico de Procesos Arquitectura de un Controlador Electrónico de Procesos Unidad Central de Procesamiento (CPU) La unidad central de procesamiento es el elemento más importante de un controlador electrónico de procesos.

Más detalles

INFORME DE MONTAJE Y PRUEBAS DEL CIRCUITO ELECTRÓNICO PARA ADQUIRIR LOS POTENCIALES EVOCADOS AUDITIVOS

INFORME DE MONTAJE Y PRUEBAS DEL CIRCUITO ELECTRÓNICO PARA ADQUIRIR LOS POTENCIALES EVOCADOS AUDITIVOS INFORME DE MONTAJE Y PRUEBAS DEL CIRCUITO ELECTRÓNICO PARA ADQUIRIR LOS POTENCIALES EVOCADOS AUDITIVOS ACTIVIDADES: A02-2: Diseño de los circuitos electrónicos A02-3: Montaje y pruebas en protoboard de

Más detalles

Curso de. Módulo 10 MSSP: I2C. Ricardo Gómez González Andrés Prieto-Moreno Torres

Curso de. Módulo 10 MSSP: I2C. Ricardo Gómez González Andrés Prieto-Moreno Torres Curso de Micro controladores PIC Módulo 10 MSSP: I2C Juan González Gómez Ricardo Gómez González Andrés Prieto-Moreno Torres 1 Índice 1. Introducción al I2C 2. Registros I2C PIC16f876A 3. Ejemplo de Uso

Más detalles

1 INTRODUCCIÓN AL PROYECTO

1 INTRODUCCIÓN AL PROYECTO 1 INTRODUCCIÓN AL PROYECTO 1.1 Marco teórico Una de las innovaciones tecnológicas más sobresalientes es el microprocesador, el cual se ha desarrollado rápidamente a partir de su invención. Los procesadores

Más detalles

UART. Diseño de Sistemas con FPGA 1er cuatrimestre 2013 Patricia Borensztejn

UART. Diseño de Sistemas con FPGA 1er cuatrimestre 2013 Patricia Borensztejn UART Diseño de Sistemas con FPGA 1er cuatrimestre 2013 Patricia Borensztejn UART Universal Asynchronous receiver and transmitter: dispositivo (controlador ) que envía datos paralelos sobre una línea serie.

Más detalles

Bus I 2 C. Introducción

Bus I 2 C. Introducción Bus I 2 C Introducción 1980: Philips desarrolla el Bus de 2 alambres I 2 C para la comunicación de circuitos integrados. Se han otorgado licencias a mas de 50 compañías, encontrándonos con más de 1000

Más detalles

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE MECANICA ELECTRICA LABORATORIO DE ELECTRONICA PENSUM ELECTRONICA 6

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE MECANICA ELECTRICA LABORATORIO DE ELECTRONICA PENSUM ELECTRONICA 6 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE MECANICA ELECTRICA LABORATORIO DE ELECTRONICA PENSUM ELECTRONICA 6 ~ 1 ~ ÍNDICE Introducción...página 3 Teoría y prácticas de instrumentación...página

Más detalles

Periférico: dispositivo que intercambia datos con la UCP o la memoria Problemas:

Periférico: dispositivo que intercambia datos con la UCP o la memoria Problemas: 5. Interfaz de Entrada / Salida Organización de Entrada / Salida Buses e interfaces de E / S Sistema de E/S y periféricos Periférico: dispositivo que intercambia datos con la UCP o la memoria Problemas:

Más detalles

2. PANTALLA ALFANUMÉRICA DE LCD (HITACHI HD44780U)

2. PANTALLA ALFANUMÉRICA DE LCD (HITACHI HD44780U) 2. PANTALLA ALFANUMÉRICA DE LCD (HITACHI HD44780U) Este controlador de la casa Hitachi se usa para mostrar caracteres alfanuméricos en paneles LCD de matriz pasiva (los típicos que se pueden encontrar

Más detalles

PRODUCTO P05 SOFTWARE EMBEBIDO PARA EL CONTROL DEL CIRCUITO GENERADOR DE CORRIENTE DE LAS FORMAS DE ONDAS PARA ELECTROTERAPIA

PRODUCTO P05 SOFTWARE EMBEBIDO PARA EL CONTROL DEL CIRCUITO GENERADOR DE CORRIENTE DE LAS FORMAS DE ONDAS PARA ELECTROTERAPIA PRODUCTO P05 SOFTWARE EMBEBIDO PARA EL CONTROL DEL CIRCUITO GENERADOR DE CORRIENTE DE LAS FORMAS DE ONDAS PARA ELECTROTERAPIA Actividades: A05-1: Elaboración del diagrama de flujo de las funciones de control

Más detalles

Aplica para todas las sedes de la Universidad de Santander.

Aplica para todas las sedes de la Universidad de Santander. Versión: 01 Página 1 de 6 PROCESO y/o SUBPROCESO: PROCEDIMIENTO: SEGURIDAD INFORMÁTICA TOPOLOGÍA DE LA RED CONDICIONES GENERALES Se deben cumplir los lineamientos institucionales, leyes, normas, políticas,

Más detalles

Redes de Computadoras

Redes de Computadoras Redes de Computadoras Capítulo 2: Los modelos OSI y TCP/IP Eduardo Interiano QuéeselmodeloOSI? el Creado en 1984 por la Organización Internacional para la normalización (ISO) Es un modelo de siete capas

Más detalles

Arquitectura de Computadores II

Arquitectura de Computadores II Facultad de Ingeniería Universidad de la República Instituto de Computación Temas Repaso de conceptos Microcontroladores CISC vs RISC CISC Complex Instruct Set Computers RISC Reduced Instruct Set Computers

Más detalles

Análisis de arquitectura del protocolo

Análisis de arquitectura del protocolo Capítulo 2. Análisis de arquitectura del protocolo 802.11 2.1 Tecnologías inalámbricas Actualmente existen diferentes tipos de tecnologías inalámbricas que son las que presentamos a continuación. WIFI:

Más detalles

UNIDADES DE MEMORIA DIGITALES (PARTE 3) MEMORIAS DE ACCESO DIRECTO, ACCESO SECUENCIAL Y ASOCIATIVAS

UNIDADES DE MEMORIA DIGITALES (PARTE 3) MEMORIAS DE ACCESO DIRECTO, ACCESO SECUENCIAL Y ASOCIATIVAS SISTEMAS ELECTRÓNICOS DIGITALES BLOQUE UNIDADES DE MEMORIA DIGITALES (PARTE 3) MEMORIAS DE ACCESO DIRECTO, ACCESO SECUENCIAL Y ASOCIATIVAS Enrique Mandado Pérez María José Moure Rodríguez MEMORIAS DE ACCESO

Más detalles

PicController. Manual de usuario. Raquel Sánchez Díaz

PicController. Manual de usuario. Raquel Sánchez Díaz PicController Manual de usuario Raquel Sánchez Díaz Tabla de Contenidos 1. INTRODUCCIÓN...1 2. DESCRIPCIÓN DE LA VENTANA PRINCIPAL...1 2.1. MENÚ CONFIGURACIÓN...2 2.2. MENÚ PUERTO SERIE...2 2.3. MENÚ

Más detalles

Tema 15 ELECTRÓNICA DIGITAL. PROCESADORES DIGITALES (PARTE 2A) Arquitecturas Harvard y Von Neumann. Tipos de procesadores digitales

Tema 15 ELECTRÓNICA DIGITAL. PROCESADORES DIGITALES (PARTE 2A) Arquitecturas Harvard y Von Neumann. Tipos de procesadores digitales ELECTRÓNICA DIGITAL Tema 5 PROCESADORES DIGITALES (PARTE 2A) Arquitecturas Harvard y Von Neumann. Tipos de procesadores digitales SISTEMA FÍSICO DE LA DE CONTROL DE CONTROL ARQUITECTURA HARVARD CTR G M

Más detalles

Tema 4. Organización de la memoria

Tema 4. Organización de la memoria Tema 4 Organización de la memoria 1 ARQUITECTURA DEL PIC16F84 Tema 4. Organización de la memoria Memoria de programa tipo ROM Flash de 1024 registros de 14 bits Memoria de datos dividida en dos áreas:

Más detalles

La Comunicación es la transferencia de información con sentido desde un lugar (fuente,transmisor) a otro lugar (destino, receptor).

La Comunicación es la transferencia de información con sentido desde un lugar (fuente,transmisor) a otro lugar (destino, receptor). La Comunicación es la transferencia de información con sentido desde un lugar (fuente,transmisor) a otro lugar (destino, receptor). Elementos básicos de un sistema de comunicaciones 1 El Transmisor pasa

Más detalles

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS 1. CARACTERISTCAS Suministro de voltaje de funcionamiento 2.5 a 6 V Bajo consumo de corriente de espera (standby) de 10 ma máximo. Expansor I²C a puerto paralelo.

Más detalles

Líneas principales: son los enlaces entre centrales. Las líneas principales transportan varios circuitos de voz haciendo uso de FDM o de TDM síncrona.

Líneas principales: son los enlaces entre centrales. Las líneas principales transportan varios circuitos de voz haciendo uso de FDM o de TDM síncrona. Líneas principales: son los enlaces entre centrales. Las líneas principales transportan varios circuitos de voz haciendo uso de FDM o de TDM síncrona. Los abonados se conectan directamente a una central

Más detalles

Hay varias razones para que una unidad central se comunique con los dispositivos inteligentes. Éstas incluyen:

Hay varias razones para que una unidad central se comunique con los dispositivos inteligentes. Éstas incluyen: Qué es HART? La mayoría de los dispositivos inteligentes de campo instalados alrededor del mundo son compatibles con HART. Pero algunos de los nuevos en el campo de la automatización pueden necesitar una

Más detalles

Introducción a los microcontroladores. Decanato de Postgrado Mayo de 2011

Introducción a los microcontroladores. Decanato de Postgrado Mayo de 2011 Introducción a los microcontroladores Decanato de Postgrado Mayo de 2011 Microcontroladores aaaaa Un microcontrolador (Micro Controller Unit, MCU), es un circuito integrado programable, construido con

Más detalles

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Tutoría 2. Banco de memoria de 8 y 16 bits (8086) Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar

Más detalles

TEMA 16 (1) INTERFACES ENTRE SENSORES Y PROCESADORES DIGITALES

TEMA 16 (1) INTERFACES ENTRE SENSORES Y PROCESADORES DIGITALES SENSORES Y ACONDICIONADORES TEMA 16 (1) INTERFACES ENTRE SENSORES Y PROCESADORES DIGITALES CONCEPTOS GENERALES E INTERFACES LOCALES Profesores: Enrique Mandado Pérez Antonio Murillo Roldan Tema 16-1 CONCEPTOS

Más detalles

Redes de computadoras

Redes de computadoras 15.10.05 Redes de computadoras Modelos de comunicación de datos Omar Salvador Gómez Gómez, MSE Maestría en computación aplicada Agenda Introducción Arquitectura en capas Modelo OSI Modelo TCP/IP Estándares

Más detalles

Sistema de Gestión de Aplicaciones Implementadas en FPGAs

Sistema de Gestión de Aplicaciones Implementadas en FPGAs Sistema de Gestión de Aplicaciones Implementadas en FPGAs Ledo Bañobre, R. 1, Losada Sampayo, A. 1, Álvarez Ruiz de Ojeda, J. 1 1 Departamento de Tecnología Electrónica, Escuela Técnica Superior de Ingenieros

Más detalles

ARQUITECTURAS DE SOFTWARE PARA SISTEMAS EMBEBIDOS EN ENTORNOS MULTIPROCESADOR

ARQUITECTURAS DE SOFTWARE PARA SISTEMAS EMBEBIDOS EN ENTORNOS MULTIPROCESADOR ARQUITECTURAS DE SOFTWARE PARA SISTEMAS EMBEBIDOS EN ENTORNOS MULTIPROCESADOR Por Andreu Sabé Cruixent Arquitecto de Software en SALICRU Introducción Durante los últimos años, debido al aumento en el nivel

Más detalles

Práctica 2. Implementación de un driver básico para la transmisión de datos a través de la UART.

Práctica 2. Implementación de un driver básico para la transmisión de datos a través de la UART. Práctica 2. Implementación de un driver básico para la transmisión de datos a través de la UART. 1. Objetivo El objetivo de la siguiente práctica es el de implementar el software de control (driver) de

Más detalles

Figura 2. Formato de un dato serie síncrono.

Figura 2. Formato de un dato serie síncrono. ELECTRÓNICA DIGITAL II 1 COMUNICACIÓN SERIE EN EL 8051 En la comunicación serie los datos se transfieren bit por bit. Una interfaz en el microcontrolador los transfiere el dato en paralelo del CPU a serie

Más detalles

Redes de Computadores

Redes de Computadores es de Computadores Tema 2 Arquitectura en capas de comunicación de datos 1 2 Capas Capas Bits Bits Tramas Tramas Paquetes Paquetes Segmentos Segmentos Sesiones Sesiones Formatos Formatos Mensajes Mensajes

Más detalles

Technology GOBLIN 2 / MANUAL

Technology GOBLIN 2 / MANUAL GOBLIN 2 Goblin 2 es una tarjeta de desarrollo diseñada para ser autónoma en el internet de las cosas, cuenta con un módulo para controlar la carga de una batería de Li-ion de 3.7V a 4.2V, la cual puede

Más detalles

Redes. Tema 8 Capa Física OSI

Redes. Tema 8 Capa Física OSI Tema 8 Capa Física OSI Autor: Igor Montes Asensio 2013 8.1.1 Capa física. Objetivo. La capa física de OSI proporciona los medios de transporte para los bits que conforman la trama de la capa de Enlace

Más detalles

Tema 2. Adquisición y transmisión de datos con MATLAB. Gestión de puertos

Tema 2. Adquisición y transmisión de datos con MATLAB. Gestión de puertos Tema 2. Adquisición y transmisión de datos con MATLAB. Gestión de puertos María del Mar Sanz Lluch Borja Bordel Sánchez Marina Pérez Jiménez MATLAB aplicado a la instrumentación electrónica Departamento

Más detalles

y emociones. En un principio, se comunicó a través de la voz, ademanes y símbolos

y emociones. En un principio, se comunicó a través de la voz, ademanes y símbolos 2 MODULACIÓN EN AMPLITUD 2.1 Antecedentes Desde su origen, el hombre ha tenido la necesidad de comunicarse para transmitir sus ideas y emociones. En un principio, se comunicó a través de la voz, ademanes

Más detalles

MICROCONTROLADORES PIC

MICROCONTROLADORES PIC MICROCONTROLADORES PIC LOS TIMER DE LOS 16F87x TEMA EL TIMER 1 CCFF D.P.E. MÓDULO DE PROYECTOS 1 Diagrama de Bloques del TIMER1 CCFF D.P.E. MÓDULO DE PROYECTOS 2 INTRODUCCIÓN El módulo TIMER1 es un temporizador/contador

Más detalles

El Microprocesador. Tecnología y Funcionamiento

El Microprocesador. Tecnología y Funcionamiento El Microprocesador Tecnología y Funcionamiento EL MICROPROCESADOR (I) El microprocesador aparece como un circuito integrado con una muy elevada escala de integración VHSI. El empleo de los microprocesadores

Más detalles

El circuito integrado ADC1230, fabricado

El circuito integrado ADC1230, fabricado ADC12130 Conversor A/D serial de 12 bits GUILLERMO RAMOS RAMOS gramos@telesat.com.co Los conversores A/D seriales se caracterizan por su tamaño reducido y bajo costo. El circuito integrado que describimos

Más detalles

CONTROL REMOTO DE ROBOTS USANDO MÓDULOS DE RADIOFRECUENCIA XBEE A 2.4GHZ CON CAPACIDAD DE COMUNICACIÓN SERIAL A DATALOGGER E INTERFAZ GRÁFICA

CONTROL REMOTO DE ROBOTS USANDO MÓDULOS DE RADIOFRECUENCIA XBEE A 2.4GHZ CON CAPACIDAD DE COMUNICACIÓN SERIAL A DATALOGGER E INTERFAZ GRÁFICA CONTROL REMOTO DE ROBOTS USANDO MÓDULOS DE RADIOFRECUENCIA XBEE A 2.4GHZ CON CAPACIDAD DE COMUNICACIÓN SERIAL A DATALOGGER E INTERFAZ GRÁFICA CARLOS ANDRÉS CARRERA CADENA LUIS MIGUEL GUAIÑA MEJÍA DATALOGGER/

Más detalles

ZigBee development circuit (ETRX2 based)

ZigBee development circuit (ETRX2 based) ZigBee development circuit (ETRX2 based) Introducción El circuito consiste básicamente en la interconexión de un módulo ZigBee ETRX2 de la marca Telegesis a un circuito integrado MAX233 para poder comunicar

Más detalles

Sistemas Electrónicos Industriales II EC2112

Sistemas Electrónicos Industriales II EC2112 Sistemas Electrónicos Industriales II EC2112 PROF. JULIO CRUZ DEPARTAMENTO DE ELECTRÓNICA TRIMESTRE ENERO-MARZO 2009 SECCIÓN 2 Previamente Estructura general de un sistema secuencial Ejercicio Clase 6

Más detalles

ESTRUCTURA BÁSICA DEL µc AT89C51

ESTRUCTURA BÁSICA DEL µc AT89C51 Desde mediados de la década de los 80 s gran parte de los diseños basados en la automatización (electrodomésticos, sencillas aplicaciones Industriales, instrumentación medica, control numérico, etc.) utilizaban

Más detalles

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN UNIDAD DOS: INTRODUCCIÓN Una computadora es una máquina electrónica diseñada para manipular y procesar información de acuerdo a un conjunto de ordenes o programas. para que esto sea posible se requiere

Más detalles

01/10/ Conceptos básicos. Contenido. a. Configuración del enlace. 2 Conceptos Básicos a. Configuración del enlace

01/10/ Conceptos básicos. Contenido. a. Configuración del enlace. 2 Conceptos Básicos a. Configuración del enlace 2. Conceptos básicos Contenido 2 Conceptos Básicos a. Configuración del enlace b. Topología og c. Modo de transmisión d. Clases de redes a. Configuración del enlace 1 Enlaces de datos Un enlace directo

Más detalles