Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
MERK: Jeg har nå Instructables som tilbyr Arduino -kode for RC522 og PN532.
I mitt forrige innlegg forklarte jeg det grunnleggende for kommunikasjon med MFRC522 og PN532 RFID -modulene for å lese/skrive data fra Mifare Classic 1k -tagger. I dette innlegget tar jeg det et skritt videre og viser hvordan jeg bruker disse modulene til å lage en elektronisk lommebok ut av taggene. Som med forrige innlegg, presenteres dette som en grunnleggende implementering, men bør danne grunnlag for en rekke applikasjoner som krever økning/reduksjon eller tellerfunksjoner.
Trinn 1: Dataintegritet
For en elektronisk lommebok er det alltid en bekymring for at noen kan legge til kreditter uten å betale for dem. Det er også en bekymring for at kredittene på taggen utilsiktet kan bli ødelagt under en dataskriving. Datatilgang krever bruk av tag -nøkkelen, så det er nødvendig å endre standardnøkkelen når taggen først initialiseres. Det er artikler på nettet som snakker om hvordan du kan hacke en tag selv om du ikke kjenner nøkkelen, men teknikken ikke er triviell. Jeg vil ikke anbefale å bruke disse kodene for bankkontoen din, men de er gode nok for mange mindre risikable applikasjoner.
Sannsynligheten for datakorrupsjon er relativt liten, men programvaren bør i det minste kunne håndtere den grunnleggende saken. Denne prosessen innebærer to trinn med det første trinnet for å oppdage korrupsjonen. I dette prosjektet håndteres det ved å lagre både kredittverdien og et 1 -talls komplement av kredittverdien. Det gir en enkel sammenligning av verdiene. Det andre trinnet er å lagre en sikkerhetskopiversjon av både kredittverdien og dens tillegg. Det gir mulighet for en gjenopprettingsoperasjon hvis det første settet med kreditter blir ødelagt. Hvis begge settene er ødelagt, prøver programvaren å initialisere taggen igjen, noe som resulterer i tap av alle studiepoeng.
Trinn 2: Maskinvare
Maskinvaretilkoblingene er vist i diagrammet ovenfor. Dette er det samme oppsettet som det forrige innlegget med tillegg av to brytere og en opptrekksmotstand. En bryter krever ikke en opptrekkmotstand fordi den er på en PIC-inngang som har en svak opptrekkskapasitet. I praksis ville begge bryterne være skjult fordi de brukes til å legge til kreditter og til å initialisere en tag. Initialiseringsbryteren er valgfri (for å gjøre manuell kredittnullstilling) fordi programvaren kan oppdage og initialisere en ny tag på egen hånd. Jumper pins kan brukes i stedet for brytere.
Trinn 3: Programvare
Tillegg til hovedløkken i programvaren ble gjort for å tillate lesing av de to bryterne og for å oppdage en tilstand som krever initialisering av tag. Som nevnt i maskinvaredelen kan initialisering av tagger kommanderes manuelt med en bryter. Programvaren kan også styre en tag -initialisering i to andre tilfeller. For det første, hvis den oppdager en ny tag eller datasektor og for det andre hvis begge settene med kredittdata er ødelagt.
Godkjenning av koder krever bruk av "nøkkel A" for måldatasektoren. Standardnøkkelen for Mifare Classic 1k -taggene er "FF FF FF FF FF FF", men bør endres for søknaden din. Programvaren gir definisjoner for både standardnøkkelen og en ny nøkkel ("My_Key"). Bare koble inn verdiene du vil ha i "My_Key". Programvaren prøver alltid å først godkjenne koden ved hjelp av "My_Key". Hvis det mislykkes, kalles rutinen for å initialisere koden, og standardnøkkelen brukes til autentisering. Initialiseringsrutinen endrer nøkkelen til “My_Key” og setter studiepoengene til null. Hvis du har en tag med en ikke-standardnøkkel og du ikke vet hva det er, kan ikke taggen autentiseres. Hvis dette skjer, kan det være lurt å sjekke andre datasektorer ved å bruke standardnøkkelen for å se om en er tilgjengelig. Trailerblokken, datablokken og sikkerhetskopieringsblokkene er alle definert i begynnelsen av programvarelisten slik at du enkelt kan endre dem.
Formatet for data lagret i koden for denne applikasjonen bruker bare positive tall (ingen underskudd tillatt) og verdier lagres som fire byte pakket BCD (Binary Coded Decimal). Det gir mulighet for et kredittområde fra 0 til 99, 999, 999 (to sifre per byte). Kredittverdien og dens 1 -komplement bruker bare 8 av de 16 bytes i en enkelt datablokk, og resten er polstret med nuller. Det er plass i den samme datablokken for sikkerhetskopien, men jeg bestemte meg for at det ville være tryggere å sette sikkerhetskopien i en egen datablokk. Sikkerhetskopieringsblokken er i samme sektor som datablokken, så en separat autentisering er ikke nødvendig. For å være enda tryggere kan du vurdere å sette sikkerhetskopien i en annen datasektor, men da vil det være nødvendig med et eget autentiseringstrinn for å få tilgang til disse dataene.
Når en lesning er gjort av studiepoengene, blir den komplementerte verdien også lest, og deretter blir de to sammenlignet med hverandre. Hvis det er feil samsvar, blir sikkerhetskopisettet av verdi/komplement lest og sammenlignet. Hvis de samsvarer, antas sikkerhetskopien å være korrekt og brukes til å reparere ødelagte data. Hvis sikkerhetskopiene ikke samsvarer, blir taggen ansett som dårlig, og det blir forsøkt å initialisere den på nytt.
Øknings- og reduseringsverdiene er definert nær forsiden av oppføringen og forventes å være i pakket BCD. Rutinene som gjør inkrementering og reduksjon gjør det effektivt på et 32-biters nummer. Matematikken er veldig enkel, men krever bruk av rutiner for å justere resultatene for dataene i hver pakket BCD -byte og fra en byte til den neste. Det oppnås ved bruk av makroer DAA (Decimal Adjust Addition) og DAS (Decimal Adjust Subtraction). Disse makroene sørger for at hvert 4-biters BCD-siffer alltid holder seg innenfor området 0-9.
I tillegg til displaymeldingene i forrige innlegg, har denne applikasjonen meldinger for mange av de ekstra trinnene - spesielt hvis det er datafeil og/eller taggen må fikses eller initialiseres. Kredittene vises også før og etter et trinn for å øke/redusere, slik at du kan se at verdiene endres.
Det er det for dette innlegget. Sjekk mine andre elektronikkprosjekter på: www.boomerrules.wordpress.com
Anbefalt:
Elektronisk juletre: 4 trinn
Elektronisk juletre: Hei! Jeg vil presentere mitt elektroniske juletre. Jeg bygde dette som dekorasjon, og jeg synes det er veldig kompakt og fint
Firemanns lavspenning elektronisk tester: 7 trinn
Quadruple Low Voltage Electronic Tester: Hva er dette? En allsidig firdoble low voltage tester, som bidrar til en grønnere verden fordi ved hjelp av denne lille gadgeten kan mange ødelagte elektroniske enheter få et andre eller tredje liv, og vil ikke bli sendt til søppelhullet! Trygt
Arduino Bluetooth RC bil med elektronisk bremsesystem: 4 trinn (med bilder)
Arduino Bluetooth RC -bil m/ elektronisk bremsesystem: Slik lager du en RC -bil for rundt 40 $ (27 $ m/ uno -klon)
RFID som beskytter en Tyvek -lommebok: 7 trinn
RFID Shielding a Tyvek Wallet: Jeg har brukt denne typen lommebok i omtrent 6 år. Da jeg fant denne lommeboken bestemte jeg meg for å legge til litt RFID -skjerming ved å bruke aluminiumstape. Dette båndet brukes til å forsegle varmekanaler ettersom det er mer holdbart enn klutbasert og q
Magic Duct Tape Lommebok på Roids: 8 trinn
Magic Duct Tape Lommebok på Roids: Hei. Oppdaget dette nettstedet for en liten stund siden. Jeg lagde en magisk duct tape lommebok for omtrent en uke siden takket være denne flotte instruerbare duct tape magiske lommeboken. Jeg likte det mye, men ville fortsatt ha flere ting, så jeg konstruerte dette dyret på en vegg