RFID reiškia radijo dažnio identifikavimą. RDA modulis gali nuskaityti ar įrašyti nedidelį kiekį duomenų į pasyvų RDA žymeklį, kurį galima naudoti identifikavimo procese įvairiose sistemose, tokiose kaip lankomumo sistema, apsaugos sistema, balsavimo sistema ir kt. RDA yra labai patogi ir lengva technologija.
Norint perskaityti „Passive RFID“ korteles ir žymą, mums reikia mikrovaldiklio su UART aparatūra. Jei pasirenkame mikrovaldiklį be UART, turime įdiegti programinę įrangą UART. Čia mes naudojame IPS Microcontroller PIC16F877A sąsajos RFID. Paprasčiausiai perskaitysime unikalų identifikacinį Nr. RFID žymų ir rodyti 16x2 LCD ekrane.
RDA modulis ir jo veikimas
Šiame projekte pasirinkome EM-18 RFID modulį, kuris yra mažo dydžio, nebrangus ir energiją taupantis modulis. EM-18 RFID modulis naudoja 125 KHz RF dažnį pasyvioms 125 KHz RFID žymėms nuskaityti. EM-18 modulis naudoja osciliatorių, demoduliatorių ir duomenų dekoderį duomenims nuskaityti iš pasyvios kortelės.
RDA žymė
Yra trijų tipų RDA žymos: pasyvioji, aktyvioji arba pasyvioji su baterijomis. Rinkoje yra įvairių rūšių RDA žymos su skirtingomis formomis ir dydžiais. Nedaugelis jų naudoja skirtingus dažnius bendravimo tikslams. Mes naudosime 125 kHz pasyvias RDA korteles, kuriose yra unikalūs ID duomenys. Čia yra RFID kortelė ir žymos, kurias naudojame šiam projektui.
RDA darbas
Jei pamatysime EM-18 modulio duomenų lapą (http://www.alselectro.com/files/rfid-ttl-em18.pdf), galėtume pamatyti modulio ir programos grandinės užpakalinę dalį:
Modulis naudoja UART ryšio protokolą 9600 perdavimo sparta. Kai į EM-18 skaitytuvo magnetinį lauką įvedama „Valid“ dažnio žyma, įsijungia BC557 tranzistorius ir signalas pradės pypsėti, jis taip pat šviečia šviesos diodu. Mes naudojame modulį, kuris yra lengvai prieinamas rinkoje ir turi visas grandines su garsiniu signalu, LED ir papildomu RS232 prievadu.
Čia yra RFID plokštės modulis, kurį naudojame su kaiščių pavadinimais. Šis modulis taip pat turi papildomą maitinimo parinktį.
Reikia nepamiršti vieno dalyko, kad EM-18 skaitytuvo išvestis naudoja 5 V logikos lygį. Galėtume naudoti kitą mikrovaldiklį, kuris naudoja žemesnį loginį lygį, tačiau tokiais atvejais reikalingas papildomas loginio lygio keitiklis. Kai kuriais atvejais 3,3 V mikrovaldiklio UART kaištis dažnai toleruoja 5 V įtampą.
UART išvestis teikia 12 bitų ASCII duomenis. Pirmieji 10 bitų yra RFID žymos numeris, kuris yra unikalus ID, o paskutiniai du skaitmenys naudojami klaidų testavimui. Šie du paskutiniai skaitmenys yra žymos numerio XOR. EM-18 modulis nuskaitys duomenis iš 125 KHz pasyvių RDA žymenų ar kortelių.
Šios žymos arba ID turi gamykloje užprogramuotą atminties masyvą, kuriame saugomas unikalus ID numeris. Kadangi jie yra pasyvūs, todėl kortelėje ar etiketėse nėra akumuliatoriaus, juos įjungia magnetinis radijo imtuvo modulio laukas. Šios RFID žymos gaminamos naudojant EM4102 CMOS IC, kurį taip pat veikia magnetinis laukas.
Reikalinga medžiaga
Norėdami sukurti šį projektą, mums reikia šių dalykų:
- PIC16F877A
- 20Mhz kristalas
- 2vnt. 33pF keraminis diskinis kondensatorius
- 16x2 simbolių LCD ekranas
- Duonos lenta
- 10k iš anksto nustatytas puodas
- 4.7k rezistorius
- Vienos grandinės laidai prijungti
- 5 V adapteris
- RF modulis EM-18
- 5V garsiakalbis
- 100uF ir.1uF 12V kondensatorius
- BC557 tranzistorius
- LED
- 2,2k ir 470R rezistorius.
Mes naudojame EM-18 modulių plokštę su iš anksto sukonfigūruotu garsiniu signalu ir LED. Taigi komponentai, išvardyti nuo 11 iki 15, nereikalingi.
Grandinės schema
Schema paprasta; mes prijungėme LCD ekraną per RB prievadą ir EM-18 modulį sujungėme per UART Rx kaištį.
Ryšį ant plokštės padarėme pagal schemą.
Kodo paaiškinimas
Kaip visada, pirmiausia turime nustatyti „pic“ mikrovaldiklio konfigūracijos bitus, apibrėžti kai kurias makrokomandas, įskaitant bibliotekas ir kristalų dažnį. Galite patikrinti kodą, nurodantį visą kodą, pateiktą pabaigoje.
// PIC16F877A konfigūracijos bitų nustatymai // „C“ šaltinio eilutės konfigūracijos teiginiai // CONFIG #pragma config FOSC = HS // Osciliatoriaus pasirinkimo bitai (HS osciliatorius) #pragma config WDTE = OFF // Watchdog Timer Įjungti bitą (WDT išjungtas) # pragma config PWRTE = OFF // Įjungimo laikmatis Įgalinti bitą (PWRT išjungtas) #pragma config BOREN = Įjungtas // Brown-out Reset Įjungti bitą (įjungtas BOR) #pragma config LVP = OFF // Žemos įtampos (vieno maitinimo šaltinis)) In-Circuit Serial Programming Enable bit (RB3 / PGM kaištei yra PGM funkcija; įjungtas žemos įtampos programavimas) #pragma config CPD = OFF // duomenų EEPROM atminties kodo apsaugos bitas (duomenų EEPROM kodo apsauga išjungta) #pragma config WRT = IŠJUNGTAS // „Flash“ programos atminties įrašymas Įgalinti bitus (Rašymo apsauga išjungta; visa programos atmintis gali būti įrašyta EECON valdikliu) #pragma config CP = IŠJUNGTAS // „Flash“ programos atminties kodo apsaugos bitas (kodo apsauga išjungta) # įtraukti "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Jei pamatysime pagrindinę funkciją, iškvietėme funkciją sistemos inicializavimui. Šioje funkcijoje inicijuojame LCD ir UART.
/ * Ši funkcija skirta sistemos inicializavimui. * / void system_init (negaliojantis) { TRISB = 0x00; // PORT B nustatytas kaip išvesties kaištis lcd_init (); // Tai inicijuos lcd EUSART1_Initialize (); // Tai inicijuos „Eusart“ }
Dabar pagrindinėje funkcijoje naudojome 13 bitų masyvą, kuris yra RFID numeris. Gauname kiekvieną RFID Nr. naudojant EUSART1_Read (); funkcija, kuri yra deklaruojama UART bibliotekos viduje. Gavę 12 bitų, mes išspausdiname masyvą kaip eilutę į LCD.
void main (void) { nepasirašytas char char; nepasirašytas simbolis RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Grandinės santrauka"); o (1) { už (skaičius = 0; skaičius <12; skaičius ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Nustatykite žymeklį antrai eilutei, prasidedančiai lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Visas kodas su demonstraciniu vaizdo įrašu pateiktas žemiau.
Taip pat patikrinkite RFID sąsają su kitu mikrovaldikliu:
RDA sąsaja su „MSP430 Launchpad“
RDA sąsaja su 8051 mikrovaldikliu
RDA sąsaja su „Arduino“