RFID står for Radio Frequency Identification. RFID-modulen kan lese eller skrive liten mengde data i en passiv RFID-tag, som kan brukes i identifikasjonsprosessen i forskjellige systemer som fremmøte, sikkerhetssystem, stemmesystem osv. RFID er veldig praktisk og enkel teknologi.
For å lese de passive RFID-kortene og taggen, trenger vi en mikrokontroller med UART-maskinvare. Hvis vi velger en mikrokontroller uten UART, må vi implementere UART-programvaren. Her bruker vi PIC Microcontroller PIC16F877A for grensesnitt mellom RFID. Vi vil ganske enkelt lese det unike identifikasjonsnummeret. av RFID-koder og viser den på 16x2 LCD.
RFID-modul og dens arbeid
I dette prosjektet valgte vi EM-18 RFID-modul, som er liten, billig og strømeffektiv modul. EM-18 RFID-modul bruker 125 KHz RF-frekvens for å lese passive 125 KHz RFID-koder. EM-18-modulen bruker oscillator, demodulator og datadekoder for å lese data fra et passivt kort.
RFID-tag
Det er tre typer RFID-koder tilgjengelig, passiv, aktiv eller batteristøttet passiv. Ulike typer RFID-koder med en annen type former og størrelser er tilgjengelige i markedet. Få av dem bruker forskjellig frekvens for kommunikasjonsformål. Vi vil bruke 125 kHz passive RFID-kort som inneholder unike ID-data. Her er RFID-kortet og kodene vi bruker for dette prosjektet.
Arbeid med RFID
Hvis vi ser databladet (http://www.alselectro.com/files/rfid-ttl-em18.pdf) av EM-18-modulen, kan vi se baksiden av modulen og applikasjonskretsen:
Modulen bruker UART kommunikasjonsprotokoll i 9600 Baud rate. Når en gyldig frekvensmerke blir ført inn i magnetfeltet til EM-18-leseren, begynner BC557-transistoren og summeren begynner å pippe, den lyser også lysdioden. Vi bruker en modul som er lett tilgjengelig i markedet og har komplette kretsløp med en summer, ledet og en ekstra RS232-port.
Her er RFID-kortmodulen vi bruker med pin-navn. Denne modulen har også ekstra strømalternativ.
En ting må huskes på at utgangen fra EM-18-leseren bruker 5V-logikknivå. Vi kan bruke en annen mikrokontroller som bruker et lavere logikknivå, men i slike tilfeller kreves den ekstra logiske nivåomformeren. I få tilfeller er UART-pinnen til 3.3V-mikrokontrolleren ofte 5V-tolerant.
UART-utgangen gir 12-biters ASCII- data. De første 10 bitene er RFID-kodenummer, som er den unike ID-en, og de to siste sifrene brukes til feiltesting. De to siste sifrene er XOR for taggenummeret. EM-18-modulen vil lese data fra 125 kHz passive RFID-koder eller kort.
Disse kodene eller ID-ene har et fabrikk-programmert minnesystem som lagrer det unike ID-nummeret. Ettersom de er passive, så det ikke er noe batteri i kortet eller merkelappene, får de energi fra magnetfeltet til RF-mottakermodulen. Disse RFID-kodene er laget med EM4102 CMOS IC, som også er klokket av magnetfeltet.
Nødvendig materiale
For å lage dette prosjektet trenger vi følgende ting-
- PIC16F877A
- 20Mhz krystall
- 2stk 33pF keramisk skivekondensator
- 16x2 tegn LCD
- Et brødbrett
- 10k forhåndsinnstilt pott
- 4,7 k motstand
- Enkeltstrengede ledninger for å koble til
- En 5V adapter
- RF-modul EM-18
- 5V summer
- 100uF og.1uF 12V kondensator
- BC557 Transistor
- LED
- 2,2k og 470R motstand.
Vi bruker EM-18 modulkortet med summer og ledet forhåndskonfigurert. Så det er ikke behov for komponentene som er oppført fra 11 til 15.
Kretsdiagram
Skjematisk er enkelt; vi koblet LCD over port RB og koblet EM-18 modulen over UART Rx-pinnen.
Vi har laget forbindelsen på brødbrett i henhold til skjematisk.
Kode Forklaring
Som alltid må vi først sette konfigurasjonsbiter i pic-mikrokontrolleren, definere noen makroer, inkludert biblioteker og krystallfrekvens. Du kan sjekke koden for alle de i den fullstendige koden som er gitt på slutten.
// 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)) In-Circuit Serial Programming Enable bit (RB3 / PGM pin har PGM-funksjon; lavspenningsprogrammering aktivert) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Skrivebeskyttelse av; alt programminne kan skrives til av EECON-kontroll) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) # inkluderer "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Hvis vi ser hovedfunksjonen vi kalte en funksjon for å initialisere systemet. Vi initialiserer LCD og UART i denne funksjonen.
/ * Denne funksjonen er for systeminitialisering. * / void system_init (ugyldig) { TRISB = 0x00; // PORT B satt som utgangsstift lcd_init (); // Dette vil initialisere lcd EUSART1_Initialize (); // Dette vil initialisere Eusart }
Nå, i hovedfunksjon, anvendte vi en 13 bit matrise som er RFID nummer. Vi mottar hver bit av RFID-nr. ved hjelp av EUSART1_Read (); funksjon, som er erklært inne i UART-biblioteket. Etter å ha mottatt 12 bit, skriver vi ut Array som streng i LCD-skjermen.
ugyldig hoved (ugyldig) { usignert rødtall; usignert røye RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Circuit Digest"); mens (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Sett markøren for andre linje som begynner lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Fullstendig kode med demonstrasjonsvideo er gitt nedenfor.
Sjekk også grensesnitt RFID med annen mikrokontroller:
RFID-grensesnitt med MSP430 Launchpad
RFID-grensesnitt med 8051 mikrokontroller
RFID-grensesnitt med Arduino