RFID je zkratka pro Radio Frequency Identification. RFID modul umí číst nebo zapisovat malé množství dat do pasivního RFID tagu, který lze použít v procesu identifikace v různých systémech, jako je docházkový systém, bezpečnostní systém, hlasovací systém atd. RFID je velmi pohodlná a snadná technologie.
Pro čtení pasivních RFID karet a štítků potřebujeme mikrokontrolér s hardwarem UART. Pokud vybereme mikrokontrolér bez UART, musíme implementovat softwarový UART. Zde používáme mikrokontrolér PIC PIC16F877A pro propojení RFID. Prostě si přečteme jedinečné identifikační číslo. RFID tagů a zobrazte je na 16x2 LCD.
RFID modul a jeho fungování
V tomto projektu jsme vybrali modul RFID EM-18, což je malý, levný a energeticky efektivní modul. EM-18 RFID modul používá 125 KHz RF frekvenci ke čtení pasivních 125 KHz RFID tagů. Modul EM-18 používá ke čtení dat z pasivní karty oscilátor, demodulátor a datový dekodér.
Značka RFID
K dispozici jsou tři typy štítků RFID, pasivní, aktivní nebo pasivní s baterií. Na trhu jsou k dispozici různé druhy štítků RFID s různými druhy tvarů a velikostí. Jen málo z nich používá pro komunikační účely jinou frekvenci. Budeme používat 125kHz pasivní RFID karty, které obsahují jedinečná data ID. Zde jsou RFID karty a tagy, které pro tento projekt používáme.
Práce s RFID
Pokud uvidíme datový list (http://www.alselectro.com/files/rfid-ttl-em18.pdf) modulu EM-18, mohli bychom vidět zadní stranu modulu a aplikační obvod:
Modul využívá komunikační protokol UART v 9600 baudech. Když se do magnetického pole čtečky EM-18 přivede platná frekvenční značka, tranzistor BC557 se zapne a bzučák začne pípat a také rozsvítí LED. Používáme modul, který je snadno dostupný na trhu a má kompletní obvody s bzučákem, LED a dalším portem RS232.
Zde je modul RFID desky, který používáme s názvy pinů. Tento modul má také další možnost napájení.
Je třeba mít na paměti jednu věc, že výstup čtečky EM-18 používá logickou úroveň 5V. Mohli bychom použít jiný mikrokontrolér, který používá nižší logickou úroveň, ale v takových případech je vyžadován další převodník logické úrovně. V několika málo případech je UART pin 3,3 mikrořadiče je často 5V tolerantní.
Výstup UART poskytuje 12bitová data ASCII. Prvních 10 bitů je číslo štítku RFID, což je jedinečné ID, a poslední dvě číslice se používají pro testování chyb. Tyto poslední dvě číslice jsou XOR čísla značky. Modul EM-18 bude číst data z pasivních RFID tagů nebo karet 125 KHz.
Tyto značky nebo ID mají továrně naprogramované paměťové pole, které ukládá jedinečné ID číslo. Jelikož jsou pasivní, takže na kartě nebo štítcích není žádná baterie, jsou napájeny magnetickým polem modulu RF Transceiver. Tyto RFID tagy jsou vyráběny pomocí EM4102 CMOS IC, který je taktován také magnetickým polem.
Potřebný materiál
K vytvoření tohoto projektu potřebujeme následující položky -
- PIC16F877A
- 20MHz krystal
- 2ks keramický diskový kondenzátor 33pF
- 16x2 znaků LCD
- Prkénko na prkénko
- 10k přednastavený hrnec
- 4,7k rezistor
- Jednožilové vodiče k připojení
- 5V adaptér
- RF modul EM-18
- 5V bzučák
- 100uF &.1uF 12V kondenzátor
- BC557 Tranzistor
- VEDENÝ
- Rezistor 2,2k a 470R.
Používáme desku modulu EM-18 s bzučákem a předkonfigurovanou LED. Komponenty uvedené od 11 do 15 tedy nejsou potřeba.
Kruhový diagram
Schéma je jednoduché; připojili jsme LCD přes port RB a připojili modul EM-18 přes pin UART Rx.
Spojení na prkénku jsme provedli podle schématu.
Vysvětlení kódu
Jako vždy nejprve musíme nastavit konfigurační bity v mikrokontroléru pic, definovat některá makra, včetně knihoven a frekvence krystalů. Můžete zkontrolovat kód pro všechny v úplném kódu uvedeném na konci.
// PIC16F877A Configuration Bit Settings // 'C' source line config commands // CONFIG #pragma config FOSC = HS // Oscillator Selection bits (HS oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) # pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT deaktivováno) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR povoleno) #pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (Pin RB3 / PGM má funkci PGM; programování nízkého napětí povoleno) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = VYPNUTO // Zápis paměti Flash programu Povolení bitů (ochrana proti zápisu vypnuta; veškerá paměť programu může být zapsána ovládáním EECON) #pragma config CP = VYPNUTO // Bit kódu ochrany kódu paměti programu (ochrana kódu vypnuta) # zahrnout "supporing_cfile \ lcd.h" # zahrnout "supporing_cfile \ eusart1.h"
Pokud vidíme hlavní funkci, nazvali jsme funkci pro inicializaci systému. V této funkci inicializujeme LCD a UART.
/ * Tato funkce je pro inicializaci systému. * / void system_init (void) { TRISB = 0x00; // PORT B nastaven jako výstupní pin lcd_init (); // Tím se inicializuje lcd EUSART1_Initialize (); // Tím se inicializuje Eusart }
Nyní jsme v hlavní funkci použili 13bitové pole, což je číslo RFID. Dostáváme každý bit RFID č. pomocí EUSART1_Read (); funkce, která je deklarována uvnitř knihovny UART. Po obdržení 12 bitů vytiskneme pole na LCD jako řetězec.
void main (void) { počet nepodepsaných znaků; nepodepsaný znak RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Přehled okruhu"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Nastavte kurzor na druhý řádek začínající lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Kompletní kód s ukázkovým videem je uveden níže.
Zkontrolujte také propojení RFID s jiným mikrokontrolérem:
Rozhraní RFID s příručním panelem MSP430
Rozhraní RFID s mikrokontrolérem 8051
Rozhraní RFID s Arduino