RFID står för Radio Frequency Identification. RFID-modulen kan läsa eller skriva små mängder data i en passiv RFID-tagg, som kan användas i identifieringsprocessen i olika system som närvarosystem, säkerhetssystem, röstsystem etc. RFID är mycket bekväm och enkel teknik.
För att läsa passiva RFID-kort och tagg behöver vi en mikrokontroller med UART-hårdvara. Om vi väljer en mikrokontroller utan UART, måste vi implementera programvaran UART. Här använder vi PIC Microcontroller PIC16F877A för gränssnitt mellan RFID. Vi läser helt enkelt det unika identifieringsnumret. av RFID-taggar och visa den på 16x2 LCD.
RFID-modul och dess arbete
I detta projekt valde vi EM-18 RFID-modul, som är en liten, låg kostnad och energieffektiv modul. EM-18 RFID-modul använder 125 KHz RF-frekvens för att läsa passiva 125 KHz RFID-taggar. EM-18-modulen använder Oscillator, demodulator och datavkodare för att läsa data från ett passivt kort.
RFID-tagg
Det finns tre typer av RFID-taggar tillgängliga, passiva, aktiva eller batteriassisterade passiva. Olika typer av RFID-taggar med olika former och storlekar finns på marknaden. Få av dem använder olika frekvenser för kommunikationsändamål. Vi använder 125 kHz passiva RFID-kort som innehåller unika ID-data. Här är RFID-kortet och taggarna vi använder för detta projekt.
Arbeta med RFID
Om vi ser databladet (http://www.alselectro.com/files/rfid-ttl-em18.pdf) för EM-18-modulen kan vi se baksidan av modulen och applikationskretsen:
Modulen använder UART-kommunikationsprotokoll i 9600 Baud-hastighet. När en giltig frekvensmärke förs in i magnetfältet på EM-18-läsaren tänds BC557-transistorn och summern börjar pipa, den lyser också lysdioden. Vi använder en modul som är lätt tillgänglig på marknaden och har kompletta kretsar med en summer, led och ytterligare en RS232-port.
Här är RFID-kortmodulen vi använder med stiftnamn. Denna modul har också ytterligare strömalternativ.
En sak måste komma ihåg att utdata från EM-18-läsare använder 5V-logiknivå. Vi kan använda en annan mikrokontroller som använder en lägre logiknivå, men i sådana fall krävs den ytterligare logiknivåomvandlaren. I få fall är UART-stiftet på 3,3 V-mikrokontrollern ofta 5 V-tolerant.
UART-utgången ger 12-bitars ASCII- data. De första 10 bitarna är RFID-taggnummer, vilket är det unika ID-numret och de två sista siffrorna används för felprovning. De sista två siffrorna är XOR för taggnumret. EM-18-modulen läser data från 125 kHz passiva RFID-taggar eller -kort.
Dessa taggar eller ID har en fabriksprogrammerad minnesmatris som lagrar det unika ID-numret. Eftersom de är passiva, så att inget batteri finns i kortet eller taggarna, får de energi från magnetfältet i RF-sändtagarmodulen. Dessa RFID-taggar tillverkas med hjälp av EM4102 CMOS IC som också är klockad av magnetfältet.
Material krävs
För att göra detta projekt behöver vi följande artiklar-
- PIC16F877A
- 20Mhz kristall
- 2st 33pF keramisk skivkondensator
- 16x2 tecken LCD
- En brädbräda
- 10k förinställd kruka
- 4,7 k motstånd
- Enkla trådar för att ansluta
- En 5V-adapter
- RF-modul EM-18
- 5V summer
- 100uF &.1uF 12V kondensator
- BC557 Transistor
- LED
- 2,2k och 470R motstånd.
Vi använder EM-18 modulkortet med summer och ledd förkonfigurerad. Så komponenterna som anges från 11 till 15 behövs inte.
Kretsschema
Schemat är enkelt; vi kopplade LCD över port RB och kopplade EM-18 modulen över UART Rx-stiftet.
Vi har gjort anslutningen på breadboard enligt schematisk.
Kodförklaring
Som alltid måste vi först ställa in konfigurationsbitarna i pic-mikrokontrollern, definiera några makron, inklusive bibliotek och kristallfrekvens. Du kan kontrollera koden för alla dem i den fullständiga koden som ges i slutet.
// PIC16F877A Configuration Bit Settings // 'C' source line config statements // 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 disabled) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled ) #pragma config LVP = OFF // Low-Voltage (Single-Supply)) Seriell programmering i kretsen aktiverar bit (RB3 / PGM-stift har PGM-funktion; lågspänningsprogrammering aktiverad) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Program Memory Write Aktivera bitar (skrivskydd av; allt programminne kan skrivas till av EEGON-kontroll) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) # inkluderar "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Om vi ser huvudfunktion vi kallade en funktion för att initiera systemet. Vi initialiserar LCD och UART i denna funktion.
/ * Denna funktion är avsedd för systeminitialisering. * / void system_init (void) { TRISB = 0x00; // PORT B inställd som utgångsstift lcd_init (); // Detta initialiserar lcd EUSART1_Initialize (); // Detta initierar Eusart }
Nu, i huvudfunktionen använde vi en 13 bit array som är RFID nummer. Vi får varje bit av RFID-nr. använder EUSART1_Read (); funktion, som deklareras inuti UART-biblioteket. Efter att ha fått 12 bitar skriver vi ut Array som sträng i LCD-skärmen.
void main (void) { osignerad char count; osignerad röd RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Circuit Digest"); medan (1) { för (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Ställ in markören för andra raden som börjar lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Komplett kod med demonstrationsvideo ges nedan.
Kontrollera även gränssnittet mellan RFID och annan mikrokontroller:
RFID-gränssnitt med MSP430 Launchpad
RFID-gränssnitt med 8051 mikrokontroller
RFID-gränssnitt med Arduino