Microcontroller1


(system) #1

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

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





ماهو الفرق بين الميكرو كنترولر والميكروبروسيسور؟

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

- يتكون الميكروبروسيسور من وحدة معالجه مركزيه CPU

- وحدتي ربط لربط المعالج مع الوسط الخارجي Peripheral I/O Ports

- ذاكره عشوائيه صغيره RAM, كما توجد ايضا ذاكره صغيره جدا لحفظ جزئ صغير من البرنامج,وعادة تكون القراءه والكتابه من والي ال EEPROM

وتتكون وحدتي الاتصال من جزئين:-


1- البيانات Data Lines


هي مدخل البيانات ويتم ايصالها بالمعالج لمعالجتها,ويمكن ان يكون المدخل 8 او 16 او 32 مدخل (pin) علي حسب نوع المعالج, وهذه البيانات عادة تكون مخزنه فالذاكره المساعده الخارجيه.


2- العناوين Address Lines

وتكون مخرج من المعالج , ترسل عليها عناوين المعلومات الموجوده فالوسط الخارجي (الذاكره المساعده مثلا),يضع المعالج العنوان علي شكل 8 او 16 او 32 بت ,ثم يقوم بقراءة المعلومات عن طريق مدخل البيانات Data Lines .ومن اشهر معالجات الميكروبروسيسور

- 68000 من شركة Motorola

- والمعالج Z80


باختصار: الميكروبروسيسور لا يحتوي بداخله علي ذاكره , لذلك يحتاج فالغالب الي ذواكر مساعده مثل

EEPROM -ROM- EEPROM

ثانيا : الميكروكنترولرMicrocontroller

هو عباره عن تطوير للميكروبروسيسورحيث تم وضع جميع المكونات الاتيه في شريحه واحده مدمجه

1- وحدة المعالجه المركزيه CPU

2- ذاكره عشوائيه RAM

3- ذاكره للقراءه والكتابه EEPROM

4- Peripheral I/O Unites والتي تربط بين المعالج والوسط الخارجي

[COLOR=blue] وفي بعض الاحيان يحتاج المعالج الي ذاكره اضافيه عندما تكون كمية المعلومات المراد تخزينها اكبر من سعة الذاكره الداخليه للمعالج.

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

1- وحدة الذاكره Memory unit


هي احد اجزاء الميكروكنترولر والمسئوله عن تخزين البيانات بداخلها .


تبدا الذاكره بترتيب البيانات بداخلها في اماكن معينه حيث يكون لكل مكان فيها عنوان محدد حتي يكون من السهل استرجاع البيانات منها.

وحيث ان الذاكره تستخدم لكتابة البيانات فيها او القراءه منها لذلك يوجد بداخلها BUS لتحديد ما اذا كانت العمليه قراءه او كتابه.


كما يوجد ايضا خطوط اخري مثل:-


خط البيانات data bus


تتبادل الذاكره البيانات مع وحدة المعالجه المركزيه حسب نوع العمليه اذا كانت قراءه اوكتابه.

عند القراءه يتم ارسال البيانات من الذاكره الي خط البيانات ويتم قرائتها بواسطة وحدة المعالجه المركزيه.

عند الكتابه يتم اخذ البيانات الموجوده علي خط البيانات ثم يتم وضعها في اماكنها بالذاكره علي حسب العناوين التي تحددها وحدة المعالجه.


خط العناوين address bus


يكون لهذا الخط اتجاه واحد ويكون من وحدة المعالجه الي الذاكره وليس العكس,ويتم ارسال العناوين المطلوب الكتابه فيها او القراءه منها بواسطة وحدة المعالجه المركزيه.



2-وحدة المعالجه المركزيه CPU

وهي اختصار Central Processing Unit

وتتكون من جزئين:

- وحدة الحساب والمنطق Arthimatic Logic Unit


وهي المسئوله عن اجراء العمليات الحسابيه مثل الجمع والطرح والضرب والقسمه وايضا تستخدم لاجراء العمليات المنطقيه.

- Registers

وهي تستخدم لتخزين البيانات تخزين مؤقت حتي يتم نتنفيذها بوحدة الحساب والمنطق.


- BUS


وهو عباره عن مجموعة الاسلاك التي تستخدم لنقل الاشاره بين اجزاء الميكروكنترولر وتنقسم الي ثلاث انواع:


-Address Bus


ويتم استنتاج عرض الBus من هذه المعادله

2^n=memory size

حيث ال n تعبر عن عرض الBus .

- Data Bus

يستخدم لنقل البيانات من الذاكره الي وحدة المعالجه المركزيه والعكس.

- Control Bus

تستخدم لنقل اشارات التحكم المختلفه من وحدة المعالجه المركزيه الي الميكروكنترولر ولايسمح بالعكس.


- وحدات الادخال والاخراج I/O Units

وتعرف باسم port وتستخدم لربط الميكروكنترولر بالعالم الخارجي,وتستخدم كانها اماكن فالذاكره حيث يضع بها الميكروكنترولر البيانات حتي يقوم الجهاز الخارجي الموصل بها باخذها.


- Timer Unit

تنظم العمليات التي تقوم بها وحدة المعالجه المركزيه وهي تقوم بتنفيذ امر واحد فالثانيه,وتعتمد سرعة الميكروكنترولر علي هذه الوحده.


- Serial Communication

هي نوع من انواع الاتصال بالعالم الخارجي والتي تسمح بنقل البيانات لمسافه اكبر.

- Watchdog

يستخدم زر restart او reset فالكمبيوتر عند توقفه ولكن لا يوجد مثل هذا الزرفالميكروكنترولر.

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

- ADC

analog to digital converter

يعمل الميكروكنترولر بالنظام الرقمي(digital) ولكن في بعض الاحيان قد تصل اليه الdata في شكل analog مثل سرعات المواتير ودرجات الحراره ,لذلك تستخدم الADC لتحويل البيانات الي اشاره يفهمها الميكروكنترولر.

وهذا هو الشكل العام للميكروكنترولر ومكوناته الداخليه

- Program

هو عباره عن مجموعه من الاوامرلتنفيذ تعليمات محدده

ويمكن صياغه هذه البرامج بالعديد من اللغات غير عالية المستوي مثل Assembler او عالية المستوي مثل c

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

اولا سوف نذكر بعض الملاحظات علي هذا النوع

- هذا النوع هو 8-Bit ميكروكنترولروتركيبه يكون من النوع RISC ويعرف ايضا باسم Harvard


ويكون الشكل العام لهذا التركيب كما هو موضح

ويوجد نوع اخر من تركيب الميكروكنترولات يسمي von-Neumann اوCISC

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

ويتضح الفرق بين النوعين من الرسم, ولمزيد من التوضيح :-

النوع الاول Harvard هو الاحدث وهو يعمل علي زيادة سرعة الميكروكنترولر وذلك بسبب فصل باص البيانات عن باص العناوين.

اما فالنوع الاخر Neumann يكون الباصان موجودين معا وتنتقل البيانات اوالتعليمات التي يتم تنفيذها مع البرنامج واحده ثم الاخري علي هذا الباص وهذا يتسبب في بطئ وحدة المعالجه المركزيه.

وكلمة RISC هي اختصارReduced Instruction Set Computer

ومعناها ان عدد التعليمات التي يتم تخزينها في هذا النوع قليل وتصل الي 35 تعليمه.

اما كلمة CISC فهي اختصار Complex Instruction Set Computer


- ذاكرة البرنامج


وتكون من النوع Flash اي يمكن بسهوله مسح ما عليها من بيانات واعادة الكتابه عليها مره اخري

والبيانات الموجوده عليها لايمكن استرجاعها اذا حدث انقطاع فالتيار الكهربي,وحجمها 1000 كلمه والكلمه تساوي 2 بايت

- EEPROM

يخزن بها بيانات وتعليمات الميكروكنترولر ولا يتم ازالة ما بها عند فصل التيار الكهربي, وهي ذاكرة للقراءه فقط, وحجمها 64 بايت.


- RAM

تستخدم ايضا لتخزين بيانات الميكروكنترولروالتي يستخدمها اثناء تنفيذه للبرنامج, مثل البيانات المؤقته التي توضع عند مداخل ومخارج الميكروكنترولر حتي تستخدمها الاجهزه المتصله به,وحجمها 64 بايت.

وهذا الميكروكنترولر له بورتان:-

1- PORTA وبه 5 ارجل.

2- PORTB وبه 8 ارجل.

- FREE-RUN TIMER


وهو register موجود داخل الميكروكنترولر ويقوم بالعد بدا من صفر وحتي 255 ويخصص زمن محدد بين كل عده والعده التي تليها

[/color]


(محمد حمدى ناصف) #2



مجهود رائع سلمت يداك

(system) #3

معلومات قيمه شكراااااااااااااااااااااااااااااااااااا


(ابو احمد عصام) #4

ايه الجمال و الحلاوة دي


(kraim sabaa) #5

THANK YOUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU


(ماجد عباس محمد) #6

أخى
شكرا جزيلا على هذا المجهود الضخم جعله الله فى ميزان حسناتك

معذرة لى بعض الملحوظات أوزها فيما يلى

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

- يتكون الميكروبروسيسور من وحدة معالجه مركزيه CPU

- وحدتي ربط لربط المعالج مع الوسط الخارجي Peripheral I/O Ports


لو احتوى الميكرو بروسيسور وحدات I/O اصبح ميكرو كونتروللر فهو فقط يتحكم فى متى تعمل هذه الوحدات بتقنيات لها مسميات اخرى مثل DMA الخ

- ذاكره عشوائيه صغيره RAM, كما توجد ايضا ذاكره صغيره جدا لحفظ جزئ صغير من البرنامج,وعادة تكون القراءه والكتابه من والي ال EEPROM


هل يوجد فى حاسبك وحدات EEPROM للقراءة و الكتابة؟ هذه فى الميكرو كونتروللر

وتتكون وحدتي الاتصال من جزئين:-

1- البيانات Data Lines

هي مدخل البيانات

[COLOR=blue]
و مخرجها أيضا فمنها تذهب لكافة الوسائط المحيطية

ويتم ايصالها بالمعالج لمعالجتها,ويمكن ان يكون المدخل 8 او 16 او 32 مدخل (pin) علي حسب نوع المعالج, وهذه البيانات عادة تكون مخزنه فالذاكره المساعده الخارجيه.
[/color]


حاليا 64 بت

2- العناوين Address Lines

وتكون مخرج من المعالج , ترسل عليها عناوين المعلومات الموجوده فالوسط الخارجي (الذاكره المساعده مثلا),يضع المعالج العنوان علي شكل 8 او 16 او 32 بت ,ثم يقوم بقراءة المعلومات عن طريق مدخل البيانات Data Lines .ومن اشهر معالجات الميكروبروسيسور

- 68000 من شركة Motorola

- والمعالج Z80


و ماذا عن الموجود فى حاسبك الآن؟؟؟

باختصار: الميكروبروسيسور لا يحتوي بداخله علي ذاكره , لذلك يحتاج فالغالب الي ذواكر مساعده مثل

EEPROM -ROM- EEPROM

نسيت اهمها وهى العشوائية RAM
اخى
كم جيجا ذاكرة عشوائية على حاسبك؟

ثانيا : الميكروكنترولرMicrocontroller

هو عباره عن تطوير للميكروبروسيسورحيث تم وضع جميع المكونات الاتيه في شريحه واحده مدمجه

1- وحدة المعالجه المركزيه CPU

2- ذاكره عشوائيه RAM

3- ذاكره للقراءه والكتابه EEPROM

4- Peripheral I/O Unites والتي تربط بين المعالج والوسط الخارجي

[RIGHT][COLOR=blue] وفي بعض الاحيان يحتاج المعالج الي ذاكره اضافيه عندما تكون كمية المعلومات المراد تخزينها اكبر من سعة الذاكره الداخليه للمعالج.

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

1- وحدة الذاكره Memory unit

هي احد اجزاء الميكروكنترولر والمسئوله عن تخزين البيانات بداخلها .


تبدا الذاكره بترتيب البيانات بداخلها في اماكن معينه حيث يكون لكل مكان فيها عنوان محدد حتي يكون من السهل استرجاع البيانات منها.

وحيث ان الذاكره تستخدم لكتابة البيانات فيها او القراءه منها لذلك يوجد بداخلها BUS لتحديد ما اذا كانت العمليه قراءه او كتابه.

[/color][/right]


معذرة لا تقوم الذاكرة بترتيب اى شيء فحتى المبرمج لا يملك وسيلى لتخرين بيانات فيها لكن البرنامج الذى يكتب هو ما يضع ما يؤمر حيثما يؤمر

كما يوجد ايضا خطوط اخري مثل:-

خط البيانات data bus

تتبادل الذاكره البيانات مع وحدة المعالجه المركزيه حسب نوع العمليه اذا كانت قراءه اوكتابه.

عند القراءه يتم ارسال البيانات من الذاكره الي خط البيانات ويتم قرائتها بواسطة وحدة المعالجه المركزيه.

عند الكتابه يتم اخذ البيانات الموجوده علي خط البيانات ثم يتم وضعها في اماكنها بالذاكره علي حسب العناوين التي تحددها وحدة المعالجه.


خط العناوين address bus



يكون لهذا الخط اتجاه واحد ويكون من وحدة المعالجه الي الذاكره وليس العكس,ويتم ارسال العناوين المطلوب الكتابه فيها او القراءه منها بواسطة وحدة المعالجه المركزيه.

-Address Bus

ويتم استنتاج عرض الBus من هذه المعادله

2^n=memory size

حيث ال n تعبر عن عرض الBus .

- Data Bus

يستخدم لنقل البيانات من الذاكره الي وحدة المعالجه المركزيه والعكس.

- Control Bus

تستخدم لنقل اشارات التحكم المختلفه من وحدة المعالجه المركزيه الي الميكروكنترولر ولايسمح بالعكس.
- وحدات الادخال والاخراج I/O Units

وتعرف باسم port وتستخدم لربط الميكروكنترولر بالعالم الخارجي,وتستخدم كانها اماكن فالذاكره حيث يضع بها الميكروكنترولر البيانات حتي يقوم الجهاز الخارجي الموصل بها باخذها.

- Timer Unit

معذرة تسمى Control Unit فهى ما تتحكم فى تتابع الأحداث و تحلل البرنامج و تنفذ خطواته
يحتوى الميكرو على وحدة Timer0,Timer1,Timer2 أو اكثر حسب تصميمه وهذه قد تستخدم فى البرنامج وقد لا تستخدم وهى ذات وظيفة مزدوجو إما مؤقت Timer أو عداد Counter حيث تستخدم لعد احداث خارجية لكنها قد لا تستخدم ولا تؤثر ذلك على عمل الميكرو

تنظم العمليات التي تقوم بها وحدة المعالجه المركزيه وهي تقوم بتنفيذ امر واحد فالثانيه,وتعتمد سرعة الميكروكنترولر علي هذه الوحده.

قد تصل الى 35 مليون امر فى الثانية وليسم امرا واحدا و غلا فلا جدوى منه
[/right]

- Serial Communication

هي نوع من انواع الاتصال بالعالم الخارجي والتي تسمح بنقل البيانات لمسافه اكبر.

- Watchdog

يستخدم زر restart او reset فالكمبيوتر عند توقفه ولكن لا يوجد مثل هذا الزرفالميكروكنترولر.

معذرة لا علاقة بين RESET و Watchdog timer وقد يتواجد الإثنان كثيرا معا فى ميكرو واحد
الأول يستخدم لتحديد بدء الميكرو و كان ضروريا فى الطرز الأولية لكن حاليا تستشعر بدء التغذية فتنفذ RESET ذاتيا و لكن قد يحتاج إليه لإعادة البدء دون الحاجة لقطع التيار عن الجهاز ككل فقد يسبب قطع التيار مشاكل منت نوع آخر لملحقات أخرى
أما Watchdog timer فهو مختلف حيث قد تخشى أن يلتصق الميكرو فى روتين ما ولا يخرج منه أو ينتظر رد من جهاز محيط لفترة أطول مما ينبغى هنا تضع تعليمات لتفعيل هذه الخاصية و عند انقضاء زمنها دون تصفير “إعادة للصفر” للمؤقت الخاص بها ، يقوم بعمل RESET ذاتى وقد يكون لها عنوان مختلف عن عنوان زر RESET أيضا

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

كلام معذرة غير مفهوم

- ADC

analog to digital converter

يعمل الميكروكنترولر بالنظام الرقمي(digital) ولكن في بعض الاحيان قد تصل اليه الdata في شكل analog مثل سرعات المواتير ودرجات الحراره ,لذلك تستخدم الADC لتحويل البيانات الي اشاره يفهمها الميكروكنترولر.

وهذا هو الشكل العام للميكروكنترولر ومكوناته الداخليه

- Program

هو عباره عن مجموعه من الاوامرلتنفيذ تعليمات محدده

ويمكن صياغه هذه البرامج بالعديد من اللغات غير عالية المستوي مثل Assembler او عالية المستوي مثل c

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

اولا سوف نذكر بعض الملاحظات علي هذا النوع

- هذا النوع هو 8-Bit ميكروكنترولروتركيبه يكون من النوع RISC ويعرف ايضا باسم Harvard


ويكون الشكل العام لهذا التركيب كما هو موضح

أخى
معذرة هناك خلط بين مفهوم RISC/CISC و بين HARVARD/Von-Neumann

رجاء مراجعة هذا الموقع للفرق بين [COLOR=blue]RISC/CISC
http://en.wikipedia.org/wiki/Reduced_instruction_set_computing
وهذا النظام كما ستجد بالموقع مستخدم مى الميكرو بروسيسور و الميكرو مونتروللر على حد سواء بل فى كثير من الحاسبات الفائقة مثلا من انتاج SUN

و رجاء مراجعة هذا الموقع للفرق بين [/color][COLOR=blue]HARVARD/Von-Neumann
http://en.wikipedia.org/wiki/Harvard_architecture
و نفس الكلام أيضا مطبق هنا

إن كان البيك يحتوى خاصيتين أنه RISC و أنه HARVARD فهذا لا يعنى ان هناك ربط بين الخاصيتين فيمكن عمل RISC بطريقة [/color]Von-Neumann والعكس

النوع الاول Harvard هو الاحدث وهو يعمل علي زيادة سرعة الميكروكنترولر وذلك بسبب فصل باص البيانات عن باص العناوين.

اما فالنوع الاخر Neumann يكون الباصان موجودين معا وتنتقل البيانات اوالتعليمات التي يتم تنفيذها مع البرنامج واحده ثم الاخري علي هذا الباص وهذا يتسبب في بطئ وحدة المعالجه المركزيه.

وكلمة RISC هي اختصارReduced Instruction Set Computer

ومعناها ان عدد التعليمات التي يتم تخزينها في هذا النوع قليل وتصل الي 35 تعليمه.

هناك اكثر بكثير من هذا مثلا اتميل صنعت ATMEGA أيضا وبه 131 تعليمة

اما كلمة CISC فهي اختصار Complex Instruction Set Computer

- ذاكرة البرنامج

وتكون من النوع Flash اي يمكن بسهوله مسح ما عليها من بيانات واعادة الكتابه عليها مره اخري

والبيانات الموجوده عليها لايمكن استرجاعها اذا حدث انقطاع فالتيار الكهربي,وحجمها 1000 كلمه والكلمه تساوي 2 بايت

[RIGHT]أخى
ذاكرة فلاش هى خاصية لنوع من الذاكرة لا تمحى بانقطاع الكهرباء لكن لا يمكن محو خانة واحدة فقط منها و يلزم محو جزء منها بكاملة ثم إعادة كتابته مرة أخرى لتعديل خانة منه

- EEPROM

يخزن بها بيانات وتعليمات الميكروكنترولر ولا يتم ازالة ما بها عند فصل التيار الكهربي, وهي ذاكرة للقراءه فقط, وحجمها 64 بايت.
أخى
الداتاشيت يقول انها 64 خانة فقط وهى Data وليست برنامج!!!


- RAM

تستخدم ايضا لتخزين بيانات الميكروكنترولروالتي يستخدمها اثناء تنفيذه للبرنامج, مثل البيانات المؤقته التي توضع عند مداخل ومخارج الميكروكنترولر حتي تستخدمها الاجهزه المتصله به,وحجمها 64 بايت.

وهذا الميكروكنترولر له بورتان:-

1- PORTA وبه 5 ارجل.

2- PORTB وبه 8 ارجل.

- FREE-RUN TIMER


وهو register موجود داخل الميكروكنترولر ويقوم بالعد بدا من صفر وحتي 255 ويخصص زمن محدد بين كل عده والعده التي تليها

عند تكملة الموضوع رجاء التأكد من البيانات و الرجوع للداتاشيت
http://www.alldatasheet.com
اطتب فيه رقم الميكرو و انزل الملف و اقرأ ما به


(system) #7

السلام عليكم … اخوتي واحبتي في الله وفقكم الله وزاد في علمكم (اللهم
زدني علما ) ولك منا الف شكر وجزاك الله خيرا على هذه المشاركة