تعاون علمي
لمحة هندسية:
الهندسة الطبية هو توظيف لكل المفاهيم الهندسية لإيجاد حلول للمشاكل الطبية بشكل تقني.
  • اخر المشاركات

الفرق بين المعالجات و المتحكمات الصغرية ولمحة عنها

المواضيع والدروس والسلاسل والشروح المرتبطة بالقسم

الفرق بين المعالجات و المتحكمات الصغرية ولمحة عنها

مشاركةبواسطة ahmedheskol في الخميس أغسطس 12, 2010 2:10 pm

الفرق بين المعالجات والمتحكمات الصغرية (أو المصغرة) ولمحة عنها

- المعالجات الصغرية أو المصغرة Micro Processor :
يستخدم مصطلح المعالج الصغري CPUللدلالة على وحدة المعالجة المركزية، وهو جزء نظام المعالجة الذي يقوم بمعالجة المعطيات وجلب التعليمات من الذاكرة وفك ترميزها ثم تنفيذها, يتألف من وحدة الحساب والمنطق و المسجلات ووحدة التحكم والمكدس ..الخ.
إن المعالجات الصغرية لا تستطيع بمفردها العمل في الأنظمة المختلفة فهي تعتمد على مبدأ العنونة عند التعامل مع معطيات الدخل أو الخرج لذلك تتضمن الأنظمة التي تحوي معالجات مصغرة على المواسك ومفككات الترميز لمسك وفك ترميز عناوين الدخل و الخرج ,كما تحتاج إلى ذواكر خارجية سواء EEPROM أو RAM.
يمكنك أن تجد المعالج المصغر في الأجهزة الأكثر تعقيداً والتي تتطلب سرعة كبيرة في المعالجة التي قد تصل إلى 5GHz أو أكثر كما في الحواسيب و الهواتف النقالة الحديثة الخ..
- المتحكمات المصغرة Micro Controller:
عندما يستخدم المعالج الصغري الموجود ضمن نظام ما لأغراض التحكم مثلاً, فقد وجدنا أننا سنحتاج إلى رقاقات إضافية. يدعى تكامل المعالج الصغري مع الذاكرة وأجهزة التخاطب دخل/خرج وبعض الأجهزة الملحقة مثل المؤقتات على رقاقة واحدة باسم المتحكم الصغري. لقد انتشر حديثاً استخدام المتحكمات الصغرية بشكل كبير في العديد من المجالات الهامة. وتتألف البنية الداخلية للمتحكمات الصغرية بشكل عام من:
وحدة المعالجة المركزية CPU, وحدة الحساب و المنطق ALU, الذواكر Memory,المسجلات Registers, الممرات Bus, وحـدة لتوليد نبضات سـاعة clk, المؤقتات Timerوقـد يحوي على المبدلات ADC أو DAC, ومنافذ الربط التسلسلة Tx-Rx أو المسرى التسلسلي ذي الأربعة خطوط SPI أو المسرى التسلسلي ذي الخطين I2C, من أجل الربط مع المتحكمات الصغرية الأخرى أو أحد الأنظمة الأخرى عبر أحد البروتوكولات التسلسلية لدعم و تشكيل شبكات الأنظمة المضمنة Network Embedded systems. يمكن أن نجد أن للمتحكمات الصغرية العديد من المميزات التي قد لا تتمتع بها بقية العناصر الذكية منها:
• رخص ثمنه بالمقارنة مع بقية العناصر الذكية.
• تصغير الدارة المطبوعة للنظام بسبب اختصار الذواكر وأجهزة الدخل /خرج في شريحة واحدة.
• قربه من لغة الآلة (أي سرعة في الأداء ) بسبب برمجته بلغة الـAssembly وحديثاً يتم برمجته بلغات عالية المستوى مثل الـBasic – C++ g الخ ..
• توفّر برامج المحاكاة و الديباغر المتقدمة مما يسهل عملية البرمجة وسرعة البناء والتطوير.
إن معظم المتحكمات الحديثة يمكن التعامل معها أو برمجتها فورياً عن طريق المبرمجات, بدون نزع المتحكم من الدارة الإلكترونية من خلال تقنية ISP " In System Programming " وبالتالي يمكن التعديل على البرنامج المكتوب بسهولة.
ولابد من الإشارة إلى أن المتحكمات الصغرية لا تمتلك الميزات التي قد يتمتع بها الحاسب من إظهارات وسهولة برمجة والمحاكاة الفورية للبرنامج وكذلك سعة الذاكرة وسرعة المعالجة.
www.4electron.com
1-6-1- متحكمات AVR :
تعتبر المتحكمات الصغرية AVR أحد منتجات شركة Atmel الأمريكية, وقد تم تطويرها في مختبرات الشركة الموجودة في النرويج, وتعتبر من أكثر المتحكمات الصغرية انتشاراً لما تتميز به من العديد من الميزات التي جعلتها مناسبة للعديد من التطبيقات.

بالمقارنة مع المتحكم 8051 فإنه يمكننا القول إنه لكي نحصل على أداء لهذا المعالج يماثل أداء المتحكم AVRيعمل على هزاز ذي تردد 8MHz ,فإن المعالج 8051 يجب أن يوصل إلى هزاز ذي تردد 244MHz ... و ذلك بالطبع لن يحدث .
يمكن تحميل البرنامج إلى المتحكم بسهولة عن طريقة مبرمجة تفرعية أوتسلسلية , وتعتبر ميزة (In system programming) إحدى الميزات الهامة التي تتمتع بها هذه المتحكمات و هي إمكانية تحميل البرنامج إلى المتحكم دون نزعه من من الدارة المطبوعة عن طريق أقطاب خاصة معدة لهذا الغرض، وذلك بالطبع يوفر الوقت الذي تستغرقه هذه العملية ويقلل من إمكانية العطب للشريحة بسبب تكرار نزعها من الدارة المطبوعة وبرمجتها وتحميل البرنامج من جديد.
توفير الطاقة ميزة أخرى من ميزات هذا المتحكم, فهذه المتحكمات يمكنها العمل عند جهد تغذية يتراوح بين 1.8v حتى 5.5v, مما يؤمن إمكانية استثماره في العديد من الأنظمة المضمنة Embedded system خاصة تلك التي تتطلب توفيرا في الطاقة خاصة في نمط الطاقة المنخفضة .

2-6-1- البنيـة Harvard:
كما أن AVR مبنية بالإعتماد على تقنية Harvard وهي تقنية تعتمد على الفصل بين ذاكرة البيانات وذاكرة التعليمات ولكل من الذاكرتين خطوط عنونة منفصلة (وبالتالي عناوين فيزيائية منفصلة) وكذلك الأمر بالنسبة لخطوط التحكم و ممر المعطيات. وذلك يقودنا إلى فائدتين اثنتين:
1. يمكن أن تحدث عملية قراءة التعليمات و قراءة (أو كتابة) البيانات في نفس اللحظة.
2. يمكن لطول كلمة البيانات أن يكون مختلفاً عن طول كلمة التعليمات بسبب عدم اشتراك البيانات والتعليمات في نفس الذاكرة.

بالمقارنة مع البنية الأخرى von Neumann فإن هذه الأخيرة منظمة بحيث لا يوجد فصل بين ذاكرة التعليمات وذاكرة البيانات ولهما نفس خطوط العنونة ونفس ممر المعطيات, بالتالي فإن الفائدتين اللتين تم ذكرهما سابقاً لا توفرهما البنية von Neumann مما يجعل بنية Harvard ذات أداء أعلى من حيث سرعة المعالجة وتنفيذ البرنامج.

3-6-1- تقنية النواة من النوع RISC :
لقد صممت وحدة المعالجة المركزية في المعالجات الصغرية والمتحكمات الصغرية بالأساس لكي تتعامل مع التعليمات بلغة التجميع Assembly language التي تتحول بدورها بواسطة برامج حاسوبية خاصة إلى لغة الآلة Machine code. وتعتمد طريقة التعامل مع هذه التعليمات على تقنية النواة الداخلية لوحدة المعالجة المركزية.
www.4electron.com
تستخدم المتحكمات الصغرية Atmel AVR تقنية نواة من النوع RISC التي تؤمن عادة إنجاز تعليمة خلال دورة ساعة واحدة. في حين أن التقنية من النوع CISC تؤمن انجاز تعليمة واحدة خلال عدة دورات ساعة.

و المصطلح RISC هو اختصار للجملة Reduced Instruction Set Computer أي تقليل مجموعة التعليمات المستخدمة و الاقتصار على التعليمات الأساسية بهدف تسهيل عملية كتابة البرنامج, ويتراوح عددها من 35 إلى 150 تعليمة بلغة التجميع. ولهذه التقنية ميزة أخرى وهي أن تقليل عدد التعليمات سيؤدي إلى تقليل العتاد المخصص لكل تعليمة مما يؤدي إلى تخفيض الطاقة المستهلكة.

أما المصطلح CISC فهو اختصار للجملة Complex Instruction Set Computer الذي يشير إمكانية أن يكون لكل عملية منطقية او حسابية تعليمة خاصة (كما في اللغات عالية المستوى)، وتحوي حوالي 1000 تعليمة كما في المعالجات الصغرية التي تنتجها شركة Intel وشركة AMD، مما يؤدي إلى تقليل طول البرنامج المكتوب و زيادة الأداء.

لقد صممت النواة الداخلية للمتحكمات AVR لكي تدعم مفسراتCompilers اللغات عالية المستوى وخاصة مفسرات C أوBasic . , وواكب ذلك دعم مستمر من شركة Atmel لإنتاج مفسرات ومنها ما هو مفتوح المصدر open source compilers كبيئة gcc التي تعتمد على اللغة C , وبسبب كونها مفتوحة المصدر فإنها تعتبر بيئة غنية جداً و متطورة بصورة متسارعة.

4-6-1- عائلات متحكمات AVR:
تنقسم متحكمات AVR الأساسية إلى أربع عائلات أساسية:
1. tinyAVR
2. AVR (Classic AVR)
3. megaAVR
4. XmegaAVR

قامت شركة Atmel في العام 1997 بإنتاج متحكمات AVR التي سميت فيما بعد بمتحكمات AVR الكلاسيكية وهي تبدأ بـ AT90 وكمثال على ذلك AT90s2313. وفي العام 2000 قامت الشركة بإنتاج عائلتين جديدتين هما العائلة tiny التي تبدأ بالرمز ATtiny و العائلة MEGA و التي تبدأ بالرمز ATmega وبعد عدة سنوات قامت الشركة بإنتاج العائلة الأكبر Xmega.

تحوي متحكمات AVR بشكل عام على عدة وحدات إضافية من ذواكر من النوع EEPROM ، SRAM ووحدات التبديل التشابهي الرقمي (ADC) وبالعكس، كما وتحتوي على عدة وحدات للاتصال التسلسلي UART , USART , SPI , I2C وغيرها من المؤقتات ووحدات الدخل وإالخرج. تملك متحكمات AVR ميزة BROWN - OUT DETECTION عند انخفاض جهد التغذية أثناء برمجته حيث تصبح جميع أطرافه في حالة ممانعة عالية.كما تدعم هذه المتحكمات عدة أنماط من الطاقة التحتية. كما أن هناك ثلاثة مستويات للقفل: المستوى الأول: يمكن قراءة الكود ويمكن تغييره.
المستوى الثاني: إمكانية قراءة الكود لكن لا يمكن تغييره.
المستوى الثالث: لا يمكن قراءة الكود و لا يمكن تغييره.
متحكمات TinyAVR عادة ما تحوي على عدد أقطاب ومواصفات أقل من متحكمات megaAVR وهذا ما ينعكس على الحجم و السعر. وقد حافظ المصنع على العديد من أفراد العائلة الكلاسيكية فمثلاً المتحكم AT90s2313 يقابل المتحكم ATtiny2313 في العائلة tiny ولكلا المتحكمين نفس ترتيب ووظائف الأقطاب لكن مع اختلاف في أمرين أساسيين : الأول هو أن المتحكم ATtiny2313 يملك وظائف إضافية لأقطابه. و الثاني أن المتحكم ATtiny2313 يحتوي على هزاز داخلي يمكن من خلال تشغيله الاستغناء عن الهزاز.

قامت ATMEL في العام 2003 بإنتاج أفراد من عائلة AVR مصممة لإنجاز مهام خاصة كما في متحكمات USB AVR التي تدعم التعامل مع منفذ USB , و نذكر أيضا المتحكمات التالية ذات الأغراض الخاصة.
- RF AVR.
- SECURE AVR.
- LCD AVR.
- CAN AVR.
- FPGA AVR.
- DVD AVR.

أطلقت ATMEL في العام 2009 فرد جديد من أفراد العائلة AVR وهو Xmega الذي يملك نفس مجموعة التعليمات لعائلة AVR, لكن مع عدد من الميزات الإضافية لعل أهمها هو استقلالية عمل وحدة المعالجة المركزية عن الوحدات الطرفية مما يزيد من أداء المعالجة و إضافة أربعة قنوات DMA Conroller تزيد من زمن استجابة المتحكم، كما أن تردد الكريستالة يمكن أن يصل إلى 32MHz وبالتالي تستطيع وحدة المعالجة المركزية تنفيذ 32MIPS، كما يملك Xmega مبدل ADC عالي السرعة بدقة 12bitبالإضافة إلى مبدل DAC عالي السرعة بدقة 12bit وهي الميزة الرائعة غير المتوفرة عند باقي أفراد العائلة.

و الجدير ذكره أن مجموعة التعليمات و توزع الذاكرة نفسه لكل أنواع عائلة AVR، وهذه الفروقات لا تؤثر أبداً على أدائها..

5-6-1- البرمجة باستخدام الجهد العالي HV:
تستخدم هذه الطريقة عند تطبيق جهد 12v على قطب reset وتستخدم عند إعادة برمجة أو اكتشاف متحكم مقفول (من خلال وضع بت الفيوز RSTDSBLE ),كما أن هذه الطريقة تجنب الحاجة إلى استخدام external oscillator ,لا يمكن استخدام ISP عند البرمجة باستخدام الجهد العالي وبالتالي يجب نزع المتحكم عن الدارة ثم برمجته.

6-6-1-البرمجة التسلسلية :
الأقطاب الضرورية عند البرمجة بطريقة ISP التسلسلية في متحكمات AVR هي ,SCK,MISO,MOSI RESET بالإضافة إلى كل من GND و VCC. الأمر الهام الذي يجب توفره عند البرمجة بطريقة ISP هو توفر نبضات ساعة للمعالج.
كمثال : يمكن القول إن هناك خمسة مصادر لنبضات الساعة بالنسبة لمتحكم ATmega8 . حسب CKSEL0, CKSEL1, CKSEL2, CKSEL3 كما هو مبين في الجدول التالي :

2-1.gif


- كريستالة خارجية (المجال من 1010 إلى 1111).

2-2.gif
2-2.gif (4.64 KiB) شوهد 2160 مرات


- كرستالة خارجية ذات تردد منخفض 32.768 KHz (القيمة 1001).
أي نختار CKSEL3 و CKSEL0

2-3.gif
2-3.gif (4.64 KiB) شوهد 2160 مرات


- هزاز RC خارجي (المجال من 0101 إلى 1000) وها نحن أمام خيارين
الأول استخدام مكثفة خارجية حيث نختار CKOPT أي نجعله صفراً
الثاني استخدام مكثفة داخلية حيث لا نختار CKOPT أي نجعله واحداً

2-4.gif
2-4.gif (6.89 KiB) شوهد 2154 مرات


2-5.gif
2-5.gif (7.68 KiB) شوهد 2165 مرات


www.4electron.com
- هزاز RC داخلي (المجال من 0001 إلى 0100) وفق الجدول التالي

2-6.gif
2-6.gif (9.97 KiB) شوهد 2149 مرات

مصدر ساعة خارجي
بوضع القيمة 0000 أي نختار البتات الأربعة معا CKSEL0,CKSEL1,CKSEL2,CKSEL3

2-7.gif
2-7.gif (6.17 KiB) شوهد 2155 مرات


7-6-1-البرمجة التفرعية :
توجد طريقة أخرى للبرمجة هي البرمجة التفرعية حيث يتم استخدام المنفذ B و المنفذ D وفي هذه الحالة يتم تطبيق 12v على قطب RESET, في الحقيقة لايمكن استخدام Ponyprog مع البرمجة بطريقة HV لأن Ponyprog برمجية عامة للعديد من الأجهزة و المتحكمات في حين أن البرمجة بطريقة HV متوفرة مع مبرمجات أخرى خاصة بمتحكمات AVR مثل AVRdude و AVR studio الخ...
www.4electron.com
أما عن المبرمجة فتعتبر STK500 إحدى الأدوات التي تدعم البرمجة بطريقة HV وينصح باستخدامها من قبل المبتدئين إذا لم يكونوا على دراية كاملة ببتات الفيوز , تتوفر في الإنترنت العديد من المبرمجات المشابهة لـSTK500 ويمكن تجميعها بسهولة.
يارب .. من لنا معين سواك ..
صورة العضو الشخصيه
ahmedheskol
عضو شرف
 
مشاركات: 144
اشترك في: السبت أغسطس 22, 2009 10:10 am
مكان: سورية
الاختصاص: Control and Automation
النشاط في الموقع: Embedded control systems

Re: الفرق بين المعالجات و المتحكمات الصغرية ولمحة عنها

مشاركةبواسطة مازن في السبت أغسطس 14, 2010 2:06 pm

تشكر أخي أحمد على المقالة المتميزة في سلسلتك للنظم المضمنة، ومتابعون معك :thumbup: :thumbup:

ولكن بالنسبة لبتات الفيوز، فقد يصادف في بعض الأحيان أخطاء في تنفيذ البرنامج يعود سببها إلى خطأ في التعامل مع هذه البتات، فهل هناك طريقة ( حسب خبرتك ) لاكتشافها مباشرةً وتعديلها ؟؟

أجدد الشكر :thumbup:

سنبني معاً أكبر موقع علمي تخصصي عربي ومجاني ... عالم الإلكترون


يا الله ... مالنا غيرك يا الله



وأســـعدُ الناسِ بين الورى رَجُلٌ ------ تُقضَى على يده للناسِ حاجــــاتُ
قد ماتَ قومٌ وما ماتَتْ مكارِمُهم ------- وعاشَ قومٌ وهم بين الناسِ أمواتُ
صورة العضو الشخصيه
مازن
عضو شرف
 
مشاركات: 3180
اشترك في: الخميس سبتمبر 13, 2007 12:58 am
مكان: ســـوريـــا العديــّـــة
الاختصاص: الهندسة
النشاط في الموقع: تحرير المواضيع العلمية

Re: الفرق بين المعالجات و المتحكمات الصغرية ولمحة عنها

مشاركةبواسطة ahmedheskol في السبت أغسطس 14, 2010 9:04 pm

يا سيد ي مشكلة قفل المتحكمات ممكن حلها بدون أي صعوبة ...
فقط أحضر متحكما آخر , ثم اكتب برنامج لتوليد نبضات (أيا كان ترددها ولكن أنصح بأن يكون التردد كبيرا أكثر من 1Mega)
ثم قم بوصل القطب الذي يولد النبضات إلى مدخل النبضات XTAL1 ,وقم بوصل أقطاب البرمجة ثم شغل برنامج المبرمجة , أبدأ
بمسح البرنامج وغير الفيوزات إلى الشكل الصحيح. هذه الطريقة مضمونة انشاء الله.
يارب .. من لنا معين سواك ..
صورة العضو الشخصيه
ahmedheskol
عضو شرف
 
مشاركات: 144
اشترك في: السبت أغسطس 22, 2009 10:10 am
مكان: سورية
الاختصاص: Control and Automation
النشاط في الموقع: Embedded control systems

Re: الفرق بين المعالجات و المتحكمات الصغرية ولمحة عنها

مشاركةبواسطة Eng.Farouk في الأحد أغسطس 15, 2010 11:38 am

بارك الله فيك اخي احمد سلمت يمناك عالموضوع الممتاز!!!
ومَا من كاتبٍ إلا سيفْنَى *** ويبَقِى الدَّهرَ مَا كتَبَتْ يدَاهُ
فَلا تَكْتُبْ بكفِّكَ غيرَ خطٍّ *** يسرُّك في القيامةِ أنْ تَرَاهُ
صورة العضو الشخصيه
Eng.Farouk
عضو شرف
 
مشاركات: 1044
اشترك في: الخميس ديسمبر 25, 2008 10:22 pm
مكان: IRAQ
الاختصاص: الهندسة الكهربائية
النشاط في الموقع: خدمة عالم الالكترون

Re: الفرق بين المعالجات و المتحكمات الصغرية ولمحة عنها

مشاركةبواسطة ahmedheskol في الأحد أغسطس 15, 2010 8:42 pm

الشكر موصول لك استاذ فاروق

أود أن أشير إلى أنه من الأفضل أن يكون مولد النبضات ذو تردد قريب من 30KHz بدلا من (1M) لضمان احتمال أن يكون أن فيوز كريستالة التردد المنخفض هو السبب في عدم استجابة المتحكم

وإذا لم تنجح الطريقة السابقة فإن الخيار الأخير هو استخدام مبرمجة الجهد العالي في هذه الحالة يكون عدم استجابة المتحكم ناتجا عن الغاء قطب التصفير حيث يمكن
تحويل قطب resetلبعض المتحكمات إلى قطب IO و انتم تعلمون أن البرمجة التسلسلية تحتاج إلى قطب تصفير reset نطامي لذلك نجد أن المتحكم لا يستجيب و نقول أنه
مقفول (مع أن هذه العبارة غير دقيقة لأنه غير مقفول )


كما يمكن استخدام مبرمجات خاصة لهذا الغرض مثل استخدام مبرمجة اصلاح الفيوزات http://www.microcontrollerprog.com
يارب .. من لنا معين سواك ..
صورة العضو الشخصيه
ahmedheskol
عضو شرف
 
مشاركات: 144
اشترك في: السبت أغسطس 22, 2009 10:10 am
مكان: سورية
الاختصاص: Control and Automation
النشاط في الموقع: Embedded control systems


العودة إلى القسم العلمي

المتواجدون الآن

المستخدمون المتصفحون لهذا المنتدى: لا يوجد أعضاء مسجلين متصلين و 6 زائر/زوار

منتديات بورصات