logo-site-sefid
Search
Close this search box.
What-is-a-microcontroller

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

میکروکنترلر چیست ؟ یک تراشه نیمه هادی IC (مدار مجتمع) است که از چندین بلوک عملکردی مانند CPU ، ROM ، RAM ، تایمر ، شمارنده و وقفه ها و غیره تشکیل شده است. در واقع یک کامپیوتر کوچک با تمام وسایل جانبی درون یک بسته است.

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

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

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

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

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

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

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

میکروکنترلر 8 بیتی:

پهنای باند این میکروکنترلرها به طول 8 بیت (1 بایت) است. این بدان معنی است که می تواند داده های 8 بیت را در یک چرخه واحد انتقال و پردازش کند. مانع اصلی ایجاد آن در عملیات ریاضی است زیرا ALU (واحد منطق ریاضی) آن نیز 8 بیتی است. برای پردازش داده های بزرگ به عنوان مثال 16 بیتی ، از چندین چرخه برای تکمیل یک تابع ساده ریاضی استفاده می کند. این منجر به عملکرد ضعیف مدار منطقی کلی می شود.

دیگر ویژگی اصلی میکروکنترلر 8 بیتی تایمر آن است. یک تایمر 8 بیتی حداکثر دامنه 0x00 (0) تا 0xFF (255) را دارد. این می تواند باعث عدم دقت در تولید توابع تاخیر زمانی شود.

برخی از میکروکنترلرهای 8 بیتی رایج اینتل 8031/8051 ، PIC1x و Motorola MC68HC11 هستند.

میکروکنترلر 16 بیتی:

پهنای باند چنین میکروکنترلری 16 بیت (2 بایت) است. این می تواند داده های 16 بیتی را در یک چرخه انتقال و پردازش کند. ALU 16 بیتی آن در مقایسه با میکروکنترلر 8 بیتی کارایی بیشتری دارد. و تایمر 16 بیتی آن دامنه وسیعی از 0x0000 (0) تا 0xFFFF (65535) را فراهم می کند که بهترین دقت را در هر هزینه برای هر برنامه یا پروژه ای که به عملکردهای تایمر نیاز دارد فراهم می کند.

نمونه های متداول میکروکنترلرهای 16 بیتی ، خانواده های 8051XA ، PIC2x ، Intel 8096 و Motorola MC68HC12 هستند.

میکروکنترلر 32 بیتی

پهنای باند یک میکروکنترلر 32 بیتی 32 بیت یا 4 بایت است. عملکرد و دقت چنین میکروکنترلری بالاتر از میکروکنترلر 16 بیتی است اما گران هستند و مصرف انرژی زیادی دارند.

سرعت پردازش بالاتر آن را به بهترین گزینه برای انجام کارهای پیچیده مانند پردازش سیگنال صوتی و تصویری ، پردازش تصویر و غیره تبدیل می کند. همچنین می تواند از چندین دستگاه جانبی مورد نیاز در هر پروژه سیستم جاسازی شده یا برنامه هایی مانند Ethernet ، Universal Serial Bus (USB) پشتیبانی کند.

میکروکنترلرهای 32 بیتی رایج ، خانواده Intel / Atmel 251 ، PIC3x هستند.

دسته بندی بر اساس حافظه

میکروکنترلر نیز بر اساس بلوک های حافظه ضروری به دو نوع طبقه بندی می شود.

حافظه داخلی

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

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

چنین نوع میکروکنترلری یکی از بلوک های اصلی حافظه را در داخل تراشه ندارد و برای عملکرد صحیح آن باید به حافظه خارجی متصل شود . استفاده از ماژول های خارجی اندازه کل دستگاه را افزایش می دهد.

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

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

در اینجا برخی از مثالهای دستورالعمل در میکروکنترلر وجود دارد. خواندن ، نوشتن ، کپی / جابجایی ، جمع ، تفریق ، ضرب ، تقسیم ، افزایش ، کاهش ، مقایسه ، تماس با آدرس مکان و غیره

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

طبق مجموعه دستورالعمل ها ، میکروکنترلرها به دو نوع طبقه بندی می شوند.

CISC (Complex Instruction Set Computer)

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

RISC (Reduced Instruction Set Computers)

این نوع پردازنده میکروکنترلر برای اجرای دستورالعمل های ساده کوچکتر طراحی شده است. از آنجا که برای اجرای یک دستورالعمل یک چرخه ماشین لازم است ، می توان برای اجرای یک کار پیچیده با سرعت بالاتر از CISC تعداد دستورالعمل ها را کاهش داد. اندازه مجموعه دستورالعمل آن کوچک است و کد برنامه نوشته شده برای چنین MCU معمولاً بسیار طولانی است و از خطوط زیادی تشکیل شده است.

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

معماری میکروکنترلر مجموعه قوانینی است که عملکرد و اجرای میکروکنترلر را تعریف می کند.

حافظه برنامه (ROM) برای ذخیره و دسترسی به کد یا دستورالعمل استفاده می شود. در حالی که از حافظه داده (RAM) برای ذخیره و دسترسی به داده های استفاده شده توسط این دستورالعمل ها استفاده می شود. دو نوع معماری وجود دارد که بر اساس استفاده از یک حافظه منفرد یا جداگانه برای این داده ها و دستورالعمل ها ، از یکدیگر متمایز می شوند.

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

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

Harvard Architecture based Microcontroller 300x280 1

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

میکروکنترلر معماری Von Neumann (یا Princeton):

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

برای دسترسی به داده ها و دستورالعمل های واکشی فقط یک گذرگاه مورد نیاز است. بنابراین ، هر دو عملیات نمی توانند همزمان انجام شوند و باید برنامه ریزی شوند. به همین دلیل میکروکنترلر مبتنی بر معماری von Neumann دو چرخه ماشین طول می کشد تا یک دستورالعمل را تکمیل کند. از آنجا که از سیستم تک اتوبوس استفاده می کند ، طراحی آن ساده است و در مقایسه با معماری هاروارد تولید آن بسیار کم است.

 

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

میکروکنترلر PIC

PIC مخفف کلمه peripheral interface controller (کنترلر رابط محیطی) است و براساس معماری هاروارد است. این ماده عمدتا برای توسعه سیستم های الکترونیکی تعبیه شده در وسایل نقلیه ، رباتیک ، دستگاه های پزشکی ، دستگاه های فروش ، ماشین های اداری و دستگاه های مختلف دیگر استفاده می شود. این خانواده از میکروکنترلرهای ساخته شده توسط فناوری Microchip است. به راحتی می توان از طریق نرم افزار با استفاده از زبان Assembly ، C یا Basic C برنامه ریزی کرد تا یک کار خاص را انجام دهد.

PIC Microcontroller

این پردازنده با عملکرد بالا RISC (Reduced Instruction set computer) دارای فلش یا حافظه برنامه و حافظه داده است. حافظه برنامه EEPROM (حافظه قابل خواندن قابل برنامه ریزی قابل پاک شدن از طریق برق) یک حافظه قابل برنامه ریزی مجدد است. از آنجا که معماری پایه هاروارد است ، دارای حافظه برنامه و حافظه داده جداگانه است که سرعت پردازش آن را افزایش می دهد.

اکثر PIC ها دارای نوسان ساز داخلی معمولا 8 مگاهرتز یا 16 مگاهرتز هستند. آنها در 8 بیتی ، 16 بیتی و آخرین مدلهای آنها در یک باس داده 32 بیتی در دسترس هستند. مجموعه دستورالعمل های میکروکنترلر PIC از 35 دستورالعمل در MCU های سطح پایین تا 80 دستورالعمل در MCU پیشرفته متفاوت است. پالس مجموعه دستورالعمل برنامه می تواند 12 ، 14 ، 16 و 24 بیت طول داشته باشد. در خانواده و مدل میکروکنترلر PIC متفاوت است. آنها در هر دو بسته SMD و DIP با حداقل 6 تا حداکثر 144 پین در دسترس هستند.

به دلیل هزینه کم ، مصرف کم انرژی و سرعت زیاد ، تقریباً در هر دستگاه الکترونیکی استفاده می شود.

متداول ترین نوع این میکروکنترلر PIC16F877A است. در زیر برخی از برجسته ترین ویژگی های PIC16F877A آورده شده است.

  • این یک IC 40 پین در بسته بندی DIP با 33 پین موجود برای ورودی / خروجی است.
  • نوسانگر داخلی وجود ندارد ، بنابراین یک اسیلاتور خارجی برای تولید چرخه ساعت اجباری است.
  • از آنجا که ساعت داخلی وجود ندارد ، استفاده از ساعت خارجی تا 20 مگاهرتز منجر به عملکرد سریعتر می شود.
  • این مجموعه دستورالعمل کوچکتر از 35 است.
  • دارای 8 بیتی ADC با 8 کانال برای رابط هم زمان با 8 ورودی آنالوگ.
  • دارای 3 تایمر شامل دو تایمر 8 بیتی و یک تایمر 16 بیتی.
  • ویژگی حالت خواب آن برای افزایش عمر باتری ، مصرف برق بسیار کم را فراهم می کند.
  • ولتاژ عملیاتی از 4.2v تا 5.5v است.

میکروکنترلر 8051

8051 رایج ترین و ارزان ترین میکروکنترلر ساخته شده توسط شرکت اینتل در سال 1981 است. این سیستم برای داشتن برنامه های جداگانه و حافظه داده بر اساس معماری CISC Harvard ساخته شده است. از بارزترین ویژگیهای میکروکنترلرهای 8051 می توان به موارد زیر اشاره کرد:

8051 Microcontroller

  • این یک میکروکنترلر 8 بیتی است که در 40 پین DIP موجود است.
  • دارای 4Kb رام قابل برنامه ریزی روی تراشه برای ذخیره کد برنامه.
  • دارای 128 بایت RAM روی تراشه برای ذخیره سازی موقت داده ها. با این حال ، با استفاده از حافظه خارجی تا 64Kb می توان آن را افزایش داد
  • از 40 پین آن 32 پین ورودی / خروجی است که به چهار پورت 8 بیتی موازی تقسیم می شوند. و هر یک از این بیت ها قابل برنامه ریزی و در دسترس هستند.
  • دارای 2 تایمر 16 بیتی / شمارنده و 2 وقفه خارجی است.
  • همچنین ممکن است دارای ویژگی های خاص مختلفی مانند UARTs ، ADC ، Op-amp و غیره باشد
  • برنامه آن برای 8051 به زبان C نوشته شده است که برای درک میکروکنترلر به زبان اسمبلی تبدیل می شود

میکروکنترلر 8051 عموماً در پروژه های الکترونیکی عمدتا برای اهداف یادگیری استفاده می شود. این برای انجام کارهای خاص مانند هشدار دهنده های آتش ، سنجش دما ، کنترل موتور ، اتومبیل ، برنامه های حسگر نور و برنامه کنترل شده RTC استفاده می شود.

میکروکنترلر AVR

AVR مخفف Alf and Vegard’s RISC Processor است زیرا اولین بار توسط Alf-Egil Bogen & Vegard Wollan ، دانشجویان نروژی ساخته شد. این یک خانواده از میکروکنترلر است که توسط Atmel از سال 1996 و از سال 2016 توسط میکروچیپ ساخته شده است.

میکروکنترلر AVR

این بر اساس معماری اصلاح شده هاروارد است که فضای ذخیره سازی جداگانه ای را برای برنامه و داده ارائه می دهد. AVR در مقایسه با میکروکنترلر PIC یا 8051 سرعت بسیار بالایی دارد.

میکروکنترلرهای AVR به طور کلی در خانواده های زیر موجود هستند:

TinyAVR

MegaAVR

XMEGAAVR

AVR مخصوص برنامه

AVR 32 بیتی

رایج ترین میکروکنترلرهای AVR متعلق به خانواده MegaAVR هستند که به ATmega16 ، ATmega32 و ATmega64 معروف هستند. تفاوت این میکروکنترلرها در فضای ذخیره سازی فلش آنها 16KB ، 32Kb و 64KB است که با آخرین شماره به نام آنها مشخص شده است. در پروژه های خود که از آردوینو استفاده میکنیم از این مدل میکروکنترلرها استفاده خواهیم کرد. در پروژه های آموزش رباتیک از این میکروها بسیار استفاده میکنیم.

ویژگی مشترک میکروکنترلرهای AVR ATmega32 عبارتند از:

  • این یک میکروکنترلر 8 بیتی با 40 پین DIP (بسته خطی دوتایی) است
  • تعداد کل پین های ورودی / خروجی 32 پین است که به چهار پورت 8 بیتی تقسیم می شوند.
  • این یک رام فلش قابل برنامه ریزی مجدد روی تراشه 32 کیلوبایت با حافظه رم 1 کیلوبایت برای داده ها دارد.
  • این شامل 3 تایمر / شمارنده شامل دو تایمر 8 بیتی و یک تایمر 16 بیتی است.
  • یک ADC 10 بیتی با 8 کانال آنالوگ.
  • دارای 4 کانال PWM برای تولید پالس است.
  • دارای یک اسیلاتور داخلی 8 مگاهرتز است که می تواند کاهش یابد.
  • محبوب ترین AVR به دلیل سرعت زیاد و هزینه کم در بین دانشجویان و علاقه مندان مورد استفاده قرار می گیرد.

میکروکنترلر ARM

ARM مخفف Advanced RISC Machine است و خانواده ای از هسته ریزپردازنده است که در هر دو معماری مبتنی بر هاروارد و فون نویمان موجود است. معماری هاروارد دارای باس های جداگانه ای برای دسترسی به حافظه برنامه (ROM) و داده (RAM) است در حالی که معماری von Neumann از یک حافظه واحد برای هر دو استفاده می کند بنابراین سرعت را به خطر می اندازد. اساساً هسته های ARM ریزپردازنده هایی هستند که برای استفاده در تراشه هایی مانند میکروکنترلرها طراحی شده اند.

میکروکنترلر ARM

پردازنده ARM مبتنی بر معماری RISC است که اجرای سریع دستورالعمل را ارائه می دهد. آنها یک انتخاب محبوب برای استفاده گسترده در دستگاه های الکترونیکی دستی مصرف کننده مانند تلفن های همراه ، تبلت ها ، پخش کننده های چندرسانه ای و سایر دستگاه های پوشیدنی هستند.

انواع مختلفی از پردازنده های ARM وجود دارد که به طور خاص برای اهداف مختلف طراحی شده اند.

Cortex-A: این پردازنده ها برای سیستم عامل های پیشرفته ساخته شده اند و بهترین عملکرد را دارند.

Cortex-R: این پردازنده ها دارای زمان پاسخ سریع هستند بنابراین از آنها برای کاربردهای واقعی استفاده می شود.

Cortex-M: پردازنده Cortex-M به طور خاص برای میکروکنترلرها ساخته شده است ،

متداول ترین نوع میکروکنترلر ARM ARM Cortex-M است.

این یک خانواده از پردازنده های ARM است که برای میکروکنترلرها ساخته شده و با سرعت پردازش های مختلف موجود است.

پردازنده Cortex M0 (بر اساس معماری von Neumann) سرعت کم و هزینه بسیار کمی را که بیشتر در تابلوهای توسعه استفاده می شود ارائه می دهد.

در حالی که این مدل های بهبود یافته مانند Cortex-M3 (بر اساس معماری هاروارد) در بردهای مشهور Adruino استفاده می شود.

میکروکنترلر RENESAS

RENESAS مخفف Renaissance Semiconductor for Advanced Solutions است و آنها میکروپروسسورها و میکروکنترلرها را ارائه می دهند که علاوه بر مصرف بسیار کم برق و بسته بندی جمع و جور ، دارای بهترین ویژگی های عملکردی هستند.

میکروکنترلر RENESAS

با توجه به در دسترس بودن بیشترین دامنه ظرفیت حافظه و تعداد پین ، از آنها در برنامه های مختلف تعبیه شده کنترل خودرو پیشرفته استفاده می شود. میکروکنترلرهای خانواده RL78 & RX بیشترین محبوبیت را دارند در حالی که مورد اول به دلیل ویژگی کم مصرف در آن استفاده می شود در حالی که دومی به دلیل عملکرد بالا مشهور است.

برخی از بارزترین ویژگیهای میکروکنترلرهای خانواده RENESAS RL78 & RX.

  • آنها براساس معماری CISC هاروارد ساخته شده اند تا عملکرد بالایی داشته باشند.
  • خانواده RL78 در یک میکروکنترلر 8 بیتی و 16 بیتی در حالی که RX میکروکنترلر 32 بیتی است در دسترس است.
  • خانواده RL78 یک میکروکنترلر کم مصرف است در حالی که RX عملکرد و کارایی بالایی را ارائه می دهد.
  • تعداد پین ها برای RL78 Family از 20 پین تا 128 پین است در حالی که میکروکنترلرهای RX در 48 پین تا 176 پین موجود هستند.
  • همچنین حافظه فلش از 16 کیلوبایت به حداکثر 512 کیلوبایت برای RL78 و 32 کیلوبایت به 2 مگابایت برای میکروکنترلرهای خانواده RX کوچک می شود.
  • محدوده RAM در خانواده RX از 2KB تا 128KB است.

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

میکروکنترلرها می توانند برای تکمیل هر کار با استفاده از رابط های حسگر ، محرک ، موتور و لوازم خانگی و غیره استفاده شوند. در زیر برخی از کاربردهای میکروکنترلرها ذکر شده است.

تلفن های هوشمند و دستگاه های تلفن همراه دستی

اتومبیل

دوربین ها

لوازم خانگی

تشخیص آتش ، هشدارهای امنیتی و دستگاه های ایمنی (شامل سنجش دما و دود)

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

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

اتوماسیون صنعتی (تسمه نقاله ، مرتب سازی ، انتخاب و قرار دادن ربات ها و غیره)

دستگاه های اندازه گیری و اندازه گیری صنعتی مانند ولت و جریان سنج ، دستگاه های تشخیص اشیا ، بازرسی و مرتب سازی ،

دستگاه های ارتباطی

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

تست و اندازه گیری

دستگاه های پزشکی مانند گلوکز متر ، دستگاه فشار خون ، MRI ، CT و دستگاه های اشعه ایکس و غیره

رضا قنبری
متخصص آموزش رباتیک

رضا قنبری هستم متخصص آموزش رباتیک با بیش از 10 سال سابقه فعالیت در ایران

این مطلب را به اشتراک بگذارید

دسته بندی نشده

ماژول سنسور مجاورت نوری

ماژول سنسور مجاورت نوری قبل از خواندن این مقاله بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند

ماژول کاهنده

ماژول كاهنده قبل از خواندن مقاله ماژول كاهنده بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند از

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *