ریزکنترل‌گر

تراشه اینتل ۸۷۴۲، یک ریزکنترل‌کننده ۸ بیتی شامل پردازشگری ۱۲ مگاهرتزی، حافظه دسترسی تصادفی ۱۲۸ بایتی، ای‌پی‌رام ۲۰۴۸ بایتی و ورودی/خروجی
ریزکنترلگر یا میکروکنترلر نوعی ریزپردازنده است که دارای حافظه دسترسی تصادفی (RAM) و حافظه فقط خواندنی (ROM)، تایمر، پورت‌های ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال) در درون خود تراشه می‌باشد و می‌تواند به تنهایی بر روی ابزارهای دیگری کنترل اعمال کند. به عبارت دیگر یک میکرو کنترلر، مدار مجتمع کوچکی است که از یک CPU کوچک و اجزای دیگری نظیر نوسان ساز کریستالی، تایمر، درگاه‌های ورودی و خروجی آنالوگ و دیجیتال و حافظه تشکیل شده‌است.
در واقع یک ریزپردازنده در درون ریزکنترلگر قرار داده شده‌است که ریزکنترلگر با استفاده از آن می‌تواند محاسبات منطقی و حسابی را انجام دهد.
وجود RAM و ROM و پورت‌های I/O در میکرو کنترلرها آن‌ها را یک انتخاب ایده ال برای کاربردهایی می‌کند که قیمت و فضا در آن‌ها مهم است. در بسیاری از کاربردها مثل کنترل از راه دور تلویزیون نیازی به محاسبات سنگین در حد یک ۴۸۶ یا حتی ۸۰۸۶ وجود ندارد. در این گونه موارد و بسیاری دیگر از کاربردها فضای مورد استفاده توان مصرفی و قیمت هر واحد مهم‌تر از قدرت محاسبات است.
در این گونه موارد اغلب لازم است تعدادی I/O خوانده شده و بیت‌های مشخصی را خاموش یا روشن کند.
به همین دلیل این گونه پردازنده‌ها را (IBP(ITTY-BITTY PROCESSOR نیز می‌نامند.
میکروکنترلرها عموما برای کاربردهای کوچک طراحی می‌شوند، بنابراین برخلاف ریزپردازنده‌ها در این جا مهمترین مسائل، سادگی و مصرف کم توان است.
برخی از وسایل که از میکرو کنترلر استفاده می‌کنند: تلفن، موبایل، سیستم، ایمنی، دربازکن گاراژ، دستگاه فاکس، کامپیوتر شخصی PC، ویدئو، دوربین ویدئویی، چرخ خیاطی، سیستم‌های تهویه، سرعت سنج وغیره…
اجزا
یک ریزکنترل‌کننده از سخت‌افزارهایی مانند پردازنده، RAM، ROM و یک سری پایانه (یا پورت یا درگاه) تشکیل شده‌است.
از سوی دیگر، از آنجا که این قطعات در اکثر حالات برای مقاصد کنترلی استفاده می‌شوند، نیاز به برقراری ارتباط با دستگاه تحت کنترل خود را دارند. اما از آنجا که اکثر سیگنال‌های لازم برای این منظور سیگنالهای آنالوگ هستند، باید ابتدا این سیگنال‌ها به صورت دودویی تبدیل شوند تا برای پردازنده قابل درک باشند. این کار توسط مبدل آنالوگ به دیجیتال صورت می‌گیرد. همچنین در برخی از میکروکنترلرها مبدل دیجیتال به آنالوگی هم وجود دارد که امکان فرمان دادن میکروکنترلر به دستگاه‌های با ورودی آنالوگ را فراهم می‌کند.
از دیگر اجزای معمول و پرکاربرد در میکروکنترلرها، تایمرها هستند. تایمرها عموما از یک شمارنده تشکیل می‌شوند که پس از تعداد مشخصی از شمارش، تولید یک وقفه می‌کنند که می‌تواند برای بررسی متوالی یک روال یا انجام متوالی یک کار مورد استفاده قرار گیرد.
بسیاری از میکروکنترلرها از واحدهای مدولاسیون عرض پالس نیز برخوردارند. این واحدها به خصوص در کاربردهای الکترونیک قدرت و کنترل موتور و نیز به عنوان مبدل دیجیتال به آنالوگ کاربرد دارند.
میکروکنترلرهای رایج
از مهم‌ترین و بزرگ‌ترین تولیدکنندگان میکرو کنترلرها می‌توان از شرکت اتمل نام برد که در حال حاضر سری ای‌وی‌آر و ۸۰۵۱ میکروکنترلرهای این شرکت در ایران به دلیل سهولت استفاده مورد توجه‌است.
برنامه‌ریزی میکروکنترلرهای AVR بیشتر با زبان C و با کامپایلر ، یا با زبان بیسیک و توسط نرم‌افزار انجام می‌شود.
یکی دیگر از تولیدکنندگان بزرگ میکروکنترلرها شرکت Microchip است که میکروکنترلرهای این شرکت با نام‌های تجاری PIC و dsPIC نیز از محبوبیت زیادی برخوردار است.
شرکت‌های بزرگ دیگری نیز در زمینه تولید میکروکنترلر فعالیت می‌کنند که از آن جمله می‌توان بهTI، موتورولا و فیلیپس اشاره کرد. شرکت intel هم نقش بسیار مهمی در تولید میکروکنترلرهای خانواده ۸۰۵۱ دارد.
البته اخیرا با قدرتنمایی میکروکنترلرهای آرم، این میکروکنترلرهای ۳۲ بیتی با شدت بسیار زیادی در حال فراگیر شدن است و از رشد بسیار زیادی در بازار برخوردار است. میکروکنترلرهای آرم موجود در ایران توسط سه شرکت ان‌ایکس‌پی، اتمل و 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 نوشته می‌شود. چند نمونه از وسایلی که در ساخت آن‌ها از میکروکنترلرها استفاده شده‌است , عبارت اند از : کنترل از راه دور تلویزیون , تلفن , دوربین فیلمبرداری , فاکس , چاپگر , دستگاه فتوکپی ,سیستم‌های حفاظتی , دزد گیر و سیستم‌های کنترل صنعتی. به‌طور کلی می‌توان کاربرد میکروکنترلرها را در طراحی مدارهای کنترل و اتوما سیون خلاصه کرد .