میکروکنترلر چیست؟
میکروکنترلر(Microcontroller) نوعی IC است که قابلیت برنامهریزی دارد و عملکرد آن از پیش تعیین شده است.
آی سی(IC) یک پکیج متشکل از تعدادی مدار، ترانزیستور، گیتهای منطقی و … است. کاربرد این قطعه به گونهای گسترده است که به جرات میتوان گفت غالب وسایل الکترونیکی که در زندگی روزمره از آنها استفاده میکنیم، از جمله ماشینهای اداری، لوازم خانگی و بسیاری دیگر از وسایل از IC برخوردارند.
میکروکنترلر را میتوان کامپیوترهایی با ابعاد کوچکتر و قدرت کمتر دانست که برای کنترل و تصمیمگیری براساس الگوریتم استفاده میشوند. در ادامه این مقاله آسمان ایکس سعی کرده است تا شما را بیشتر با این کامپیوتر کوچک آشنا کند.
گری بون و مایکل کوکران در سال ۱۹۷۱ اولین میکرکنترلر جهان را با نام TMS ۱۰۰۰ توسعه دادند که این میکروکنترلر در سال ۱۹۷۴ به صورت تجاری منتشر شد.
در حال حاضر انواع مختلفی از میکروکنترلر با طول کلمههای ۴،۸،۶۴،۱۲۸ بیتی در بازار موجود است و همگی از بخشهای یکسانی که به مهمترین آنها اشاره میکنیم، تشکیل شدهاند.
شاید با شنیدن نام این بخش بیشتر بتوانید شباهت میکروکنترلرها را با کامپیوتر درک کنید! CPU همان واحد پردازش است که اصلیترین وظیفه در میکروکنترلر، یعنی استخراج دادهها و رمزگشایی آنها را بر عهده دارد.
پورت هر میکروکنترلر در واقع دریچهای برای ارتباط ریزکنترلگر با دنیای بیرون از آن است. کامپیوترها یا قطعات الکترونیکی از جمله LED، LCD، سنسورها و… همگی از طریق پورت میکروکنترلر به یکدیگر متصل میشوند.
گاهی اوقات نیازی برای انتقال فرمان از سمت کامپیوتر به میکروکنترلر پیش میآید، که برای این منظور باید میکروکنترلر قابلیت پشتیبانی از دو پورت USB و UART را داشته باشد تا برنامه نویس بدون مشکل و با توجه به نیاز برنامه، بتواند انتخاب کند کدام یک را راهاندازی کند.

مسئولیت برنامهریزی زمانی در میکروکنترلر برعهده تایمر است؛ به این شکل که میتوان پس از فعالسازی تایمر برای ثانیه به ثانیه عملکرد ریزکنترلگر برنامه مشخصی را طراحی کرد.
حافظه یا مموری میکروکنترلر وظیفه ذخیرهسازی الگوها و برنامههای تعریف شده برای آن را بر عهده دارد. علاوه بر مموری دو بخش RAM و ROM یا همان کش (حافظه موقت) نیز در فرایندهای ذخیرهسازی برنامههای تعریف شده برای میکروکنترلرها کاربردی هستند.
از دیگر بخشهای میکروکنترلرها میتوان به مبدلهای آنالوگ به دیجیتال و دیجیتال به آنالوگ، حافظه فلش، واحد PGA، انواع پروتکلهای ارتباطی و تعدادی موارد دیگر نیز اشاره کرد.
همچنین بخوانید: فلایت کنترلر چیست؟
میکروکنترلرها کامپایلرهای خاصی دارند که به کمک آنها و با قرار دادنشان در Programmer و اتصال آن با کابل به یکی از درگاههای کامپیوتر، میتوان برای آن برنامه نوشت و در حافظه Rom ذخیره کرد.
انواع Programmer هایی که برای برنامهریزی ریزکنترلگرها استفاده میشوند را میتوان به سه دسته تقسیم کرد:
۱. Programmer هایی که به وسیله پورتهای موازی برنامه ریزی میشوند.
۲. Programmer هایی که به وسیله پورتهای سریال برنامه ریزی میشوند.
۳. Programmer هایی که به وسیله دستگاه و با USB برنامه ریزی میشوند.
همچنین بخوانید:آردوینو چیست؟
انواع میکروکنترلرها را میتوان با توجه به نوع معماری، بیت، مموری و مجموعه دستورالعملها تقسیم بندی کرد:
دستهبندی بر اساس نوع معماری
میکروکنترلرها بر اساس ساختار معماری به دو دسته Harvard و Von Neumann تقسیم میشوند.
در این ساختار، برای ذخیرهسازی داده و کانالهای سینگال هر مجموعه، دستورالعملهایی به صورت جداگانه در نظر گرفته شده است. در ساختار Harvard وظیفه ذخیره کلیه دادهها بر عهده CPU است و هیچ راهی برای ذخیره دستورالعملها به عنوان داده وجود ندارد، اما امکان دسترسی همزمان به دادههای ذخیره شده و دستورالعملها در این ساختار فراهم شده است.
در این معماری، برای دستورالعمل و داده تنها یک کانال در نظر گرفته شده است و لازم است CPU یک عمل را تنها در یک زمان انجام دهد؛ بنابراین عمل استخراج داده و خواندن و نوشتن روی داده نمیتواند در یک زمان انجام شود.
در موارد مختلف میتوان از انواع مختلف میکروکنترلر استفاده کرد. به عنوان مثال میکروکنترلر ۸ بیتی معمولا برای اجرای عملیاتهای منطقی و محاسباتی استفاده میشود؛ یا میکروکنترلرهای ۱۶ بیتی که با دقت بالاتر و عملکرد دقیقتری این عملیات را انجام میدهند و ریزکنترلگرهای ۳۲ بیتی که تمام عملیات منطقی و محاسباتی را در دستگاههای خودکار انجام میدهند.
در این نوع طبقهبندی، میکروکنترلرها به دو دسته External Memory Microcontroller و Embedded Memory Microcontroller تقسیم میشوند که در نوع اول ریزکنترلگر با حافظه خارجی نوعی از تراشهها است که شامل تمام بلوکهای توابع نیست و نوع دوم که همراه با حافظه است، تمام بلوکهای توابع در آن تعبیه شدهاند.
هر یک از میکروکنترلرهای موجود در بازار از یکی از خانوادههای ۸۰۵۱، AVR و یا PIC هستند.

بیشترین استفاده در بین میکروکنترلرها مربوط به میکروکنترلرهای خانواده ۸۰۵۱ است. کیفیت مناسب و قدیمی بودن این محصول، میتواند دلیل پر طرفدار بودن این خانواده دانست. لازم به ذکر است که ریزکنترلگرهای این خانواده به نوسانساز نیازمند هستند و در مقابل دیگر خانوادههای میکروکنترلر از امکانات کمتری برخوردار میباشند. معروفترین کامپایلر برای این خانواده Franklin میباشد و از پرطرفدار ترین آی سیهای این خانواده میتوان به ۸۹S۵۱ و ۸۹C۵۱ اشاره کرد.
در سال ۱۹۶۶ برای اولین بار سرویس Atmel میکروکنترلری با عنوان AVR که بر اساس معماری Harvard طراحی شده بود را ارائه کرد. خانواده AVR علاوه بر تمامی امکانات خانواده ۸۰۵۱، از امکانات دیگری همچون مبدل تبدیل آنالوگ به دیجیتال و دیجیتال به آنالوگ، نوسانسازی داخلی با قدرت و سرعت بیشتر بهرهمند هستند. یکی از ویژگیهای منحصر به فرد این خانواده را میتوان سه نوع حافظه به کار رفته در آن دانست؛ حافظه فلش که برنامه اصلی را در خود ذخیره میکند، حافظه SRAM که برای اجرای برنامه استفاده میشود و حافظه EEPROM که حافظه ای داخلی و دائمی برای ذخیره اطلاعات است. مهمترین آی سیهای این خانواده، AVR Classic، ATtiny و ATmega نام دارند.
از اولین تولید کنندگان خانواده PIC (Peripheral Interface Controller) میکروکنترلرها میتوان به شرکت میکروچیپ اشاره کرد که ساختاری بر پایه معماری Harvard دارند. از آنجایی که این تراشهها از برنامهنویسی C و اسمبلی پشتیبانی میکنند، در بین صنعتگران بسیار محبوب هستند؛ همچنین به دلیل به روزرسانیهای مداومشان توانستهاند در صنعت لوازم خانگی از محبوبیت زیادی برخوردار شوند. از بهترین میکروکنترلرهای این خانواده نیز میتوان به PIC۰۴ و PIC۱۲F اشاره کرد.
در پایان امیدواریم توانسته باشیم با اطلاعات داده شده در دستهبندیهای مختلف میکروکنترلرها دیدگاه بهتری برای انتخاب بهتر قطعه مد نظر به شما داده باشیم.
همچنین بخوانید: مفهوم اولیه محاسبات رباتیک
تولیدکنندگان مطرح میکروکنترلرها شرکت های Atmel،TI و موتورولا و فیلیپس هستند که به تولید میکروکنترلرهای سری AVR و ۸۰۵۱ میپردازند؛ در حالی که در ایران سری ARM در حال فراگیر شدن است که تولید آن توسط شرکت NXP،Atmel و ST انجام میشود.
معماری میکروکنترلر ARM از نوع انتقال داده (load and store) است. در این نوع معماری پردازش داده به جای اینکه به طور مستقیم در حافظه انجام شود تنها بر روی محتوای رجیسترها انجام میگیرد، از این رو دستورات پردازش داده بر روی رجیسترها متفاوت میباشند.
مجموعه دستورات ARM یکسان و دارای طول ثابت هستند. پردازندههای ARM ۳۲ بیتی دو مجموعه دستورالعمل دارند: مجموعه دستورات کلی ۳۲ بیتی ARM و مجموعه دستورات ۱۶ بیت Thumb.




دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.