RFID tarkoittaa radiotaajuustunnistusta. RFID-moduuli pystyy lukemaan tai kirjoittamaan pienen määrän tietoa passiiviseen RFID-tunnisteeseen, jota voidaan käyttää tunnistamisprosessissa erilaisissa järjestelmissä, kuten läsnäolo-, turvajärjestelmä-, äänestysjärjestelmä jne. RFID on erittäin kätevä ja helppo tekniikka.
Tarvitsemme mikro-ohjaimen, jossa on UART-laitteisto, jotta voimme lukea passiiviset RFID-kortit ja tunnisteet. Jos valitsemme mikro-ohjaimen ilman UART: ta, meidän on toteutettava ohjelmisto UART. Tässä käytämme PIC-mikrokontrolleria PIC16F877A RFID: n rajapintaan. Luemme yksinkertaisesti yksilöllisen tunnistenumeron. RFID-tunnisteita ja näytä se 16x2 LCD-näytöllä.
RFID-moduuli ja sen toiminta
Tässä projektissa valitsimme EM-18 RFID-moduulin, joka on pienikokoinen, edullinen ja virtaa säästävä moduuli. EM-18 RFID-moduuli käyttää 125 KHz: n RF-taajuutta passiivisten 125 KHz: n RFID-tunnisteiden lukemiseen. EM-18-moduuli käyttää oskillaattoria, demodulaattoria ja datadekooderia tietojen lukemiseen passiiviselta kortilta.
RFID-tunniste
Saatavilla on kolmen tyyppisiä RFID-tunnisteita, passiivisia, aktiivisia tai akkuavusteisia. Erilaisia RFID-tunnisteita, joilla on erilainen muoto ja koko, on saatavana markkinoilla. Harvat heistä käyttävät eri taajuuksia viestintätarkoituksiin. Käytämme 125 KHz: n passiivisia RFID-kortteja, joihin on tallennettu yksilölliset henkilöllisyystiedot. Tässä ovat RFID-kortti ja tunnisteet, joita käytämme tässä projektissa.
RFID: n toiminta
Jos näemme EM-18-moduulin datalehden (http://www.alselectro.com/files/rfid-ttl-em18.pdf), voisimme nähdä moduulin takapuolen ja sovelluspiirin:
Moduuli käyttää UART-yhteyskäytäntöä 9600 siirtonopeudella. Kun kelvollinen taajuusmerkki tuodaan EM-18-lukijan magneettikenttään, BC557-transistori syttyy ja summeri alkaa piipata, se myös hehkuttaa LEDiä. Käytämme moduulia, joka on helposti saatavilla markkinoilla ja jossa on täydelliset piirit summerilla, ledillä ja ylimääräisellä RS232-portilla.
Tässä on RFID-korttimoduuli, jota käytämme pin-nimien kanssa. Tässä moduulissa on myös ylimääräinen virtalähde.
Yksi asia on pidettävä mielessä, että EM-18-lukijan lähtö käyttää 5 V: n logiikkatasoa. Voisimme käyttää toista mikro-ohjainta, joka käyttää matalampaa logiikkatasoa, mutta tällaisissa tapauksissa tarvitaan ylimääräinen logiikkatason muunnin. Joissakin tapauksissa 3,3 V: n mikrokontrollerin UART-nasta on usein 5 V: n suvaitsevainen.
UART-lähtö tuottaa 12-bittistä ASCII- dataa. Ensimmäiset 10 bittiä ovat RFID-tunnistenumero, joka on yksilöllinen tunnus, ja kahta viimeistä numeroa käytetään virhetestaukseen. Kaksi viimeistä numeroa ovat tagin numeron XOR. EM-18-moduuli lukee tietoja 125 KHz: n passiivisista RFID-tunnisteista tai -korteista.
Näillä tunnisteilla tai tunnuksilla on tehtaalla ohjelmoitu muistiryhmä, joka tallentaa yksilöllisen tunnistenumeron. Koska ne ovat passiivisia, joten kortissa tai tarroissa ei ole akkua, ne saavat virtaa RF-lähetin-vastaanotinmoduulin magneettikentästä. Nämä RFID-tunnisteet on valmistettu käyttämällä EM4102 CMOS IC: tä, jota myös magneettikenttä kellottaa.
Tarvittava materiaali
Tämän projektin tekemiseksi tarvitsemme seuraavat kohteet-
- PIC16F877A
- 20MHz kristalli
- 2kpl 33pF keraaminen levykondensaattori
- 16x2-merkkinen LCD-näyttö
- Leipälauta
- 10k esiasetettu potti
- 4.7k vastus
- Yksisäikeiset johdot yhdistää
- 5 V: n sovitin
- RF-moduuli EM-18
- 5V summeri
- 100uF &.1uF 12V kondensaattori
- BC557-transistori
- LED
- 2,2 k ja 470R vastus.
Käytämme EM-18-moduulilevyä, jossa on summeri ja valmiiksi konfiguroitu led. Joten 11-15 lueteltuja komponentteja ei tarvita.
Piirikaavio
Kaavio on yksinkertainen; Yhdistimme LCD-portin RB-portin yli ja EM-18-moduulin UART Rx -nastan yli.
Olemme tehneet liitännän leipälaudalle kaavamaisen mukaisesti.
Koodin selitys
Kuten aina, meidän on ensin asetettava konfigurointibitit pic-mikrokontrollerissa, määriteltävä joitain makroja, mukaan lukien kirjastot ja kidetaajuus. Voit tarkistaa koodin kaikkien niiden kohdalla, jotka ovat lopussa olevassa koodissa.
// PIC16F877A-määritysbittiasetukset // C-lähdekoodin määrityslausekkeet // CONFIG #pragma config FOSC = HS // Oskillaattorin valintabitit (HS-oskillaattori) #pragma config WDTE = POIS // Watchdog Timer Ota bitti käyttöön (WDT pois käytöstä) # pragma-konfiguraatio PWRTE = POIS // Käynnistysajastin Ota bitti käyttöön (PWRT pois käytöstä) #pragma-konfiguraatio BOREN = PÄÄLLÄ // Ruskea-out-nollaus Ota bitti käyttöön (BOR käytössä) #pragma-konfiguraatio LVP = POIS // Pienjännite (kertalähde)) Piirin sisäinen sarjaohjelmointi Aktivoi bitti (RB3 / PGM-nastalla on PGM-toiminto; matalajännitteinen ohjelmointi käytössä) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = POIS // Flash-ohjelmamuistin kirjoitus Ota bittiä käyttöön (Kirjoitussuojaus pois; kaikki ohjelmamuistit voidaan kirjoittaa EECON-ohjauksella) #pragma config CP = POIS // Flash-ohjelmamuistin koodisuojabitti (koodisuojaus pois päältä) # sisällytä "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Jos näemme päätoiminnon, kutsuimme toiminnon järjestelmän alustamiseksi. Alustamme LCD: n ja UART: n tässä toiminnossa.
/ * Tämä toiminto on tarkoitettu järjestelmän alustamiseen. * / void system_init (mitätön) { TRISB = 0x00; // PORTTI B asetettu lähtöneulaksi lcd_init (); // Tämä alustaa lcd: n EUSART1_Initialize (); // Tämä alustaa Eusartin }
Nyt päätoiminnossa käytimme 13-bittistä taulukkoa, joka on RFID-numero. Saamme jokaisen bitin RFID-numerosta. käyttämällä EUSART1_Read (); -funktio, joka on ilmoitettu UART-kirjaston sisällä. Saatuamme 12 bittiä, tulostamme Array merkkijonona LCD-näyttöön.
void main (void) { allekirjoittamaton char count; allekirjoittamaton merkki RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Piirin yhteenveto"); kun taas (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Aseta kohdistin toiselle riville, joka alkaa lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Täydellinen koodi esittelyvideolla on annettu alla.
Tarkista myös RFID-liitäntä muiden mikrokontrollerien kanssa:
RFID-liitäntä MSP430-käynnistyslevyyn
RFID-liitäntä 8051-mikrokontrolleriin
RFID-liitäntä Arduinon kanssa