Mündəricat:

Elektron cüzdan: 3 addım
Elektron cüzdan: 3 addım

Video: Elektron cüzdan: 3 addım

Video: Elektron cüzdan: 3 addım
Video: Kriptovalyuta Cüzdanı Açmaq 2024, Iyun
Anonim
Elektron cüzdan
Elektron cüzdan

Qeyd: İndi RC522 və PN532 üçün Arduino kodu təklif edən Təlimatlarım var.

Əvvəlki yazımda Mifare Classic 1k etiketlərindən məlumat oxumaq/yazmaq üçün MFRC522 və PN532 RFID modulları ilə ünsiyyət qurmağın əsaslarını ətraflı izah etmişəm. Bu yazıda bir addım daha irəli gedirəm və etiketlərdən elektron cüzdan yaratmaq üçün bu modullardan necə istifadə edəcəyimi göstərirəm. Əvvəlki yazıda olduğu kimi, bu əsas bir tətbiq olaraq təqdim olunur, lakin artım/azalma və ya hesablama funksiyaları tələb edən müxtəlif tətbiqlər üçün bir zəmin yaratmalıdır.

Addım 1: Məlumat Bütövlüyü

Elektron cüzdan üçün hər zaman birinin ödəmədən kredit əlavə edə biləcəyindən narahat olur. Məlumat yazarkən etiketdəki kreditlərin təsadüfən pozula biləcəyi də narahatlıq doğurur. Məlumat girişləri etiket düyməsinin istifadəsini tələb edir, buna görə etiket ilk işə salındıqda standart düyməni dəyişdirmək lazımdır. Açarı bilməsəniz də, texnikanın əhəmiyyətsiz olmasa da bir etiketi necə sındıracağınızdan bəhs edən onlayn məqalələr var. Bu etiketləri bank hesabınız üçün istifadə etməyi məsləhət görmürəm, lakin daha az riskli tətbiqlər üçün kifayət qədər yaxşıdır.

Məlumat korrupsiyası ehtimalı nisbətən azdır, lakin proqram ən azından əsas işi həll edə bilməlidir. Bu proses korrupsiyanı aşkar etmək üçün ilk addım olmaqla iki addımı əhatə edir. Həm kredit dəyərinin, həm də kredit dəyərinin 1 -ci tamamlayıcısının saxlanılması ilə idarə olunan bu layihədə. Bu, dəyərləri sadə bir şəkildə müqayisə etməyə imkan verir. İkinci addım, həm kredit dəyərinin, həm də tamamlayıcısının bir yedek versiyasını saxlamaqdır. Bu, ilk kredit dəsti zədələnərsə, bərpa əməliyyatına imkan verir. Hər iki dəst də pozulursa, proqram bütün kreditlərin itirilməsi ilə nəticələnən etiketi yenidən işə salmağa çalışır.

Addım 2: Avadanlıq

Avadanlıq
Avadanlıq

Avadanlıq əlaqələri yuxarıdakı diaqramda göstərilmişdir. Bu, iki açar və çəkmə müqavimətinin əlavə edilməsi ilə əvvəlki yazı ilə eyni quruluşdur. Zəif çəkmə qabiliyyəti olan bir PIC girişində olduğu üçün bir açar çəkmə müqavimətinə ehtiyac duymur. Praktikada hər iki açar kredit əlavə etmək və etiketin işə salınması üçün istifadə edildiyi üçün gizlənəcək. Başlanğıc açarı isteğe bağlıdır (əl ilə kredit sıfırlaması etmək üçün), çünki proqram özü yeni bir etiketi aşkarlaya və işə sala bilər. Anahtarlar əvəzinə tullanan sancaqlar istifadə edilə bilər.

Addım 3: Proqram təminatı

Proqramdakı əsas döngəyə iki açarın oxunması və etiketin başlatılmasını tələb edən bir vəziyyətin aşkar edilməsi üçün əlavələr edildi. Avadanlıq bölməsində qeyd edildiyi kimi, etiketin işə salınması bir keçid ilə əllə əmr edilə bilər. Proqram, digər iki halda bir etiket başlatma əmrini verə bilər. Birincisi, yeni bir etiket və ya məlumat sektoru algılarsa, ikincisi, hər iki kredit məlumatı korlanarsa.

Etiketlərin təsdiqlənməsi, hədəf məlumat sektoru üçün "A" düyməsinin istifadəsini tələb edir. Mifare Classic 1k etiketləri üçün standart açar "FF FF FF FF FF FF" dir, ancaq tətbiqiniz üçün dəyişdirilməlidir. Proqram həm standart açar, həm də yeni bir açar ("My_Key") üçün təriflər təqdim edir. İstədiyiniz dəyərləri "My_Key" ə daxil edin. Proqram həmişə "My_Key" istifadə edərək etiketi təsdiqləməyə çalışır. Bu uğursuz olarsa, etiketi işə salma qaydası çağırılır və identifikasiya üçün standart açar istifadə olunur. Başlama rutini açarı "My_Key" olaraq dəyişdirir və kreditləri sıfıra qoyur. Varsayılan olmayan bir açarınız varsa və bunun nə olduğunu bilmirsinizsə, etiket təsdiqlənə bilməz. Bu baş verərsə, mövcud olub olmadığını görmək üçün standart düyməni istifadə edərək digər məlumat sektorlarını yoxlamaq istəyə bilərsiniz. Treyler bloku, Məlumat bloku və Yedəkləmə blokları, proqram siyahısının əvvəlində təyin olunduğundan onları asanlıqla dəyişə bilərsiniz.

Bu tətbiq üçün etiketdə saxlanılan məlumatların formatı yalnız müsbət rəqəmlərdən istifadə edir (çatışmazlıqlara icazə verilmir) və dəyərlər paketlənmiş BCD (İkili Kodlu Ondalık) dörd baytı olaraq saxlanılır. Bu, 0 ilə 99, 999, 999 arasında bir kredit aralığına imkan verir (baytda iki rəqəm). Kredit dəyəri və 1 -in tamamlayıcısı tək bir məlumat blokunda 16 baytdan yalnız 8 -ni istifadə edir, qalanları sıfırlarla doldurulur. Yedək nüsxəsi üçün eyni məlumat blokunda yer var, amma ehtiyat nüsxəni ayrı bir məlumat blokuna yerləşdirməyin daha təhlükəsiz olduğuna qərar verdim. Yedək bloku məlumat bloku ilə eyni sektordadır, buna görə ayrı bir identifikasiya tələb olunmur. Daha təhlükəsiz olmaq üçün ehtiyat nüsxəsini fərqli bir məlumat sektoruna yerləşdirməyi düşünə bilərsiniz, ancaq bu məlumatlara daxil olmaq üçün ayrı bir identifikasiya addımına ehtiyacınız olacaq.

Kreditlər oxunduqda tamamlanan dəyər də oxunur və sonra ikisi bir -biri ilə müqayisə olunur. Uyğunsuzluq varsa, ehtiyat dəyər/tamamlayıcı dəsti oxunur və müqayisə olunur. Uyğun olarsa, ehtiyat nüsxənin düzgün olduğu qəbul edilir və zədələnmiş məlumatları təmir etmək üçün istifadə olunur. Yedek nüsxələr uyğun gəlmirsə, etiket pis sayılır və yenidən işə salınmağa cəhd edilir.

Artım və azalma dəyərləri siyahının ön hissəsinin yaxınlığında təyin olunur və paketli BCD -də olması gözlənilir. Artırma və azalma qaydaları bunu 32 bitlik bir rəqəmdə təsirli edir. Riyaziyyat çox sadədir, lakin hər paketlənmiş BCD baytı daxilində və bir baytdan digərinə keçmə nəticələrini tənzimləmək üçün rutinlərin istifadəsini tələb edir. Bu, DAA (Ondalık Ayarlama Əlavəsi) və DAS (Ondalık Ayarlama Çıxarma) makrolarının istifadəsi ilə əldə edilir. Bu makrolar, hər 4 bitlik BCD rəqəminin həmişə 0-9 aralığında qalmasını təmin edir.

Əvvəlki yazıda göstərilən mesajlara əlavə olaraq, bu tətbiqdə bir çox əlavə addımlar üçün mesajlar var - xüsusən də məlumat səhvləri varsa və/və ya etiketin düzəldilməsi və ya işə salınması lazımdır. Kreditlər, artım/azalma addımından əvvəl və sonra da göstərilir ki, dəyərlərin dəyişdiyini görə biləsiniz.

Bu yazı üçün budur. Digər elektronika layihələrimə baxın: www.boomerrules.wordpress.com

Tövsiyə: