قناة علوم عظيمة على اليوتيوب

علوم الحاسوب

نظام مضمن : الميكرو-كونترولر مقدمة

 

السلام عليكم و رحمة الله تعالى

الحمد هلل الذى بنعمته تتم الصالحات

اليوم إن شاء الله، سنبدأ في تعلم كيفية إستخدام الأنظمة المضمنة ( embedded system )، عندما تنظر إلى ساعة ٌدك الرقمٌة أو إلى شاشة هاتفك الجوال، أن تعد طعامك فً المطبخ داخل أم أنت اآلن داخل سٌارتك الحدٌثة هل فكرت ما وراء هذه األشٌاء التً "المٌكرووٌؾ " فرن تعمل بلمسة واحدة ما الذي   ٌجعلها تقوم بهذه المهام دون الحاجة إلى مراقبة عملها أو مراجعة نتائجها ما الذي ٌجعلك تثق بها إلى هذه الدرجة سوؾ نذهب فً رحلة وراء شاشة هاتفك الخاص بك هذا الشًء الذي ٌعرؾ (mp3(المحمول ومقود سٌارتك ومشغل األغانً المتنقل، ينفذ رغباتنا، وينفذها بهذه الكفاءة والدقة دون الحاجة إلى تدخلنا تماما، ما هذا الشيء الذي نجده في كل شيء حولنا....

(المنزل – السٌاره – الموبٌل – المصانع - االلعاب -الكامٌرا- الوربوت -االجهزه الحربٌه – الاجهزه الطبٌيه وغيرهم )
ستجد ان جمٌع هذه االشٌاء واكثر ٌتم التحكم فٌها من خالل الماٌكروكنترولر هذا الماٌكرو كنترولر عباره عن مئات االالؾ من الترانسستورات فى رقاقه واحده هذه الكتله من السلٌكون عدٌمة الفائدة ، تمتلك امكانٌات مذهله ولكن هذه القطعة لن تفعل اى شئ اال تحت قٌادتك وبواسطه البرنامج الذى تقوم بكتابته باختصار انك تستطٌع التحكم فى اى شئ فى هذا العالم باستخدام هذه القطعه التى التتجاوز العده سنتٌمترات

قبل اختراع المايكروكنترولر اخذ التحكم اشكال متعدده منها :
1 -التحكم الكالسيكى (control classic)
وكان يتم التحكم فى المواتير واالجهزه عن طريق الswitches والريلاي :

motor.png (4 KB)

2-ثم بدء التحكم باستخدام ال CONTROL DIGITAL (....AND-OR-NOT-XOR )c

motor-1.png (27 KB)

3 -ثم بدء التحكم باستخدام ال control programmable عن طرٌق استخدام ال multiplexer

motor-2.png (90 KB)

وفى سنه 1969 قام مجموعة من المهندسين فى شركة intel بوضع اقتراح جديد هو ضرورة ايجاد حلول بديلة للدوائر القديمة وايجاد دوائر متكاملة حيث يتم بها تخزين للبرامج المستخدمة
وفى سنه 1971 ظهر فى الاسواق اول ميكروبروسيسور وهو الميكروبروسيسور 4004
لنتعرف اولا على المايكروبروسيسور :

Ignite_Ia_microprocessor.jpg (79 KB)

عبارة عن وحدة معالجة للبيانات كاملة ومدمجة أو مجمعة فى IC واحد وعادة ما يطلق عليها (CPU) أو وحدة المعالجة المركزية وهو يقوم بفهم مجموعه من الاوامر ويقوم بتنفيذها ليقوم بوظيفة معينة.
يتألف الميكروبروسيسورمن 4 وحدات رئيسية:
1_ ALU (arithmetic & logic unit):
وهى خاصة بعمليات ال processing سواء كانت عمليات حسابية (جمع / طرح ...) أو منطقية ( XOR. (....
2_REGISTERS:
وهى خاصة بتخزين البيانات الاتية من ال LINES DATA وتحويلها الى ALU لتقوم بمعالجتها ثم تخزينها مرة اخرى فى ال REGISTER.

3_CU (control unit )
4- system bus :
وهو عبارة عن مجموعة من نواقل الداتا لنقل الداتا من اطراف الدخل الى البروسيسور واالتصال بٌن المعالج والذاكرة ثم نقل الداتا الى اطراف الخرج. 

Ignite_Ia_microprocessor-1.jpg (28 KB)

كما يوجد مع الميكروبروسيسور مجموعة من الوحدات الهامة :
: oscillator _1
لكى يعمل CPU بكفاءة عالية لابد ان تكون كل العمليات التى تمت معالجتها متزامنة وتسير وفقا لساعة داخلية عالية فى الدقة عن طريق استخدام oscillator وهو عبارة عن ساعة داخلية الخراج اشارة زمنية ثابتة ( clock ) هذة الساعة عبارة عن وحدة يتم تركيبها تسمى  Crystalٌ تم تصنيعها من مقاومة ومكثف وتسمى بساعة انتظام).(clock system
: Memory _2
يتم فيها تخزين البيانات التى تستخدم بواسطة CPU وهى نوعان :
: RAM (read & write memory) _A
يستطيع MP ان يكتب البيانات على هذا النوع من الذاكرة وايضا يقرأ البيانات من هذة الذاكرة والبيانات على هذه الذاكرة يمكن تغيرها فى اى وقت.
: ROM (read only memory) _B
يستطيع MP ان يقرأ البيانات من على ROM ولكنه لا يستطيع ان يكتب عليه اي بيانات والبيانات داخل ROM تسمى firmwareٌ تم تخزينها اثناء عملية التصنيع ولا يمكن تعديلها عن طريق المستخدم.
15Page Technical Support 2015
: o/p ports _3
تعمل interface بين ال processor والعالم الخارجي حيث ان المدخالت غالبا تكون عبارة عن مجموعة من الازرار والمفاتيح اما ال outputs تكون على شاشة وحدة عرض.
: timers _4
مؤقت يحدد عليه زمن معين بعد مرورة يقوم ال processor بأداء وظيفة معينه.
communication interface _5
sxdcvg.jpg (83 KB)

مشاكل الميكروبروسيسور:

1 _لا يمكنه التعامل مع اشارة ANALOG ولكن digital فقط والحل لهذة المشكلة استخدم دائرة ADC للتحويل من analog الى ديجيتال ليتعرف الميكروبرسيسور على االشارة.
2 _لا يمكن ربطه بالكومبيوتر لان عملية ربط بالكومبيوتر بأي شئ خارجي تتم عن طريق ال ٌserial ports وال SERIAL PORT أو USB PORT سواء بداخله التى ports استقبال البيانات بالتتابع اما ال microprocessor يستقبل الداتا مرة واحدة بمعنى انه يستقبلها parallel ولحل هذة المشكلة نستخدم interface serial لتحويل الداتا الى parallel الخارجة من الميكروبروسسور الى داتا serialٌ فهمها الكومبيوتر أو العكس .
3 _لا يمكن ربطة بالنت مباشرة وذلك لانه عند إرسال بيانات الى النت فانه يتم اضافة عليها check parity فلو مثلا ارسلنا اشارة مكونة من 00000011 فانظر الى عدد الواحد فى الرسالة هل هو زوجى أم فردى فإذا كان زوجى نضيف للرسالة خانة زيادة فيها zero فترسل هكذا 000000011 واذا كان عدد الواحد فردى نضيف للرسالة خانة زيادة فيها one فينظر ال interface على ال check parity هل هو واحد ام صفر فإذا كان صفر ينظر للرسالة هل عدد الواحد زوجي ام لا فإذا كان زوجى يقوم بارسال الرسالة للنت بعد حذف الاضافات و لو كان عدد ال one فردى يقوم بارسال رسالة ان البيانات المبعوثة خاطئة ولحل هذة المشكلة يجب استخدم دائرة ادخل عليها البيانات المرسلة تقوم بارسال البيانات الى النت بعد إضافة ال parity check ويسمى هذا ال interface بال Ethernet.
4 _لا يحتوى الميكروبروسسور على memory internal ولكنه يحتاج الى disk hard وايضا الى RAM.
و الان عدد ال Components كتيرة ممكن IC 10 فبالتالى الحجم الكبير يعنى خطأ اكثر ومن هنا جاءت فكرة ال :Controller Micro فقامو بتغير ال processor مثل الموجود داخل الكومبيوتر الى microprocessor صغير يمكن وضعه داخل هذه الرقاقه الغيره
كما قامو بتغير ال HDD الى ROM صفير 18Page Technical Support 2015
وتغير ال RAM الكبيرة الموجودة داخل الكومبيوتر الى RAM صغيرة التتجاوز الكيلوبايت ثم وضعو هذا كله بالاضافة الى الاضافات التى سبق الحديث عنها فى IC واحد.

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

67898_510742568946175_1048009806_n23.jpg (118 KB)

عبارة عن كل المكونات التي ذكرناها سابقا ولكنها متجمعة فى IC واحد CHIP SINGLEٌ يمكن التحكم فى خصائصه ومكوناته باستخدام SOFTWARE.
مكونات الميكروكنترولر من الداخل ما هو إلى كمبيوتر صغير Minicomputer حيث يتكون من وحدة معالجة CPU وكذلك ذاكرة عشوائية RAM و ذاكرة من النوع ROM باإلضافة إلى وحدة تخزين يوضع عليها البرامج والبيانات (كما في الكمبيوتر الشخصي العادي) باإلضافة إلى وحدة الإدخال والإخراج حيث يكون الإدخال والإخراج عن طريق رجول الميكروكنترولر (Pins) وأقصد بالرجول أطرافه حيث يخرج الميكروكنترولر الإشارات الكهربية وكذلك يستقبلها، كل ذلك تتحكم فيه أنت كما تريد من خلال عملية البرمجة.

مقارنة بين الميكروكونترولر و الميكروبروسيسور :

1 _ عدد المكونات اقل من المكونات المطلوبة فى ال Microcomputer.
2 _ رخيص.
3 _ نسبة الخطأ اقل وسهل الاستخدام لقلة مكوناته.
4 _ الميكروكنتولر يستخدم فى الاغراض الخاصة لبرمجة شئ بعينه.
5 _ الميكروكنتولر ذاكرته محددوة جدا مقارنه بذاكرة الرام الموصلة بالميكروبروسيسور.
6 _ وحدات الاخراج والادخال بسيطة وقليلة مقارنة بالوحدات الموصلة بالميكروبروسيسور.
7 _ وحدات المعالجة المركزية الخاصة بالمتحكم الدقيق غالًبا ما تكون محدودة القدرة والسرعة أي أنها قادرة على القيام ببعض المهام التي يستطيع المعالج ذي الأغراض العامة القيام بها، كما أن سرعة المتحكم الدقيق محدودة مقارنة بالمعالجات العادية حيث من المعتاد أن يعمل على مذبذبات 4 أو 5 ميجا هرتز على عكس المعالجات العادية التي تعمل عادة على مذبذبات 2 و 3 جيجا هرتز.

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

1 - سهوله تغير في مكوناته لكن فى الميكروكنترولر لا يمكن تغير الذاكرة او اى شىء ومن هنا يمكن تحديث ال microcomputer باجهزة ذو مواصفات احسن.
2ٌ - يستخدم البروسيسور فى الأغراض العامة مثل الكومبيوتر فهو مؤهل لفعل الكثير من الأشياء.

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

يمكن برمجة الميكروكنتورلر بلغات عديدة لكن كان دائما لغتين اساسيتين لبرمجة الميكروكنترولر وان اللغات الأخرى او طرق البرمجة الأخرى مشتقة عن هاتين اللغتين:
1 _ لغة Assembly.
2 -لغة C ( وفى بعض الأحيان تستخدم الـ ++C )، وتستخدم هاتين اللغتين لعدة اسباب:
1 -لغة الـ Assembly من اقرب اللغات الى لغة الألة language machine وبرنامجها يأخد مساحة صغيرة للغاية مما يسهل عملية تخزينه وتنفيذه.
2 -لغة ( C ) توفر صغر الحجم للبرنامج وسهولة تنفيذه لكن ليس بقدر لغة الـAssembly حيث انها من اقرب اللغات إلى مستوى العالى ( level High language ) فى تركيبتها الى لغة الألة (Language Machine) بعد لغة الـ Assembly كما تتميز لغة الـ C بسهولة اوامرها مقارنة بلغة الـ Assembly التي تتطلب معرفة جيدة بمعمارية وحدة المعالجة المركزية داخل المتحكم الدقيق حيث تتطلب البرمجة بلغة C معرفة قوية بمعمارية المتحكم الدقيق من الداخل.
وقد تختلف بعض اوامر البرمجة من نوع متحكم دقيق الى اخر حيث تغير الشركات بعض الأوامر وتستحدث اوامر جديدة خاصة بانتاجها من المتحكمات الدقيقة لكن المبدأ العام ومجموعة كبيرة من الأوامر البرمجية موحدة بين اغلب انواع المتحكمات الدقيقة.
وظهرت فى الأسواق في السنوات الأخيرة متحكمات دقيقة يمكن برمجتها باستخدام لغة Basic فيما عرفت بـ ( Microcontrollers Stamp Basic)  وان كانت غير منتشرة فى اسواق الشرق
الأوسط بكثرة.
الخالصة :
    يستحب استعمال ال microprocessor فى اجهزة الحاسب المكانية التغير فيها بمواصفات احسن ويستحب استخدام الميكروكنترولر فى باقي التطبيقات تقريبا لأنها ذو برنامج ثابت مثل التكٌيف لا يحتاج الى تحديث الخ.

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

   هناك انواع كثيرة في الميكروكونترولر و التي تستخدم بكثرة و من بينها PIC16F84A و PIC16F877A هي التي سنعمل عليها بإذن الله في الدروس القادمة.

  67898_510742568946175_1048009806_n23-1.jpg (88 KB)

و هنا نكون قد أنهينا مقدمتنا عن الميكروكونترولر، في الموضوع القادم سيكون اول مشروع لنا على الميكروكونترولر و سنستعمل PIC16F84A لفهم طريقة كتابة الكود و أيضا طريقة محاكاته على Proteus المحاكي في الحاسوب، و كيفية وضع الكود داخل ال بيك و ايضا تشغيله على لوحة لمعرفة مزيد عن هذه التجربة إظغط هنا.

السابق
كيف تتناسب عملة البيتكوين مع الأزمة الإقتصادية في لبنان ؟
التالي
آبراوات

0 تعليقات

أضف تعليقا

اترك تعليقاً