RFID pomeni radiofrekvenčna identifikacija. Modul RFID lahko bere ali zapisuje majhno količino podatkov v pasivno oznako RFID, ki se lahko uporablja v postopku identifikacije v različnih sistemih, kot so Attendance sistem, varnostni sistem, glasovalni sistem itd. RFID je zelo priročna in enostavna tehnologija.
Za branje pasivnih RFID kartic in oznak potrebujemo mikrokrmilnik s strojno opremo UART. Če izberemo mikrokrmilnik brez UART, moramo implementirati programsko opremo UART. Tu uporabljamo mikrokrmilnik PIC PIC16F877A za povezovanje RFID. Prebrali bomo enolično identifikacijsko številko. oznak RFID in ga prikažite na 16x2 LCD.
RFID modul in njegovo delovanje
V tem projektu smo izbrali EM-18 RFID modul, ki je majhen, poceni in energetsko učinkovit modul. EM-18 RFID modul uporablja 125 KHz RF frekvenco za branje pasivnih 125 KHz RFID oznak. Modul EM-18 z oscilatorjem, demodulatorjem in dekodirnikom podatkov bere podatke s pasivne kartice.
Oznaka RFID
Na voljo so tri vrste oznak RFID, pasivne, aktivne ali pasivne s pomočjo baterije. Na trgu so na voljo različne vrste RFID oznak z različnimi vrstami oblik in velikosti. Le malo jih uporablja različne frekvence za komunikacijo. Uporabili bomo pasivne RFID kartice s hitrostjo 125 kHz, ki vsebujejo edinstvene podatke ID. Tu so kartica RFID in oznake, ki jih uporabljamo za ta projekt.
Delovanje RFID
Če vidimo podatkovni list (http://www.alselectro.com/files/rfid-ttl-em18.pdf) modula EM-18, lahko vidimo zadnjo stran modula in vezje aplikacije:
Modul uporablja komunikacijski protokol UART s hitrostjo 9600 Baud. Ko v magnetno polje bralnika EM-18 vnesemo veljavno frekvenčno oznako, se tranzistor BC557 vklopi in zvočni signal začne piskati, prav tako pa zasveti LED. Uporabljamo modul, ki je lahko dostopen na trgu in ima popolno vezje z brenčalom, led in dodatnimi vrati RS232.
Tu je modul plošče RFID, ki ga uporabljamo z imeni zatičev. Ta modul ima tudi dodatno možnost napajanja.
Upoštevati je treba eno stvar, da izhod bralnika EM-18 uporablja 5V logični nivo. Lahko bi uporabili drug mikrokrmilnik, ki uporablja nižjo logično raven, vendar je v takih primerih potreben dodatni pretvornik logične ravni. V redkih primerih je UART pin za 3,3 mikrokrmilniška je pogosto 5V tolerantni.
Izhod UART zagotavlja 12-bitne podatke ASCII. Prvih 10 bitov je številka oznake RFID, ki je enolični ID, zadnji dve števki pa se uporabljata za preskušanje napak. Ti zadnji dve števki sta XOR številke oznake. Modul EM-18 bere podatke s 125 KHz pasivnih RFID oznak ali kartic.
Te oznake ali ID-ji imajo tovarniško programirano pomnilniško polje, v katerem je shranjena enolična ID-številka. Ker so pasivne, zato na kartici ali oznakah ni baterije, jih napaja magnetno polje modula RF-oddajnik. Te oznake RFID so narejene z uporabo EM4102 CMOS IC, ki jo ureja tudi magnetno polje.
Potreben material
Za izdelavo tega projekta potrebujemo naslednje postavke:
- PIC16F877A
- Kristal 20 MHz
- 2pcs 33pF keramični kondenzator kolutov
- LCD s 16 x 2 znaki
- Tabela
- 10k prednastavljeni lonec
- 4.7k upor
- Enožične žice za povezavo
- 5V adapter
- RF modul EM-18
- 5V zvočni signal
- 100uF &.1uF 12V kondenzator
- Tranzistor BC557
- LED
- 2.2k in 470R upor.
Uporabljamo vgrajeno ploščo modula EM-18 z brenčalom in led. Torej komponente, navedene od 11 do 15, niso potrebne.
Shema vezja
Shema je preprosta; LCD smo povezali prek priključka RB in modul EM-18 povezali prek zatiča UART Rx.
Povezavo na plošči smo izvedli v skladu s shemo.
Razlaga kode
Kot vedno moramo najprej nastaviti konfiguracijske bite v mikrokrmilniku pic, določiti nekaj makrov, vključno s knjižnicami in kristalno frekvenco. Kodo lahko preverite za vse, ki so v celotni kodi, navedeni na koncu.
// PIC16F877A Nastavitve konfiguracijskega bita // Izjave o konfiguraciji izvorne vrstice 'C' // CONFIG #pragma config FOSC = HS // Oscilator Izbirni bit (HS oscilator) #pragma config WDTE = OFF // Bit Watchg Enable bit (WDT disabled) # pragma config PWRTE = OFF // bit za vklop časovnika za vklop (PWRT onemogočen) #pragma config BOREN = ON // bit za omogočanje ponastavitve Brown-out (omogočen BOR) #pragma config LVP = OFF // nizkonapetostna (enojna napajalna enota)) Bit za omogočanje serijskega programiranja v krogu (pin RB3 / PGM ima funkcijo PGM; nizkonapetostno programiranje je omogočeno) #pragma config CPD = OFF // Bit zaščite pomnilniške kode EEPROM (zaščita kode EEPROM podatkov izključena) #pragma config WRT = OFF // Flash Program Memory Flash Enable bits (Zaščita pred izklopom; ves programski pomnilnik je mogoče zapisati s pomočjo EECON-a) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) # vključi "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Če vidimo glavno funkcijo, smo poklicali funkcijo za inicializacijo sistema. V tej funkciji inicializiramo LCD in UART.
/ * Ta funkcija je namenjena inicializaciji sistema. * / void system_init (void) { TRISB = 0x00; // PORT B nastavljen kot izhodni zatič lcd_init (); // To bo inicializiralo lcd EUSART1_Initialize (); // To bo inicializiralo Eusart }
Zdaj smo v glavni funkciji uporabili 13-bitno matriko, ki je številka RFID. Prejmemo vsak bit RFID št. z uporabo EUSART1_Read (); funkcija, ki je deklarirana znotraj knjižnice UART. Po prejemu 12 bitov matriko na LCD izpišemo kot niz.
void main (void) { nepodpisano štetje znakov; nepodpisani znak RF_ID; sistem_init (); lcd_com (0x80); lcd_puts ("Circuit Digest"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Nastavi kazalko za začetek druge vrstice lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Popolna koda z demonstracijskim videom je navedena spodaj.
Preverite tudi povezavo RFID z drugim mikrokrmilnikom:
RFID povezovanje z lansirno ploščo MSP430
Vmesnik RFID z mikrokrmilnikom 8051
RFID povezovanje z Arduinom