HOME

PRODUCTOS

PROYECTOS

TUTORIALES

VIDEOS

FREEWARE

PROGRAMAS

FUNCIONES C

EMPRESA

ENGLISH

                   

Tutorial: El funcionamiento de las tarjetas ó tags RFID estándar ISO 14443A, de 13.56 Mhz.

 

ANTECEDENTES:

En 2 proyectos desarrollados previamente, se describió la forma de conectar un módulo lector RFID a un sistema Bolt 18F2550 por medio de una interfaz SPI ó bien de una interfaz UART.

En ambos los casos, el módulo lector RFID utilizado tiene como base el circuito con alta escala de integración y montaje superficial de 32 terminales MFRC522.

En el curso de esos 2 proyectos, se desarrolló el firmware para el sistema Bolt 18F2550 cuya función es realizar la lectura/escritura de información de los tags RFID, que cumplen con el estándar ISO 14443A,  mediante alguno de los siguientes dispositivos de lectura/escritura RFID:

MF522

RC522

RFID-UART  

RFID-USB.

Adicionalmente, se implementó un proyecto para el control de asistencia escolar mediante un lector RFID de bajo costo y utilizando igualmente tags ISO 14443A S50.

La tecnología de estas tarjetas ó tags fue desarrollada por la empresa NXP Semiconductors, con sede en Eindhoven, Países Bajos, y su especificación técnica completa se puede ver en los siguientes documentos:

CARD-TAG-MF1S503.pdf

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

 

LOS TAGS RFID ISO 14443A:

Estos tags se venden comercialmente ya sea en forma de tarjetas ó de llaveros. Existen tags de 1 Kb (que es el descrito a detalle en este tutorial) y 4 Kb de memoria EEPROM. El tag contiene básicamente 2 componentes electrónicos (ver imagen abajo): un microcontrolador especializado conocido como 'chip' y una antena para la trasmisión-recepción de información a una frecuencia de 13.56 Mhz, que es el estándar de enlace por radio empleado en los sistemas RFID.

El microcontrolador ó 'chip' contiene una memoria de lectura-escritura del tipo EEPROM, que es en donde se almacena la información del tag. Todos los tags tienen un número de serie, conocido como NUID (Non Unique Identification Number) de 4 bytes que es pregrabado de fábrica. Algunos tags de fabricación más reciente cuentan con un número de serie de 7 bytes, denominado UID (Unique Identification Number).

 

 

Los tags no tienen fuente de alimentación propia, sino que se energizan a partir del campo electromagnético generado por la antena del módulo lector RFID MF522 ó RFID-UART al establecerse el enlace de radio. Para tal fin, es necesario acercar el tag a una distancia de aproximadamente 2 a 4 cm del módulo RFID y permanecer en esa posición hasta que la lectura/escritura en la EEPROM del tag haya concluído.

La comunicación entre el tag y el módulo MF522 ó RFID-UART es manejada, como se mencionó, por radioanlace, a una frecuencia de 13.56 Mhz y a través de un protocolo propietario. Durante el intercambio de datos entre ambos dispositivos, se manejan códigos de protección CRC de 16 bits para asegurar la integridad de la información almacenada y leída de la EEPROM del tag. La velocidad de trasmisión de datos entre el tag y el dispositivo RFID alcanza aproximadamente 100 kbits/seg.

 

ORGANIZACION DE LA MEMORIA EEPROM DEL TAG ISO 14443A DE 1 KB:

Para el tag de 1 Kb, la capacidad total en la EEPROM es de 1024 bytes. Sin embargo, debido a las localidades empleadas para códigos de seguridad, el número de localidades útiles al usuario para almacenamiento de datos es de 768 bytes. La memoria de la EEPROM de 1 Kb está organizada en 16 sectores de 4 bloques cada uno, para un total de 64 bloques. Cada bloque a su vez está constituído por 16 bytes. La siguiente figura resume la organización de la memoria del tag:

 

 

Sector 0, bloque 0, número de serie NUID y el byte BCC:

En el sector 0, bloque 0, los primeros 4 bytes almacenan el número de serie del tag (NUID) y los datos del fabricante. Este bloque está protegido y solamente puede leerse. El byte 4 se conoce como BCC (Block Check Character) y es un valor de verificación del número de serie, calculado con la operación lógica 'OR Exclusiva' de los 4 bytes anteriores.

 

Sector Trailer:

Cada sector, como se mencionó, cuenta con 4 bloques. El cuarto bloque se conoce como 'Sector Trailer' y tiene como función la configuración de permisos y códigos de acceso para la lectura/escritura de los datos de ese sector. En este bloque se incluye el almacenamiento de 2 códigos de seguridad llamados Key A y Key B, así como de 4 bytes (Access bits) para la configuración del manejo que se dará a los datos contenidos en dicho sector. La clave Key A puede escribirse, pero no leerse.

La clave Key B es opcional y puede utilizarse ó no, a conveniencia del programador del sistema. Solamente podrán leerse ó modificarse los datos de algún sector si se conoce la clave Key A y/ó Key B en su caso. Ambas claves establecen un mecanismo de seguridad para la protección e integridad de los datos en cada sector.

El adquirir una tarjeta ISO 14443A nueva, por default, ambas claves Key A y Key B tienen valores de 0xFFFFFFFFFFFF y los "Access bits" tienen los valores de 0xFF 0x07 0x80 0x69. Esta configuración inicial de las tarjetas ISO 14443A se conoce como Transport configuration ó Configuración de transporte. Si no se modifica, esta configuración inicial permite la lectura-escritura de información en toda la zona disponible para almacenamiento de datos en la EEPROM.

Los 16 bloques llamados 'Sector Trailers' que son los identificados con los números 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59 y 63, no pueden ser utilizados por el usuario para grabar información, sino solamente con los fines explicados en los párrafos de arriba, es decir, seleccionar la configuración y las opciones de seguridad de cada sector.

 

Access bits:

Los llamados "Access bits" ó bits de acceso, se encuentran organizados como se muestra en la tabla de abajo. La base la forman 3 bits, C1, C2 y C3, los cuales definen los permisos para cada uno de los 4 bloques del sector. La identificación de los bits se hace manejando subíndices, por ejemplo, para la configuración del bloque 3 se manejarían los bits C13, C23 y C33. En total, se manejan 12 bits para la configuración de los 4 bloques en cada sector. Como se observa en la figura, los 12 bits de acceso se almacenan incluyendo su complemento, para proveer un mecanismo de verificación de la integridad de estos datos.

Las opciones de configuración de los bits de acceso sobre la lectura/escritura de los datos en el tag son muy numerosas. Para información completa del uso de los bits de acceso de los tags ISO 14443A, lea los siguientes documentos:

CARD-TAG-MF1S503.pdf

NFC-Access-Control-for-ISO-14443A-S50.pdf

 

APLICACIONES DE MONEDERO ELECTRONICO:

Por medio de los bits de acceso previamente explicados, los bloques de la memoria EEPROM pueden configurarse para operar ya sea como datos (típicamente strings de texto ASCII), ó bien como 'bloques de valor' (value block).

Los bloques de valor de la EEPROM permiten realizar operaciones de monedero electrónico, es decir, cargar un saldo monetario inicial a un bloque de valor en el tag y posteriormente, mediante operaciones de compra, transferencias ó depósitos, ir incrementando ó decrementando dicho saldo en forma automática y sobre todo, segura. La aplicación más utilizada de estos monederos electrónicos, es en tarjetas ó tags para control de acceso en transporte público.

Los comandos aplicables a los bloques de valor son: lectura, escritura, incremento, decremento, restaurar y transferir. Los bloques de valor tienen un formato fijo que permiten la detección y corrección de errores:

Observe el formato del bloque de valor: en 4 bytes, se almacena un valor entero en formato complemento a 2, es decir, pueden almacenarse números positivos ó negativos. Este valor (value) se almacena 3 veces: 2 veces no invertido y una vez invertido. Para reforzar la seguridad en el manejo de la información, también se manejan bytes adicionales para el almacenamiento de direcciones de los bloques de valor.

 

EJEMPLO DE LECTURA DE LA EEPROM DEL TAG ISO 14443A:

Una lectura típica de los 1024 bytes almacenados en la EEPROM de un tag ISO 14443A arrojaría datos hexadecimales como los mostrados en el ejemplo de abajo, obtenidos a través de un emulador de terminal: observe en el bloque 0, los 4 bytes que forman el número de serie (AB 9C D3 34). Los bloques 3, 7, 11, etc, son los conocidos como Sector Trailers. Por favor observe que, para protección de la información, la clave Key A siempre es leída como 0's.

Los bloques 8 y 9 fueron previamente grabados con los información hexadecimal (0x00..0x0F).

 

Ejemplo del display de datos de identificación personal almacenados previamente en un tag ISO 14443A y leídos a través de un teléfono móvil:

 

OTROS LINKS RECOMENDADOS:

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

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.

Módulo RFID con interfaz serial UART, la manera más simple de manejo del 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.