يُعتبر اختيار المتحكّم المناسب للمشروع قراراً معقّداً لأنّ المتحكّم هو قلب المشروع، ويعتمد نجاح المشروع أو فشله عليه، ويوجد حالياً آلاف الأنواع المختلفة من المتحكّمات، لكلٍّ منها خاصيّةً مميّزة أو ميّزةً إيجابيّةً ابتداءً من حجم الغلاف وصولاً إلى سعة ذاكرة الوصول العشوائيّ (RAM) و ذاكرة القراءة فقط (ROM)، وتخوّلها (للمتحكّمات) أن تكون مناسبةً لتطبيقات محدّدةٍ وغير مناسبةٍ لتطبيقات أخرى، لهذا يقوم المصمّمون باختيار المتحكّمات التي اعتادوا عليها، كي يتجنّبوا الصّداع المرافق لعمليّة اختيار المتحكّم المناسب حتى وإن كان المتحكّم لا يلبّي كافّة متطلّبات المشروع أحياناً.
سنلقي نظرة اليوم في هذا المقال على بعض العوامل المهمّة التي يجب أخذها بعين الاعتبار عند انتقاء المتحكّم المناسب، بما فيها تصميم المتحكّم وسعة الذّاكرة وواجهات الرّبط ونقاط الدّخل والخرج بين العديد من العوامل الأخرى.
العوامل التي يجب أخذها بعين الاعتبار عند اختيار المتحكم
1. الغرض من المشروع:
قبل القيام بعمليّة اختيار المتحكّم المناسب لأيّ مشروعٍ يجب أن يكون لدى المطوّر فهمٌ عميقٌ للمهمّة التي ينبغي أن يقوم بها الجهاز المبنيّ على أساس المتحكّم، فيجب وضع لائحةِ موصفاتٍ تقنيّةٍ وتعديلها خلال هذه المرحلة، وهذه اللائحة ستقوم بالمساعدة في اختيار الميزات المطلوبة الواجب تواجدها في المتحكّم المستخدم في المشروع، وفي مثالٍ جيّدٍ عن كيفيّة تأثير غرض المشروع على المتحكّم المستخدم، نرى أنّه في حال استخدام متحكّمٍ يحتوي على وحدة حسابٍ رياضيٍّ متقدّمةٍ (Floating Point Unit) فغالباً ما يستخدم الجهاز للقيام بعملياتٍ تحتوي على الكثير من الأعداد العشريّة.
2. تحديد بنية المتحكم:
يشير مصطلح بنية المتحكّم إلى تصميم المتحكّم الداخليّ. وهناك نوعان أساسيّان لبنية المتحكّم يُستخدمان في صناعة المتحكّمات:
- النوع الأول: بنية فون نيومان Von Neumann
وفيها يتمّ استخدام خطوط نقل البيانات نفسها لنقل البيانات وجلب أوامر البرنامج من الذّاكرة، وبالتالي لا يمكن القيام بالعمليّتين في نفس الوقت وغالباً ما يتم جدولتهما.
- النوع الثاني: بنية هارفرد Harvard
والتي يتمّ فيها استخدام ناقلَين منفصلَين أحدهما للبيانات والآخر لجلب الأوامر.
والنوعان موضَّحان في الشّكل
ولكلّ واحدةٍ من هاتين البنيتين مميّزاتٍ وسلبيّات، فالمتحكّمات التي تعمل ببنية هارفرد تستخدِم مجموعة التعليمات المخفضة Reduced Instruction Set، وبالتالي فهي قادرةٌ على القيام بتنفيذ تعليماتٍ أكثر بدورات تشغيل أقل من المتحكّمات التي تستخدم مجموعة التعليمات المعقّدة Complex Instruction Set المصمّمة على أساس بنية فون نيومان.
يُعتبر وجود ممرَّي نقلٍ مختلفَين للبيانات ومجموعة التعليمات واحداً من أهمّ مميّزات المتحكِّمات المصمّمة على أساس بنية هارفرد، حيث أن ذلك يسمح بفصل عمليّة الوصول إلى الذّاكرة عن عمليّات وحدة الحساب والمنطق. وهو ما يقلّل المقدرة الحسابيّة المطلوبة للمتحكّم وبالتالي تخفيض الكلفة واستهلاك الطّاقة والحرارة الناتجة وهو ما يجعل هذه المتحكِّمات مناسبةً للأجهزة التي تعمل على البطاريات.
يُوجد العديد من المتحكِّمات من الأنواع ARM وAVR وPIC المصمَّمة على أساس بنية هارفرد، وكمثالٍ على المتحكّمات المصمّمة على أساس بنية فون نيومان نورد المتحكِّم 8051 والمتحكِّم zilog Z80.
3. عرض ممر المعطيات Bit size:
كن للمتحكّم أن يعمل بعرض ممرّ معطيات 8 bit او 16 bit أو 32 bit وأخيراً 64 bit وهو أكبر عرض موجود حتى الآن لممرّ المعطيات، ويُمثّل عرض ممرّ المعطيات في المتحكّم حجم الكلمة أو عدد البتات التي يمكن استخدامها في مجموعة التعليمات التي يتمّ برمجة المتحكّم عن طريقها، فعندما يعمل المتحكّم بعرض 8-bit تكون التعليمات والعناوين والمتغيّرات والسجلّات بحجم 8 بت.
تُعتبر سعة ذاكرة المتحكِّم من أهمّ النقاط المتعلّقة بعرض ممرّ المعطيات، فعلى سبيل المثال: في متحكّمٍ يعمل بعرض 8 بت يمكن عنونة 255 مكاناً مميّزاً في الذّاكرة تبعاً لعرض ممّر المعطيات، بينما في متحكّم يعمل بعرض 32 بت يمكن عنونة 4294967295 مكانٍ في الذاكرة، وبالتالي كلما ازداد عرض ممرّ المعطيات ازداد عدد المواقع المميّزة القابلة للاستخدام في الذاكرة.
في الوقت الراهن يعمل مصنّعو المتحكّمات على زيادة حجم الذّاكرة المتاحة للمتحكّمات العاملة بعرض ممرّ معطياتٍ منخفضٍ عن طريق استخدام تقنيّتَي العنونة (Addressing) والتصفّح (Paging) ، وبالتالي تصبح المتصفّحات العاملة بعرض 8 بت قادرةً على الاستفادة من الذّاكرة كالمتحكّمات العاملة بعرض 16 بت، ولكن هذا يعقّد عمليّة البرمجة بالنسبة للمطوّر،وبالتالي فإنّه من المهم أن تختار متحكّماً ذا عرض ممرّ معطياتٍ يناسب البيانات التي تريد معالجتها. ومن الجدير بالذّكر أنّ معظم الاستخدام يكون لمتحكّماتٍ بعرض 32 و16 بت بسبب الصفات التقنيّة المتقدّمة التي تتميّز بها.
4. واجهات الربط:
يمكن لعمليّة وصل المتحكِّم ببعض الحسّاسات والأجزاء العاملة التي ستُستخدَم في المشروع أن تحتاجَ استخدام واجهة ربطٍ بين الطّرفين لتسهيل التّواصل.
فعلى سبيلِ المثال لتوصيلِ حسّاسٍ تماثليٍّ إلى متحكّمٍ ما يتحتّم أن يكون لهذا المتحكّم عدد كافٍ من محولات الدّخل التماثليّ إلى رقميّ، أو في حال تغيير سرعة محرّك مستمرّ يمكن أن يحتاجَ واجهة تعديل عرض النّبضة PWM في المتحكِّم.
إذن سيكون من المهمّ أن نتأكَّد أنّ المتحكِّم المختار سيمتلك واجهات الرّبط المطلوبة بما فيها واجهات URAT وSPI وI2C والعديد غيرها من الواجهات.
5. جهد التشغيل:
إن جهد التّشغيل هو مستوى الجهد المرغوب لعمل المشروع، كما يمثل الجهد الذي تتعلق به أجزاء معينة من المشروع، في بعض الأوقات وفي مرحلة التصميم يحدِّد جهد التّشغيل المستوى المنطقيّ الذي سيتواصل عنده المتحكّم مع الأجزاء الأخرى التي ستكوِّن المشروع.
يُعتبر كلّ من جهدَي التّشغيل 5V و3.3V أكثر جهودِ تشغيلِ المتحكّماتِ شيوعاً، ويتمّ خلال عمليّة تطوير المواصفات التقنيّة للجهاز تقرير أيّ جهد منهما سيتمّ استخدامه، فلن يكون من الحكمة مثلاً استخدام متحكّمٍ يعمل بجهد تشغيل 3.3V في تصميم جهازٍ تعمل غالبيّة مكوناته وحسّاساته وأجهزته العاملة الخارجيّة بجهد 5V، حيث ستظهر الحاجة لإدخال محوّلات المستوى المنطقيّ للسماح بتبادل البيانات بين المتحكّم والمكوّنات الأخرى، ما يزيد تكاليف التّصنيع والكلفة العامّة للجهاز دون أي مبرّر.
6. عدد أقطاب الدخل والخرج I/O:
يُعتبر عدد مداخل و/أو أقطاب الدّخل والخرج للمتحكّم عاملاً مهمّاً يؤثّر على اختيار المتحكّم،
إذا كانت كلّ المواصفات المذكورة سابقاً لمتحكّمٍ ما مناسبة ولكن لم يملك عدد أقطاب الدّخل والخرج المناسبة والمطلوبة للمشروع فلا يمكن استخدامه.
فمن الضّروري مثلاً أن يكون للمتحكّم عدد أقطاب PWM كافٍ لتشغيل عدّة محرّكاتٍ مستمرّة، ويقوم الجهاز بالتحكّم بسرعتها. ورغم إمكانيّة زيادة عدد بوّابات الدّخْل والخرْج للمتحكّم باستخدام سجلّاتٍ متغيّرة فإنّها طريقةٌ لا يمكن تطبيقها في كلّ أنواع الاستخدامات كما أنها تزيد كلفة الجهاز الذي يستخدمها، وبالتالي من الأفضل أن نتأكد أن المتحكِّم المختار يمتلك العدد المطلوب في المشروع من أقطاب الدّخْل والخرْج العامّة والمتخصّصة، كما يجب أن نضع في عين الاعتبار التّطويرات المستقبليّة التي يمكن القيام بها على المشروع عند تقدير عدد أقطاب الدّخْل والخرْج المطلوبة، وكيفيّة تأثير هذه التطويرات على عدد الأقطاب المطلوبة.
7. متطلبات الذاكرة:
اك العديد من أنواع الذّاكرة المستخدمة مع المتحكّمات والتي يجب على المصمّم أن يأخذها بعين الاعتبار عند اختيار المتحكّم، وأهمّ هذه الأنواع: ذاكرة الوصول العشوائي RAM، وذاكرة القراءة فقط ROM ، وذاكرة القراءة فقط القابلة للمسح والبرمجة الكترونيّاً EEPROM، وغالباُ ما يكون تقدير الكميّة المطلوبة من كلٍّ من هذه الذواكر صعباً إلى حين استخدامها فعلاً، ولكن يمكن القيام بالتقديرات بالنّظر إلى كميّة العمل المطلوبة من المتحكّم، تشكّل أنواع الذاكرة المذكورة أعلاه ذاكرة البيانات، وذاكرة البرنامج للمتحكّم.
تُخزّن ذاكرة البرنامج التعليمات البرمجيّة التي تشكّل برنامجَ تشغيلِ المتحكّم، وعند فصل التيّار الكهربائيّ عن المتحكّم تبقى هذه التعليمات محفوظة، وتعتمد كميّة ذاكرة البرنامج المطلوبة على كميّة البيانات كالمكتبات والجداول والملفّات المكتوبة بالصيغة الثنائية Binary التي يحتاجها البرنامج ليعملَ بشكل صحيح.
بالمقابل يتمّ استخدام ذاكرة البيانات خلال تشغيل الجهاز، ويتمّ تخزين كلّ المتغيّرات والبيانات الناتجة عن المعالجة بين العديد من العمليّات الأخرى التي تحدث أثناء التّشغيل في ذاكرة البيانات، وبالتالي يمكن استخدام تعقيد العمليّات التي ستتم خلال التّشغيل في تقدير كميّة الذّاكرة المطلوبة لهذا الغرض.
8. حجم غلاف المتحكم:
يُشير حجم الغلاف إلى الأبعاد الفيزيائية للمتحكّم، توضع المتحكّمات في العديد من الأغلفة مثلQFB, TSSOP, SOIC, SSOP ومنها الغلاف المعتاد من النوع DIP والذي يسهِّل وضع المتحكِّم على لوح التوصيل في النموذج الأولي للمشروع ، من المهم أن يتمّ التخطيط قبل عمليّة التصنيع وتصوّر نوع الغلاف الأمثل للمشروع.
9. استهلاك الطاقة:
يُعتبر هذا العامل واحداً من أهم العوامل التي يجب أخذها بعين الاعتبار عند اختيار المتحكّم وخصوصاً عندما سيتمّ استخدامه في جهاز يعمل بالبطارية كتطبيقات إنترنت الأشياء، حيث يفضَّل أن يستهلِك المتحكّم أقل قدر ممكن من الطّاقة. تحتوي جداول المواصفات لغالبية المتحكّمات على معلومات حول عدة تقنيات تعتمد على قطع و\أو برمجيات يمكن استخدامها لتقليل استهلاك المتحكّم للطاقة بعدة أوضاع، ولذلك يجب أن تتأكد أن المتحكّم الذي ستختاره يلبي متطلبات حدود استهلاك الطّاقة في المشروع.
10. دعم الفني للمتحكم:
من المهمّ أن يكون المتحكّم الذي تختاره مدعوماً بشكل كافٍ متضمِّناً أمثلةً عن الأكواد البرمجيّة وتصاميمَ مرجعيّة ومجتمعاً كبيراً من المهتمّين على الإنترنت، ويمكن أن يصاحبَ العملَ مع متحكّمٍ ما للمرّة الأولى عدّة تحدّياتٍ، وتشكّل إمكانيّة الوصول إلى المراجع المذكورة عنصرَ مساعدةٍ كبيراً للتغلّب على هذه التحدّياتِ بسرعةٍ، ورغم أنّ استخدام أحدث أنواع المتحكّمات يُعتبر أمراً جيداً بسبب مواصفاتها الجديدة ينصح بأن يُستخدَم المتحكّم بعد أن يكون قد أمضى 3 إلى 4 أشهر في السوق وذلك للتأكّد من وجود حلولٍ للمشاكل المبكِّرة التي يمكن أن تظهر مع المتحكّمات الحديثة، حيث يقوم المستثمرون خلال هذه المدّة بالقيام بالعديد من الاختبارات للمتحكّم في العديد من الاستعمالات.
من المهمّ أيضاً أن تختار متحكّماً يمتلك مجموعة تطويرٍ (مجموعة التّطوير هي منصّةٌ لاختبار وتشغيل المتحكّم) جيّدةٍ تمكّنك من البدء من بناء النموذج الأوليّ بسرعةٍ وتسمح لك باختبار ميّزات المتحكّم بسهولةٍ، وتُعتبر مجموعات التّطوير طريقةً جيّدةً لاكتساب الخبرة والتعرّف على مجموعة الأدوات المستخدمة مع المتحكّم وتوفّر الوقت خلال تطوير الجهاز.
ستبقى عمليّة اختيار المتحكّم المناسب للمشروع مشكلةً على كل مصمّم أن يحلّها، ولكن تعتبر العوامل التي ذكرناها أكثرها أهميّةً رغم وجود عددٍ إضافيٍّ من العوامل التي يمكن أن تؤثّر على اختيار المتحكّم.