Lector RFID basado en RC522

Analizamos un lector RFID (Identificación por Radio Frecuencia) que es un dispositivo diseñado para leer etiquetas (tags) a distancia de forma inalámbrica. Este kit en concreto, además del lector/grabador MFRC522, incluye dos tags (una tarjeta y un llavero) que funcionan a 13.56 MHz.

Los “Tags” pueden tener diversas formas (tarjetas, llaveros, etiquetas,..) en esencia llevan un chip y una antena, y se alimenta pasivamente del lector-grabador cuando está situado a pocos centímetros de él.  Que no necesiten baterías los hacen ideales para diversas aplicaciones como son control de accesos, alarmas, tarjetas personales, etc.
Cada tarjeta lleva un ID identificativo que no se puede modificar y una memoria reescribible de 1 Kb

El módulo RFID-RC522 está basado en el lector original de Philips MFRC522 que funciona a 3.3v y se puede alimentar directamente de la salida de Arduino, además es tolerante a un bus de 5v (en caso contrario habría que recurrir a un adaptador de nivel lógico).  Sus principales características son:

Frecuencia de operación: 13.56 MHz
Alimentación: 3.3 v
Corriente típica: 10 mA
Corriente de pico <30 mA
Corriente en reposo <80 μA
Comunicación: bus SPI
Velocidad de Transferencia de datos: Max. 10 Mbit/s
Compatibilidad: Tarjetas Mifare (S50, S70, Mifare1, UltraLight,  Pro y Desfire)

En lo que respecta a los Tags incluidos son de los más comunes, del tipo S50 MIFARE Classic 1K,  y hay que tener en cuenta lo siguiente:

  1. Las tarjetas MIFARE Classic emplean un algoritmo de cifrado CRYPTO1 que actualmente no se considera seguro, por tanto no se deben usar en aplicaciones de seguridad como cerraduras.
  2. Este tipo de Tags emplean el estándar ISO/IEC 14443 Type A, por tanto los móviles modernos con NFC no pueden leer estas tarjetas.

Las conexiones de la tarjeta con nuestro Arduino es muy simple:

RC522 Función Pin Arduino
RST Reset 9
SS/SDA Select 10
MOSI Master ->Slave 11
MISO Master<- Slave 12
SCK Clock 13

En artículos anteriores hemos utilizado el puerto serial para Leer/Escribir datos. Dicho puerto tiene la ventaja de que resulta muy fácil de usar y podemos fácilmente procesar los datos que recibimos. SPI es un protocolo para comunicación entre circuitos que utiliza un “bus” para comunicarse es decir un solo cable (esencialmente 4 líneas) sirve para enviar o recibir datos desde distintos dispositivos:

  • MOSI (Master Out Slave In): por esta línea se envían datos en forma serial desde el dispositivo “maestro” a los dispositivos esclavos.
  • MISO (Master In Slave Out): por esta línea los dispositivos esclavos envían datos al dispositivo maestro.
  • SCK/SCLK (Clock): Línea de reloj, envía un tren de pulsos que sincroniza las comunicaciones entre los dispositivos.
  • SS/SDA (Select): Línea por la que el dispositivo maestro habilita al dispositivo esclavo, indica qué dispositivo es el que tiene que enviar/recibir datos.

Debemos instalar en el IDE las librerías correspondientes que en este caso han sido desarrolladas por Miguel Balboa, la librería del protocolo SPI viene incluida de serie en el IDE

La primera vez que conectéis el módulo recomiendo cargar uno de los programas que viene de ejemplo en el IDE (Ejemplos/MFRC522/firmware_check). Este sketch verifica que nuestro módulo MFRC522 es compatible con la librería instalada.

Ejemplo 1

Lectura de identificador del Tag, mostrando el resultado por el puerto serie.

Ejemplo2

Lectura/Escritura de datos en la memoria del Tag

También te podría gustar...