Sisällysluettelo:

Sähköinen lompakko: 3 vaihetta
Sähköinen lompakko: 3 vaihetta

Video: Sähköinen lompakko: 3 vaihetta

Video: Sähköinen lompakko: 3 vaihetta
Video: Kylpyhuoneesta löytyi hengenvaarallinen sähkökytkentä!!!! 2024, Kesäkuu
Anonim
Sähköinen lompakko
Sähköinen lompakko

HUOMAUTUS: Minulla on nyt Instructables, joka tarjoaa Arduino -koodin RC522: lle ja PN532: lle.

Edellisessä viestissäni kerroin perusteet MFRC522- ja PN532 -RFID -moduulien kanssa kommunikoimiseen tietojen lukemiseksi/kirjoittamiseksi Mifare Classic 1k -tunnisteista. Tässä viestissä otan sen askeleen pidemmälle ja näytän kuinka näiden moduulien avulla luodaan tunnisteista sähköinen lompakko. Kuten edellisen viestin kohdalla, tämä esitetään peruskäytännönä, mutta sen pitäisi luoda perusta monille sovelluksille, jotka vaativat lisäys-/vähennys- tai laskutoimintoja.

Vaihe 1: Tietojen eheys

Sähköisessä lompakossa on aina huoli siitä, että joku voi lisätä luottoja maksamatta niistä. On myös huolestuttavaa, että tunnisteen tunnisteet voivat vahingossa vioittua tietojen kirjoittamisen aikana. Tietojen käyttö edellyttää tunnisteavaimen käyttöä, joten oletusavain on vaihdettava, kun tagi alustetaan ensimmäisen kerran. Verkossa on artikkeleita, joissa puhutaan tagin hakkeroinnista, vaikka et tiedä avainta, mutta tekniikka ei ole vähäpätöinen. En suosittelisi näiden tunnisteiden käyttöä pankkitililläsi, mutta ne ovat riittävän hyviä monille vähemmän riskialttiille sovelluksille.

Tietojen vioittumisen todennäköisyys on suhteellisen pieni, mutta ohjelmiston pitäisi pystyä käsittelemään ainakin perustapaus. Tämä prosessi sisältää kaksi vaihetta, joista ensimmäinen on yksinkertainen korruption havaitseminen. Tässä projektissa sitä käsitellään tallentamalla sekä luottoarvo että 1 -täydennys luottoarvosta. Tämä mahdollistaa arvojen yksinkertaisen vertailun. Toinen vaihe on tallentaa varmuuskopio sekä hyvitysarvosta että sen täydennyksestä. Tämä mahdollistaa palautustoimenpiteen, jos ensimmäinen luottojoukko vioittuu. Jos molemmat sarjat ovat vioittuneet, ohjelmisto yrittää alustaa tunnisteen uudelleen, mikä johtaa kaikkien hyvitysten menettämiseen.

Vaihe 2: Laitteisto

Laitteisto
Laitteisto

Laitteiston liitännät on esitetty yllä olevassa kaaviossa. Tämä on sama asetus kuin edellinen viesti, johon on lisätty kaksi kytkintä ja vetovastus. Yksi kytkin ei vaadi vetovastusta, koska se on PIC-tulossa, johon on sisäänrakennettu heikko vetokyky. Käytännössä molemmat kytkimet piilotetaan, koska niitä käytetään hyvitysten lisäämiseen ja tunnisteen alustamiseen. Alustuskytkin on valinnainen (manuaalisen luoton nollaus), koska ohjelmisto voi tunnistaa ja alustaa uuden tunnisteen itse. Kytkinten sijasta voidaan käyttää hyppytappeja.

Vaihe 3: Ohjelmisto

Ohjelmiston pääsilmukkaan tehtiin lisäyksiä kahden kytkimen lukemisen mahdollistamiseksi ja tunnisteen alustuksen edellyttävän tilan havaitsemiseksi. Kuten laitteisto -osassa mainittiin, tunnisteen alustus voidaan komentaa manuaalisesti kytkimellä. Ohjelmisto voi myös komentaa tunnisteen alustuksen kahdessa muussa tapauksessa. Ensinnäkin, jos se havaitsee uuden tunnisteen tai datasektorin ja toiseksi, jos molemmat luottotietosarjat ovat vioittuneet.

Tunnisteiden todentaminen edellyttää "avaimen A" käyttöä kohdetietosektorille. Mifare Classic 1k -tunnisteiden oletusavain on “FF FF FF FF FF FF”, mutta se tulisi muuttaa sovelluksellesi. Ohjelmisto tarjoaa määritelmät sekä oletusavaimelle että uudelle avaimelle ("My_Key"). Liitä haluamasi arvot "My_Key" -kenttään. Ohjelmisto yrittää aina ensin tunnistaa tunnisteen “My_Key” -toiminnolla. Jos tämä epäonnistuu, tagin alustusrutiini kutsutaan ja todennuksessa käytetään oletusavainta. Alustusrutiini muuttaa avaimen arvoksi "My_Key" ja asettaa hyvitykset nollaksi. Jos sinulla on tagi, jolla on ei-oletusavain, etkä tiedä mitä se on, tunnistetta ei voi todentaa. Jos näin tapahtuu, sinun kannattaa tarkistaa muut tietosektorit oletusavaimella, onko sellainen käytettävissä. Traileri-, datalohko- ja varmuuskopio -lohkot on määritelty ohjelmistoluettelon alussa, joten voit helposti muuttaa niitä.

Tämän sovelluksen tunnisteeseen tallennettujen tietojen muoto käyttää vain positiivisia numeroita (alijäämiä ei sallita) ja arvot tallennetaan neljänä tavuna pakattua BCD -koodia (Binary Coded Decimal). Tämä mahdollistaa luottorajan 0-99, 999, 999 (kaksi numeroa tavua kohden). Luottoarvo ja sen 1 täydennys käyttävät vain 8 16 tavusta yhdessä datalohkossa ja loput on täytetty nollilla. Samassa tietolohkossa on tilaa varmuuskopiolle, mutta päätin, että olisi turvallisempaa laittaa varmuuskopio erilliseen tietolohkoon. Varmuuskopiointi on samalla sektorilla kuin datalohko, joten erillistä todennusta ei tarvita. Vieläkin turvallisemmaksi kannattaa harkita varmuuskopion asettamista eri datasektorille, mutta silloin tarvitaan erillinen todennusvaihe näiden tietojen käyttämiseksi.

Kun hyvitykset on luettu, myös täydennetty arvo luetaan ja sitten näitä kahta verrataan toisiinsa. Jos täsmäytys ilmenee, arvon/täydennyksen varmuuskopio luetaan ja verrataan. Jos ne täsmäävät, varmuuskopion oletetaan olevan oikea ja sitä käytetään vioittuneiden tietojen korjaamiseen. Jos varmuuskopiot eivät täsmää, tunnisteen katsotaan olevan huono ja se yritetään alustaa uudelleen.

Lisäys- ja vähennysarvot on määritetty luettelon etuosan lähellä ja niiden odotetaan olevan pakatussa BCD -muodossa. Rutiinit, jotka lisäävät ja pienentävät tehokkaasti, tekevät niin 32-bittisellä numerolla. Matematiikka on hyvin yksinkertaista, mutta vaatii rutiinien käyttämistä tulosten säätämiseksi jokaisessa pakatussa BCD -tavussa ja tavusta toiseen. Tämä saavutetaan käyttämällä makroja DAA (Decimal Adjust Add) ja DAS (Decimal Adjust Subtraction). Nämä makrot varmistavat, että jokainen 4-bittinen BCD-numero pysyy aina välillä 0-9.

Edellisen viestin näyttöviestien lisäksi tässä sovelluksessa on viestejä monista lisävaiheista - varsinkin jos on datavirheitä ja/tai tagi on korjattava tai alustettava. Hyvitykset näkyvät myös ennen lisäys-/vähennysvaihetta ja sen jälkeen, jotta näet arvojen muutoksen.

Siinä tämä postaus. Tutustu muihin elektroniikkaprojekteihini osoitteessa: www.boomerrules.wordpress.com

Suositeltava: