میکروکنترولر

مقدمه:
میکرو کنترلر در اصطلاح به ریز پردازنده هایی گفته می شود که بجز CPU حداقل شامل سیستم های ورودی و خرو جی (I/o) حافظه و مدارات ارتباط با حافظه در داخل تراشه اصلی هستند و نیازی به مدارات واسطه بیرونی جهت ارتباط با سیستم های جانبی را ندارد. البته امکانات همه میکرو کنترلر ها هشابه و یکسان نمی باشد و برخی از میکرو کنترلر ها علاوه بر امکانات فو ق العاده شامل مبدل های دیجیتال به آنالوگ و آنالوگ به دیجیتال و یا حتی امکانات بیشتر و اختصاصی تر می باشند.

میکرو کنترلر در حقیقت کامپیوتر های کوچک می باشد که دارای همه قسمت های ضروری برای پردازش اطالاعات و صدور فرامین لازم است. یک سری ورودی/ خروجی که برای ارتباط میکرو لازم است و همچنین پروسسور و حافظه… کاربر با استفاده از نرم افزاری آن را برنامه ریزی می کند. تا بتواند یک یک یا چند دستگاه را بکار بیاندازد.
در زیر انواع میکرو مورد استفاده آمده است:
۸۰CXX این شناخته شده ترین نوع در تمام دنیا است!. .و جز اساسی ترین نوع میکروکنترولر هاست. در حال حاضر دهها شرکت میکروکنترولرهایی که میسازند هنوز بر ساختار ۸۰۵۱ است.این نوع میکروکنترولر از بهترین های دنیا ست و به گونه ای عالی امکانات و توانمندیهایش با هم سازگار است. به گونه ای که میکروکنترولر های بسیار پیشرفته زیمنس، اتمل و ماکزیم ، سایپرکس و… که شامل درایورهای باس صنعتی،رسیور های بلوتوث، و دیکودر های mp3,mpeg و… ادوات جانبی خاص و ویژه همه ،ساختارشان ۸۰۵۱ است.

AVR این میکروها عمر و خوش نامی ۸۰۵۱ را ندارند ولی به سرعت در حال جای باز کردن است.تمام این سری تکنولوژی برنامه ریزی در مدار شرکت اتمل را به ارث برده اند (ISP) و زمان توسعه سیستم را به کمترین حد رسانده اند.امکانات تایمری بیشتر،حافظه پایا حتی با قطع برق (eeprom) و spi از امکانات عمده این سری است.
PIC این خانواده در اینترنت بسیار طرفدار دارد. سورس کد های آموزشی ،مدارات نمونه و… در سایت شرکت میکروچیپ فراوان است. این سری شامل نموهایی با فلش و otp می باشد.
بزگترین مزیت این سری مصرف ناچیز آن است، به گونه ای که تکنولوژی نانووات به آن داده شده. البته عمر پایین یکی از مشکلات این میکرو است.

به هر حال در بین میکروکنترولر ها ۸۰۵۱ و خانواده آن بهترین و آینده دار ترین نوع میکرو کنترولر به شمار میرود. و امکانات جانبی و کامپایلر های زیادی آن را ساپورت میکند. به هر حال تجربه کار کردن با سری های دیگر را هم از دست ندهید.
میکرو کنترلر MC68HC7058 ساخت شرکت MOTOROLA نمونه ای از میکرو کنترلر های مدرن می باشد که امروزه در ساختمان مانیتور های پارس از آن استفاده شده است. قلب این میکرو کنترلر را ریز پردازنده ۶۸۰۵ تشکیل می دهد و حافظه آن شامل ۳٫۷۵ کیلو بایت حافظه ROM جهت ذخیره کردن نرم افزار اجرایی و ۲۵۶ بایت حافظه RAM جهت ذخیره سازی مو قت می باشد.
نرم افزار ذخیره شده در حافظه این میکرو کنترلر تحت امتیاز شرکت هیوندای کره جنوبی بوده و قابل دسترسی یا دخل و تصرف ننی باشد و فقط مختص ۱۵ اینج مدل HL -5870 می باشد. از و ضایف اصلی میک رو کنترلر می توان به موارد زیر اشاره کرد:

۱- کنترل دکمه های جلوی مانیتور در صنعت ساخت
۲- ایجاد ولتاژ های DC جهت کنترل قسمت های مختلف مدار
۳-ارتباط با حامظه none volatile جهت ذخیره سازی و باز خوانی اطلاعات.
۴- ارتباط با سیستم تغذیه جهت مدیریت توان مصرمی
۵- ارتباط با سیستم مولد OSD
6- ارتباط با سیستم تنظیم گر خودکار
۷- تنظیم اعو جاجات و تصحیح خطاها
۸- مضناتیس جدایی
۹- پردازش سیگنال های همزمانی
۱۰- کنترل پیچش تصویر
در ساخت ربات های کوچک اکثرا از ۸۰۵۱ و در موارد پیشرفته تر از AVR بهره می گیرند.
میکروکنترلر چیست؟
قطعه ای که این روزها دارد جای خود را در خیلی از وسایل الکتریکی باز میکند .از تلفن گرفته تا موبایل از ماوس لیزری که الان دستتان روی آن است و دارین باهاش کامپیو

تر رو کنترل میکنید تا هر وسیله ای که بتوان پیچیدگی رو در اون دید میتونید یک میکروکنترلر رو ببینید .
کلمه میکروکنترلر:
این کلمه از دو کلمه ۱- میکرو -۲ کنترلر تشکیل شده
*میکرو : میدونین که این یک واحد یونانی است و برابر با ۱۰ به توان منفی ۶ متر است. یعنی یک ملیونیوم متر واحده خیلی کوچیکیه نه….ولی واحدهای خیلی کوچیکتر از این هم داریم که در الکترونیک مورد استفاده قرار میگیرند در قسمتهای بعدی توضیحیهاتی راجع به این واحد ها و موارد استفاده آنها داده میشه.
*کنترلر : که همه معنی و مفهومشو میدونین . یعنی کنترل کننده به تعبیری یعنی “مغز ” البته بدون تفکر فقط دستوراتی که به اون داده میشه به نحو احسن انجام میده.

حالا چرا این کلمات ؟
به نظر من کلمه میکرو به دو منظور استفاده شده منظور اول و مهم سرعت عمل میکروکنترلر است که میتواند تا یک ملیونیوم ثانیه باشد و دستوارتی که به اون میدیم با این سرعت انجام بده به همین خاطر واژه میکرو رو به اون اختصاص دادن البته معنی دوم آن شاید کوچیکی این قطعه باشد که تا یک ملیونیوم متر کوچیک شده شاید باور کردنی نباشه ولی در یک تراشه ممکنه بیش از یک ملیون تراتزیستور به کار رفته باشه. این کلمه وقتی اهمیتش کامل میشه که با واژه کنترلر عجین بشه تا معنیش کامل بشود .
حالا نحوه انجام دادن کار میکروکنترلر را به صورت کلی بررسی میکنیم :
تا حالا همه شما با ماشین حساب کار کردین تا حالا به نحوه کار کردنش فکر کردین شما اطلاعاتتون را که همون عملیات ریاضی هست به وسیله صفحه کلید به اون میدید بعد ماشین حساب این اطلاعات رو بر مبنای دستوراتی که قبلا به اون داده شده پردازش میکند و جواب را رویlcd نمایش میدهد. در واقع یک میکروکنترلر برنامه ریزی شده به عنوان مغز ماشین حساب این اطلاعات یا داده رو از صفحه کلید میگیره روشون پردازش انجام میده و بعد بر روی lcd نمایش میده.
کار میکروکنترلر دقیقا مشابه این است میکرو کنترلر بر مبنای یک سری ورودی که به اون داده میشه مثلا این ورودی از یک سنسور دما باشه که درجه حرارت رو میگه یا از هر چیز دیگه مثل صفحه کلید بر مبنای این ورودی ها و برنامه ای که قبلا ما به اون دادیم خروجیشو تنظیم میکنه که ممکنه خروجیش یک موتور باشه یا یک lcd یا هر چیز دیگری که با الکتریسیته کار بکند. حالت دیگری هم میتونه باشه که فقط میکروکنترلر بر مبنای برنامه ای که به اون دادیم عمل کند و خروجیش رو فقط بر اساس برنامه بگیرد.
ساختمان داخلی میکروکنترلر:
کامپیوتری که الان بر روی اون دارین کار انجام میدین دارای یک پردازنده مرکزیه به نام cpu که از کنار هم قرار گرفتن چندین ملیون ترانزیستور تشکیل شده و بر روی اطلاعات پرداژش انجام میده . میکرو کنترلر هم عینا دارای یک پردازنده مرکزی به نام cpu است که دقیقا کار cpu کامپیوتر رو انجام میده با این تفاوت که قدرت و سرعت پردازشش از cpu کمتره که به اون میکروپرسسور میگن در بخش بعدی فرق میکرو پرسسور و میکروکنترلر را بررسی میکنیم. میکروکنترلر علاوه بر cpu دارای حافظه است که ما برنامه ای که بهش میدیم در اون قرار بگیره در کنار حافظه در میکروکنترلرهای امروزی تایمرها برای تنظیم زمان کانتر ها برای شمردن کانال های آنالوگ به دیجیتال پورت های برای گرفتن و دادن اطلاعات و امکاناتی دیگر که بعدا مفصل راجع به هر کدام توضیح داده میشه تشکیل شده و همه اینها در یک چیپ قرار گرفته که تنکنولوژی جدید اونو تو یک تراشه به اندازه یک سکه قرار داده.
تفاوت میکروپروسسور و میکروکنترلر:

میکروپرسسور همانطور که گفته شد یک پردازنده است و برای کار باید به آن چیپ های حافظه و چیز های دیگری را به اون اضافه کرد این امکان به درد این میخورد که بر حسب کارمان حافظه مناسب و دیگر قطعات را مانند تایمرها و غیره به صورت بیشتری استفاده کنیم ولی مدار خیلی پیچیده میشود و از لحاظ هزینه هم هزینه بیشتر میشود به همین دلیل امروزه از میکروپرسسورها کمتر استفاده میشود اما این روزها میکرو کنترلر های جدید با حافظه های زیاد تعداد تایمر زیاد پورت های زیاد و تنوع بسیار زیاد انها بر حسب این امکانات دست ما را باز گذاشته است تا دیگر میکروپرسسورها را فراموش کنیم.
آیا میکروکنترلر چیز جدیدی را با خود آورده است ؟

جواب منفی است تمام کارهایی که ما با میکروکنترلر میتوانیم انجام بدهیم با قطعات دیگر هم میتوانیم انجام بدهیم چون ما قبلا هم تایمر داشتیم هم کانتر هم حافظه هم پردازنده و… . در واقع میکروکنترلر قطعه ای است با تمام این امکانات که به صورت یک آی سی آماده شده است و هزینه پیچیدگی و حجم را به نحوه قابل ملاحضه ای کاهش میدهد.
عیب میکروکنترلر:
میکروکنترلر با این همه مزایا که گفتیم دارای یک عیب کوچیک است .و آن سرعت پایین ! است آیا سرعتی معادل یک ملیونیوم ثانیه سرعت کمی است ؟ سرعت کمی نیست ولی یک مثال شاید بحثو بهتر باز کند .
یک گیت منطقی رو در نظر بگیرین که با توجه به ورودی خروجیشو تنظیم مکنه سرعت عمل این گیت منطقی ۱۰ به توان منفی ۹ ثانیه است یعنی نانو ثانیه ولی اگر ما بخواهیم این گیت رو با میکروکنترلر کار کنیم سرعتی معادل میکرو ثانیه داریم پس از لحاظ سرعت برای کاربردهای خیلی محدودی میکروکنترلر مناسب نیست.
خب حالا این میکروکنترلر را با این همه کاربرد کی ساخته؟
حدود ۴ دهه پیش در سال ۱۹۷۱ میلادی شرکت اینتل اولین میکروکنترلر را ساخت و اولین میکروکنترلر را با نام ۸۰۸۰ در اوایل سال ۱۹۸۰ روانه بازار کرد .همین شرکت اینتلی که الان در ساخت cpu یکه تاز دنیاست .اما بعدا این امتیاز رو به شرکت های دیگری واگذار کرد و شرکت های زیادی در حال حاضر میکروکنترلر های مختلف تولید میکنند

ساختمان داخلی میکروکنترلر:
کامپیوتری که الان بر روی اون دارین کار انجام میدین دارای یک پردازنده مرکزیه به نام cpu که از کنار هم قرار گرفتن چندین ملیون ترانزیستور تشکیل شده و بر روی اطلاعات پرداژش انجام میده . میکرو کنترلر هم عینا دارای یک پردازنده مرکزی به نام cpu است که دقیقا کار cpu کامپیوتر رو انجام میده با این تفاوت که قدرت و سرعت پردازشش از cpu کمتره که به اون میکروپرسسور میگن در بخش بعدی فرق میکرو پرسسور و میکروکنترلر را بررسی میکنیم. میکروکنترلر علاوه بر cpu دارای حافظه است که ما برنامه ای که بهش میدیم در اون قرار بگیره در کنار حافظه در میکروکنترلرهای امروزی

تایمرها برای تنظیم زمان کانتر ها برای شمردن کانال های آنالوگ به دیجیتال پورت های برای گرفتن و دادن اطلاعات و امکاناتی دیگر که بعدا مفصل راجع به هر کدام توضیح داده میشه تشکیل شده و همه اینها در یک چیپ قرار گرفته که تنکنولوژی جدید اونو تو یک تراشه به اندازه یک سکه قرار داده.
تفاوت میکروپروسسور و میکروکنترلر:
میکروپرسسور همانطور که گفته شد یک پردازنده است و برای کار باید به آن چیپ های حافظه و چیز های دیگری را به اون اضافه کرد این امکان به درد این میخورد که بر حسب کارمان حافظه مناسب و دیگر قطعات را مانند تایمرها و غیره به صورت بیشتری استفاده کنیم ولی مدار خیلی پیچیده میشود و از لحاظ هزینه هم هزینه بیشتر میشود به همین دلیل امروزه از میکروپرسسورها کمتر استفاده میشود اما این روزها میکرو کنترلر های جدید با حافظه های زیاد تعداد تایمر زیاد پورت های زیاد و تنوع بسیار زیاد انها بر حسب این امکانات دست ما را باز گذاشته است تا دیگر میکروپرسسورها را فراموش کنیم.
آیا میکروکنترلر چیز جدیدی را با خود آورده است ؟

جواب منفی است تمام کارهایی که ما با میکروکنترلر میتوانیم انجام بدهیم با قطعات دیگر هم میتوانیم انجام بدهیم چون ما قبلا هم تایمر داشتیم هم کانتر هم حافظه هم پردازنده و… . در واقع میکروکنترلر قطعه ای است با تمام این امکانات که به صورت یک آی سی آماده شده است و هزینه پیچیدگی و حجم را به نحوه قابل ملاحضه ای کاهش میدهد.
عیب میکروکنترلر:
میکروکنترلر با این همه مزایا که گفتیم دارای یک عیب کوچیک است .و آن سرعت پایین ! است آیا سرعتی معادل یک ملیونیوم ثانیه سرعت کمی است ؟ سرعت کمی نیست ولی یک مثال

شاید بحثو بهتر باز کند .
یک گیت منطقی رو در نظر بگیرین که با توجه به ورودی خروجیشو تنظیم مکنه سرعت عمل این گیت منطقی ۱۰ به توان منفی ۹ ثانیه است یعنی نانو ثانیه ولی اگر ما بخواهیم این گیت رو با میکروکنترلر کار کنیم سرعتی معادل میکرو ثانیه داریم پس از لحاظ سرعت برای کاربردهای خیلی محدودی میکروکنترلر مناسب نیست.
خب حالا این میکروکنترلر را با این همه کاربرد کی ساخته؟
حدود ۴ دهه پیش در سال ۱۹۷۱ میلادی شرکت اینتل اولین میکروکنترلر را ساخت و اولین میکروکنترلر را با نام ۸۰۸۰ در اوایل سال ۱۹۸۰ روانه بازار کرد .همین شرکت اینتلی که الان در ساخت cpu یکه تاز دنیاست .اما بعدا این امتیاز رو به شرکت های دیگری واگذار کرد و شرکت های زیادی در حال حاضر میکروکنترلر های مختلف تولید میکنند
معایب و مزایای میکروکنترلر های مختلف نسبت به هم:
از آن جای که ۶۸۱۱ و z8 خیلی کمتر استفاده میشوند به معرفی سه نوع دیگر میپردازم.
۱) اول از ۸۰۵۱ :
که اولین میکروکنترلری بود که به دست بشر ساخته شد شروع میکنیم . همانطور که در مقاله قبلی گفته شد ابتدا این میکروکنترلر توسط شرکت بزرگ intel ساخته شد .اما بعدا intel این امکان را به دیگر شرکت ها داد که این میکروکنترلر را تولید کنند و شرکت هایی مانند ATMEL , PHILIPS , SIEMENS , DALLAS و… به تولید این میکروکنترلر پرداختنند یکی از شرکت هایی که به صورت گسترده به تولید این تراشه پرداخت ATMEL بود که مدل های مختلف میکروکنترلر ساخت این شرکت در سرار جهان و در ایران به خوبی یافت می شود. اما اگربخواهیم به صورت کلی سیر پیشرفت این نوع میکروکنترلر رو در نظر بگیریم اولین میکروکنترلر هایی که ساخته شد با جدیدترین میکروکنترلرهای ۸۰۵۱ که الان تولید میشود با توجه به این پیشرفت شگفت در تمام زمینه ها که صنایع دیگر در دنیا دارند پیشرفت زیادی ندارد به طور مثال AT89S5X که میکروکنترلر ۸۰۵۱ جدید ساخت ATMEL است نسبت به مدل های اولیه ۸۰۵۱ پیشرفت آنچنانی ندارد . امکانات این میکرو نسبت به AVR و PIC قابل مقایسه نیست . به صورتی که که همین مدل جدید ۸۰۵۱ تقریبا حافظه ای برابر یک صدم (۰٫۰۰۱ ) میکروکنترلر های AVR را دارد و سرعتش ۴ برابر کمتر از میکروکنترلر

های PIC و ۱۲ بار کمتر از میکروکنترلر های AVR است . از لحاظ امکانات دیگر هم چنین ضعفی احساس میشود. اما برای کارهای ساده تر که پیچیدگی زیادی در آن نباشد به خاطر قیمت بسیار پایینی که این میکروکنترلر دارد بسیار مناسب است . قیمت همین مدل جدید AT89S5X حول و حوش ۱۰۰۰ تومان است که قیمت بسیار مناسبی است.
این میکرو کنترلر از زبان اسمبلی و C پشتیبانی میکند که زبان برنامه نویسی اصلی آن اسمبلی است که واقعا نوشتن با این زبان برنامه نویسی نسبت به زبان های برنامه نویسی دیگر هم مشکل تر و هم طولانی تر است. در کل این میکروکنترلر امروزه دیگر توانای رقابت با AVR و PIC رو ندارد و امروزه رقابت اصلی بین این دو میکروکنترلر است.

۲) میکروکنترلر PIC
واقعا میکروکنترلر خیلی قوی است که بر اساس بعضی آمار ها بیشترین کاربر را به خود اختصاص داده است البته متذکر شوم که در ایران این آمار به نفع AVR است. این میکروکنترلر ساخت شرکت میکرو چیپ است که PIC رو در مدل های خیلی زیادی با امکانات مختلف برای کارهای مختلف میسازد . این میکروکنترلر با مدل های مختلفPIC16XXX و PIC12XXXX که به جای X دوم از چپ به راست حروف C ,X,E,F قرار میگره که هر کدام مفهوم خاصی داره که چون بحث ما آموزش AVR است از روی اون سریع میگزریم X های بعدی هم اعدادی هستنند که نشان دهنده مدل های مختلف هستنند.
۳) میکروکنترلر AVR
به میکروکنترلر AVR میرسیم که به نظر من و خیلی از دیگر بهترین میکروکنترلر موجود در بازار است البته خود من با ۸۰۵۱ و AVR بخصوص AVR خیلی کار کردم ولی تجربه ای با PIC ندارم و قضاوت من ممکنه یه طرفه باشه ولی این نظر بسیاری از کسانی است که با AVR کار کرده اند .به دلایلی….. اول از همه سرعت این میکروکنترلر بسیار بالاست و به قولی دستوراتی که بهش داده میشه در یک سیکل کلاک انجام میده در صورتی که این سیکل کلاک برای ۸۰۵۱ باید تقسیم بر۱۲شودو برای PIC باید تقسیم بر ۴ بنابراین AVR سریعترین میکروکنترلر موجود در بازار است . AVR از زبان های برنامه نویسی سطح بالا یا به اصطلاح (HIGH LEVEL LANGUAGE) HLL

پشتیبانی میکند که باعث تولید کدهای بیشتری میشود که در کل برنامه نوشته شده نسبت به برنامه هایی که برای ۸۰۵۱ و PIC نوشته میشود کوتاهتر است. امکانات جانبی این میکروکنترلر بسیار مناسب است و شما را از خرید بعضی لوازم جانبی مانند چیپ های آنالوگ به دیجیتال (ADC) , مقایسه گر آنالوگ و… راحت میکند .در ضمن AVR از بسیاری از استاندارد های ارتباطی مانند SPI,UART,12C,JTAG پشتیبانی میکند که به راحتی میتوان این میکروکنترلر را با میکروکنترلر دیگر یا و سایل دیگر وصل کرد و با وسایل دیگر به راحتی ارتباط برقرار کند. قیمت این میکروکنترلر هم به نسبت امکانات فراوانی که داره بسیار پایین است.