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
MF522
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
LOS TAGS RFID ISO 14443A:
Estos tags se venden en forma de
tarjetas ó de
llaveros. Existen tags de 1 Kb (que es el descrito 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
basado en la norma ISO 14443A. 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 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.

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:
Una lectura típica de los 1024 bytes almacenados en la
EEPROM 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 y leídos a través de un teléfono móvil por medio de
una interfaz Bluetooth:

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.
|