مدونة د.خلدون عرفة للروبوتيك
متحكمات AVR
تُعد متحكمات AVR من أشهر العائلات المستخدمة في مجال الأنظمة المدمجة والروبوتات التعليمية والصناعية. ظهرت هذه المتحكمات في منتصف التسعينيات على يد شركة Atmel، والتي أصبحت لاحقًا جزءًا من شركة Microchip Technology.
انتشرت AVR بشكل واسع بسبب سهولة برمجتها، أدائها الجيد، واستهلاكها المنخفض للطاقة، مما جعلها خيارًا مثاليًا للمشاريع التعليمية والاحترافية.
ما هو AVR؟
يمتاز بوجود:
- ذاكرة برنامج من نوع Flash
- ذاكرة RAM للمتغيرات
- EEPROM للتخزين الدائم
- منافذ إدخال وإخراج رقمية (I/O)
- مؤقتات (Timers)
- محول تناظري رقمي (ADC)
- بروتوكولات اتصال مثل UART وSPI وI2C
- أشهر أنواع متحكمات AVR
- عائلة ATmega
- عائلة ATtiny
- عائلة ATxmega
وأشهر متحكم تعليمي منها هو:
وهو المتحكم المستخدم في لوحة Arduino Uno، لذلك يُعتبر بوابة الدخول لعالم AVR لدى معظم الطلاب والمهندسين.
البنية المعمارية لـ AVR
تعتمد AVR على معمارية Harvard Architecture، أي أن:
ذاكرة البرنامج منفصلة عن ذاكرة البيانات
يمكن تنفيذ التعليمات وجلب البيانات في نفس الوقت
كما تحتوي على:
- 32 مسجل عام (General Purpose Registers)
- وحدة حسابية ومنطقية ALU
- عداد برنامج (Program Counter)
- مكدس (Stack)
- هذه البنية تجعل تنفيذ التعليمات سريعًا جدًا
مميزات متحكمات AVR
- سرعة تنفيذ عالية
- استهلاك طاقة منخفض
- سهولة البرمجة بلغة C
- تكلفة منخفضة
- دعم واسع من المجتمعات التعليمية
- تدخل متحكمات AVR في العديد من التطبيقات مثل:
- الروبوتات التعليمية
- أنظمة التحكم بالمحركات
- أنظمة الإنذار
- الأجهزة الطبية البسيطة
- مشاريع إنترنت الأشياء
وفي مجال الروبوتات يتم استخدام AVR للتحكم في:
- محركات DC
- السيرفو
- قراءة الحساسات
- تنفيذ خوارزميات تحكم بسيطة
- برمجة AVR
- لغة Assembly (للمستوى المتقدم)
- لغة C باستخدام AVR-GCC
- بيئة Arduino IDE (الأسهل للمبتدئين)
- عملية البرمجة تمر بالمراحل التالية:
- كتابة الكود
- ترجمة الكود إلى ملف HEX
- رفعه إلى المتحكم باستخدام مبرمج (Programmer)
معلومات متقدمة ونادرة عن AVR
1. أصل التسمية الحقيقي
اسم AVR ليس اختصارًا رسميًا معلنًا من الشركة، لكن يُعتقد أنه يشير إلى:Alf and Vegard's RISC processor
وهم المهندسان النرويجيان الذين طوروا المعمارية في الجامعة قبل أن تتبناها Atmel.
2. لماذا AVR أسرع من PIC عند نفس التردد؟
معلومة مهمة جدًافي أغلب متحكمات AVR:
أغلب التعليمات تُنفذ في دورة ساعة واحدة (1 Clock Cycle)
بينما في كثير من متحكمات PIC القديمة:
التعليمة تحتاج 4 دورات ساعة
لذلك عند نفس تردد 16MHz:
AVR ينفذ تقريبًا 16 MIPS
PIC ينفذ تقريبًا 4 MIPS
وهذا سبب تفوقه في الأنظمة الزمن الحقيقي البسيطة.
أغلب المتحكمات القديمة كانت تعتمد على Accumulator واحد فقط.
أما AVR فيحتوي على:
32 مسجل عام داخل المعالج مباشرة
وهذا يعني:
تقليل الوصول إلى RAM
تنفيذ العمليات الحسابية أسرع
تقليل استهلاك الطاقة
وهذه نقطة تصميم عبقرية جعلت الـ Compiler ينتج كودًا فعالًا جدًا.
4. نظام الـ Fuse Bits
من أقوى وأخطر ميزات AVR هي Fuse Bits.
Fuse Bits ليست برنامجًا عاديًا، بل إعدادات منخفضة المستوى تتحكم في:
مصدر الساعة (داخلي / خارجي Crystal)
تقسيم التردد
تفعيل Bootloader
تعطيل Reset pin
حماية القراءة (Lock Bits)
الخطأ في إعداد Fuse قد:
يعطل المتحكم بالكامل
يمنع إعادة برمجته بدون High Voltage Programmer
وهذه ميزة احترافية جدًا لا توجد بهذا الشكل المرن في أغلب المتحكمات المنافسة.
5. ميزة Bootloader Architecture
مثلاً في ATmega328P:
ذاكرة الفلاش تنقسم إلى:
Application Section
Boot Section
المتحكم قادر على:
كتابة نفسه بنفسه (Self Programming)
تحديث البرنامج بدون مبرمج خارجي
وهذه الميزة هي الأساس الذي جعل لوحة Arduino Uno تعمل عبر USB فقط.
6. وضعيات توفير الطاقة (Sleep Modes)
AVR يحتوي على عدة أوضاع نوم احترافية:
Idle Mode
ADC Noise Reduction
Power-down
Power-save
Standby
في وضع Power-down:
الاستهلاك قد ينخفض إلى أقل من 1µA
لذلك استُخدم AVR بكثرة في الأجهزة التي تعمل بالبطارية لسنوات.
7. ميزة Interrupt Latency المنخفضة
زمن الاستجابة للمقاطعة في AVR:
غالبًا 4 دورات ساعة فقط
وهذا رقم ممتاز لأنظمة:
PWM
التحكم بالمحركات
قراءة الحساسات الدقيقة
وهنا يظهر تفوقه في مشاريع الروبوتات
بعض المتحكمات تدعي Harvard Architecture،
لكن AVR يطبقها فعليًا:
Bus منفصل للتعليمات
Bus منفصل للبيانات
وهذا يسمح بتنفيذ تعليمة أثناء جلب التالية (Pipeline بسيط من مرحلتين)..
9. دعم Instruction-Level Optimization
معمارية AVR مصممة بحيث:
أغلب التعليمات 16-bit
بعض التعليمات 32-bit فقط
وهذا يقلل حجم البرنامج ويجعل:
استهلاك الذاكرة أقل
السرعة أعلى
هذا مقال متكامل ومنظم عن AVR Microcontroller يمكنك استخدامه في شرح أو بحث أكاديمي:
متحكمات AVR
مقدمة في عالم الأنظمة المدمجة
متحكمات AVR تمثل حجر الأساس في عالم الأنظمة المدمجة، وهي خيار مثالي لأي مهندس يريد فهم البنية الداخلية للمتحكمات قبل الانتقال إلى الأنظمة الأكثر تعقيدًا مثل ARM.
https://www.facebook.com/groups/arabicyoungtalentrobotics/
https://www.youtube.com/@YoungTalentRobotics
حول المقالة
-
متوسط
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.
Comments