scieee AI-readable full text Open interactive document viewer

Control de un módulo bluetooth mediante un microcontrolador

Gálvez Navarro, Jaime

Full text

TRABAJO FIN DE CARRERA TÍTULO: Control de un módulo bluetooth mediante microcontrolador AUTOR: Jaime Gálvez Navarro DIRECTOR: Gabriel Montoro López SUBDIRECTOR: José Luís Valenzuela González FECHA: 25 de febrero de 2005 Título: Control de un módulo bluetooth mediante microcontrolador Autor: Jaime Gálvez Navarro Titulación: Ingeniería Técnica de Telecomunicación Especialidad: Sistemas de Telecomunicación Plan: 2000 Director: Gabriel Montoro López Departamento: Teoría de la señal y comunicaciones Subdirector: José Luís Valenzuela González Departamento: Teoría del la señal i comunicaciones Conformidad, Director del TFC TÍTULO: Control de un módulo bluetooth mediante microcontrolador AUTOR: Jaime Gálvez Navarro DIRECTOR: Gabriel Montoro López SUBDIRECTOR: José Luís Valenzuela González FECHA: 25 de febrero de 2005 Resumen El estándar bluetooth es una norma abierta que posibilita la conexión inalámbrica de corto alcance de voz y datos entre ordenadores, portátiles, agendas digitales personales, teléfonos móviles, impresoras, escáneres, cámaras digitales e incluso dispositivos de casa, a través de una banda disponible a nivel global (2,4 GHz) y mundialmente compatible. Es decir, la tecnología bluetooth es el sistema de comunicaciones sin hilos del futuro, el cual elimina el engorroso lío de cables de comunicación entre los diferentes dispositivos electrónicos. Con la idea de conseguir una comunicación de este estilo, el objetivo de este trabajo final de carrera ha sido poder controlar un módulo bluetooth mediante un microcontrolador de manera que podamos comunicar un ordenador y un microcontrolador utilizando este tipo de tecnología. Los materiales utilizados para realizar este proyecto han sido 2 módulos ROK 101 008 de Ericsson (bluetooth), un ordenador convencional y un microcontrolador del tipo pic18f452 de la casa Microchip. Forma de montaje: Uno de los módulos de bluetooth se conecta al PC mediante el puerto de comunicaciones COM (utilizando el estándar RS232) y el otro módulo se conecta al microcontrolador (también mediante el estándar RS232) y de esa manera se procede a establecer comunicación entre el PC y el microcontrolador vía bluetooth. Para realizar este montaje ha sido necesario familiarizarse con las características y la forma de programación de la familia de microcontroladores de Microchip así como aprender a utilizar la especificación del estándar bluetooth y RS-232. TITLE: Control of a module bluetooth with a microcontroller AUTHOR: Jaime Gálvez Navarro DIRECTOR: Gabriel Montoro López ASSISTANT DIRECTOR: José Luís Valenzuela González DATE: February, 25th 2005 Abstract The standard bluetooth is an open norm that makes possible the wireless connection of short reach of voice and data between computers, laptops, personal digital agendas, mobiles, printers, scanners, digital cameras and even home devices, through a band available at global level (2.4 GHz) and worldwide compatible. That is to say, the technology bluetooth is the system of communications without threads of the future which eliminates the troublesome cable mess of communication between the different electronic devices. With the idea to obtain a communication of this style, the final objective of this TFC has been to be able to control a module bluetooth by means of a microcontroller so that we could communicate a computer and a microcontroller using this type of technology. The used materials to make this project have been 2 modules ROK 101 008 of Ericsson (bluetooth), a conventional computer and a microcontroller type pic18f452 of the Microchip enterprise. Form of assembly: One of the modules of bluetooth connects to the PC through the COM communications port (using standard RS232) and the other module connects the microcontroller (also by standard RS232) and from that way it is established contact between the PC and the microcontroller by bluetooth. In order to make this assembly it has been necessary to learn the characteristics and how to program this family of Microchip microcontrollers as well as to learn to use the specification of the standard bluetooth and RS-232. Este TFC simboliza el final de mi vida universitaria, por ello quiero dedicárselo a mi familia y amigos, que sin su ayuda y comprensión, no habría podido finalizar mis estudios. También quiero hacer un pequeño recordatorio a todos los profesores que me han impartido clases por su gran esfuerzo y dedicación, ya que sin su aportación no habría adquirido ni los conocimientos ni las ganas de de superarme que hoy tengo. Gracias a todos. - 4 - Control de un módulo Bluetooth mediante microcontrolador Fig.1.- Comunicación bluetooth 1.2. 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 unas 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 coste y pequeño 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 muchas 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 interface aérea junto con su software de control, su fin es asegurar la interoperatibilidad de los diversos equipos de diferentes fabricantes. Capítulo 1. Bluetooth - 5 - 1.3. ¿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. - 6 - Control de un módulo Bluetooth mediante microcontrolador 1.3.1. Canal. La banda ISM tiene muchas interferencias, para solucionar este problema el bluetooth utiliza un método de salto de frecuencia pseudo-aleatoria llamado FH/TDD (salto de frecuencia/división de tiempo duplex), en el que el canal queda dividido en intervalos de 625 µs, llamados slots, donde cada salto de frecuencia es ocupado por un slot. Esto da lugar a una frecuencia de salto de 1600 veces por segundo, en la que un paquete de datos ocupa un slot para la emisión y otro para la recepción y que pueden ser usados alternativamente, dando lugar a un esquema de tipo TDD. De esta manera se pueden conseguir transceptores de banda estrecha con una gran inmunidad a las interferencias. Fig.2. Canal En países donde la banda está abierta a 80 canales o más, espaciados todos ellos a 1 Mhz., se han definido 79 saltos de portadora, y en aquellos donde la banda es más estrecha se han definido 23 saltos. 1.3.2. Paquete. Las unidades Bluetooth intercambian paquetes de datos entre ellas. Cada paquete está formado por un conjunto de slots. En la siguiente figura podemos ver la estructura de cada paquete: Fig.3. Estructura de un paquete Todos los paquetes tienen el mismo formato. Constan de un código de acceso de 72 bits en el cual podemos encontrar la identidad de la unidad maestra, después tienen una cabecera de 54 bits en los cuales podemos encontrar información de control, tipo de paquete, bits de control de flujo, chequeo de errores, etc... y finalmente podemos encontrar el paquete con información el cual puede variar su longitud entre 0 y 2754 bits. Capítulo 1. Bluetooth - 7 - Los paquetes de datos están protegido por un esquema ARQ (repetición automática de consulta), en el cual los paquetes perdidos son automáticamente retransmitidos, aun así, con este sistema, si un paquete de datos no llegase a su destino, sólo una pequeña parte de la información se perdería. La voz no se retransmite nunca, sin embargo, se utiliza un esquema de codificación muy robusto basado en una modulación variable de declive delta (CSVD), que sigue la forma de la onda de audio y es muy resistente a los errores de bits. Estos errores son percibidos como ruido de fondo, que se intensifica si los errores aumentan. Los receptores de la piconet comparan las señales que reciben con el código de acceso, si éstas no coinciden, el paquete recibido no es considerado como válido en el canal y el resto de su contenido es ignorado. 1.3.3. Enlace físico. En la especificación Bluetooth se definen dos tipos de enlace: • Enlace de sincronización de conexión orientada (SCO) • Conexión simétrica punto a punto entre maestro y esclavo. • El maestro utiliza slots de tiempo reservados a intervalos regulares. • El maestro puede soportar más de 3 enlaces simultáneos mientras que los esclavos 3 como máximo. • Los paquetes de configuración nunca son retransmitidos. • Principalmente este tipo de enlace se utiliza para transmitir información de voz con un ratio de transmisión de 64kB/s. • Enlace asíncrono de baja conexión (ACL) • Conexiones simétricas o asimétricas punto-multipunto entre maestro y esclavo. • Conexión utilizada para la transmisión de datos. • Se aplica retransmisión de paquetes. • Se definen para este tipo de conexión los slots 1,3 y 5. • La máxima velocidad de envío es de 721 kbit/s en una dirección y 57.6 kbit/s en la otra. 1.3.4. Establecimiento de una conexión. Para establecer la piconet, la unidad maestra debe conocer la identidad del resto de unidades que están en modo standby en su radio de cobertura. El maestro o aquella unidad que inicia la piconet transmite el código de acceso continuamente en periodos de 10 ms, que son recibidas por el resto de unidades que se encuentran en standby. El tren de 10 ms de códigos de acceso de diferentes saltos de portadora, se transmite repetidamente hasta que el receptor responde o bien se excede el tiempo de respuesta. Cuando una unidad emisora y una receptora seleccionan la misma portadora de salto, la receptora recibe el código de acceso y devuelve una confirmación - 8 - Control de un módulo Bluetooth mediante microcontrolador de recibo de la señal, es entonces cuando la unidad emisora envía un paquete de datos que contiene su identidad y frecuencia de reloj actual. Después de que el receptor acepta éste paquete, ajustará su reloj para seleccionar el canal de salto correcto determinado por emisor. De éste modo se establece una piconet en la que la unidad emisora actúa como maestra y la receptora como esclava. Después de haber recibido los paquetes de datos con los códigos de acceso, la unidad maestra debe esperar un procedimiento de requerimiento por parte de las esclavas, diferente al proceso de activación, para poder seleccionar una unidad específica con la que comunicarse. En la siguiente figura (fig.4) podemos observar cuales son los estados existentes para realizar una conexión: Fig.4. Estados de una conexión. 1.3.5. Arquitectura de protocolo. La especificación Bluetooth define una arquitectura de protocolos semejante a la torre OSI. Estos protocolos son utilizados dependiendo el tipo de sistema que se quiere implementar. Cada protocolo lo podemos tratar como una capa independiente con sus correspondientes interfaces para que el sistema sea homogéneo. En este apartado no vamos a entrar en detalle sobre la pila de protocolos ya que muchos de ellos no son necesarios para la implementación de este TFC, pero hemos creído necesario remarcar su existencia. Entraremos más en profundidad en el protocolo que nos interese en el momento que lo necesitemos en apartados posteriores. Capítulo 1. Bluetooth - 9 - Fig.5. Pila de protocolos Bluetooth. 1.3.6. Perfiles. Para asegurar la interoperatibilidad entre dispositivos bluetooth de diferentes fabricantes, en el estándar bluetooth se han definido una serie de perfiles. Los perfiles definen los roles y capacidades para aplicaciones específicas. Diferentes perfiles pueden abarcar diferentes capas y protocolos para diferentes grados de seguridad. En la siguiente figura (fig.6.) podemos ver como están estructurados los perfiles que se definen en el estándar bluetooth. Fig.6. Estructura de los perfiles - 10 - Control de un módulo Bluetooth mediante microcontrolador 1.3.7. Seguridad. En el estándar bluetooth se ha definido unas medidas de seguridad para poder asegurar la protección de la información. Las medidas de seguridad se basan en tres puntos: • Una rutina de pregunta-respuesta, para autentificación • Una corriente cifrada de datos, para encriptación • Generación de una clave de sesión (que puede ser cambiada durante la conexión) Tres entidades son utilizadas en los algoritmos de seguridad: la dirección de la unidad Bluetooth, que es una entidad pública; una clave de usuario privada, como una entidad secreta; y un número aleatorio, que es diferente por cada nueva transacción. Como se ha descrito anteriormente, la dirección Bluetooth se puede obtener a través de un procedimiento de consulta. La clave privada se deriva durante la inicialización y no es revelada posteriormente. El número aleatorio se genera en un proceso pseudo-aleatorio en cada unidad Bluetooth. Hasta ahora hemos expuesto una visión global de lo que es el sistema bluetooth y cuales son sus principales características. Existe mucha más información necesaria para la implementación de este TFC y mucha otra que no nos es útil para llevarlo a cabo, por eso el resto de información necesaria para la implementación de este TFC la daremos posteriormente con más detalle en los puntos donde sea necesario más aportación teórica. Capítulo 2. Los PICs de Microchip - 11 - CAPÍTULO 2. Los PICs de Microchip. La evolución de la electrónica desde la aparición del circuito integrado ha sido constante. Actualmente podemos encontrar dispositivos cada vez más complejos ubicados en encapsulados cada vez más pequeños, un ejemplo de esto son los microcontroladores. Un microcontrolador, es un dispositivo electrónico encapsulado en un chip, capaz de ejecutar un programa. El microcontrolador reúne en un solo integrado: microprocesador, memoria de programa, memoria de datos y puertos de entrada/salida. Además, también suelen disponer de otras características especiales como: puertos serie, comparadores, convertidores analógico-digital, etc. En el mercado existen gran variedad de microcontroladores de marcas y características distintas que podremos utilizar dependiendo de la aplicación a realizar. Un microcontrolador ejecuta instrucciones. El conjunto de instrucciones es lo que llamamos programa. Las instrucciones son leídas de la memoria de programa para ejecutarlas una detrás de otra. La memoria de programa contiene las instrucciones que queremos que el microcontrolador ejecute. Programar un microcontrolador consiste en introducir el programa en la memoria del microcontrolador. Las instrucciones son operaciones simples como sumar, restar, escribir en un puerto, activar un bit de un dato, etc. Mediante estas instrucciones básicas podemos realizar operaciones más complejas y así llegar al objetivo de la aplicación. En este TFC nos vamos a centrar en los microprocesadores de la casa Microchip Technology, es decir los PICs. Este tipo de microprocesadores están muy extendidos actualmente en el mercado gracias a su gran variedad y bajo coste. Otra razón del éxito de los PICs es su utilización, ya que una vez se ha aprendido a utilizar uno, conociendo su arquitectura y juego de instrucciones, es muy fácil emplear otro modelo diferente. 2.1. Historia de los PICs. En 1965 GI formó una división de microelectrónica destinada a generar las primeras arquitecturas viables de memoria EPROM y EEPROM. A principios de 1970 se creó el CP1600 que era un microprocesador bastante bueno pero no manejaba muy bien los puertos de E/S, por esta razón en 1975 se creó el PIC que era un chip que funcionaba en combinación con este microprocesador para controlar las E/S. Alrededor de 1980 GI reestructuró la empresa y creó la GI Microelectronics que finalmente fue vendida a un grupo de inversores de capital de riesgo que crearon la actual Arizona Microchip Technology y centraron su negocio en la fabricación de PICs, memorias EEROM y EPROM. Actualmente Microchip ha realizado un gran número de mejoras a la arquitectura original de los PICs, adaptándola a las actuales tecnologías y al bajo costo de los semiconductores. - 12 - Control de un módulo Bluetooth mediante microcontrolador 2.2 Características de los PICs. Las características más destacadas de los PICs las enumeramos en los siguientes puntos: 1ª. La arquitectura del procesador sigue el modelo Harvard. Tradicionalmente, las computadoras y microprocesadores siguen el modelo 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. El tamaño de la unidad de datos o instrucciones esta fijado por el ancho del bus de la memoria. Esto 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. En los microprocesadores PIC se utiliza el modelo Harvard. Este tipo de arquitectura conecta de forma independiente y con dos buses distintos la memoria de instrucciones y la de datos: Fig.7. Arquitectura Harvard. La arquitectura Harvard permite a el CPU acceder simultáneamente a las dos memorias. Esto proporciona mayor velocidad además de numerosas ventajas al funcionamiento del sistema. 2ª. Se aplica la técnica de segmentación ("pipe-line") en la ejecución de las instrucciones. La segmentación permite al procesador realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. De esta forma se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción equivale a cuatro ciclos de reloj). Capítulo 2. Los PICs de Microchip - 13 - Fig. 8. Técnica de segmentación. La segmentación permite al procesador ejecutar cada instrucción en un ciclo de instrucción equivalente a cuatro ciclos de reloj. En cada ciclo se realiza la búsqueda de una instrucción y la ejecución de la anterior. Las instrucciones de salto ocupan dos ciclos al no conocer la dirección de la siguiente instrucción hasta que no se haya completado la de bifurcación. 3ª. El formato de todas las instrucciones tiene la misma longitud Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12 bits. Las de la gama media tienen 14 bits y más las de la gama alta. Esta característica es muy ventajosa en la optimización de la memoria de instrucciones y facilita enormemente la construcción de ensambladores y compiladores. 4ª. Procesador RISC (Computador de Juego de Instrucciones Reducido) Dependiendo de la gama del procesador (baja, media o alta) tienen más o menos número de instrucciones. Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35 los de la gama media y unas 76 los de la alta. 5ª. Todas las instrucciones son ortogonales Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino. 6ª. Arquitectura basada en un banco de registros. Esto significa que todos los objetos del sistema (puertos de E/S, temporizadores, posiciones de memoria, etc.) están implementados físicamente como registros. - 20 - Control de un módulo Bluetooth mediante microcontrolador Fig. 10. Oscilador de cristal. Si no se requiere mucha precisión en el oscilador y se requiere economizar dinero, se puede utilizar una resistencia y un condensador, como se muestra a continuación. Fig. 11. Oscilador RC. Los valores recomendados para este tipo de oscilador son: 5 KΩ ≤ Rext ≥ 100 ΚΩ y Cext > 20 pF. 2.6. Herramientas de desarrollo. La casa Microchip ofrece una serie de herramientas de desarrollo totalmente gratuitas, las podemos descargar directamente de la página de www.microchip.com. Con estas herramientas podemos programar los microcontroladores PIC y así realizar los proyectos con estos pequeños chips. La herramienta que nos ofrece Microchip Technology es el “MPLAB”. El MPLAB es un “entorno de desarrollo integrado” (Integrated Development Environment, IDE) que corre en entornos “Windows “, mediante el cual se pueden desarrollar aplicaciones para los microcontroladores PIC. Capítulo 2. Los PICs de Microchip - 21 - EL MPLAB permite escribir, depurar y optimizar los programas (firmware) de nuestros diseños con PICs. EL MPLAB incluye un editor de texto, un simulador y un organizador de proyectos. Además, el MPLAB soporta el emulador PICMASTER y a otras herramientas de desarrollo de Microchip como el PICSTART - Plus. El MPLAB es una herramienta muy completa a la cual hay que saber darle uso, para ello en el Anexo I exponemos una guía rápida (en inglés) que creemos de vital importancia para aprender a utilizar este software. Hasta ahora hemos hecho una pequeña reseña de lo que son los PICs y cuales son sus principales características. Existe mucha más información necesaria para la implementación de este TFC y mucha otra que no nos es útil para llevarlo a cabo, por eso el resto de información necesaria para la implementación de este TFC la daremos posteriormente con más detalle en los puntos donde sea necesaria más aportación teórica. - 22 - Control de un módulo Bluetooth mediante microcontrolador Capítulo 3. Implementación y desarrollo - 23 - Capítulo 3. Implementación y desarrollo. En los dos capítulos anteriores hemos realizado una breve aportación teórica la cual hemos creído necesaria para el buen entendimiento del TFC que nos ocupa. En este apartado vamos a realizar el desarrollo y la implementación práctica del TFC y de esta manera conseguir realizar la conexión bluetooth. 3.1. Finalidad del TFC. La finalidad de este TFC es poder comunicar un ordenador convencional (en nuestro caso un ordenador portátil) y un microcontrolador (PIC 18f452) mediante tecnología bluetooth. En la siguiente figura (fig.12) mostramos el montaje realizado: Fig.12. Montaje. Forma de montaje: El montaje final se completará tal y como se muestra en la figura anterior. Uno de los módulos de bluetooth se conecta al PC mediante el puerto de comunicaciones COM (utilizando el estándar RS232) y el otro módulo se conecta al microcontrolador (también mediante el estándar RS232) y de esa manera se procede a establecer comunicación entre el PC y el microcontrolador vía bluetooth. Para realizar este montaje ha sido necesario la utilización de los materiales que mostramos en el siguiente apartado. - 24 - Control de un módulo Bluetooth mediante microcontrolador 3.2. Material Utilizado. En este apartado exponemos los materiales necesarios para la implementación de este TFC. PICSTART® Plus El PICSTART® Plus es el programador de Microchip®. Se conecta mediante el puerto serie RS232 (DB9) del PC. Es un programador de bajo coste y utiliza el software MPLAB® IDE. Funciona bajo cualquier PC compatible con sistema operativo Windows. En la siguiente figura (fig.13) mostramos una foto real de este programador: Fig.13. PICSTART® Plus. Este programador es una herramienta de diseño de alta flexibilidad, puede trabajar sobre las familias de microcontroladores PIC12 XXX, PIC16XXX, PIC17XXX y PIC18XXX. El propio programador ya trae consigo su propia fuente de alimentación y cables para conexión al PC (DB9). Características: • Opera con cualquier PC compatible con sistema operativo Windows® y entorno MPLAB. • Lee, programa y verifica tanto la memoria de programa como la de datos. • Lee, programa y verifica todos los bits de configuración. • Programa y verifica rangos de direcciones. El programador de la figura 13 es el que hemos utilizado en el laboratorio para programar nuestro chip. Capítulo 3. Implementación y desarrollo - 25 - PIC 18F452 El PIC utilizado para realizar este TFC es un PIC de la familia 18FXXX (18F452). Es un PIC de la gama alta. En la siguiente figura podemos ver la imagen real de este microcontrolador. Fig. 14. PIC 18F452. Las características principales de este PIC son las siguientes: • Tecnología CMOS. • Procesador RISC. • Memoria Flash de 32k bytes. • Memoria de instrucciones de 16384. • Memoria RAM de 1536 bytes. • Memoria EEPROM de 256 bytes. • Bus datos de 8 bits, bus de instrucciones de 16 bits. • Módulo de puerto serie síncrono (3-wire y I2C). • USART direccionable, soporta RS-485 y RS-232. • Módulo de puerto paralelo. • Módulo conversor A/D de 10 bits. En la siguiente figura podemos ver cual es la disposición del patillaje del PIC: FIG. 15. Patillaje. - 26 - Control de un módulo Bluetooth mediante microcontrolador Cables USB y RS232 Para la realización de este TFC ha sido necesario la utilización de una serie de cables para la interconexión de los diferentes módulos que lo componen. En las siguiente figura (fig.16) podemos ver los tipos de cables utilizados, en este TFC se han utilizado dos cables de cada ya que existen 2 módulos independientes. FIG. 16. Cables de conexión. El cable con conexión RS232 de 9 pins lo hemos utilizado para la conexión del modulo bluetooth con el PC y el microcontrolador. Este cable tiene la peculiaridad que es NULL MODEM para poder establecer la comunicación entre el módulo bluetooth y el PC (o PIC según sea necesario). El cable USB lo hemos utilizado únicamente para alimentar el módulo bluetooth, ya que de esta manera nos evitámos tener que utilizar una fuente de alimentación externa con la cual alimentar el módulo. Finalmente, el módulo utiliza una conexión en forma de pins agrupados formada por jumpers y para ello ha sido necesario utilizar un cable conversor entre esta conexión y la conexión RS232. Este cable ya nos lo proporciona la propia casa del módulo. Finalmente para poder adaptar la conexión RS232 al PIC ha sido necesario fabricar un cable manualmente para poder adaptar la placa protoboard al cable RS232. Capítulo 3. Implementación y desarrollo - 27 - ROK 101008 Bluetooth ptp Module El módulo bluetooth utilizado para la realización de este TFC es un módulo ROK 101008 de la casa Ericsson. ROK 101 008 es un módulo de corto alcance para poner la funcionalidad de Bluetooth en ejecución en varios dispositivos electrónicos. El módulo consta de tres partes importantes: un controlador de banda base, memoria flash, y una interface radio que funciona entre 2.4-2.5 GHz (ISM). Este módulo soporta transmisión de voz y datos. La comunicación entre el módulo y el controlador del host se realiza vía UART y la interface PCM. ROK 101 008, cumple la versión 1.1 de Bluetooth, es un módulo de Bluetooth de la clase 2 (0 dBm). En la siguiente figura (fig.17) podemos ver los dos módulos utilizados: FIG. 17. Módulos ROK 101008 Bluetooth de Ericsson Este módulo cumple las siguientes características: • Cualificado para la versión de bluetooth 1.1. • Salida de RF de clase 2. • Aprobado por la ETSI y FCC. • Máxima velocidad de transmisión de 460kb/s. • Interface I2C. • Oscilador de cristal interno. • Firmware HCI incluido. • Conexión ptp (punto a punto). • Soporta Ordenadores y periféricos. • Dispositivos de manos libres y accesorios. • Access points • Soporta los siguiente perfiles bluetooth: o Perfil de acceso genérico. o Perfil de puerto serie (fax, teléfono). o Perfil de intercambio genérico de objetos (sincronización, ficheros, objetos). o Perfil de descubrimiento de aplicaciones. - 28 - Control de un módulo Bluetooth mediante microcontrolador MAX 232 Para la realización de este TFC ha sido necesario la utilización de un MAX232. El MAX232 es un integrado que cambia los niveles TTL procedentes de cualquier integrado a los niveles del estándar RS-232 cuando se hace una transmisión, y cambia los niveles RS-232 a TTL cuando se tiene una recepción. En la siguiente figura podemos ver como es realmente este pequeño integrado: FIG. 18. MAX232 Placa Protoboard Para poder realizar el montaje del PIC y del MAX232 hemos utilizado una placa de protoboard en la cual hemos implementado el montaje necesario y las conexiones básicas. También lo hemos utilizado para insertar una clavija RS232 y así poder conectar el cable RS232 que va entre el PIC y el módulo bluetooth. La placa protoboard que utilizada tiene las siguientes características: • Placa de 1450 contactos. • Contactos de Niquel-Plata. • Diámetro de inserción de 0,7mm En la siguiente figura (fig.19) podemos ver una imagen real de la placa utilizada: FIG. 19. Placa Protoboard. Capítulo 3. Implementación y desarrollo - 29 - Portátil Para la realización de este TFC era necesario el uso de un ordenador convencional, la única particularidad es que tenía que tener puertos USB ( para alimentar los módulos bluetooth) y puerto serie (para la conexión de datos con el módulo). En nuestro caso nos hemos decantado por un ordenador portátil debido a es más práctico para transportar, pero se podría haber utilizado cualquier otro tipo de ordenador. En la siguiente figura (fig.20) mostramos una imagen del ordenador escogido: FIG. 20. Ordenador. Material vario A parte del material que hemos mencionado anteriormente se ha utilizado otro material variado como resistencias, cables para interconectar patitas en la placa protoboard, condensadores, conector RS232, etc. También hemos hecho uso de los aparatos propios del laboratorio como osciloscopios, sondas, fuentes de alimentación, ordenadores, etc... - 36 - Control de un módulo Bluetooth mediante microcontrolador En primer lugar sabemos que el módulo trabaja a una velocidad de 57600bps para ello debemos informar al PIC a que velocidad tiene que trabajar. Otra cosa que debemos tener en cuenta es que el módulo que está conectado al PIC es el que espera una conexión entrante y el módulo que está conectado al PC es el que inicia la conexión, por eso los comandos HCI que debemos enviar desde el PIC hacia el módulo son los que permiten que el módulo acepte conexiones entrantes. Para ello debemos enviar los comandos: • Reset. • Habilitar Write Scan. • Habilitar conexiones remotas. • Aceptar conexiones remotas. En las siguientes líneas mostramos el programa que hemos implementado para enviar comandos HCI desde el PIC hacia el módulo y de esta manera establecer una conexión bluetooth entre los dos módulos. ;******************************************************************************************************* ;Programa con microcontroladores PIC para establecer conexión con un módulo bluetooth ;Programa para enviar y recibir datos del módulo a una velocidad de 57600 bps. ;******************************************************************************************************** list p=18f452 ;Listado del PIC que se utiliza #include <p18f452.inc> ;esta librería contiene todas las funciones especiales, registros y direcciones org 00h ;reset del vector ;reset del vector ; Declaración de variables ByteTx equ 300h ByteRx equ 400h Rx0 equ 500h Rx1 equ 501h Rx2 equ 501h Rx3 equ 502h Rx4 equ 503h Rx5 equ 504h Rx6 equ 505h Rx7 equ 506h Rx8 equ 507h Rx9 equ 508h Rx10 equ 509h Rx11 equ 510h Rx12 equ 511h Rx13 equ 512h ; Dirigir al inicio del programa goto inicio ;redirigimos al inicio del programa ; ********************************Funciones********************************** ; Transmisión ; Esperamos hasta que un byte tenga que ser transmitido Transmision: Capítulo 3. Implementación y desarrollo - 37 - BANKSEL PIR1 EsperamosTX: btfss PIR1,TXIF goto EsperamosTX ; Leemos el byte y transmitimos el dato ; 8 bits de datos en DataByte BANKSEL ByteTx movf ByteTx,W BANKSEL TXREG movwf TXREG return ; Recepción ; Esperamos hasta que el byte se haya recibido Recepcion: BANKSEL PIR1 EsperamosRX: btfss PIR1,RCIF goto EsperamosRX ; Leemos el byte recibido ; Rellenamos DataByte con los 8 bits recibidos BANKSEL RCREG movf RCREG,W BANKSEL ByteRx movwf ByteRx return ;************************************************************************** ; Programa principal inicio: BANKSEL SPBRG ; BANKSEL es una directiva de assembler movlw D'0' movwf SPBRG ; Velocidad de transmisión de 57600 bps BANKSEL TXSTA bsf TXSTA,BRGH ; Seleccionamos high speed baud BANKSEL TXSTA ; Habilitamos Tx de 8 bits asincrona y high baud rate movlw B'00100100' movwf TXSTA BANKSEL RCSTA ; Habilitamos puerto serie y recepción continua movlw B'10010000' movwf RCSTA ResetModulo: movlw 01h movwf ByteTx call Transmision movlw 03h movwf ByteTx call Transmision movlw 0Ch movwf ByteTx call Transmision movlw 00h - 38 - Control de un módulo Bluetooth mediante microcontrolador movwf ByteTx call Transmision call Recepcion movff ByteRx,Rx0 call Recepcion movff ByteRx,Rx1 call Recepcion movff ByteRx,Rx2 call Recepcion movff ByteRx,Rx3 call Recepcion movff ByteRx,Rx4 call Recepcion movff ByteRx,Rx5 call Recepcion movff ByteRx,Rx6 call Recepcion movff ByteRx,Rx7 WriteScan: movlw 01h movwf ByteTx call Transmision movlw 1Ah movwf ByteTx call Transmision movlw 0Ch movwf ByteTx call Transmision movlw 01h movwf ByteTx call Transmision movlw 03h movwf ByteTx call Transmision call Recepcion movff ByteRx,Rx0 call Recepcion movff ByteRx,Rx1 call Recepcion movff ByteRx,Rx2 call Recepcion movff ByteRx,Rx3 call Recepcion movff ByteRx,Rx4 call Recepcion movff ByteRx,Rx5 call Recepcion movff ByteRx,Rx6 ConexRemot: movlw 01h movwf ByteTx call Transmision movlw 19h movwf ByteTx call Transmision Capítulo 3. Implementación y desarrollo - 39 - movlw 0Ch movwf ByteTx call Transmision movlw 00h movwf ByteTx call Transmision call Recepcion movff ByteRx,Rx0 call Recepcion movff ByteRx,Rx1 call Recepcion movff ByteRx,Rx2 call Recepcion movff ByteRx,Rx3 call Recepcion movff ByteRx,Rx4 call Recepcion movff ByteRx,Rx5 call Recepcion movff ByteRx,Rx6 call Recepcion movff ByteRx,Rx7 EspeConex: call Recepcion movff ByteRx,Rx0 call Recepcion movff ByteRx,Rx1 call Recepcion movff ByteRx,Rx2 call Recepcion movff ByteRx,Rx3 call Recepcion movff ByteRx,Rx4 call Recepcion movff ByteRx,Rx5 call Recepcion movff ByteRx,Rx6 call Recepcion movff ByteRx,Rx7 call Recepcion movff ByteRx,Rx8 call Recepcion movff ByteRx,Rx9 call Recepcion movff ByteRx,Rx10 call Recepcion movff ByteRx,Rx11 call Recepcion movff ByteRx,Rx12 call Recepcion movff ByteRx,Rx13 AcepConex: movlw 01h movwf ByteTx call Transmision - 40 - Control de un módulo Bluetooth mediante microcontrolador movlw 09h movwf ByteTx call Transmision movlw 04h movwf ByteTx call Transmision movlw 07h movwf ByteTx call Transmision movf Rx3 movwf ByteTx call Transmision movf Rx4 movwf ByteTx call Transmision movf Rx5 movwf ByteTx call Transmision movf Rx6 movwf ByteTx call Transmision movf Rx7 movwf ByteTx call Transmision movf Rx8 movwf ByteTx call Transmision movlw 01h movwf ByteTx call Transmision call Recepcion movff ByteRx,Rx0 call Recepcion movff ByteRx,Rx1 call Recepcion movff ByteRx,Rx2 call Recepcion movff ByteRx,Rx3 call Recepcion movff ByteRx,Rx4 call Recepcion movff ByteRx,Rx5 call Recepcion movff ByteRx,Rx6 call Recepcion movff ByteRx,Rx0 call Recepcion movff ByteRx,Rx1 call Recepcion movff ByteRx,Rx2 call Recepcion movff ByteRx,Rx3 call Recepcion movff ByteRx,Rx4 call Recepcion movff ByteRx,Rx5 call Recepcion Capítulo 3. Implementación y desarrollo - 41 - movff ByteRx,Rx6 call Recepcion movff ByteRx,Rx7 call Recepcion movff ByteRx,Rx8 call Recepcion movff ByteRx,Rx9 call Recepcion movff ByteRx,Rx10 call Recepcion movff ByteRx,Rx11 call Recepcion movff ByteRx,Rx12 call Recepcion movff ByteRx,Rx13 call Recepcion movff ByteRx,Rx0 call Recepcion movff ByteRx,Rx1 call Recepcion movff ByteRx,Rx2 call Recepcion movff ByteRx,Rx3 call Recepcion movff ByteRx,Rx4 call Recepcion movff ByteRx,Rx5 call Recepcion movff ByteRx,Rx6 call Recepcion end ******************************************************************************************** Para probar estas líneas de programación y ver si realmente se establecía una conexión bluetooth, seguimos los siguientes pasos: • Programamos el PIC con el PICSTAT Plus. • Ejecutamos el software Bluetooth Controller en el portátil y le conectamos uno de los módulos bluetooth. • Conectamos el segundo módulo a la salida del MAX232 que proviene del PIC. • Le indicamos a bluetooth Controller que inicie la conexión. Como mostramos en la figura siguiente (fig.22) conseguimos comunicar el PIC con el módulo sin embargo no conseguimos establecer una conexión entre los dos módulos generando así un ERROR en conexión. - 42 - Control de un módulo Bluetooth mediante microcontrolador Fig. 22. Error en la conexión En el caso hipotético de haber podido establece una conexión bluetooth, entre los dos módulos, podríamos enviar y recibir datos entre ellos mediante la capa L2CAP. Capítulo 4. Conclusiones - 43 - Capítulo 4. Conclusiones. Para realizar este TFC ha sido necesario el estudio en profundidad del estándar Bluetooth. En nuestro caso nos hemos centrado específicamente en la capa de protocolos HCI, para la configuración y control de los módulos, y en el protocolo L2CAP para el envío y recepción de paquetes de datos. Como hemos visto hasta ahora no ha sido posible establecer una conexión exitosa vía bluetooth con nuestra programación debido a problemas con el PIC. Conseguimos comunicarnos con el módulo, pero sin embargo, no conseguimos establecer la conexión. Todos los estudios prácticos que realizados los hemos hecho con el software “Fcoder” y el “Bluetooth Controller” mediante los cuales hemos enviado paquetes HCI y hemos establecido una conexión exitosa. Uno de los puntos que ha quedado en el aire debido a la falta de conectividad entre el PIC y el Módulo Bluetooth ha sido el envío y la recepción de datos, ya que hubiera sido una parte muy interesante de realizar para finalizar este TFC. Para concluir este apartado podemos decir que en nuestra opinión y con las pruebas que hemos realizado mediante el software “Bluetooth Controller” el Bluetooth puede considerarse como una tecnología de gran futuro para redes inalámbricas pequeñas que puede proveer a los usuarios de conectividad transparente con otros dispositivos también habilitados para ello. Otro de los aspectos por los cuales creemos que esta tecnología tiene mucho futuro es por la influencia de las empresas (en muchos casos multinacionales) involucradas en el desarrollo y mejoramiento de este estándar y es de esperarse que pronto la mayoría de los dispositivos personales sean de fábrica "bluetooth enabled". - 44 - Control de un módulo Bluetooth mediante microcontrolador Capítulo 5. Criterios medioambientales - 45 - Capítulo 5. Criterios medioambientales. Actualmente existe un gran desarrollo de dispositivos conectados entre si mediante nuevas tecnologías basadas en RF. Este tipo de tecnologías están reemplazando a los cables de conexión por emisiones RF de bajo nivel. Tecnologías como Bluetooth son un buen ejemplo de ello. Todos sabemos que las radiaciones de RF tienen efectos biológicos y contraproducentes para la salud. Dependiendo de la potencia, de la frecuencia, de la geometría del sistema que se expone a ellas y del tipo de tejido biológico, los efectos van desde la estimulación del crecimiento a la muerte de las células (apoptosis) y a daños en el ADN, siendo los efectos térmicos un factor importante. Uno de los aspectos más nocivos de las tecnologías inalámbricas es ruido electrónico permanente, de manera similar al ruido audible, afecta al sistema neurológico e inmunitario, afecta al sueño y el descanso nocturno y dificulta la regeneración celular. Esto nos provoca estrés y nos aleja de la salud óptima. Aunque en nuestra vida cotidiana el nivel de exposición suele permanecer por de bajo de los límites recomendados por la ICNIRP, parece que las autoridades competentes en el tema en vez de comprometerse claramente a investigar los posibles efectos sobre la salud están más por tratar de convencernos de que existe muy poco riesgo. Esto en gran parte es debido a las dificultades que tiene medir la exposición a estás señales ya que raras veces está limitada a una frecuencia única y a que cada frecuencia tiene distinta penetración en el tejido y distintas propiedades de transporte de energía. En pocas palabras, aunque se han observado algunos efectos que repercuten en la salud, no hay pruebas de peligros graves que puedan hacer que la tecnología caiga en desuso. - 52 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 53 - - 54 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 55 - - 56 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 57 - - 58 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 59 - - 60 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 61 - - 68 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 69 - - 70 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 71 - - 72 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 73 - - 74 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 75 - - 76 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 77 - - 84 - Control de un módulo Bluetooth mediante microcontrolador Anexo I. Guía rápida de MPLAB - 85 -