Mundarija:

Elektron hamyon: 3 qadam
Elektron hamyon: 3 qadam

Video: Elektron hamyon: 3 qadam

Video: Elektron hamyon: 3 qadam
Video: Telefonda kuniga 10$ pul ishlash | Oson orqali P2P sxema 2024, Iyun
Anonim
Elektron hamyon
Elektron hamyon

QAYD: Endi menda RC522 va PN532 uchun Arduino kodini taklif qiladigan Instructables bor.

Oldingi xabarimda Mifare Classic 1k teglaridan ma'lumotlarni o'qish/yozish uchun MFRC522 va PN532 RFID modullari bilan aloqa qilish asoslarini batafsil bayon qildim. Bu postda men bir qadam oldinga qadam tashlayman va teglardan elektron hamyon yaratish uchun ushbu modullardan qanday foydalanishni ko'rsataman. Oldingi postda bo'lgani kabi, bu ham asosiy dastur sifatida taqdim etilgan, lekin uni oshirish/kamaytirish yoki hisoblash funktsiyalarini talab qiladigan turli xil ilovalar uchun asos bo'lishi kerak.

1 -qadam: Ma'lumotlarning yaxlitligi

Elektron hamyon uchun har doim kimdir pul to'lamasdan kredit qo'shishi mumkin degan xavotir bor. Ma'lumot yozish paytida tegdagi kreditlar tasodifan buzilib ketishi mumkin degan xavotir bor. Ma'lumotlarga kirish teg kalitidan foydalanishni talab qiladi, shuning uchun teg birinchi ishga tushirilganda standart kalitni o'zgartirish kerak. Internetda maqolalar bor, ular kalitni bilmasangiz ham, tegni qanday buzish mumkinligi haqida gapiradi, lekin bu texnik ahamiyatsiz emas. Men sizning bank hisobingiz uchun bu teglardan foydalanishni tavsiya etmayman, lekin ular kamroq xavfli ilovalar uchun juda yaxshi.

Ma'lumotlarning buzilish ehtimoli nisbatan kichik, lekin dasturiy ta'minot hech bo'lmaganda asosiy ishni hal qila olishi kerak. Bu jarayon korruptsiyani aniqlash uchun birinchi qadam bilan ikki bosqichni o'z ichiga oladi. Ushbu loyihada kredit qiymatini ham, 1 -sonli kredit qiymatini ham saqlash orqali amalga oshiriladi. Bu qiymatlarni oddiy taqqoslashga imkon beradi. Ikkinchi qadam - kredit qiymatining ham, uning to'ldiruvchisining ham zaxira nusxasini saqlash. Agar kreditlarning birinchi to'plami buzilgan bo'lsa, bu operatsiyani tiklashga imkon beradi. Agar ikkala to'plam ham buzilgan bo'lsa, dasturiy ta'minot barcha kreditlarning yo'qolishiga olib keladigan yorliqni qayta tiklashga urinadi.

2 -qadam: Uskuna

Uskuna
Uskuna

Uskuna ulanishlari yuqoridagi diagrammada ko'rsatilgan. Bu ikkita kalit va tortish qarshiligi qo'shilgan oldingi xabar bilan bir xil. Bir kalitga tortish qarshiligi kerak emas, chunki u PIC kirishida, tortish qobiliyati zaif. Amalda ikkala kalit ham yashiriladi, chunki ular kredit qo'shish va tegni ishga tushirish uchun ishlatiladi. Boshlash kaliti ixtiyoriydir (qo'lda kreditni nollash), chunki dasturiy ta'minot o'z -o'zidan yangi tegni aniqlay oladi va ishga tushiradi. Kalitlar o'rniga o'tish pimlarini ishlatish mumkin edi.

3 -qadam: dasturiy ta'minot

Dasturiy ta'minotning asosiy tsikliga ikkita kalitni o'qish va tegni ishga tushirishni talab qiladigan holatni aniqlash uchun qo'shimchalar kiritildi. Uskuna bo'limida aytib o'tilganidek, teglarni ishga tushirish kalit bilan qo'lda boshqarilishi mumkin. Dastur, shuningdek, boshqa ikkita holatda tegni ishga tushirishni buyurishi mumkin. Birinchidan, agar u yangi teg yoki ma'lumotlar sektorini aniqlasa, ikkinchidan, agar kredit ma'lumotlarining ikkala to'plami ham buzilgan bo'lsa.

Teglarni autentifikatsiya qilish maqsadli ma'lumotlar sektori uchun "kalit A" dan foydalanishni talab qiladi. Mifare Classic 1k teglari uchun standart kalit - "FF FF FF FF FF FF", lekin sizning ilovangiz uchun o'zgartirilishi kerak. Dastur standart kalitni ham, yangi kalitni ham belgilaydi ("My_Key"). Faqat kerakli qiymatlarni "My_Key" ga ulang. Dastur har doim "My_Key" yordamida tegni haqiqiyligini tekshirishga harakat qiladi. Agar bu bajarilmasa, tegni ishga tushirish tartibi chaqiriladi va autentifikatsiya uchun standart kalit ishlatiladi. Boshlash tartibi kalitni "My_Key" ga o'zgartiradi va kreditlarni nolga o'rnatadi. Agar sizda standart kalit bo'lmagan yorliq bo'lsa va uning nima ekanligini bilmasangiz, tegni tasdiqlab bo'lmaydi. Agar bu sodir bo'lsa, siz boshqa ma'lumotlar sektorlarini standart kalit yordamida tekshirib ko'rishingiz mumkin. Treyler bloki, Ma'lumotlar bloki va Zaxira bloklari dasturiy ta'minot ro'yxatining boshida aniqlangan, shuning uchun ularni osongina o'zgartirish mumkin.

Ushbu dastur uchun tegda saqlangan ma'lumotlar formati faqat ijobiy raqamlardan foydalaniladi (kamchiliklarga yo'l qo'yilmaydi) va qiymatlar to'rt baytli BCD (Ikkilik kodli o'nlik) sifatida saqlanadi. Bu 0 dan 99, 999, 999 gacha (bir bayt uchun ikkita raqam) kredit oralig'ini olish imkonini beradi. Kredit qiymati va uning 1 -qo'shimchalari bitta ma'lumot blokida 16 baytdan 8tasini ishlatadi, qolganlari esa nol bilan to'ldirilgan. Xuddi shu ma'lumotlar blokida zaxira nusxasi uchun joy bor, lekin men zaxirani alohida ma'lumotlar blokiga qo'yish xavfsizroq deb qaror qildim. Zaxira bloki ma'lumotlar bloki bilan bir xil sektorda joylashgan, shuning uchun alohida autentifikatsiya talab qilinmaydi. Xavfsizroq bo'lish uchun siz zaxirani boshqa ma'lumotlar sektoriga joylashtirishni o'ylab ko'rishingiz mumkin, lekin bu ma'lumotlarga kirish uchun autentifikatsiya qilish uchun alohida qadam kerak bo'ladi.

Kreditlar o'qilganda, to'ldirilgan qiymat ham o'qiladi va keyin ikkalasi bir -biri bilan taqqoslanadi. Agar mos kelmasa, zaxira/to'ldiruvchi to'plami o'qiladi va taqqoslanadi. Agar ular mos kelsa, zaxira to'g'ri deb hisoblanadi va buzilgan ma'lumotlarni tuzatish uchun ishlatiladi. Agar zaxira nusxalari mos kelmasa, yorliq yomon deb hisoblanadi va uni qayta ishga tushirishga harakat qilinadi.

Kattalashtirish va kamaytirish qiymatlari ro'yxatning old tomonida aniqlanadi va BCD bilan to'ldirilgan bo'lishi kutilmoqda. Kattalashtirish va kamaytirishni bajaradigan tartiblar buni 32-bitli raqamda samarali bajaradi. Matematika juda sodda, lekin har bir qadoqlangan BCD bayt ichida va bir baytdan ikkinchisiga o'tkazish natijalarini sozlash uchun tartiblardan foydalanishni talab qiladi. Bunga DAA (O'nlik sozlamalarni qo'shish) va DAS (O'nliklarni ajratish ayirish) makrolari yordamida erishiladi. Bu makrolar BCD ning har 4-bitli raqami har doim 0-9 oralig'ida bo'lishiga ishonch hosil qiladi.

Oldingi xabarda ko'rsatiladigan xabarlarga qo'shimcha ravishda, bu ilovada ko'plab qo'shimcha qadamlar uchun xabarlar mavjud - ayniqsa, agar ma'lumotlar xato bo'lsa va/yoki tegni tuzatish yoki ishga tushirish kerak bo'lsa. Kreditlar o'sish/kamayish bosqichidan oldin va keyin ko'rsatiladi, shunda siz qiymatlarning o'zgarishini ko'rasiz.

Mana bu post uchun. Boshqa elektronika loyihalarimni www.boomerrules.wordpress.com saytida ko'ring

Tavsiya: