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, Novembar
Anonim
Elektronski novčanik
Elektronski novčanik

NAPOMENA: Sada imam instrukcije koje 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 iz 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 bi netko mogao dodati kredite bez plaćanja. Postoji i zabrinutost da bi se krediti na oznaci mogli nenamjerno oštetiti tokom upisivanja podataka. Pristupi podacima zahtijevaju upotrebu ključa oznake, pa je potrebno promijeniti zadani ključ prilikom prve inicijalizacije oznake. Na internetu postoje članci koji govore o tome kako hakirati oznaku čak i ako ne znate ključ, ali tehnika nije trivijalna. Ne bih preporučio korištenje ovih oznaka za vaš bankovni račun, ali su dovoljno dobre za mnoge manje rizične aplikacije.

Vjerovatnoća oštećenja podataka je relativno mala, ali softver bi trebao biti sposoban barem riješiti osnovni slučaj. Ovaj proces uključuje dva koraka sa prvim korakom za jednostavno otkrivanje korupcije. U ovom projektu koji se rješava pohranjivanjem vrijednosti kredita, kao i dodatkom 1 vrijednosti kredita. To omogućava jednostavno poređenje vrednosti. Drugi korak je spremanje rezervne verzije vrijednosti kredita i njegove dopune. To omogućava operaciju oporavka ako se prvi skup kredita ošteti. Ako su oba seta oštećena, softver pokušava ponovo 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 sa ugrađenom slabom sposobnošću 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. Igle za kratkospojnike mogu se koristiti umjesto prekidača.

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đe može da naredi 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 ga treba promijeniti za vašu aplikaciju. Softver nudi definicije i za zadani ključ i za novi ključ (“My_Key”). Samo uključite bilo koje vrijednosti koje želite u “My_Key”. Softver uvijek pokušava prvo provjeriti autentičnost oznake koristeći “My_Key”. Ako to ne uspije, tada se poziva rutina za inicijalizaciju oznake i zadani ključ se koristi 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 o čemu se radi, tada se oznaka ne može provjeriti. Ako se to dogodi, možda ćete htjeti provjeriti druge sektore podataka koristeći zadani ključ da vidite je li dostupan. 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 deficiti), a vrijednosti su pohranjene kao četiri bajta upakovanog BCD -a (binarno kodirana decimalna vrijednost). To omogućava raspon kredita od 0 do 99, 999, 999 (dvije znamenke po bajtu). Vrijednost kredita i njegova dopuna 1 koriste samo 8 od 16 bajtova u jednom bloku podataka, a ostatak se nadopunjuje nulama. U istom bloku podataka ima mjesta za sigurnosnu kopiju, ali sam odlučio da bi bilo sigurnije sigurnosnu kopiju staviti u zaseban blok podataka. Rezervni blok je 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 sektor podataka, ali tada bi za pristup tim podacima bio potreban zaseban korak provjere autentičnosti.

Nakon čitanja bodova, očitava 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 ispravna i da se koristi za popravak oštećenih podataka. Ako se rezervne 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 efikasno povećavaju i smanjuju to rade na 32-bitnom broju. Matematika je vrlo jednostavna, ali zahtijeva korištenje rutina za prilagođavanje rezultata za nošenja unutar svakog pakiranog BCD bajta i od jednog do drugog bajta. To se postiže upotrebom makroa DAA (Decimal Adjust Addition) i DAS (Decimal Adjust Subtraction). Ovi makroi 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 - posebno ako postoje greš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 i ostale moje elektroničke projekte na: www.boomerrules.wordpress.com

Preporučuje se: