Mundarija:

RC522 va PN532 RFID asoslari: 10 qadam
RC522 va PN532 RFID asoslari: 10 qadam

Video: RC522 va PN532 RFID asoslari: 10 qadam

Video: RC522 va PN532 RFID asoslari: 10 qadam
Video: Знакомство с RFID и подключение модуля RC522 к Arduino 2024, Iyul
Anonim
RC522 va PN532 RFID asoslari
RC522 va PN532 RFID asoslari

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

Bir muncha vaqt oldin men tajriba o'tkazish uchun uch xil RFID modulini sotib oldim. Avvalgi loyihada men asosiy xavfsizlik funktsiyasini bajarish uchun 125 kHz oddiy moduldan qanday foydalanishni batafsil bayon qildim. Bu kabi modullar faqat o'qish uchun teglardan foydalanadi, shuning uchun bu jarayon identifikatorni skanerlaydi, agar kerak bo'lsa saqlaydi va saqlangan identifikator bilan solishtiradi. Men sotib olgan boshqa modullar 13.56 MGts chastotada ishlaydi va o'qish va yozish mumkin bo'lgan teglardan foydalanadi, shuning uchun ularni asosiy xavfsizlik uchun ishlatish behuda. Ikkita umumiy modulda RC522 chipi yoki PN532 chipi ishlatiladi - ikkalasi ham NXP tomonidan ishlab chiqarilgan.

Agar siz mening boshqa loyihalarimni o'qigan bo'lsangiz, bilasizki, men arzon PIC mikrokontrolderlari va montaj tilidagi dasturlardan foydalanishni yaxshi ko'raman. Men izlayotgan narsa modullar va RFID teglari bilan gaplashish uchun zarur bo'lgan ketma -ketliklar edi. Modullar uchun ko'plab onlayn dasturlar mavjud bo'lsa -da, ularning ko'pchiligi Arduino uchun "C" dasturida yozilgan va SPI interfeysidan foydalanadi. Bundan tashqari, chiplar va Mifare teglari uchun qo'llanmalar biroz shifrni talab qiladi. Bu xabar, birinchi navbatda, men loyihani boshlaganimda xohlagan ma'lumotim haqida. Men har bir modul uchun zarur bo'lgan asosiy buyruqlarni bajarish uchun PIC yig'ish dasturlarini ham o'z ichiga olaman. Agar siz PIC va/yoki yig'ish tilidan foydalanmasangiz ham, manba kodi hech bo'lmaganda har bir qadamni bajarish uchun zarur bo'lgan aniq buyruqlar haqida yaxshi tasavvurga ega bo'lishi kerak.

1 -qadam: ketma -ket interfeyslar

Seriyali interfeyslar
Seriyali interfeyslar
Seriyali interfeyslar
Seriyali interfeyslar
Seriyali interfeyslar
Seriyali interfeyslar
Seriyali interfeyslar
Seriyali interfeyslar

Ushbu modullarda ishlatiladigan ikkala chip ham SPI, I2C yoki UART (HSSP) orqali o'zaro bog'lanish imkoniyatiga ega. PN532 modulida kerakli interfeysni tanlash uchun ishlatiladigan DIP kaliti bor, lekin MFRC522 moduli SPI interfeysi uchun qattiq simli. Men PIC-ning o'rnatilgan UART-dan foydalanishni ma'qul ko'raman, shuning uchun MFRC522 modulini UART rejimiga o'tkazishning iloji borligini bilish uchun Internetda ovladim. Men topgan narsa shuki, bortda bitta izni kesib tashlash ayyorlik qiladi. Kesish chipning EA pinidan 3,3 voltni samarali ravishda olib tashlaydi. Texnik jihatdan, EA pimi erga ulanishi kerak, lekin ko'pchilik odamlar chipning zichligini hisobga olgan holda, lehimlash qobiliyatini o'chira olmaydi. Xavotir olmang, chunki EA pinida ichki tortish moslamasi yo'q va eski TTL mantiqiy kirishlari kabi "suzmaydi". Kesish joyi uchun chip diagrammasi va taxta qismining rasmiga qarang. Qisqa izni faqat EA piniga to'g'ridan -to'g'ri kesib qo'yganingizga ishonch hosil qiling.

2 -qadam: Uskuna

Uskuna
Uskuna

UART aloqasi uchun apparat ulanishlari yuqoridagi diagrammada ko'rsatilgan. MFRC522 uchun UART ulanishlari taxtada belgilanmagan, lekin sxemada ko'rsatilganidek, SDA pin UART ma'lumotlarini oladi va MISO pin UART ma'lumotlarini uzatadi. PN532 moduli taxtaning pastki qismida UART belgilariga ega.

Ikkala modul ham 3,3 voltda ishlaydi va PIC TX pinidan 5 voltli mantiq darajasi ham cheklangan bo'lishi kerak. LCD ulanish-bu mening oldingi loyihalarimda ishlatilgan standart 4-bitli o'rnatish. Barcha xabarlar uchun standart format standart 1602 LCD (2 satrdan 16 belgidan iborat) uchun o'rnatiladi. Menda disk raskadrovka paytida xom ma'lumotlar yig'indisi uchun ishlatiladigan 2 qatorli LCD -dan 40 belgi bor, shuning uchun men qo'shimcha displey maydonidan foydalanishimga imkon beradigan dasturiy ta'minotni kiritdim.

3 -qadam: Ma'lumotlar bloklari

Ushbu loyiha uchun ishlatiladigan Mifare Classic 1k teglari 16 sektor, har bir sektor uchun to'rtta ma'lumotlar bloki, ma'lumotlar bloki uchun 16 bayt sifatida tuzilgan. 64 ta ma'lumotlar blokidan atigi 47 tasini ishlatish mumkin. 0 ma'lumotlar bloki ishlab chiqaruvchi ma'lumotlarini o'z ichiga oladi va 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59 va 63 bloklar treyler bloklari deb ataladi. Treyler bloklari har bir sektorda oxirgi bo'lib, ular ikkita kalit va blokli kirish bitlarini o'z ichiga oladi. Kalitlar va bloklarga kirish bitlari faqat shu sektordagi ma'lumotlar bloklariga taalluqlidir, shuning uchun siz har bir sektor uchun har xil kalitlarga va kirish qoidalariga ega bo'lishingiz mumkin. Standart kalitlar "FF FF FF FF FFh" ga o'rnatiladi. Ushbu asosiy loyiha uchun men faqat bitta ma'lumotlar blokidan foydalanaman va standart kalitlarni va kirish bitlarini saqlayman. Ushbu kartalarga tegishli ko'plab hujjatlar mavjud, shuning uchun ularni "Mifare" ni onlayn qidirish yoki agar siz ularni chuqurroq o'rganmoqchi bo'lsangiz, NXP veb -saytiga tashrif buyuring.

4 -qadam: Umumiy operatsiya

Ikkala modul ham kirish usuli va teglarga kirish usuli bilan o'ziga xos bo'lsa -da, ishni bajarish uchun umumiy jarayon talab qilinadi. Ushbu loyiha uchun biz teglar Mifare Classic 1k turiga kiradi va biz antenna maydonida bir vaqtning o'zida bitta tegga ruxsat beramiz. Asosiy qadamlar quyida aniqlangan.

· Modulni ishga tushirish: Umuman olganda, bu chipdagi registrlarga qiymatlarni yozish, "uyg'otish" buyruqlarini yuborish va antennaga quvvatni yoqish kabi narsalarni talab qiladi. Batareya bilan ishlaydigan ilovada siz batareyani tejash uchun antennaning quvvatini yoqishingiz va o'chirishni xohlaysiz, lekin bu oddiy dastur uchun biz uni bir marta yoqamiz va keyin yoqamiz.

· Kripto bayrog'ini tozalang (faqat 522): Agar belgi tasdiqlansa, foydalanuvchiga teg bilan aloqalar shifrlanganligini bildirish uchun bayroq o'rnatiladi. Bu bayroqni skaner qilinayotgan teg bir xil bo'lsa ham, foydalanuvchi keyingi skanerdan oldin tozalashi kerak.

· Tegni qidirish: Modul asosan "U erda hech kim yo'qmi?" va tag "Men shu yerdaman" deb javob beradi. Agar modul tez javob bermasa, u tinglashni to'xtatadi. Bu shuni anglatadiki, biz yorliq topilmaguncha modulga skanerlash buyruqlarini qayta -qayta yuborishimiz kerak.

· Foydalanuvchining identifikatsiya raqamini (UID) tegini oling: teg skanerlash so'roviga ba'zi cheklangan ma'lumotlar bilan javob beradi, masalan, teg turi. Bu shuni anglatadiki, UIDni olish uchun bizga boshqa buyruq yuborish kerak bo'ladi. UID Mifare Classic 1k teglari uchun to'rt baytdan iborat. Agar boshqa teglar uchun uzoqroq bo'lishi mumkin, lekin bu loyiha ularga tegishli emas.

· Tegni tanlang (faqat 522): UID foydalanuvchi o'qish va yozish uchun autentifikatsiya qilmoqchi bo'lgan tegni tanlash uchun ishlatiladi. Bu antenna maydonida bir nechta teg bo'lishi mumkinligiga asoslanadi. Bizning oddiy dasturimizda bunday emas, lekin biz baribir tegni tanlashimiz kerak.

· Tegning haqiqiyligini tasdiqlash: Agar biz tegni o'qish yoki yozishni xohlasak, bu qadam talab qilinadi. Agar biz faqat xavfsizlik dasturining teglarini farqlashni xohlasak, UID etarli. Autentifikatsiya qilish uchun biz UIDni bilishni va biz kirmoqchi bo'lgan tegning ma'lumotlar sektori uchun kriptovalyutani bilishimizni talab qiladi. Ushbu loyiha uchun biz standart kalitlarga tayanamiz, lekin mening keyingi loyiham kalitlarni elektron hamyon sifatida ishlatish uchun kalitlarni o'zgartiradi.

· Yorliqni o'qing yoki yozing: O'qishlar har doim so'raladigan ma'lumotlar blokining 16 baytini qaytaradi. Yozuvlar barcha 16 baytni bir vaqtning o'zida yozilishini talab qiladi. Agar siz bir xil ma'lumotlar sektorida boshqa blokni o'qishni yoki yozishni xohlasangiz, tegni qayta tasdiqlash shart emas. Agar siz boshqa ma'lumotlar sektori blokini o'qishni yoki yozishni xohlasangiz, tegni ushbu sektor uchun kalit yordamida qayta tasdiqlash kerak.

5 -qadam: MFRC522 moduliga kirish tartibi

Ishga tushirish tartibi men ko'rib chiqqan ilovalarning ko'pida topilgan quyidagi asosiy qadamlarni o'z ichiga oladi:

· Ma'lumotlar baytini yuboring (keyingi paragrafga qarang)

· Yumshoq tiklash

· RF qabul qiluvchining daromadini belgilang (agar standartdan boshqa narsa kerak bo'lsa)

· ASK modulyatsiyasi foizini 100% ga o'rnating.

· CRC hisob -kitoblari uchun urug 'qiymatini o'rnating

· Antennani yoqing

· Dasturiy ta'minot versiyasini oling (shart emas)

Tushunarsiz sabablarga ko'ra, mening modulim ishga tushadi va ma'lumot baytisiz yozish buyrug'ini olgan deb o'ylaydi. Bu modul bilan bog'liq muammomi, bilmayman, lekin boshqa joylarda unga havolalarni ko'rmaganman. Men ham apparat, ham dasturiy ta'minotni qayta tiklash bilan tajriba o'tkazdim va muammoni hal qilmadim. Mening yechimim - modulni ishga tushirish tartibining boshida "0" (aniqlanmagan) ro'yxatga olish uchun qo'g'irchoq o'qish. Agar modul buni noma'lum yozish buyrug'i uchun ma'lumot sifatida ko'rsa, hech qanday yomon ta'siri ko'rinmaydi. Agar u buni o'qish buyrug'i sifatida ko'rsa, unda hech qanday foydali narsa bo'lmaydi. Meni muammoni to'liq aniqlay olmasligim meni bezovta qilmoqda, ayniqsa, agar modulni apparat holatiga qaytarish muammoni hal qilmasa.

RC522 chipi bir qancha registrlardan tashkil topgan bo'lib, ularning aksariyati o'qish va yozishni o'z ichiga oladi. Yozishni amalga oshirish uchun registr raqami modulga yuboriladi va undan keyin yoziladigan qiymat yoziladi. O'qishni amalga oshirish uchun registr raqamiga 0x80 qo'shiladi va u modulga yuboriladi. Yozish buyrug'iga javob - bu kirish registrining aks -sadosi. O'qish buyrug'iga javob registr tarkibidir. Dastur buyruq to'g'ri bajarilganligini tekshirish uchun ushbu bilimlardan foydalanadi.

6 -qadam: PN532 moduliga kirish tartibi

Ishga tushirish tartibi quyidagi zarur bosqichlarni o'z ichiga oladi:

· Boshlash satrini yuborish: Bu UART interfeysiga xosdir. Qo'llanmada UART interfeysi interfeysda aniqlangan beshinchi ko'tarilish chetida uyg'onishi aytilgan. 0x55, 0x55, 0x00, 0x00, 0x00, 0x00 yuborishni tavsiya qiladi. Ko'pincha, qirralari ko'tarilgan belgilar soni etarli bo'lishi kerak va ular buyruq kirish so'ziga o'xshamasligi kerak (00 00 FF).

· Modulni uyg'otish: Foydalanuvchi qo'llanmasida ko'milgan, bu modul "LowVbat" deb nomlangan uyqu holatiga o'tishini ko'rsatadi. Bu holatdan chiqish uchun biz "SAMConfiguration" buyrug'ini yuborishimiz kerak.

PN532 buyruqlarni kirish, xabar va postamble o'z ichiga olgan belgilangan xabar formatida yuborilishini kutadi. Javob xabarlari bir xil formatda. Buyruq va javob xabarlari TFI (Frame Identifier) va buyruq versiyasini o'z ichiga oladi. Buyruq 0xD4 TFI -dan foydalanadi va javob 0xD5 -dan foydalanadi. Buyruqning versiyalari turlicha, lekin javob har doim buyruq versiyasini oshiradi va uni TFIdan keyin baytda qaytaradi. Bu izchillik javob xabarlarini tegishli ma'lumotlarni osongina skanerlashga imkon beradi.

Har bir buyruq xabari (kirish so'zidan keyin) xabarlar uzunligidan, 2 -sonli xabarlar uzunligidan, TFI, buyruq, ma'lumotlar, nazorat summasi va postambledan iborat. Dastur individual buyruqlar tuzadi, so'ngra nazorat yig'indisini hisoblaydigan va postamble qo'shadigan tartibni chaqiradi.

Javob uchun xabar formati buyruqqa o'xshaydi. Oddiy javob ACK (00 00 FF 00 FF 00) ni o'z ichiga oladi, so'ngra buyruqqa aniq javob bo'ladi. Har bir buyruq javobi 00 00 FF kirish so'zidan boshlanadi. Javobda DF TFI bayti bo'lishi kerak, keyin esa buyruq raqami 1 ga ko'paytiriladi. Bizning "SAMConfiguration" buyrug'i uchun (14) bu 15 bo'ladi. "SAMConfiguration" buyrug'i bu javobni oladi: 00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 00.

Modulga xos bo'lgan boshqa buyruqlar ham yuborilishi mumkin, lekin ular bu dastur uchun kerak emas. Men dasturiy ta'minotning versiya raqamini olish uchun chaqiriladigan tartibni kiritdim. Oddiy javob (ACK va kirish so'zidan keyin) quyidagicha bo'ladi: 06 FA D5 03 32 01 06 07 E8 00. "01 06 07" dasturiy ta'minotning 1.6.7 versiyasini ko'rsatadi.

7 -qadam: teglarga kirish ketma -ketligi

Modul tayyor bo'lgach, biz teglarga xos buyruqlarni yuborishimiz mumkin. Ma'lumotlarni o'qish yoki yozish uchun uning identifikatsiya raqami (UID) bo'lishi kerak. Keyin UID va kalit ma'lumotlarning ma'lum bir sektoriga o'qish/yozish uchun ruxsat berish uchun ishlatiladi. Ma'lumotlarni o'qish/yozish har doim ko'rsatilgan ma'lumotlar blokidagi barcha 16 baytda amalga oshiriladi. Bu shuni anglatadiki, odatiy dastur ma'lumotlar blokini o'qiydi, ma'lumotlarni xohlaganicha o'zgartiradi va keyin yangi ma'lumotlarni tagga yozadi.

8 -qadam: dasturiy ta'minot

PIC UART ma'lumot baytini olganda, uzilishlarni boshqarish dasturi chaqiriladi. Oldingi UART loyihalarimning ba'zilarida men uzilish ishlovchisidan foydalanish o'rniga RX uzilish bayrog'ini so'roq qila oldim. Bu dasturiy ta'minot uchun, ayniqsa, PN532 uchun, RC522 ga qaraganda ancha yuqori tezlikda aloqa qiladigan, bunday emas. RC522 -ning UART interfeysi 9600 bayt bilan cheklangan, PN532 uchun standart 115k va uni 1.288M bodgacha o'rnatish mumkin. Qabul qilingan baytlar bufer maydonida saqlanadi va dasturiy ta'minotning asosiy qismi ularni kerak bo'lganda oladi.

New_Msg bayrog'i baytlar qabul qilinganligini va Byte_Count qancha ekanligini ko'rsatadi. Men dasturiy ta'minotni disk raskadrovka paytida qabul qilish buferining tarkibini ko'rsatish uchun chaqirish mumkin bo'lgan "Disp_Buff" tartibini qo'shdim. Qaytish xabarlarining ba'zilari odatiy 1602 displeyidan oshib ketadi, lekin menda 2 satrli LCD -ning 40 ta belgisi bor, men uni onlaynda ortiqcha elektronika saytida topdim. "Max_Line" ta'rifi sizning LCD o'lchamingiz uchun o'rnatilishi mumkin. Agar "Max_Line" ga erishilsa, "Disp_Buff" tartibi ikkinchi qatorga yozish bilan davom etadi. Agar sizda 4 qatorli LCD displey bo'lsa, siz uchinchi va to'rtinchi qatorlarni davom ettirish uchun ushbu dasturga ozgina kod qo'shishingiz mumkin. PN532 uchun bayroq o'rnatilishi mumkin, shunda tartib barcha qabul qilingan baytlarni tashlaydi yoki o'qilgan javobdan 16 ma'lumot baytini tashlaydi.

Qabul qilish buferini yoki Byte_Count -ni tozalashning hojati yo'q, chunki New_Msg bayrog'ini tozalash Byte_Count -ni uzilish ishlovchisi tomonidan o'chirilishiga olib keladi va bufera indeksi sifatida ishlatiladi. New_Msg odatda har bir buyruq bosqichidan oldin tozalanadi, shunda ushbu buyruq uchun xos bo'lgan natijalarni osongina topish va tekshirish mumkin bo'ladi. RC522 da bu shuni anglatadiki, qabul qilish buferi odatda 1 dan 4 baytgacha bo'ladi. Ba'zi hollarda, masalan, ma'lumotlar blokini o'qish, baytlarni FIFO -dan qabul qilish buferiga o'tkazish uchun Read_FIFO buyrug'i bir necha marta berilishi kerak. PN532 uchun barcha buyruq natijalari qabul qilish buferida tugaydi, shuning uchun kerakli baytlarni topish uchun skanerlash protsedurasi bajariladi.

Dasturiy ta'minotdagi asosiy tsikl tegni qidiradi va keyin o'qish/yozish uchun tegni tasdiqlaydi. Bu erda kiritilgan test dasturlari uchun Junk_Num o'zgaruvchisi har safar asosiy tsikl orqali o'zgartiriladi va tegga yozish paytida ishlatiladi. Yozilgan qiymatlar Junk_Num qiymati va Junk_Num ning 1 -qo'shimchasi o'rtasida o'zgarib turadi. Nihoyat, 16 ta yozilgan qiymat o'qiladi va ko'rsatiladi. Har bir xabarni o'qish uchun vaqt ajratish uchun odatiy qo'ng'iroqlar kechiktirilgan har bir qadam uchun ko'rsatiladigan xabarlar mavjud. Xato xabarlari ham taqdim etiladi, lekin odatda faqat operatsiya vaqtida teg olib tashlansa sodir bo'lishi kerak.

Dasturiy ta'minotni ishga tushirishning bir qismi - bu kod yoqilganda, u faqat yoqilganda bajariladi va agar dasturni asl holatiga qaytarish aniqlansa, o'tkazib yuboriladi. Xato xabarlari, odatda, dasturiy ta'minotni qayta tiklash bilan, asosiy ko'chadan chiqish yo'li bilan tugaydi. Qayta tiklash "Tilt" tartibida sodir bo'ladi, bu shunchaki Watchdog taymerini ishga tushiradi va keyin tugashini kutib turadigan cheksiz tsiklga o'tadi.

9 -qadam: MFRC522 noyob dasturi

RC522 chipi teglar bilan aloqani amalga oshirish uchun PN532 chipiga qaraganda past darajadagi ko'rsatmalarni talab qiladi. Bu "C" dagi dasturlash bilan assambleyadagi dasturlash kabi. Yana bir muhim farq shundaki, RC522 teg bilan aloqa FIFO buferi orqali o'tkazilishini talab qiladi. "Write_FIFO" va "Read_FIFO" tartiblari bu vazifalarni bajaradi. MFRC522 dasturiy ta'minoti asosiy funktsiyalari tuzilgan quyi darajadagi buyruqlarning ko'p qismini o'z ichiga oladi.

RC522 uchun tag buyrug'i checksum hisobi PN532 -ga qaraganda ancha farq qiladi. FIFO -da teglar buyrug'i tuzilgandan so'ng, nazorat summasini hisoblash uchun modul buyrug'i yuboriladi. 16-bitli natija avtomatik ravishda teg buyrug'iga qo'shilmaydi, lekin ikkita 8-bitli registrdan o'qish uchun mavjud. Tekshirish summasini hisoblash FIFO -dagi ma'lumotlarni o'chirib tashlaydi, shuning uchun kerakli ketma -ketlik quyidagicha:

· FIFO -da buyruqni tuzing

· Tekshirish summasini hisoblashni buyruq bering

· FIFO -da buyruqni qayta yarating

· CRC registrlarini o'qing va FIFOga nazorat summasining baytlarini yozing

· Transceive yoki Autentifikatsiya buyrug'ini yuboring

Transceive buyrug'i FIFO buferini uzatadi va keyin tegdan javob kutish uchun avtomatik ravishda qabul qilish rejimiga o'tadi. Ma'lumotni uzatish uchun "Transceive" buyrug'idan so'ng BitFramingRegisterda StartSend bitini sozlash kerak. Autentifikatsiya qilish buyrug'i bunday talabga ega emas.

Umuman olganda, Internetda mavjud bo'lgan Arduino "C" kodli ilovalar to'g'ri javobni o'z vaqtida olishini ta'minlash uchun uzilish bayroqlari registrlari va tanaffus registridan foydalanadi. Menimcha, bu tanqidiy bo'lmagan dastur uchun ortiqcha. Buning o'rniga, men javobni kutish uchun dasturiy ta'minotning qisqa vaqtini ishlataman va keyin uning to'g'riligini tekshiraman. Mifare teglari bo'yicha qo'llanmada har xil operatsiyalar uchun vaqt va tafsilotlar ko'rsatilgan, shuningdek kutilgan baytlar soniga ruxsat berilgan. Bu vaqtni kechiktirishlari ko'p darajali buyruq dasturlarining pastki qismiga o'rnatilgan.

10 -qadam: PN532 yagona dasturiy ta'minoti

Modul ishga tushirilgandan so'ng, tegni topish va autentifikatsiya qilish uchun zarur bo'lgan amallar tegishli buyruqni yozish va kerakli ma'lumotlarni kiritish orqali amalga oshiriladi. Tekshirish buyrug'i autentifikatsiya uchun ishlatiladigan UID -ni qaytaradi. Shundan so'ng, tegni o'qish va yozish manzilli ma'lumotlar bloki uchun 16 baytni yuboradi yoki qaytaradi.

Ishga tushirish ketma -ketligi oldinroq batafsil tasvirlangan va xuddi shu dasturiy ta'minot rejimi, shuningdek, modulni "LowVbat" holatidan chiqarish uchun SAMConfiguration buyrug'ini yuboradi. Qolgan asosiy buyruqlar, masalan, skanerlash, autentifikatsiya qilish, o'qish/yozish amaldagi tartibda ketma -ket tuzilgan. Tekshirish yig'indisi buyruq baytlarini qo'shish, to'ldirish va keyin 1 ni qo'shib, 2 -ni to'ldirish yo'li bilan hisoblanadi. 8-bitli natija postamble oldidan buyruq qatoriga qo'shiladi.

RC522 kabi FIFO yo'q, shuning uchun to'liq javob xabarlari avtomatik ravishda qabul qilinadi. "Find_Response" tartibi TFI (0xD5) uchun qabul qilingan ma'lumotlar buferini tekshiradi. Rejim kutilayotgan xabarlar nima bo'lishi kerakligini bilishdan foydalanadi va ma'lumotlarni o'z ichiga olmaydigan oddiy ACK javoblariga e'tibor bermaydi. TFI topilgach, kerakli javoblar undan ma'lum ofset bo'ladi. Buyruq echo va buyruq holati baytlari "Read_Buff" tartibida saqlanib, keyinroq tekshiriladi.

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

Tavsiya: