RFID لتقف على تحديد الترددات الراديوية. يمكن لوحدة RFID قراءة أو كتابة كمية صغيرة من البيانات في علامة RFID السلبية ، والتي يمكن استخدامها في عملية تحديد الهوية في أنظمة مختلفة مثل نظام الحضور ، ونظام الأمان ، ونظام التصويت وما إلى ذلك. RFID تقنية مريحة للغاية وسهلة.
لقراءة بطاقات وعلامة RFID السلبية ، نحتاج إلى متحكم مع جهاز UART. إذا اخترنا متحكمًا دقيقًا بدون UART ، فسنحتاج إلى تنفيذ برنامج UART. نحن هنا نستخدم PIC Microcontroller PIC16F877A للتفاعل مع RFID. سنقرأ ببساطة رقم التعريف الفريد. من علامات RFID وعرضها على شاشة LCD مقاس 16 × 2.
وحدة RFID وعملها
في هذا المشروع ، اخترنا وحدة EM-18 RFID ، وهي وحدة صغيرة الحجم ومنخفضة التكلفة وموفرة للطاقة. تستخدم وحدة EM-18 RFID تردد RF 125 كيلو هرتز لقراءة علامات RFID السلبية 125 كيلو هرتز. تستخدم وحدة EM-18 المذبذب ومزيل التشكيل وفك تشفير البيانات لقراءة البيانات من بطاقة سلبية.
بطاقة RFID
هناك ثلاثة أنواع من علامات RFID متاحة ، سلبية ، نشطة أو سلبية بمساعدة البطارية. تتوفر أنواع مختلفة من علامات RFID بنوع مختلف من الأشكال والأحجام في السوق. قليل منهم يستخدم ترددات مختلفة لغرض الاتصال. سنستخدم بطاقات RFID السلبية 125 كيلوهرتز والتي تحمل بيانات الهوية الفريدة. فيما يلي بطاقة RFID والعلامات التي نستخدمها لهذا المشروع.
عمل RFID
إذا رأينا ورقة البيانات (http://www.alselectro.com/files/rfid-ttl-em18.pdf) لوحدة EM-18 فيمكننا رؤية الجانب الخلفي للوحدة ودائرة التطبيق:
تستخدم الوحدة بروتوكول الاتصال UART بمعدل 9600 Baud. عندما يتم إحضار علامة تردد صالحة في المجال المغناطيسي لقارئ EM-18 ، يعمل الترانزستور BC557 وسيبدأ الجرس في إصدار صوت تنبيه ، كما أنه يضيء مؤشر LED. نحن نستخدم وحدة متاحة بسهولة في السوق ولديها دوائر كاملة مع جرس ، ومصابيح LED ، ومنفذ RS232 إضافي.
هنا وحدة لوحة RFID التي نستخدمها مع أسماء الدبوس تحتوي هذه الوحدة أيضًا على خيار طاقة إضافي.
هناك شيء واحد يجب مراعاته وهو أن إخراج قارئ EM-18 يستخدم مستوى منطقي 5 فولت. يمكننا استخدام متحكم آخر يستخدم مستوى منطقي أقل ، ولكن في مثل هذه الحالات ، يكون محول المستوى المنطقي الإضافي مطلوبًا. في حالات قليلة ، غالبًا ما يكون دبوس UART الخاص بالمتحكم الدقيق 3.3 فولت 5 فولت.
يوفر إخراج UART بيانات ASCII 12 بت. أول 10 بتات هي رقم علامة RFID ، وهو المعرف الفريد ويتم استخدام آخر رقمين لاختبار الأخطاء. هذان الرقمان الأخيران هما XOR لرقم العلامة. ستقرأ وحدة EM-18 البيانات من علامات أو بطاقات RFID السلبية 125 كيلوهرتز.
تحتوي هذه العلامات أو المعرفات على مجموعة ذاكرة مبرمجة في المصنع تخزن رقم المعرف الفريد. نظرًا لأن هذه العناصر سلبية ، لذلك لا توجد بطارية في البطاقة أو العلامات ، يتم تنشيطها بواسطة المجال المغناطيسي لوحدة جهاز الإرسال والاستقبال RF. تم تصنيع علامات RFID باستخدام EM4102 CMOS IC الذي يتم تسجيله بواسطة المجال المغناطيسي أيضًا.
المواد المطلوبة
لعمل هذا المشروع نحتاج إلى العناصر التالية-
- PIC16F877A
- 20 ميجا هرتز كريستال
- 2 قطعة 33pF مكثف قرص السيراميك
- شاشة LCD مقاس 16 × 2 شخصية
- لوح التجارب
- 10 كيلو وعاء معد مسبقا
- 4.7 كيلو المقاوم
- أسلاك حبلا واحدة للتوصيل
- محول 5 فولت
- وحدة RF EM-18
- 5V الجرس
- مكثف 100 فائق التوهج و.1 فائق التوهج 12 فولت
- الترانزستور BC557
- يؤدى
- 2.2k و 470R المقاوم.
نحن نستخدم لوحة الوحدة النمطية EM-18 مع الجرس ومصابيح LED مسبقة التكوين. لذلك ، ليست هناك حاجة للمكونات المدرجة من 11 إلى 15.
مخطط الرسم البياني
التخطيطي بسيط. قمنا بتوصيل شاشة LCD عبر المنفذ RB وقمنا بتوصيل وحدة EM-18 عبر دبوس UART Rx.
لقد أجرينا الاتصال على اللوح وفقًا للتخطيط.
شرح الكود
كما هو الحال دائمًا ، نحتاج أولاً إلى ضبط بتات التكوين في متحكم الموافقة المسبقة عن علم ، وتحديد بعض وحدات الماكرو ، بما في ذلك المكتبات والتردد البلوري. يمكنك التحقق من الكود لجميع أولئك الموجودين في الكود الكامل المعطى في النهاية.
// PIC16F877A إعدادات بت التكوين // عبارات تكوين سطر المصدر 'C' // CONFIG #pragma config FOSC = HS // Oscillator Selection bits (HS oscillator) #pragma config WDTE = OFF // Watchdog Timer تمكين البت (WDT معطل) # pragma config PWRTE = إيقاف // Power-up Timer تمكين بت (PWRT معطل) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR تمكين) #pragma config LVP = OFF // Low-Voltage (Single-Supply) بت تمكين البرمجة التسلسلية داخل الدائرة (دبوس RB3 / PGM به وظيفة PGM ؛ تم تمكين برمجة الجهد المنخفض) #pragma config CPD = إيقاف // بت حماية رمز الذاكرة EEPROM (إيقاف حماية رمز EEPROM للبيانات) #pragma config WRT = إيقاف // Flash Program Memory Write Enable bits (اكتب الحماية ؛ يمكن كتابة كل ذاكرة البرنامج بواسطة EECON control) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code Protection off) # تشمل "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
إذا رأينا الوظيفة الرئيسية ، فقد أطلقنا عليها وظيفة لتهيئة النظام. نقوم بتهيئة LCD و UART في هذه الوظيفة.
/ * هذه الوظيفة مخصصة لتهيئة النظام. * / باطل system_init (باطل) { TRISB = 0x00 ؛ // تم تعيين المنفذ B كدبوس إخراج lcd_init () ؛ // سيؤدي هذا إلى تهيئة شاشة lcd EUSART1_Initialize () ؛ // سيؤدي هذا إلى تهيئة Eusart }
الآن ، في الوظيفة الرئيسية ، استخدمنا مصفوفة من 13 بت وهي رقم RFID. نتلقى كل جزء من رقم RFID. باستخدام EUSART1_Read () ؛ الوظيفة ، والتي تم الإعلان عنها داخل مكتبة UART. بعد استلام 12 بت ، نقوم بطباعة المصفوفة كسلسلة في شاشة LCD.
باطل رئيسي (باطل) { عدد أحرف غير موقعة ؛ RF_ID char غير الموقعة ؛ system_init () ؛ lcd_com (0x80) ؛ lcd_puts ("ملخص الدائرة") ؛ while (1) { for (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
تتفاعل مع 8051 متحكم
تتفاعل RFID مع Arduino