میکروکنترلر چیست؟ آی سی هایی که قابل برنامه ریزی می باشد و عملکرد آنها از قبل تعیین شده است را میکروکنترلرگویند، میکروکنترلر ها دارای ورودی – خروجی و قدرت پردازش می باشد.
این آی سی ها حکم یک کامپیوتر در ابعاد کوچک و قدرت کمتر را دارند بیشتر این آی سی ها برای کنترل و تصمیم گیری استفاده می شود چون طبق الگوریتم برنامه ی آن عمل می کند این آی سی ها برای کنترل ربات ها تا استفاده در کارخانه صنعتی کار برد دارد. امکانات میکرو کنترلرها یکسان نیست و هر کدام امکانات خاصی را دارا می باشند و در قیمت های مختلف عرضه می شود.
بخشهای مختلف میکروکنترلر) میکروکنترلر ها از بخشهای زیر تشکیل شده اند؛
Cpu واحد پردازش
Alu واحد محاسبات
I /O ورودی ها و خروجی ها
Ram حافظه اصلی میکرو
Rom حافظه ای که برنامه روی آن ذخیره می گردد
Timer برای کنترل زمان ها
و…
خانواده های میکروکنترلر
از میکروکنترلر های رایج در ایران، می توان به خانواده های PIC, ARM, 8051 و AVR اشاره کرد، که خانواده AVR از محبوبیت بالایی نسبت به دیگر خانواده های میکروکنترولر برخوردار است. در این بخش قصد داریم تا شما را بصورت مختصر با ویژگی ها و امکانات این میکروکنترولر ها آشنا کنیم.
خانواده AVR:
میکروکنترلرهای AVR محصول شرکت Atmel می باشند که از میکروهای پرمصرف در بازار برق و الکترونیک هستند. این میکروها در کاربردهای گوناگون در صنعت و پروژه های دانشگاهی و تحقیقاتی استفاده زیادی دارند البته به خاطر فرکانس پایین این نوع میکروها در صنعت و پروژه های حساس با فرکانس بالا از این میکروکنترلرها استفاده کمتری می شود.
این خانواده از میکروکنترولر ها دارای چهار زیرمجموعه اصلی می باشند؛
1 – میکروکنترلرهای سری AT90S (سری کلاسیک)
2 – مکروکنترلرهای سری AT tiny
3 – میکروکنترلرهای سری ATmega
4 – میکروکنترلرهای سری ATXmega (جدید)
فناوری استفاده شده در ساخت این میکروکنترلرها شامل RISC و CISC می باشد که RISC مخفف کلمه ی Reduced Instruction Set Computer کامپیوتر با مجموعه دستورات کاهش یافته می باشد. در این معماری دستورات سریع تر اجرا می شوند اما نوشتن برنامه مشکل تر است. در معماری CISC مخفف complex Instruction Set Computer می باشد که دستورات پیچیده ولی نوشتن برنامه در این معماری آسان تر است.
برنامه نویسی تمامی میکروکنترلرهای AVR به زبان C و بیسیک صورت می گیرد که برای هر کدام از زبان های برنامه نویسی کامپایلرهایی وجود دارد. از جمله کامپایلرهای معروف برای زبان C نرم افزار CodeVision AVR و برای برنامه نویسی به زبان بیسیک معمولا از نرم افزار BASCOM Avr استفاده می شود. تمامی برنامه های نوشته شده در این کامپایلرها برای تمام میکروکنترلرهای Atmel به شیوه یکسان ولی با رجیسترها و ثبات های متفاوتی می باشند. که برای برنامه نویسی این میکروکنترلرها باید به دیتاشیت مخصوص آن میکرو مراجعه کرد.
امکانات:
میکروکنترلرهای AVR دارای امکانات و ویژگی های خاصی هستند که معمولا در دیگر میکروها نیز استفاده می شود از امکانات این میکروها می توان به قابلیت استفاده از تایمرها، واحد آنالوگ به دیجیتال ADC ، سیستم ریست نرم افزاری، مقایسه کننده آنالوگ، رابط سریال USART، رابط سریال دو سیم TWI، وقفه ها، Boot Loader، رابط JTAG و برنامه اشکال زدایی Debug، مدیریت توان، ارتباط از طریق پورت USB، کارت های حافظه MMC/SD، صفحه نمایش های گرافیکی نام برد که هر کدام تنظیمات مخصوص به خودشان را دارند.
خانواده میکرو ATtiny:
این گروه از خانواده میکروکنترلر AVR برخلاف اسم کوچکی که دارند، دارای حافظه CPU قدرتمند و حافظه 4 کیلوبایتی فلش هستند، حافظه SRAM و حافظه EEPROM دارای 128 بایت است. به خاطر سایز کوچکی که دارند معمولا در مدارهایی که حجم آن مهم است استفاده می شوند.
خانواده کلاسیک AT90S:
این میکروها، امکانات و توانایی های بیشتری نسبت به خانواده tiny دارند که می توان به افزایش حافظه برنامه، حافظه داده و … اشاره کرد. از جمله مدل های این میکروها می توان از AT90S1200 ، AT90S2313 و AT90S2323 نام برد.
خانواده میکرو ATmega
از جمله فرزندان این خانواده می توان به ATmega8 ، ATmega16، ATmega32، ATmega64، ATmega128 می باشند که معروفترین در خانواده Atmega هستند. این میکروها از لحاظ امکانات و قابلیت ها در حالت کلی یکسان هستند اما در زمینه های جزیی مانند کانال های ADC، تایمر کانترها و در تعداد حافظه های میکرو با یکدیگر اختلاف دارند. عدد نوشته شده در کنار مدل میکرو، مقدار حافظه فلش موجود در میکرو می باشد. برای مثال ATmega64 دارای حافظه فلش 64 کیلوبایت و ATmega128 دارای حافظه فلش 128 کیلوبایت هستند.
هر یک از میکروها دارای دو نوع هستند. که با نوشتن L یا A در آخر مدل با یکدیگر متفاوت می شوند بطور مثال ATmega16A و ATmega16L. این دو نوع از میکروها فرق هایی با یکدیگر دارند که از جمله آنها، سطح ولتاژی می باشد برای مثال در مدل ATmega64A دارای ولتاژهای 4٫5 تا 5٫5 ولت و مدل ATmega64L دارای ولتاژ 2٫7 تا 5٫5 هستند. از لحاظ فرکانسی با یکدیگر نیز فرق دارند بطوری که ATmega64L دارای فرکانس 0 تا 8 مگاهرتز و ATmega64A دارای فرکانس 0 تا 16 مگاهرتز می باشند.
خانواده میکرو ATXmega:
میکروکنترلرهای سری Xmega جدیدترین و قدرتمندترین سری از میکروکنترلرهای AVR ساخت شرکت Atmel هستند که از نظر قابلیت ها و امکانات جانبی نسبت به سری Mega بهبود زیادی یافته اند. این میکروکنترلرها کارایی بهتر، Real Time بودن و توان مصرفی کم برای کاربردهای میکروکنترلری را دارند. کم مصرف بودن این سری باعث می شود که برای کاربردهای همراه ( دارای باتری ) بسیار مناسب باشند. معماری CPU در میکروکنترلرهای سری Xmega کاملا شبیه به معماری CPU در میکروکنترلرهای سری Mega هستند با این تفاوت که در Xmega پهنای رجیسترها و باس های داده و دستور العمل 16 بیتی هستند و میکروکنترلر میتواند در دو حالت 8 بیتی یا 16 بیتی پردازش کند.
خانواده PIC:
شرکت microchip خانواده وسیعی از میکروکنترلرهای pic را در دسته های 8بیتی 16بیتی و 32بیتی برای کاربرد های مختلف فراهم کرده است که این خانواده ها روز به روز در حال توسعه یافتن هستند.همین امر موجب محبوب بودن pic ها در صنعت می باشد.
– سری میکرو های 8 بیتی
1- سری PIC10F,PIC12F:
این سری قدیمی ترین سری از میکروکنترلرهای PIC می باشد اما سادگی کار با آنها و نیز ارزان بودن آنها باعث شده تا همچنان این میکروکنترلر ها در صنعت باقی بمانند. البته microchip با توسعه میکروکنترلر های این گروه همانطور که مشاهده می کنید سرعت اسیلاتور در خانواده pic10f حداکثر 16مگاهرتز و در خانواده PIC12F نیز حداکثر سرعت 32مگاهرتز در برخی مدل ها می باشد.
2- سری PIC16F:
از این سری 155 نوع میکروکنترلر موجود است که نهایت سرعت اسیلاتور در آنها 48مگاهرتز می باشد.
3- سری PIC18F:
این سری قوی ترین و جدید ترین میکروکنترلر های 8بیتی PIC می باشد و حدود 220 میکروکنترلر از این سری ساخته شده است. سرعت در برخی از میکروکنترلر های این سری تا64 مگاهرتز نیز می رسد که سرعت فوق العاده ای برای یک میکروکنترلر 8بیتی می باشد.
– سری میکرو های 16 بیتی
این سری در دسته های pic24f,PIC24H,PIC24E,dsPIC30,dsPIC33F,dsPIC33E گروه بندی شده اند. از ویژگی های بارز این گروه که در میکروکنترلر های 8بیتی وجود نداشت رابط CAN و USB و وجود تایمر های 32بیتی می باشد.
1- سری PIC24F:
این سری دارای CPUبا سرعت 16MIPSمی باشد و سرعت فرکانس اسیلاتور در مدل های مختلف آن متفاوت است چنانچه در برخی مدل های جدید تا250مگاهرتز هم میرسد اما به طور میانگین سرعت آنها با استفاده از حلقه های PLL تا96مگاهرتز می باشد. در زمان نوشتن این مقاله 132 محصول از این خانواده موجود است.
2- سری PIC24EوPIC24H:
سرعت CPU در این دو سری نسبت به سری قبلی بهبود چشمگیری داشته و تا 70MIPS نیز میرسد البته کمترین سرعت نیز در این سری40MIPS می باشد. تعداد میکرو های ساخته شده در این سری 30عدد می باشد.
3- سری dsPIC30F:
میکروکنترلر های dsPIC به دلیل ویژگی های خاصی که دارند به میکروکنترلر های پردازش سیگنال مشهور هستند سرعت CPU در این سری 30MIPS و تعداد محصولات این سری 24 می باشد.
4- DsPIC33F , dsPIC33E:
تعداد این سری از میکروکنترلر های PIC به 195 عدد میرسد و سرعت CPU نیز از 16MIPS به 70MIPS می رسد..
– سری میکرو های 32 بیتی)
این سری دارای سرعت فرکانس اسیلاتور تا 200مگاهرتز و سرعتCPUتا 330DMIPS میباشد . ویژگی های فراوانی دیگری نیز از قبیل OTG USB رابط Ethernet/USB/CANو نیز تا 2مگابایت حافظه داخلی FLASH رنج دمای کاری از-40°C to 125°C و قابلیت های رویایی دیگری می باشد که میتوانید برای اطلاع به آدرس زیر مراجعه کنید.
خانواده 8051:
اولین میکروکنترلر ساخت دست بشر است که در ابتدا توسط شرکت بزرگ intel ساخته شد. اما بعدا intel این امکان را به دیگر شرکت ها داد که این میکروکنترلر را تولید کنند و شرکت هایی مانند ATMEL , PHILIPS, SIEMENS , DALLAS و… که از بزرگ ترین شرکت های دنیا هستند به تولید این میکروکنترلر پرداختند یکی از شرکت هایی که به صورت گسترده به تولید این تراشه پرداخت ATMEL بود که مدل های مختلف میکروکنترلر را ساخت و محصلات آن در سراسر جهان و در ایران یافت می شود. اما زمانی که ما به صورت کلی سیر پیشرفت این نوع میکروکنترلر را در نظر می گیریم متوجه می شویم اولین میکروکنترلر هایی که ساخته شد با جدیدترین میکروکنترلرهای 8051 که الان تولید می شود پیشرفت زیادی ندارد به طور مثال AT89S5X که میکروکنترلر 8051 جدید ساخت ATMEL است نسبت به مدل های اولیه 8051 پیشرفت آنچنانی ندارد . امکانات این میکرو نسبت به AVR و PIC قابل مقایسه نیست . به صورتی که که همین مدل جدید 8051 تقریبا حافظه ای برابر یک صدم (0.001 ) میکروکنترلر های AVR را دارد و سرعتش 4 برابر کمتر از میکروکنترلر های PIC و 12 بار کمتر از میکروکنترلر های AVR است . از لحاظ امکانات دیگر هم چنین ضعفی احساس می شود. اما برای کارهای ساده تر که پیچیدگی زیادی در آن نباشد به خاطر قیمت بسیار پایینی که این میکروکنترلر دارد بسیار مناسب است . قیمت همین مدل جدید AT89S5X حول و حوش 1000 تومان است که قیمت بسیار مناسبی است.
این میکرو کنترلر از زبان اسمبلی و C پشتیبانی می کند که زبان برنامه نویسی اصلی آن اسمبلی است که نوشتن با این زبان برنامه نویسی نسبت به زبان های برنامه نویسی دیگر هم مشکل تر و هم طولانی تر است. در کل این میکروکنترلر امروزه دیگر توان رقابت با AVR و PIC را دارا نیست و رقابت اصلی بین این دو میکروکنترلر است.
8051 ها دارای 128بایت RAM، 4k بایت ROM، دو تایمر، یک پورت سریال و چهار پورت موازی ( هر یک 8 بیت ) بود که همه آنها در یک تراشه تعبیه شده بودند. آنچه اهمیت دارد این است که گرچه انواع مختلف 8051 با سرعت و مقدار ROM متفاوت در تراشه موجودند ولی همه آنها با 8051 اصلی از نظر دستورات سازگارند. میکروکنترلرهای 8051 با توجه به نوع حافظه و کارخانه سازنده آن هر یک شماره قطعه متفاوتی دارند. 8051 با حافظه های متفاوتی چون UV-EPROM ، حافظه سریع ، NV-RAM و غیره در دسترس می باشد. نوعUV-EPROM آن تراشه 8751 است. همچنین میکروکنترلر AT89C51 نوع سریع 8051 ساخت کارخانه Atmel و نوع NV-RAM از 8051 بوسیله Dallas به نام DS5000 در بازار موجود می باشد.
خانواده ARM:
با پیشرفت سیستم های توسعه یافته, میکروکنترلرهای 8 و 16 بیتی جوابگوی نیازهای این سیستم ها نمی باشند و به کارگیری میکروکنترلرهای 32 بیتی به سرعت رو به افزایش است. در این میان میکروکنترلرهای 32 بیتی خانواده ARM به دلیل مصرف توان اندک, سرعت پردازش زیاد و قیمت بسیار اندک نخستین انتخاب موجود می باشد. به همین دلیل امروزه بسیاری از تولید کنندگان بزرگ میکروکنترلرها, در طیف وسیعی از تولیدات خود از هسته های پردازنده ARM استفاده می کنند. میکروکنترلرهای ARM با پیاده سازی اجزای مختلفی از قبیل ارتباط های CAN, USB, Ethernet در داخل تراشه, نیاز به استفاده از المان های خارجی را تا حد زیادی کاهش می دهند, از سوی دیگر معماری 32 بیتی آن ها این امکان را فراهم می آورد که زبان های سطح بالا از قبیل C و ++C به منظور برنامه نویسی این تراشه ها مورد استفاده قرار گیرند.
سیستم عامل های بلادرنگ (RTOS) و کتابخانه های متعددی جهت کار با این تراشه ارائه شده اند, که امکان استفاده از آن ها را بدون درگیر شدن با جزئیات داخلی و رجیسترهای تراشه ممکن می سازد. Symbian OS, Linux, Windows CE نمونه ای از سیستم های عامل بلادرنگ رایج در سیستم های توسعه یافته می باشند. همچنین کتابخانه TCP/IP که توسط بسیاری از تولید کنندگان میکروکنترلرهای ARM, به صورت رایگان ارائه می شود, امکان اتصال این تراشه ها به شبکه را بدون درگیر شدن کاربر با لایه های پایین شبکه فراهم می آورد.
معماری میکروکنترلرهای 32 بیتی ARM قالبا بر پایه هسته های ARM7, ARM9, Cortex-M3 استوار می باشد. تراشه های ARM9 دارای سرعت پردازش بیشتری در مقایسه با انواع ARM7 می باشند و معماری آن ها به منظور استفاده از سیستم های عامل بلادرنگ از قبیل Linux, Windows CE بهینه سازی شده است. اما اغلب پردازنده های ARM9 فاقد حافظه کد داخلی می باشند و از واحد مدیریت حافظه (MMU) به منظور ارتباط با حافظه های خارجی از قبیل SDram و Nand Flash استفاده می کنند بر خلاف میکروکنترلرهای ARM7 که برنامه کاربر در حافظه Flash داخلی تراشه ذخیره و اجرا می شود. همچنین مصرف میکروکنترلرهای ARM9 به طور معمول بیشتر از انواع ARM7 می باشد.
امروزه میکروکنترلرهای ARM توسط شرکت های متعددی همچون Acron, Analog Devices, Atmel, Cirrus, Epson, Freescale, Hilscher, Intel, Luminary, Micronas, Marvell, Netsilicon, NXP (by Philips), OKI, Samsung, ST Micro, Texas Instruments, Winbond ساخته می شوند.
یکی از مواردی که عموما در انتخاب میکرو مورد توجه قرار می گیرد, پشتیبانی میکرو از پروتکل های ارتباطی است. در این میان میکروکنترلرهای ARM از بیش ترین پروتکل های موجود پشتیبانی می کند. پروتکل هایی که عموما در ایران استفاده می شود عبارتند از USB, RS232, SPI, I2C, CAN,Ethernet و… هستند که میکروکنترلرهای خانواده ARM از این پروتکل ها به اضافه چند پرئتکل دیگر که در ادامه توضیح داده می شود پشتیبانی می کنند و تمامی آن ها به صورت یکجا در خود دارند (مثلا میکروکنترلر AT91SAM7X256 از خانواده ARM از تمامی این پروتکل ها پشتیبانی می کند اما میکروکنترلرهای AVR فقط از چهار مورد پشتیبانی می کند).
انواع میکروکنترلرهای ARM شرکت NXP
در ابتدای نامگذاری همه میکروکنترلرهای ARM شرکت NXP از واژه LPC استفاده شده است. در یک دسته بندی کلی میکروکنترلرهای LPC به 4 خانواده تقسیم می شوند به طوری که عدد اول بعد از LPC مشخص کننده خانواده آن ها است. هر خانواده خود به چندین سری تقسیم بندی می شود که عدد بعد از خانواده مشخص کننده آن است.
خانواده LPC1xxx:
میکروکنترلرهای این خانواده دارای هسته Cortex M0 یا Cortex M3 هستند. حداکثر فرکانس کاری آن ها 100 مگاهرتز است. در این خانواده سری های LPC13xx ، LPC15xx ، LPC17xx و LPC18xx به صورت Cortex M3 و سری های LPC11xx و LPC12xx به صورت Cortex M0 وجود دارد.
خانواده LPC2xxx:
بیشتر میکروکنترلرهای این خانواده دارای هسته ARM7TDMI-S هستند که فرکانس کاری آنها حداکثر 80 مگاهرتز می باشد. در این خانواده میتوان به سری های LPC21xx ، LPC22xx ، LPC23xx و LPC24xx اشاره کرد. البته تنها سری LPC29xx در این خانواده بر اساس ARM968E-S ساخته شده است.
خانواده LPC3xxx:
میکروکنترلرهای این خانواده که هسته ARM9EJ-S دارند ، به دو صورت 16 و 32 بیتی با فرکانس کاری 200 مگاهرتز ساخته شده اند. در این خانواده سری های LPC31xx و LPC32xx وجود دارد.
خانواده LPC4xxx:
میکروکنترلرهای این خانواده که هسته Cortex M4 دارند ، مخصوص کارهای پردازش سیگنال (dsp) می باشند. در این خانواده که در حال رشد است ، تنها سری LPC43xx وجود دارد.
معروفترین هسته پردازنده ARM7 ، ARM می باشد که یکی از رایج ترین هسته های پردازشی موجود می باشد. بعد از ARM 7 به ترتیب ARM9 و ARM10 و ARM11 قرار دارند.
انواع هسته های پردازنده سری :ARM7
ARM7TDMI (1: رایج ترین هسته پردازنده 32 بیتی با معماری RISK می باشد.
ARM7TDMI-S (2 این هسته نسخه قابل سنتز ARM7TDMI است.
ARM72OT (3: این هسته علاوه بر ویژگی های هسته های بالا داری حافظه CASHو بخش مدیریت حافظه می باشد.
ARM7EJ-5 (4 این هسته برخی از قابلیت های پیشرفته DSP را در خود دارد و برای کارهای پردازش سیگنال مناسب می باشد.
قطعات سری LPC2000 یکی از متنوعترین خانواده های میکروکنترلرهای با هستهی ARM7 هستند و قطعات این سری، در مقایسه با AT91SAM قیمت کمتری دارند. مثلاً قیمت LPC2101 حدود 2 دلار است که این مقدار از خیلی از میکروکنترلرهای 8 بیتی (مثل ATmega16) کمتر است.
به قلم: دکتر حشمدار