RFID מייצג זיהוי תדרים רדיו. מודול RFID יכול לקרוא או לכתוב כמות קטנה של נתונים לתג RFID פסיבי, אשר יכול לשמש בתהליך זיהוי במערכות שונות כמו מערכת נוכחות, מערכת אבטחה, מערכת הצבעה וכו '. RFID היא טכנולוגיה מאוד נוחה וקלה.
כדי לקרוא את כרטיסי ה- RFID והתג הפאסיביים, אנו זקוקים למיקרו-בקר עם חומרת UART. אם אנו בוחרים מיקרו-בקר ללא UART, עלינו ליישם תוכנת UART. כאן אנו משתמשים ב- PIC Microcontroller PIC16F877A לצורך ממשק RFID. פשוט נקרא את מספר הזיהוי הייחודי. של תגי RFID ולהציג אותו על גבי 16x2 LCD.
מודול RFID והעבודה שלו
בפרויקט זה בחרנו במודול RFID EM-18, שהוא מודול קטן בעלות נמוכה וחסכונית בחשמל. מודול RFID EM-18 משתמש בתדר RF של 125 KHz לקריאת תגי RFID פסיביים של 125 KHz. מודול EM-18 משתמש במתנד, במפענח ובמפענוח נתונים כדי לקרוא נתונים מכרטיס פסיבי.
תג RFID
ישנם שלושה סוגים של תגי RFID זמינים, פסיביים, אקטיביים או פסיביים בעזרת סוללה. סוגים שונים של תגי RFID עם סוג שונה של צורות וגדלים זמינים בשוק. מעטים מהם משתמשים בתדרים שונים למטרות תקשורת. נשתמש בכרטיסי RFID פסיביים 125 קילו-הרץ המחזיקים את נתוני הזהות הייחודיים. להלן כרטיס ה- RFID והתגים בהם אנו משתמשים לפרויקט זה.
עבודה של RFID
אם אנו רואים את גליון הנתונים (http://www.alselectro.com/files/rfid-ttl-em18.pdf) של מודול EM-18 נוכל לראות את החלק האחורי של המודול ואת מעגל היישום:
המודול משתמש בפרוטוקול תקשורת UART בקצב שידור 9600. כאשר מכניסים תג תדר תקף לשדה המגנטי של הקורא EM-18, הטרנזיסטור BC557 נדלק והזמזם יתחיל לצפצף, הוא גם מדליק את נורית הנורית. אנו משתמשים במודול אשר זמין בקלות בשוק ובעל מעגלים שלמים עם זמזם, לד, ויציאת RS232 נוספת.
הנה מודול לוח ה- RFID בו אנו משתמשים עם שמות סיכות. למודול זה יש גם אפשרות הספקה נוספת.
צריך לזכור דבר אחד שהפלט של הקורא EM-18 משתמש ברמת לוגיקה 5V. אנו יכולים להשתמש במיקרו-בקר אחר המשתמש ברמת לוגיקה נמוכה יותר, אך במקרים כאלה נדרש ממיר רמת לוגיקה נוסף. במקרים מעטים, פין ה- UART של מיקרו-הבקר 3.3V הוא לרוב סובלני 5V.
פלט ה- UART מספק נתוני ASCII של 12 סיביות. 10 הביטים הראשונים הם מספר תג RFID, שהוא המזהה הייחודי ושתי הספרות האחרונות משמשות לבדיקת שגיאות. שתי הספרות האחרונות הן XOR של מספר התג. מודול EM-18 יקרא את הנתונים מתגי RFID פסיביים או כרטיסים 125 קילוהרץ.
לתגיות או תעודות זהות יש מערך זיכרון מתוכנת מפעל המאחסן את מספר הזהות הייחודי. מכיוון שאלה הם פסיביים, כך שאין סוללה בכרטיס או בתגים, הם מקבלים אנרגיה על ידי השדה המגנטי של מודול ה- RF משדר. תגי RFID אלה מיוצרים באמצעות EM4102 CMOS IC אשר נעול גם על ידי השדה המגנטי.
חומר נדרש
כדי להכין פרויקט זה אנו זקוקים לפריטים הבאים-
- PIC16F877A
- 20Mhz קריסטל
- 2 יחידות קבלים דיסק קרמיקה 33pF
- LCD אופי 16x2
- קרש לחם
- סיר מוגדר מראש 10k
- נגד 4.7k
- חוטים בודדים לחיבור
- מתאם 5V
- מודול RF EM-18
- זמזם 5V
- 100uF &.1uF 12V קבלים
- טרנזיסטור BC557
- לד
- נגן 2.2k ו- 470R.
אנו משתמשים בלוח המודולים EM-18 עם זמזם והוביל שהוגדר מראש. לכן, אין צורך ברכיבים המפורטים בין 11 ל -15.
תרשים מעגל
הסכימטי הוא פשוט; חיברנו LCD על פני יציאת RB וחיברנו את מודול EM-18 על פני סיכת UART Rx.
ביצענו את החיבור על קרש לחם לפי סכמטיות.
הסבר קוד
כמו תמיד, ראשית עלינו להגדיר את סיביות התצורה במיקרו-בקר pic, להגדיר כמה פקודות מאקרו, כולל ספריות ותדר גבישים. אתה יכול לבדוק קוד עבור כל אלה בקוד השלם שניתן בסוף.
// PIC16F877A הגדרות סיביות תצורה // הצהרות תצורה של קו המקור 'C' // CONFIG # תצורת פרגמה FOSC = HS // סיביות בחירת מתנד (מתנד HS) # תצורה פרגמה WDTE = OFF // טיימר כלב שמירה אפשר ביט (WDT מושבת) # פרגמה config PWRTE = OFF // טיימר הפעלה אפשר Bit (PWRT מושבת) # pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled) # pragma config LVP = OFF // מתח נמוך (ספק יחיד) תכנות סידורי במעגל מאפשר ביט (RB3 / PGM pin יש פונקציית PGM; תכנות מתח נמוך מופעלת) # config config CPD = OFF // נתונים EEPROM זיכרון קוד ביט הגנה (נתונים EEPROM הגנת קוד כבוי) # pragma config WRT = OFF // Flash Memory Memory Write אפשר ביטים (הגנת כתיבה כבויה; כל זיכרון התוכנית עשוי להיכתב באמצעות בקרת EECON ) # config config CP = OFF // Flash Bit Memory Code Code Protection (Code code off) # כולל "supporing_cfile \ lcd.h" # כלול "supporing_cfile \ eusart1.h"
אם אנו רואים את הפונקציה העיקרית קראנו לפונקציה לאתחול המערכת. אנו מאותחלים את LCD ו- UART בפונקציה זו.
/ * פונקציה זו מיועדת לאתחילי מערכת. * / void system_init (בטל) { TRISB = 0x00; // יציאה B מוגדרת כסיכת פלט lcd_init (); // זה יאותחל את ה- lcd EUSART1_Initialize (); // זה יאותחל את ה- Eusart }
כעת, בפונקציה הראשית , השתמשנו במערך 13 סיביות שהוא מספר RFID. אנו מקבלים כל ביט מס 'RFID. באמצעות EUSART1_Read (); פונקציה, המוצהרת בתוך ספריית UART. לאחר קבלת 12 ביט, אנו מדפיסים את המערך כמחרוזת ב- LCD.
void main (void) { ספירת חרקים לא חתומה; חתימה לא חתומה RF_ID; system_init (); lcd_com (0x80); lcd_puts ("מעגל עיכול"); בעוד (1) { עבור (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // הגדר את הסמן לשורה השנייה המתחילה ב- lcd_puts ("ID:"); lcd_puts (RF_ID); } }
הקוד המלא עם סרטון ההפגנה מופיע להלן.
בדוק גם ממשק RFID עם מיקרו-בקר אחר:
ממשק RFID עם MSP430 Launchpad
ממשק RFID עם מיקרו-בקר 8051
ממשק RFID עם Arduino