میکروکنترلر (MCU)

میکروکنترلر یک مدار مجتمع فشرده است که برای کنترل یک عملیات خاص در یک سیستم تعبیه شده طراحی شده است. یک میکروکنترلر معمولی شامل یک پردازنده، حافظه و تجهیزات جانبی ورودی/خروجی (I/O) روی یک تراشه است.
گاهی اوقات به عنوان یک کنترلر تعبیه شده یا واحد میکروکنترلر (MCU) شناخته می شود، میکروکنترلرها در وسایل نقلیه، ربات ها، ماشین های اداری، دستگاه های پزشکی، فرستنده های رادیویی سیار، ماشین های فروش و لوازم خانگی و سایر دستگاه ها یافت می شوند. آنها اساساً رایانه‌های شخصی مینیاتوری ساده‌ای هستند که برای کنترل ویژگی‌های کوچک یک جزء بزرگ‌تر، بدون سیستم‌عامل (OS) پیچیده طراحی شده‌اند.

میکروکنترلرها چگونه کار می کنند؟

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

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

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

عناصر میکروکنترلر چیست؟

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

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

 

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

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

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

  • لوازم جانبی ورودی/خروجی — دستگاه های ورودی و خروجی رابط پردازنده با دنیای خارج هستند. پورت های ورودی اطلاعات را دریافت کرده و در قالب داده های باینری به پردازنده ارسال می کنند. پردازنده آن داده ها را دریافت می کند و دستورالعمل های لازم را به دستگاه های خروجی که وظایف خارج از میکروکنترلر را انجام می دهند ارسال می کند.

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

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

  • مبدل آنالوگ به دیجیتال (ADC) — ADC مداری است که سیگنال های آنالوگ را به سیگنال دیجیتال تبدیل می کند. این اجازه می دهد تا پردازنده در مرکز میکروکنترلر با دستگاه های آنالوگ خارجی مانند سنسورها ارتباط برقرار کند.
  • مبدل دیجیتال به آنالوگ (DAC) – یک DAC عملکرد معکوس یک ADC را انجام می دهد و به پردازنده در مرکز میکروکنترلر اجازه می دهد تا سیگنال های خروجی خود را به اجزای آنالوگ خارجی منتقل کند.
  • گذرگاه سیستم — گذرگاه سیستم سیم اتصالی است که تمام اجزای میکروکنترلر را به یکدیگر متصل می کند.
  • پورت سریال — پورت سریال نمونه ای از پورت ورودی/خروجی است که به میکروکنترلر اجازه می دهد تا به اجزای خارجی متصل شود. عملکردی مشابه USB یا پورت موازی دارد اما در نحوه تبادل بیت ها متفاوت است.

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

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

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

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

پردازنده های میکروکنترلر می توانند بر اساس محاسبات مجموعه دستورالعمل های پیچیده (CISC) یا محاسبات مجموعه دستورالعمل کاهش یافته (RISC) باشند. CISC به طور کلی حدود 80 دستورالعمل دارد در حالی که RISC حدود 30 دستورالعمل دارد و همچنین حالت های آدرس دهی بیشتری دارد، 12-24 در مقایسه با RISC 3-5. در حالی که CISC می‌تواند آسان‌تر اجرا شود و از حافظه کارآمدتری استفاده کند، می‌تواند به دلیل تعداد بیشتر چرخه‌های ساعت مورد نیاز برای اجرای دستورالعمل‌ها، کاهش عملکرد داشته باشد. RISC که تاکید بیشتری بر نرم افزار دارد، اغلب عملکرد بهتری نسبت به پردازنده های CISC که تاکید بیشتری بر سخت افزار دارند، به دلیل مجموعه دستورالعمل های ساده و در نتیجه افزایش سادگی طراحی ارائه می دهد، اما به دلیل تاکید بر نرم افزار، نرم افزار می تواند پیچیده تر باشد. اینکه کدام ISC استفاده می شود بسته به کاربرد متفاوت است.

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

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

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

MCU های رایج عبارتند از Intel MCS-51، که اغلب به عنوان یک میکروکنترلر 8051 شناخته می شود، که اولین بار در سال 1985 توسعه یافت. میکروکنترلر AVR که توسط Atmel در سال 1996 توسعه یافت. کنترلر رابط قابل برنامه ریزی (PIC) از Microchip Technology. و میکروکنترلرهای مختلف دارای مجوز Advanced RISC Machines (ARM).

تعدادی از شرکت ها میکروکنترلرها را تولید و می فروشند، از جمله NXP Semiconductors، Renesas Electronics، Silicon Labs و Texas Instruments.

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

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

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

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

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

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

تمایز بین میکروکنترلرها و ریزپردازنده ها کمتر واضح شده است زیرا چگالی و پیچیدگی تراشه نسبتاً ارزان شده است و میکروکنترلرها انواع عملکردهای “کامپیوتری عمومی” بیشتری را ادغام کرده اند. با این حال، به طور کلی، می توان گفت که میکروکنترلرها به تنهایی با اتصال مستقیم به حسگرها و محرک ها، که در آن ریزپردازنده ها برای به حداکثر رساندن توان محاسباتی روی تراشه، با اتصالات باس داخلی (به جای ورودی/خروجی مستقیم) طراحی شده اند، عملکرد مفیدی دارند. برای پشتیبانی از سخت افزارهایی مانند RAM و پورت های سریال. به زبان ساده، قهوه سازها از میکروکنترلرها استفاده می کنند. کامپیوترهای رومیزی از ریزپردازنده استفاده می کنند.

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

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

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

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

  • چه تجهیزات جانبی سخت افزاری مورد نیاز است؟
  • آیا ارتباطات خارجی مورد نیاز است؟
  • از چه معماری باید استفاده کرد؟
  • چه نوع جامعه و منابعی برای میکروکنترلر موجود است؟
  • در دسترس بودن میکروکنترلر در بازار چقدر است؟