مقدمهای بر میکروکنترلر 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 خارجی هزینههای نهایی تولید را بسیار افزایش میدهد.
به رمز درآوردن فشرده برای مجموعه دستورالعملهای میکروکنترلر اساسی است در حالی که ریز پردازندهها بندرت دارای این ویژگی میباشند.
روشهای آدرسدهی قدرتمند آنها باعث به رمز درآوردن غیر فشردهی دستورالعملها میشود.
برای کنترل و نظارت ابزارها میکروکنترلرهامدارات داخلی و دستورالعملهایی برای عملیات ورودی و خروجی زمانبندی اتفاقات و تعینی اولویت وقفه ها دارند ریز پردازندهها اغلب به مدارات اضافی برای انجام اعمال مشابه نیاز دارند.
روشهای آدرسدهی قدرتمند آنها باعث به رمز درآوردن غیر فشردهی دستورالعملها میشود.
مروری بر خانواده MCS-51 MCS-51 خانوادهای از میکروکنترلرهاست که توسط شرکت اینتل به بازار عرضه شده است.
دیگر تولید کنندگان IC نظیر زیمنس، AND فیلیپس بعنوان تولید کننده، ثانویه،ICهای این خانواه را تحت مجوز اینتل تولید میکنند.
هر میکروکنترلر این خانواده از امکاناتی مناسب با یک سری طراحیهای مشخص برخوردار است.
8051 یک IC نوعی و اولین عضو این خانواده است که بصورت تجاری مطرح شد خلاصه مشخصات این IC بدین شرح است: 1- K4 بایت ROM 2- 128 بایت RAM 3- چهار درگاه I/O هشت بیتی 4- دوتایمر شمارنده 16 بیتی 5- رابطه سریال 6- k64 بایت فضای حافظه خارجی برای کد 7- k64 بایت فضای حافظه خارجی برای داده 8- پردازنده بولی 9- 210 مکان بیتی آدرس پذیر 10- انجام عملیات ضرب و تقسیم در 4 میکروثانیه دیگر اعضا خانواده MCS-51 هر یک از امکانات دیگری از قبیل ROM روی تراشه.
RAM , EPROM روی تراشه و یا یک تایمر سوم را دارا هستند.
در ضمن هر یک از انواع ICهای این خانواده یک نسخه مشابه با CMOS کم مصرف نیز دارد.
بررسی پایهها: 32 پایه از 40 پایه 8051 به عنوان درگاه I/O عمل میکند.
معهذا 24 خط از این خطوط دو منظوره هستند.
هر یک از این خطوط میتوانند به عنوان I/O یا خط کنترل و یا بخشی از گذرگاه آدرس یا داده بکار روند.
در طراحیهایی که با کمترین مقدار حافظه ودیگر قطعات خارجی انجام میشوند.
از این درگاهها به عنوان I/O همه منظوره استفاده میکنند.
هر هشت خط یک درگاه می تواند به صورت یک واحد در ارتباط با وسایل موازی مانند چاپگرها و مبدلهای دیجیتال به آنالوگ بکار روند و یا هر خط به تنهایی با وسایل تک بیتی مثل سویئچها، LED،ها، ترانزیستورها، سیمپیچها، موتورها و ....
ارتباط برقرار کنند.
درگاه 0 این درگاه یک درگاه دو منظوره از پایه 32 تا 39 تراشه 8051 می باشد.
این درگاه در طراحی های با کمترین اجزای ممکن به عنوان یک درگاه I/O عمومی استفاده می شود.
در طراحی های بزرگتر که ازحافظه خارجی استفاده می کنند، این درگاه یک گذرگاه آدرس و داده مالتی پلکس شده می باشد.
درگاه 1 درگاه 1 ، درگاه اختصاصی I/O روی پایه های 1 تا 8 است .
پایه های P1.0 تا P1.1 در صورت نیاز برای ارتباط با وسایل خارجی بکار میروند.
وظیفه دیگری برای پایه های در تا 1 در نظر گرفته نشده است.
بنابراین آنها گهگاه برای ارتباط با وسایل خارجی بکار می روند.
استثنائاً در IC های 8032/8052 که از P1.0 و P1.1 به عنوان خطوط I/O و یا ورودی تایمر سوم استفاده می شود.
درگاه 2 درگاه 2 (پایه های 21 تا 28 یک درگاه دو منظوره است که به عنوان I/O عمومی و یا بایت بالای گذرگاه آدرس در طراحی با حافظه کد خارجی به کار می رود.
این درگاه همچنین در طراحی هایی که به بیش از 256 بایت از حافظه داده خارجی نیاز دارند نیز استفاده می شود.
درگاه 3 درگاه 3، یک درگاه دو منظوره روی پایه های 10 تا 17 می باشد.
علاوه بر I/O عمومی این پایه ها هر یک وظایف دیگری نیز در رابطه با امکانات خاص 8051 دارند.
(Program store Enable) PSEN 8051 چهار سیگنال اختصاص یافته برای کنترل گذرگاه دارد.
PSEN یک سیگنال خروجی روی پایه 29 است که حافظه برنامه کد را فعال میکند.
این پایه معمولاً به پایه ی OE یک EPROM وصل می گردد.
تا خواندن بایت های برنامه از EPROM امکان پذیر شود.
سیگنال PSEN در طی مرحله خواندن یک دستورالعمل پایین می رود.
کدهای دودویی برنامه از EROM خوانده می شوند، در گذرگاه داده منتقل می گردند و بریا رمزگشایی در ثبات دستورالعمل 8051 ذخیره می شوند.
هنگام اجرای برنامه از ROM داخلی PSEN در حالت غیرفعال باقی می ماند.
(Address latoh Enable) ALE سیگنال خروجی ALE در پایه 30 برای هر فردی که باریزپردازندههای اینتل مثل 8088, 8086, 8085 کارکرده باشد، آشناست.
8051 بطور مشابهی ALE برای جداسازی گذرگاه آدرس و داده استفاده می کند.
هنگامیکه درگاه 0 در حالت خاص خود به عنوان گذرگاه داده و بایت پایین گذرگاه آدرس استفاده می شود.
سیگنال ALE آدرس را یک ثبات خارجی در طی نیمه ی نخست سیکل حافظه نگاه می دارد.
پس از آن خطوط درگاه 0 برای ورود و خروجی داده در طی نیمه ی دوم سیکل حافظه یعنی هنگامی که انتقال داده انجام میشود، در دسترس هستند.
سیگنال ALE با فرکانس یک ششم فرکانس نرمال ساز روی تراشه نوسان می کند و می تواند به عنوان یک پالس ساعت هم منظوره در بقیه سیستم بکار رود.
اگر 8051 از یک کریستال 12 مگاهرتز پالس دریافت کند، ALE با فرکانس 2 مگاهرتز نوسان می کند.
تنها استثناء در طی انجام دستورالعمل MOVX است که یک پالس ALE