ریزکنترل‌گر

[چپ|بندانگشتی|230px|تراشهٔ اینتل ۸۷۴۲، یک میکروکنترولر ۸ بیتی شامل [پردازشگر|پردازنده ۱۲ مگاهرتزی، حافظه دسترسی تصادفی ۱۲۸ بایتی، ای‌پی‌رام ۲۰۴۸ بایتی و ورودی/خروجی]]

**میکروکُنترلر**  گونه‌ای ریزپردازنده است که دارای حافظهٔ دسترسی تصادفی (RAM) و حافظهٔ فقط‌خواندنی (ROM)، تایمر، پورت‌های ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال) درون خود تراشه است، و می‌تواند به تنهایی ابزارهای دیگر را کنترل کند. به عبارت دیگر یک میکروکنترلر، مدار مجتمع کوچکی است که از یک CPU کوچک و اجزای دیگری مانند تایمر، درگاه‌های ورودی و خروجی آنالوگ و دیجیتال و حافظه تشکیل شده‌است که برای اجرای دستورالعمل های داده شده به یک سیستم بزرگ تر استفاده می شود.آن‌ها معمولا نسبت به رایانه‌ها از انرژی کمتری استفاده می‌کنند. در حالی که رایانه‌ها می‌توانند طیف وسیعی از فعالیت‌های مختلف را انجام دهند، میکروکنترلرها برای انجام کارهای مشخص شده و خاص مناسب هستند.‌

در واقع یک ریزپردازنده درون میکروکنترولر قرار گرفته‌است که با استفاده از آن می‌تواند محاسبات منطقی و حسابی را انجام دهد.

وجود RAM و ROM و پورت‌های I/O در میکروکنترلرها آن‌ها را یک انتخاب ایده‌آل برای کاربردهایی می‌کند که قیمت و اندازه در آن‌ها مهم است. در بسیاری از کاربردها مثل کنترل از راه دور تلویزیون نیازی به محاسبات سنگین در حد یک ۴۸۶ یا حتی ۸۰۸۶ وجود ندارد. در این گونه موارد و بسیاری دیگر از کاربردها فضای مورد استفاده توان مصرفی و قیمت هر واحد مهم تر از قدرت محاسبات است. در این گونه موارد اغلب لازم است تعدادی I/O خوانده شده و بیت‌های مشخصی را خاموش یا روشن کند.
به همین دلیل این گونه پردازنده‌ها را (IBP (ITTY-BITTY PROCESSOR نیز می‌نامند.

میکروکنترلرها عموماً برای کاربردهای کوچک طراحی می‌شوند، بنابراین برخلاف ریزپردازنده‌ها در این‌جا مهم‌ترین مسائل، سادگی و مصرف کم توان است.

## تاریخچه

### سابقه
اولین ریزپردازنده های چند تراشه ای، سیستم های چهار فاز AL1 در سال 1969 و Garrett AiResearch  MP944 در سال 1970، با چندین تراشه MOS LSI توسعه یافتند. اولین ریزپردازنده تک تراشه ای اینتل 4004 بود که در سال 1971 بر روی یک تراشه MOS LSI عرضه شد. این پردازنده توسط فدریکو فاگین، با استفاده از فناوری MOS دروازه سیلیکونی، همراه با مهندسان اینتل، مارسیان هاف و استن مازور، و مهندس شرکت بوسیکم، ماساتوشی شیما، توسعه داده شد.پس از آن، 4 بیتی اینتل 4040، 8 بیتی اینتل 8008، و 8 بیتی اینتل 8080 قرار گرفتند. همه این پردازنده ها به چندین تراشه خارجی برای پیاده سازی یک سیستم کار نیاز داشتند، از جمله تراشه های حافظه و رابط جانبی. در نتیجه، کل هزینه سیستم چند صد دلار (دهه 1970 آمریکا) بود که کامپیوتری کردن وسایل کوچک را غیرممکن می‌کرد.

شرکت MOS Technology ریزپردازنده های زیر 100 دلاری خود را در سال 1975 معرفی کرد، 6501 و 6502. هدف اصلی آنها کاهش این مانع هزینه بود، اما این ریزپردازنده ها همچنان به پشتیبانی خارجی، حافظه و تراشه های جانبی نیاز داشتند که هزینه کل سیستم را در صدها دلار نگه می داشت.

### توسعه
یک کتاب به مهندسان شرکت TI، گری بون و مایکل کوکران، با ایجاد موفقیت آمیز اولین میکروکنترلر در سال 1971 اعتبار می دهد.نتیجه کار آنها TMS 1000 بود که در سال 1974 به صورت تجاری در دسترس قرار گرفت. حافظه فقط خواندنی، حافظه خواندن/نوشتن، پردازنده و ساعت را روی یک تراشه ترکیب کرد و سیستم‌های جاسازی شده را هدف قرار داده بود.

در اوایل تا اواسط دهه 1970، سازندگان لوازم الکترونیکی ژاپنی شروع به تولید میکروکنترلرهایی برای خودروها ، از جمله MCU های 4 بیتی برای سرگرمی در خودرو، برف پاک کن های خودکار، قفل های الکترونیکی و داشبورد، و MCU های 8 بیتی برای کنترل موتور کردند.

تا حدی در پاسخ به وجود TMS 1000 تک تراشه ای، اینتل یک سیستم کامپیوتری را بر روی یک تراشه بهینه سازی شده برای برنامه های کاربردی کنترل، Intel 8048، توسعه داد که قطعات تجاری برای اولین بار در سال 1977 ارسال شد. رم و رام را روی یک تراشه با یک ریزپردازنده ترکیب کرد. در میان برنامه های متعدد، این تراشه در نهایت به بیش از یک میلیارد صفحه کلید رایانه شخصی راه پیدا می کند. در آن زمان، رئیس اینتل، لوک جی. والنتر، اظهار داشت که میکروکنترلر یکی از موفق ترین محصولات در تاریخ این شرکت است و او بودجه بخش میکروکنترلر را تا بیش از 25 درصد افزایش داد.

اکثر میکروکنترلرها در این زمان دارای انواع دیگر بودند. یکی دارای حافظه برنامه EPROM بود، با یک پنجره کوارتز شفاف در درب بسته که اجازه می دهد با قرار گرفتن در معرض نور ماوراء بنفش پاک شود. این تراشه های پاک شدنی اغلب برای نمونه سازی استفاده می شدند. نوع دیگر یا یک ROM برنامه ریزی شده ماسک یا یک نوع PROM بود که فقط یک بار قابل برنامه ریزی بود. برای دومی، گاهی اوقات از نام OTP استفاده می شد که مخفف "قابل برنامه ریزی یک بار" است. در یک میکروکنترلر OTP، PROM معمولاً از نوع EPROM یکسان بود، اما بسته تراشه فاقد پنجره کوارتز بود. چون راهی برای قرار دادن EPROM در معرض اشعه ماوراء بنفش وجود نداشت، نمی توان آن را پاک کرد. از آنجایی که نسخه‌های پاک‌شدنی به بسته‌های سرامیکی با پنجره‌های کوارتز نیاز داشتند، به‌طور قابل‌توجهی گران‌تر از نسخه‌های OTP بودند که می‌توانستند در بسته‌های پلاستیکی مات ارزان‌تر ساخته شوند. برای انواع پاک‌شدنی، به جای شیشه ارزان‌تر، کوارتز برای شفافیت آن در برابر نور ماوراء بنفش (که شیشه تا حد زیادی مات است) مورد نیاز بود، اما متمایزکننده اصلی هزینه، خود بسته‌بندی سرامیکی بود.

در سال 1993، معرفی حافظه EEPROM به میکروکنترلرها اجازه داد (از ریزتراشه PIC16C84 شروع شد)  به سرعت بدون بسته‌ای گران‌قیمت که برای EPROM مورد نیاز است، پاک شوند و امکان نمونه‌سازی سریع و برنامه‌نویسی درون سیستم را فراهم کند. (تکنولوژی EEPROM قبل از این زمان در دسترس بود،  اما EEPROM قبلی گرانتر و دوام کمتری داشت و آن را برای میکروکنترلرهای ارزان قیمت تولید انبوه نامناسب می کرد.) در همان سال، Atmel اولین میکروکنترلر را با استفاده از حافظه فلش معرفی کرد. ، نوع خاصی از EEPROM. سایر شرکت‌ها با هر دو نوع حافظه، به سرعت از این روش پیروی کردند.

امروزه میکروکنترلرها ارزان هستند و به راحتی برای علاقمندان در دسترس هستند، با جوامع آنلاین بزرگ در اطراف پردازنده های خاص.

### حجم تولید و هزینه
در سال 2002، حدود 55 درصد از کل پردازنده های فروخته شده در جهان، میکروکنترلرها و ریزپردازنده های 8 بیتی بودند.بیش از دو میلیارد میکروکنترلر 8 بیتی در سال 1997 فروخته شد، و طبق گفته Semico، بیش از چهار میلیارد میکروکنترلر 8 بیتی در سال 2006 فروخته شد.اخیراً، Semico ادعا کرده است که بازار MCU 36.5٪ در سال 2010 و 12٪ در سال 2011 رشد کرده است.یک خانه معمولی در یک کشور توسعه یافته احتمالاً تنها دارای چهار ریزپردازنده همه منظوره است اما حدود سه دوجین میکروکنترلر. یک خودروی میان رده معمولی حدود 30 میکروکنترلر دارد. آنها همچنین در بسیاری از وسایل الکتریکی مانند ماشین لباسشویی، اجاق های مایکروویو و تلفن یافت می شوند.

هزینه ساخت می تواند زیر 0.10 دلار در هر واحد باشد. هزینه در طول زمان به شدت کاهش یافته است، ارزان‌ترین میکروکنترلرهای 8 بیتی با قیمت کمتر از 0.03 دلار در سال 2018، [13] و برخی میکروکنترلرهای 32 بیتی حدود 1 دلار آمریکا برای مقادیر مشابه در دسترس هستند.در سال 2012، به دنبال یک بحران جهانی - بدترین کاهش فروش سالانه و بهبود و متوسط ​​قیمت فروش سالانه 17٪ - بزرگترین کاهش از دهه 1980 - میانگین قیمت یک میکروکنترلر 0.88 دلار آمریکا (0.69 دلار برای 4-) بود. /8 بیت، 0.59 دلار برای 16 بیت، 1.76 دلار برای 32 بیت). در سال 2012، فروش جهانی میکروکنترلرهای 8 بیتی حدود 4 میلیارد دلار بود، در حالی که میکروکنترلرهای 4 بیتی نیز فروش قابل توجهی داشتند. در سال 2015، میکروکنترلرهای 8 بیتی را می‌توان به قیمت 0.311 دلار (1000 واحد)، [15] 16 بیت با 0.385 دلار (1000 واحد)، [16] و 32 بیت با قیمت 0.378 دلار (1000 واحد، اما 0.35 دلار برای 5،00 واحد) خریداری کرد. در سال 2018، میکروکنترلرهای 8 بیتی را می توان با 0.03 دلار،  16 بیتی با 0.393 دلار (1000 واحد، اما 0.563 دلار برای 100 یا 0.349 دلار برای حلقه کامل 2000 دلار)، و 350 بیتی (1،0 دلار) خریداری کرد. واحد، اما 0.466 دلار برای 5000). یک میکروکنترلر 32 بیتی با قیمت پایین تر، در واحد یک، می تواند با 0.891 دلار خریداری شود. در سال 2018، میکروکنترلرهای ارزان قیمت بالا از سال 2015 همگی گران تر هستند (با تورم محاسبه شده بین قیمت های 2018 و 2015 برای آن واحدهای خاص) به این صورت: میکروکنترلر 8 بیتی را می توان با قیمت 0.319 دلار (1000 واحد) یا 2.6 درصد بالاتر خریداری کرد. یکی 16 بیتی برای 0.464 دلار (1000 واحد) یا 21 درصد بالاتر،  و یکی 32 بیتی برای 0.503 دلار (1000 واحد، اما 0.466 دلار برای 5000) یا 33 درصد بالاتر.

### کوچکترین کامپیوتر
در 21 ژوئن 2018، "کوچکترین کامپیوتر جهان" توسط دانشگاه میشیگان معرفی شد. این دستگاه یک «سیستم حسگر بی‌سیم و بدون باتری 0.04 میلی‌متری 16 نانوواتی با پردازنده Cortex-M0+ یکپارچه و ارتباط نوری برای اندازه‌گیری دمای سلولی است». اندازه آن فقط 0.3 میلی‌متر در یک طرف است – که با یک دانه برنج کوچک می‌شود. [...] علاوه بر رم و فتوولتائیک، دستگاه‌های محاسباتی جدید دارای پردازنده‌ها و فرستنده‌ها و گیرنده‌های بی‌سیم هستند. زیرا آنها برای داشتن معمولی بسیار کوچک هستند. آنتن‌های رادیویی، داده‌ها را با نور مرئی دریافت و ارسال می‌کنند. یک ایستگاه پایه نور را برای برق و برنامه‌نویسی فراهم می‌کند و داده‌ها را دریافت می‌کند.» از ماه ها قبل در مارس 2018،  که "کوچکتر از یک دانه نمک" است،  دارای یک میلیون ترانزیستور، هزینه ساخت آن کمتر از 0.10 دلار است، و در ترکیب با فناوری بلاک چین، برای تدارکات و "کریپتو" در نظر گرفته شده است. -anchors" - برنامه های کاربردی اثر انگشت دیجیتال.

## اجزا
یک میکروکنترلر از بخش‌هایی بسیار زیادی مانند پردازنده، RAM، ROM و FLASH وPORT و TIMER و USART و ADC و DAC و USB و CAN و ISP و و بخش های بسیاری دیگر تشکیل شده‌است. در اینجا سعی میکنیم که توضیح مختصری در مورد هرکدام از آن ها بنویسیم .

حافظه Flash

این نوع حافظه برای ذخیره سازی کد های کامپایلر شده میکروکنترلر می باشد که هر چه بزرگتر باشد قیمت بیشتری باید بپردازید البته فاکتور های بسیار زیادی در قیمت تاثیرگذار هستند. 

Port

این بخش وظیفه ارتباط با دنیای بیرون از میکروکنترلر را بر عهده دارد از قطعات الکترونیکی مانند LED ,7Segment ,Sensor ,LCD , Keypad گرفته تا کامپیوتر و یا هر چیزی که در ذهن شماست باید از این طریق به میکروکنترلر وصل شوند.حتی از طریق پورت میتوان دو یا چند میکروکنترلر را به همدیگر متصل کرد .

تایمر (Timer)

این واحد کار اندازه گیری زمان را انجام میدهد فرض کنید میخواهید هر یک ثانیه کار خاصی را انجام دهید برای اینکار باید واحد تایمر را فعال کرده و تنظیمات آن را انجام دهید 

USB

گاهی اوقات نیاز دارید فرمانی را از سمت کامپیوتر به میکروکنترلر بفرستید برای اینکار دو پورت USB و UART را میتوانید انتخاب کنید که برنامه نویس براساس نیاز پروژه تشخیص می دهد کدام را راه اندازی نماید همچنین این بخش به چند نوع قابل پیکره بنده هست مثل Host , Device , ......

USART

برای ارتباط بین کامپیوتر و میکروکنترلر میتوانید از این واحد استفاده نمایید بعد از فعال و پیکره بندی آن میتوانید دستوری یا کاراکتر را از کامپیوتر دریافت و یا به کامپیوتر ارسال کنید.  

بخش ADC/DAC

از آنجا که میکروکنترلر معمولاً برای مقاصد کنترلی استفاده می‌شوند، نیاز به برقراری ارتباط با دستگاه تحت کنترل خود دارند. اما از آنجا که اکثر سیگنال‌های لازم برای این منظور سیگنال‌های آنالوگ هستند، باید ابتدا این سیگنال‌ها به صورت دودویی تبدیل شوند تا برای پردازنده قابل درک باشند. این کار توسط مبدل آنالوگ به دیجیتال صورت می‌گیرد. همچنین در برخی از میکروکنترلرها مبدل دیجیتال به آنالوگی هم وجود دارد که امکان فرمان دادن میکروکنترلر به دستگاه‌های با ورودی آنالوگ را فراهم می‌کند. 

از دیگر اجزای معمول و پرکاربرد در میکروکنترلرها، تایمرها هستند. تایمرها عموماً از یک شمارنده تشکیل می‌شوند که پس از تعداد مشخصی از شمارش، یک وقفه تولید می‌کنند که می‌تواند برای انجام متوالی یک کار مورد استفاده قرار گیرد. 

بخش PWM

بسیاری از میکروکنترلرها از واحد تولید مدولاسیون عرض پالس نیز برخوردارند. این واحد به خصوص در کاربردهای الکترونیک قدرت و کنترل موتور و نیز به عنوان مبدل دیجیتال به آنالوگ کاربرد دارد.

## میکروکنترلرهای رایج در ایران
بندانگشتی|Atmel AVR ATmega8 PDIP
از مهم‌ترین و بزرگ‌ترین تولیدکنندگان میکروکنترلرها می‌توان از شرکت اَتمِل  نام برد که در حال حاضر سری ای‌وی‌آر و ۸۰۵۱ میکروکنترلرهای این شرکت در ایران به دلیل سهولت استفاده مورد توجه است.

برنامه‌ریزی میکروکنترلرهای AVR بیشتر با زبان C و با کامپایلر codevision یا کامپایلر Atmel studio ، یا با زبان بیسیک و توسط نرم‌افزار BASCOM و یا با زبان اسمبلی انجام می‌شود.
یکی دیگر از تولیدکنندگان بزرگ میکروکنترلرها شرکت Microchip است که میکروکنترلرهای این شرکت با نام‌های تجاری PIC و dsPIC نیز از محبوبیت زیادی برخوردار است.

شرکت‌های بزرگ دیگری نیز در زمینه تولید میکروکنترلر فعالیت می‌کنند که از آن جمله می‌توان به TI، موتورولا و فیلیپس اشاره کرد. شرکت intel هم نقش بسیار مهمی در تولید میکروکنترلرهای خانوادهٔ ۸۰۵۱ دارد.

البته اخیراً با قدرتنمایی میکروکنترلرهای آرم، این میکروکنترلرهای ۳۲ بیتی با شدت بسیار زیادی در حال فراگیر شدن است و از رشد بسیار زیادی در بازار برخوردار است. میکروکنترلرهای آرم موجود در ایران توسط سه شرکت ان‌ایکس‌پی، اتمل و ST تولید می‌شوند؛ که در این میان سهم میکروکنترلرهای ST بیشتر است.

## تفاوت میکروکنترولر و ریزپردازنده
میکروکنترولر و ریزپردازنده (میکروپروسسور) تقریباً از یک شاخهٔ فناورانه (تکنولوژیک) و ساختاری هستند، اما در اجزا، با هم تفاوت‌های عمده دارند. در ریزپردازنده‌ها فقط واحد پردازش به صورت مجزا به صورت یک آی‌سی وجود دارد که رم و رام و حتی رجیسترها در آی‌سی‌های مجزا به ریزپردازنده وصل و تشکیل یک ریزرایانه می‌دهند، اما در میکروکنترلر تمام واحدها، از جمله رم و رام و رجیسترها، درون یک آی‌سی به نام میکروکنترلر وجود دارد که معمولاً در دستگاه‌های تجاری برای کاهش قیمت دستگاه مانند تلویزیون و ماکروویو و غیره استفاده می‌شود.

میکروپرسسورها بر خلاف میکروکنترلرها فاقد RAM و ROM و پورت‌های I/O درون خود تراشه هستند بنابراین برای اینکه بتوان سیستمی مبتنی بر میکروپرسسور را طراحی کرد باید RAM و ROM و پورت‌های I/O و تایمرها به آن اضافه شود. با توجه به اینکه طراح می‌تواند روی مقدار RAM و ROM و پورت‌های I/O اعمال نظر نماید، این سیستم‌ها انعطاف‌پذیری بشتری دارند. و به آن‌ها سیستم‌های چند منظوره می‌گویند. میکروکنترلرها شامل یک CPU به همراه مقدار ثابتی از RAM، ROM، پورت‌های I/O وتایمر هستند که همگی این اجزا در یک تراشه جای داده شده‌اند و طراح سیستم نمی‌تواند یک حافظه، I/O یا تایمر را بدون گسترش لازم از بیرون اضافه کند. بنابراین میکروکنترلرها انعطاف‌پذیری میکروپرسسورها را ندارند.

## کاربرد میکروکنترلرها
میکروکنترلر برای کاربردهایی که در آن‌ها قیمت و اندازه سیستم مهم است، مناسب است. زیرا اضافه کردن حافظه، پورت I/O تایمرها و مدار واسط لازم به میکرپروسسور سبب افزایش قیمت و اندازه سیستم می‌شود. میکروکنترلرها به‌طور گسترده‌ای در تولید سیستم‌های تک‌منظوره به کار می‌روند. منظور از سیستم تک‌منظوره سیستمی است که از میکروکنترلر یا میکرپروسسور فقط برای یک کار استفاده می‌کند. مانند پردازنده درون یک موس که تنها به منظور یافتن مکان اشاره گر موس و ارسال آن به PC برنامه‌ریزی شده‌است. این سیستم‌ها در مقابل سیستم‌های چند منظوره قرار می‌گیرند. که نمونه بارز آن یک PC است که می‌تواند برای کاربردهای متعدد و گوناگونی همچون واژه‌پردازی، بازی‌های ویدئویی، سرویس شبکه و ... مورد استفاده قرار گیرد. این توانایی PC در اجرای کارهای گوناگون به دلیل وجود سیستم عاملی است که نرم‌افزار کاربردی را در RAM بار می کند تا PC بتواند آن را اجرا کند. اما در یک سیستم تک‌منظوره تنها یک نرم‌افزار کاربردی موجود است که معمولاً درROM نوشته می‌شود. چند نمونه ساده از وسایلی که در ساخت آن‌ها از میکروکنترلرها استفاده شده‌است، عبارت اند از کنترل از راه دور تلویزیون، تلفن، دوربین فیلمبرداری، فاکس، چاپگر، دستگاه فتوکپی،سیستم‌های حفاظتی، دزدگیر و سیستم‌های کنترل صنعتی. 

به‌طور کلی می‌توان کاربرد میکروکنترلرها را در طراحی مدارهای کنترل و اتوماسیون خلاصه کرد .

## منابع

## پیوند به بیرون
* پرسش و پاسخ‌های مرتبط با میکروکنترلر در پرسشکده
* انجمن تخصصی میکروکنترلر و الکترونیک ایران

رده:الکترونیک دیجیتال
ریزکنترل‌گرها