الأربعاء، 19 أكتوبر 2016

البداية مع الميكروكنترولر

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

ماهو البيك PIC
البيك PIC هو عبارة عن شريحة الكترونية صغيرة IC من فئة الميكروكنترولر صنعت بواسطة شركة ميكروتشيب Microchip لها عدة مداخل ومخارج يطلق عليها المنافذ تمثلها عدد من الأرجل أو الأطراف المتصلة بالشيب (Pins ) والتي تتصل بالأجهزة المراد التحكم بها لذلك يطلق عليهPIC وهى إختصار لثلاث كلمات (Peripheral Interface Controller) ومعناها جهاز السيطرة والتحكم بالروابط الخارجية حيث تتم هذه العملية من خلال الربط بين المتحكم نفسه والجهاز المتحكم به عن طريق هذه المنافذ أو البورتات. وهذه المتحكمات عند تصنيعها تأخذ ارقام وأحرف مختلفة ليتم التفريق بينهم وحتى يسهل الأختيار منها ومن أشهر هذه المتحكمات وابسطها هو المتحكم PIC16F682A




أنواع أخرى من الميكروكنترولر
يوجد أنواع عديدة للمتحكمات تختلف فى أرقامها واكوادها وبالتالى فى مواصفتها وعدد أطرافها ، نذكر منها المتحكم PIC16F877A ويجب ملاحظة أن هذا المتحكم يمتلك 40 طرف (Pin) فى حين أن المتحكم PIC16F682A يمتلك 18 طرف فقط
ومن أهم العناصر الأساسية التى يتألف منها الميكروكنترولر :
• وحدة المعالجة المركزية
• الذاكرة
• منافذ الإدخال
• منافذ الإخراج


الميكروكنترولر جهاز رقمى
شريحة الميكروكنترولر ما هى إلا جهاز رقمى يحتوي على معالج بيانات ، ذاكرة ، منافذ للمداخل والمخارج (I/O interfaces) ، مؤقتات وأنظمة أخرى فى بعض الانواع مثل محولات القيم التمثيلية إلى رقمية (ADC).


إدخال البيانات إلى البيك  Microcontroller input data
بما أن البيك هو جهاز رقمي ، ولكن يمكنه استقبال البيانات في كل من الأشكال التناظرية أو الرقمية. فلذلك يكون للمبرمج المرونة فى اختيار ما إذا كانت بعض أطراف البيك ينبغي أن تستخدم كمدخلات تماثلية أو مدخلات رقمية أو حتى مخرجات رقمية.
هذه المرونة يمكن أن تؤدي إلى الارتباك قليلا، فعلى سبيل المثال فى الميكرو PIC16F877A المبين بالشكل التالى فإن pin2 كما هو ملاحظ تأخذ الرمز 'RA0/AN0'. وهذا يعني أن pin2 يمكن استخدامها Bit 0 من المنفذ A إذا استندنا الى الرمز RA0 أو ان تستخدم Bit 0 كمدخل تماثلى استنادا الى الرمز AN0

وظيفة كل 
pin تتحدد عن طريق ضبط محتويات السجلات الداخلية داخل البيك. وعند البرمجة بلغة التجميع او السى يجب التأكد من صحة ضبط المسجلات فى البرنامج قبل حقنها داخل المتحكم. والشكل التالي يعطي بعض التفاصيل عن المتحكم PIC16F877A


إخراج البيانات من البيك Microcontroller output data
نواتج الخرج بالنسبة للبيك هى إشارات رقمية. وفي معظم الحالات، فنحن بدورنا نستخدم هذه الخاصية فى تشغيل وإيقاف الأجهزة حيث أن:
الخرج "1" يعنى التشغيل ON.
الخرج "0" يعنى الإيقاف OFF.
من المهم جدا أن نضع خطة لكيفة ربط هذه الأجهزة ، وإلا فإنها يمكن أن تعمل بشكل غير صحيح.

مقننات التيار فى البيك PIC current ratings
في مرحلة ما سوف تصبح مهتم بمواصفات كل واحدة من أطراف البيك وذلك عندما تستخدمها كمدخلات رقمية وكمدخلات تناظرية. فمن المهم جدا أن تكون على بينة بحدود وقيم التيار المفروضة على البيك عندما يستخدم فى الإخراج. فيجب أن تكون على علم بهذه الحدود في جميع الأوقات لأن تجاوز هذه القيم حتى ولو لفترة قصيرة قد يسبب تلفا دائما للميكروكنترولر. .

القيمة القصوى للتيار لأى طرف من اطراف البيك هو 25 ميلى أمبير
القيمة القصوى الكلية للتيار لأى من المنافذ الخمسة للبيك هو 200 ميلى أمبير
القيمة القصوى للتيار الخارج من طرف الأرضى Vss للبيك هو 300 ميلى أمبير
القيمة القصوى للتيار الداخل الى طرف التغذية Vdd للبيك هو 250 ميلى أمبير

بصفة عامة فإن مقاومات حماية تستخدم على الأطراف للحد من التيار وعدم تعديه القيم القصوى المقننة لأطراف الميكروكنترولر

ذاكرة الميكروكنترولرMemory  
وحدة الذاكرة هي جزء هام من أجزاء الميكروكنترولر وهي الجزء المسئول عن تخزين البيانات والبرنامج ، حيث يتم ترتيب البيانات بداخلها بنظام خاص (memory locations ) يسمح بتداول هذه البيانات منها أو إليها عن (طريق الخطوط أو الممرات المختلفة التي تربطها بالمعالج أو بالأوساط الخارجية) ليسهل الوصول إليها عند كتابة أو عند قراءة واسترجاع البيانات المخزنة. فعلى سبيل المثال المتحكم PIC16F84A يحتوى من الداخل على نوعين من الذاكرة


ماهى المنافذ Ports
تعتبرالمنافذ واحدة من أهم السمات التى تميز ميكروكنترولر معين عن الآخر. فهىعدد من أطراف الإدخال والإخراج المستخدمة للاتصال مع الأجهزة والوسط الخارجى ، ويتميز المتحكم PIC16F877A بأنه يمتلك ما مجموعه خمسة وثلاثين طرف للأغراض العامة للإدخال / الإخراج وهو ما يكفي تماما لمعظم التطبيقات..

هذه الأطراف تم توزيعهم داخليا بنظام 
8 بت على خمسة منافذ A, B, C, D, E ام طرفما فى وظيفة معينة .. فانه لا يمكن استخدام هذا الطرف فى الأغراض العامة للإدخال الإخراج.
المنفذ Port A
فقط 6 أطراف من الثمانية يمكن أن تستخدم فى هذا المنفذ على النحو التالى
الأطراف من 
RA0 الى RA5 يمكن استخدمها كمداخل رقمية
الأطراف من 
RA0 الى RA5 يمكن استخدمها كمخارج رقمية
الأطراف من 
AN0 الى AN4 يمكن استخدمها كمداخل تماثلية (اى ان عدد المداخل التماثلية لمنفذ A هى خمسة فقط) والشكل التالى يوضح اماكن اطراف المنفذ A فى المتحكم PIC16F877A


المذبذب  Oscillator
أى ميكروكنترولر يحتاج الى إشارة ساعة clock signal حتى يقوم بالعمل المطلوب منه على اكمل وجه والتى يقوم المذبذب oscillator بتوليدها. داخل الميكروكنترولر تقوم إشارة الساعة clock signalيالتحكم في سرعة تشغيل العمليات والتى تتزامن مع مرور هذه الاشارة. هناك العديد من القرارات والخيارات يجب ان تتخذ والتى تتعلق بتنظيم توقيت أداء العمليات داخل الميكروكنترولر. هذه القرارات والخيارات تحتاج إلى فهم قبل تنزيل البرنامج على الميكروكنترولر.
دائرة المذبذب:
ومن خصائص الميكروكنترولر 
PIC16F877A انه يتعامل مع طرق عديدة أشكال مختلفة من المذبذبات . ولكن عادة نستخدم نوعين فقط من المذبذبات والشائع استخدامهما وهما:
1- مذبذب مقاومة – مكثف 
RC Oscillator
2- مذبذب الكرستالة 
Crystal (Quartz) Oscillator
غالبا ما يستخدم مذبذب الكريستالة نظرا لدقته وسرعته حيث أن مذبذب RC والذى يعتمد على الجهد الداخل الى المقاومة والمكثف والذى يولد بما يسمى resonant frequency يعيبه أنه ليس دقيق حيث انه عند توصيل مصدر التغذية له لا يعمل بالسرعة المرجوة فهو يأخذ وقت يسمى وقت بداية المذبذب حتى يعمل حيث تتأثر نبضاته بمعدل تغير الجهد وشدة التيار. والشكل التالى يبين شكل الكرستالة المستخدمة كمذبذب
توصيل المذبذب
فى المتحكم PIC16F877A يتم توصيل دائرة المذبذب على الاطراف OSC1 , OSC2 وهما الطرفان 13 , 14 والشكل التالى يوضح طريقة توصيل المتحكم بدائرة المذبذب.

والكريستالة ليس لها قطبية فيتم توصيل أى من طرفيها على الطرفان OSC1 , OSC2 ويراعى توصيل 2 مكثف سيراميكي بسعة 10 pf واحيانا 22 pf على كل طرف من أطرافها وبين الأرضي كما هو مبين بالشكل حيث أنها تستخدم لمنع الشوشرة. ويمكن الاستغناء عن المذبذب الكريستالي بشرط الحصول على الذبذبات من أي مصدر خارجي كمولد للذبذبات يوصل بالطرف رقم 13 .

إعادة الميكروكنترولر لحالة الانضباط  (حالته الطبيعية) (Reset)
فى أى ميكروكنترولر سوف نجد طرف يسمى MCLR هذا الطرف له وظيفتين اساسيتين. 
الوظيفة الأولى: هى اعادة الميكروكنترولر لحالة الانضباط او حالته الطبيعية reset تمهيدا لتجهيزه لحالة البرمجة مثلا. وتتم هذه العملية بمجرد توصيل الطرف MCLR  بالأرضى فى هذه الحالة يكون المتحكم فى حالة اعادة انضباط reset . فىهذه الحالة يكون يقوم الميكروكنترولر بإعادة الرام الى حالتها الطبيعية ويقوم ايضا بتشغيل البرنامج من بدايته كما هو الحاال عند تغذية النظام بالقدرة power turn on اى تشغيل الدائرة. المقاومة 10K عادة توصل مع الطرف MCLR لجعله ذو جهد عالى (true = high = 1) فى حالة عدم الضغط على المفتاح S1 . والشكل التالى كيفية توصيل المتحكم PIC16F877A للوصوا الى حالة اعادة الانضباط.
الوظيفة الثانية: للطرف MCLR هى استخدامه عند تحميل يرنامج جديد داخل الميكروكنترولر، حيث أن يتم تغذية هذا الطرف بجهد 12V عن طريقة وضع الميكروكنترولر فى القاعدة الخاصة به فى دائرة المبرمجة .


دائرة مصدر التغذية Power Supply 
يعمل المتحكم كأي وحدة رقمية على الجهد مستمر وحيث انه يتألف من دائرة متكاملة من عائلة CMOS لذلك فهو يحتاج الى جهد منظم قدره 5V  يتم الحصول عليه من دائرة مصدر التغذية التى يستخدم فيها منظم جهد  regulator مثل (LM7805 ). الجهد الموجب 5V يرمز له (VDD او VCC ) والشكل التالى يوضح دائرة مصدر التغذية للميكروكنترولر.



توصيل مصدر التغذية بالميكروكنترولر
يتم توصيل طرف الجهد الموجب لمصدر التغذية 5V  (VDD او VCC ) بالأطراف ارقام 11 ، 32 بالمتحكم PIC16F877A أما طرف الجهدالسالب VSS يتم توصله على الأطراف ارقام 12 ، 31 للمتحكم. والشكل التالى يبين توصيل اطراف التغذية بالمتحكم PIC16F877A.
ماهو البرنامج
يصنف الميكروكنترولر على انه من الأجهزة القابلة للبرمجة. فهو يقوم بكل دقة بتنفيذ ما يقال له أن يفعله من قبل البرنامج ، ولا شيء غير ذلك. والبرنامج هو عبارة عن قائمة من التعليمات يتم تصميمها جنبا إلى جنب وبشكل متسلسل لتنفيذ مهمة معينة. للأسف ، الميكروكنترولر لا يفهم اللغة الإنجليزية والشيء الوحيد الذي يفهمه هو لغة الأرقام. ونحن لا نتكلم بالأرقام وهنا تبدأ المشكلة
هناك حلان لهذه المشكلة وكل منهما يحتاج لشكل من أشكال الترجمة اى اننا نحتاج الى مترجم  translator  فعلى ذلك يكون الحل الأول هو كتابة البرنامج باللغة الإنجليزية أو بأى شيء قريب منها ، ومن ثم الحصول على شيء يترجم النتائج إلى أرقام. 

والحل الثانى يمكن استخدام المجمع 
Assembler والذى يقوم بترجمة اللغة الانجليزية الى لغة مشابهة للأرقام فعن طريقه وبخطوة بسيطة وسريعة يمكن تحويل ما تم كتابته باللغة الانجليزية الى رموز عددية numerical codes  والتى يكون الميكروكنترولر قادر على فهمها.

هذين النقيضين يعرفان بعملية البرمجة بلغة عالية المستوى  high-level languageتستخدم فيها اللغة الانجليزية أو البرمجة بلغة منخفضة المستوى low-level language لغة التجميع . الطريقة الأولى هي عادة ما تكون أسرع وأسهل للمبرمج ، لكنها تستغرق وقتا أطول لتشغيل البرنامج ، وذلك بسبب الحاجة إلى ترجمة كل ما تم كتابته للميكروكنترولر. والطريقة الثانية هي أبطأ بكثير بالنسبة للمبرمج فهى تستغرق وقت أطول عند البرمجة ، ولكنها تقوم بتنفيذ البرنامج والانتهاء منه بسرعة كبيرة داخل الميكروكنترولر.

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


تم بحمد الله وبالتوفيق للجميع


********

ليست هناك تعليقات :

إرسال تعليق

جميع الحقوق محفوضة لدى مدونة عالم الميكروكنترولر والتحكم |