قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 03-06-2018, 08:23 AM المشاركة 1   
افتراضي الميكرو كونترولر انواعه و برمجته و استخداماته Twitter FaceBook Google+



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

هذا الشرح يتناول أنواع الميكروكونتروللر، وشرح لأهم عائلتين هما أتمل Atmel و عائلة ميكرو تشيبPIC و يتناول الحاجة إليهم و استخداماتهم و ما تصلح له وما لا تصلح و كيفية برمجتهم بلغات عدة.
ليس الهدف أن أجعلك محترفا ولا أن أكشف لك خبايا اللغات ولكن يكفينى أن أبين لك فروق هذه الأمور وأن أضعك على الطريق و عليك أن تختار الأنسب لك وهذا الاختيار هو ما يجعلك تصل للاحترافية لكن لو فرضت عليك طريقا ، قد يكون الأفضل لغيرك لكن الأفضل لك شيء آخر.
قد تبدو المقدمة التالية طويلة بعض الشيء لكنها ضرورة لوضع أساس حوار تركيبه الداخلى و لغات البرمجة.
كيف بدأ
منذ بدء الحضارة و سعى الإنسان لصنع آله حاسبة لتسرع الإنجاز و تتجنب الأخطاء ولاحقا تتجنب النسيان و توصل العديد من العلماء لآلات و لكنها عجزت عن الطلب الأخير فمفهوم الذاكرة و التذكر كان صعب التحقيق حتى توصل العالم  Lee De Forest لى دى فورست لوضع شبكة للتحكم فى مسار الإلكترونات فصنع أول صمام مكبر و من ثم أمكن عمل أول حاسب آلى إلكترونى تماثلى حقق كافة العلاقات الرياضية المعقدة مثل اللوغاريتمات و الحسابات المثلثية وحتى استخدمت كثير من الوسائل لتحقيق الذاكرة مثل الشرائط المثقبة أو الأجزاء المتحركة الخ لكن ظلت العقبة الرئيسية هى سهولة البرمجة. كانت الوظائف تصنع فى صناديق قياسية بعرض 19 بوصة و البرمجة بتثبيتها فى دولاب خاص يسمى راك 19 بوصة ثم توصل الصناديق ببعضها بكابلات و أيضا عمل حاسب يؤدى عدة وظائف تختار بينها بمفتاح صعبة لكون الأسلاك تحد من سرعة الاستجابة فتبطئ الأداء.
سعى العلماء لتصغير ألصمامات الإلكترونية بهدف تصغير الحجم و تقليل الفاقد فى حرارة التسخين و تقليل الفولت المطلوب لتشغيلها من مئات لأقل من مائه فولت. صممت كافة الدوائر المنطقية بألصمامات و صمم المذبذب متعدد التوافقيات (سلسلة تصميم الدوائر المنطقية) و ألذى اعتبر أول خلية ذاكرة سهلة التطبيق ثم تطورت لعمل مسجلات و بوابات أمكن الوصول لأول حاسب آلى إلكترونى فى الأربعينات سمى ENIAC اختصار جمله Electronic Numerical Integrator and Computer و كان يشغل مبنى كاملا و له مبنى ملحق لأجهزة التكييف و التبريد و كانت سرعته بلغت 2 ميجا هرتز و كان وقتها سحرا – تخيل أن تقوم بمليونى عملية حساب فى الثانية الواحدة و ذكر أحدهم أننا لو بنينا جهاز آخر سيكفيان حاجة العالم من الحسابات و الآن كل منا لديه حاسبان على الأقل فى يده، الهاتف المحمول و الساعة ...
حتى هذا الوقت اقتصرت الدوائر المتكاملة على المقاومات و المكثفات بهدف تصغير الحجم و تقليل الوصلات.
فى ديسمبر 1947 توصل العلماء لأول ترانزستور من الجرمانيوم و الثنائيات من المواد الصلبة وأضافت الدوائر المتكاملة الثنائيات فقط لعدم ملاءمة الجرمانيوم لهذا الأسلوب فى التصنيع. ظهرت عائلات رقمية مثل عائلة RDL وهى المقاومة و الثنائى و DTL أو الثنائى مع الترانزستور فى صورة كروت إلكترونية قابلة للوضع فى قاعدة Plug in أو الرفع و الاستبدال.
عندما تمكن العلماء من استخدام السيليكون أمكن صنع أول دوائر متكاملة تحتوى ترانزستورات و صنعت عائلة TTL الشهيرة و صنعت حاسبات تسمى مينى كمبيوتر و هيكل أساسى Main Frame وهى "العملاقة وقتها" ولم تصل لجزء من مائه من هاتفك المحمول.
أغلب الحاسبات وقتها صنعت طبقا لنسق سمى هارفارد حيث يكون مكان حفظ البيانات و مسار حفظها مستقلين تماما عن مكان حفظ البرنامج (الكود) و مسار التعامل معه وهذا وفر المرونة و السرعة حيث لا يجب تساوى عرض كل منهما و طلب ومعالجة أحدهما لا يتعارض مع التعامل مع الآخر و كان عادة البرنامج فى كروت مثقبة أو شريط مثقوب و البيانات فى وسائل كهر وميكانيكية .
الهيكل الأساسى لحاسب آلى تبلور فى وحدة معالجة مركزية للحساب و المنطق و حولها الذاكرة و وسائل إدخال و إخراج .
بعد تطور TTL أمكن صنع وحدة معالجة مركزية فى صورة دائرة متكاملة وهى 74181 ولاحقا المعدلة 74881 وهى قادرة على تنفيذ 16 عملية حسابية أو منطقية جمع أو طرح أو إزاحة أو مقارنة أو دوال المنطق المعروفة AND-OR-XOR و المتمم أو Complement على 4 بت معا وهى 24 طرف و بسرعة تصل إلى أكثر من 10 ميجا و قابلة للامتداد أى توصل بعضها ببعض للتعامل مع 8 بت أو اكثر.
ظهور دوائر منطقية من عائلات أخرى مثل NMOS , PMOS عازل أكسيد السيليكون الموجب و السالب القناة،ولاحقا CMOS عازل أكسيد السيليكون مع المكمل، مكن من تصغير حجم الترانزستور بصورة كبيرة و أمكن من دمج وحدة المعالجة السابقة مع مثيلتها لمعالجة 8 بت معا و إضافة مراكمات و عداد للبرنامج و حافظ للبيانات تحت المعالجة و ظهرت طريقة "فون نيومن" فى الحاسبات حيث تكون خطوات البرنامج و البيانات فى ذات الذاكرة و بتتابع، أى كود أمر يليه البيان ألذى يتعامل معه وسميت ميكروبروسيسور لأنها تعالج البيانات..
أشهر هذه الميكروبروسيسور هو 8080 و ألذى أنتجته إنتيل و ألذى تفوقت عليه شركة زيلوج بالميكرو Z80 و ألذى أصبح عصب كل الحاسبات الشخصية و تبنت IBM هذا النوع من إنتيل وهذا سبب شهرته لكن باقى الشركات استخدمت Z80 لأفضليته و سهولة استخدامه و منافستها الأساسية شركة موتورولا انتجت MC6800 و ألذى كان أسهل بكثير فى الاستخدام و أنسب للماكينات و الصناعة عموما وهنا مقارنة بينهما


كل منهما 40 طرف بنسق DIP اختصار Dual Inline Package و تشمل على حافلة للعنوان Address Bus من 16 طرف يتيح أقصى تناول للذاكرة 16 كيلو بايت أو 65536 خانه ، و أخرى للبيانات Data Buss من 8 بت تتيح التعامل مع بايت كاملة فى المرة الواحدة وثالثة للتحكم Control Buss أو أحيانا System Buss و أطراف التغذية و كانت تعمل بكريستال 2 ميجا و أقصاها وصل 4 ميجا.
على اليمين نجد Z80 و نجد حافلة ألعنوان Address Bus تشمل الجزء العلوى على الجانبين (أطراف من1:5 على الجانب الأيسر ثم من 30 :40 على الجانب الأيمن) بينما فى 6800 نجدها مرتبة بالتتالي على الجانب الأيسر من الطرف 9 وحتى 20 ثم الجانب الأيمن حتى 25 .
حافلة البيانات Data Buss فى Z80 فى الأطراف 14 ثم 15 ثم 12 ثم 8 ثم 7 ثم 9 ثم 10 ثم 13 مقابل اليسرى مرتبة .
لا ننسى هنا ذكر شركة روكويل و منتجها 6500 وهى ما اختارته شركة أبل لحاسباتها.
لا ننسى أن كل هذه الميكرو لم يحتوى ذاكرة و دوما كنا نشترى ذاكرة لحاسباتنا ولم يحتوى اتصال تسلسلي ولا عدادات تايمر ولا محول تماثلى رقمى – الحساب و المقارنة و المنطق فقط و الحساب كان جمع وطرح فقط أما الضرب و القسمة فكان لها معالج مساعد Co-processor لمعالجة الضرب و القسمة و الأرقام العشرية و كل هذه الخواص كانت إضافات محيطية ولها ما سمى بروسيسور خاص بها.
معذرة للإطالة لكن هذا تسبب فى الحاجة لأشياء هامة جدا تربط مفاهيم لغات البرمجة و أكوادها Software مع المكونات الملموسة Hardware و مدى حاجتنا لأى منهما فى عالم الميكرو، هذا موضوعنا القادم بإذن الله


التعديل الأخير تم بواسطة : ماجد عباس محمد بتاريخ 01-07-2018 الساعة 05:58 AM
احصائية الشكر والاعجاب - 4 شكراً, 0 عدم اعجاب, 5 اعجاب
شكراً magdy_3, سعيد قادر, عبدالله حجازى, burai nuraldaem ( شكر العضو على هذه المشاركة )
اعلانات

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 04-06-2018, 09:32 AM المشاركة 2   
افتراضي بدء التشغيل و البايوس BIOS



بدء التشغيل و البايوس BIOS
كل ميكرو يجب أن يبدأ بالريسيت Reset ألذى يحدد له مكان فى الذاكرة يبدأ به فيضع على حافلة العنوان رقم الخانة المقصودة ثم يضع إشارة قراءة من الذاكرة على حافلة التحكم فتجيبه الذاكرة بمحتواها وهنا تحدد وحدة المعالجة ما إن كانت الخطوة التالية هى بيان مطلوب أو أمر جديد فمثلا أمر المتمم Complement يكون للمراكم فقط ولا يتطلب بيانات أخرى على العكس من أمر الجمع مثلا سيحتاج ما نجمعه.
الحاسبات الصغيرة تعمل على ملف واحد فقط له بداية واحدة فقط يبدأ منها ليشعر المستخدم أنه يعمل ثم يختار المستخدم لعبة ما أو برنامج وحيد لكى يشغله لكن، هل هذا البرنامج لا يحفظ بيانات؟
هنا تظهر مشكلة كبيرة وهى كيف؟
سنحتاج مكان ثم نقسم المكان لوحدات و نعطى البيانات اسما – أصبحت ملف (مثل أى كتاب له فهرس به الفصول و محتوى الصفحات الخ) ، و هنا نشأت الحاجة لنظام تشغيل يتولى هذه الأمور. يفرق بين أنواع الملفات و يحتفظ بفهرس للملفات و أماكنها و إن تم تعديل أحدها إين تضاف الزيادة؟ و إن حذف كيف نحررها من الفهرس الخ. باختصار نظام تشغيل Operating system لمعالجة هذه الأمور.
هنا ظهرت الحاجة لوسائط تخزين غير الذاكرة تكون دائمة عند غلق الجهاز مثل القرص الصلب أو المرن الخ.

مما سبق بات واضحا أن تركيب الحاسب أصبح مفتوحا للخيارات الشخصية فقد أشترى قرص صلب أو لا و قد أركب قارئ أقراص مرنة أو لا وقد احتاج لأن ابدأ من خارج الجهاز كليا، لذا كان لابد من استخدام نظام أساسيات الإدخال و الإخراج Basic Input Output System و اختصارا BIOS لكى ندل الميكرو ما لديه من وسائل الإدخال و الإخراج و أيها يبدأ منها التشغيل حيث يجد نظام التشغيل و ألذى بدأ بالدوس DOS وهى اختصار Disk Operating System أى نظام تشغيل الأقراص و ألذى مازال يستخدم حتى وقت كتابة هذه الكلمات ثم الويندوز وغيرهما من الأنظمة مثل يونكس و لينكس الخ.
تطور الجيل التالى و استخدم 16 بت للبيانات و طبيعى أن ينشدوا حجم أكبر من البيانات و البرامج و سرعات اكبر أى 24 بت للعنوان مع 16 بت للبيانات و لذا استخدموا متكاملة 48 طرف فى صورة متكاملة مربعة و تصل حتى 64 طرف.
لكن ما تلى ذلك من أجيال سعت لحجم أكبر من الذاكرة ولم تعد هذه الأشكال من المتكاملات مناسبة لذا لجأوا لعدة صفوف داخل بعضها مثل إنتيل 486 حيث لونت الصف الخارجى باللون الأحمر و الأوسط بالأخضر و الداخلى بالأصفر و تسمى PGA اختصارا Pin Grid Array مصفوفة الأطراف الشبكية.

الآن هذه لا تصلح لك ولى فهى تتطلب بوردة متعددة الطبقات كما أيضا لها احتياطات خاصة لسرعتها العالية و التى زادت عن 100 ميجا فلا يجب أن تتغير ألسعات فى أطراف البيانات حتى لا تصل بعض أطرافها متأخرة عن الأخرى من الذاكرة.
من أهم الأمور أن أوضح لك أن حافلة العنوان وحافلة البيانات كانت تصل الميكروبروسيسور بالذواكر وكافة المحيطات، أجل كل الأطراف السبعة و عشرون.
حقا هم 16 للعنوان مع 8 للبيانات أى 24 ثم خط تحكم يحدد ما إن كان التعامل مع الذاكرة أم محيطات IO request و نظرا لاضطراب القيم على الحافلات هناك خط تحكم آخر يسمى العنوان صحيح Valid Memory Address اختصارا VMA أى أن الميكروبروسيسور قد وضع العنوان النهائى وهو هكذا ببساطة فلا أريد أن أعقد لك الأمور بخاصية DMA أو Direct Memory Access حيث تتولى الأجهزة التعامل مع الذاكرة دون تدخل الميكرو و التى تضيف خطين تحكم أخريين
Buss request , Buss Available
- و فى النهاية خط يسمى ألفاز2 أو Ø2 وهى الجزء من الدورة التى تشمل من2 :4 نبضة و التى سيقرأ فيها الميكروبروسيسور البيان.

هنا نشأت الحاجة لعمل الميكروكونتروللر أى العودة للجذور من جديد حتى تتمكن انت و أنا من صنع بوردة بإمكانياتنا المحدودة و أن نضع هذا الميكرو على بوردة تجميع Bread Board و نجرى تجاربنا وهو موضوعنا القادم إن شاء الله

احصائية الشكر والاعجاب - 4 شكراً, 0 عدم اعجاب, 4 اعجاب
شكراً احمد شهيد جواد, عبدالله حجازى, سعيد قادر, mzn-asad ( شكر العضو على هذه المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

احمد شهيد جواد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2015
الدولة: العراق
المشاركات: 324
نشاط [ احمد شهيد جواد ]
قوة السمعة:0
قديم 04-06-2018, 06:48 PM المشاركة 3   
افتراضي


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

سلسلة ستكون رائعة وستكون ممتعة بوجود الكبير ماجد عباس محمد ....

فعلا كُنا بحاجة لها ,, انا على ثقة لو تعاوننا جميعا وكل شخص منا وضع ما لديه من خبرات في المايكرو لأنتجنا محتوى جيد ومرجع يعتمد عليه بشرط ان تكون المشاركة ذات قيمة وليس للسرد وتشتيت الموضوع ...


ستكون لي عدة اسئلة في هذي السلسلة ( طبعا ان سمحت )

ادامك الله لنا معلما واستاذاً

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً ماجد عباس محمد ( شكر العضو على هذه المشاركة )

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 05-06-2018, 07:48 AM المشاركة 4   
افتراضي


أهلا وسهلا يسعدنى ذلك

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً احمد شهيد جواد ( شكر العضو على هذه المشاركة )

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 05-06-2018, 08:36 AM المشاركة 5   
افتراضي العودة للجذور



ألعودة للجذور:
مما سبق وجدنا أن الحاجة نشأت لعدة أمور مثل:
1- ألعودة للشكل الأساسى DIP أو المربعة على أقصى تقدير لتمكين الشخص ألعادى من التعامل معه.
2- السرعات المتوسطة و التى لا تشكل عائقا فى التنفيذ.
3- الإسغناء عن نظام التشغيل و من ثم البايوس و ترك الميكرو متاح للمبرمج لكى يتعامل معه مباشرة على مستوى المكونات الداخلية.
4- التخلص من صعوبة توصيل 16 خط للعنوان مع 8 خط للبيانات و باقى التحكم أى 29 طرف و من ثم العودة لنظام هارفارد أى ذاكرة مستقلة للبرنامج و أخرى مستقلة للبيانات.
5- من النقطة السابقة يمكن التخلص كليا من 24 طرف و بعض خطوط التحكم بجعل الذواكر كلها داخلية و احتواء المداخل و المخارج Input Output ما أمكن داخل الميكرو وبعض الوظائف الطرفية مثل التواصل التسلسلى و التحويل تماثلى لرقمى و من ثم أصبحت كافة الأطراف متاحة للمبرمج للتحكم فى العالم الخارجى و تحسس وسائل التحكم مثل الحساسات و المفاتيح
6- لم تعد هناك حاجة لكل التعليمات فى الميكروبروسيسور لذا سنستغنى عن التعليمات التى ستتم فى الذاكرة و نكتفى بالتعليمات التى تتم بين الذاكرة ووحدة المعالجة فقط و نسمى هذا مجموعة الأوامر المخفضة Reduced Instruction Set Computer اختصاراRISC رغم أن هذا يتطلب زيادة عدد خطوات تنفيذ ذات المهمة للحاجة لنقل البيان الأول لوحدة المعالجة ثم نقل النتيجة للذاكرة.

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

تنافست شركات عديدة فى إنتاج هذا الشكل و أصبح لكل منها منتج له خواصه و ميزاته و مجالاته الأنسب لكن أشهرها كان من إنتاج إنتيل و سمى C51 و ميكرو تشيب. إلا أن إنتيل باعت منتجها لشركة أتميل و التى سمته بدورها AT89x5x حيث AT تعنى Atmel و 89 رقم المجموعة ثم x قد تكون C,S, L,LV حيث كل حرف يعنى خاصية ما ثم 5X قد تكون 51 أو52 أو53 أو54 أو 58 أو 2051 الخ حسب نوع و طراز الميكرو ثم سلسلة AVR و المعروفة بالإسم AtMega بينما ميكرو تشيب أنتجت PIC10cxxx ثم PIC12cxx ثم PIC16xxx ثم PIC18xxx الخ
المجموعتان من إنتاج ميكروتشيب PIC10cxxx و PIC12cxx غالبا من ثمانية أطراف وهى محدودة الإمكانيات لكن لها العديد من التطبيقات مثلا موتور توجيه طبق الأقمار الصناعية، لا يحتاج سوى طرف لتلقى الأوامر من الريموت و آخر لعد نبضات إنكودر الموتور و طرفين لتحريك الموتور يمين أو يسار و طرفين لخزن المعلومات فى ذاكرة فلاش ملحقة بالبوردة. هذا لأبين مدى أهمية أن نعلم عن كل الأنواع ، فمهما كان الميكرو صغيرا و محدود الإمكانات فله عديد من التطبيقات التى يمكن استخدامها فيها و تحقق إنجازا كبيرا. فقط حاول أن تفكر كيف تستبدله بإلكترونيات رقمية لتدرك الفارق.
هذه المجموعة لم أعلم لها موازى من أتميل سوى لاحقا من فصيلة AVR و سميت ATtiny وهى اختصار AT وهو اسم الشركة ثم tiny بمعنى صغير إلا أن حريه اختيار الرصة Stack (و سيأتى شرحه المرة القادمة إن شاء الله) تجعل ATtiny أقوى بكثير من ألبيك.
كيف نستخدمه و نبرمجه؟ حسنا لو شرحت لك ألبيك 16 سيعترض هواة ألبيك 18 ولو شرحت C51 سيحتج هواة AVR ولكنى سقت لكم مثالا موتور الدش لغرض فى نفسى وهو هذا الأمر. سأشرح الكل لكى تعلم انت كيف تبحث عما تريد و كيف تدرس أى ميكرو ولا تقف عاجزا بل تختار الأنسب . كنت أبرمج C51 بالأسيمبلى حين طلب منى جهاز بالميكرو تشيب و لغة C لعدم توافر النوع الآخر ، كمصمم يجب ألا تتوقف، ادرس الداتاشيت ، أتعرف على الفروق و أبرمج بأى لغة تناسب التطبيق.
لهذا يجب أن نعلم التركيب الداخلى و كيفية البرمجة. وهذا موضوعنا القادم بإذن الله

احصائية الشكر والاعجاب - 4 شكراً, 0 عدم اعجاب, 5 اعجاب
شكراً احمد شهيد جواد, مارد الجبل, عبدالله حجازى, سعيد قادر ( شكر العضو على هذه المشاركة )

الصورة الرمزية burai nuraldaem
burai nuraldaem
:: عضو فضى ::
تاريخ التسجيل: Nov 2015
الدولة: السودان
المشاركات: 503
نشاط [ burai nuraldaem ]
قوة السمعة:50
قديم 05-06-2018, 12:50 PM المشاركة 6   
افتراضي


هذا الشرح يتناول أنواع الميكروكونتروللر، وشرح لأهم عائلتين هما أتمل Atmel و عائلة ميكرو تشيبPIC و يتناول الحاجة إليهم و استخداماتهم و ما تصلح له وما لا تصلح و كيفية برمجتهم بلغات عدة.
اعانك الله استاذ ماجد علي هذه المجهود المقدر وتقبل الله منك
تعلم كم كنت انتظر هذه السلسله والحمد لله
انشاء الله تكون فاتحه خير للامه العربيه المسلمه
جزاك الله خير وسدد خطاك

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً ماجد عباس محمد ( شكر العضو على هذه المشاركة )

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 06-06-2018, 07:58 AM المشاركة 7   
افتراضي


اعانك الله استاذ ماجد علي هذه المجهود المقدر وتقبل الله منك
تعلم كم كنت انتظر هذه السلسله والحمد لله
انشاء الله تكون فاتحه خير للامه العربيه المسلمه
جزاك الله خير وسدد خطاك
شكرا أخى الكريم و دعواتكم فالموضوع كبير فيه 4 ميكرو و 3 لغات أى 7 فى 1
و الله المستعان

احصائية الشكر والاعجاب - 0 شكراً, 0 عدم اعجاب, 1 اعجاب
اعجاب عبدالله حجازى ( أعجبته المشاركة )

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 06-06-2018, 08:44 AM المشاركة 8   
افتراضي أشهر أنواع المتحكمات



أشهر الأنواع:
كما ذكرنا فشركتى ميكروتشيب و أتميل هما أشهر الشركات فى هذا المجال و سنقارن أشهر الأنواع من كل منهما ثم نشرح التركيب الداخلى و كيفية البرمجة بالأسيمبلى و البيزك و لغة C و سنعرض أخيرا للجيل المتطور من كل منهما و عليك أن تكمل المشوار.
أولا لنقارن بين الأطراف سنجد أننا فى حاجة لأن نعرف كيف يتصرف الميكروكونتروللر وما هى احتياجاته من العتاد لكى ينفذ أى برنامج.
ألتركيب العام:
الشرح التالى لا يخص رقم بعينه ولكنه صحيح لكل الأرقام ومن الشركتين أيضا.
أولا سنفتح مصدر التغذية و بالتالى يجب أن يبدأ الميكروكونتروللر فى العمل وهذا يتطلب مذبذب داخله لكى يعطى له نبضات تجعله يكرر دورة واحدة محددة وحتى قطع التغذية عنه. هذه الدورة هى أخذ كود الخطوة المعنية ثم يشير للخطوة التالية ثم تحليل الكود ليعرف ما هو ثم تنفيذه (نقل رقم للمراكم – نقل من المراكم للذاكرة-جمع رقم للمراكم..الخ) و يكرر.
لهذا يجب أن يحتوى على عداد للبرنامج Program Counter و وحدة تحليل التعليمات Instruction decoder و مراكم أو أكثر Accumulator حيث سيضع البيان ألذى تأمره به ألتعليمه و مجموعة من المسجلات لزوم الحاجة.
هنا نفرق بوضوح بين المسجل و المراكم. كلاهما تخزن فيه بيان و تقرأ منه و تستخدمه فى الحسابات و بعضها يمكنك أن تستخدم محتواه كعنوان لكن نتيجة العمليات الحسابية تذهب للمراكم فقط ، ولو به أكثر من مراكم قد يمكن الاختيار بينهما.
هكذا يمكنك التعامل مع معظم الأوامر لكننا ذكرنا أن هناك كثير من الأجهزة المحيطة مثلا التواصل التسلسلى، حسنا مشكلة هذا التسلسلى انك لا تخبر الطرف الآخر عن ترددك ولا أوقات وضعك للبيانات لذا يجب أن تعتمد الدقة العالية فى إرسالك و توقيت استقبالك لذا يتطلب الأمر أن يكون المذبذب يعمل بكريستال لتوفير الدقة كما انك لن تتمكن من تغيير الكريستال لو أردت تغيير معدل الإرسال،ولا أن تستخدم 2 كريستال واحدة بطيئة للتسلسلى و أخرى سريعة لباقي البرنامج ، لذا يجب وضع مؤقتات داخلية "تايمر" Timer و من ثم أغلب الوحدات تحتوى واحد 8 بت و آخر أو اثنان 16 بت. تضع فى أى منهما القيمة المناسبة (تحميل العداد) ليعطيك معدل الإرسال المطلوب أو أيضا أى توقيت تريد أو وظيفة أخرى كما سيلى الشرح إن شاء الله.
إذن تتولى وحدة الاتصال التسلسلى عند تمام العد أن تعيد تحميل العداد حتى نهاية إرسال البايت. كيف تخبر الميكرو بأنها أتمت المهمة أو أنها تلقت من الخارج بايت كاملة تحتاج التعامل معها قبل أن تصل بايت جديدة؟
إذن تنشأ الحاجة لاستبقاء نظام المقاطعة من الميكروبروسيسور السابق وهو أن يكون بداخل وحدة المعالجة مسجل به 8 بت كأى مسجل ، واحدة لإتاحة المقاطعة ككل أو إيقافها ككل و بعض من ألباقى يخصص بت لكل حدث.
عندما تصبح واحدة منهم =1 فسيتحسس الميكرو ذلك فى نهاية الدورة ثم يحفظ العنوان الحالى (أى خطوة هو على وشك تنفيذها) فى "ذاكرة ما" ثم يذهب لعنوان آخر تحدده أى بت سببت هذه المقاطعة و فى نهاية كود المقاطعة يجب وضع تعليمه خاصه اسمها عودة من المقاطعة لكى يفهم الميكرو أن عليه استعادة العنوان ألذى سيق أن خزنه فى تلك "الذاكرة ما" ليعود للبرنامج الأصلى.
هذا الموضوع سنتناوله تفصيلا لاحقا لكن ما يهم الآن انه أثناء خدمة المقاطعة قد يحتاج الأمر لمقاطعة ثانية و سيضع الميكرو العنوان الجديد فوق السابق (ترص فوق بعضها) وهكذا ، لذا سميت هذه "الذاكرة ما" بالمرصوصة Stack ولها عداد مستقل أيضا لمتابعة أين نحن الآن يسمى مؤشر الرصة Stack Pointer وهو يزداد بواحد أولا ثم يحفظ المطلوب حفظه و بالعكس يقرأ المحتوى أولا ثم ينقص بواحد.
التعامل مع العالم الخارجى:
مما سبق أصبح الميكروكونتروللر مهيأ للتعامل أساسا مع العالم الخارجى لذا صنعت أغلب أطرافه مداخل ومخارج فى مجموعات تسمى بوابه PORT و نظرا لأن معظم البيانات تعالج بالبايت وهى 8 بت قسمت هذه الأطراف لمجموعات أقرب ما تكون لهذا العدد و من ثم كل تعاملك مع بايت و تتحكم أيضا فى مخرج عرضه بايت و أيضا تعطى بيانات لأى جهاز خارجى أو تأخذ منه بعرض بايت أيضا.
لذا احتوى الميكرو على هذه البوابات PORTs و فيما عدا عائلة C51 فلكل منها داخل الميكرو مسجل مناظر لتحول أى طرف "بت" منها أو كلها معا من دخول لخروج. طبعا هناك فرق كبير بين أن يكون الطرف دخول أو يكون خروج.
الطرف الخروج سيكون إما صفر أو 1 حسب الأمر ألجارى تنفيذه وهو قادر على إعطاء تيار محدود عندما يكون =1 أو يقبل "يبتلع" تيار عندما يكون = صفر، أما الطرف المهيأ كدخول سيكون ذو إعاقة عالية حتى لا يسبب سحب تيار من أى مصدر يتصل به و يتبع المصدر من حيث الفولت.
حسنا هذا المنفذ PORT سواء كان دخول أم خروج، فلابد من مسجل ما فى مكان ما يحتوى البيانات الخاصة به ، أين يكون؟ و الأسوأ أنه سيحتاج لديكودر لتحليل عنوانه عندما تريد التعامل معه.
ابتكر أحدهم فكرة بسيطة و ظريفة و سهلة التعامل من حيث العتاد و البرمجة. قال لماذا لا نضعهم جميعا فى ذاكرة كالأصلية و نطلبها عند اللزوم. نظام الذاكرة ممتاز بالنسبة للدوائر المتكاملة لأنه يتناول قطعة مربعة صغيرة جدا و يقسمها لخانات متناهية الصغر و يطالها بالصف و العمود إذن لا نكرر العتاد لكل مسجل هى مجموعة من 128 خانة ذاكرة أو غيره طبقا للتصميم و كل خانة منها 8 بت كالذاكرة الأصلية ولكن إحداها للمنفذ " أ" و الآخر للمنفذ " ب" وهكذا و يمكن أيضا وضع كل المؤقتات "تايمر" Timers فيها ، و التايمر 16 بت يشغل خانتين متجاورتين .
أيضا أحدها يمكن أن يكون للمراكم الأساسى و آخر لكل مسجل أو مراكم و أيضا مؤشر الرصة SP السابق الخ.
هذه الذاكرة أسمتها كل من إنتيل و ميكروتشيب SPECIAL FUNCTION REGISTERS
الآن يمكننا المقارنة بين أشهر رقمين و هما PIC16F877A و عائلة AT89c5x هذه الصورة تضعهما بجوار بعض لتوضيح الفروق، وقد وضعت لون مختلف لكل بوابة PORT

يمكننا أن نلخص الفروق فى الجدول التالى


سنناقش هذا الجدول بالتفصيل المرة القادمة إن شاء الله


احصائية الشكر والاعجاب - 4 شكراً, 0 عدم اعجاب, 4 اعجاب
شكراً ناصرالموسوي, احمد شهيد جواد, عبدالله حجازى, سعيد قادر ( شكر العضو على هذه المشاركة )
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:53 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025