آشنايي با ميكروكنترلر ها
:مقدمه
:گرچه كامپيوترها تنها چند دهه اياست كه با ما همراهند با اين حال تأثير عميق آنها بر زندگي ما با تأثير تلفن ، اتومبيل و تلويزيون رقابت مي كند
. همگي ما حضور آنها را احساس مي كنيم ، چه برنامه نويسان كامپيوتر و چه دريافت كنندگان صورت حساب هاي ماهيانه كه توسط سيستم هاي كامپيوتري بزرگ چاپ شده و توسط پست تحويل داده مي شود . تصور ما از كامپيوتر معمولا " داده پردازي " است كه محاسبات عددي را بطور خستگي ناپذير انجام مي دهد ، اما با انواعي از كامپيوتر ها برخورد مي كنيم كه وظايفشان را زيركانه و بطرزي آرام و كارآ و حتي فروتنانه انجام مي دهند و حتي حضور انها اغلب احساس نمي شود .دراين مجموعه ها كامپيوترها وظيفه ي
" كنترل " را در ارتباط با " دنياي واقعي " ، براي روشن و خاموش كردن وسايل و نظارت بر وضعيت آنها انجام مي دهند . ميكروكنترلرها ( برخلاف ميكروكامپيوترها و ريز پردارنده ها ) اغلب در چنين كاربردهايي يافت مي شوند .با وجود اينكه بيش از سي و هفت
– هشت سالي از تولد ريز پردازنده نمي گذرد ، تصور وسايل الكترونيكي و اسباب بازيهاي امروزي بدون آن كار مشكلي است . در سال 1971 شركت اينتل ، 8080 را بعنوان اولين ريزپردازنده ي موفق عرضه كرد . مدت كوتاهي پس از آن ، موتورولا ، RCA و سپس MOS Tecnology و Zilog انواع مشابهي را به ترتيب به نامهاي Z80 , 6502 , 1801 , 6800 عرضه كردند . گرچه اين مدارهاي مجتمع (IC ها ) به خودي خود فايده چنداني نداشتند اما بعنوان بخشي از يك كامپيوتر تك بورد (SBC) ، به جزء مركزي فراورده هاي مفيدي براي آموزش طراحي با ريزپردازنده ها تبديل شدند . از جمله ي اين SBC ها ميتوان به D2 موتورولا ، KIM-1 ساخت MOS Tecnology و SDK-85 متعلق به شركت اينتل نام برد .ميكروكنترلر قطعه اي شبيه ريزپردازنده است
. در 1976 اينتل 8748 را بعنوان اولين قطعه خانواده ي ميكروكنترلرهاي MCS-48 TM معرفي كرد .توان ، ابعاد و پيچيدگي ميكروكنترلرها با اعلام ساخت
8051 ، يعني اولين عضو خانواده MCS-51 TM در 1980 توسط اينتل پيشرفت چشمگيري كرد . در مقايسه با 8048 اين قطعه شامل بيش از 60000 ترانزيستور ، 4K بايت ROM ، 128 بايت RAM ، 32 خط I/O ، يك درگاه سريال و دو تايمر 16 بيتي است . كه از لحاظ مدارات داخلي براي يك IC بسيار قابل ملاحظه است . اصطلاحات فني : با توجه با اينكه همه ي دوستان با اين اصطلاحات آشنايي دارند ، با اين حال يادآوري اين مطالب خالي از لطف نيست .حافظه ي نيمه رسانا
: RAM و ROM :برنامه ها و داده در حافظه ذخيره مي شوند
.. حافظه هايي كه بطور مستقيم توسط CPU قابل دستيابي مي باشند ، IC هاي ( مدارهاي مجتمع ) نيمه رسانايي هستند كه RAM و ROM ناميده مي شوند . دو ويژگي RAM و ROM را از هم متمايز مي كند : اول آن كه RAM حافظه ي خواندني / نوشتني است در حاليكه ROM حافظه ي فقط خواندني است و دوم آنكه RAM فرار است ( يعني محتويات آن هنگام نبود ولتاژ تغذيه پاك مي شود ) درحاليكه ROM غير فرار مي باشد .گذرگاه ها
: آدرس ، داده و كنترل :يك گذرگاه عبارت است از مجموعه اي از سيم ها كه اطلاعات را با يك هدف مشترك حمل مي كنند
. امكان دستيابي به مدارات اطراف CPU توسط سه گذرگاه فراهم مي شود : گذرگاه ادرس ، گذرگاه داده و گذرگاه كنترل . گذرگاه داده اطلاعات را بين CPU و حافظه يا بين CPU و قطعات I/O منتقل مي كند .ابزارهاي ورودي
/ خروجي :ابزارهاي
I/O يا ابزارهاي جانبي كامپيوتر كه مسيري براي ارتباط بين سيستم و دنياي واقعي را فراهم مي كند . شامل : ابزارهاي ذخيره سازي انبوه كه همونن CD و Flopy و دي وي دي و ... هستند و ابزارهاي رابط با انسان مثل صفحه كليد ، CRT و چاپگر و ... هستند و ابزارهاي كنترل / نظارت كه ابزارهاي نظارت همان ورودي يا حسگر هستند كه با كميت هايي نظير حرارت ، نور ، فشار و ... تحريك شده و آنها را به جريان يا ولتاژي كه توسط CPU خوانده مي شود تبديل مي كنند ( مثل فتوترانزيستور ها ، ترميستورها و سوئيچ ها ) .برنامه ها
: بزرگ و كوچك :كه همان نرم افزار است كه شامل انواع زير است
:نرم افزار كاربردي
( ارتباط با كاربر ) ، سيستم عامل ( زبان فرمان ، برنامه هاي مفيد ) و زيرروال هاي ورودي ، خروجي ( دسترسي به سخت افزار )ميكروها ، ميني ها و كامپيوترهاي مركزي
:بعنوان يك نقطه شروع ، كامپيوترها بر اساس اندازه و توان آنها با عنوان ميكروكامپيوترها ، ميني كامپيوترها و كامپيوترهاي مركزي دسته بندي مي شوند
. يك ويژگي كليدي ميكروكامپيوترها اندازه و بسته بندي CPU مي باشد كه از يك مدار مجتمع واحد - يعني يك ريزپردازنده تشكيل شده است . از طرف ديگر ميني كامپيوترها و كامپيوترهاي مركزي علاوه بر آن كه در برخي جزئيات معماري ، پيچيده تر هستند ، CPU هايي مشتمل بر چندين IC دارند كه از چند IC ( در ميني كامپيوتر ها) تا چندين برد مدار متشكل از IC ها ( در كامپيوترهاي مركزي ) تغيير مي كند و اين براي به دست آوردن سرعت هاي بالا و توان محاسباتي كامپيوترهاي بزرگتر ضروري است .ويژگي ديگري كه ميكروها را از ميني ها و كامپيوترهاي مركزي جدا مي كند آن است كه ميكروكامپيوترها سيستمهايي تك اجرايي و تك كاربريا
single - user هستند يعني با يك كاربر ارتباط متقابل دارند و يك برنامه را در يك زمان اجرا مي كنند . از طرف ديگر ميني ها و كامپيوترهاي مركزي سيستمهايي چند اجرايي و چند كاربر يا multi – user هستند .مقايسه ي ريز پردازنده ها با ميكروكنترلرها
:پيش از اين گفتم كه ريز پردازنده ها
CPU هايي تك تراشه هستند و در ميكروكامپيوترها به كار مي روند . پس فرق ميكروكنترلرها با ريز پردازنده ها چيه ؟با اين سوال از سه جنبه ميشه برخورد كرد
:معماري سخت افزار ، كاربردها و ويژگي هاي مجموعه ي دستورالعمل ها
.معماري سخت افزار
: در حالي كه ريز پردازنده يك CPU ي تك تراشه اي است ، ميكروكنترلر در يك تراشه واحد شامل يك CPU و بسياري از مدارات لازم براي سيستم ميكروكامپيوتري كامل مي باشد . ميكروكنترلرها علاوه بر CPU داراي Ram و ROM ، يك رابط سريال ، يك رابط موازي ، تايمر و مدارات زمان بندي وقفه مي باشند كه همگي در يك IC قرار دارند . يك ويژگي مهم ميكروها سيستم وقفه ي موجود در داخل انهاست . ميكروها به عنوان ابزارهاي كنترل گرا يا control – oriented devices اغلب براي پاسخ بي درنگ به محركهاي خارجي ( وقفه ها ) مورد استفاده قرار مي گيرند .كاربردها
:ريزپردازنده ها اغلب به عنوان
CPU در سيستم هاي ميكروكامپيوتري بكار مي روند . اين كاربرد دليل طراحي آنها و جايي است كه مي توانند توان خود را به نمايش بگذارند . با اين وجود ميكروكنترلرها در طراحي هاي كوچك با كمترين اجزاء ممكن كه فعاليت هاي كنترل گرا انجام مي دهند نيز يافت مي شوند .اين طراحي ها در گذشته با چند دوجين يا حتي صدها IC ديجيتال انجام مي شد . يك ميكرو كنترلر مي تواند در كاهش تعداد كل اجزاء كمك كند . آنچه كه مورد نياز است عبارت است از يك ميكروكنترلر ، تعداد كمي اجزاء پشتيبان و يك برنامه كنترلي در ROM . ميكروكنترلرها براي " كنترل " ابزارهاي I/O در طراحي هايي با كمترين تعداد اجزاء ممكن مناسب هستند ، اما ريز پردازنده ها براي " پردازش " اطلاعات در سيستم هاي كامپيوتري مناسبند .ميكروكنترلرها پردازنده هايي اختصاصي هستند
. آنها به خودي خود در كامپيوترها بكار نمي روند ، بلكه در فراورده هاي صنعتي و وسايل مصرفي مورد استفاده قرا ر ميگيرند . استفاده كنندگان اين فرآورده ها گاه از وجود ميكروها كاملا بي اطلاع هستند . از ديد آنها اجزاي داخلي وجود دارند اما جزو جزئيات بي اهميت طراحي بشمار مي روند . برخلاف سيستمهاي كامپيوتري كه توسط قابليت برنامه ريزي و دوباره برنامه ريزي شدن ، باز شناخته مي شوند ، ميكروها يك بار براي هميشه و براي يك كار برنامه ريزي مي شوند . وظايفي كه ميكروها انجام مي دهند وظايف تازه اي نيستند . آنچه جديد است اين است كه طراحي ها با تعداد اجزاي كمتري از گذشته انجام مي شوند . طراحي هايي كه درگذشته با استفاده از ده ها يا حتي صدها IC انجام مي شدند امروزه با يك ميكروكنترلر و اجزايي به تعداد انگشتان دست قابل انجام اند . كاهش تعداد اجزاء كه نتيجه ي مستقيم قابليت برنامه ريزي و توانايي زياد ميكروكنترلرها در ايجاد يكپارچگي مي باشد ، معمولا منجر به زمان طراحي و ساخت كوتاه تر ، هزينه ي توليد پايين تر ، مصرف توان كمتر و قابليت اطمينان بيشتر مي شود . اعمال منطقي كه نيازمند چندين IC مي باشند ، اغلب توسط يك ميكروكنترلر با اضافه كردن يك برنامه ي كنترلي انجام مي شوند .عيب كار در سرعت است
. راه حل هاي ميكروكنترلي هرگز در سرعت به پاي راه حلهاي مشابه با اجزاي گسسته نمي رسند . در موقعيت هايي كه نياز به پاسخ هاي بسيار سريع به رويدادها وجود دارد ( كه البته به ندرت چنين كاربردهايي پيدا مي شوند ) ميكروها عكس العمل ضعيفي از خود نشان مي دهند .بكار بردن ميكروها براي چنين عملي چندان مرسوم نيست ، اما اين امكان وجود دارد
. در بسياري از كاربردها بويژه آنهايي كه با عملكرد انسان سروكار دارند اين كه تأخير ها به نانوثانيه انداره گيري شوند يا ميكروثانيه و ميلي ثانيه اهميتي ندارند ، ( مثلا هنگامي كه فشار روغن ماشين شما افت ميكند ، آيا لازم است كه ظرف چند ميكروثانيه مطلع شويد ؟) .ميكروكنترلرها مي توانند عمليات منطقي را انجام دهند و از اين گذشته هر چه طراحي ها پيچيده تر باشند مزاياي طراحي ميكروكنترلري ، بيشتر خود را نشان ميدهند
. تعداد كم اجزا مزيتي است كه قبلا به آن اشاره شد و علاوه بر آن عمليات پيش بيني شده در برنامه كنترلي را مي توان تنها با تغيير نرم افزار دگرگون كرد و اين روش كمترين اثر ممكن را روي چرخه ي توليد خواهد گذاشت .


