HOME

PRODUCTOS

PROYECTOS

TUTORIALES

VIDEOS

FREEWARE

PROGRAMAS

FUNCIONES C

EMPRESA

ENGLISH

                   

RFID-UART, con funciones de lectura/escritura, para el sistema Bolt 18F2550, con enlace bluetooth y visualización de los datos en teléfono móvil.

Autor: Moisés Meléndez Reyes

Figura 1: Pruebas básicas de lectura del número de serie con el RFID-UART y el sistema Bolt18F2550, utilizando como display un LCD.

 

 

Figura 2: Pruebas al módulo RFID-UART, con un puerto Bluetooth y teléfono móvil para la visualización de los datos recibidos.

 

Figura 3: Pruebas al módulo RFID-UART, utilizando una computadora PC y un cable USB-Serial para la visualización de los datos recibidos.

 

ANTECEDENTES:

En un proyecto previo, se describió la forma de conectar un módulo RFID con interfaz SPI, al sistema microcontrolador Bolt 18F2550, con posibilidad de realizar lectura ó escritura de datos en el tag ISO-14443A utilizado.

Si bien la interfaz SPI es la solución más económica para el manejo de RFID, el manejo del protocolo SPI y de los comandos para el módulo RFID, representa trabajo extra considerable para el programador del firmware del microcontrolador. Además, los módulos RFID-MF522 y RFID-RC522 utilizados operan a un voltaje de 3.3 volts, requiriendo un regulador de voltaje adicional en el circuito.

Una solución mucho más simple, aunque de más costo, es utilizar un RFID con interfaz UART, lo cual simplifica mucho el trabajo de programación del firmware, ya que los comandos UART disponibles son muy sencillos de utilizar. Por ejemplo, es posible desde el microcontrolador solicitar el número de serie del tag ISO-14443A únicamente enviando el comando '01' a través del puerto serial. Y para la comodidad del usuario, el módulo opera con un voltaje de 5v.

La empresa tiene a la venta 1 dispositivo que pueden utilizarse en este proyecto: RFID-UART fabricado por Elechouse

DESCRIPCIÓN GENERAL DEL PROYECTO:

En este proyecto, utilizando un teléfono Samsung Galaxy como receptor y visualizador de los datos, se describe la forma de conectar un RFID-UART de lectura-escritura, con frecuencia de operación de 13.56 Mhz e interfaz serial, a un sistema Bolt 18F2550.

También se muestra la posibilidad de enviar los datos desde el microcontrolador Bolt a través de su puerto serial y -utilizando un cable USB-Serial- observar estos datos en una PC Windows 8 ó 7 por medio del software Hyperterminal, operando a 9600 bps, como se muestra en la figura 3.

El sistema puede emplearse en las siguientes aplicaciones: control de acceso, control de asistencia, transporte público, estacionamientos de vehículos, sistemas de pago electrónico, control de inventarios, credenciales en escuelas y clubs deportivos, entre muchas otras.

LOS TAGS ISO-14443A S50:

El dispositivo RFID-UART recibe información de tags del tipo ISO-14443A. Estos tags se venden en presentación tarjeta ó bien de llavero y contienen una EEPROM con capacidad de 1 Kb de espacio para almacenamiento de datos. En este proyecto se realizaron pruebas con ambos tipos. Puede bajar la documentación completa de los tags ISO-14443A aquí:

CARD-TAG-MF1S503.pdf

APPLICATION-NOTE-ISO-14443A-S50.pdf

EL ENLACE BLUETOOTH:

Para establecer la comunicación entre el sistema microcontrolador Bolt y el móvil, se emplea un módulo bluetooth HC-06 con puerto serial, el cual permite la trasmisión de los datos RFID recibidos por el Bolt hacia el teléfono móvil en forma inalámbrica. Este enlace, que es de Clase 2 en el estándar Bluetooth,  puede funcionar hasta una distancia de 10 metros.

En el teléfono móvil, debe ejecutarse la aplicación denominado BlueTerm, la cual es un emulador de terminal que permite la visualización de los datos ASCII enviados por el sistema Bolt.

Cómo detectar y vincular módulo Bluetooth HC-06 desde un teléfono móvil Samsung

 

Para configurar correctamente la funcionalidad Bluetooth en su móvil, así como el programa BlueTerm, por favor vaya a este link

Se desarrollaron varias funciones de prueba, tanto para la lectura del tag como para la escritura de nuevos datos.

En particular, se desarrolló una función de prueba muy simple que permite observar el número de serie del tag en el LCD del sistema Bolt y visualizando los datos en su LCD (ver Figura 1).

Más adelante se describen con detalle las funciones disponibles para el módulo RFID-UART.

 

CONEXIÓN DEL SISTEMA BOLT AL MÓDULO RFID-UART.

Realice la conexión como se muestra en la foto a la izquierda. Se utilizarán 4 pines del puerto auxiliar para realizar la comunicación UART.

Importante: los dip switches SW4 y SW3 deben estar en la posición OFF para evitar que interfieran con las señales del UART.

Conecte el módulo RFID-UART a través de los 4 cables dupont que se incluyen en el kit.

Observe como RX ingresa al pin RC1 del sistema Bolt y TX al pin RC2. Ambas señales serán trasmitidas y recibidas a través de funciones de 'bit-banging', ésto es, realizando por programación el muestreo de cada uno de los bits de la cadena de datos, emulando a un puerto serial asíncrono estándar RS232, a 9600 bps.

Nota: en este proyecto, no se utiliza el puerto serial RS232 de Bolt para su conexión con el módulo RFID, porque será utilizado para la interfaz Bluetooth para la comunicación con el teléfono móvil. Por otro lado, el puerto para el LCD, será utilizado para mostrar datos.

 

FUNCIONES DISPONIBLES EN EL FIRMWARE DEL MICROCONTROLADOR BOLT 18F2550

Para realizar pruebas completas al sistema, debe ensamblarse el equipo de pruebas como en las Figuras 1 y 2, mostradas en la parte de arriba de esta página. Su funcionamiento requiere que el firmware adecuado haya sido previamente cargado al sistema Bolt, siguiendo las instrucciones que se dan enseguida.

La carpeta completa del proyecto MPLAB-IDE, con el compilador C18 es la siguiente:

RFIDmoduleC18swserie.zip

En este programa se proporcionan 7 funciones básicas para el manejo del módulo RFID-UART. A partir de estas funciones es que el usuario podrá por un lado realizar las pruebas y posteriormente implementar su propia aplicación. Las funciones son las siguientes:

FUNCIÓN

COMENTARIOS

showSerialNumber( ); Muestra en el LCD y en el puerto serial RS232 el número de serie del tag.
detectCard( ); Muestra en el LCD y en el puerto serial RS232 el status de la detección de la tarjeta.
readDataHex( ); Muestra en el puerto serial RS232 la información del tag, en códigos hexadecimales.
readDataAscii( ); Muestra en el puerto serial RS232 la información del tag, en códigos ASCII.
clearTAG( ); Borra toda la información en la EEPROM del tag.
writeDumpTAG( ); Escribe toda la EEPROM del tag con caracteres ASCII en orden alfabético y mayúsculas. Muestra el status en el puerto serial RS232.
writeBlockTAG( ); Escribe en el tag la información previamente proporcionada por el usuario y envía al puerto RS232 el status (solamente envía los bloques que contienen información).

Para realizar la prueba de cada función, primeramente debe abrirse el proyecto en MPLAB-IDE (archivo RFIDmoduleC18swserie.mcp) y una vez abierta la ventana de MPLAB, en el programa fuente (RFIDmoduleC18swserie.c), localizar las 7 funciones listadas en la tabla, como se muestra en la figura.

Deben quitarse los símbolos de '//' (que indican comentario), únicamente de la función que se desea probar, por ejemplo, en la figura se probará la función showSerialNumber( ).

Ahora, debe compilar el programa ( >Project>Built All ) y cargar el archivo resultante RFIDmoduleC18swserie.hex en su sistema Bolt. Este archivo se encuentra en el subdirectorio de nombre 'Release' en la carpeta del proyecto.

 

En cada prueba, debe acercarse el tag a una distancia aproximada de 5 a 10 cms. del dispositivo RFID-UART y permanecer en esa posición hasta observar los resultados en el display LCD ó en el teléfono móvil.

Importante: los dip switches SW4 y SW3 deben estar en la posición OFF para evitar que interfieran con las señales del UART.

ESCRITURA DE DATOS NUEVOS EN EL TAG:

Esta función permite la escritura de nuevos datos en el tag y requiere que el usuario los escriba directamente en el programa y recompile. En la ventana abajo se muestra la manera de hacerlo. El usuario debe primeramente borrar los símbolos '//' de comentario solamente a la función writeBlockTag( ). Posteriormente, debe escribir el número de bloque (en el ejemplo es el 22) y el texto (en el ejemplo es 'Hello how are u!'). Ahora debe recompilar el programa y cargar el archivo .hex en la tarjeta Bolt. Al acercar el tag al RFID, estos datos se escribirán en el bloque solicitado.

- El programa solamente permite escribir en un bloque a la vez. Si usted desea escribir información en varios bloques, deberá repetir el procedimiento tantas veces como sea necesario.

- Para escribir información totalmente nueva en el tag, primeramente borre toda la EEPROM mediante la función clearTAG( ).

EL PROGRAMA BLUETERM PARA EL TELEFONO MOVIL:

Para visualizar los datos leídos del tag a través del RFID-UART, el teléfono móvil debe ejecutar la aplicación denominada 'Blueterm', compatible con el sistema operativo Android (equivalente al software 'Hyperterminal' para Windows), y la cual es una aplicación de emulador de terminal, que permite enviar ó recibir cadenas de caracteres en código ASCII, a través del enlace Bluetooth ya incorporado en el móvil. Este programa es gratuito y puede realizarse directamente su download al teléfono móvil desde el sitio de internet Google Play.

OTROS LINKS RECOMENDADOS:

Para configurar correctamente la funcionalidad Bluetooth en su móvil, así como el programa BlueTerm, por favor vaya a este link

Consulte aquí un tutorial de los principios de funcionamiento de los sistemas RFID.

Vea aquí un proyecto para conectar el módulo RC522 RFID-SPI al sistema Bolt 18F2550

Implemente un sistema RFID de control de asistencia escolar para su clase.

Consulte aquí un tutorial sobre la interfaz SPI de Microchip

Tutorial del estándar de comunicaciones SPI

Consulte aquí un tutorial sobre el funcionamiento de los dispositivos Bluetooth.

Consulte aquí un tutorial del funcionamiento de los tags ISO-14443A RFID