میکروکنترلرها مانند رایانه های بسیار کوچکی میباشند که در بیشتر لوازم الکتریکی کاربرد دارند ، کاربرد میکروکنترلرها گستره بسیار بزرگی دارد؛ برای مثال در راهاندازی یک LED کوچک تا کنترل موتور خودروها.
برای فهم کارکرد میکروکنترلرها بهتر است ابتدا با اجزاء سازنده آن آشنا شویم:
شکل 1 اجزاء سازنده میکروکنترلر
- CPU: در اصل همان مغز میکروکنترلر است، که وظیفهی استخراج و پردازش دادهها، انجام محاسبات و وظایف اختصاصداده شده را بر عهده دارد.
- حافظه : هر میکروکنترلر از مقدار مشخصی ROM،RAM و فلش ساخته می شود و تمام برنامهها و دادهها میکروکنترلر در این واحد ذخیره میشوند. پردازنده (CPU) معمولا از این واحد برای ذخیرهسازی و دسترسی به اطلاعات استفاده میکند. حافظه میکروکنترلرها از دو بخش بلندمدت و کوتاهمدت تشکیل میشود، حافطه بلندمدت دستورالعمل هایی است که CPU به آن نیاز دارد و نیاز به اتصال الکتریکی ندارد و دائمی میباشد. بخش دیگر حافظه قسمت کوتاه مدت است که مربوط به دستورالعمل های در حال انجام میباشد، این بخش از حافظه موقتی میباشد و تا زمانی باقی میماند که اتصال الکتریکی برقرار باشد.
- ورودی و خروجی ها : پورتهای ورودی و خروجی (I/O) در اصل راه ارتباطی هستند که تمامی میکروکنترلرها از آنها برای اتصال به وسایل جانبی، دریافت ورودی و نمایش خروجی استفاده می کنند.
- تایمر: برای تولید پالس، اندازهگیری فرکانس، ساخت نوسانات و … هر میکروکنترلر به یک یا چند تایمر (شمارنده) نیاز دارد تا با کمک آنها، عملیات زمانبندی و شمارش را کنترل نماید.
- مبدل آنالوگ به دیجیتال (ADC) و مبدل دیجیتال به آنالوگ :(DCA) بیشتر کمیتهای اطراف ما که برای اندازه گیری، کنترل و شبیهسازی از آنها استفاده میکنیم، آنالوگ و پیوسته هستند اما میکروکنترلر تنها مقادیر دیجیتال را درک میکند. در نتیجه ما برای ایجاد یک زبان مشترک بین میکروکنترلر و کمیت هایی مانند گرما، نور و… از مبدل های ADC و DCA کمک می گیریم.
حال که با اجزاء سازنده میکروکنترلرها آشنا شدیم میتوانیم نحوه کارکرد آن را بهتر درک کنیم.
میکروکنترلرها اطلاعاتی که از طریق بخش (I/O) از دستگاه دریافت میکنند را به صورت موقتی درون حافظه خود دخیره میکنند، سپس این اطلاعات توسط پروسسور(CPU) خوانده شده و عملیات مورد نظر توسط پروسسور انجام شده و دوباره توسط بخش (I/O) به دستگاه منتقل میشود تا عملیات مورد نظر انجام شود. این مراحل به طور کلی و ساده شده نحوه کارکرد میکروکنترلرها را بیان میکند ولی در واقعیت مراحل دیگری در این میان با پیچیدگی های بالاتری وجود دارد؛ برای مثال میتوان به این موضوع اشاره کرد که ذهن میکروکنترلر یا همان CPU تنها زبان باینری (01010) را متوجه میشود بنابراین باید در این میان یک مترجم برای برای تبدیل دستورها به کد باینری وجود داشته باشد. کامپایلرها در این میان نقش مترجم را ایفا میکنند تا دستورات را به زبان ماشین تبدیل کنند. از دیگر پیچیدگیهای موجود در عملکرد میکروکنترلرها میتوان به این موضوع اشاره کرد که گاهی ورودی میکروکنترلرها میتواند به صورت آنالوگ باشد مانند سنسورهای حساس به نور یا گرما، در این موارد ورودی های آنالوگ باید به دیجیتال تبدیل شوند تا میکروکنترلر توانایی درک آن را داشته باشد، در این موارد از از مبدل های تبدیل آنالوگ به دیجیتال (ADC) استفاده میشود. اگر این تبدیل برای خروجی میکروکنترلر لازم باشد، باید در انتها از مبدل دیجیتال به آنالوگ (DCA) نیز استفاده شود.
شکل 2 تبدیل کد دستور به زبان ماشین توسط کامپایلر
همانطور که گفته شد کاربرد میکروکنترلرها گستره بسیار وسیعی دارد و به همین تنوع بسیار بالایی نیز دارند، برای مثال میکروکنترلرها در خودرو برای کنترل موتور و سیستمهای جانبی آن بهکار برده میشوند، این میکروکنترلرها وظیفه محاسبه میزان سوخت تزریق شده به سیلندر و زمانبندی احتراق را بر عهده دارند.
از دیگر کاربردهای میکروکنترلرها میتوان به لوازم خانگی مانند سشوار و یا جاروبرقی اشاره نمود که در این موارد میکروکنترلرهای به کار رفته شده باید سبک و ارزان قیمت باشند.
با توجه به اهمیت و حساسیت کاربرد، و همچنین بودجه و ابعاد دستگاه مورد نظر میکروکنترلر مناسب انتخاب میشود.
شکل3 سهم صنایع مختلف در کاربرد میکروکنترلرها
از برند های سازنده میکروکنترلرهای پرفروش میتوان به Arduino که نوعی میکروکنترلر متنباز (open-source) با رابطکاربری ساده ارائه میکند اشاره نمود که برای استفادههای ساده و ارزانقیمت کاربرد فراروانی دارد.(شروع فعالیت این برند در ایتالیا بوده و هماکنون بخش عمدهای از تولیدات Arduino در کشور آمریکا انجام میشود)
نوع دیگری از میکروکنترلرها توسط شزکت Raspberry Pi ارائه میشوند که ابعاد بسیار کوچکی دارند و همچنین اقتصادی میباشند و میتوانند به عنوان یک کامپیوتر مستقل در لوازم مختلف استفاده شوند.(این نوع از میکروکنترلرها در کارخانههای شرکت سونی در کشورهای ولز، چین و ژاپن تولید میشوند)
همچنین شرکت PIC Microcontroller انواع دیگری از میکروکنترلر را ارائه میکند که در سیستمهای پیشرفته تر تعبیه میشوند و در صنایعی مانند خودروسازی و صنایع نظامی کاربرد دارند.(بخش اصلی تولیدات این شرکت در کشور هند میباشد)
در شرکت STMicroelectronics انواع بسیار پیشرفته میکروکنترلرها (مانند STM32) تولید میشود که در سیستمهای امنیتی و سیستمهای کنترلی کاربرد دارند.(دفتر اصلی این شرکت در کشور سوییس میباشد ولی تولیدات عمده آن در کشورهای فرانسه و ایتالیا صورت میگیرد)
شکل 4 تصویری از میکروکنترلر STM32
استفاده از میکروکنترلرها در مقایسه با میکروپروسسورها در اکثر موارد سادهتر و بهصرفهتر میباشد برای درک بهتر این موضوع به مقایسه کلی این دو میپردازیم:
میکروپروسسور در اصل همان CPU یا مغز میکروکنترلر است که تمام عملیات محاسباتی و منطقی روی دادهها توسط آن انجام می شود. اصلی ترین تفاوت بین میکروکنترلر و میکروپروسسور نیز در طریقهی اتصال آنها به تجهیزات جانبی خارجی است. تمام وسایل جانبی به کاربرده شده در میکروکنترلر، به صورت واحد در تراشه، در کنار هم فشرده شدهاند، اما برای اتصال همین تجهیزات به میکروپروسسور باید از نمونه های بزرگتر آنها استفاده نماییم. در شکل 3 تفاوت میان میکروپروسسور و میکروکنترلر به تصویر کشیده شده است. در سمت راست شکل میکروپروسسور مشاهده میشود که برای کاربرد و استفاده در لوازم نیاز به اتصالات خارجی نیز میباشد که این امر استفاده از میکروپروسسور را کمی سختتر میکند. در سمت چپ تصویر میکروکنترلر مشاهده میشود که بخش های زیادی را شامل میشود و استفاده از آن به طور مستقل سادهتر بوده و کاربرد گستردهتری دارد.
شکل 5تفاوت میان میکروکنترلر و میکروپروسسور
با توجه به کاربرد بسیار گسترده میکروکنترلرها و استفاده روزافزون لوازم الکتریکی که از انواع میکروکنترلرها بهره میبرند، پیشبینی میشود که صنعت میکروکنترلرها هر ساله افزایش چشمگیری داشته باشد و بودجه بیشتری به آن اختصاص داده شود.
شکل 6پیشبینی مقدار بازار میکروکنترلرها تا سال 2032
در نمودار قبل به میزان فروش و پیشبینی فروش برحسب میلیارد دلار پرداخته شده بود، حال برای درک بهتر ابعاد گسترده این صنعت وسیع به تعداد فروش و تولید میکروکنترلرها در هر سال بر حسب میلیارد میکروکنترلر ساخته شده پرداخته میشود.
شکل 7 تعداد میکروکنترلرهای تولید شده در سالهای اخیر
در میان این بازار وسیع، پنج شرکت بزرگ تامین کننده میکروکنترلر در حدود 82 درصد از سهم فروش را به خود اختصاص دادهاند. نام این شرکتها و سهم هر یک، از بازار میکروکنترلرها در ادامه آورده شده است (در این جدول شرکتهای مادر آورده شدهاند برای مثال AVR از زیرمجموعههای Microchip Technology بوده و همچنین ARM از زیرمجموعههای Renesas میباشد).
شکل 8شرکت های سازنده میکروکنترلرها با بیشترین سهم بازار