4.1 Sistema de comunicación
4.1.3 Comunicación
4.1.3.1 Configuración del microcontrolador
Una vez que definimos el protocolo necesario, el siguiente paso fue configurar al microcontrolador para que este pueda trabajar. Para esto, se siguieron los siguientes pasos:
1.- Configuramos los bits UCMODE1=1 y UCMODE0=0, con estos dos se selecciona el formato multiprocesador por bit dirección.
2.- Configuramos la tasa de bauds a la cual se desea transmitir. Esto se realiza mediante los bits UCA0BRO y UCA0BR1. (Es importante que tanto el microcontrolador como el módulo XBee conectado a este, tenga la misma razón de bauds para que la comunicación se pueda llevar a cabo).
3.- Configuramos el bit UCTXADDR; si este bit es igual a 1 el carácter recibido será una dirección y si este bit es igual a cero, el carácter recibido será un carácter dato.
4.- Habilitamos la bandera de interrupción del receptor, con esto cada vez que la bandera este en uno, se podrá recibir un nuevo carácter.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Página 108 Al realizar la primer prueba de comunicación, configuramos dos microcontroladores de la forma que se mostro anteriormente. La comunicación fue tipo half-duplex y utilizamos leds para indicar que dato se está recibiendo en cada uno de los micros. Realizamos la transferencia de datos conectando la terminal UART-Tx (transmisión) del microcontrolador 1 con la terminal UART-Rx (recepción) y viceversa. Los datos fueron enviados a través del dip-switch.
Figura 4.11: Comunicación entre dos microcontroladores a través del puerto UART
La transmisión de datos se logro que fuera correcta, por lo tanto, los microcontroladores estaban correctamente configurados. Nuestro siguiente paso fue realizar la comunicación, pero usando al aire como medio de transmisión, a través de los módulos XBee.
Configuramos los módulos XBee previamente para que fuera posible la comunicación entre ellos, se procedió a conectar cada uno a su respectivo microcontrolador. La terminal Rx del módulo XBee se conecto a la terminal UART-Rx del microcontrolador, así como la terminal Tx del módulo XBee con la terminal UART-TX del microcontrolador. Esta vez la comunicación fue en un solo sentido, con datos previamente cargados en uno de los microcontroladores. El
Escuela Superior de Ingeniería Mecánica y Eléctrica
Página 109 inicio de la comunicación lo simulamos con push botón. Comprobando que la comunicación se concreto correctamente.
Figura 4.12: Comunicación entre los micro de manera inalámbrica
Los pasos descritos fueron los que seguimos para configurar al microcontrolador con el formato multiprocesador por bit dirección, para obtener la comunicación con el módulo XBee. Sin embargo, la comunicación entre la computadora y un microcontrolador fue un poco distinta.
Al transmitir un dato de la computadora hacia el microcontrolador, solo tenemos la opción de transmitirlos en forma hexadecimal o en código ASCII por parte del programa X-CTU que controla al módulo XBee, con lo cual era imposible crear una trama que tuviera el mismo formato de trama que la del el microcontrolador. A
Escuela Superior de Ingeniería Mecánica y Eléctrica
Página 110 través del módulo XBee solo se mandaba el carácter acompañado por un bit de inicio y un bit de paro, haciendo falta el bit que indicara si este es carácter dirección o carácter dato, para que fuera compatible con el que utiliza la formato multiprocesador por bit dirección del microcontrolador.
El microcontrolador esperaría que el primer carácter fuera una dirección y buscaría leer el bit que confirmara esta suposición. Al no leer una dirección como primer dato, el microcontrolador no activaría la bandera de recepción y ningún dato sería recibido. Así que la idea fue utilizar una cadena de unos como primer carácter para que el microcontrolador interpretara a esta cadena de unos como una dirección (ya que dentro de esa cadena de unos, el microcontrolador interpretaría a uno de ellos como el bit direcciones =1). Después de recibir esta cadena de unos (FF en hexadecimal), cualquier dato recibido fue interpretado como un uno. A continuación se describe, los pasos para mandar un carácter a partir del programa X-CTU y este sea recibido y procesado en el microcontrolador es el siguiente:
1.- En el programa seleccionar la pestaña “Terminal” y aparecerá una pantalla como se muestra en la figura 4.1.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Página 111 2.- Seleccionamos la opción “Assamble Packet”, donde notaremos que tenemos dos opciones, código ASCII y HEX (hexadecimal), seleccionamos HEX. En esta pantalla es donde nosotros escribimos los datos que queremos que sean enviados en hexadecimal.
Figura 4.14: Vista del programa X-CTU para enviar paquetes
3.- El primer carácter que enviamos para iniciar la Tx es 0xFF como preámbulo, para que el microcontrolador sea capaz de recibir datos. Basta con enviar un solo carácter para que el microcontrolador reconozca los siguientes como datos. Al
escribir el carácter o cadena de carácter deseados oprimimos “Send Data”, para
que este sea enviado.
Escuela Superior de Ingeniería Mecánica y Eléctrica
Página 112 4.- Después de que fue enviado el carácter 0xFF, será posible enviar cualquier carácter para que sea interpretado como dato. Cabe señalar que esto solo sirve para una comunicación punto a punto donde no se requiere establecer una dirección del dispositivo o para una comunicación tipo broadcast donde todos reciben la misma información.
Figura 4.16: Comunicación entre la computadora y el micro a través de los módulos XBee.