Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39
NOTA: Ahora tengo Instructables que ofrecen código Arduino para RC522 y PN532.
En mi publicación anterior, detallé los conceptos básicos para la comunicación con los módulos RFID MFRC522 y PN532 para leer / escribir datos de etiquetas Mifare Classic 1k. En esta publicación, doy un paso más y muestro cómo usar esos módulos para crear una billetera electrónica a partir de las etiquetas. Al igual que en la publicación anterior, esto se presenta como una implementación básica, pero debería proporcionar una base para una variedad de aplicaciones que requieren funciones de incremento / decremento o recuento.
Paso 1: integridad de los datos
En el caso de una billetera electrónica, siempre existe la preocupación de que alguien pueda agregar créditos sin pagarlos. También existe la preocupación de que los créditos de la etiqueta se corrompan inadvertidamente durante la escritura de datos. Los accesos a datos requieren el uso de la clave de etiqueta, por lo que es necesario cambiar la clave predeterminada cuando la etiqueta se inicializa por primera vez. Hay artículos en línea que hablan sobre cómo piratear una etiqueta incluso si no conoce la clave, pero la técnica no es trivial. No recomendaría usar estas etiquetas para su cuenta bancaria, pero son lo suficientemente buenas para muchas aplicaciones menos riesgosas.
La probabilidad de corrupción de datos es relativamente pequeña, pero el software debería poder manejar al menos el caso básico. Este proceso implica dos pasos con el primer paso para simplemente detectar la corrupción. En este proyecto, eso se maneja almacenando tanto el valor del crédito como el complemento a 1 del valor del crédito. Eso permite una comparación simple de los valores. El segundo paso es almacenar una versión de respaldo tanto del valor del crédito como de su complemento. Eso permite una operación de recuperación si el primer conjunto de créditos se corrompe. Si ambos conjuntos están dañados, el software intenta reinicializar la etiqueta, lo que resulta en la pérdida de todos los créditos.
Paso 2: hardware
Las conexiones de hardware se muestran en el diagrama anterior. Esta es la misma configuración que la publicación anterior con la adición de dos interruptores y una resistencia pull-up. Un interruptor no requiere una resistencia pull-up porque está en una entrada PIC que tiene una capacidad de pull-up débil incorporada. En la práctica, ambos interruptores estarían ocultos porque se usan para agregar créditos y para inicializar una etiqueta. El interruptor de inicialización es opcional (para realizar una puesta a cero de crédito manual) porque el software puede detectar e inicializar una nueva etiqueta por sí solo. Se pueden usar pines de puente en lugar de interruptores.
Paso 3: software
Se hicieron adiciones al bucle principal en el software para permitir la lectura de los dos interruptores y la detección de una condición que requiera la inicialización de la etiqueta. Como se mencionó en la sección de hardware, la inicialización de etiquetas se puede ordenar manualmente con un interruptor. El software también puede ordenar la inicialización de una etiqueta en otros dos casos. Primero, si detecta una nueva etiqueta o sector de datos y segundo, si ambos conjuntos de datos crediticios están dañados.
La autenticación de etiquetas requiere el uso de la "clave A" para el sector de datos de destino. La clave predeterminada para las etiquetas Mifare Classic 1k es "FF FF FF FF FF FF", pero debe cambiarse para su aplicación. El software proporciona definiciones tanto para la clave predeterminada como para una clave nueva ("My_Key"). Simplemente ingrese los valores que desee en "My_Key". El software siempre intenta primero autenticar la etiqueta usando "My_Key". Si eso falla, se llama a la rutina para inicializar la etiqueta y se usa la clave predeterminada para la autenticación. La rutina de inicialización cambia la clave a "My_Key" y pone los créditos a cero. Si tiene una etiqueta con una clave no predeterminada y no sabe qué es, la etiqueta no se puede autenticar. Si esto sucede, es posible que desee verificar otros sectores de datos utilizando la clave predeterminada para ver si hay alguna disponible. El bloque de tráiler, el bloque de datos y los bloques de copia de seguridad se definen al principio de la lista de software para que pueda cambiarlos fácilmente.
El formato de los datos almacenados en la etiqueta para esta aplicación utiliza solo números positivos (no se permiten déficits) y los valores se almacenan como cuatro bytes de BCD empaquetado (decimal codificado en binario). Eso permite un rango de crédito de 0 a 99, 999, 999 (dos dígitos por byte). El valor del crédito y su complemento de 1 solo usan 8 de los 16 bytes en un solo bloque de datos y el resto se rellena con ceros. Hay espacio en el mismo bloque de datos para la copia de seguridad, pero decidí que sería más seguro colocar la copia de seguridad en un bloque de datos separado. El bloque de respaldo está en el mismo sector que el bloque de datos, por lo que no se requiere una autenticación por separado. Para estar aún más seguro, podría considerar colocar la copia de seguridad en un sector de datos diferente, pero luego se necesitaría un paso de autenticación por separado para acceder a esos datos.
Cuando se hace una lectura de los créditos, también se lee el valor complementado y luego se comparan los dos entre sí. Si hay una discrepancia, se lee y se compara el conjunto de respaldo de valor / complemento. Si coinciden, se supone que la copia de seguridad es correcta y se utiliza para reparar los datos dañados. Si las copias de seguridad no coinciden, la etiqueta se considera incorrecta y se intenta reinicializarla.
Los valores de incremento y decremento se definen cerca del frente del listado y se espera que estén en BCD empaquetado. Las rutinas que incrementan y reducen efectivamente lo hacen en un número de 32 bits. La matemática es muy simple pero requiere el uso de rutinas para ajustar los resultados de los acarreos dentro de cada byte BCD empaquetado y de un byte al siguiente. Esto se logra mediante el uso de macros DAA (suma de ajuste decimal) y DAS (resta de ajuste decimal). Estas macros aseguran que cada dígito BCD de 4 bits siempre permanezca dentro del rango de 0-9.
Además de los mensajes mostrados en la publicación anterior, esta aplicación tiene mensajes para muchos de los pasos adicionales, particularmente si hay errores de datos y / o la etiqueta debe arreglarse o inicializarse. Los créditos también se muestran antes y después de un paso de incremento / decremento para que pueda ver cómo cambian los valores.
Eso es todo por esta publicación. Vea mis otros proyectos de electrónica en: www.boomerrules.wordpress.com
Recomendado:
Protección RFID de una billetera Tyvek: 7 pasos
Protección RFID de una billetera Tyvek: he estado usando este tipo (marca) de billetera durante aproximadamente 6 años. Cuando encontré esta billetera en particular, decidí agregarle un blindaje RFID usando cinta de aluminio. Esta cinta se utiliza para sellar conductos de calefacción ya que es más duradera que la de tela & q
IoT Wallet (billetera inteligente con Firebeetle ESP32, Arduino IDE y hoja de cálculo de Google): 13 pasos (con imágenes)
IoT Wallet (billetera inteligente con Firebeetle ESP32, Arduino IDE y hoja de cálculo de Google): ¡Primer premio en el concurso Instructables Pocket-Sized!: Si invirtió algo de dinero en criptomonedas, probablemente ya sepa que son altamente volátiles. Cambian de la noche a la mañana y nunca se sabe cuánto dinero "real" todavía tiene en su bolsillo
Hacer mi propia billetera de hardware criptográfico Trezor: 5 pasos (con imágenes)
Hacer mi propia billetera de hardware criptográfico de Trezor: En este proyecto, estoy haciendo mi propia billetera de hardware de criptomoneda Trezor, con carcasa. Esto es posible porque Trezor es de código abierto, por lo que utilicé los archivos que proporcionan en su github para construir mi propio dispositivo por menos de $ 40. Hubo algunos
Soporte táctil para iPod del tamaño de una billetera: 5 pasos
Soporte táctil para iPod del tamaño de una billetera: Esto es muy bueno … Puede pensar que es inestable, ¡pero es bastante estable! Esto es bueno para llevarlo en su billetera para ver … ¿Applebees? No lo sé jajaja Para ver películas, programas de televisión, navegar por Internet (en modo horizontal) … ¡oh, y Cover Flow! Así que
Separadores de organizador de cajones de tarjetas de billetera: 5 pasos
Divisores de organizador de cajones de tarjetas de billetera: este instructivo le mostrará cómo crear nuevos divisores para organizadores de almacenamiento de partes de cajones con tarjetas de lealtad de la tienda u otra basura en su billetera. tornillos, y no h