Το RFID σημαίνει αναγνώριση ραδιοσυχνοτήτων. Η μονάδα RFID μπορεί να διαβάσει ή να γράψει μικρή ποσότητα δεδομένων σε μια παθητική ετικέτα RFID, η οποία μπορεί να χρησιμοποιηθεί στη διαδικασία αναγνώρισης σε διάφορα συστήματα όπως το σύστημα παρακολούθησης, το σύστημα ασφαλείας, το σύστημα ψηφοφορίας κ.λπ. Το RFID είναι πολύ βολική και εύκολη τεχνολογία.
Για να διαβάσετε τις παθητικές κάρτες RFID και την ετικέτα, χρειαζόμαστε έναν μικροελεγκτή με υλικό UART. Εάν επιλέξουμε έναν μικροελεγκτή χωρίς UART, πρέπει να εφαρμόσουμε το λογισμικό UART. Εδώ χρησιμοποιούμε PIC Microcontroller PIC16F877A για διασύνδεση RFID. Θα διαβάσουμε απλά τον μοναδικό αριθμό ταυτοποίησης. ετικετών RFID και να τις εμφανίσετε σε οθόνη LCD 16x2.
Μονάδα RFID και η λειτουργία της
Σε αυτό το έργο, επιλέξαμε τη μονάδα EM-18 RFID, η οποία είναι μονάδα μικρού μεγέθους, χαμηλού κόστους και εξοικονόμησης ενέργειας. Η μονάδα EM-18 RFID χρησιμοποιεί συχνότητα RF 125 KHz για την ανάγνωση παθητικών ετικετών RFID 125 KHz. Η μονάδα EM-18 χρησιμοποιεί τον Oscillator, τον αποδιαμορφωτή και τον αποκωδικοποιητή δεδομένων για να διαβάσει δεδομένα από μια παθητική κάρτα.
Ετικέτα RFID
Υπάρχουν τρεις τύποι ετικετών RFID που είναι διαθέσιμοι, το Passive, Active ή Battery-assisted passive. Διατίθεται διαφορετικό είδος ετικετών RFID με διαφορετικό είδος σχημάτων και μεγεθών στην αγορά. Λίγοι από αυτούς χρησιμοποιούν διαφορετική συχνότητα για επικοινωνιακούς σκοπούς. Θα χρησιμοποιήσουμε 125Khz παθητικές κάρτες RFID που περιέχουν τα μοναδικά δεδομένα ταυτότητας. Εδώ είναι η κάρτα RFID και οι ετικέτες που χρησιμοποιούμε για αυτό το έργο.
Εργασία RFID
Εάν δούμε το φύλλο δεδομένων (http://www.alselectro.com/files/rfid-ttl-em18.pdf) του EM-18 Module, θα μπορούσαμε να δούμε την πίσω πλευρά της μονάδας και το κύκλωμα εφαρμογής:
Η μονάδα χρησιμοποιεί πρωτόκολλο επικοινωνίας UART σε ρυθμό 9600 Baud. Όταν μια έγκυρη ετικέτα συχνότητας εισάγεται στο μαγνητικό πεδίο της συσκευής ανάγνωσης EM-18, το τρανζίστορ BC557 ανάβει και ο βομβητής θα αρχίσει να ηχεί, αναβοσβήνει επίσης το LED. Χρησιμοποιούμε μια μονάδα που είναι εύκολα διαθέσιμη στην αγορά και διαθέτει πλήρη κυκλώματα με βομβητή, led και επιπλέον θύρα RS232.
Εδώ είναι η ενότητα πλακέτας RFID που χρησιμοποιούμε με ονόματα καρφιτσών. Αυτή η μονάδα διαθέτει επίσης πρόσθετη επιλογή ισχύος.
Ένα πράγμα πρέπει να θυμόμαστε ότι η έξοδος του αναγνώστη EM-18 χρησιμοποιεί επίπεδο λογικής 5V. Θα μπορούσαμε να χρησιμοποιήσουμε έναν άλλο μικροελεγκτή που χρησιμοποιεί χαμηλότερο επίπεδο λογικής, αλλά σε τέτοιες περιπτώσεις, απαιτείται ο πρόσθετος μετατροπέας επιπέδου λογικής. Σε μερικές περιπτώσεις, ο πείρος UART του 3.3V μικροελεγκτή είναι συχνά ανεκτός σε 5V.
Η έξοδος UART παρέχει δεδομένα ASCII 12-bit. Τα πρώτα 10 bit είναι ο αριθμός ετικέτας RFID, ο οποίος είναι το μοναδικό αναγνωριστικό και τα δύο τελευταία ψηφία χρησιμοποιούνται για τον έλεγχο σφαλμάτων. Αυτά τα δύο τελευταία ψηφία είναι το XOR του αριθμού ετικέτας. Η μονάδα EM-18 θα διαβάσει τα δεδομένα από παθητικές ετικέτες ή κάρτες RFID 125 KHz.
Αυτές οι ετικέτες ή τα αναγνωριστικά διαθέτουν μια εργοστασιακά προγραμματισμένη συστοιχία μνήμης που αποθηκεύει τον μοναδικό αριθμό ταυτότητας. Καθώς αυτά είναι παθητικά, οπότε δεν υπάρχει μπαταρία στην κάρτα ή στις ετικέτες, ενεργοποιούνται από το μαγνητικό πεδίο της μονάδας πομποδέκτη RF. Αυτές οι ετικέτες RFID γίνονται χρησιμοποιώντας το EM4102 CMOS IC το οποίο χρονολογείται επίσης από το μαγνητικό πεδίο.
Απαιτούμενο υλικό
Για να κάνουμε αυτό το έργο χρειαζόμαστε τα ακόλουθα στοιχεία-
- PIC16F877Α
- 20Mhz Crystal
- Πυκνωτής κεραμικών δίσκων 2τμχ 33τμ
- LCD χαρακτήρων 16x2
- Ένα ψωμί
- 10k προεπιλεγμένο δοχείο
- 4.7k αντίσταση
- Μονά κλώνια για σύνδεση
- Προσαρμογέας 5V
- Μονάδα RF EM-18
- 5V Buzzer
- Πυκνωτής 100uF &.1uF 12V
- Τρανζίστορ BC557
- LED
- 2.2k και 470R αντίσταση.
Χρησιμοποιούμε την πλακέτα μονάδας EM-18 με προεπιλεγμένο βομβητή και led. Επομένως, τα εξαρτήματα που αναφέρονται από 11 έως 15 δεν είναι απαραίτητα.
Διάγραμμα κυκλώματος
Το σχηματικό είναι απλό. συνδέσαμε την οθόνη LCD σε θύρα RB και συνδέσαμε τη μονάδα EM-18 στον ακροδέκτη UART Rx.
Έχουμε κάνει τη σύνδεση στο breadboard σύμφωνα με το σχήμα.
Επεξήγηση κώδικα
Όπως πάντα, πρώτα πρέπει να ρυθμίσουμε τα bit διαμόρφωσης στον μικροελεγκτή pic, να ορίσουμε μερικές μακροεντολές, συμπεριλαμβανομένων των βιβλιοθηκών και της κρυσταλλικής συχνότητας. Μπορείτε να ελέγξετε τον κωδικό για όλους εκείνους στον πλήρη κώδικα που δίνεται στο τέλος.
// PIC16F877A Ρυθμίσεις Bit Ρυθμίσεις // Δηλώσεις διαμόρφωσης γραμμής πηγής «C» // CONFIG #pragma config FOSC = HS // Oscillator Selection bits (HS oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT απενεργοποιημένο) # pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT απενεργοποιημένο) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled) #pragma config LVP = OFF // Χαμηλή τάση (Μονή παροχή) In-Circuit Serial Programming Enable bit (Ο πείρος RB3 / PGM έχει λειτουργία PGM, ενεργοποιημένος προγραμματισμός χαμηλής τάσης) #pragma config CPD = OFF // Δεδομένα EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Πρόγραμμα μνήμης Γράψτε Ενεργοποίηση bits (Γράψτε την προστασία των off? όλη τη μνήμη του προγράμματος μπορούν να εγγραφούν από τον έλεγχο EECON) #pragma config CP = OFF // Flash Πρόγραμμα μνήμης Προστασία bit κώδικα (Code προστασίας εκτός) # συμπεριλάβετε "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Αν δούμε την κύρια συνάρτηση, καλέσαμε μια συνάρτηση για την αρχικοποίηση του συστήματος. Αρχικοποιούμε την οθόνη LCD και UART σε αυτήν τη λειτουργία.
/ * Αυτή η λειτουργία είναι για αρχικοποιήσεις συστήματος. * / void system_init (void) { TRISB = 0x00; // PORT B ορίστηκε ως πείρος εξόδου lcd_init (); // Αυτό θα προετοιμάσει το lcd EUSART1_Initialize (); // Αυτό θα προετοιμάσει το Eusart }
Τώρα, στην κύρια λειτουργία, χρησιμοποιήσαμε μια συστοιχία 13 bit που είναι ο αριθμός RFID. Λαμβάνουμε κάθε bit του αριθμού RFID. χρησιμοποιώντας EUSART1_Read (); συνάρτηση, η οποία δηλώνεται στο εσωτερικό της βιβλιοθήκης UART. Μετά τη λήψη 12 bit, εκτυπώνουμε το Array ως συμβολοσειρά στην οθόνη LCD.
void main (void) { μη υπογεγραμμένος αριθμός char; μη υπογεγραμμένο char RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Κύκλωμα Digest"); ενώ (1) { για (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Διαβάστε (); } lcd_com (0xC0); // Ρυθμίστε τον κέρσορα για τη δεύτερη γραμμή ξεκινώντας lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Ο πλήρης κώδικας με το βίντεο επίδειξης δίνεται παρακάτω.
Ελέγξτε επίσης τη διασύνδεση RFID με άλλο μικροελεγκτή:
RFID Interfacing με MSP430 Launchpad
Διασύνδεση RFID με μικροελεγκτή 8051
Διασύνδεση RFID με το Arduino