Taula de continguts:

Cartera electrònica: 3 passos
Cartera electrònica: 3 passos

Vídeo: Cartera electrònica: 3 passos

Vídeo: Cartera electrònica: 3 passos
Vídeo: Wisin & Yandel - Irresistible 2024, Desembre
Anonim
Cartera electrònica
Cartera electrònica

NOTA: Ara tinc instruccions que ofereixen codi Arduino per a RC522 i PN532.

A la meva publicació anterior detallava els conceptes bàsics per comunicar-vos amb els mòduls RFID MFRC522 i PN532 per llegir / escriure dades de les etiquetes Mifare Classic 1k. En aquest post faig un pas més i mostro com utilitzar aquests mòduls per crear una cartera electrònica a partir de les etiquetes. Igual que amb la publicació anterior, es presenta com una implementació bàsica, però hauria de proporcionar les bases per a una varietat d'aplicacions que requereixen funcions d'increment / disminució o de comptabilitat.

Pas 1: integritat de dades

Per a una cartera electrònica sempre hi ha la preocupació que algú pugui afegir crèdits sense pagar-los. També es preocupa que els crèdits de l'etiqueta es puguin danyar sense voler durant l'escriptura de dades. Els accessos a les dades requereixen l’ús de la clau d’etiqueta, de manera que cal canviar la clau per defecte quan s’inicialitza l’etiqueta per primera vegada. Hi ha articles en línia que parlen de com piratejar una etiqueta encara que no sàpiga la clau, però la tècnica no és trivial. No recomanaria utilitzar aquestes etiquetes per al vostre compte bancari, però són prou bones per a moltes aplicacions amb menys risc.

La probabilitat de corrupció de dades és relativament petita, però el programari hauria de ser capaç de gestionar almenys el cas bàsic. Aquest procés implica dos passos, amb el primer pas per detectar simplement la corrupció. En aquest projecte, que es gestiona emmagatzemant tant el valor del crèdit com un complement d’1 del valor del crèdit. Això permet una comparació senzilla dels valors. El segon pas és emmagatzemar una versió de seguretat tant del valor del crèdit com del seu complement. Això permet una operació de recuperació si es corromp el primer conjunt de crèdits. Si ambdós conjunts estan danyats, el programari intenta reinicialitzar l'etiqueta, cosa que provoca la pèrdua de tots els crèdits.

Pas 2: maquinari

Maquinari
Maquinari

Les connexions de maquinari es mostren al diagrama anterior. Aquesta és la mateixa configuració que la publicació anterior amb l’addició de dos commutadors i una resistència de tracció. Un commutador no requereix una resistència de tracció perquè es troba en una entrada PIC que té una capacitat de tracció feble incorporada. A la pràctica, tots dos commutadors s’ocultarien perquè s’utilitzen per afegir crèdits i inicialitzar una etiqueta. El commutador d'inicialització és opcional (per fer la reducció manual de la reducció de crèdit) perquè el programari pot detectar i inicialitzar una nova etiqueta per si sola. Es podrien utilitzar passadors de pont en lloc d’interruptors.

Pas 3: programari

Es van afegir al bucle principal del programari per permetre la lectura dels dos commutadors i la detecció d’una condició que requeria inicialització d’etiquetes. Com s'esmenta a la secció de maquinari, la inicialització d'etiquetes es pot comandar manualment amb un commutador. El programari també pot comandar una inicialització d'etiquetes en dos casos més. En primer lloc, si detecta una nova etiqueta o sector de dades i, en segon lloc, si ambdós conjunts de dades de crèdit estan danyats.

L'autenticació d'etiquetes requereix l'ús de la "clau A" per al sector de dades objectiu. La clau predeterminada per a les etiquetes Mifare Classic 1k és "FF FF FF FF FF FF", però s'ha de canviar per a la vostra aplicació. El programari proporciona definicions tant per a la clau per defecte com per a una nova ("La meva_clau"). Només cal que connecteu els valors que vulgueu a "My_Key". El programari sempre intenta autenticar primer l’etiqueta amb “My_Key”. Si això falla, es diu la rutina per inicialitzar l'etiqueta i s'utilitza la clau per defecte per a l'autenticació. La rutina d'inicialització canvia la clau a "La meva_clau" i posa els crèdits a zero. Si teniu una etiqueta amb una clau no predeterminada i no sabeu què és, l'etiqueta no es podrà autenticar. Si això passa, és possible que vulgueu comprovar altres sectors de dades mitjançant la clau predeterminada per veure si n'hi ha un de disponible. El bloc Trailer, el bloc de dades i els blocs de còpia de seguretat es defineixen al principi de la llista de programari, de manera que podeu canviar-los fàcilment.

El format de les dades emmagatzemades a l’etiqueta d’aquesta aplicació només utilitza nombres positius (no s’admeten dèficits) i els valors s’emmagatzemen com a quatre bytes de BCD (decimal codificat binari). Això permet un rang de crèdit de 0 a 99, 999, 999 (dos dígits per byte). El valor del crèdit i el seu complement 1 només fan servir vuit dels 16 bytes en un bloc de dades únic i la resta es completa amb zeros. Hi ha espai al mateix bloc de dades per a la còpia de seguretat, però vaig decidir que seria més segur posar la còpia de seguretat en un bloc de dades independent. El bloc de còpia de seguretat es troba al mateix sector que el bloc de dades, de manera que no cal una autenticació independent. Per ser encara més segur, podeu plantejar la còpia de seguretat en un sector de dades diferent, però caldria un pas d'autenticació separat per accedir a aquestes dades.

Quan es fa una lectura dels crèdits, també es llegeix el valor complementari i es comparen els dos. Si hi ha un desajustament, es llegeix i es compara el conjunt de còpies de seguretat de valor / complement. Si coincideixen, se suposa que la còpia de seguretat és correcta i s'utilitza per reparar les dades danyades. Si les còpies de seguretat no coincideixen, es considera que l’etiqueta és incorrecta i s’intenta reinicialitzar-la.

Els valors d’increment i decrement es defineixen a la part frontal de la llista i s’espera que estiguin en BCD empaquetat. Les rutines que fan augmentar i disminuir efectivament ho fan en un número de 32 bits. Les matemàtiques són molt senzilles, però requereixen l'ús de rutines per ajustar els resultats de les portades dins de cada byte BCD empaquetat i d'un byte al següent. Això s'aconsegueix mitjançant l'ús de macros DAA (Decimal Adjust Addition) i DAS (Decimal Adjust Subtraction). Aquestes macros asseguren que cada dígit BCD de 4 bits es mantingui sempre dins del rang de 0-9.

A més dels missatges de visualització de la publicació anterior, aquesta aplicació conté missatges per a molts dels passos addicionals, sobretot si hi ha errors de dades i / o s’ha d’arreglar o inicialitzar l’etiqueta. Els crèdits també es mostren abans i després d'un pas d'increment / decrement perquè pugueu veure com canvien els valors.

Això és tot per a aquesta publicació. Consulteu els meus altres projectes electrònics a: www.boomerrules.wordpress.com

Recomanat: