Kazalo:

Elektronska denarnica: 3 koraki
Elektronska denarnica: 3 koraki

Video: Elektronska denarnica: 3 koraki

Video: Elektronska denarnica: 3 koraki
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Junij
Anonim
Elektronska denarnica
Elektronska denarnica

OPOMBA: Zdaj imam Instructables, ki ponujajo kodo Arduino za RC522 in PN532.

V svojem prejšnjem prispevku sem podrobno opisal osnove komuniciranja z RFID moduloma MFRC522 in PN532 za branje/pisanje podatkov iz oznak Mifare Classic 1k. V tem prispevku naredim še en korak naprej in pokažem, kako s temi moduli ustvariti elektronsko denarnico iz oznak. Tako kot prejšnja objava je tudi ta predstavljena kot osnovna izvedba, vendar bi morala biti osnova za različne aplikacije, ki zahtevajo funkcije povečevanja/zmanjševanja ali seštevanja.

1. korak: Integriteta podatkov

Pri elektronski denarnici je vedno zaskrbljen, da bi nekdo lahko dodal dobropis, ne da bi zanj plačal. Obstaja tudi zaskrbljenost, da se lahko zasluge na oznaki nenamerno poškodujejo med pisanjem podatkov. Dostop do podatkov zahteva uporabo ključa oznake, zato je treba pri prvi inicializaciji oznake spremeniti privzetega ključa. Na spletu so članki, ki govorijo o tem, kako vdreti v oznako, tudi če ne poznate ključa, vendar tehnika ni nepomembna. Ne bi priporočal uporabe teh oznak za vaš bančni račun, vendar so dovolj dobre za veliko manj tveganih aplikacij.

Verjetnost poškodovanja podatkov je razmeroma majhna, vendar bi morala biti programska oprema sposobna obvladati vsaj osnovni primer. Ta postopek vključuje dva koraka, pri čemer je prvi korak preprosto odkrivanje korupcije. V tem projektu se obravnava shranjevanje tako kreditne vrednosti kot dodatka 1 kreditne vrednosti. To omogoča preprosto primerjavo vrednosti. Drugi korak je shranjevanje varnostne različice kreditne vrednosti in njenega dopolnila. To omogoča operacijo izterjave, če se prvi niz kreditov poškoduje. Če sta oba niza poškodovana, programska oprema poskuša znova aktivirati oznako, kar povzroči izgubo vseh kreditov.

2. korak: Strojna oprema

Strojna oprema
Strojna oprema

Povezave strojne opreme so prikazane na zgornjem diagramu. To je enaka nastavitev kot prejšnja objava z dodatkom dveh stikal in vlečnega upora. Za eno stikalo ni potreben vlečni upor, ker je na vhodu PIC, ki ima vgrajeno šibko vlečno zmogljivost. V praksi bi bila oba stikala skrita, ker se uporabljata za dodajanje kreditov in za inicializacijo oznake. Stikalo za inicializacijo je neobvezno (za ročno nastavljanje kredita), ker lahko programska oprema sama zazna in inicializira novo oznako. Namesto stikal bi lahko uporabili mostičke.

3. korak: Programska oprema

V glavni zanki programske opreme so bili dodani dodatki za branje obeh stikal in za odkrivanje stanja, ki zahteva inicializacijo oznake. Kot je omenjeno v razdelku o strojni opremi, lahko inicializacijo oznak ročno ukažite s stikalom. Programska oprema lahko tudi ukaže inicializacijo oznake v dveh drugih primerih. Prvič, če zazna novo oznako ali podatkovni sektor, in drugič, če sta oba niza kreditnih podatkov poškodovana.

Preverjanje pristnosti oznak zahteva uporabo "ključa A" za ciljni podatkovni sektor. Privzeti ključ za oznake Mifare Classic 1k je »FF FF FF FF FF FF«, vendar ga je treba spremeniti za vašo aplikacijo. Programska oprema ponuja opredelitve privzetega ključa in novega ključa (“My_Key”). V svoj »My_Key« vstavite vse želene vrednosti. Programska oprema vedno poskuša najprej preveriti pristnost oznake z uporabo “My_Key”. Če to ne uspe, se pokliče rutina za inicializacijo oznake in privzeti ključ se uporabi za preverjanje pristnosti. Inicializacijska rutina spremeni ključ v »My_Key« in kredite nastavi na nič. Če imate oznako s privzetim ključem in ne veste, kaj je, oznake ni mogoče preveriti. Če se to zgodi, boste morda želeli s privzetim ključem preveriti druge podatkovne sektorje in preveriti, ali je na voljo. Bloki priklopnikov, blok podatkov in rezervni bloki so opredeljeni na začetku seznama programske opreme, tako da jih lahko preprosto spremenite.

Oblika podatkov, shranjenih v oznaki za to aplikacijo, uporablja samo pozitivna števila (pomanjkljivosti niso dovoljene), vrednosti pa so shranjene kot štirje bajti pakiranega BCD (binarno kodirana decimalka). To omogoča kreditni razpon od 0 do 99, 999, 999 (dve števki na bajt). Kreditna vrednost in njen dodatek 1 uporabljata le 8 od 16 bajtov v enem podatkovnem bloku, preostali pa so obloženi z ničlami. V istem podatkovnem bloku je prostor za varnostno kopijo, vendar sem se odločil, da bi bilo varneje varnostno kopijo postaviti v ločen podatkovni blok. Rezervni blok je v istem sektorju kot podatkovni blok, zato ločeno preverjanje pristnosti ni potrebno. Če želite biti še varnejši, razmislite o tem, da varnostno kopijo postavite v drug podatkovni sektor, vendar bi bil za dostop do teh podatkov potreben ločen korak preverjanja pristnosti.

Ko se bere kredit, se prebere tudi dopolnjena vrednost, nato pa se primerjata med seboj. Če pride do neskladja, se prebere in primerja varnostni niz vrednosti/komplementa. Če se ujemajo, se domneva, da je varnostno kopiranje pravilno in se uporablja za popravilo poškodovanih podatkov. Če se varnostne kopije ne ujemajo, se oznaka šteje za slabo in jo poskusite znova inicializirati.

Vrednosti prirastka in zmanjšanja so določene blizu sprednje strani seznama in bodo predvidoma v zapakiranem BCD. Rutine, ki učinkovito povečujejo in zmanjšujejo, to počnejo pri 32-bitnem številu. Matematika je zelo preprosta, vendar zahteva uporabo rutin za prilagajanje rezultatov za prenose znotraj vsakega zapakiranega bajta BCD in od enega bajta do drugega. To dosežemo z uporabo makrov DAA (Decimal Adjust Addition) in DAS (Decimal Adjust Subtraction). Ti makri poskrbijo, da vsaka 4-bitna številka BCD vedno ostane v območju 0-9.

Poleg prikaznih sporočil v prejšnji objavi ima ta aplikacija sporočila za številne dodatne korake - zlasti če pride do podatkovnih napak in/ali je treba oznako popraviti ali inicializirati. Zasluge so prikazane tudi pred korakom povečevanja/zmanjševanja in po njem, tako da lahko vidite spremembe vrednosti.

To je to za to objavo. Oglejte si moje druge elektronske projekte na: www.boomerrules.wordpress.com

Priporočena: