آشنایی با میکرو کنترلرها
میکروکنترلرها یکی از قطعات پرکاربرد الکترونیکی در صنایع گوناگون و مصارف شخصی می باشند که در بین علاقه مندان الکترونیک بسیار محبوب هستند. در واقع یک میکروکنترلر یک CPU مانند CPU ی کامپیوتر شماست همراه با مدارات و قطعاتی که برای کار آن ضروری است به اضافه مداراتی که امکاناتی را به آن اضافه می کند و اینها همگی در کنار هم و در یک تراشه جمع شده اند. در واقع میکروکنترلرها برنامه هایی را که برایشان نوشته شده و در داخل آنها قرار داده شده را اجرا می کنند. این برنامه ها دقیقا شبیه برنامه هایی است که در کامپیوترهای شخصی با زبانهایی مثل اسمبلی ، C ، بیسیک یا پاسکال نوشته می شوند.
میکرو کنترلرها از ابتدا تا کنون پیشرفتهای زیادی داشته اند و هم اکنون تولید کنندگان زیادی آنها را در مدلهای مختلف و با کارکردهای مختلف می سازند. بعضی از مهمترین تولید کنندگان عباتند از Atmel و Microchip .
همانطور که ذکر شد در داخل میکرو کنترلرها علاوه بر CPU (که عموما دارای گذرگاه داده 8 بیت است) مدارات دیگری نیز وجود دارند که بسته به تولید کننده و مدل آن متفاوت است. این مدارات ممکن است شامل نوسان ساز ساعت سیستم، حافظه Flash برای ذخیره برنامه، حافظه RAM ، حافظه EEPROM / Flash برای داده، شمارنده / تایمر، پورت سریال، مقایسه کننده آنالوگ، مبدل آنالوگ به دیجیتال / دیجیتال به آنالوگ، PWM ، پورت USB و... باشد.
همانطور که گفته شد با وجود این مدارات در داخل تراشه، تقریبا برای کار میکروکنترلر به هیچ مدار خارجی دیگری نیاز نیست ولی در CPU ها تمامی این مدارات در خارج از تراشه هستند. این برای میکروکنترلرها هم مزیت است و هم عیب : طراحی سخت افزار و سیستم با میکروکنترلر ساده است ولی بعنوان مثال نمی توان به آسانی فضای حافظه را افزایش داد.
از نظر پایه ها انواع آن از 8 پایه تا 40 پایه بصورت DIP و بالاتر ساخته می شود.
هر میکروکنترلر دارای یک سری دستورالعمل های نرم افزاری است که می تواند آنها را اجرا کند که به آن مجموعه دستورالعمل گفته می شود. این دستورات از یک میکرو کنترلر به دیگری تفاوت هایی دارند و در بعضی از مدلها مثل PIC و AT89s51 اصلا به هم شباهتی ندارند. این یکی از نقاط ضعف میکرو هاست. بعنون مثال برنامه ای که برای PIC16F84 نوشته شده بر روی ATMega8535 قابل اجرا نیست. تفاوت چشم گیر بین دستور العمل های مربوط به سازندگان است مثلا میکروهای سری PIC با بقیه همخوانی ندارد. این سری ساخت شرکت Microchips بوده و بقیه ساخت شرکت Atmel هستند. حال آنکه دستورات و برنامه های At89s51 کاملا به درستی بر روی At89s52 اجرا می شود. همچنین مجموعه دستورالعملها در سری 89s شبیه سری های tiny و Mega است.
برنامه ای که میکرو باید اجرا کند پس از نوشته شدن اسمبل یا کمپایل می شود تا کد ماشین برای آن میکرو تولید شود (نوشتن برنامه و تبدیل آن عموما بر روی یک PC صورت می گیرد.). پس از اینکار برنامه ترجمه شده باید به حافظه کدی که در درون میکرو است انتقال یابد. این کار توسط یک دستگاه کمکی بنام پروگرامر انجام می شود که در واقع یک مدار رابط بین کامپیوتر و میکروکنترلر است. پس از اینکار برنامه در درون میکرو باقی می ماند و هنگامی که میکرو بر روی بورد دستگاه موردنظر نصب شود شروع به اجرای برنامه می کند. در واقع چون سخت افزار میکروها (مثل تعداد پایه ها و طریقه پروگرام کردن آنها) متفاوت است هر سری از آنها پروگرامر مخصوص به خود را می خواهد.
پس برای اینکه بتوانیم از یک سری از میکروکنترلرها استفاده کنیم دو چیز لازم است: یکی اسمبلر یا کمپایلر و دیگری پروگرامر. امروزه میکروها در دستگاه های زیادی بکار می روند مثل ضبط صوت، ماشین لباس شوئی، یخچال، اتومبیل، رسیورهای ماهواره، شارژرهای باطری، تلوزیون، گوشی موبایل و ... در واقع هرجا که طراحی مدار در حدی پیچیده باشد که نتوان آنرا با قطعات گسسته اجرا کرد از میکروها استفاده می شود.
سیر تکاملی میکرو کنترلرها
اولین میکرو کنترلرها در اواسط دهه 1970 ساخته شدند. این میکرو کنترلرها در ابتدا پردازنده های ماشین حساب بودند که دارای حافظه برنامه کوچکی از نوع ROM ، حافظه داده از نوع RAM و تعدادی درگاه ورودی/خروجی بودند.
با توسعه فناوری سیلیکون ، میکرو کنترلرهای 8 بیتی قویتری ساخته شدند. در این میکرو کنترلرها علاوه بر بهینه شدن دستورالعمل ها، تایمر/شمارنده روی تراشه، امکانات وقفه و کنترل بهینه شده خطوط I/O نیز به آنها اضافه شده است. حافظه موجود بر روی تراشه هنوز هم محدود می باشد و دربسیاری موارد کافی نیست.یکی از پیشرفتهای قابل توجه در آن زمان، قابلیت استفاده از حافظه EPROM قابل پاک شدن با اشعه ماورا بنفش، روی تراشه بود. این قابلیت، زمان طراحی و پیاده سازی محصول را بطور محسوسی کاهش داد و نیز برای اولین بار امکان استفاده از میکرو کنترلر ها را در کاربردهایی که حجم تولید پایینی دارند، فراهم ساخت.
خانواده8051 در اوایل دهه 1980 توسط شرکت اینتل معرفی گردید. از آن زمان تاکنون8051 یکی ازمحبوبترین میکرو کنترلرها بوده و بسیاری از شرکتها دیگر نیز به تولید آن اقدام کرده اند. در حال حاضرمدل های مختلفی از 8051 وجود دارد که در بسیاری از آنها امکاناتی نظیر مبدل آنالوگ به دیجیتال حجم نسبتاً بزرگ از حافظه برنامه و حافظه داده، مدولاتور عرض پالس (PWM) در خروجیها و حافظه فلش که امکان پاک کردن و برنامه ریزی مجدد آن توسط سیگنالهای الکتریکی وجود دارد، تعبیه شده است.
میکرو کنترلرها اکنون به سمت 16 بیتی شدن در حرکت هستند. میکرو کنترلر های 16 بیتی، پردازنده هایی با کارایی بالا (نظیر پردازش سیگنالهای دیجیتال ) می باشند که در کنترل فرایندهای بلادرنگ و در مواردی که حجم زیادی از عملیات محاسباتی مورد نیاز است، به کار برده می شوند.
بسیاری از میکرو کنترلرهای 16 بیتی، امکاناتی نظیر حجم زیاد حافظه برنامه و حافظه داده، مبدل های آنالوگ به دیجیتال چند کانالی، تعداد زیادی درگاه I/O، چندین درگاه سریال، عملکردهای بسیار سریع ریاضی و منطقی و مجموعه دستورالعمل های بسیار قدرتمند با قابلیت پردازش سیگنال را دارا می باشند.
معماری داخلی میکرو کنترلر ها
ساده ترین معماری میکرو کنترلر، متشکل از یک ریز پردازنده، حافظه و درگاه ورودی/خروجی است. ریز پردازنده نیز متشکل از واحد پردازش مرکزی (CPU) و واحد کنترل (CU) است.
CPU درواقع مغز یک ریز پردازنده است و محلی است که در آنجا تمام عملیات ریاضی و منطقی ،انجام می شود. واحد کنترل ، عملیات داخلی ریز پردازنده را کنترل می کند و سیگنال های کنترلی را به سایر بخشهای ریز پردازنده ارسال می کند تا دستورالعمل ها ی مورد نظر انجام شوند.
حافظه بخش خیلی مهم از یک سیستم میکرو کامپیوتری است. ما می توانیم بر اساس به کارگیری حافظه، آن را به دو گروه دسته بندی کنیم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام کد برنامه را ذخیره می کند. این حافظه معمولاً از نوع حافظه فقط خواندنی (ROM) می باشد. انواع دیگری از حافظه ها نظیر EPROM و حافظه های فلش EEPROM برای کاربردهایی که حجم تولید پایینی دارند و همچنین هنگام پیاده سازی برنامه به کار می روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) می باشد . در کاربردهای پیچیده که به حجم بالایی از حافظه RAM نیاز داریم ، امکان اضافه کردن تراشه های حافظه بیرونی به اغلب میکرو کنترلر ها وجود دارد.