Satura rādītājs:

Elektroniskais maks: 3 soļi
Elektroniskais maks: 3 soļi

Video: Elektroniskais maks: 3 soļi

Video: Elektroniskais maks: 3 soļi
Video: Как подписать документ электронной подписью с Smart ID 2024, Jūnijs
Anonim
Elektroniskais maks
Elektroniskais maks

PIEZĪME: Man tagad ir Instructables, kas piedāvā Arduino kodu RC522 un PN532.

Iepriekšējā ziņojumā es sīki izklāstīju pamatus saziņai ar RFID moduļiem MFRC522 un PN532, lai lasītu/rakstītu datus no Mifare Classic 1k tagiem. Šajā amatā es speršu vienu soli tālāk un parādīšu, kā izmantot šos moduļus, lai no tagiem izveidotu elektronisku maku. Tāpat kā iepriekšējā ziņojumā, tas tiek prezentēts kā pamata ieviešana, taču tam vajadzētu būt par pamatu dažādām lietojumprogrammām, kurām nepieciešamas palielināšanas/samazināšanas vai saskaitīšanas funkcijas.

1. darbība: datu integritāte

Elektroniskajam seifam vienmēr ir bažas, ka kāds var pievienot kredītus, par tiem nemaksājot. Pastāv arī bažas, ka tagu kredīti datu ierakstīšanas laikā var tikt nejauši sabojāti. Piekļuvei datiem ir jāizmanto taga atslēga, tāpēc, pirmo reizi inicializējot tagu, ir jāmaina noklusējuma atslēga. Tiešsaistē ir raksti, kuros tiek runāts par to, kā uzlauzt tagu, pat ja jūs nezināt atslēgu, bet tehnika nav triviāla. Es neiesaku izmantot šos tagus jūsu bankas kontam, taču tie ir pietiekami labi daudzām mazāk riskantām lietojumprogrammām.

Datu sabojāšanas varbūtība ir salīdzinoši neliela, taču programmatūrai jāspēj vismaz apstrādāt pamatlietas. Šis process ietver divus soļus ar pirmo soli, lai vienkārši atklātu korupciju. Šajā projektā, kas tiek apstrādāts, saglabājot gan kredīta vērtību, gan kredīta vērtības papildinājumu 1. Tas ļauj vienkārši salīdzināt vērtības. Otrais solis ir saglabāt gan kredīta vērtības, gan tās papildinājuma rezerves versiju. Tas ļauj veikt atkopšanas darbību, ja pirmais kredītu komplekts tiek sabojāts. Ja abi komplekti ir bojāti, programmatūra mēģina atkārtoti inicializēt tagu, kā rezultātā tiek zaudēti visi kredīti.

2. darbība. Aparatūra

Aparatūra
Aparatūra

Aparatūras savienojumi ir parādīti iepriekš redzamajā diagrammā. Tas ir tāds pats iestatījums kā iepriekšējā ziņojumā, pievienojot divus slēdžus un uzvilkšanas rezistoru. Vienam slēdzim nav nepieciešams pievilkšanas rezistors, jo tas ir PIC ieejā, kurā ir iebūvēta vāja pievilkšanas iespēja. Praksē abi slēdži būtu paslēpti, jo tos izmanto kredītu pievienošanai un taga inicializēšanai. Inicializācijas slēdzis nav obligāts (lai veiktu manuālu kredīta atiestatīšanu), jo programmatūra pati var noteikt un inicializēt jaunu tagu. Slēdžu vietā var izmantot džempera tapas.

3. darbība: programmatūra

Programmatūras galvenajai cilpai tika pievienoti papildinājumi, lai varētu nolasīt abus slēdžus un noteikt stāvokli, kas prasa tagu inicializēšanu. Kā minēts aparatūras sadaļā, tagu inicializāciju var manuāli vadīt ar slēdzi. Programmatūra var arī komandēt tagu inicializāciju divos citos gadījumos. Pirmkārt, ja tiek konstatēts jauns tags vai datu sektors, un, otrkārt, ja abas kredīta datu kopas ir bojātas.

Lai atzīmētu tagus, mērķa datu nozarei ir jāizmanto “atslēga A”. Mifare Classic 1k tagu noklusējuma atslēga ir “FF FF FF FF FF FF”, taču tā ir jāmaina jūsu lietojumprogrammai. Programmatūra nodrošina definīcijas gan noklusējuma atslēgai, gan jaunai atslēgai (“My_Key”). Vienkārši pievienojiet “My_Key” visas vēlamās vērtības. Programmatūra vienmēr mēģina vispirms autentificēt tagu, izmantojot “My_Key”. Ja tas neizdodas, tiek izsaukta taga inicializācijas kārtība un autentifikācijai tiek izmantota noklusējuma atslēga. Inicializācijas procedūra maina atslēgu uz “My_Key” un nosaka kredītus uz nulli. Ja jums ir tags ar noklusējuma atslēgu un jūs nezināt, kas tas ir, tad tagu nevar autentificēt. Ja tā notiek, iespējams, vēlēsities pārbaudīt citas datu nozares, izmantojot noklusējuma atslēgu, lai redzētu, vai tā ir pieejama. Piekabes bloks, datu bloks un dublēšanas bloki ir definēti programmatūras saraksta sākumā, lai tos varētu viegli mainīt.

Šīs lietojumprogrammas tagā saglabāto datu formātā tiek izmantoti tikai pozitīvi skaitļi (nav pieļaujams deficīts), un vērtības tiek saglabātas kā četri baiti iepakotā BCD (binārā kodētā decimālā). Tas ļauj piešķirt kredīta diapazonu no 0 līdz 99, 999, 999 (divi cipari uz baitu). Kredīta vērtība un tās 1 papildinājums izmanto tikai 8 no 16 baitiem vienā datu blokā, bet pārējie ir aizpildīti ar nullēm. Tajā pašā datu blokā ir vieta rezerves kopijai, bet es nolēmu, ka būtu drošāk dublējumu ievietot atsevišķā datu blokā. Rezerves bloks atrodas tajā pašā sektorā kā datu bloks, tāpēc atsevišķa autentifikācija nav nepieciešama. Lai būtu vēl drošāk, jūs varētu apsvērt dublējuma ievietošanu citā datu sektorā, bet tad, lai piekļūtu šiem datiem, būtu nepieciešams atsevišķs autentifikācijas solis.

Kad tiek nolasīti kredīti, tiek nolasīta arī papildinātā vērtība, un pēc tam abas tiek salīdzinātas. Ja ir neatbilstība, tiek nolasīts un salīdzināts rezerves vērtību/papildinājumu komplekts. Ja tie sakrīt, tiek uzskatīts, ka dublējums ir pareizs un tiek izmantots bojāto datu labošanai. Ja rezerves kopijas nesakrīt, atzīme tiek uzskatīta par sliktu un tiek mēģināts to atkārtoti inicializēt.

Palielinājuma un samazinājuma vērtības ir noteiktas saraksta priekšpusē, un paredzams, ka tās būs iepakotas BCD. Procedūras, kas veic palielināšanu un samazināšanu, efektīvi to dara ar 32 bitu numuru. Matemātika ir ļoti vienkārša, taču tai ir jāizmanto rutīnas, lai pielāgotu pārnesumu rezultātus katrā iepakotajā BCD baitā un no viena baita uz nākamo. Tas tiek panākts, izmantojot makro DAA (decimālās korekcijas papildinājums) un DAS (decimālās korekcijas atņemšana). Šie makro nodrošina, ka katrs 4 bitu BCD cipars vienmēr paliek diapazonā no 0 līdz 9.

Papildus iepriekšējā ziņojumā redzamajiem ziņojumiem šai lietojumprogrammai ir ziņojumi par daudzām papildu darbībām - īpaši, ja ir datu kļūdas un/vai tags ir jālabo vai jāinicializē. Kredīti tiek parādīti arī pirms un pēc palielināšanas/samazināšanas soļa, lai jūs varētu redzēt vērtību izmaiņas.

Tas ir šim ierakstam. Iepazīstieties ar maniem citiem elektronikas projektiem: www.boomerrules.wordpress.com

Ieteicams: