آشنایی با میکرو کنترلرها

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

میکرو کنترلرها از ابتدا تا کنون پیشرفتهای زیادی داشته اند و هم اکنون تولید کنندگان زیادی آنها را در مدلهای مختلف و با کارکردهای مختلف می سازند. بعضی از مهمترین تولید کنندگان عباتند از Atmel و Microchip .

همانطور که ذکر شد در داخل میکرو کنترلرها علاوه بر CPU (که عموما دارای گذرگاه داده ۸ بیت است) مدارات دیگری نیز وجود دارند که بسته به تولید کننده و مدل آن متفاوت است. این مدارات ممکن است شامل نوسان ساز ساعت سیستم، حافظه Flash برای ذخیره برنامه، حافظه RAM ، حافظه EEPROM / Flash برای داده، شمارنده / تایمر، پورت سریال، مقایسه کننده آنالوگ، مبدل آنالوگ به دیجیتال / دیجیتال به آنالوگ، PWM ، پورت USB و… باشد.

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

از نظر پایه ها انواع آن از ۸ پایه تا ۴۰ پایه بصورت DIP و بالاتر ساخته می شود.
هر میکروکنترلر دارای یک سری دستورالعمل های نرم افزاری است که می تواند آنها را اجرا کند که به آن مجموعه دستورالعمل گفته می شود. این دستورات از یک میکرو کنترلر به دیگری تفاوت هایی دارند و در بعضی از مدلها مثل PIC و AT89s51 اصلا به هم شباهتی ندارند. این یکی از نقاط ضعف میکرو هاست. بعنون مثال برنامه ای که برای PIC16F84 نوشته شده بر روی ATMega8535 قابل اجرا نیست. تفاوت چشم گیر بین دستور العمل های مربوط به سازندگان است مثلا میکروهای سری PIC با بقیه همخوانی ندارد. این سری ساخت شرکت Microchips بوده و بقیه ساخت شرکت Atmel هستند. حال آنکه دستورات و برنامه های At89s51 کاملا به درستی بر روی At89s52 اجرا می شود. همچنین مجموعه دستورالعملها در سری ۸۹s شبیه سری های tiny و Mega است.

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

پس برای اینکه بتوانیم از یک سری از میکروکنترلرها استفاده کنیم دو چیز لازم است: یکی اسمبلر یا کمپایلر و دیگری پروگرامر. امروزه میکروها در دستگاه های زیادی بکار می روند مثل ضبط صوت، ماشین لباس شوئی، یخچال، اتومبیل، رسیورهای ماهواره، شارژرهای باطری، تلوزیون، گوشی موبایل و … در واقع هرجا که طراحی مدار در حدی پیچیده باشد که نتوان آنرا با قطعات گسسته اجرا کرد از میکروها استفاده می شود.

سير تكاملي ميكرو كنترلرها

اولين ميكرو كنترلرها در اواسط دهه ۱۹۷۰ ساخته شدند. اين ميكرو كنترلرها در ابتدا پردازنده هاي ماشين حساب بودند كه داراي حافظه برنامه كوچكي از نوع ROM ، حافظه داده از نوع RAM و تعدادي درگاه ورودي/خروجي بودند.

با توسعه فناوري سيليكون ، ميكرو كنترلرهاي ۸ بيتي قويتري ساخته شدند. در اين ميكرو كنترلرها علاوه بر بهينه شدن دستورالعمل ها، تايمر/شمارنده روي تراشه، امكانات وقفه و كنترل بهينه شده خطوط I/O نيز به آنها اضافه شده است. حافظه موجود بر روي تراشه هنوز هم محدود مي باشد و دربسياري موارد كافي نيست.يكي از پيشرفتهاي قابل توجه در آن زمان، قابليت استفاده از حافظة EPROM قابل پاك شدن با اشعه ماورا بنفش، روي تراشه بود. اين قابليت، زمان طراحي و پياده سازي محصول را بطور محسوسي كاهش داد و نيز براي اولين بار امكان استفاده از ميكرو كنترلر ها را در كاربردهايي كه حجم توليد پاييني دارند، فراهم ساخت.
خانواده۸۰۵۱ در اوايل دهه ۱۹۸۰ توسط شركت اينتل معرفي گرديد. از آن زمان تاكنون۸۰۵۱ يكي ازمحبوبترين ميكرو كنترلرها بوده و بسياري از شركتها ديگر نيز به توليد آن اقدام كرده اند. در حال حاضرمدل هاي مختلفي از ۸۰۵۱ وجود دارد كه در بسياري از آنها امكاناتي نظير مبدل آنالوگ به ديجيتال حجم نسبتاً بزرگ از حافظه برنامه و حافظه داده، مدولاتور عرض پالس (PWM) در خروجيها و حافظه فلش كه امكان پاك كردن و برنامه ريزي مجدد آن توسط سيگنالهاي الكتريكي وجود دارد، تعبيه شده است.

ميكرو كنترلرها اكنون به سمت ۱۶ بيتي شدن در حركت هستند. ميكرو كنترلر هاي ۱۶ بيتي، پردازنده هايي با كارايي بالا (نظير پردازش سيگنالهاي ديجيتال ) مي باشند كه در كنترل فرايندهاي بلادرنگ و در مواردي كه حجم زيادي از عمليات محاسباتي مورد نياز است، به كار برده مي شوند.

بسياري از ميكرو كنترلرهاي ۱۶ بيتي، امكاناتي نظير حجم زياد حافظه برنامه و حافظه داده، مبدل هاي آنالوگ به ديجيتال چند كانالي، تعداد زيادي درگاه I/O، چندين درگاه سريال، عملكردهاي بسيار سريع رياضي و منطقي و مجموعه دستورالعمل هاي بسيار قدرتمند با قابليت پردازش سيگنال را دارا مي باشند.

معماري داخلي ميكرو كنترلرها

ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركزي (CPU) و واحد كنترل (CU) است.

CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد نظر انجام شوند.

حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.

درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي ۸ بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر ۸۰۵۱ داراي ۴ درگاه ورودي / خروجي ۸ بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي ۸۰۵۱) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

خانواده ۸۰۵۱

خانواده ۸۰۵۱ يك خانواده ميكرو كامپيوتر (ميكرو كنترلر ) ۸ بيتي تك تراشه اي استاندارد است كه بسيار محبوب و عامه پسند مي باشد و توسط سازندگان مختلف با قابليت هاي متفاوت توليد مي گردد. اين آي سي استاندارد اصلي كه اولين عضو اين خانواده مي باشد، ۸۰۵۱ است كه يك ميكرو كنترلر ۴۰ پايه مي باشد.

هم اكنون اين آي سي با پيكربندي هاي مختلف موجود مي باشد. ۸۰C51 نوع cmos و كم مصرف اين خانواده است. ۸۷۵۱ داراي حافظه برنامه از نوع EPROM است كه عمدتاً در هنگام پياده سازي به كار برده مي شود.

۸۹c51 نيز داراي حافظه فلش قابل برنامه ريزي و پاك شدن (PEROM) است لذا بدون نياز به پاك كردن با اشعه ماورابنفش ، مي توان حافظه برنامه را برنامه ريزي كرد.۸۰۵۲ عضو بهينه شده اين خانواده مي باشد و حافظه RAM آن بيشتر بوده و تعداد تايمر/شمارنده آن نيز بيشتر است. انواع مختلفي از خانواده ۴۰ پايه وجود دارد كه داراي مبدل هاي آنالوگ به ديجيتال ، مدولاتورهاي عرض پالس و نظاير آن هستند. در بخش پايين خانواده ۸۰۵۱ ، ميكرو كنترلر هاي ۲۰ پايه قرار دارند كه از لحاظ كد ، سازگاري كاملي با انواع ۴۰ پايه دارند و اين ادوات ۲۰ پايه براي كاربردهايي با پيچيدگي كمتر كه نياز به خطوط I/O كمتري دارند و نيز براي كاربردهايي كه بايد مصرف توان كمتري داشته باشند (مثل سيستم هاي قابل حمل)،ساخته شده اند.

آي سي هاي AT89C2051 و AT89C1051 (ساخت شركت Atmel)چنين ميكرو كنترلرهايي هستند كه از لحاظ كد سازگاري كاملي با خانواده ۸۰۵۱ دارند و مصرف توان آنها نيز كمتر است.

۸۰۵۱ يك ميكرو كنترلر ۸ بيتي با مصرف كم و قابليت زياد است. تعداد زيادي از اعضاي خانواده ۸۰۵۱ داراي معماري مشابهي هستند و هر يك از اعضا با اعضاي ديگر سازگار مي باشند . قابليت هاي ميكرو كنترلر ۸۰۵۱ استاندارد به شرح زير مي باشد:

• ۴ كيلو بايت حافظه برنامه

• ۸*۲۵۶ حافظه داده RAM

• ۳۲ خط I/O قابل برنامه ريزي

• دو عدد تايمر / شمارنده ۱۶ بيتي

• ۶ منبع وقفه

• درگاه UART سريال قابل برنامه ريزي

• قابليت اتصال به حافظه بيروني

• بسته بندي ۴۰ پايه استاندارد

مقدمه ای بر میکروکنترلرهای AVR :

میکروهای AVR دارای انعطاف پذیری غیر قابل مقایسه و بی همتایی هستند.آنها قادر به ترکیب هر نوع کدی با یک معماری کارامد از طریق زبانهای C و Assembly هستند و قادرند از طریق این برنامه ها تمام پارامترهای ممکن در یک سیکل یا چرخه ماشین را با دقت بسیار بالا هماهنگ کنند.
میکرو AVR دارای معماریی است که میتواند در تمام جهات مورد استفاده شما،عمل کند میکرو AVR معماریی دارد که برای شما کارایی ۱۶ بیتی ارائه می دهد که البته قیمتش به اندازه یک ۸ بیتی تمام می شود.

بهره های کلیدی AVR :

دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)
دارای سیستمی با بهترین هماهنگی
دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک)
دارای کدهایی با کوچکترین سایز
دارای حافظه خود برنامه ریز
دارای واسطه JTAG که با IEEE 1149.1 سازگار است
(IEEE: Institute of Electrical and Electronics Engineers.)
دارای سخت افزار ضرب کننده روی خود
دارای بهترین ابزارها برای پیشرفت و ترقی
دارای حالات زیادی برای ترفیع دادن یا Upgrade .