Talaan ng mga Nilalaman:

Electronic Wallet: 3 Hakbang
Electronic Wallet: 3 Hakbang

Video: Electronic Wallet: 3 Hakbang

Video: Electronic Wallet: 3 Hakbang
Video: BANGKO SENTRAL NG PILIPINAS, PINAGLALATAG NG MAS MAHIGPIT NA HAKBANG PARA SA E WALLET SERVICE PROVID 2024, Hunyo
Anonim
Electronic Wallet
Electronic Wallet

TANDAAN: Mayroon na akong Mga Tagubilin na nag-aalok ng Arduino code para sa RC522 at PN532.

Sa aking nakaraang post na detalyado ko ang mga pangunahing kaalaman para sa pakikipag-usap sa mga module ng MFRC522 at PN532 RFID upang mabasa / sumulat ng data mula sa Mifare Classic 1k na mga tag. Sa post na ito ay kukuha ako ng isang hakbang pa at ipinapakita kung paano gamitin ang mga modyul na iyon upang lumikha ng isang elektronikong pitaka mula sa mga tag. Tulad ng nakaraang post, ipinakita ito bilang isang pangunahing pagpapatupad ngunit dapat magbigay ng isang pundasyon para sa iba't ibang mga application na nangangailangan ng pagtaas / pagbawas o pag-andar ng tallying.

Hakbang 1: Integridad ng Data

Para sa isang electronic wallet laging may pag-aalala na ang isang tao ay maaaring magdagdag ng mga kredito nang hindi nagbabayad para sa kanila. Mayroon ding pag-aalala na ang mga kredito sa tag ay maaaring hindi sinasadyang masira sa isang pagsulat ng data. Ang mga pag-access sa data ay nangangailangan ng paggamit ng tag key kaya kinakailangan na baguhin ang default key kapag unang naisasagawa ang tag. May mga artikulo sa online na pinag-uusapan kung paano mag-hack ng isang tag kahit na hindi mo alam ang susi ngunit ang diskarte ay hindi gaanong mahalaga. Hindi ko inirerekumenda ang paggamit ng mga tag na ito para sa iyong bank account ngunit sapat ang mga ito para sa maraming mga hindi gaanong mapanganib na application.

Ang posibilidad ng katiwalian ng data ay medyo maliit ngunit ang software ay dapat na hindi maaaring hawakan ang pangunahing kaso. Ang prosesong ito ay nagsasangkot ng dalawang hakbang sa unang hakbang upang makita lamang ang katiwalian. Sa proyektong ito na pinangangasiwaan ng pag-iimbak ng parehong halaga ng kredito pati na rin ang 1 na pandagdag ng halaga ng kredito. Pinapayagan nito ang isang simpleng paghahambing ng mga halaga. Ang pangalawang hakbang ay upang mag-imbak ng isang backup na bersyon ng parehong halaga ng kredito at ang pandagdag. Pinapayagan nito ang isang pagpapatakbo sa pagbawi kung ang unang hanay ng mga kredito ay nasira. Kung ang parehong mga hanay ay nasira pagkatapos ay ang pagsubok ng software na gawing muli ang tag na nagreresulta sa pagkawala ng lahat ng mga kredito.

Hakbang 2: Hardware

Hardware
Hardware

Ang mga koneksyon sa hardware ay ipinapakita sa diagram sa itaas. Ito ay ang parehong pag-set up tulad ng nakaraang post na may pagdaragdag ng dalawang mga switch at isang pull-up risistor. Ang isang switch ay hindi nangangailangan ng isang pull-up risistor sapagkat ito ay nasa isang input ng PIC na may nakapaloob na mahinang kakayahan sa pag-pull-up. Sa pagsasagawa ay maitatago ang parehong mga switch dahil ginagamit ito para sa pagdaragdag ng mga kredito at para sa pagsisimula ng isang tag. Opsyonal ang switch na magpasimula (upang gawin ang manu-manong pag-zero ng credit) sapagkat ang software ay maaaring makakita at magpasimula ng isang bagong tag sa sarili nitong. Maaaring gamitin ang mga jumper pin sa halip na mga switch.

Hakbang 3: Software

Ang mga karagdagan sa pangunahing loop sa software ay ginawa upang payagan ang pagbabasa ng dalawang mga switch at para sa pagtuklas ng isang kundisyon na nangangailangan ng pagsisimula ng tag. Tulad ng nabanggit sa seksyon ng hardware, ang pagsisimula ng tag ay maaaring manu-manong iniutos ng isang switch. Maaari ring mag-utos ang software ng isang pagsisimula sa tag sa dalawang iba pang mga kaso. Una, kung nakakita ito ng isang bagong sektor ng sektor ng tag o data at pangalawa, kung ang parehong hanay ng data ng kredito ay nasira.

Ang pagpapatotoo ng mga tag ay nangangailangan ng paggamit ng "key A" para sa target na sektor ng data. Ang default key para sa Mifare Classic 1k na tag ay "FF FF FF FF FF FF" ngunit dapat baguhin para sa iyong aplikasyon. Ang software ay nagbibigay ng mga tumutukoy para sa parehong mga default key at isang bagong key ("My_Key"). I-plug in lamang ang anumang mga halagang nais mo sa "My_Key". Palaging tinatangka ng software na patunayan muna ang tag gamit ang "My_Key". Kung nabigo iyon, pagkatapos ay ang gawain na gawing una ang tag ay tinawag at ang default key ay ginagamit para sa pagpapatotoo. Binabago ng nakagawian na gawain ang susi sa "My_Key" at itinatakda ang mga kredito sa zero. Kung mayroon kang isang tag na may isang hindi default na key at hindi mo alam kung ano ito, kung gayon ang tag ay hindi maaaring mapatunayan. Kung nangyari ito baka gusto mong suriin ang iba pang mga sektor ng data gamit ang default key upang makita kung may magagamit. Ang bloke ng Trailer, block ng Data, at mga bloke ng Backup ay natukoy sa simula ng listahan ng software upang madali mong mabago ang mga ito.

Ang format para sa data na nakaimbak sa tag para sa application na ito ay gumagamit lamang ng mga positibong numero (hindi pinapayagan ang mga depisit) at mga halaga ay nakaimbak bilang apat na byte ng naka-pack na BCD (Binary Coded Decimal). Pinapayagan nito ang isang saklaw ng kredito mula 0 hanggang 99, 999, 999 (dalawang digit bawat byte). Ang halaga ng kredito at ang pandagdag ng 1 nito ay gumagamit lamang ng 8 sa 16 na mga byte sa isang solong bloke ng data at ang natitira ay naka-pad na may mga zero. Mayroong puwang sa parehong bloke ng data para sa backup na kopya ngunit napagpasyahan kong mas ligtas na ilagay ang backup sa isang hiwalay na bloke ng data. Ang backup block ay nasa parehong sektor bilang bloke ng data kaya hindi kinakailangan ang isang hiwalay na pagpapatotoo. Upang maging mas ligtas maaari mong isaalang-alang ang paglalagay ng backup sa isang iba't ibang sektor ng data ngunit kailangan ng isang hiwalay na hakbang sa pagpapatotoo upang ma-access ang data na iyon.

Kapag ang isang nabasa ay tapos na ng mga kredito ang kasamang halaga ay basahin din at pagkatapos ang dalawa ay inihambing laban sa bawat isa. Kung mayroong isang hindi pagtutugma, pagkatapos ay ang backup na hanay ng halaga / pagkumpleto ay nabasa at inihambing. Kung tumutugma sila pagkatapos ay ang backup ay ipinapalagay na wasto at ginagamit upang ayusin ang nasirang data. Kung ang mga backup na kopya ay hindi tumutugma sa gayon ang tag ay itinuturing na masama at isang pagtatangka ay ginawa upang muling simulan ito.

Ang mga halaga ng pagtaas at pagbawas ay tinukoy malapit sa harap ng listahan at inaasahang nasa naka-pack na BCD. Ang mga gawain na ginagawa ang pagdaragdag at pagbawas ay mabisang ginagawa ito sa isang 32-bit na numero. Ang matematika ay napaka-simple ngunit nangangailangan ng paggamit ng mga gawain upang ayusin ang mga resulta para sa pagdadala sa loob ng bawat naka-pack na BCD byte at mula sa isang byte hanggang sa susunod. Nakamit iyon sa pamamagitan ng paggamit ng macros DAA (Decimal Adjust Addition) at DAS (Decimal Adjust Subtraction). Tinitiyak ng mga macros na ang bawat 4-bit na BCD digit ay laging mananatili sa loob ng saklaw na 0-9.

Bilang karagdagan sa mga ipinapakitang mensahe sa nakaraang post, ang application na ito ay may mga mensahe para sa marami sa mga karagdagang hakbang - partikular kung mayroong mga error sa data at / o ang tag ay kailangang maayos o gawing una. Ang mga kredito ay ipinapakita din bago at pagkatapos ng isang hakbang na pagtaas / pagbawas upang makita mo ang mga pagbabago sa mga halaga.

Iyon lang para sa post na ito. Suriin ang aking iba pang mga proyekto sa electronics sa: www.boomerrules.wordpress.com

Inirerekumendang: