UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERIA DEPARTAMENTO DE ELECTRICIDAD ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA PATRICIO HARO ALARCÓN CRISTIAN MORA RIVERA 2006 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERIA DEPARTAMENTO DE ELECTRICIDAD ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA PROYECTO DE TITULACION PRESENTADO EN CONFORMIDAD A LOS REQUISITOS PARA OBTENER EL TITULO DE INGENIERO DE EJECUCIÓN EN ELECTRICIDAD CON MENCIÓN EN ELECTRÓNICA INDUSTRIAL. PROFESOR GUIA: Sr. JORGE REYES M. Sr. JUAN CHAVEZ Z. PATRICIO HARO ALARCÓN CRISTIAN MORA RIVERA 2006 RESUMEN El objetivo de este trabajo es realizar el diseño de un sistema transmisor/receptor capaz de transmitir los datos proporcionados por un sensor (cualquier tipo de sensor) hacia una estación receptora. El diseño se basa en un microcontrolador de la empresa Microchip (rfPIC12F675), el cual es el encargado de tratar la información que genera el sensor de forma apropiada para poder enviarla hacia el transmisor y poderla gestionar posteriormente. Hay que destacar que el microcontrolador utilizado dispone de diversas opciones de programación que le permiten hacer una buena gestión de consumo. El trabajo se divide principalmente en dos etapas. En la primera se realiza un estudio de los diferentes bloques que componen el sistema así como de las especificaciones del microcontrolador que se va a utilizar y las funciones que deberá realizar. En la segunda etapa se aborda exclusivamente el diseño del software mediante el rfPIC12F675. Primero se hacen una serie de pruebas para aprender el manejo del microcontrolador y a continuación se describe el desarrollo del programa final. En este trabajo se ha hecho básicamente el estudio del software de comunicación transmisor/receptor. INDICE CAPITULO I INTRODUCCIÓN............................................................................. 1 1.1 OBJETIVO................................................................................ 2 CAPITULO II MICROCONTROLADORES............................................................ 5 2.1 REFERENCIA HISTORICA...................................................... 6 2.1.1 Aplicaciones..................................................................... 7 2.1.2 Herramientas de Desarrollo............................................. 8 2.2 MICROCONTROLADOR.......................................................... 8 2.2.1 Diferencias entre Microprocesador y Microcontrolador.... 9 2.2.2 Arquitectura Básica.......................................................... 11 2.2.3 La Arquitectura Tradicional John Von Neumann............. 11 2.2.4 La Arquitectura Harvard................................................... 13 2.2.5 Unidades de Memoria...................................................... 14 2.2.6 Tipos................................................................................ 14 2.2.7 Capacidad........................................................................ 17 CAPITULO III DISEÑO TRANSMISOR - RECEPTOR........................................... 18 3.1 ESTRUCTURA......................................................................... 19 3.1.1 Transmisor....................................................................... 19 3.1.2 Receptor........................................................................... 21 3.2 ESPECIFICACIONES MICROCONTROLADOR...................... 22 3.3 COMUNICACIÓN TRANSMISOR-RECEPTOR....................... 26 3.3.1 Transmisor....................................................................... 26 3.3.2 Receptor........................................................................... 29 3.4 DISEÑO DE LAS UNIDADES TRANSMISOR Y RECEPTOR.... 30 3.4.1 Funcionamiento del PIC12F675...................................... 30 3.5 DISEÑO DEL TRANSMISOR CON rfPIC12F675..................... 31 3.5.1 Hardware.......................................................................... 31 3.5.2 Software........................................................................... 34 3.5.2.1 Configuración Registros....................................... 34 3.5.3 Diagrama de Bloques del Programa Transmisor............. 40 3.6 DISEÑO DEL RECEPTOR....................................................... 43 3.6.1 Hardware.......................................................................... 43 3.6.2 Software........................................................................... 46 3.6.2.1 Configuración de Registros.................................. 46 3.6.2.2 Diagrama de Estados........................................... 48 3.6.3 Diagrama de Bloques del Programa Receptor................ 49 3.7 TECNOLOGÍA BLUETOOTH……………................................. 54 3.8 CONCLUSIONES..................................................................... 55 3.9 BIBLIOGRAFÍA......................................................................... 57 ANEXOS......................................................................................... 58 1 CAPITULO I INTRODUCCIÓN 2 1 INTRODUCCIÓN 1.1 OBJETIVO El objetivo de este trabajo es diseñar un sistema de adquisición de datos que sea capaz de realizar mediciones en tiempo real, desde un conjunto de sensores, en la perspectiva de implementar una Estación Meteorológica. La particularidad de este sistema es la forma de transmitir los datos adquiridos hasta su punto de almacenamiento, lo cual se hará mediante transmisión inalámbrica (RF) utilizando modulación simple ASK/FSK. En este sistema, el generador de datos se encuentra a cierta distancia del receptor, y fuentes de almacenamiento, el conjunto de los diferentes bloques funcionales que definen su estructura esta compuesto por los siguientes elementos: sensor, transmisor, receptor y fuente de almacenamiento o visualización. Para este estudio se ha utilizado un potenciómetro para simular la etapa del sensor, la salida de esta para el sistema final, es simplemente una señal analógica que varía en función de la magnitud medida, lo cual nos permitirá replicar cualquier toma de dato de otro sensor cuya salida sea una señal de este tipo. La segunda etapa, el bloque transmisor, es el que se encarga de convertir la señal analógica procedente del sensor en una señal digital y enviarla al receptor. La etapa del transmisor tiene como principal componente un microcontrolador rfPIC12F675. El microcontrolador es la unidad central del sistema. Es el encargado de procesar los datos procedentes del conversor A/D que se encuentra integrado a el y realizar con estos las operaciones necesarias, (operaciones matemáticas, codificación, etc.) para poder ser enviados a la etapa de transmisión que se encuentra incorporada al microcontrolador, Para ello el microcontrolador ha de analizar los datos que le entrega el conversor A/D, codificarlos según el tipo de codificación escogido y entregarle la trama de bits generada al bloque transmisor. Si se realiza una buena codificación, en 3 recepción será más difícil que lleguen errores causados por interferencias en el canal, en este caso el aire. La siguiente etapa es el receptor de Radio Frecuencia (RF). El receptor ha de recibir la señal del transmisor, almacenarla y mostrar el valor enviado por el sensor de la forma convenida previamente. En esta etapa también tenemos a un microcontrolador, el cual es la unidad central de esta, aquí tenemos tres bloques fundamentales: el receptor de radio frecuencia, el microcontrolador y el almacenamiento con su posterior visualización. En la etapa de recepción de (RF), se realiza la demodulación de los datos recibidos del transmisor. Una vez realizada la demodulación, entrega al microcontrolador una serie de bits que éste tendrá que analizar y tratar para poder visualizar correctamente el dato enviado desde el transmisor. El microcontrolador, que puede ser igual o distinto que el del transmisor, tiene que conocer el formato de los datos que va a recibir para poder decodificarlos y poder extraer la información correctamente. En el caso en que en el transmisor se programe una codificación con redundancia, en el receptor se tendría que programar un código capaz de detectar errores de canal y corregirlos. Una vez extraída la información recibida se puede guardar en la memoria interna del microcontrolador, si tiene, para su posterior utilización, o simplemente se puede sacar por los puertos de salida del microcontrolador para su visualización. Por último la visualización del resultado, depende de la manera en que se quieran gestionar los datos recibidos. Una primera forma sería poniendo un display BCD de 7 segmentos o simplemente led para visualizar los datos binarios que salen del microcontrolador. La segunda manera es utilizando un PC para la visualización y almacenamiento de ellos, cuya interfase es mas amigable para conseguir que la aplicación sea un poco mas interactiva para el usuario con lo cual el proyecto final 4 gana valor añadido, pudiendo incluso hacer gráficas estadísticas de los valores recibidos del transmisor. 5 CAPITULO II MICROCONTROLADORES 6 2 2.1 MICROCONTROLADORES REFERENCIA HISTORICA En el año 1971 apareció en el mercado el primer microprocesador que supuso un cambio decisivo en las técnicas de diseño de equipos de instrumentación y control. La implementación de microcomputadoras desarrolladas alrededor de un microprocesador, trajo como consecuencia la fabricación de un conjunto de circuitos integrados para resolver las necesidades de memoria, entradas/salidas, temporizadores, conversores, etc. Los fabricantes, pusieron a disposición de los técnicos una variedad de circuitos integrados que facilitaban la construcción de sistemas. En el año 1976, gracias a la densidad de integración elevada, se produjo la primera computadora mono-pastilla, que integraba junto al microprocesador los sub-sistemas antes mencionados. Sub-sistemas integrados (aunque no siempre todos presentes) CPU RAM ROM, EPROM o EEPROM BUFFER de E/S CONTADORES Y TEMPORIZADORES CONVERSORES A/D, D/A INTERRUPCIONES UART, USART GENERADOR DE RELOJ DEL SISTEMA etc. Actualmente estos microcontroladores son el estándar para aplicaciones de mediana complejidad, por su facilidad de manejo y nivel de prestaciones. 7 Sus características más sobresalientes son: Capacidad de proceso de palabra de 8 bits Frecuencia de reloj de 30 Mhz. (o más) Múltiples puertos de entrada / salida programables Bajo consumo en versiones CMOS Alta inmunidad al ruido Set instrucciones muy potentes Instrucciones orientadas al proceso de señales bit a bit Circuito de reloj incorporado Osciladores a cristal o RC. Perro guardián ( watchdog ) , que vigila el optimo funcionamiento de la CPU Conversores integrados A/D Salida de modulación de ancho de pulsos (PWM) para conversión D/A Comparadores de tensión Temporizadores - contadores de 16 bits Mas de 6 niveles de interrupciones programables con niveles de prioridad Protección de la memoria de programa (encriptación) 2.1.1 Aplicaciones Se utilizan hoy en día para resolver problemas en diversos campos, por ejemplo Informática (módem, impresoras, teclados) Electrodomésticos (control de calefacción, microondas, lavadoras) Automotriz (inyección de combustible, ABS, alarmas) Audio y vídeo (videograbadoras, reproductor de CD, sintonías digitales) Industria (automatismo, control de temperatura, variadores de velocidad) Medicina (electrocardiógrafos) Usos militares 8 Domótica (edificios inteligentes) Burótica [maquinas de escribir] etc. 2.1.2 Herramientas de Desarrollo Los mismos fabricantes o terceras partes suelen ofrecer diferentes soportes para diseño de sistemas con microcontroladores, estos son, ensambladores, lenguajes de medio nivel (compiladores de C), simuladores, kit de evaluación, emuladores en tiempo real, programadores, etc. En la actualidad cualquiera de estas herramientas necesitan de una computadora personal (PC) para su utilización, descartando casi por completo otras formas de operación 2.2 MICROCONTROLADOR Un microcontrolador es un dispositivo electrónico capaz de llevar a cabo procesos lógicos. Estos procesos o acciones son programados en lenguaje ensamblador por el usuario, y son introducidos en éste a través de un programador. Inicialmente cuando no existian los microprocesadores las personas se ingeniaban en diseñar sus circuitos electrónicos y los resultados estaban expresados en diseños que implicaban muchos componentes electrónicos y cálculos matemáticos. Un circuito lógico básico requería de muchos elementos como transistores, resistencias, etc. Con la aparición de este circuito integrado todo es mucho mas fácil de entender y los diseños electrónicos serian mucho mas pequeños y simplificados. Los microcontroladores están conquistando el mundo, pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que se fabrican hoy en día. Cada vez existen mas productos que incorporan un 9 Microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño, costo y mejorar su fiabilidad. 2.2.1 Diferencias entre Microprocesador y Microcontrolador Un microcontrolador es un solo circuito integrado que contiene todos los elementos electrónicos que se utilizaban para hacer funcionar un sistema basado con un microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la memoria RAM, memoria ROM, puertos de entrada, salidas y otros periféricos. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller). Como se muestra en la Figura 2.1 Figura 2.1 Sistema Abierto Basado en un Microprocesador 10 El microcontrolador es un sistema cerrado. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. Como se muestra en la Figura 2.2 Figura 2.2. Sistema Cerrado de un Microcontrolador 11 2.2.2 Arquitectura Básica Podemos encontrar computadoras electrónicas digitales, de muy diversas configuraciones, adaptadas a diferentes propósitos, pero todas tienen en común: unidad central de proceso (CPU) memoria de programa (ROM), memoria de datos (RAM) y entradas – salidas, como se muestra en la Figura 2.3 Figura 2.3 Arquitectura Básica de una Computadora El CPU o procesador esta compuesto esencialmente por una unidad lógica aritmética (ALU), registros de trabajo, contador de programa, decodificador de instrucciones y algunos otros registros especiales. Todo esto, esta integrado en un solo dispositivo, se lo conoce como microprocesador (aunque dependa de algunos componentes externos para su funcionamiento como por ejemplo, generador de reloj del sistema). 2.2.3 La Arquitectura Tradicional John Von Neumann La arquitectura tradicional de computadoras y microprocesadores se basa en el esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o CPU, esta conectada a una memoria única que contiene las instrucciones del programa y los datos, como se muestra en la Figura 2.4 El tamaño de la unidad de datos o 12 instrucciones esta fijado por el ancho del bus de la memoria. Es decir que un microprocesador de 8 bits, que tiene además un bus de 8 bits que lo conecta con la memoria, deberá manejar datos e instrucciones de una o más unidades de 8 bits (bytes) de longitud. Cuando deba acceder a una instrucción o dato de más de un byte de longitud, deberá realizar más de un acceso a la memoria. Por otro lado este bus único limita la velocidad de operación del microprocesador, ya que no se puede buscar en la memoria una nueva instrucción, antes de que finalicen las transferencias de datos que pudieran resultar de la instrucción anterior. Es decir que las dos principales limitaciones de esta arquitectura tradicional son: a) Que la longitud de las instrucciones esta limitada por la unidad de longitud de los datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para buscar instrucciones complejas b) Que la velocidad de operación (o ancho de banda de operación) esta limitada por el efecto de cuello de botella que significa un bus único para datos e instrucciones que impide superponer ambos tiempos de acceso. La arquitectura Von Neumann permite el diseño de programas con código automodificable, práctica bastante usada en las antiguas computadoras que solo tenían acumulador y pocos modos de direccionamiento, pero innecesaria, computadoras modernas. Figura 2.4 La Arquitectura Tradicional John Von Neumann en las 13 2.2.4 La Arquitectura Harvard La Arquitectura conocida como Harvard, consiste simplemente en un esquema en el que la CPU esta conectada a dos memorias por intermedio de dos buses separados. Una de las memorias contiene solamente las instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos, como se muestra en la Figura 2.5. Ambos buses son totalmente independientes y pueden ser de distintos anchos. Para un procesador de juego de Instrucciones Reducido, o RISC (Reduced Instrucción Set Computer), el juego de instrucciones y el bus de la memoria de programa pueden diseñarse de manera tal que todas las instrucciones tengan una sola posición de memoria de programa de longitud. Además, como los buses son independientes, el CPU puede estar accediendo a los datos para completar la ejecución de una instrucción, y al mismo tiempo estar leyendo la próxima instrucción a ejecutar. Se puede observar claramente que las principales ventajas de esta arquitectura son: a) Que el tamaño de las instrucciones no esta relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor velocidad y menor longitud de programa. b) Que el tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad de operación. Una pequeña desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran físicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador). 14 Figura 2.5 La Arquitectura Harvard 2.2.5 Unidades de Memoria La memoria principal esta formada por un conjunto de unidades llamadas palabras. Dentro de cada una de estas palabras se guarda la información que constituye una instrucción o parte de ella (puede darse el caso de que una sola instrucción necesite varias palabras), o un dato o parte de un dato (también un dato puede ocupar varias palabras). A la cantidad de palabras que forman la Memoria Principal se le denomina capacidad de memoria. De este modo, cuanto mayor sea el número de palabras mayor será el numero de instrucciones y datos que podrá almacenar la computadora. Una palabra esta formada a su vez de unidades más elementales llamadas bits, del mismo modo que en el lenguaje natural una palabra esta formada por letras. Cada bit solo puede guardar dos valores, el valor 0 o el valor 1; por eso se dice que son elementos binarios. 2.2.6 Tipos La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. 15 1º. ROM con Máscara Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. 2ª. OTP El microcontrolador contiene una memoria no volátil de sólo lectura “programable una sola vez” por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código contenido. 3ª EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. 16 4ª EEPROM Se trata de memorias de sólo lectura, programables y borrábles eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan “grabadores en circuito” que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramación continua. Son muy idóneos para la enseñanza y la Ingeniería de diseño. Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno. 5ª FLASH Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad que la EEPROM. La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores 17 que las incorporan puedan ser reprogramados “en circuito”, es decir, sin tener que sacar el circuito integrado de la tarjeta. 2.2.7 Capacidad Es la cantidad de información que puede almacenar. Dado que la información la almacena en el sistema binario, la capacidad se mide en la unidad de medida de información almacena de dicho sistema, que es el bit. Pero en general, la información se en grupos de bit llamados posiciones o palabras accesibles simultáneamente, por lo cual: cantidad de palabras = cantidad de bits N° de bits por palabra Para aprovechar al máximo la capacidad de selección se hace que la cantidad de palabras sea una potencia de 2 y la unidad de capacidad en lo que se refiere a palabras o posiciones de memoria se considera igual a 1024 (por ser la potencia de dos más próxima a 1000) y se la denomina K. 18 CAPITULO III DISEÑO TRANSMISOR - RECEPTOR 19 3.1 ESTRUCTURA Este sistema estará formado por 3 etapas básicas: sensor, transmisor y receptor. Pero hace falta entrar en más detalles para obtener la configuración final del sistema y poder así elegir los componentes que lo compondrán. 3.1.1 Transmisor El sistema transmisor que se visualiza en la Figura 3.1,consta de las siguientes etapas: Sensor Conversor A/D Microcontrolador Transmisor RF Antena Figura 3.1 Transmisor Según el tipo de sensor escogido este dará a su salida una señal analógica o digital. En el caso de salida analógica, para que el microcontrolador pueda procesar esa señal es necesaria una conversión de analógico a digital, ya que los microcontroladores trabajan en el “mundo” digital y no son capaces de procesar señales analógicas. Si por el contrario el sensor entrega una salida digital, ya no es necesario realizar este paso intermedio y se puede conectar directamente el sensor al microcontrolador, siempre y cuando cumpla con las tensiones máximas que acepta el microcontrolador. 20 Hay muchos tipos de conversores Analógico-Digital, la diferencia entre uno y otro está básicamente en la velocidad de conversión y en la resolución que pueden ofrecer. La elección final dependerá de las necesidades de cada aplicación. En este caso en concreto hay que buscar un compromiso entre conversor y microcontrolador ya que en función del número de puertos de entrada del procesador se tendrá que limitar la resolución del A/D, o por el contrario habrá que buscar un procesador con más puertos de entrada para satisfacer las necesidades de resolución del A/D. El siguiente bloque a analizar es el microcontrolador. El microcontrolador es la unidad central del sistema. Es el encargado de procesar los datos procedentes del conversor A/D y realizar con estos las operaciones necesarias, (operaciones matemáticas, codificación, etc.) para poder ser enviados al bloque transmisor. El microcontrolador ha de analizar los datos que le entrega el conversor A/D, codificarlos según estándares escogidos y entregarle la trama de bits generada al bloque transmisor. Si se realiza una buena codificación, en recepción será más difícil que lleguen errores causados por interferencias en el canal, en este caso el aire. El último bloque es el transmisor de Radio Frecuencia (RF). Este bloque se encarga de recibir los datos codificados por el microcontrolador y modularlos para poder ser enviados hacia el receptor. Existen muchas técnicas de modulación. La elección de una u otra va en función del uso al que esté destinado el radio enlace, las interferencias que pueda haber en el canal, etc. También es cierto que cuanto más complicada sea la técnica de modulación más complicado será el modulador, por este motivo será necesaria una buena planificación para conocer todos los detalles del radio enlace. En el caso de un sensor inalámbrico orientado a la medición de variables metereológicas el flujo de datos no es muy elevado, debido a la razón de cambio de estas. El rfPIC12F675, nos da la posibilidad de transmitir utilizando modulación ASK/FSK a una velocidad de 40Kbps, se utilizó 21 modulación FSK, ya que esta es menos sensible a errores producidas por interferencias en la transmisión que la ASK. 3.1.2 Receptor Los bloques que forman el sistema receptor se muestran en la Figura 3.2. Antena Receptor RF Microcontrolador Visualización Figura 3.2 Receptor El primer bloque del sistema receptor, es el receptor de Radio Frecuencia (RF), esta encargado de realizar la demodulación de los datos recibidos del transmisor. Una vez realizada la demodulación entrega al microcontrolador una trama de bits que este tendrá que analizar y tratar para poder visualizar correctamente el dato enviado desde el transmisor. El microcontrolador, que puede ser igual o distinto que el del transmisor, tiene que conocer el formato de los datos que va a recibir para poder decodificarlos y poder extraer la información correctamente. En el caso en que en el transmisor se programe una codificación con redundancia, en recepción se programa un código capaz de detectar errores de canal y corregirlos mediante la redundancia. Una vez extraída la 22 información recibida se puede guardar en la memoria interna del microcontrolador, si tiene, para su posterior utilización, o simplemente se puede sacar por los puertos de salida del microcontrolador para su visualización en el siguiente bloque. En el último bloque, la visualización del resultado, depende de la manera en que se quieran gestionar los datos recibidos. En el caso de los sensores inalámbricos se podría hacer de dos maneras diferentes: La primera es simplemente a través de un display BCD de 7 segmentos o led para visualizar los datos binarios que salen del microcontrolador. La segunda manera es utilizando un ordenador para la visualización con alguna interfase visual más interactiva para el usuario con lo cual el proyecto final gana valor añadido, pudiendo incluso implementar gráficas estadísticas de los valores recibidos del transmisor. 3.2 ESPECIFICACIONES MICROCONTROLADOR Hay muchas marcas que fabrican microcontroladores y cada una tiene muchos modelos disponibles. Cada uno es más útil para una aplicación que para otra, por eso hay que hacer una buena selección. La característica principal del sistema que se está diseñando es que ha de tener el menor consumo posible. Es por este motivo que se ha de buscar la máxima integración de componentes posible. Comparando entre los diferentes fabricantes, Microchip tiene una gama de microcontroladores que dispone de la integración de componentes necesaria para este proyecto. El mencionado microcontrolador es el rfPIC12F675, este incorpora en un solo chip de muy reducidas dimensiones el conversor A/D y el circuito transmisor de RF necesarios para realizar el sistema transmisor. El rfPIC12F675 es una variante del PIC12F675, lo único que los diferencia es que el primero incorpora el circuito de RF y el segundo no, por lo demás son exactamente iguales. 23 Las características básicas de este microcontrolador son las siguientes: • Dispone de varios tipos de memoria según su utilización: - 1024 x 14 palabras de memoria FLASH como memoria de programa. - 128 x 8 bytes de memoria EEPROM para guardar datos. - 64 x 8 bytes de memoria SRAM para los registros de propósito general. • Oscilador interno de 4MHz. Cada instrucción dura 4 períodos de oscilación, con lo cual una instrucción (1 ciclo) dura 1µs. • Dispone de 6 entradas/salidas la dirección de las cuales es programable. • 1 comparador analógico interno con 16 posibles niveles internos de referencia. • 1 conversor analógico/digital interno de 10 bits de resolución y 4 canales de entrada multiplexables. • 1 timer de 8 bits y otro de 16 con preescaler de 8 y 3 bits respectivamente. (el preescaler permite que el timer no se incremente a cada ciclo de procesador sino cada n ciclos, siendo n el valor del preescaler) • Función SLEEP para un mayor ahorro de energía. • Transmisor UHF ASK/FSK en la banda libre. Margen de funcionamiento entre 380450MHz • Potencia de salida de +10dBm a -70dBm con 4 pasos intermedios. • Alcance estimado 100m. Los consumos de este chip son los siguientes: • 14mA en transmisión a 434MHz y +6dBm • 4mA en transmisión a 434MHz y -15dBm • 0.6µA en modo sleep y con el perro guardián activado (Watchdog). • 0.1µA en standby. • Tensión de alimentación entre 2.0 y 5.5v 24 Los pins de este microcontrolador son los mostrados en la Figura 3.3: Figura 3.3 Pins Microcontrolador Para más detalles de los pines, ver ANEXO A Figura A.1 La programación del microcontrolador se realiza mediante lenguaje de bajo nivel, Es posible también, realizar el programa en un código de programación de alto nivel, por ejemplo C, aunque al final tendrá que traducirse a ensamblador mediante algún compilador ya que el código final que se graba en el chip ha de ser obligatoriamente ensamblador. El juego de instrucciones del microcontrolador esta disponible en el ANEXO A Figura A.4 Para realizar el diseño de este software se ha escogido un Kit de desarrollo que proporciona la misma empresa Microchip. El Kit se llama Pickit1, mostrada en la figura 3.4, y se suministra con una placa de desarrollo de proyectos que incluye una matriz de leds para visualizar los resultados, un pulsador y un potenciómetro para hacer pruebas de funcionamiento de puertos. Una característica muy importante de esta placa es que se conexiona al ordenador mediante un puerto USB, con lo cual no es necesaria una fuente de alimentación externa. También se suministra con el Kit un juego transmisorreceptor sintonizados a 433,92 Mhz para poder hacer pruebas de programación del conjunto. Al ser una memoria Flash la programación se puede realizar desde el mismo Kit de desarrollo, por lo tanto no hace falta cambiar el chip de zócalo cada vez que se quiere cambiar algo del programa. La placa de desarrollo tiene un zócalo en el que se 25 pincha la placa del transmisor. Este zócalo, por lo tanto, sirve para programar el chip y para realizar las pruebas del programa. Figura 3.4 Kit Pickit1 Como se ha comentado, en el Pickit1 se proporciona una placa transmisora y otra receptora. Esta placa receptora se basa en el receptor rfRXD0420, también de la empresa Microchip. Se trata de un receptor UHF capaz de demodular señales ASK, FSK y FM. No dispone de ningún microcontrolador, por lo tanto es necesario procesar la señal recibida de alguna forma para poder decodificarla y manejarla de la forma deseada. Esta operación se puede hacer con el mismo microcontrolador que se utiliza para el transmisor, pero en este caso sin la parte de RF. Por lo tanto se puede usar el microcontrolador PIC12F675 para recibir los datos procedentes del demodulador. El diseño final se hará con el PIC mencionado, pero para las pruebas sobre el Kit se ha hecho con el PIC16F676 porque en el mismo Kit los pins del receptor y PIC están conectados de tal forma que con el PIC12F675 la recepción de datos no queda conectada cosa que con el PIC16F676 ya no ocurre y los datos recibidos van directamente a un puerto de entrada. 26 Este nuevo PIC es exactamente igual que el anterior pero con la diferencia que tiene más puertos de entrada/salida. En cuestión de registros de configuración, no cambia nada, excepto por los nuevos puertos. 3.3 COMUNICACIÓN TRANSMISOR-RECEPTOR 3.3.1 Transmisor El protocolo de comunicación utilizado en el sistema transmisor - receptor se basa en la Figura 3.5. Primero que todo se envía una trama de sincronismo para prevenir al receptor de que se va a iniciar una transmisión de datos. Esta transmisión puede ser válida o no, pero la tiene que leer de todos modos. Más adelante ya usará otros mecanismos para saber si es para él o no. La trama de sincronismo consta de una serie de pulsos iguales y de duración determinada. Mediante esta trama se filtran posibles impulsos aleatorios de ruido que se puedan recibir. De esta forma no se producen interferencias en el principio de trama de datos. Después de enviar la trama de sincronismo se hace una pausa para que el receptor sepa que lo que se enviará a continuación serán los datos de información. Por último, cuando el transmisor acaba de enviar los datos, existe un tiempo de espera en el que no se transmite nada. Figura 3.5 Protocolo de Comunicación La duración de todos los pulsos, tanto de sincronismo como de datos, es la misma. La elección de este tiempo se ha hecho según el siguiente criterio: 27 Como se muestra en la Figura 3.6, cuando hay un cambio de nivel alto a nivel bajo, este cambio no es inmediato sino que se hace progresivamente. Pasados 200µs es cuando se puede considerar que ya ha cambiado a nivel bajo. Figura 3.6 Transición de Nivel Alto al Bajo Esta transición, hay que tenerla en cuenta a la hora de decidir como va a ser la señal que se va a generar. Por eso, y por facilitar la programación, se ha decidido que cada pulso generado en el programa transmisor tendrá una duración de 512µs, tanto en estado alto como en estado bajo. Esta duración facilita la programación porque el timer del microcontrolador con preescaler a 1:2 genera overflow exactamente a 512µs. Así cuando se detecta overflow se continúa con la ejecución normal del programa. La trama de sincronismo se ha hecho que dure 16 pulsos, es decir 16.38ms. La duración de esta trama depende de lo mucho o poco que se quiera filtrar las interferencias. Se ha escogido 16 por ser un término medio. Si se hace durar más, estará más protegido pero a la vez se incrementa el tiempo de transmisión. Para una transmisión de datos bit a bit no afectará demasiado, aunque si que lo haría en el caso de enviar datos fraccionados en paquetes. 28 La pausa se ha definido con un tiempo de 2.56ms. Este tiempo ha de ser superior al tiempo de un cero de datos e inferior al tiempo de almacenamiento para que el receptor pueda distinguir en todo momento en que estado se encuentra. De esta forma, si el receptor recibe un silencio superior al tiempo de almacenamiento después de una trama de sincronismo, este ignorará lo que se envíe a continuación y se reiniciará. Después de una pausa válida el receptor está preparado para recibir los datos. El formato de los datos es el siguiente: Se ha escogido una codificación de datos PWM (Pulse Width Modulation) que consiste en codificar los uno y ceros según la Figura. 3.7. Figura 3.7 Codificación de Datos PWM Según esto, un dato codificado (3 bits) siempre empezará por uno y siempre acabará en cero. De esta forma se puede programar en recepción algún tipo de corrección de errores si se sabe que 1536µs (512µs * 3) representan 1 bit decodificado. Este tipo de codificación es muy útil para reducir el BER (Bit Error Rate), ya que al durar más el dato codificado que el bit original, hay más probabilidad de recuperar el bit original. Por último, después de enviar los datos, se implementa un tiempo de espera de 15.3ms para que el receptor pueda saber que la comunicación ha finalizado. 29 Este tiempo de espera es más largo que la pausa antes transmitir datos para que el receptor pueda distinguir entre ambos. 3.3.2 Receptor El software del receptor es un poco más complejo que el del transmisor. Esto es así porque, a priori, el receptor no tiene porque saber la duración de cada pulso (sí hay un margen máximo), sino que ha de estar continuamente comprobando cuando empieza y cuando termina éste. De esta manera ha de llevar un control exhaustivo del tiempo que lleva el pulso en estado alto y realizar la función que sea necesaria en función de este tiempo y el estado en el que esté el programa en ese momento. En primer lugar, el programa ha de monitorizar el arribo de la trama de sincronismo. Para ello, solo ha de mirar si el receptor está en estado alto o en estado bajo. Cuando le llega un uno seguido de un cero, lo único que ha de mirar es la duración del cero. Si el cero no dura más de un tiempo determinado reinicia el programa. Si el cero dura más de lo predeterminado significa que se pasa a estado de pausa de antes de la transmisión de los datos. Cuando está en estado de pausa, el software ha de comprobar que realmente esté en pausa. Por ello, si la pausa dura más de lo establecido el programa se reiniciará. Esto significa que la trama de sincronismo recibida no era válida. Una vez recibida una pausa válida se empiezan a recibir los datos. Los datos vienen codificados según la codificación PWM. Para decodificarlos la técnica utilizada es muy sencilla. Lo único que hay hacer es contar el tiempo que el dato está en estado alto y restarle el tiempo que está en estado bajo. El carry de la operación es el que dirá si el dato era un 1 o un 0. Según la codificación PWM un cero está 2/3 de tiempo en estado alto y 1/3 en estado bajo. Al hacer la resta el resultado sale positivo, por lo tanto no hay carry o este es 0. Por el contrario con un uno el resultado del carry será 1. 30 Después de la recepción de datos el receptor pasa a monitorizar si llega un 0 y cuanto tiempo dura este. Si el cero dura un mínimo establecido, entonces puede dar la recepción como correcta. Si dura menos reinicia el programa e ignora los datos recibidos. Una vez validada la recepción, es hora de validar los datos recibidos. El transmisor junto con los datos, envía un código de identificación. En recepción, el programa ha de comprobar que este código sea válido. Si no es válido no se pueden aceptar los datos recibidos y los ignora. Si es válido guarda los datos en la memoria EEPROM y los muestra en los leds. 3.4 DISEÑO DE LAS UNIDADES TRANSMISOR Y RECEPTOR 3.4.1 Funcionamiento del PIC12F675 El rfPIC12F675 es una variante del PIC12F675. Solo se diferencian en el circuito de RF. Es por este motivo que para comprender el funcionamiento de este PIC, con el modelo sencillo ya hay bastante. Así, para realizar las pruebas iniciales se va a utilizar el PIC12F675. 31 3.5 DISEÑO DEL TRANSMISOR CON rfPIC12F675 3.5.1 Hardware Todo proyecto de más o menos envergadura es necesario dividirlo en diferentes fases. En este proyecto, por ejemplo, las diferentes fases serían: Desarrollo del software y pruebas con emulador, desarrollo del hardware y pruebas con software y, por último, desarrollo de interfase gráfico. Pues bien, este trabajo solo supone la primera fase del proyecto, es decir, desarrollo del software y pruebas con emulador. Es por ese motivo que no se ha hecho un gran estudio del hardware utilizado y se deja para posteriores estudios. Los componentes más relevantes y que hace falta destacar son los que hacen referencia al transmisor. A continuación se hace una breve descripción. El rfPIC12F675 dispone de un oscilador a cristal tipo Colpitts para generar la frecuencia de referencia que se entrega al PLL del transmisor. Este oscilador es totalmente independiente del que tiene el microcontrolador. A parte de este oscilador, es necesario conectar un segundo cristal exterior La potencia de salida del transmisor es otro de los puntos que hay que tener en cuenta a la hora de estudiar el transmisor. Esta se puede ajustar desde 9dBm hasta -70dBm. Para ello solo es necesario jugar con distintos valores de resistencia en el puerto PS del microcontrolador, tal como se muestra en la Figura 3.9, según Tabla 3.1. 32 Figura 3.9 Ajuste de Potencia del Transmisor POWER STEP OUTPUT POWER (dBm) 4 3 2 1 0 9 2 -4 -12 -70 PS TENSION R1 (VOLT) RESISTENCIA (Ohm) 1.6 0.8 0.4 0.2 0.1 Open 100K 47K 22K short CORRIENTE TRANSMISOR RF (mA) 10.7 6.5 4.7 3.5 2.7 Tabla 3.1 Tabla de Potencia de Salida Transmisor El transmisor del kit Pickit1 viene configurado para dar la potencia máxima de salida que se permite, es decir, 9dBm ya que tiene un circuito abierto en lugar de resistencia. Esto se puede observar en la Figura 3.10 33 Figura 3.10 Esquema Diseño Transmisor 34 3.5.2 Software 3.5.2.1 Configuración Registros A partir de este punto se va a empezar a hacer el diseño del software que controlará todo el sistema transmisor. En la primera parte de este apartado se explican con detalle cada uno de los registros que intervienen en la configuración del programa transmisor. La configuración de los diferentes registros del microcontrolador se realiza solo al empezar el programa, es decir, antes del programa principal en una subrutina llamada INIT. Aquí se realiza tanto la configuración de los puertos como la de los módulos del micro (A/D, comparador, etc.). Lo primero que se realiza es la configuración de los diferentes puertos del PIC. Hay diversos registros que afectan a dicha configuración, pero los básicos son: GPIO y TRISIO. Registro GPIO: Mediante este registro se puede cambiar el estado de un puerto o leer su estado en caso de que sea un puerto de entrada. • Bit 7-6: No utilizado • Bit 5-0: Estado del puerto. Si vale 1 el puerto está en estado alto. Si vale 0, estado bajo. 35 Registro TRISIO: • Bit 7-6: No utilizado. • Bit 5-0: Si vale 1 el puerto se configura como puerto de entrada. Si vale 0 se configura como salida. Después de la configuración de los puertos, en el caso del programa transmisor, se pasa a configurar una interrupción por cambio de estado en un puerto. Es decir, que si se detecta un cambio en el estado de un puerto se genera una interrupción haciendo saltar del programa principal a la rutina de interrupción. En este programa se usa esta utilidad para que al pulsar el pulsador GP3 se haga un reset del sistema. Para poder configurarlo los registros que se han de modificar son: INTCON, IOC. Registro INTCON: • Bit 7: Activación de interrupciones globales • Bit 6: Activación de interrupción de periféricos • Bit 5: Activación de interrupción por overflow en Timer0 • Bit 4: Activación de interrupción externa en GP2/INT 36 • Bit 3: Activación de interrupción por cambio de estado en puerto • Bit 2: Flag de interrupción por overflow de Timer0 • Bit 1: Flag de interrupción externa en GP2/INT • Bit 0: Flag de interrupción por cambio de estado en puerto Los bits que se han de activar para que se genere una interrupción por cambio de estado en un puerto son el 3 y el 7. Por regla general durante el proceso de inicialización de registros se han de desconectar todo tipo de interrupciones, por eso el bit 7 solo se activará cuando empiece el programa principal. Registro IOC: • Bit 7-6: No utilizado. • Bit 5-0: Activación de interrupción por cambio de estado en puerto. Si el bit vale1 se permite interrupción para ese puerto. La siguiente parte del transmisor que se configura en la subrutina INIT es el timer interno TIMER0. Los registros asociados al Timer0 son: TMR0, OPTION_REG, INTCON y TRISIO explicados anteriormente. Registro TMR0: Este es un registro de 8 bits y es donde se va actualizando el estado del contador TMR0. A cada ciclo del procesador (4 oscilaciones de reloj) el contador TMR0 se incrementa en una unidad, excepto en el caso de que tenga preescaler. 37 Registro OPTION_REG: De este registro los bits más importantes son: • Bit 3: Asignación del preescaler. Si vale 1 se asigna al Watchdog. Si vale 0 se asigna al TMR0 • Bit 2-0: Rate del preescaler Por último se realiza la configuración del módulo A/D para realizar la conversión analógico/digital de la señal procedente del sensor. Sus registros asociados son: ADCON0 y ANSEL. Registro ADCON0: • Bit 7: Si vale 1 justifica el resultado a la derecha o a la izquierda en caso de que valga 0. • Bit 6: Indica Vref. Si es 1 toma un Vref externa. Si vale 0 la Vref es VDD. • Bit 5-4: No usados • Bit 3-2: Selecciona una de las 4 entradas al A/D • Bit 1: Si vale 1 inicia la conversión y mientras valga 1 indica que la conversión no ha finalizado. Si vale 0 la conversión ha acabado. 38 • Bit 0: Si se activa este bit, se activa el módulo A/D. Registro ANSEL: • Bit 7: No utilizado • Bit 6-4: Selección del reloj del conversor A/D 000= Fosc/2 001= Fosc/8 010= Fosc/32 x11= Utiliza el clock del oscilador interno 100= Fosc/4 101= Fosc/16 110= Fosc/64 • Bit 3-0: Selección del canal analógico. Si el bit vale 1, se asigna ese canal como entrada analógica. Si por el contrario vale 0, se configura el canal como I/O digital. 39 El resultado de la conversión se guarda en dos registros: ADRESH y ADRESL. En función del bit 7 (Justificación del resultado) el LSB quedará en una posición o en otra a lo largo del registro ADRESL. Lo cual se muestra en la Figura. 3.11 Figura. 3.11 Registro ADRESH y ADRESL 40 3.5.3 Diagrama de Bloques del Programa Transmisor 41 42 43 3.6 DISEÑO DEL RECEPTOR 3.6.1 Hardware El receptor que se ha utilizado para la recepción de los datos es el que proporciona el kit Pickit1. Este receptor se basa en el chip rfRXD0420 de la empresa Microchip. Las principales características de este receptor son las siguientes: • Permite seleccionar la frecuencia intermedia entre los 455kHz y los 21.4MHz mediante un sencillo filtro formado por un cristal de cuarzo y un pequeño condensador • Es capaz de demodular señal en ASK, FSK y FM • La demodulación en ASK y FSK la realiza mediante un detector de cuadratura (detector de coincidencia de fase) • Para ASK y FSK el detector se hace mediante un amplificador operacional configurado como comparador. También es posible configurarlo como filtro para demodular FM. Para seleccionar la frecuencia de recepción se pone un cristal de cuarzo externo, como se muestra en la Figura 3.12 y según Tabla 3.2, en esta se muestran los diferentes valores de cristal y las diferentes frecuencias de recepción resultantes. El valor del condensador C ha de ser entre 15pF y 20pF Figura 3.12 Selección de la Frecuencia de Recepción 44 FRECUENCIA DE RECEPCION FRECUENCIA DE CRISTAL X1 315 Mhz 433.92 Mhz 20.35625 Mhz 26.45125 Mhz Tabla 3.2 Selección de la Frecuencia de Recepción El proceso de demodulación que sigue este chip es el siguiente: Se utiliza como detector ASK un amplificador limitador de Frecuencia intermedia. La señal que sale del detector es filtrada y comparada con una señal de referencia para determinar si se ha recibido un uno o un cero lógico. El diseño de este filtro dependerá de donde se quiera poner el umbral de decisión. Sabiendo que la constante de tiempo t=RC y R=36KΩ, que es la impedancia de salida del detector, y que C es el C1 del circuito receptor, se puede fijar el umbral de decisión. Hay que tener cuidado a la hora de fijar la constante de tiempo, ya que si se pone demasiado larga puede provocar interferencia ínter simbólica con la consecuente pérdida de bits. En la Figura 3.13, se muestra el esquema que utiliza el receptor que se proporciona con el kit de pruebas Pickit1. Este receptor ya viene configurado como un demodulador FSK. 45 Figura 3.13, Esquema Diseño Receptor 46 3.6.2 Software 3.6.2.1 Configuración de Registros Como se ha explicado con anterioridad, para el receptor, se ha utilizado el PIC16F676. La única diferencia con el PIC12F675 está en el número de puertos. El PIC12F675 solo tiene 6 puertos, en cambio el PIC16F676 dispone de 12 puertos configurables igualmente como I/O. Estos 12 puertos están divididos en dos grandes puertos de 6 bits cada uno, PORTA y PORTC. Así pues, en este nuevo PIC el único registro de configuración que cambia con respecto al otro será el que hace referencia a los puertos. La configuración de los puertos está dividida en dos registros, uno para cada puerto, A y C. Registro PORTA: Sirve para cambiar o visualizar el estado de un puerto dentro del puertoA. • Bit 7-6: No utilizado • Bit 5-0: Estado del puerto. 1 Activo, 0 Inactivo 47 Registro TRISA: Sirve para configurar la dirección de los puertos A • Bit 7-6: No utilizado • Bit 5-0: Si es 1 el puerto es configurado como entrada y si es 0 se configura como salida Registro PORTC: Sirve para cambiar o visualizar el estado de un puerto dentro del puertoB. • Bit 7-6: No utilizado • Bit 5-0: Estado del puerto. 1 Activo, 0 Inactivo Registro TRISC: Sirve para configurar la dirección de los puertos C • Bit 7-6: No utilizado • Bit 5-0: Si es 1 el puerto es configurado como entrada y si es 0 se configura como salida 48 3.6.2.2 Diagrama de Estados El programa principal del receptor consta de 10 posibles estados. Cada uno corresponde a un estado de la comunicación entre transmisor y receptor. Los posibles estados son: • INICI: Sirve para detectar entrada de datos • INICI1: Detecta entrada de trama de sincronismo inicial • SILEN: Detecta pausa antes de recepción de datos • SILEN1: Mira que la pausa no sea demasiado larga y detecta la entrada de la trama de datos • UNO1: Detecta el estado alto de un bit • CERO0: Detecta el estado bajo de un bit • SALVAR: Controla los bits recibidos y los guarda en su registro correspondiente • ESPERA: Comprueba que se finaliza la transmisión y monitoriza el silencio de antes de la siguiente transmisión. • OK: Comprueba la identidad del transmisor y si es válida guarda los datos en memoria. • IL_LEDS: Muestra los datos recibidos en los leds del Pickit1. La función de mostrar los datos en los leds se ha extraído directamente de una programa de muestra para poder visualizar el resultado de la transmisión ya que no es objeto de este trabajo la realización de dicho programa. 49 3.6.3 Diagrama de Bloques del Programa Receptor 50 51 52 53 54 3.7 TECNOLOGÍA BLUETOOTH. El Bluetooth es una tecnología orientada a la conectividad inalámbrica entre dispositivos tan dispares como PCs, PDAs, teléfonos móviles, electrodomésticos, etc. El Bluetooth, a parte de ser una nueva tecnología, es también una especificación abierta para comunicaciones inalámbricas de voz y datos. Está basado en un enlace de radio de bajo costo y corto alcance. Esto convierte a esta tecnología en una buena alternativa para implementar nuestra tarjeta de adquisición de datos con transmisión inalámbrica, pero solo en la parte de la transmisión, ya que para la conversión de la señal análoga proveniente de los sensores, se necesita obligatoriamente un conversor A/D y además requerimos de otro dispositivo inteligente para tratar esta información antes de ser transmitida. Por estas razones, se opto por utilizar el rfPIC12F675, el cual integra en un solo dispositivo la conversión de la señal, el tratamiento de esta y finalmente su transmisión. En la Tabla 3.3 se muestran algunas especificaciones de la tecnología Bluetooth y del rfPIC12F675 RfPIC12F675 Tecnología Bluetooth Velocidad de Transmisión 40 Kbps 721kbps Frecuencia de Transmisión 290 a 350 Mhz 2.4 a 2.5 Ghz 380 a 450 Mhz 850 a 930 Mhz Alcance 100 m 100 m Tabla 3.3 especificaciones de la tecnología Bluetooth V/S rfPIC12F675 55 3.8 CONCLUSIONES Las principales ventajas para la elección del microprocesador rfPIC12F675 son, menor cantidad de componentes, menor tiempo de desarrollo, mayor flexibilidad para futuras modificaciones, etc. Todos estos puntos se reflejan en menor costo. En este trabajo se ha comprobado una de las posibles aplicaciones de los microcontroladores, en concreto una aplicación inalámbrica. Al utilizar un microcontrolador que lleva incorporado el circuito de RF se ahorra mucho espacio. A parte de este ahorro de espacio, también se ahorra energía. Gracias al poco consumo y a funciones especiales de que dispone, este microcontrolador es idóneo para aplicaciones inalámbricas en que el consumo sea vital. Como se ha comentado ya, habría que investigar más sobre las funciones de ahorro de energía del microcontrolador, ya que aumentaría considerablemente la autonomía del transmisor. Su principal desventaja esta dada por la pequeña distancia de transmisión, aunque esto se puede mejorar, no sería significativo. Después de estudiar las características del sistema parece claro cual ha de ser la continuación de este proyecto. El principal tema que hay que investigar es la comunicación microcontrolador-PC. Hay que conseguir acceder a la memoria del microcontrolador desde el ordenador para leer los datos recibidos de los sensores. Una vez logrado esto, habría que visualizar por pantalla dichos datos. Esto se podría hacer con algún entorno de programación de alto nivel. Los datos recibidos se podrían ir guardando en un disco y finalmente hacer un análisis estadístico de lo sensado. Una vez conseguidos estos objetivos se podría invertir un poco más de tiempo en mejorar algunos aspectos del sistema transmisor-receptor. Por ejemplo: - Detección de batería baja en transmisor. El rfPIC12F675 incorpora un detector de caída en el nivel de alimentación. Una vez detecta que ha habido una bajada de 56 tensión, activa una bandera para indicarlo. Si junto con los datos sensados se envía esta bandera, se podría monitorizar el estado de la pila del transmisor. - Posibilidad de crear una estación meteorológica completa añadiendo diferentes sensores (humedad, presión, velocidad del viento, etc.) - Desarrollar funciones de ahorro de energía. - Posibilidad de alimentar el transmisor con una placa solar. Como conclusión final, se puede decir que este sistema una vez finalizado, tiene muchas posibilidades en diferentes campos: automatización, estaciones meteorológicas, etc. ya que permite tener los sensores separados del equipo principal. 57 3.9 BIBLIOGRAFÍA www. Microchip.com Tutoriales: Microchip, CDROOM PICkit 1 Flash Starter Kit v2.1 Microchip, rfPIC12F675K/675F/675H Data Sheet. Microchip, PIC16F630/676 Data Sheet. Microchip, rfRXD0420/0920 Data Sheet. Control de un módulo bluetooth mediante microcontrolador del Sr.Jaime Gálvez Navarro. (http://bibliotecnica.upc.es/PFC/arxius/migrats/36416-2.pdf) 58 ANEXOS ANEXOS ANEXO A A.1. PINS DEL RFPIC12F675 A.1 PINS DEL RFPIC12F675 A.2. ESQUEMA TRANSMISOR Figura A.2 Esquema Diseño Transmisor A.3. MEMORIA DEL RFPIC12F675 Este PIC dispone de 3 tipos de memoria: - Flash para guardar el programa realizado en ensamblador. - EEPROM para guardar toda la información referente a la configuración de los diferentes registros - RAM para guardar registros de propósito general mapeado a continuación de la memoria EEPROM. La memoria de programa esta mapeada tal y como muestra la Figura 1.3 aunque solo es accesible el espacio comprendido entre las direcciones de memoria 0000h y 03FFh. El resto esta reservado para la pila y los vectores de reset y de interrupción. La memoria EEPROM o memoria de datos está particionada en dos bancos de memoria distintos. En cada uno hay una parte del total de los registros de propósito general. En la Figura. A.3 se observan los diferentes registros con que cuenta el rfPIC12F675 para su configuración de puertos, interrupciones, comparador, conversor A/D, etc. Figura. A.3 Mapa de Memoria de Programa Figura A.3 Mapa de Memoria de Datos A.4. JUEGO DE INSTRUCCIONES DEL RFPIC12F675 Cada microcontrolador dispone de sus propias instrucciones en ensamblador para poder ser programado. El rfPIC12F675 solo dispone de 35 instrucciones, con lo cual es muy sencillo aprender su funcionamiento. Son las mostradas en la Figura. A.4 Figura. A.4 Instrucciones del rfPIC12F675 A.5. ESQUEMA RECEPTOR Figura. A.5 Esquema Diseño Receptor ANEXO B B.1 BLUETOOTH En este apartado, queremos dar una visión general de lo que es el Bluetooth, haciendo una pequeña introducción de cual es su funcionamiento. B.2 ¿QUÉ ES EL BLUETOOTH? El Bluetooth es una tecnología orientada a la conectividad inalámbrica entre dispositivos tan dispares como PCs, PDAs, teléfonos móviles, electrodomésticos, etc. El Bluetooth, a parte de ser una nueva tecnología, es también una especificación abierta para comunicaciones inalámbricas de voz y datos. Está basado en un enlace de radio de bajo costo y corto alcance, el cual proporciona conexiones instantáneas tanto para entornos de comunicaciones móviles como estáticos. Esta tecnología ha revolucionado el mercado de la conectividad ya que es capaz de comunicar cualquier dispositivo que cumpla con las especificaciones inalámbricas del Bluetooth. La principal ventaja que ofrece esta tecnología es la conectividad sin cables de todos los dispositivos, pero más que reemplazar los incómodos cables, esta tecnología ofrece un puente entre las redes de datos hoy existentes y el exterior. El Bluetooth, al ser un estándar abierto, pretende conectar una amplia gama de dispositivo sin importar su marca. Sus principales características son: Robustez. Bajo coste. Necesidad de poca potencia. Baja complejidad. Es un estándar global. La tecnología Bluetooth comprende hardware, software y requerimientos de interoperatibilidad, por lo que para su desarrollo ha sido necesaria la participación de los principales fabricantes de los sectores de las telecomunicaciones y la informática. En la Figura B.1 se muestra una imagen global de lo que pretende esta especificación. Figura B.1 Comunicación bluetooth B.3 HISTORIA DEL BLUETOOTH. El nombre Bluetooth es en honor a un rey Danés del siglo X llamado Harald Blaatand, fue rey de Dinamarca entre los años 940-981 D.C. De este rey se dice que tenía grandes habilidades comunicativas que lo hicieron famoso y con las cuales inició el proceso de cristianización de la sociedad vikinga. La historia del bluetooth es relativamente corta. Las primeras investigaciones fueron realizadas por Ericsson Mobile Communications en 1994. Esta compañía promovió una iniciativa para estudiar la viabilidad de una interfaz por radio entre los teléfonos móviles y sus accesorios, con la característica y condición de que tuviese un bajo costo y consumo. Hasta entonces, las tecnologías de comunicaciones basadas en el cable funcionaban con eficiencia, sin embargo, su instalación y configuración resultaba bastante dificultosa. Conforme avanzaba el proyecto de Ericsson fue despertando el interés de otros fabricantes y enseguida se vio el gran abanico de posibilidades que ofrecía esta tecnología, así que a principios de 1998 se creo la SIG (grupo de interés especial) el cual estaba formado por Ericsson, Nokia, IBM, Toshiba e Intel. Actualmente se han ido añadiendo otras empresas al grupo como 3Com Corporation, Lucent Technologies, Microsoft Corporation, Motorota Inc y otras más, llegando hoy en día a estar formado por más de 2000 empresas del sector de la informática y las telecomunicaciones. El propósito principal del SIG es establecer un standard para la interfas aérea junto con su software de control, su fin es asegurar la interoperatibilidad de los diversos equipos de diferentes fabricantes. B.4 ¿CÓMO FUNCIONA EL BLUETOOTH? El bluetooth funciona en la banda ISM (médico-científica internacional), con rangos que van entre los 2,4 y los 2,5 Ghz excepto en algunos países como Francia, España y Japón en los cuales hay ciertas restricciones. La banda ISM, es una banda abierta en todo el mundo que no necesita licencia. La potencia de transmisión es de hasta 100mW. La distancia nominal en el enlace va desde 10cm hasta los 10m, pudiéndose alcanzar los 100m si se aumenta suficientemente la potencia. Cuando un equipo bluetooth está dentro del radio de cobertura de otro, estos pueden crear un enlace entre ellos. Hasta ocho unidades bluetooth pueden comunicarse entre ellas y forman lo que se denomina una Piconet. La unión de varias piconets se denomina Scatternet. En todas las piconets sólo puede haber una unidad maestra que normalmente es quien inicia la conexión, el resto de unidades bluetooth se denominan esclavas. Cada unidad de la piconet utiliza su identidad maestra y reloj nativo para seguir en el canal de salto. Cuando se establece la conexión, se añade un ajuste de reloj a la propia frecuencia de reloj nativa de la unidad esclava para poder sincronizarse con el reloj nativo del maestro. El reloj nativo mantiene siempre constante su frecuencia, sin embargo, los ajustes producidos por las unidades esclavas para sincronizarse con el maestro, sólo son válidos mientras dura la conexión. Dentro de la misma área pueden coexistir diversas piconets ya que cada piconet tiene una unidad maestra distinta con su propia secuencia de saltos de canales y de fase. A medida que tenemos más piconets en la misma área de cobertura, la probabilidad de colisión aumenta produciendo una degradación del espectro y reduciendo el rendimiento del sistema. Una unidad bluetooth puede participar secuencialmente en varias piconets gracias al sistema TDM (división de tiempo multiplexada). Esto es posible siempre y cuando la unidad solo esté activa en una piconet a la vez. Para realizar este proceso, la unidad cuando se incorpora a la nueva piconet debe ajustar el offset de su reloj nativo y realizar los ajustes de configuración correspondientes a la nueva piconet. Cuando una unidad abandona una piconet, la esclava informa el maestro actual que ésta no estará disponible por un determinado periodo, que será en el que estará activa en otra piconet. Durante su ausencia, el tráfico en la piconet entre el maestro y otros esclavos continúan igualmente. Una unidad maestra también puede cambiar de piconet, pero en este caso el tráfico de la piconet en la cual está activa deja de tener tráfico hasta la vuelta de la unidad maestra. La maestra que entra en una nueva piconet, en principio, lo hace como esclava, a no ser que posteriormente ésta solicite actuar como maestra.