Kit RFID
Nombre: Kit RFID Fecha: Noviembre 2008 Versión: 1.00 Autor: Mikel Etxebarria Empresa: Ingeniería de Microsistemas Programados S.L. (www.microcontroladores.com)
1.- DESCRIPCION Este Kit nos introduce en el mundo de la IDentificación por Radio Frecuencia (RFID) de la mano del módulo lector P28140 de nuestra representada Parallax. Existen diferentes tipos de lectores RFID pero el funcionamiento básico es muy similar en todos ellos. A través de una antena se emite una señal de una determinada frecuencia que genera a su alrededor un campo magnético al que acercamos el elemento a identificar o Tag. Los Tag pueden tener diversas formas físicas (tarjetas, llaveros, etiquetas adhesivas, etc..), pero todo ellos, como mínimo, tienen un número de identificación (Tag_ID) único. Cuando acercamos un Tag al lector RFID, este lo lee, lo decodifica y nos devuelve el mencionado número de identificación Tag_ID. En el sistema que aquí vamos a emplear, el Tag_ID está formado por una cadena de 12 caracteres ASCII. El primero y el último son de cabecera y corresponden a los caracteres 0x0A y 0x0D (avance de línea y retorno de carro) respectivamente. Los 10 restantes forman el Tag_ID propiamente dicho y representan 10 dígitos hexadecimales expresados en ASCII. Así pues es posible disponer de hasta 240 Tags diferentes (en torno al billón). Las aplicaciones son numerosas: control de accesos, de stocks, identificación, logística, industrial, etc.. En este kit ponemos a tu disposición todo lo necesario para empezar a trabajar con RFID: el lector RFID, 4 Tags diferentes y la electrónica necesaria para su control. Ver la figura 1. También proporcionamos las funciones básicas de gestión así como programas de ejemplo de aplicación. Las posibilidades son casi ilimitadas, todo queda en las manos e imaginación del usuario.
Figura 1. El kit de demostración RFID
Kit RFID -1
Kit RFID
El montaje de todos los componentes se realiza sobre la tarjeta de prototipos PIC’PROJECT. Estos se cablean mediante hilo “wire wrap” por la parte inferior de la misma. También se muestra la conexión con la tarjeta PIC’CONTROL. Todas las conexiones realizadas se muestran en el esquema eléctrico que se adjunta al final de esta documentación.
2.- MATERIALES NECESARIOS Todos los componentes necesarios para implementar los ejemplos propuestos se puede adquirir en un lote completo o kit. Para aquellos usuarios que ya dispongan de parte de estos componentes, también se pueden adquirir sólo los que se precisen. A continuación se presenta la lista de materiales necesarios para implementar este proyecto. En cada componente se indica la referencia empleada por Ingeniería de Microsistemas Programados S.L. para su adquisición por separado. Sugerimos visitar las secciones de Instrumentos, Herramientas y Bricolage de nuestra página web. En ellas se podrá encontrar aquellas herramientas o complementos necesarios para el montaje electrónico. KIT RFID REFERENCIA PIC’CONTROL
CANTIDAD 1
PIC’PROJECT
1
06LCD2X16 P28140 P28141 P28161 P28148 P28142 05L3V ZUMB1 30R1C331 30R1C103 34PT10V103 54BASE361PT7 54TIRA361D 54TIRA361CD CABLE CC3015X ESTAÑOTUBO
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
DESCRIPCION Tarjeta base de control dotada de serie de un PIC18F4550 y oscilador de 4MHz Tarjeta de prototipos para el montaje de componentes, que se conecta directamente a PIC’CONTROL mediante la cinta de cable plano incluída. Pantalla LCD de 2 x 16 caracteres Lector RFID de Parallax Tag en forma de tarjeta rectangular de 54 x 85 mm Tag en forma de llavero Tag en forma de etiqueta circular adhesiva Tag circular de 50mm Led verde de 3 mm Zumbador piezo eléctrico Resistencia de carbón de 330 ohmios Resistencia de carbón de 10K ohmios Potenciómetro horizontal de ajuste de 10K Tira hembra 36p altura 7 mm Tira postes macho dorada Tira de postes macho codo dorada Rollo de 10 m cable rígido de conexiones de 0.6 mm Rollo de 15 m de hilo de rapinar de 0.25mm (30AWG) Estaño en tubo (20 gr)
NOTA 1: Se puede adquirir el kit o lote completo de materiales, o bien sólo los componentes que se necesiten según las referencias de los mismos. NOTA 2: No está incluido el sistema de alimentación. Esta puede ser mediante pilas y/o baterías o bien mediante alimentador de 9-12VDC, a voluntad del usuario y alimenta a la tarjeta PIC’Control. De aquí, a través del PIC’Bus, se alimenta también a la tarjeta PIC’Project y a los componentes contenidos en ella.
Kit RFID -2
Kit RFID
3.- MONTAJE A continuación se indican los pasos mas elementales para implementar el presente proyecto. 1.-
Cortar, de la tira de pines macho 54TIRA361D, un trozo con 14 pines que se soldarán a la pantalla LCD tal y como se muestra en la figura 2. Procurar que la tira quede perfectamente perpendicular a la pantalla LCD.
Figura 2. Cortar una tira de 14 pines para soldarla en el LCD
2.-
Cortar, de la tira de pines hembra 54BASE361PT7, un trozo de 4 pines y otros tantos de la tira macho acodada 54TIRA361D. Ambos trozos se sueldan entre sí formando un ángulo recto tal y como se muestra en la figura 3. Los pines hembra se sueldan sobre los pines acodados en sus extremos cortos .
Figura 3. Soldar un trozo de 4 pines hembra sobre otro de 4 pines macho acodados
3.-
Ambos trozos de 4 pines soldados en ángulo recto, en el paso anterior, se sueldan ahora sobre la tarjeta PIC’PROJECT. Procurar posicionarlo en la misma ubicación que la mostrada en la figura 4. Los extremos largos de los pines acodados se insertan sobre la tarjeta y, una vez soldados, se corta el sobrante. En la figura también se aprecia la colocación de una cartulina o adhesivo aislante justo debajo de los pines hembra.
Figura 4. Colocación de las tiras de 4 pines
4.-
Tal y como se muestra en la figura 5, procedemos a distribuir, colocar y soldar el resto de componentes procurando que queden distribuidos en la misma posición que la mostrada en la fotografía.
Kit RFID -3
Kit RFID
Figura 5. Colocación del resto de los componentes a) b) c) d) 5.-
Cortar, de la tira de pines hembra 54BASE361PT7, un trozo de 14 pines que se soldará en PIC’Project, en la misma posición que se muestra en la imagen. Sobre esta tira se insertará mas adelante la pantalla LCD a la que se le soldó, en el paso 1, una tira macho de otros tantos pines. Colocar y soldar en la misma posición el potenciómetro de 10K 34PT10V103 (P1) que se empleará para el ajuste de contraste de la pantalla LCD. Soldar la resistencia 30R1C331 de 330 ohmios (R1) y el diodo led verde D1. Asegurarse de que el cátodo de este último se orienta hacia abajo, hacia la línea GND de la tarjeta PIC’PROJECT. Colocar la resistencia 30R1C103 de 10K ohmios (R2) y el zumbador piezo eléctrico LS1. Asegurarse de que la patilla + de este último queda orientada hacia la resistencia. Al final del presente documento se muestra el esquema eléctrico del montaje. Hacer las conexiones siguiéndolo fielmente. Se recomienda emplear cable de 0.6 mm (ref. CABLE) para las conexiones de alimentación. El resto de conexiones se puede realizar con nuestro hilo de rapinar CC3015X de 0.25 mm (30AWG). Prestar atención a los cortocircuitos entre las distintas patillas. Ver la figura 6
Figura 6. Realización del conexionado según el esquema adjunto
Kit RFID -4
Kit RFID
6.-
La pantalla LCD se conecta sobre la tira de 14 pines que se soldaron sobre la tarjeta PIC’Project en el paso 4 (a). Ver la figura 7.
Figura 7. Colocación de la pantalla LCD
7.-
Conectamos ahora el módulo lector RFID tal y como se muestra en la figura 8. Sus cuatro pines macho de conexión se insertan sobre los 4 pines hembra que colocamos en el paso 3.
Figura 8. Conexión del motor EMG30
8.-
Por último conectamos, mediante la cinta de cable plano, tarjeta PIC’Project con la tarjeta PIC’Control tal y como se mostró en la figura 1. Mediante separadores también podemos apilar ambas tarjetas para obtener un conjunto mas compacto y manejable según se muestra en la figura 9.
Figura 9. Apilando ambas tarjetas
9.-
Grabar el PIC con el programa ejemplo deseado. Para la grabación se puede emplear: ●
Un grabador externo (p.e. PIC’BURNER). Requiere extraer el PIC de la tarjeta PIC’CONTROL, grabarlo y volverlo a insertar.
●
Un grabador externo dotado de salida ICSP (p.e. PIC’BURNER + CABLERJ11). En este caso no es necesario extraer el PIC. Basta con unir el grabador PIC’BURNER con la tarjeta PIC’CONTROL mediante
Kit RFID -5
Kit RFID
el cable CABLERJ11. Es aconsejable no tener conectado ningún periférico en PIC’CONTROL durante el proceso de grabación. ●
Emplear el grabador GTP-USB+. Esta es la opción óptima. Este grabador se conecta, por un lado, con un puerto USB del PC. Por otro lado dispone de un interface ICSP que se conecta directamente con PIC’Control mediante el conecto RJ11, tal y como se puede apreciar en la figura 10.
Figura 10. Grabación desde el GTP-USB+
Kit RFID -6
Kit RFID
4.- EJEMPLOS
Con este kit proporcionamos una serie de ejemplos que permiten experimentar con las diferentes posibilidades del sistema RFID de Parallax. También proponemos algún ejemplo de aplicación práctica relacionada con la identificación y el control de accesos. La mayor parte de estos ejemplos están resueltos tanto en el ensamblador MPASMWIN de Microchip como en lenguaje C de la firma CCS (PCWH 4.023). Proporcionamos todos los programas fuente debidamente comentados, los ejecutables correspondientes listos para grabar y todos los ficheros de cabecera y/o de includes. 4.1 LCD_TEST Programa de demostración para comprobar el correcto funcionamiento de la pantalla LCD.
Programas fuente:
LCD_TEST.ASM y LCD_TEST.C
Programas ejecutables: LCD_TEST.HEX Descripción: El ejemplo está pensado para hacer una rápida comprobación del funcionamiento de la pantalla LCD. La pantalla está conectada mediante un interface de 4 bits a la puerta D del controlador. Sobre ella aparece el mensaje de “Microsystems Engineering” de forma intermitente, como se muestra en la figura 11. Mediante el potenciómetro P1 de 10K podemos ajustar el contraste de la pantalla.
Figura 11. El ejemplo LCD_TEST
4.2 RFID_TEST Programa de demostración para comprobar el correcto funcionamiento del lector RFID
Programas Fuente:
RFID_TEST.ASM y RFID_TEST.C
Programas ejecutables:
RFID_TEST.HEX
Descripción: El ejemplo está pensado para tener una primera toma de contacto con el lector RFID de Parallax. En la pantalla LCD se visualiza el número de identificación del tag que se acerque al lector (Tag_ID) y el piezo conectado a RB1 emitirá un “beep”. Recordemos que todos los Tags tienen un número único de 10 dígitos mas dos caracteres de cabecera; 0x0A al principio y 0x0D al final. Cabe destacar que la comunicación entre el controlador y el lector es vía serie y las rutinas de recepción se han realizado por software. De esta forma el USART propio integrado en el PIC18F4550 queda libre para otras aplicaciones.
Figura 12. Control de vueltas del motor EMG30
Kit RFID -7
Kit RFID
4.3 TAG_GESTION Programa de ejemplo para gestionar una pequeña base de datos sobre la memoria EEPROM de datos del PIC16F4550.
Programas Fuente:
TAG_GESTION.ASM y TAG_GESTION.C
Programas ejecutables:
TAG_GESTION.HEX
Descripción: Este ejemplo trata de crear una base de datos que permite dar de alta o de baja a los diferentes tags leídos por el lector RFID de Parallax, así como asociar a cada uno de ellos una determinada información. Para ello empleamos el USART integrado en los dispositivos PIC18F4550 para realizar una comunicación serie con un PC que actuará como terminal de datos para el interface con el usuario. Basta instalar en el PC una programa de comunicaciones como puede ser el Hyperterminal de Windows. La comunicación se realiza a 9600 baudios, con 8 bits de datos, 1 de stop y sin paridad. La base de datos se almacena en la propia memoria EEPROM de datos del PIC18F4550. Se trata de una memoria no volátil pero de capacidad muy reducida; tal sólo de 256 bytes. Es por ello que animamos a todos los interesados a realizar las oportunas modificaciones tanto hardware como software para añadir y gestionar una memoria externa que permita el almacenamiento de una mayor cantidad de datos. En la base de datos se va a crear una serie de registros; por defecto 4 en los ejemplos propuestos. Cada registro a su vez tiene que almacenar los 12 bytes propios del Tag_ID así como la información asociada a cada uno. Por defecto nosotros hemos establecido una información asociada de 16 bytes. De esta manera tenemos 4 registros que ocuparán 28 bytes cada uno (12+16), por lo que la base de datos consumirá como máximo 112 bytes de la memoria EEPROM de datos (28x4). Tanto el número de registros como el número de bytes de información de cada tag se puede modificar en el programa fuente mediante las constantes “N_Reg” y “Tag_Bytes”. Es posible por tanto aumentar o disminuir ambas magnitudes teniendo como límite la memoria total disponible que, en nuestro caso, es de 256 bytes. Una vez que grabamos este ejemplo de aplicación sobre el PIC y conectamos el PC con un software de comunicaciones, nos irán apareciendo secuencialmente, sobre la pantalla del PC, los mensajes y acciones a realizar: 1.-
Pulsar “c” para continuar El sistema espera a que pulsemos la tecla c. Mientras tanto el sistema está en espera, el lector desactivado y el consumo reducido por tanto a la mínima expresión. Al teclear comienza el ciclo.
2.-
Acercar el Tag al sensor El lector se activa y queda a la espera de que se detecte la presencia de un tag. Cuando éste haya sido detectado y leído, el lector se desactiva y se reduce el consumo.
3.-
Pulsar “a” para dar de alta o “b” para dar de baja
Si se pulsa “a “..... 4.-
Dar de alta. Máximo 016 caracteres seguidos de ENTER Nos está pidiendo que tecleemos como máximo los 16 bytes de información que vamos a asociar al Tag recién leído.
5.-
HECHO!! Tag dado de alta El número de identificación del tag recién leído (Tag_ID) así como los 16 bytes de información asociados al mismo, se han grabado en la base de datos, en la memoria EEPROM del PIC18F4550.
Kit RFID -8
Kit RFID
Si se pulsa “b” ... 6.-
HECHO!! Tag dado de baja El Tag recién leído se da de baja y se borra de la base de datos, de la memoria EEPROM del PIC18F4550
Durante el proceso de dar de alta o de baja a un Tag se pueden producir los siguientes errores con sus correspondientes mensajes: 1.-
ERROR!! El Tag esta repetido Ocurre cuando se trate de dar de alta a un Tag ya existente en la base de datos. Recordemos que los Tags tienen un único número de identificación (Tag_ID)
2.-
ERROR!! Este tag no existe Ocurre cuando se trata de borra un Tag que no está registrado en la base de datos
3.-
ERROR!! No ha memoria suficiente Ocurre cuando se trata de dar de alta a un nuevo Tag y no hay espacio suficiente en la base de datos para almacenarlo.
Durante las pruebas realizas en Ingeniería de Microsistemas Programados hemos creado una base de datos con los cuatro tags que proponemos en el presente Kit. Sirva como ejemplo al usuario:
Ref. comercial del TAG
BASE DATOS EN LA MEMORIA EEPROM TAG_ID (12 bytes)
INFO. ASOCIADA (16 bytes)
P28141
0x0A, X X X X X X X X X X, 0XD
“Tag de tarjeta”
P28142
0x0A, X X X X X X X X X X, 0XD
“Tag circular”
P28161
0x0A, X X X X X X X X X X, 0XD
“Tag de llavero”
P28148
0x0A, X X X X X X X X X X, 0XD
“Tag adhesivo”
4.4 TAG_MODEL Ejemplo de demostración para la identificación de un modelo tag
Programas Fuente:
TAG_MODEL.ASM y TAG_MODEL.C
Programas Ejecutables:
TAG_MODEL.HEX
Descripción: Esta aplicación es una consecuencia del ejemplo de aplicación anterior. En aquel se creó una base de datos formada por cuatro registros. Cada registro estaba compuesto del número de identificación de una Tag (Tag_ID) y una información asociada al mismo. Sirva como modelo la base de datos que presentamos en la tabla anterior. Este ejemplo trata de ser una aplicación autónoma e independiente del PC, suponiendo que la base de datos ya ha sido anteriormente creada. Consiste en leer un Tag, localizarlo e identificarlo en la base de datos y visualizar sobre la pantalla LCD la información asociada al mismo.
Kit RFID -9
Kit RFID
En la figura 13 se muestra la identificación de un tag tipo llavero cuando se aproxima al lector RFID. Suponiendo que la base de datos es la misma que se sugirió en el ejemplo anterior, podemos probar con cualquiera de los tags disponibles para ver su correcta identificación.
Figura 13. Identificación de un tag
¡ ATENCION ! Cada vez que, con el software de grabación WinPIC800 se abre un nuevo fichero HEX para grabar un PIC, el buffer de la memoria EEPROM se llena por defecto con el valor 0xFF. Si procedemos a grabar el dispositivo en estas condiciones, la memoria EEPROM que contenía la base de datos de los tags quedará borrada. Para evitarlo proceder como sigue: 1.-
Grabamos y ejecutamos el ejemplo TAG_GESTION. Creamos la base de datos tal y como se explicó anteriormente.
2.-
Ahora queremos grabar el presente ejemplo TAG_MODEL. Abrimos el fichero HEX correspondiente.
3.-
Antes de grabar, procedemos a llenar el buffer de la EEPROM con la base de datos ya existente. Para ello leemos SOLO la EEPROM del PIC. Pulsar desde WinPIC800 las teclas Ctrl + Alt +D. En el buffer de memoria “Código” del WinPIC800 tenemos el programa actual a grabar. En el buffer de “Datos” del WinPIC800 tenemos la base de datos creada anteriormente.
4.-
Procedemos ahora a grabar el dispositivo completo.
4.5 ACCESOS Ejemplo básico de control de accesos Programas Fuente:
ACCESOS.ASM y ACCESOS.C
Programas Ejecutables:
ACCESOS.HEX
Descripción: Este ejemplo pretende ser una aplicación práctica para la identificación y control de acceso mediante
el empleo de sistemas RFID de identificación mediante Tags.
Kit RFID -10
Kit RFID
En primer lugar, vamos a crear una base de datos mediante la ejecución del ejemplo TAG_GESTION que se explicó anteriormente. La base consta de 4 registros. Cada registro contiene 12 bytes propios de cada tag (Tag_ID), 1 byte con el carácter “a” o “d” para determinar si hay acceso o está denegado respectivamente y 15 bytes de información con la identificación del usuario. La siguiente tabla resume la base de datos que hemos creado en Ingeniería de Microsistemas Programados:
BASE DATOS EN LA MEMORIA EEPROM Ref. comercial del TAG
TAG_ID (12 bytes)
Byte de control de acceso
Identificación (15 bytes)
P28141
0x0A, X X X X X X X X X X, 0XD
“a”
“Mikel Etxeba.”
P28142
0x0A, X X X X X X X X X X, 0XD
“d”
“Luis Gomez”
P28161
0x0A, X X X X X X X X X X, 0XD
“a”
“Jon Garay”
P28148
0x0A, X X X X X X X X X X, 0XD
“d”
“Aitor Lopez”
Cada vez que un usuario se acerque con su tag al lector RFID, el sistema localizará la identificación del Tag (Tag_ID) en la base de datos. La pantalla LCD indicará si dicho tag es o no reconocido. En caso afirmativo mostrará el nombre o identificación del usuario y si tiene permitido o denegado el acceso. En caso de que el acceso sea permitido, la salida RB0 que pilota un diodo led, se activará durante 2 segundos para simular la apertura de una puerta.
¡ ATENCION ! Cada vez que, con el software de grabación WinPIC800 se abre un nuevo fichero HEX para grabar un PIC, el buffer de la memoria EEPROM se llena por defecto con el valor 0xFF. Si procedemos a grabar el dispositivo en estas condiciones, la memoria EEPROM que contenía la base de datos de los tags quedará borrada. Para evitarlo proceder como sigue: 1.-
Grabamos y ejecutamos el ejemplo TAG_GESTION. Creamos la base de datos tal y como se explicó anteriormente.
2.-
Ahora queremos grabar el presente ejemplo ACCESOS. Abrimos el fichero HEX correspondiente.
3.-
Antes de grabar, procedemos a llenar el buffer de la EEPROM con la base de datos ya existente. Para ello leemos SOLO la EEPROM del PIC. Pulsar desde WinPIC800 las teclas Ctrl + Alt +D. En el buffer de memoria “Código” del WinPIC800 tenemos el programa actual a grabar y en el buffer de “Datos” del WinPIC800 tenemos la base de datos creada anteriormente.
4.-
Procedemos ahora a grabar el dispositivo completo.
Kit RFID -11
Kit RFID
Kit RFID -12
8
7
6
D
5
4
2
ParallaxRFID
U2
D1 Parallax RFID #28140
R1 RB0 330
LED VERDE
SOUT
EN
GND 4
3
RD3 RD2 RD1 RD0
1
P1 10K
2
VCC
D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14
RS R/W E 4 5 6
1 2 3
GND VCC VLC
2X16 +5Vcc
1
D
U1
LCD2x16
3
RB1 R2 10K
RA0 RD4 RD5 RD6
C
2
RB0
LS1
C
1
+5Vcc +5Vcc PIEZO
Tarjeta: PIC'PROJECTS
J1
PICBUS-2
B
B
MCLR/RE3 RA0 RA1 RA2 RA3 RA4 RA5 RE0 +5Vcc RE1 RE2 CLKIN/RA7 CLKOUT/RA6 RC0 RC1 RC2 RC3/SCL RD0 RD1
A
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
RB7/PGD RB6/PGC RB5 RB4 RB3 RB2 +5Vcc RB1 RB0 RD7 RD6 RD5 RD4 RC7/RX RC6/TX RC5 RC4/SDA RD3 RD2
Ingeniería de Microsistemas Programados S.L. Ald. Mazarredo, 47 -1º; 48009 Bilbao - Bizkaia Tlfno./Fax: 944230651; www.microcontroladores.com
Tarjeta: PIC'CONTROL
A4 8
7
6
Parallax RFID #28140
Nombre: Tamaño
5
4
3
A
Fecha:
Revisión
Nº de hoja
A
1 2
de
Firma: 1 1