RFID significa Identificació per radiofreqüència. El mòdul RFID pot llegir o escriure una petita quantitat de dades en una etiqueta RFID passiva, que es pot utilitzar en el procés d’identificació en diversos sistemes com el sistema d’assistència, el sistema de seguretat, el sistema de votació, etc. El RFID és una tecnologia molt còmoda i senzilla.
Per llegir les targetes i etiquetes RFID passives, necessitem un microcontrolador amb maquinari UART. Si seleccionem un microcontrolador sense UART, haurem d’implementar el programari UART. Aquí estem utilitzant el microcontrolador PIC PIC16F877A per a la interfície RFID. Simplement llegirem la identificació única núm. d’etiquetes RFID i mostrar-les a un LCD de 16x2.
El mòdul RFID i el seu funcionament
En aquest projecte, vam escollir el mòdul RFID EM-18, que és un mòdul de mida reduïda, de baix cost i eficient. El mòdul RFID EM-18 utilitza una freqüència de RF de 125 KHz per llegir etiquetes RFID passives de 125 KHz. El mòdul EM-18 utilitza oscil·lador, demodulador i descodificador de dades per llegir les dades d'una targeta passiva.
Etiqueta RFID
Hi ha tres tipus d’etiquetes RFID disponibles, passives, actives o passives amb bateria. Hi ha disponibles al mercat diferents tipus d’etiquetes RFID amb un tipus de formes i mides diferents. Pocs d'ells utilitzen diferents freqüències amb finalitats de comunicació. Utilitzarem targetes RFID passives de 125 kHz que contenen les dades d’identificació exclusives. Aquí teniu la targeta RFID i les etiquetes que estem utilitzant per a aquest projecte.

Funcionament de RFID
Si veiem el full de dades (http://www.alselectro.com/files/rfid-ttl-em18.pdf) del mòdul EM-18, podríem veure la part posterior del mòdul i del circuit d'aplicació:

El mòdul utilitza el protocol de comunicació UART a una velocitat de 9600 Baud. Quan s’inclou una etiqueta de freqüència vàlida al camp magnètic del lector EM-18, el transistor BC557 s’encén i el brunzidor començarà a sonar, també il·lumina el LED. Estem utilitzant un mòdul fàcilment disponible al mercat i que disposa de circuits complets amb un brunzidor, un led i un port RS232 addicional.
Aquí teniu el mòdul de placa RFID que fem servir amb noms de pins. Aquest mòdul també té una opció d'alimentació addicional.

Cal tenir en compte una cosa que la sortida del lector EM-18 utilitza un nivell lògic de 5V. Podríem utilitzar un altre microcontrolador que utilitza un nivell lògic inferior, però en aquests casos, es necessita el convertidor de nivell lògic addicional. En alguns casos, el pin UART del microcontrolador de 3,3V sol ser tolerant a 5V.
La sortida UART proporciona dades ASCII de 12 bits. Els primers 10 bits són el número d’etiqueta RFID, que és l’identificador únic i els dos darrers dígits s’utilitzen per provar els errors. Aquests dos darrers dígits són el XOR del número de l'etiqueta. El mòdul EM-18 llegirà les dades de les etiquetes o targetes RFID passives de 125 KHz.
Aquestes etiquetes o identificadors tenen una matriu de memòria programada de fàbrica que emmagatzema el número d'identificació únic. Com que són passius, de manera que no hi ha cap bateria a la targeta ni a les etiquetes, s’energitzen pel camp magnètic del mòdul de transceptor de RF. Aquestes etiquetes RFID es fabriquen mitjançant l’ EM4102 CMOS IC, que també és rellotjat pel camp magnètic.
Material requerit
Per fer aquest projecte necessitem els següents elements:
- PIC16F877A
- Cristall de 20Mhz
- Condensador de disc ceràmic de 2 peces de 33pF
- LCD de 16x2 caràcters
- Una pissarra
- Olla predefinida de 10 k
- Resistència de 4,7 k
- Filferros monocatenaris per connectar-se
- Un adaptador de 5 V.
- Mòdul RF EM-18
- Zumbador de 5V
- Condensador 100uF i.1uF 12V
- BC557 Transistor
- LED
- Resistència 2.2k i 470R.
Estem utilitzant la placa del mòdul EM-18 amb brunzidor i led preconfigurats. Per tant, no són necessaris els components llistats de l’11 al 15.
Esquema de connexions

L’esquema és senzill; hem connectat LCD a través del port RB i hem connectat el mòdul EM-18 a través del pin UART Rx.
Hem realitzat la connexió en taulers segons l’esquema.

Explicació del codi
Com sempre, primer hem d’establir els bits de configuració al microcontrolador pic, definir algunes macros, incloses les biblioteques i la freqüència de cristall. Podeu comprovar el codi de tots els que apareixen al codi complet que es dóna al final.
// bit de configuració Configuració PIC16F877A // declaracions de configuració de línia font 'C' // CONFIG #pragma config bits d'Fosc = SA // Selecció oscil·lador (SA oscil·lador) #pragma config WDTE = OFF // temporitzador de vigilància Activa bit (WDT desactivat) # pragma config PWRTE = OFF // Bit d’activació del temporitzador d’encesa (PWRT desactivat) #pragma config BOREN = ON // Brownable out Reset Enable bit (BOR enabled) #pragma config LVP = OFF // Low Voltage (Single-Supply)) Bit d’activació de la programació en sèrie en circuit (el pin RB3 / PGM té una funció PGM; la programació de baixa tensió està activada) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Memòria del programa Flash Permet escriure bits (Protecció contra escriptura desactivada; tota la memòria del programa pot ser escrita pel control EECON) #pragma config CP = OFF // Bit de protecció del codi de memòria del programa Flash (protecció del codi desactivada) # inclou "fitxer_supporting \ lcd.h" #include "fitxer_supporing \ eusart1.h"
Si veiem la funció principal , anomenarem una funció per inicialitzar el sistema. Inicialitzem LCD i UART en aquesta funció.
/ * Aquesta funció és per a inicialitzacions del sistema. * / void system_init (void) { TRISB = 0x00; // PORT B configurat com a pin de sortida lcd_init (); // Això inicialitzarà el lcd EUSART1_Initialize (); // Això inicialitzarà l'Eusart }
Ara, a la funció principal , hem utilitzat una matriu de 13 bits que és el número RFID. Rebem cada bit del número RFID. utilitzant EUSART1_Read (); funció, que es declara dins de la biblioteca UART. Després de rebre 12 bits, imprimim la matriu com a cadena a la pantalla LCD.
void main (void) { recompte de caràcters sense signar; RF_ID de caràcter sense signar; system_init (); lcd_com (0x80); lcd_puts ("Circuit Digest"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Estableix el cursor per a la segona línia que comença lcd_puts ("ID:"); lcd_puts (RF_ID); } }
A continuació es mostra el codi complet amb el vídeo de demostració.
Comproveu també la interfície RFID amb un altre microcontrolador:
Interfície RFID amb MSP430 Launchpad
Interfície RFID amb microcontrolador 8051
Interfície RFID amb Arduino
