انواع میکروکنترلر

میکروکنترلر یک تراشه الکترونیکی است که با حروف مخفف μC یا uC نشان داده می شود. برای ساخت  میکروکنترلرها از تکنولوژی  VLSI استفاده می‌شود. نام دیگر میکروکنترلر، کنترلر تعبیه شونده یا کنترلر امبدد است. در حال حاضر انواع مختلفی از میکروکنترلرها مانند 8 بیتی، 16 بیتی، 32 بیتی و 64 بیتی در بازار موجود است. در واقع میکروکنترلر یک میکرو کامپیوتر فشرده است که در درون سیستم‌ها جایگذاری می‌گردد. وسایل و ابزار مختلفی از میکروکنترلر جهت کنترل استفاده می‌کنند، که از آن جمله می‌توان به روبات ها، ماشین های اداری، وسایل نقلیه موتوری، لوازم خانگی و سایر ابزارهای الکترونیکی اشاره نمود. اجزای یک میکروکنترلر به صورت کلی عبارتند از هسته پردازنده، لوازم و مدارات جانبی و حافظه، در این مقاله مروری بر انواع و ساختار میکروکنترلرها و همچنین عملکرد آن‌ها ارائه می‌شود.

میکروکنترلر چیست؟

میکروکنترلر یک کامپیوتر فشرده، کوچک، کم هزینه و مستقل است که در درون یک تراشه گنجانده شده است، میکروکنترلرها غالبا به عنوان کنترلر داخلی در درون سیستم‌ها تعبیه می‌گردند. میکروکنترلرها را غالبا بر اساس تعداد بیت گذرگاه یا باس آن دسته بندی می‌کنند و فرکانس کاری آن را بیان می‌کنند. به طور مثال ممکن است شنیده باشید که میکرو کنترلرهای AVR سری مگا، 8 بیتی هستند و حد اکثر سرعت کلاک آن‌ها 16 مگاهرتز است.

میکروکنترلرها باید مصرف توان پایینی داشته باشند، زیرا بسیاری از دستگاه‌هایی که از میکروکنترلر استفاده می‌کنند، توسط باتری تغذیه می‌شوند و باید طول عمر باتری طولانی داشته باشند. میکروکنترلرها در بسیاری از لوازم الکترونیکی مصرفی، موتورهای خودرو، تجهیزات جانبی کامپیوتر و تجهیزات تست یا اندازه گیری استفاده می‌شوند. بخش غالب میکروکنترلرهایی که امروزه مورد استفاده قرار می گیرد در درون چیپ‌های دیگر کاشته می‌شود به عنوان مثال بسیاری از تراشه‌های وایرلس در درون خود از یک میکروکنترلر بهره می‌برند.

انواع میکروکنترلر

اصول عملکرد میکروکنترلرها

میکروکنترلرها اغلب در داخل یک سیستم تعبیه می‌شوند تا عملکرد آن را کنترل کنند. میکروکنترلرها  داده‌ها را توسط ادوات جانبی (I/O) دریافت می‌کنند و سپس این داه‌ها را در حافظه موقت خود ذخیره می‌کنند. سپس این داده‌ها در واحد پردازنده مرکزی با توجه به دستورالعمل یا برنامه میکروکنترلر پردازش می‌گردد و خروجی متناسب به واحدهای خروجی ارسال می‌شود.

بسیاری از دستگاه ها از چندین میکروکنترلر استفاده می کنند که همزمان با هم در داخل دستگاه کار می‌کنند تا وظایف مربوطه را انجام دهند.

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

اجزای میکروکنترلر چیست؟

عناصر اصلی ساختار میکروکنترلر عبارتند از:

پردازنده (CPU) : پردازنده را می‌توان مغز دستگاه در نظر گرفت. پردازنده، دستورات مختلفی را که توسط برنامه نویس نوشته شده را پردازش می کند و به آنها پاسخ می دهد. این دستورات شامل انجام عملیات حسابی، منطقی و I/O است. پردازنده همچنین عملیات انتقال داده را انجام می‌دهد و دستورات را به اجزای دیگر در درون میکروکنترلر منتقل می کند.

حافظه : حافظه یک میکروکنترلر برای ذخیره داده‌هایی دریافت شده توسط پردازنده و  همچنین برای پاسخ دستورالعمل‌هایی که برای انجام آن برنامه‌ریزی شده است، استفاده می‌‌گردد. یک میکروکنترلر دو نوع حافظه اصلی دارد:

حافظه برنامه، که اطلاعات طولانی مدتی را در مورد دستورالعمل هایی که CPU انجام می دهد ذخیره می‌کند. حافظه برنامه یک حافظه غیر فرار است، به این معنی که اطلاعات را در طول زمان بدون نیاز به منبع تغذیه نگهداری می کند.

حافظه داده، که برای ذخیره سازی موقت داده ها در حین اجرای دستورالعمل ها مورد نیاز است. حافظه داده فرار است، به این معنی که داده های ذخیره شده موقتی است و تنها در صورتی حفظ می شود که دستگاه به منبع تغذیه متصل باشد.

لوازم جانبی ورودی/خروجی : دستگاه‌های ورودی و خروجی رابط پردازنده با دنیای خارج هستند. پورت‌های ورودی اطلاعات را دریافت کرده و در قالب داده های باینری برای پردازنده ارسال می کنند. پردازنده آن داده ها را دریافت می‌کند و پس از پردازش، دستورالعمل های لازم را به دستگاه های خروجی که با عملگرهایی در بیرون از میکروکنترلر در ارتباط هستند، ارسال می کند.

در حالی که هسته پردازنده، حافظه و ورودی/خروجی‌ها عناصر بنیادی میکروکنترلرها هستند، عناصر دیگری نیز وجود دارند که اغلب در میکروکنترلرها گنجانده می‌شوند. اصطلاح لوازم جانبی ورودی/خروجی به سادگی به اجزای پشتیبانی کننده‌ای اشاره دارد که با حافظه و پردازنده ارتباط برقرار می کنند. قطعات پشتیبان زیادی وجود دارد که می توان آنها را به عنوان تجهیزات جانبی طبقه بندی کرد.

اجزا اصلی میکروکنترلر

سایر عناصر پشتیبانی کننده میکروکنترلر عبارتند از:

مبدل آنالوگ به دیجیتال (ADC)  : ADC مداری است که سیگنال های آنالوگ را به سیگنال دیجیتال تبدیل می کند. این ابزار اجازه می‌دهد تا پردازنده میکروکنترلر با دستگاه‌های آنالوگ خارجی مانند سنسورها ارتباط برقرار کند.

مبدل دیجیتال به آنالوگ (DAC) : یک DAC عملکرد این ابزار معکوس یک ADC است و به پردازنده میکروکنترلر اجازه می دهد تا سیگنال های خروجی خود را به اجزای آنالوگ خارجی منتقل کند.

گذرگاه یا باس سیستم : گذرگاه سیستم یک مسیر است که تمام اجزای میکروکنترلر را به یکدیگر متصل می کند.

پورت سریال : پورت سریال نمونه ای از  یک پورت ورودی/خروجی است که به میکروکنترلر اجازه می‌دهد تا به اجزای خارجی متصل شود. عملکردی مشابه USB یا پورت موازی دارد اما در نحوه تبادل بیت‌ها متفاوت است. 

تفاوت‌ها و ویژگی‌های میکروکنترلر

ویژگی های میکروکنترلر

پردازنده هر میکروکنترلر بسته به نوع کاربرد آن متفاوت است. گزینه‌های موجود از پردازنده‌های ساده 4 بیتی، 8 بیتی یا 16 بیتی تا پردازنده های پیچیده‌تر 32 بیتی یا 64 بیتی را در بر می‌گیرد. انواع مختلف میکروکنترلرها از انواع حافظه فرار مانند حافظه با دسترسی تصادفی (RAM) و انواع حافظه غیر فرار استفاده می‌کنند، حافظه‌های غیر فرار شامل حافظه فلش، حافظه فقط خواندنی قابل برنامه ریزی (EPROM) و حافظه فقط خواندنی قابل برنامه ریزی قابل پاک کردن توسط الکتریکسیته (EEPROM) می‌گردد.

به طور کلی، میکروکنترلرها به گونه‌ای طراحی شده‌اند که به راحتی بدون نیاز به  اجزای جانبی اضافی قابل استفاده باشند، زیرا با حافظه داخلی کافی و همچنین ارائه پین‌هایی برای عملیات ورودی/خروجی عمومی طراحی شده‌اند، بنابراین می‌توانند مستقیماً با سنسورها و سایر اجزا ارتباط برقرار کنند.

به طور کلی میکرو کنترلرها دارای یکی از دونوع معماری هاروارد یا معماری فون نویمان هستند این دو نوع معماری، روش های مختلفی برای تبادل داده بین پردازنده و حافظه ارائه می دهند. با معماری هاروارد، گذرگاه داده و دستورالعمل جدا هستند و امکان انتقال همزمان را فراهم می کنند. با معماری Von Neumann، از یک گذرگاه برای  انتقال داده‌ها و دستورالعمل ها استفاده می شود.

طراحی هسته پردازنده میکروکنترلر می‌تواند بر اساس مدل طراحی CISC به معنی مجموعه دستورالعمل‌های محاسباتی پیچیده یا طراحی RISC به معنی مجموعه دستورالعمل محاسباتی کاهش یافته باشد. در طراحی CISC به طور کلی پردازنده حدود 80 دستورالعمل دارد در حالی که در طراحی RISC پردازنده حدود 30 دستورالعمل دارد و حالت های آدرس دهی بیشتری را پشتیبانی می‌کند. هسته‌های پردازنده مدل CISC می‌تواند آسان‌تر اجرا شوند و از مدیریت حافظه کارآمدتری بهره می‌برند، اما به دلیل نیاز بیشتر به چرخه‌های ساعت، ممکن است کاهش عملکرد داشته باشد. هسته‌های با طراحی RISC که تاکید بیشتری بر نرم افزار یا برنامه دارند، اغلب عملکرد بهتری نسبت به پردازنده های CISC که تاکید بیشتری بر سخت افزار دارند، ارائه می‌کنند.

هنگامی که میکروکنترلرها برای اولین بار در دسترس قرار گرفتند، تنها از زبان اسمبلی برای برنامه نویسی استفاده می‌کردند. امروزه زبان برنامه نویسی C یک گزینه محبوب برای یرنامه نویسی میکروکنترلرهاست. از دیگر زبان‌های رایج برای برنامه نویسی ریزپردازنده‌ها، می‌توان به پایتون و جاوا اسکریپت اشاره کرد.

میکروکنترلرها دارای پایه‌های ورودی و خروجی برای اتصال به اجزای جانبی هستند. اجزا و مدارات جانبی شامل مبدل‌های آنالوگ به دیجیتال، کنترلرهای نمایشگرهای کریستال مایع (LCD)، ساعت بیدرنگ (RTC)، فرستنده گیرنده سریال (USART)، تایمرها، فرستنده گیرنده و پورت USB است. بسیاری از سنسورهایی که اطلاعات مربوط به رطوبت و دما را جمع آوری می کنند، اغلب به میکروکنترلرها متصل می‌شوند. 

میکروکنترلرها چگونه طبقه بندی می شوند؟

میکروکنترلرها بر اساس عرض گذرگاه، مجموعه دستورالعمل‌ها و ساختار حافظه مشخص طبقه بندی می‌شوند. برای یک خانواده میکروکنترلر، ممکن است مدل‌های مختلف با منابع متفاوت وجود داشته باشد.

انواع مختلف میکروکنترلرها

دسته بندی میکروکنترلرها بر اساس تعداد بیت

میکروکنترلرهای رایج عمدتا 8 بیتی، 16 بیتی و یا 32 بیتی هستند. در یک میکروکنترلر 8 بیتی، عرض گذرگاه داخلی 8 بیت است و ALU تنها می‌تواند عملیات حسابی و منطقی را بر روی مقادیر 8 بیتی  انجام دهد. نمونه هایی از میکروکنترلرهای 8 بیتی میکرو کنترلرهای AVR خانواده مگا هستند.

میکروکنترلر 16 بیتی دقت و کارایی بیشتری نسبت به میکروکنترلرهای 8 بیتی دارند. به عنوان مثال، میکروکنترلرهای 8 بیتی فقط می توانند از 8 بیت استفاده کنند که در نتیجه می‌‌تواند بین 0 و 255 برای هر چرخه بدست آید. در مقابل، میکروکنترلرهای 16 بیتی با عرض داده بیتی خود، محدوده 0 و 65535 را برای هر چرخه دارند.

حداکثر ارزش یک تایمر طولانی تر احتمالاً می تواند در برنامه ها و مدارهای خاصی مفید باشد. می تواند به طور خودکار روی دو عدد 16 بیتی کار کند. برخی از نمونه‌های میکروکنترلرهای 16 بیتی حاصل به روز رسانی خانواده‌‌های 8 بیتی هستند مانند میکرو کنترلرهای AVR  سری ایکس مگا

میکروکنترلرهای 32 بیتی از دستورالعمل های 32 بیتی برای انجام عملیات حسابی و منطقی استفاده می‌کنند. اینها در دستگاه‌های کنترل خودکار از جمله دستگاه‌های پزشکی قابل کاشت، سیستم‌های کنترل موتور، ماشین‌های اداری، لوازم خانگی و انواع دیگر سیستم‌های تعبیه‌شده استفاده می‌شوند. یکی از نمونه‌های میکرو کنترلر 32 بیتی خانواده میکروکنترلرهای آرم هستند.

 

دسته بندی میکروکنترلرها بر اساس نوع حافظه

میکرو کنترلرها بر اساس نوع حافظه به دو نوع تقسیم می شوند:

-       میکروکنترلر با حافظه جاسازی شده یا داخلی

-       میکروکنترلر با حافظه خارجی

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

میکروکنترلر حافظه خارجی: زمانی که یک سیستم امبدد، دارای یک میکروکنترلر باشد که تمام بلوک‌های عملکردی را بر روی یک تراشه نداشته باشد، میکروکنترلر با حافظه خارجی نامیده می‌شود. به عنوان مثال، 8031 بدون حافظه برنامه بر روی تراشه، یک میکروکنترلر حافظه خارجی است.

 

دسته بندی میکروکنترلرها بر اساس مجموعه دستورالعمل

SISC : SISC یک کامپیوتر با مجموعه دستورالعمل پیچیده است. این طراحی به برنامه نویس اجازه می‌دهد تا از یک دستورالعمل پیچیده به جای چند دستورالعمل محاسباتی ساده‌تر استفاده کند.

RISC : RISC مخفف عبارت Reduced Instruction Computer است، این نوع طراحی مجموعه دستورات ریزپردازنده را برای استانداردهای صنعتی کاهش داده‌است. این طراحی اجازه می دهد تا هر دستورالعمل بر روی هر رجیستری عمل کند یا از هر مد آدرس دهی استفاده کند و دسترسی همزمان به برنامه و داده داشته باشد.

 

دسته بندی میکروکنترلرها بر اساس معماری حافظه

معماری حافظه میکروکنترلرها دو نوع است که عبارتند از:

-       میکروکنترلر با معماری حافظه هاروارد

-       میکروکنترلر با معماری حافظه پرینستون

میکروکنترلر با معماری حافظه هاروارد: زمانی که یک میکروکنترلر فضای آدرس حافظه متفاوتی برای برنامه و حافظه داده دارد، میکروکنترلر دارای معماری حافظه هاروارد در پردازنده است.

میکروکنترلر معماری حافظه پرینستون: زمانی که یک میکروکنترلر یک آدرس حافظه مشترک برای حافظه برنامه و حافظه داده دارد، میکروکنترلر دارای معماری حافظه پرینستون در پردازنده است.

میکروکنترلرهای رایج در بازار

میکروکنترلرهای رایج و پر استفاده عبارتند:

-        میکروکنترلرهای AVR که توسط شرکت Atmel در سال 1996 توسعه پیدا کرد. میکروکنترلرهای AVR دارای انواع مختلفی است و دارای چندین خانواده است.

-       میکروکنترلرهای PIC که توسط شرکت میکروچیپ تولید و به بازار عرضه شد.

-       میکروکنترلرهای مختلف دارای هسته پردازنده آرم، شرکت آرم با فروش لایسنس هسته‌های خود به شرکت‌های سازنده میکروکنترلر، اجازه تولید میکروکنترلر بر مبنای آن هسته پردازنده را به شرکت‌های دیگر واگذار می‎‌کند. امروزه شرکت‌های زیادی در دنیا میکروکنترلرهایی بر مبنای هسته‌های آرم تولید می‌کنند.

بیشتر بخوانید: میکروکنترلر avr چیست؟ و انواع آن ها

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

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

 

میکروکنترلرها در مکان‌های متعددی از جمله در خانه و شرکت، روباتیک، خودرو، سیستم‌های روشنایی، اتوماسیون صنعتی، ارتباطات و استقرار اینترنت اشیا (IoT) استفاده می شوند.

ساده‌ترین میکروکنترلرها عملکرد سیستم‌های الکترومکانیکی موجود در وسایل خانگی مانند اجاق‌ها، یخچال‌ها، توسترها، سیستم‌های آبیاری چمن را کنترل می‌کنند. آنها همچنین در ماشین های اداری مانند دستگاه‌های فتوکپی، اسکنر، دستگاه های فکس و چاپگرها و همچنین سیستم‌های اندازه‌گیر هوشمند، دستگاه های خودپرداز و سیستم های امنیتی رایج هستند.

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

انتخاب میکروکنترلر مناسب

انتخاب میکروکنترلر مناسب

هنگام انتخاب یک میکروکنترلر برای یک پروژه، باید تعدادی ملاحظات فنی و تجاری را در نظر گرفت.

فراتر از قیمت میکروکنترلر، در نظر گرفتن حداکثر سرعت، مقدار حافظه RAM و ROM، تعداد پایه‌های I/O و تجهیزات جانبی میکروکنترلر، و همچنین مصرف انرژی، محدودیت‌ها و پشتیبانی از توسعه مهم است. حتما قبل از خرید میکرو کنترلر باید از خود سوالاتی از قبیل موارد زیر را پرسید:

-       چه تجهیزات جانبی سخت افزاری مورد نیاز است؟

-       آیا ارتباطات  با ادوات خارجی مورد نیاز است؟

-       از میکرو کنترلر با چه نوع معماری باید استفاده کرد؟

-       چه کاربرانی از این میکرو کنترلر استفاده ‌می‌کنند و آیا منابع آموزشی برای آن میکروکنترلر موجود است؟

-       در دسترس بودن میکروکنترلر در بازار چقدر است؟

-       قیمت آن میکروکنترلر چقدر است ؟

-       آیا این میکروکنترلر محصولی بروز است یا از رده تولید خارج شده است؟

نظرات کاربران

هیچ نظری برای این مطلب ثبت نشده است.