الميكروكنترولر Microcontroller وتعلم برمجته واستخدامه

الميكروكنترولر

ما هو الميكروكنترولر ؟

الميكروكنترولر Microcontroller هو قطعة إلكترونية يعمل بالنظام الرقمي تم اكتشافه وتطويره بعد الكومبيوتر، وهو يقوم بحفظ مجموعة من الأوامر والتي تتم من خلال عملية البرمجة التي يخضع لها قبل استخدامه. خلافا بـ الدوائر التماثلية التي يتم تصميمها لتقوم بوظيفة معينة ثابتة.

وفي حالة الرغبة في التعديل عليها يتطلب ذلك تغيير في التوصيلات وفي معظم الحالات يتطلب ذلك تغيير المكونات الالكترونية ايضاً.  اما الميكروكنترولر فهو يستخدم ليقوم بمجموعة من الوظائف المختلفة، ويستخدم في المصانع والآلات التي يقوم عملها على مجموعة من الخطوات والأوامر والتعليمات.

وفي بعض تطبيقات الميكروكنترولر هو ليتجاوب مع العنصر البشري كما في الأجهزة المنزلية الحديثة كـ الغسالة والثلاجة والتكييف والأنظمة الذكية وانظمة الانذار السرقة ,تسريب الغاز, الحركة, لتأمين البشر والمنشآت،

ولتنفيذ أمرا ما كان يتطلب في الماضي العنصر البشري مثل آلة صنع القهوة والكثير من التطبيقات الأخرى.

ومن اسمه تستطيع ان تعرفه بأنه متحكم صغير او كومبيوتر صغير والرأس المدبرة لإدارة عملية كاملة للمكونات الاخرى مثل الحساسات لكي يقوم بالتواصل مع العالم الخارجي، واضافة له محركات ومكونات تتفاعل معه، وايضاً مدخلات كـ لوحة المفاتيح للتعامل مع العنصر البشري.

microcontroller

 

تطبيقات واستخدامات الميكروكنترولر

يستخدم الميكروكنترولر في المنتجات او الاجهزة التي يتم التحكم فيها اتوماتيكياً وتوجد الكثير من المنتجات والاجهزة التي تجعل استخدامنا للميكروكنترولر يومياً دون ان ندرك ذلك، إذا كان ذلك في المنزل أو العمل:
المنزل: التلفزيون، مشغل دي في دي، الهاتف، جهاز فاكس، الهواتف الخلوية، أنظمة الأمن، كاميرا، آلة الخياطة، آلة موسيقية، ممارسة آلة، ألعاب الفيديو، الكمبيوتر، المايكرويف.
المكتب: أجهزة الكمبيوتر والطابعات والهواتف وأجهزة الفاكس وأنظمة الأمن والسيارة.

تطبيقات لإستخدام الميكروكنترولر

برامج الميكروكنترولر

 

كتب الميكروكنترولر

 

التركيب الداخلي للميكروكنترولر

  • CPU: وهي إختصاراً لـ Center Processor Unit ومن إسمها فهي وحدة التحكم والمراقبة جميع البيانات داخل الميكروكنترولر. والمبرمج والمستخدم لا يستطيع التأثير أو التعديل على عملها. وهي تتكون من وحدات فرعية أصغر ومن أهمها:
      • Instruction Decoder: هو جزء من الالكترونيات يقوم بالتعرف على تعليمات البرنامج وتشغيل باقي الدوائر بناءاً على ذلك.
      • ALU: وهي اختصاراً إلى Arithmetic Logical Unit وهي المسئولة عن عمليات المعالجة للبيانات داخل الميكروكنترولر، قد تكون هذه العمليات عمليات حسابية كالـ ( + , – , % , * ) او عمليات منطقية كالـ ( OR , NOT , AND , … إلخ ).
    • Accumulator:  هو سجيل مرتبطا بعمل ALU  ويستخدم لتخزين جميع البيانات التي توجب تنفيذ بعض العمليات ( إضافة و تحول ..إلخ). كما يتم فيه تخزين النتائج الجاهزة لإستخدمها في المعالجات الاضافية. ويوجد سجيل يسمى Status Register يرتبط ارتباطاً وثيقاً بال accumulator ووظيفته تبين في اي وقت من الأوقات وضع العدد المخزن في accumulator (اكبر من او اصغر من الصفر).

كيف يعمل الميكروكنترولر

    • SERs: وهي اختصار Special Function Registers وهي جزئ داخل قسم Memory في الميكروكنترولر وهو مجموعة من السجلات المسئولة عن عمل كلاً من ADC Interface, Serial Interface ,I/O Ports, PWM بالشكل المطلوب.
      وكل سجل بيكون متصل مع جزئ من اجزاء الميكروكنترولر لتنفيذ العمليات. والغرض منها محدد مسبقاً من قبل الشركة المصنعة ولا يمكن تغييره او التعديل عليه.
  • Memory
    • ROM: و ROM هي اختصاراً لـ Read Only Memory حيث يتم تخزين فيها الكود او البرنامج وتقوم بحفظ البرنامج بشكل دائم حتى تقوم انت بتغييره او التعديل عليه.وتقوم بحفظ البرنامج والداتا حتى في حالة قطع التيار عن الميكروكنترولر،وحجم البرنامج الذي يمكن كتابته يعتمد على حجم هذا الذاكرة، وROM يوجد منها من يكون داخل الميكروكنترولر او تستطيع اضافة رقاقة ROM خارجية اكبر مساحة وتعتمد على نوع الميكروكنترولر و النوعين من ROM لهم سلبيات.↫ فإذا قمت بإضافة رقاقة ROM  خارجية ، الميكروكنترولر سوف تكون قيمته ارخص وتستطيع اضافة برنامج اكبر؛ ولكن في نفس الوقت لكي تقوم بإضافة روم خارجية فإنك سوف تقوم بتخصيص عدد من أطراف الميكروكنترولر pins لها وبذلك تقييد بعدد من pins  الباقية لتنفيذ مشروعك.↫ واما اذا كانت الروم داخلية فإنها ترفع من قيمة الميكروكنترولر ومساحتها تكون صغيرة ولكن تترك لك أطراف الميكروكنترولر بدون تخصيص أطراف لها. وحجم الروم عادة يتراوح بين 512B إلى 64KB.

الذاكرة في الميكروكنترولر

      • RAM: وهي اختصار Random Access Memory تقوم بعملية تخزين مؤقت للبيانات Data وتخزين النتائج التي تم إنشائها واستخدامها أثناء عمل الميكروكنترولر. ويتم مسح محتويات هذه الذاكرة بمجرد انقطاع التيار عن الميكروكنترولر. وحجم ذاكرة RAM تصل إلى بضعة كيلوبايت.
      • EEPROM: وهي اختصار Electrically Erasable Programmable وهي نوع من انواع الذاكرة ليست موجودة في كل الميكروكنترولر وقد يتم تغيير محتوياتها أثناء تنفيذ البرنامج شبه عمل RAM، ولكن يحفظ فيها البيانات حتى بعد قطع التيار عن الميكروكنترولر مثل ذاكرة ROM.ويقوم عملها غالباً على تخزين القيم والتي تم إنشاؤها واستخدامها أثناء عمل المتحكم الدقيق مثل ( قيم المعايرة ,الرموز وقيم العد .. الخ) والتي يحتاج الميكروكنترولر حفظها حتى بعد قطع التيار عنه.    ومن عيوب هذه الذاكرة ان عملية البرمجة بطيئة نسبياً وتقاس بالميلي ثانية.
    • Program Counter: هو المحرك لتنفيذ خطوات البرنامج ويشير إلى عنوان الذاكرة Address التي تحتوي على التعليمات التالية للتنفيذ. وبعد كل عملية تنفيذ لتعليمات، تزيد قيمة العداد بمقدار واحد. لهذا السبب ينفذ البرنامج تعليمات او أمر واحد في كل مرة كما مكتوب البرنامج.ومع ذلك فإن قيمة program counter قد تتغير في اي وقت، والتي تسبب قفزة إلى موضع جديد في الذاكرة. وبهذه الطريقة يتم تنفيذ الأوامر والتعليمات الفرعية.
    • BUS: هي توصيلات بين أجزاء الميكروكنترولر داخلياً لتداول ونقل البيانات ومنها:
      • Address bus
      • Data bus
      • Control Bus
    • A / D Converter
      • ADC Interface: وهي اختصاراً إلى Analog to Digital Converter كما ذكرنا من قبل بإن الميكروكنترولر يعمل بالنظام الرقمي ( input / output قيم ثابته High=5V و Low=0V . لذلك يوجد جزئ ADC داخل الميكروكنترولر للتقوم بتحويل الإشارة التماثلية Analog إلى إشارة رقمية Digital.
    • Serial Interface: هو الجزئ المسئول عن إتصال الميكروكنترولر بالكمبيوتر وتنفيذ عملية برمجة المتحكم بالشكل المطلوب.
    • I/O Port: هو الجزئ المسئول عن اتصال الميكروكنترولر بالعالم الخارجي. وتحديد ما إذا كانت الأطراف Output, Input وطبقاً للبرنامج الذي قمت ببرمجة الميكروكنترولر عليه.
    • Power Supply: يوجد جزء داخل الميكروكنترولر جزء خاص بالتغذية وحماية الميكروكنترولر من الجهد. ومن عمل هذا القسم هو حماية الميكروكنترولر من انخفاض الجهد أو voltage drop.
    • Brown out: حيث تقوم دائرة Brown out بقسم Power Supply بالميكروكنترولر بعمل Reset لأجزاء الميكروكنترولر للحفاظ على المدى المسموح لجهد التغذية الداخل للميكروكنترولر.
    • Reset PIN: والجزء الخاص بـ Reset PIN المسئول عن إعادة تشغيل الميكروكنترولر وإعادة تنفيذ البرنامج من بدايته.

حماية الميكروكنترولر من انخفاض الجهد Brown out

  • Oscillator: هو قسم او جزء داخل الميكروكنترولر والمسئول عن توليد النبضات المطلوبة والتي تقوم بتشغيل أجزاء الميكروكنترولر بشكل توافقي ومتزامن.ويستخدم مع oscillator هي المكون Quartz-Crystal او Ceramics resonator لتثبيت التردد ونضيفه خارجياً مع توصيلات المتحكم.

المذبذب في الميكروكنترولر

  • في بعض الحالات من الممكن عدم استخدام عنصر لتثبيت التردد كما في RC oscillator. من المهم ان نقول بان تعليمات البرنامج لا يتم تنفيذها بالمعدل الذي فرضه المذبذب نفسه، ولكن عدة مرات أبطأ.وتحدث لان كل تعليمات او أمر يتم تنفيذه في مجموعة من الخطوات.وفي بعض الميكروكونترولر تحتاج عملية تنفيذ التعليمات نفس عدد الدورات، وفي حين أنها تكون مختلفة في انواع الميكروكنترولر اخرى. فقاً لذلك فإنه إذا استخدم quartz crystal بتردد 20MHZ ،فالوقت المستغرق لتنفيذ تعليمات لن يكون 5nS ولكن سوف يكون 200, 400 او 800nS وذلك يعتمد على نوع المايكروكنترولر.

 

 

كيف يعمل الميكروكنترولر

على الرغم من ان هناك عدد كبير من أنواع المتحكمات الدقيقة والعديد من البرامج التي تم إنشاؤها خصيصاً لها، إلا ان كل الميكروكنترولر لديها العديد من الأشياء المشتركة بينها. طريقة عمل الميكروكنترولر كلها واحدة بين أنواعها المختلفة وكما موضح كالتالي:

  1. في حالة ان Power Supply لا يعمل (turn off) فإن اجزاء ومكونات الميكروكنترولر لا تعمل ايضاً والبرنامج كما هو مثبت داخله.
  2. في حالة ان Power Supply يعمل (turn ON) فإن اجزاء ومكونات الميكروكنترولر تبدأ بالعمل بسرعة عالية. تُبقي وحدة التحكم المنطقية (CLU) كل شئ تحت السيطرة وتقوم بتعطيل المكونات والأجزاء حتى يبدأ Quartz Crystal بالعمل اولاً، وهذه العملية تحدث في الملي الثانية الاولى.
  3. بعد وصول جهد Power Supply إلى اقصى مستوى، ويستقر Oscillator Frequency في عمله. وتبداً SFRs بعملها. يتم تكوين Pins كمدخلات input.
  4. حالة Program Counter قيمته صفر. يتم إرسال التعليمات من هذا العنوان إلى المسئول عن فك ترميز التعليمات وهو Instruction Decoder والذي يقوم بالتعرف عليها ثم يقوم بتنفيذ هذه التعليمات.
  5. وتزداد قيمة Program Counter بمقدار 1 وتكرار العملية برمتها عدة ملايين مرة في الثانية الواحدة.

 

انواع الميكروكتنرولر

تنوعت رقاقة الميكروكنترولر لتصنيعه من قبل شركات عدة وبمواصفات وقيم مختلفة. ومن الشركات التي قامت بتصميم وتطوير المايكروكنترولر:

 

انواع الميكروكنترولر من حيث الشركة المصنعة:

  • Intel
  • Motorola
  • Microchip “pic”
  • Hitachi
  • Atmel
  • National
  • Toshiba
  •  Zilog
  • Texas Instruments

 

انواع الميكروكنترولر من حيث الاسم:

  • 8051 Microcontrollers
  • AVR Microcontrollers
  • PIC Microcontrollers

 

ويندرج تحت كل نوع من انواع الميكروكنترولر عائلة بأسماء مشابهة ولكن مختلفة في المواصفات والامكانيات فمثلاً النوع 8051  وله عائلة بأسماء؛ (89s52 ,89s51 ,89c52 ,89c51 ,89v51 …إلخ). وترى ايضاً عائلة AVR من تصنيع شركة اتميل بإسماء؛ (Atmega16 ,Atmega8 .Atmega32 …إلخ).

 

أما النوع الأكثر شهرة بين الطلبة و مهندسي الالكترونيات هو PIC microcontroller وهو من انتاج شركة Microchip ويندرج تحت عائلة باسماء؛ (pic10f– ,pic12f– ,pic16f .. إلخ)

 

ويتنوع الميكروكنترولر بناءاً على تنوع في الإمكانيات والقيم كـ قيمة bit ماإذا كانت (bit-8 ,bit-16 ,bit-32)، وايضاً يتنوع بناءاً على حجم كلاً من (RAM وROM) ،وعدد انواع I/O ports.

 
الصور تم اقتباسها من: mikroe.com

التعليقات

أترك تعليق..

اترك تعليقاً