مقدمهای بر میکروکنترلر 8051
باوجود اینکه بیش از بیست سال از تولد ریز پردازنده نمیگذرد، تصور وسیال الکترونیکی و ... بدون آنکه کار مشکی است در سال 1971 شرکت اینتل: 8080 را به عنوان اولین ریز پردازنده موفق عرضه کرد مدت کوتاهی پس از آن، موتورولا، RCA و سپس Mostechnoloy و zilog انواع مشابهی را به ترتیب به نامهای Z80 , 6502 , 6800 عرضه کردند. گرچه این مدارهای مجتمع به خودی خود فایده چندانی نداشتند. اما به عنوان بخشی از یک کامپیوتر تک بورد (SBC) به جزء مرکزی فرآوردههای مفیدی برای آموزش طراحی با ریز پردازنده ها تبدیل شدند. از این SBC کمه به سرعت به آزمایشگاههای طراحی در کالجها، دانشگاهها و شرکت های الکترونیکی راه پیدا کردند ومی توان برای نمونه از D2 موتورولا KIM-1 ساخت Mostechnology و SDK-85 متعلق به شرکت اینتل نام برد.
میکروکنترلر قطعهای شبیه به ریز پردازنده است. در 1976 اینتل 8745 را به عنوان اولین قطعه خانوادهی یک CPU، 1 کیلو بایت EPROM ، 64 بایت، RAM، 27 پایه I/O و یک تایمر 8 بیتی بود. توان، ابعاد و پیچیدگی میکروکنترلرها با اعلام ساخت8051 یعنی اولین عضو خانواده میکروکنترلرهای MCS-51 در 1980 توسط اینتل پیشرفت چشمگیری کرد. در مقایسه با 8048 این قطعه شامل بیش از 60000 ترانزیستور، K4 بایت ROM، 128 بایت RAM، 32 خط I/O یک درگاه سریال و دو تایمر 16 بیتی است. که از لحاظ مدارات داخلی برای یک IC بسیار قابل ملاحظه است.
امروزه انواع گوناگونی از این IC وجود دارند که بصورت مجازی این مشخصات را دو برابر کردهاند. شرکت زیمنس که دومین تولیدکننده قطعات MCS-51 است SAB80515 را به عنوان یک 8051 توسعه یافته در یک بستهی 68 پایه با شش درگاه I/O 8 بیتی، 13 منبع وقفه و یک مبدل آنالوگ به دیجیتال با 8 کانال ورودی عرضه کرده است خانواده 8051 به عنوان یکی از جامعترین و قدرتمندترین میکروکنترلرهای 8 بیتی شناخته شده و جایگاهش را به عنوان یک میکروکنترلر مهم برای سالهای آینده یافته است.
اصطلاحات فنی
یک کامپیوتر توسط دو ویژگی کلیدی تعریف میشود: (1) داشتن قابلیت برنامهریزی برای کار کردن روی داده بدون مداخله انسان و (2) توانایی ذخیره و بازیابی عموماً یک سیستم کامپیوتری شامل ابزارهای جانبی برای ارتباط با انسانها به علاوه برنامههایی برای پردازش داده نیز میباشد تجهیزات کامپیوتر سخت افزار و برنامه های آن نرم افزار نام دارند.
یک سیستم کامپوتری شامل یک واحد پردازش مرکزی است که از طریق گذرگاه آدرس، گذرگاه داده و گذرگاه کنترل به حافظه قابل دستیابی تصادفی و حافظهی فقط خواندنی متصل میباشد. مدارهای واسطه گذرگاههای سیستم را به وسایل جانبی متصل می کنند.
واحد پردازش مرکزی
CPU بعنوان مغز سیستم کامپیوتری تمامی فعالیتهای سیستم را اداره کرده و همهی عملیات روی داده را انجام میدهد این تراشه فقط مجموعهای از مدارهای منطقی است که بطور مداوم دو عمل انجام میدهند. واکشی دستورالعملها و اجرای آن CPU توانایی درک و اجرای دستورالعمل ها را بر اساس مجموعهای از کدهای دودویی دارد که هر یک از این کدها نشان دهندهی یک عمل است. این دستورالعملها معمولاً حسابی یا منطقی. انتقال داده هستند و با مجموعهای از کدهای دودویی با نام مجموعهی دستورالعملها نشان داده میشوند. (instruction set) واکشی یک دستورالعمل از RAM سیستم یکی از اساسیترین اعمال است که توسط CPU انجام میشود و شامل این مراحل است: الف) محتویات شمارنده برنامه در گذرگاه آدرس قرار میگیرد. ب) یک سیگنال کنترل READ فعال میشود پ) داده یا کد عملیاتی دستورالعمل از RAM خوانده میشود و روی گذرگاه داده قرارمیگیرد ت) کد عملیاتی در ثبات داخلی دستورالعمل CPU ذخیره میشود و شمارنده برنامه یک واحد افزایش مییابد تا برای واکشی بعدی از حفاظه آماده شود.
مرحله ای اجرا مستلزم رمز گشایی کد عملیاتی و ایجاد سیگنالهای کنترلی برای گشودن ثباتهای درونی به داخل و خارج از ALU است همچنین باید به ALU برای انجام عملیات مشخص شده فرمان داده شود. به علت تنوع زیاد عملیات ممکن این توضیحات تا حدی سطحی می باشد و در یک عملیات ساده مثل افزایش یک واحدی ثبات مصداق دارند دستورالعملهای پیچیدهتر نیاز به مراحل بیشتری مثل خواندن بایت دوم و سوم به عنوان داده برای عملیات دارند.
مقایسه ریز پردازندهها با میکروکنترلرها
میدانیم که ریز پردازندهها CPU هایی تک تراشه هستند و در میکرو کامپیوترها به کار میروند پس فرق میکروکنترلرها با ریزپردازندهها چیست؟ با این سوال از سه جنبه می توان برخورد کرد: معماری سخت افزار کاربردها و ویژگیهای مجموعهی دستورالعملها.
معماری سخت افزار
یک ویژگی مهم میکروکنترلرها سیستم وقفهی موجود در داخل آنهاست. میکروکنترلرها به عنوان ابزارهای کنترلگرا اغلب برای پاسخ بیدرنگ به محرکهای خارجی مورد استفاده قرار میگیرند. یعنی باید در پاسخ به یک اتفاق سریعا یک فرآیند را معوق می گذارد به فرآیند دیگر بپردازند. باز شدن در یک اجاق مایکروویومثالی است از یک اتفاق که ممکن است باعث ایجاد یک وقفه در یک سیستم میکروکنترلری شود. البته اغلب ریز پردازنده ها می توانند سیستمهای وقفه قدرتمندی را به اجرا بگذارند. اما برای این کار معمولا نیاز به اجزای خارجی دارند. مدارات روی تراشه یک میکروکنترلر شامل تمام مدارات مورد نیاز برای بکارگیری وقفهها می باشد.
کاربردها:
ریز پردازندهها اغلب به عنوان CPU در سیستمهای میکروکامپیوتری بکار میروند. این کاربرد دلیل طراحی آنها و جایی است که می توانند توان خود را به نمایش بگذارند. بااین وجود میکروکنترلرها در طراحیهای کوچک با کمترین اجزا ممکن که فعالیتهای کنترلگرا انجام میدهند نیز یافت میشوند. این طراحی ها در گذشته با چند دوجین یا حتی صدها IC دیجیتال انجام میشد یک میکروکنترلر می تواند در کاهش تعداد کل اجزا کمک کند. آنچه که مورد نیاز است عبارتست از یک میکروکنترلر تعداد کمی افراد پشتیبان و یک برنامه کنترلی در ROM میکروکنترلرها برای کنترل، ابزارهای I/O در طراحیهایی با کمترین تعداد اجزا ممکن مناسب هستند، اما ریز پردازندهها برای پردازش اطلاعات در سیستمهای کامپیوتری مناسبند.
ویژگیهای مجموعهی دستورالعملها
به علت تفاوت در کاربردها، مجموعهی دستورالعملهای مورد نیاز برای میکروکنترلرها تا حدودی با ریزپردازندهها تفاوت دارد. مجموعه دستورالعملهای ریز پردازندهها بر عمل پردازش تمرکز یافتهاند و در نتیجه دارای روشهای آدرس قدرتمند به همراه دستورالعملهایی برای انجام عملیات روی حجم زیاد داده میباشند.
دستورالعملها روی چهار بیتها بایتها، کلمهها یا حتی کلمههای مضاعف عمل میکنند. روش های آدرس دهی با استفاده از فاصلههای نسبی و اشارهگرهای آدرس امکان دسترسی به آرایههای بزرگ را فراهم میکنند.
حالت های افزایش یک واحدی اتوماتیک و کاهش یک واحدی اتوماتیک، حرکت گام به گام روی بایتها، کلمهها و کلمههای مضاعف را در آرایهها آسان میکنند. دستورالعملهای رمزی نمی توانند در داخل برنامه کاربر اجرا شوند. از طرف دیگر میکروکنترلرها مجموعه دستورالعملهایی مناسب برای کنترل ورودیها و خروجیها دارند ارتباط با بسیاری از ورودیها و خروجیها تنها نیازمند یک بیت است. برای مثال یک موتور میتواند توسط یک سیمپیچ که توسط یک درگاه خروجی یک بیتی انرژی دریافلت می کند. روشن و خاموش شود. میکروکنترلرها دستورالعمل هایی برای 1 کردن و 0 کردن بیت های جداگانه دارند ودیگر عملیات روی بیتها مثل EXOR , OR , AND عملکرد منطقی بیتها، پرش در صورت 1 کردن یا پاک بودن یک بیت و مانند آنها را نیز انجام میدهند.
برای کنترل و نظارت ابزارها میکروکنترلرهامدارات داخلی و دستورالعملهایی برای عملیات ورودی و خروجی زمانبندی اتفاقات و تعینی اولویت وقفه ها دارند ریز پردازندهها اغلب به مدارات اضافی برای انجام اعمال مشابه نیاز دارند. از آنجا که فضاهای واقعی در تراشه برای میکروکنترلرها اهمیت دارند. دستوالعملها باید بینهایت شده باشند و اساساً در یک بایت پیادهسازی شوند یکی از کلمات در طراحی جا دادن برنامه کنترلی در داخل ROM روی تراشه است . زیرا افزودن حتی یک ROM خارجی هزینههای نهایی تولید را بسیار افزایش میدهد. به رمز درآوردن فشرده برای مجموعه دستورالعملهای میکروکنترلر اساسی است در حالی که ریز پردازندهها بندرت دارای این ویژگی میباشند. روشهای آدرسدهی قدرتمند آنها باعث به رمز درآوردن غیر فشردهی دستورالعملها میشود.