Az RFID jelentése rádiófrekvenciás azonosítás. Az RFID modul kis mennyiségű adatot képes beolvasni vagy beírni egy passzív RFID címkébe, amelyet fel lehet használni az azonosítási folyamatban különböző rendszerekben, például a jelenléti rendszerben, a biztonsági rendszerben, a szavazási rendszerben stb. Az RFID nagyon kényelmes és egyszerű technológia.
A passzív RFID-kártyák és címkék elolvasásához szükségünk van egy mikrokontrollerre UART hardverrel. Ha egy mikrokontrollert választunk UART nélkül, akkor meg kell valósítanunk az UART szoftvert. Itt a PIC PIC16F877A PIC mikrovezérlőt használjuk az RFID összekapcsolására. Egyszerűen elolvassuk az egyedi azonosító számot. RFID-címkékből és 16x2 LCD-n jelenítse meg.
RFID modul és működése
Ebben a projektben az EM-18 RFID modult választottuk, amely kicsi, alacsony költségű és energiatakarékos modul. Az EM-18 RFID modul 125 KHz RF frekvenciát használ a passzív 125 KHz RFID címkék olvasására. Az EM-18 modul oszcillátorral, demodulátorral és adatdekóderrel olvassa el az adatokat egy passzív kártyáról.
RFID címke
Háromféle RFID-címke áll rendelkezésre: Passzív, Aktív vagy Akkumulátorral támogatott passzív. Különböző típusú, eltérő formájú és méretű RFID-címkék állnak rendelkezésre a piacon. Közülük kevesen használnak különböző frekvenciát kommunikációs célokra. 125KHz-es passzív RFID-kártyákat fogunk használni, amelyek az egyedi azonosító adatokat tárolják. Itt vannak az RFID-kártya és a címkék, amelyeket ehhez a projekthez használunk.
Az RFID működése
Ha megnézzük az EM-18 modul adatlapját (http://www.alselectro.com/files/rfid-ttl-em18.pdf), láthatjuk a modul hátulját és az alkalmazás áramkört:
A modul az UART kommunikációs protokollt használja 9600 átviteli sebességgel. Amikor az Érvényes frekvencia címke bekerül az EM-18 olvasó mágneses mezőjébe, a BC557 tranzisztor bekapcsol és a hangjelző sípolni kezd, ez is világít a LED-del. Olyan modult használunk, amely könnyen elérhető a piacon, és komplett áramkörökkel rendelkezik, hangjelzővel, led-del és további RS232 porttal.
Itt van az RFID kártya modul, amelyet pin nevekkel használunk. Ez a modul további energiaellátási lehetőséggel is rendelkezik.
Egy dolgot szem előtt kell tartani, hogy az EM-18 olvasó kimenete 5V logikai szintet használ. Használhatunk egy másik mikrokontrollert, amely alacsonyabb logikai szintet használ, de ilyen esetekben további logikai szint-átalakítóra van szükség. Néhány esetben a 3,3 V-os mikrokontroller UART-tűje gyakran 5 V-tűrő.
Az UART kimenet 12 bites ASCII adatokat szolgáltat. Az első 10 bit az RFID címke száma, amely az egyedi azonosító, az utolsó két számjegy pedig a hibatesztelésre szolgál. Ez az utolsó két számjegy a címke számának XOR-ja. Az EM-18 modul leolvassa az adatokat 125 KHz-es passzív RFID-címkékről vagy kártyákról.
Ezek a címkék vagy azonosítók gyárilag programozott memóriatömbbel rendelkeznek, amely az egyedi azonosító számot tárolja. Mivel ezek passzívak, így a kártyában vagy a címkékben nincs elem, a rádiófrekvenciás adó-vevő modul mágneses tere feszültség alá helyezi őket. Ezeket az RFID címkéket az EM4102 CMOS IC segítségével készítik, amelyet a mágneses mező is időzít.
Anyag szükséges
A projekt elkészítéséhez a következő elemekre van szükségünk:
- PIC16F877A
- 20Mhz kristály
- 2db 33pF kerámia tárcsás kondenzátor
- 16x2 karakteres LCD
- Egy kenyérdeszka
- 10k előre beállított pot
- 4.7k ellenállás
- Egyszálú vezetékek csatlakoztatásához
- 5 V-os adapter
- EM-18 RF modul
- 5V-os hangjelző
- 100uF és.1uF 12V kondenzátor
- BC557 tranzisztor
- VEZETTE
- 2,2k és 470R ellenállás.
Az EM-18 modul kártyát előre konfigurált hangjelzővel és led-del használjuk. Tehát a 11-től 15-ig felsorolt komponensekre nincs szükség.
Kördiagramm
A vázlat egyszerű; csatlakoztattuk az LCD-t az RB porton keresztül, és az EM-18 modult az UART Rx tűhöz.
A kenyérlapon a kapcsolatot sematikus módon hoztuk létre.
Kód Magyarázat
Mint mindig, először is be kell állítanunk a konfigurációs biteket a pic mikrovezérlőben, meg kell határoznunk néhány makrót, beleértve a könyvtárakat és a kristályfrekvenciát. Ellenőrizheti a kódot mindazok számára, akik szerepelnek a végén megadott teljes kódban.
// PIC16F877A konfigurációs bitbeállítások // 'C' forrássor konfigurációs utasításai // CONFIG #pragma config FOSC = HS // oszcillátor kiválasztó bitjei (HS oszcillátor) #pragma config WDTE = KI // Watchdog időzítő bit engedélyezése (WDT letiltva) # pragma config PWRTE = OFF // Bekapcsolási időzítő bit engedélyezése (PWRT letiltva) # pragma config BOREN = BE // Brown-out Reset bit engedélyezése (BOR engedélyezve) #pragma config LVP = OFF // Alacsony feszültség (egyszeres táp)) Áramkörön belüli soros programozás engedélyezési bitje (az RB3 / PGM csapnak PGM funkciója van; alacsony feszültségű programozás engedélyezve) #pragma config CPD = OFF // Data EEPROM memóriakód védelmi bit (Data EEPROM kód védelem ki) #pragma config WRT = KI // Flash programmemória írása Bitek engedélyezése (Írásvédelem kikapcsolva; az összes programmemóriát írhatja az EECON vezérlés) #pragma config CP = KI // Flash program memóriájának kódvédelmi bitje (Kódvédelem ki) # tartalmazza a "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Ha látjuk a fő függvényt, akkor egy függvényt hívtunk a rendszer inicializálásához. Ebben a funkcióban inicializáljuk az LCD-t és az UART-ot.
/ * Ez a funkció a rendszer inicializálására szolgál. * / void system_init (érvénytelen) { TRISB = 0x00; // B PORT beállítva kimeneti tűként lcd_init (); // Ez inicializálja az lcd EUSART1_Initialize (); // Ez inicializálja az Eusart }
Most a fő funkcióban egy 13 bites tömböt használtunk, amely RFID-szám. Az RFID sz. az EUSART1_Read () használatával; függvény, amelyet az UART könyvtár belsejében deklarálunk. 12bit fogadása után az Array-t stringként nyomtatjuk az LCD-re.
void main (void) { aláíratlan char count; aláíratlan karakter RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Áramkör összefoglalása"); míg (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Állítsa be a kurzort az lcd_puts kezdő második sorhoz ("ID:"); lcd_puts (RF_ID); } }
Az alábbiakban bemutatjuk a teljes kódot a demonstrációs videóval.
Ellenőrizze az RFID és más mikrovezérlők interfészeit is:
RFID-interfész az MSP430 Indítópulttal
RFID interfész a 8051 mikrokontrollerrel
RFID interfész az Arduinóval