RFID nozīmē Radiofrekvenču identifikācija. RFID modulis var nolasīt vai ierakstīt nelielu daudzumu datu pasīvā RFID tagā, ko var izmantot identifikācijas procesā dažādās sistēmās, piemēram, apmeklēšanas sistēmā, drošības sistēmā, balsošanas sistēmā utt. RFID ir ļoti ērta un vienkārša tehnoloģija.
Lai lasītu pasīvās RFID kartes un tagu, mums ir nepieciešams mikrokontrolleris ar UART aparatūru. Ja mēs izvēlamies mikrokontrolleru bez UART, mums jāievieš programmatūra UART. Šeit mēs izmantojam PIC mikrokontrolleru PIC16F877A RFID saskarnei. Mēs vienkārši izlasīsim unikālo identifikācijas Nr. RFID tagu un parādiet to uz 16x2 LCD.
RFID modulis un tā darbība
Šajā projektā mēs izvēlējāmies EM-18 RFID moduli, kas ir maza izmēra, zemu izmaksu un energoefektīvs modulis. EM-18 RFID modulis izmanto 125 KHz RF frekvenci, lai lasītu pasīvos 125 KHz RFID tagus. Lai lasītu datus no pasīvās kartes, EM-18 modulis izmanto oscilatoru, demodulatoru un datu dekodētāju.
RFID marķējums
Ir pieejami trīs veidu RFID tagi: pasīvie, aktīvie vai pasīvie ar akumulatoru. Tirgū ir pieejami dažāda veida RFID tagi ar dažāda veida formām un izmēriem. Tikai daži no viņiem saziņas nolūkos izmanto dažādu frekvenci. Mēs izmantosim 125 KHz pasīvās RFID kartes, kurās glabājas unikālie ID dati. Šeit ir RFID karte un tagi, kurus mēs izmantojam šim projektam.
RFID darbība
Ja mēs redzam EM-18 moduļa datu lapu (http://www.alselectro.com/files/rfid-ttl-em18.pdf), mēs varētu redzēt moduļa aizmuguri un lietojumprogrammas ķēdi:
Modulis izmanto UART sakaru protokolu 9600 Baud ātrumā. Kad EM-18 lasītāja magnētiskajā laukā tiek ievadīta derīga frekvences zīme, ieslēdzas BC557 tranzistors un skaņas signāls sāks pīkstēt, tas arī spīd gaismas diodē. Mēs izmantojam moduli, kas ir viegli pieejams tirgū un kuram ir pilnīga shēma ar skaņas signālu, LED un papildu RS232 pieslēgvietu.
Šeit ir RFID dēļu modulis, kuru mēs izmantojam ar tapu nosaukumiem. Šim modulim ir arī papildu barošanas iespēja.
Jāatceras viena lieta, ka EM-18 lasītāja izejai ir 5V loģikas līmenis. Mēs varētu izmantot citu mikrokontrolleru, kas izmanto zemāku loģikas līmeni, taču šādos gadījumos ir nepieciešams papildu loģiskā līmeņa pārveidotājs. Dažos gadījumos 3,3 V mikrokontrollera UART tapa bieži ir 5 V toleranta.
UART izeja nodrošina 12 bitu ASCII datus. Pirmie 10 biti ir RFID tagu numurs, kas ir unikālais ID, un pēdējie divi cipari tiek izmantoti kļūdu pārbaudei. Šie pēdējie divi cipari ir taga numura XOR. EM-18 modulis nolasīs datus no 125 KHz pasīvajiem RFID tagiem vai kartēm.
Šiem tagiem vai ID ir rūpnīcā ieprogrammēts atmiņas bloks, kurā tiek saglabāts unikālais ID numurs. Tā kā tie ir pasīvi, tāpēc kartē vai etiķetēs nav akumulatora, tie tiek baroti ar RF raiduztvērēja moduļa magnētisko lauku. Šie RFID tagi ir izgatavoti, izmantojot arī EM4102 CMOS IC, kuru regulē arī magnētiskais lauks.
Nepieciešams materiāls
Lai izveidotu šo projektu, mums ir nepieciešami šādi priekšmeti-
- PIC16F877A
- 20Mhz kristāls
- 2gab 33pF keramikas disku kondensators
- 16x2 rakstzīmju LCD
- Maizes dēlis
- 10 k iepriekš iestatīts katls
- 4.7k rezistors
- Viena savienojuma vadi savienošanai
- 5V adapteris
- RF modulis EM-18
- 5V skaņas signāls
- 100uF un.1uF 12V kondensators
- BC557 tranzistors
- LED
- 2,2k un 470R rezistors.
Mēs izmantojam EM-18 moduļu paneli ar iepriekš konfigurētu skaņas signālu un vadītu. Tātad komponenti, kas uzskaitīti no 11 līdz 15, nav vajadzīgi.
Ķēdes shēma
Shēma ir vienkārša; mēs savienojām LCD pāri portam RB un savienojām EM-18 moduli pāri UART Rx tapai.
Savienojumu uz paneļa esam izveidojuši saskaņā ar shēmu.
Kods Paskaidrojums
Kā vienmēr, vispirms mums jāiestata konfigurācijas biti pic mikrokontrollerī, jādefinē daži makro, tostarp bibliotēkas un kristālu frekvence. Jūs varat pārbaudīt kodu visiem tiem kodiem, kas norādīti beigās.
// PIC16F877A konfigurācijas bitu iestatījumi // 'C' avota rindas konfigurācijas paziņojumi // CONFIG #pragma config FOSC = HS // oscilatora izvēles biti (HS oscilators) #pragma config WDTE = OFF // sargsuņa taimeris Iespējot bitu (WDT atspējots) # pragma config PWRTE = OFF // Ieslēgšanas taimera iespējošanas bits (PWRT atspējots) # pragma config BOREN = ON // Brown-out Reset Enable bit (BOR iespējots) #pragma config LVP = OFF // Zemspriegums (Single-Supply)) Iekārtas sērijveida programmēšanas iespējošanas bits (RB3 / PGM tapai ir PGM funkcija; iespējota zemsprieguma programmēšana) #pragma config CPD = OFF // Data EEPROM atmiņas koda aizsardzības bits (datu EEPROM koda aizsardzība izslēgta) #pragma config WRT = OFF // Flash Program Memory Write Enable bitiem (Write aizsardzības off; visu programmu atmiņu var ierakstīt ar EECON kontrole) #pragma config KP = OFF // Flash Program Memory kods aizsardzība bitu (Code aizsardzība off) # ietver "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Ja mēs redzam galveno funkciju, mēs izsaucām funkciju sistēmas inicializēšanai. Šajā funkcijā mēs inicializējam LCD un UART.
/ * Šī funkcija paredzēta sistēmas inicializēšanai. * / void system_init (spēkā neesošs) { TRISB = 0x00; // PORT B iestatīts kā izvades tapa lcd_init (); // Tas inicializēs lcd EUSART1_Initialize (); // Tas inicializēs Eusart }
Tagad galvenajā funkcijā mēs izmantojām 13 bitu masīvu, kas ir RFID numurs. Mēs saņemam katru RFID Nr. izmantojot EUSART1_Read (); funkcija, kas ir deklarēta UART bibliotēkas iekšpusē. Pēc 12 bitu saņemšanas mēs masīvu izdrukājam kā virkni LCD.
void main (void) { neparakstītu zīmju skaits; neparakstīta char RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Circuit Digest"); kamēr (1) { par (skaits = 0; skaits <12; skaits ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Iestatiet kursoru otrajai rindai, kas sākas lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Pilns kods ar demonstrācijas video ir norādīts zemāk.
Pārbaudiet arī saskarnes RFID ar citu mikrokontrolleru:
RFID mijiedarbība ar MSP430 Launchpad
RFID mijiedarbība ar 8051 mikrokontrolleru
RFID saskarne ar Arduino