کامپیوتر

گرچه كامپيوترهاي تنها چند دهه‎اي است كه با ما همراهند با اين حال تأثير عميق آنها بر زندگي ما به تأثير تلفن، اتومبيل و تلويزيون رقابت مي‎كند. همگي ما حضور آنها را احساس مي‎‏كنيم چه برنامه‎نويسان كامپيوتر و چه دريافت كنندگان صورت حسابهاي ماهيانه كه توسط سيستمهاي كامپيوتري بزرگ چاپ شده و توسط پست تحويل داده مي‎شود. تصور ما از كامپيوتر معمولاً «داده‎پردازي» است كه محاسبات عددي را بطور خستگي ناپذيري انجام مي‎دهد.

ما با انواع گوناگوني از كامپيوترها برخورد مي‎كنيم كه وظايفشان را زيركانه و بطرزي آرام، كارا و حتي فروتنانه انجام مي‎دهند و حتي حضور انها اغلب احساس نمي‎شود. ما كامپيوترها را به عنوان جزء مركزي بسياري از فرآورده‎هاي صنعتي و مصرفي از جمله در سوپر ماركت‎ا داخل صندوق‎هاي پول و ترازوها، در خانه‎ها، در اجاق‎ها، ماشين‎هاي لباسشوئي، ساعت‎هاي اداري داراي سيستم جز دهنده و ترموستات‎ها، در وسايل سرگرمي همچون اسباب بازي‎ها، VCRها، تجهيزات استريو و وسايل صوتي؛ در محل كار در ماشين‎هاي تايپ و فتوكپي و در تجهيزات صنعتي مثل مته‎هاي فشاري و دستگاههاي حروفچيني نوري مي‎يابيم. د اين مجموعه‎ها كامپيوترها وظيفه كنترل را در ارتباط با دنياي واقعي براي روشن و خاموش كردن وسايل و نظارت بر وضعيت آنها انجام مي‎دهند.

ميكروكنترلرها (بر خلاف ميكرو كامپيوترها و ريزپردازنده‎ها) اغلب در چنين كاربردهايي يافت مي‎شوند.
با وجود اينكه بيش از بيست سال از تولد ريزپردازنده نمي‎گذرد تصور وسايل الكترونيكي و اسباب بازيهاي امروزي بدون آن كار مشكل است. در سال ۱۹۷۱ شركت اينتل ۸۰۸۰ رابه عنوان اولين ريزپردازندة موفق عرضه كرد. مدت كوتاهي پس از آن موتورلا، RCA و سپس Mos Technology و Zilog انواع مشابهي را به ترتيب به نامهاي ۶۸۰۰، ۱۸۰۱، ۶۵۰۲، ۸۰Z عرضه كردند گرچه اين مودارهاي مجتمع به خودي خود فايده چنداني نداشتند اما به عنوان بخشي از يك كامپيوتر تك بورد (SBC) به جزء مركزي فرآورده‎هاي مفيدي براي آموزش طراحي با ريزپردازنده‎ها تبديل شدند. از اين SBCها كه به سرعت به آزمايشگاههاي طراحي در كالج‎ها، دانشگاهها و شركتي‎هاي الكترونيك راه پيدا كردند مي‎توان براي نمونه از D2 موتورولا KIM-1 ساخت Mos Technology و ۸۵-SDK متعلق به شركت اينتل نام برد.

ميكروكنترلرها قطعه‎اي شبيه به ريزپردازنده است در سال ۱۹۷۶ اينتل ۸۷۴۸ را به عنوان اولين قطعه خانوادة ميكروكنترلرهاي TM 48-MCS معرفي كرد. ۸۷۴۸ با ۱۷۰۰۰ترانزيستور در يك مدار مجتمع شامل يك CPU، ۱كيلو بايتي EPROM، ۶۴بايت RAM، ۲۷ پايه I/O و يك تايمر ۸بيتي بود. اين IC و ديگر اعضاي TM 48-MCS كه پس از آن آمدند خيلي زود به استاندارد صنعتي در كاربردهاي كنترل گرا تبديل شدند.

جايگزين كردن اجزاء الكترو مكانيكي در فرآورده‎هايي مثل ماشينهاي لباسشويي و چراغهاي راهنمايي از ابتداي كار يك كاربرد مورد توجه براي اين ميكرو كنترلرها بودند و همين طور باقي ماندند. ديگر فرآورده‎هايي كه در آنها مي‎توان ميكروكنترلر را يافت عبارتند از اتومبيل‎ها تجهيزات صنعتي، وسيال سرگرمي و ابزارهاي جانبي كامپيوتر.

توان ابعاد و پيچيدگي ميكروكنترلرها با اعلام ساخت ۸۰۵۱، يعني اولين عنصر خانوادة ميكرو كنترلراي TM51-MCS در سال ۱۹۸۰ توسط اينتل پيشرفت چشمگيري كرد. در مقايسه با ۸۰۴۸ اين قطعه شامل بيش از ۶۰۰۰۰ترانزيستور، ۴k بايت Rom، ۱۲۸ بايت RAM، ۳۲ خط I/O يك درگاه سريال و دو تايمر ۱۶ بيتي است. كه از لحاظ مدارات داخلي براي يك IC بسيار قابل ملاحظه است. امروزه انواع گوناگوني از اين IC وجود دارد كه بصورت مجازي اين مشخصات را دو برابر كرده‎اند. شركت زيمنس كه دومين توليد كنندة قطعات است (TM 51-MCS)، ۸۰۵۱۵SAB وقفه و يكي مبدل آنالوگ به ديجيتال با ۸ كانال ورودي عرضه كرده است.

خانواده ۸۰۵۱ به عنوان يكي از جامع ترين و قدرتمندترين ميكروكنترلرهاي ۸ بيتي شناخته شده و جايگاهش را به عنوان يك ميكروكنترلر مهم براي سالهاي آينده يافته است.
اين بخش با بحثي در مورد نقش و اهميت ميكروكنترلرها در زندگي روزمره و نياز به ميكروكنترلرها و مقايسه آنها با ميكرو پروسسورهاي همه منظوره‎اي چون پنتيوم و ديگر ميكرو پروسسورها آغاز شده است.

ميكروكنترلرها در برابر ميكرو پروسسورهاي همه منظوره
تفاوت بين يك ميكرو پروسسور و يك ميكروكنترلر چيست؟ منظور از يك ميكروپروسسور ريز پردازنده ميكروي پروسسورهايي از خانوادة x86 اينتل مثل ۸۰۳۶,۸۰۲۸۶,۸۰۸۶ و يا ۶۸۰۴۰,۶۸۰۳۰,۶۸۰۲۰خانواده‎هائي از اين قبيل است اين ميكروپروسسورها فاقد RAM و پورت‎هاي ROM در درون خود تراشه هستند. به اين دليل به آنها «ميكروپروسسورهاي همه منظوره» مي‎گويند.

طراح سيستمي كه از ميكرو پروسسور همه منظوره‎اي چون پنتيوم، ۶۸۰۴۰ استفاده مي‎كند، بايد در خارج از آن RAm ROM,پورتهاي I/O و تايمرها را اضافه نمايد تا سيستمي قابل كار ساخت شود. اگرچه افزايش RAM Rom, پورتهاي I/O موجب حجيم شدن و گرانتر شدن سيستم‎ها مي‎گردد، ولي به قابليت انعطاف آنها افزوده مي‎شود از جمله اينكه طراح مي‎تواند روي مقدار ROM, ROM پورتهاي I/O بر حسب نوع كاربرد تصميم‎گيري و اعمال نظر نمايد. اين توانمندي در ميكروكنترلرها امكان پذير نيست.

يك ميكروكنترلر داراي يك CPU به همراه مقدار ثابتي از ROM,RAM پورتهاي I/O و تامير در درون خود مي‎باشد. به بيان ديگر، پروسسور، ROM,RAM، پورتهاي I/O و تايمر همگي در يك تراشه جاي داده شده‎اند، بنابراين طراح نمي‎تواند يك حافظه، I/O يا تايمري را بدون گسترش لازم آن از بيرون اضافه كند. مقدار ثابت RAM,ROM و مقدار پورتهاي تثبيت شده در ميكروكنترلرها، آنها را براي كاربردهائي كه قيمت و محفظه در آنها بحراني است، ايده‎آل كرده است.

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

گذرگاه آدرس

ميكرو كنترلها و سيستم‎هاي تك منظوره:
در مقالاتي كه ميكرو پروسسورها مطرح مي‎شوند، اغلب عبارت سيستم تك منظوره را ملاحظه مي‎كنيم. ميكرو پروسسورها و ميكروكنترلرها بطور گسترده‎اي در توليد سيستم‎هاي تك منظوره بكار مي‎روند. يك محصول تك منظوره از يك ميكروپروسسور (يا ميكرو كنترلر) براي انجام فقط و فقط يك كار استفاده مي‎كند. يك چاپگر نمونه‎اي از يك سيستم تك منظوره است. زيرا پروسسور داخل آن فقط يك كار را انجام مي‎دهد و آن اين است كه داده را بدست آورده و آن را چاپ كند.

اين كار را با يك PC مبتني بر پنتيوم (مانند هر PC سازگار با x86 IBM) مقايسه نماييد. PC مي‎تواند براي هر كاربردي مانند پردازشگرهاي كلمات، مراكز چاپ، پايانه، ليست‎هاي بانك، بازيهاي ويدئويي، سرويس‎دهندة شبكه و پايانه اينترنت مورد استفاده قرار گيرد، براي انواع كاربردها مي‎توان به راحتي برنامه را در PC بار كرده و آن را اجرا كرد. البته دليل قابليت اجراي كارهاي متنوع در PC،‌اين است كه داراي حافظه RAM و سيستم عاملي است كه نرم افزار كاربردي را در RAM بار كرده و اجازه اجراي آن را به PC مي‎دهد.

در يك سيستم تك منظوره، تنها يك نرم افزار كاربردي وجود دارد و معمولاً در ROM سوزانده مي‎شود. يكPC x86 ممكن است به وسايل تك منظوره‎اي مانند صفحه كليد، چاپگر، مودم، كنترل‎گر ديسك، كارت صدا، راه انداز CD-Rom، ماوس و غيره متصل باشد. هر يك از اين وسايل جانبي در داخل خود داراي يك ميكروكنترلر براي انجام كار خاص مي‎باشند. مثلاً در داخل هر ماوس يك ميكرو كنترلر وجود دارد كه وظيفه‎اش يافتن مكان ماوس و ارسال آنها به PC است. جدول زير بعضي از محصولات تك منظوره را نشان مي‎دهد.

منزل خودكار
لوازم خانگي كامپيوتر
ارتباطات دروني كنترل موتور
تلفن كيسه هوا
دزدگير وسايل اندازه‎گيري
منشي تلفن سيستم حفاظتي
ماشين‎هاي خياطي كنترل انتقال
ورود بدون كليد
اداري
فاكس
مايكروويو
دستگاه فتوكپي
چاپگر ليزري
چاپگر رنگي
احضار از بلندگو

انتخاب يك ميكروكنترلر
چهار نوع ميكروكنترلر ۸بيت مهم وجود دارد كه عبارتند زا:
۶۸۱۱ ازموتورولا ۸۰۵۱- ازاينتل Z8- از زايكوگ PIC 16x از شركت ميكروچيپ تكنولوژي هر يك از ميكرو كنترلرهاي فوق مجموعة دستورات و مجموعه ثباتهاي خاص خود را دارد، بنابراين با يكديگر سازگار نيستند. برنامه‎اي كه بر روي يك ازآنها نوشته شود، بر روي ديگري قابل اجرا نيست. ميكروكنترلرهاي ۱۶ و ۳۲ بيتي هم وجود دارند كه به وسيلة سازندگان مختلف ساخته شده‎اند. با اين تنوع در ميكرو كنترلرها، طراح بايد كداميك را انتخاب كند؟

سه روش براي اين انتخاب در زير تشريح شده است:
(۱) برآورده كردن نيازهاي محاسبات كار بطور موثر و مقرون به صرفه.
(۲) در دسترس داشتن نرم‎افزارهاي كمكي مانند كامپايلرها، اسمبلرها و عيب ياب‎ها
(۳) منابع گسترده و قابل اعتماد براي ميكروكنترلرها
اكنون هر يك از موارد فوق را به تفصيل بررسي مي‎كنيم:

روش انتخاب ميكروكنترلر:
۱-اولين و قديمي‎ترين روش انتخاب ميكروكنترلر اين است كه نيازهاي سيستم دقيقاً مشخص و هزينه آن هم مقرون به صرفه باشد. ديگر موارد قابل بررسي عبارتند از:
الف) سرعت. بالاترين سرعتي كه ميكروكنترلر پشتيباني مي‎كند چيست؟
ب) بسته‎بندي. آيا بسته‎بندي از نوع DIP چهل پايه است، از نوع AFP (بستة همسطح) تهيه شده است، و يا در ديگر انواع بسته‎بندي ارائه شده است؟ بسته‎بندي به دليل فضاي اشغالي مونتاژ و ساخت نمونة نهايي اهميت خاصي دارد.
پ) توان مصرفي. اين فاكتور خصوصاً براي محصولاتي كه با باطري كار مي‎كنند، اهميت دارد.

ت) مقدار RAM و ROM در تراشه
ث) تعداد پايه‎هاي I/O و تايمر در تراشه
ج) به چه سادگي به ويرايش بعدي از نظر كارايي و توان مصرفي تبديل مي‎شود.
چ) قيمت هر عدد. اين فاكتور از نظر قيمت تمام شده ميكروكنترلري كه در توليد بكار رفته، اهميت دارد. مثلاً وقتي كه ۱۰۰۰۰۰ واحد خريداري گردد، قيمت هر يك مي‎تواند حدود ۵۰ سنت باشد.

(۲) روش دوم در انتخاب يك ميكروكنترلر اين است كه به چه سادگي مي‎توان حول آن امكانات ايجاد كرد.
بررسي‎هاي كليدي نشان مي‎دهد كه در دسترس بودن اسمبلر، عيب ياب، كامپايلر C امولاتور (شبيه ساز) پشتيباني فني و متخصصين درون خانه‎اي و بيروني از نكات قابل توجهند در بسياري از حالات، توليد كنندگان دست دوم، (توليد كنندگاني كه سازنده اوليه نيستند) مي‎توانند اگر بهتر از سازنده نباشند، در حد آنها سرويس ارائه كنند.

(۳) سومين روش در انتخاب ميكروكنترلر، در دسترس بودن آن بتعداد لازم در حال حاضر و آينده است. براي بعضي از طراحان، اين يكي حتي مهمتر از موارد ۱ و ۲ است. در حال حاضر، در ميان پيشروان ميكروكنترلرها،‌خانوادة ۸۰۵۱ بيشترين تعداد توليد كنندة ثانويه را دارد. در اينجام منظور از توليدكننده ثانويه ميكروكنترلر، توليد كننده‎اي به جز توليد كنندة اصلي است. در مورد ۸۰۵۱، كه ابتدا به وسيلة Intel ساخته شد، چندين كمپاني ديگر در حال حاضر مشغول توليد آن بوده و يا هستند. از آن جمله: Matra, Simens, AMD, Atmel, Philips/Signetics
بايد متذكر شد كه Motorola و Microchip Technology, Zilog تعداد زيادي شعبات را براي اين منظور انتخاب كرده‎اند تا توليدات خود را به طور گسترده و به موقع در دسترس قرار دهند زيرا توليدشان با ثبات، در حد كمال و قابليت دسترسي، از يك مركز است. در سال‎اي اخير آنها نيز شروع به فروش سلول كتابخانه AISC از ميكروكنترلرها كرده‎اند.

جدول ۱-۲ بعضي از كمپانيهاي توليد كنندة اعضاي خانواده ۸۰۵۱

Web Site Company
www.intel.com/design/mcs51
Intel
www.atmel.com
Atmel
WWW.Semiconductors.philips.com
Philips/signetics
www.Sci.siemens.com
Siemens
www.dalsemi.com
Dallas Semiconductors

تاريخچة مختصري از ۸۰۵۱:
در سال ۱۹۸۱ شركت اينتل، ميكروكنترلري به نام ۸۰۵۱ را معرفي كرد. اين ميكروكنترلر داراي ۱۲۸ بايت RAM، ۴K بايت ROM، دو تايمر، يك پورت سريال و چهار پورت موازي (هريك ۸ بيت) بود كه همة آنها در يك تراش تعبيه شده بودند. زماني به آن «سيستم در يك تراشه» مي‎گفتند. ۸۰۵۱ يك پروسسور ۸ بيت است، يعني CPU هر بار مي‎تواند فقط روي ۸ بيت داده كار كند. داده‎هاي بزرگتر از ۸ بيت بايد به قطعات ۸ بيت بشكنند وسپس بوسيلة CPU پردازش شوند. ۸۰۵۱ كلاً داراي چهار پورت I/O با عرض ۸ بيت است. شكل (۱) را ملاحظه كنيد. گرچه ۸۰۵۱ مي‎تواند حداكثر ۶۴K حافظه Rom در تراشه داشته باشد، بسياري از سازندگان فقط ۴K بايت را در تراشه كار گذاشته‎اند.

پس از اينكه اينتل به شرط حفظ سازگاري با ۸۰۵۱، اجازه توليد را به ديگر سازندگان داد، تراشه مذكور بسيار مورد توجه قرار گرفت. اين توافق منجر به توليد انواع ۸۰۵۱ با سرعت‎هاي متفاوت و مقداري ROM در تراشه به وسيلة نيم دوجين سازنده شد. آنچه اهميت دارد اين است كه گرچه انواع مختلف ۸۰۵۱ با سرعت و مقدار Rom متفاوت در تراشه موجودند ولي همة آنها با ۸۰۵۱ اصلي از نظر دستورات سازگارند. اين بدان معني است اگر شما برنامه‎اي براي يكي بنويسيد مستقل از سازندة روي ديگري هم قابل اجراست.

ميكروكنترلر ۸۰۵۱
۸۰۵۱ عضو اصلي خانوادة ۸۰۵۱ است. intel آن را MCS-51 مي‎نامد.
جدول ۱-۳ امكانات اصلي ۸۰۵۱ را نشان مي‎دهد.
Quantity Feature
4K bytes Rom
128bytes Ram
2 Timer
32 I/O Pins
1 Serial port
6 Interrupt Sources 6
توجه: مقدار Rom در تراشه حجم برنامه را نشان مي‎دهد.

انواع ميكروكنترلر۸۰۵۱:
گرچه ۸۰۵۱ رايج‎ترين عضو خانوادة ۸۰۵۱ است، ولي شما قادر نخواهيد بود شماره قطعه‎اي بصورت «۸۰۵۱» ملاحظه كنيد. دليل اين است كه ۸۰۵۱ با حافظه‎هاي متفاوتي چون uv-EPROM، حافظة سريع، NV-RAM در دسترس است كه هر يك شمارة قطعه متفاوتي دارد. نوع UV_EPROM خانوادة ۸۰۵۱، تراشه ۸۷۵۱ است نوع Rom سريع بوسيلة كمپاني‎هاي متعدد از جملة Atmel راهي بازار شده است. ۸۰۵۱ نوع سريع از Atmel است كه AT89C51 خوانده مي‎شود. نوع NV-RAM از ۸۰۵۱ بوسيلة Dall as Semiconductor بنام DS500 شناخته مي‎شود. همچنين نوع OTP (يكبار قابل برنامه‎ريزي) خانوادة OTP بوسيلة سازندگان متعددي توليد شده است. اكنون هر يك از تراشه‎هاي فوق را بطور خلاصه توصيف و كاربرد آنها را بيان مي‎كنيم.

ميكروكنترلر ۸۷۵۱:
تراشة ۸۷۵۱ فقط ۴K بايت حافظة UV-EPROM دروني دارد. هنگام استفاده از اين تراشه در طراحي و پياده سازي به دستگاه برنامه‎نويسي PROM و پاك كننده براي پاك كردن NV_EPROM در درون ۸۷۵۱ قبل از برنامه‎نويسي نياز است. با توجه به اين نكته كه Rom درون اين تراشه از نوع NV-EPROM است، حدود ۲۰ دقيقه براي پاك كردن آن وقت لازم است تا بتوان بعد از عمل برنامه نويسي را انجام داد.
اين مسأله موجب شد تا بسياري از توليدكنندگان انواع سريع و NV-RAM نوع ۸۰۵۱ را كه در زير بحث شده، بكار ببرند. همچنين انواع سريع ۸۷۵۱ نيز توسط تعدادي از توليدكنندگان ساخته شده است.

AT89C51 از شركت Atmel:
اين تراشه ۸۰۵۱ رايج داراي Rom سريع مي‎باشد، در طراحي‎هاي سريع اين نوع حافظه ايده‎آل است زيرا حافظه سريع مي‎تواند طي چند ثانيه، در مقايسه ۲۰ دقيقه لازم براي ۸۷۵۱، پاك شود. به اين دليل AT89C51 بجاي ۸۷۵۱ بكار برده شده است تا هنگام پارك كردن تراشه وقتي تلف نشود و بدينوسيله ساخت سيستم سريع گردد. هنگام استفاده از AT89C51 براي ساخت سيستم‎هاي مبتني بر ميكروكنترلر به سوزاننده يا برنامه‎ريز Rom سريع نياز داريم، با اين وجود به پاك كننده Rom نيازي نيست.

توجه داشته باشيد كه در حافظه سريع بايد تمام حافظه پاك شود تا بتوان مجدداً آن را برنامه‎نويسي كرد. پاك كردن حافظه سريع با خود سوزاننده صورت مي‎گيرد و به اين دليل پاك كننده جداگانه‎اي لازم نمي‎باشد براي حذف سوزاننده Atmel,PRom روي نوعي از AT89C51 كار مي‎كند كه مي‎تواند از طريق پورت سريال COM يك IBM PC برنامه‎ريزي شود.