میکروکنترلر
به نوعی مدار مجتمع گفته میشود که عملکرد آنها از قبل تعیین شده است، میکروکنترلر گویند. میکرو کنترل ها دارای ورودی خروجی و قدرت پردازش می باشد. به بیان دیگر، نوعی ریزپردازنده است که دارای حافظه دسترسی تصادفی (RAM) و حافظه فقط خواندنی (ROM)، تایمر، پورتهای ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال) در درون خود تراشه میباشد و میتواند به تنهایی بر روی وسایل دیگری کنترل داشته باشد. به عبارتی یک میکرو کنترلر، مدار مجتمع کوچکی است که از یک CPU کوچک و اجزای دیگری نظیر نوسان ساز کریستالی، تایمر، درگاههای ورودی و خروجی آنالوگ و دیجیتال و حافظه تشکیل شدهاست.
کلمه میکروکنترلر از دو بخش میکرو به همراه کنترلر تشکیل شده است.
میکرو: می دانید که این یک واحد یونانی است و برابر با شش تا ده متر است. یعنی یک میلیونیوم متر. واحد خیلی کوچکی است.
کنترلر: یعنی کنترل کننده که فقط دستوراتی را که به آن داده می شود را انجام می دهد.
کلمه میکرو به دو منظور استفاده شده است: منظور اول و مهم سرعت عمل میکروکنترلر است که میتواند تا یک میلیونیوم ثانیه باشد و دستوارتی که به آن می دهیم با این سرعت انجام بدهد. به همین خاطر واژه میکرو را به آن اختصاص دادند. البته معنی دوم آن شاید کوچکی این قطعه باشد که تا یک میلیونیوم متر کوچک شده است. شاید باور کردنی نباشد ولی در یک تراشه ممکن است بیش از یک میلیون تراتزیستور به کار رفته باشد. این کلمه وقتی اهمیتش کامل می شود که با واژه ی کنترلر همراه شود. تقریبا انواع میکروها شامل 8051، PIC، AVR، 6811 و Z8 می شوند که مدل های 6811 ساخت شرکت موتورلا و Z8 ساخت شرکت زایلوگ، در ایران خیلی کم استفاده می شوند. از بزرگترین تولیدکنندگان میکروکنترلرها میتوان به شرکت Atmel اشاره کرد که در حال حاضر خانواده AVR و 8051 از مهم ترین محصولات آن است.
یکی دیگر از تولیدکنندگان میکروکنترلرها، شرکت Microchip است که میکروکنترلرهای این شرکت با نامهای تجاری PIC و dsPIC به بازار عرضه می شود. شرکتهای دیگری مانند TI، موتورولا، فیلیپس و intel هم نقش مهمی در تولید خانواده میکروکنترلرها دارند. امروزه میکروکنترلرهای ۳۲ بیتی آرم (ARM) در حال فراگیر شدن است. میکروکنترلرهای آرم موجود در بازار ایران توسط سه شرکت NXP، ATMEL و ST تولید میشوند، که سهم میکروکنترلرهای NXP و ATMEL بیشتر است.
برنامه ریزی میکروکنترلرها
برنامهریزی میکروکنترلرهای AVR معمولا به زبان C و با کامپایلر codevision، یا به زبان بیسیک و توسط نرمافزار BASCOM انجام میشود.
بخشهای مهم میکروکنترلرها
بخش CPU : واحد پردازش
بخش ALU : واحد محاسبات
بخش I /O : ورودی ها و خروجی ها
بخش Ram : حافظه اصلی میکرو
بخش Rom : حافظه ای که برنامه روی آن ذخیره میگردد
بخش Timer برای کنترل زمان ها
میکروکنترلرها با استفاده از ریزپردازنده میتوانند محاسبات منطقی و حسابی را انجام دهد. وجود RAM و ROM و پورتهای I/O در میکرو کنترلرها آنها را یک انتخاب ایده ال برای کاربردهایی میکند که قیمت و فضا در آنها مهم است. در بسیاری از کاربردها مثل کنترل از راه دور تلویزیون نیازی به محاسبات سنگین در حد یک ۴۸۶ یا حتی ۸۰۸۶ وجود ندارد. در بسیاری از کاربردها فضای مورد استفاده، توان مصرفی و قیمت هر واحد مهم تر از قدرت محاسبات است. در این گونه موارد اغلب لازم است تعدادی I/O خوانده شده و بیتهای مشخصی را خاموش یا روشن کند. به همین دلیل این گونه پردازندهها را (IBP(ITTY-BITTY PROCESSOR نیز مینامند. همان گونه که بیان شد، میکروکنترلرها در حالت عادی برای کاربردهای کوچک طراحی میشوند، پس برخلاف ریزپردازندهها مهمترین موضوع، سادگی و مصرف کم توان است.
ساختمان داخلی میکروکنترلرها
کامپیوتر دارای یک پردازنده مرکزی به نام CPU است که از کنار هم قرار گرفتن تعداد زیادی ترانزیستور تشکیل شده و بر روی اطلاعات، پرداژش انجام میدهد. میکرو کنترلر هم دارای یک پردازنده ی مرکزی به نام CPU است که دقیقاً کار CPU رایانه را انجام می دهد با این تفاوت که قدرت و سرعت پردازش آن از CPU رایانه کمتر است که به آن میکروپرسسور گویند. میکروکنترلر علاوه بر CPU دارای حافظه می باشد تا برنامه ها را درحافظه قرار دهد.در میکروکنترلرهای امروزی، تایمرها برای تنظیم زمان کانترها (Counter) برای شمردن کانال های آنالوگ به دیجیتال تشکیل شده و همه اینها در یک چیپ (Chip) قرار گرفته که در تکنولوژی جدید، آن را داخل یک تراشه به اندازه ی یک سکه قرار داده اند.
از آنجایی که میکروکنترلرها برای مقاصد کنترلی استفاده میشوند، نیاز به برقراری ارتباط با دستگاه تحت کنترل خود را دارند. اما از آنجا که اکثر سیگنالهای لازم برای این منظور سیگنالهای آنالوگ هستند، باید ابتدا این سیگنالها به صورت دودویی تبدیل شوند تا برای پردازنده قابل استفاده باشند. این کار توسط مبدل آنالوگ به دیجیتال (A/D) صورت میگیرد. همچنین در برخی از میکروکنترلرها مبدل دیجیتال به آنالوگی (D/A) هم وجود دارد که امکان فرمان دادن میکروکنترلر به دستگاههای با ورودی آنالوگ را فراهم میکند. تایمرها نیز از یک شمارنده تشکیل میشوند که پس از تعداد مشخصی از شمارش، وقفه مشخصی را ایجاد میکنند که میتواند برای بررسی توالی یک روال یا انجام توالی یک کار مورد استفاده قرار گیرد. بسیاری از میکروکنترلرها، واحدهای مدولاسیون عرض پالس را نیز در حود دارند. این واحدها به خصوص در کاربردهای الکترونیک قدرت و کنترل موتور و نیز به عنوان مبدل دیجیتال به آنالوگ کاربرد دارند.
کاربرد میکروکنترلرها
میکروکنترلرها برای کاربردهایی که در آنها مشکل قیمت و حجم
سیستم وجود دارد، مناسب است زیرا اضافه کردن حافظه، پورت I/O تایمرها
و مدار واسط لازم به میکرپروسسور باعث افزایش قیمت و حجم سیستم می شود. اما در میکروکنترلر
این مشکل وجود ندارد. میکرو کنترلر ها در طراحی مدارهای کنترلی استفاده می شوند. به
عنوان مثال برای کنترل وسایل ورودی و خروجی، از یک میکروکنترلر و چند عنصر استفاده
می شود، در صورتی که میکرو پروسسور به عنوان CPU برای
پردازش اطلاعات سیستم کامپیوتری بکاربرده می شود. میکروکنترلرها در تولید سیستم های
تک منظوره (سیستمی که از میکروکنترلر یا میکروپروسسور فقط برای یک کار استفاده می
شود) بکار می روند مانند سیستم های حفاظتی،
دزدگیر، سیستم های کنترل صنعتی، فاکس، فرکانس متر، کنترل موتور پله ای و DC،
ولت متر، دما سنج، تلفن و غیره. بیش از 34% میکروکنترلرها در اتوماسیون اداری نظیر
چاپگرلیزری، دستگاههای نمابر، تلفنهای هوشمند، ونظایر آنها کاربرد دارد. بیش از یک
سوم میکروکنترلرها در لوازم خانگی الکترونیکی به کار برده شده اند.
در این دسته بندی تولیداتی مانند CD PLAYER، تجهیزات صوتی، بازیهای ویدویی، ماسین لباسشویی، دستگاههای پخت و پز (مایکروفر) و مانند آنها قرار دارند. بازار تجهیزات مخابراتی، ادوات نظامی و تجهیزات مربوط به اتومبیل ها، بخش باقیمانده از سهم کاربرد میکروکنترلرها را به خود اختصاص داده اند. بطورکلی میتوان کاربرد میکروکنترلرها را در طراحی مدارهای کنترل و اتوماسیون خلاصه نمود.
تفاوت میکروکنترلها و ریزپردازنده
میکروکنترولر و ریزپردازنده (میکروپروسسور) تقریباً از یک شاخه تکنولوژیک و ساختاری هستند، اما در اجزای وابسته، با هم تفاوتهای مهم دارند. در ریزپردازندهها فقط واحد پردازش به صورت جدا به صورت یک آیسی وجود دارد که RAM و ROM و حتی ثبّاتها (Register) در آیسیهای مجزا به ریزپردازنده وصل و تشکیل یک ریزرایانه میدهند، اما در ریزکنترلگر تمام واحدهای یک رایانه، از جمله RAM و ROM و ثبّاتها (Register)، در درون یک آیسی به صورت فشرده به نام ریزکنترلگر وجود دارد که در دستگاههای تجاری برای کاهش قیمت دستگاه استفاده میشود.
میکروپرسسورها بر خلاف میکرو کنترلرها فاقد RAM و ROM و پورتهای I/O در درون تراشه هستند و برای آنکه بتوان سیستمی مبتنی بر میکروپرسسور را طراحی کنیم باید RAM و ROM و پورتهای I/O و تایمرها به آن اضافه شود. با توجه به اینکه طراح می تواند روی مقدار RAM و ROM و پورتهای I/O اعمال نظر نماید، این سیستم ها انعطاف پذیری بیشتری دارند که به آنها سیستمهای چند منظوره می گویند. میکروکنترلرها شامل یک CPU به همراه مقدار ثابتی ازRAM ، ROM، پورتهای I/O وتایمر هستند که همگی در یک تراشه جای داده شده اند و طراح سیستم نمی تواند یک حافظه، I/O یا تایمر را بدون گسترش لازم از بیرون اضافه کند بنابراین میکروکنترلرها انعطاف پذیری میکروپرسسورها را ندارند.