RFID je skratka pre Radio Frequency Identification. RFID modul dokáže načítať alebo zapisovať malé množstvo dát do pasívneho RFID štítku, ktorý je možné použiť v procese identifikácie v rôznych systémoch, ako je dochádzkový systém, bezpečnostný systém, hlasovací systém atď. RFID je veľmi pohodlná a ľahká technológia.
Na čítanie pasívnych RFID kariet a štítkov potrebujeme mikrokontrolér s hardvérom UART. Ak vyberieme mikrokontrolér bez UART, musíme implementovať softvérový UART. Tu používame na prepojenie RFID mikrokontrolér PIC PIC16F877A. Jednoducho si prečítame jedinečné identifikačné číslo. RFID štítkov a zobraziť ich na 16x2 LCD.
RFID modul a jeho fungovanie
V tomto projekte sme si vybrali modul EM-18 RFID, ktorý je malým, lacným a energeticky efektívnym modulom. EM-18 RFID modul používa 125 KHz RF frekvenciu na čítanie pasívnych 125 KHz RFID štítkov. Modul EM-18 používa na čítanie údajov z pasívnej karty oscilátor, demodulátor a dekodér údajov.
Značka RFID
K dispozícii sú tri typy štítkov RFID, pasívne, aktívne alebo pasívne s batériou. Na trhu sú k dispozícii rôzne druhy štítkov RFID s rôznymi druhmi tvarov a veľkostí. Len málo z nich používa na komunikačné účely inú frekvenciu. Budeme používať 125kHz pasívne RFID karty, ktoré obsahujú jedinečné ID údaje. Tu sú RFID karty a štítky, ktoré používame pre tento projekt.
Fungovanie RFID
Ak vidíme údajový list (http://www.alselectro.com/files/rfid-ttl-em18.pdf) modulu EM-18, mohli by sme vidieť zadnú stranu modulu a aplikačný obvod:
Modul využíva komunikačný protokol UART v rýchlosti 9600 Baud. Keď sa do magnetického poľa čítačky EM-18 privedie platný frekvenčný štítok, tranzistor BC557 sa zapne a bzučiak začne pípať a tiež svieti LED. Používame modul, ktorý je ľahko dostupný na trhu a má kompletné obvody s bzučiakom, LED a ďalším portom RS232.
Tu je modul RFID dosky, ktorý používame s názvami pinov. Tento modul má aj ďalšiu možnosť napájania.
Je potrebné mať na pamäti jednu vec, že výstup čítačky EM-18 využíva logickú úroveň 5V. Mohli by sme použiť iný mikrokontrolér, ktorý používa nižšiu logickú úroveň, ale v takýchto prípadoch je potrebný ďalší prevodník logickej úrovne. V niekoľkých prípadoch je UART pin 3,3 mikroradiče je často 5V tolerantné.
Výstup UART poskytuje 12-bitové dáta ASCII. Prvých 10 bitov je číslo štítku RFID, čo je jedinečné ID, a posledné dve číslice sa používajú na testovanie chýb. Tieto posledné dve číslice sú XOR čísla štítku. Modul EM-18 bude čítať údaje z 125 KHz pasívnych RFID štítkov alebo kariet.
Tieto značky alebo identifikátory majú výrobcom naprogramované pamäťové pole, ktoré uchováva jedinečné identifikačné číslo. Pretože sú pasívne, takže na karte alebo štítkoch nie je žiadna batéria, sú napájané magnetickým poľom modulu RF Transceiver. Tieto RFID tagy sú vyrobené pomocou CM4 IC EM4102, ktorý je taktovaný tiež magnetickým poľom.
Potrebný materiál
Na realizáciu tohto projektu potrebujeme nasledujúce položky -
- PIC16F877A
- 20MHz kryštál
- 2ks keramický diskový kondenzátor 33pF
- 16x2 znakový LCD
- Nepál
- 10k prednastavený hrniec
- 4,7k rezistor
- Jednovláknové vodiče na pripojenie
- 5V adaptér
- RF modul EM-18
- 5V bzučiak
- 100uF &.1uF 12V kondenzátor
- BC557 Tranzistor
- LED
- Rezistor 2,2k a 470R.
Používame dosku modulu EM-18 s bzučiakom a ledom predkonfigurovaným. Takže komponenty uvedené od 11 do 15 nie sú potrebné.
Schéma zapojenia
Schéma je jednoduchá; pripojili sme LCD cez port RB a modul EM-18 cez pin UART Rx.
Spojenie na doske sme vytvorili podľa schémy.
Vysvetlenie kódu
Ako vždy, najskôr musíme nastaviť konfiguračné bity v mikrokontroléri pic, definovať niektoré makrá vrátane knižníc a frekvencie kryštálov. Môžete skontrolovať kód všetkých osôb v úplnom kóde uvedenom na konci.
// Nastavenia konfiguračného bitu PIC16F877A // Príkazy na konfiguráciu zdrojového riadku „C“ // CONFIG #pragma config FOSC = HS // Bity výberu oscilátora (HS oscilátor) #pragma config WDTE = VYP // Watchdog Timer Enable bit (WDT disabled) # pragma config PWRTE = VYPNUTO // Časovač zapnutia povolený bit (PWRT deaktivovaný) #pragma config BOREN = ZAPNUTÝ // Brown-out Reset Povolený bit (povolený BOR) #pragma config LVP = VYPNUTÉ // Nízke napätie (jedno napájanie)) Povolený bit sériového programovania v obvode (pin RB3 / PGM má funkciu PGM; programovanie nízkeho napätia je povolené) #pragma config CPD = VYP // Bit ochrany dátového kódu EEPROM (ochrana kódu EEPROM dát vypnutá) #pragma config WRT = VYPNUTO // Zápis do pamäte Flash programu Povolenie bitov (ochrana proti zápisu vypnutá; na celú programovú pamäť je možné zapisovať pomocou ovládania EECON ) #pragma config CP = VYPNUTO // Bit kódu na ochranu kódu pamäte programu (vypnutá ochrana kódu) # zahrnúť " podporný_cfile \ lcd.h" # zahrnúť "podporný_cfile \ eusart1.h"
Ak vidíme hlavnú funkciu, nazvali sme funkciu na inicializáciu systému. V tejto funkcii inicializujeme LCD a UART.
/ * Táto funkcia je určená na inicializáciu systému. * / void system_init (void) { TRISB = 0x00; // PORT B nastavený ako výstupný pin lcd_init (); // Týmto sa inicializuje lcd EUSART1_Initialize (); // Týmto sa inicializuje Eusart }
Teraz sme v hlavnej funkcii použili 13-bitové pole, čo je číslo RFID. Dostávame každý bit RFID č. pomocou EUSART1_Read (); funkcia, ktorá je deklarovaná vo vnútri knižnice UART. Po prijatí 12 bitov vytlačíme pole ako reťazec na LCD.
void main (void) {počet nepodpísaných znakov; nepodpísaný znak RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Prehľad okruhov"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Nastavte kurzor na druhý riadok začínajúci lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Kompletný kód s demonštračným videom je uvedený nižšie.
Skontrolujte tiež prepojenie RFID s iným mikrokontrolérom:
Prepojenie RFID s Launchpadom MSP430
Prepojenie RFID s mikrokontrolérom 8051
RFID prepojenie s Arduino