Sadržaj:

Elektronički novčanik: 3 koraka
Elektronički novčanik: 3 koraka

Video: Elektronički novčanik: 3 koraka

Video: Elektronički novčanik: 3 koraka
Video: КОРОЛЕВСКИЙ Электроскутер CHOPPER CITYCOCO 3000w Электрочоппер citycoco ситикоко 3000w электроцикл 2024, Lipanj
Anonim
Elektronički novčanik
Elektronički novčanik

NAPOMENA: Sada imam instruktore koji nude Arduino kôd za RC522 i PN532.

U svom prethodnom postu detaljno sam opisao osnove komunikacije s RFID modulima MFRC522 i PN532 za čitanje/pisanje podataka s oznaka Mifare Classic 1k. U ovom postu idem korak dalje i pokazujem kako koristiti te module za stvaranje elektroničkog novčanika od oznaka. Kao i prethodni post, ovo je predstavljeno kao osnovna implementacija, ali bi trebalo pružiti osnovu za različite aplikacije koje zahtijevaju funkcije povećanja/umanjivanja ili zbrajanja.

Korak 1: Integritet podataka

Za elektronički novčanik uvijek postoji zabrinutost da netko može dodati kredite bez plaćanja za njih. Postoji i zabrinutost da bi se bodovi na oznaci mogli nenamjerno oštetiti tijekom upisivanja podataka. Pristupi podacima zahtijevaju upotrebu ključa oznake pa je potrebno promijeniti zadani ključ kada se oznaka prvi put inicijalizira. Na internetu postoje članci koji govore o tome kako hakirati oznaku čak i ako ne znate ključ, ali tehnika nije beznačajna. Ne bih preporučio korištenje ovih oznaka za vaš bankovni račun, ali dovoljno su dobre za puno manje rizičnih aplikacija.

Vjerojatnost oštećenja podataka relativno je mala, ali softver bi trebao biti sposoban barem riješiti osnovni slučaj. Ovaj proces uključuje dva koraka s prvim korakom za jednostavno otkrivanje korupcije. U ovom projektu koji se rješava spremanjem vrijednosti kredita, kao i dodatkom 1 vrijednosti kredita. To omogućuje jednostavnu usporedbu vrijednosti. Drugi korak je spremanje rezervne verzije kreditne vrijednosti i njenog komplementa. To omogućuje operaciju oporavka ako se prvi skup kredita ošteti. Ako su oba skupa oštećena, softver pokušava ponovno pokrenuti oznaku što rezultira gubitkom svih kredita.

Korak 2: Hardver

Hardver
Hardver

Hardverske veze prikazane su na gornjem dijagramu. Ovo je isto postavljanje kao i prethodni post s dodatkom dva prekidača i pull-up otpornikom. Za jedan prekidač nije potreban pull-up otpornik jer je na PIC ulazu koji ima slabu sposobnost povlačenja. U praksi bi oba prekidača bila skrivena jer se koriste za dodavanje kredita i za inicijalizaciju oznake. Prekidač za inicijalizaciju nije obavezan (za ručno nuliranje kredita) jer softver može sam otkriti i pokrenuti novu oznaku. Umjesto sklopki mogle bi se koristiti kratkospojne iglice.

Korak 3: Softver

Dodaci glavnoj petlji u softveru napravljeni su kako bi omogućili čitanje dva prekidača i otkrivanje stanja koje zahtijeva inicijalizaciju oznake. Kao što je spomenuto u odjeljku o hardveru, inicijalizacijom oznake možete ručno upravljati pomoću prekidača. Softver također može narediti inicijalizaciju oznake u dva druga slučaja. Prvo, ako otkrije novu oznaku ili sektor podataka, i drugo, ako su oba skupa kreditnih podataka oštećena.

Za provjeru autentičnosti oznaka potrebna je upotreba “ključa A” za ciljni sektor podataka. Zadani ključ za oznake Mifare Classic 1k je "FF FF FF FF FF FF", ali treba ga promijeniti za vašu aplikaciju. Softver nudi definicije i za zadani ključ i za novi ključ (“My_Key”). Samo u "My_Key" uključite sve vrijednosti koje želite. Softver uvijek pokušava prvo provjeriti autentičnost oznake pomoću “My_Key”. Ako to ne uspije, tada se poziva rutina za inicijalizaciju oznake, a zadani ključ koristi se za provjeru autentičnosti. Rutina inicijalizacije mijenja ključ u “My_Key” i postavlja bodove na nulu. Ako imate oznaku s ključem koji nije zadani, a ne znate što je to, tada se oznaka ne može provjeriti. Ako se to dogodi, možda biste željeli provjeriti druge podatkovne sektore pomoću zadane tipke da vidite je li dostupna. Blokovi prikolice, blok podataka i sigurnosna kopija definirani su na početku popisa softvera tako da ih možete lako promijeniti.

Format podataka pohranjenih u oznaci za ovu aplikaciju koristi samo pozitivne brojeve (nisu dopušteni nedostaci), a vrijednosti se pohranjuju kao četiri bajta upakiranog BCD -a (binarno kodirana decimalna vrijednost). To omogućuje kreditni raspon od 0 do 99, 999, 999 (dvije znamenke po bajtu). Kreditna vrijednost i njezina 1 dopuna koriste samo 8 od 16 bajtova u jednom podatkovnom bloku, a ostatak se nadopunjuje nulama. U istom podatkovnom bloku ima mjesta za sigurnosnu kopiju, ali sam odlučio da bi bilo sigurnije sigurnosnu kopiju staviti u zasebni podatkovni blok. Rezervni blok nalazi se u istom sektoru kao i podatkovni blok pa nije potrebna zasebna provjera autentičnosti. Da biste bili još sigurniji, razmislite o stavljanju sigurnosne kopije u drugi podatkovni sektor, no tada bi za pristup tim podacima bio potreban zaseban korak provjere autentičnosti.

Kad se pročita bodova, čita se i dopunjena vrijednost, a zatim se međusobno uspoređuju. Ako postoji neslaganje, tada se čita i uspoređuje rezervni skup vrijednosti/komplementa. Ako se podudaraju, pretpostavlja se da je sigurnosna kopija točna i da se koristi za popravak oštećenih podataka. Ako se sigurnosne kopije ne podudaraju, oznaka se smatra lošom i pokušava se ponovno pokrenuti.

Vrijednosti prirasta i smanjenja definirane su blizu prednjeg dijela popisa i očekuje se da budu u pakiranom BCD -u. Rutine koje učinkovito povećavaju i umanjuju to čine na 32-bitnom broju. Matematika je vrlo jednostavna, ali zahtijeva korištenje rutina za prilagodbu rezultata za nošenja unutar svakog pakiranog BCD bajta i od jednog do drugog bajta. To se postiže upotrebom makronaredbi DAA (Decimal Adjust Addition) i DAS (Decimal Adjust Subtraction). Ovi makronaredbe osiguravaju da svaka 4-bitna BCD znamenka uvijek ostane u rasponu od 0-9.

Osim poruka za prikaz u prethodnom postu, ova aplikacija ima poruke za mnoge dodatne korake - osobito ako postoje pogreške u podacima i/ili oznaku treba popraviti ili inicijalizirati. Krediti se također prikazuju prije i nakon koraka povećanja/smanjenja, tako da možete vidjeti promjene vrijednosti.

To je to za ovaj post. Pogledajte ostale moje elektroničke projekte na: www.boomerrules.wordpress.com

Preporučeni: