از آنجا که میکرو کنترلرarm و میکرو کنترلرavr شباهت های زیادی با یکدیگر دارند، برای تازهکارها همواره جای سؤال است که آیا بین میکروکنترلر arm و avr، تفاوت وجود دارد؟ کدامیک را در طراحی مدار خود انتخاب کنند؟ از این رو، در ادامه این مطلب به معرفی و مقایسه آنها با یکدیگر میپردازیم.
میکرو کنترلر arm چیست؟
میکرو کنترلر arm نوعی آی سی است که بر اساس معماری Advanced RISC Machines ساخته شده است و از رویکرد RISC (محاسبات مجموعه دستورالعمل کاهش یافته) پیروی می کند، به این معنی که از یک مجموعه دستورالعمل ساده با تمرکز بر اجرای سریع و کارآمد دستورالعمل ها استفاده می کند.
این مسئله نه تنها باعث افزایش عملکرد میکروکنترلر می شود، بلکه مصرف انرژی آن را نیز تا حد زیادی کم میکند. همین مسئله هم، این خانواده را برای تجهیزاتی کم مصرفی که با باطری تغذیه می شوند، مناسب می کند.
میکروکنترلرavr چیست؟
میکروکنترلر AVR نوعی میکروکنترلر بر اساس معماری AVR (Alf and Vegard’s RISC) توسعه یافته است، بنابراین مانند میکرو کنترلر های arm بر سادگی و کارایی تأکید دارد. علاوه بر این، در طراحی این خانواده از تکنیک های مختلف صرفه جویی در انرژی (مانند حالت های خواب و دروازه ساعت) برای به حداقل رساندن مصرف برق در دوره های بیکاری یا کم باری، استفاده شده است.
تفاوت میکروکنترلر arm با میکروکنترلر avr چیست؟
همانطور که پیشتر گفتیم، میکروکنترلرهای arm و میکروکنترلرهای avr دو خانواده متفاوت از میکروکنترلرها هستند. هر یک از آن ها دارای معماری و ویژگی های خاص خود هستند و تفاوت های مهم آنها عبارت است از :
1- معماری :
اصلی ترین تفاوت میکرو کنترلر arm با میکروکنترلر avr در معماری آنهاست که پیشتر بررسی کردیم. این تفاوت سبب به وجود آمدن بسیاری از تفاوت های دیگر است.
2- کارایی:
میکروکنترلرهای ARM به طور کلی قدرتمندتر هستند و عملکرد بالاتری نسبت به میکروکنترلرهای AVR ارائه می دهند. پردازندههای ARM در پیکربندیهای مختلفی از جمله Cortex-M0، Cortex-M3، Cortex-M4 و Cortex-M7 در دسترس هستند و سطوح مختلف عملکرد، سرعت ساعت و قابلیتهای محاسباتی را ارائه میدهند.
میکروکنترلرهای AVR اصولاً معماری های 8 بیتی یا 16 بیتی دارند. و برای کاربردهای نسبتاً ساده تری طراحی شده اند. آنها عملکرد کمتری را در مقایسه با میکروکنترلرهای ARM ارائه می دهند، اما همچنان برای بسیاری از سیستم های تعبیه شده در وسایل صنعتی و خانگی و کاربردهای انتقال داده باسرعت پایین مناسب هستند.
3- حضور متفاوت در بازار :
در سراسر دنیا میکروکنترلرهای ARM حضور بیشتری در بازار دارند و به طور گسترده در صنایع و وسایل خانگی استفاده می شوند. اما در حال حاضر میکروکنترلرهای AVR در بازار ایران حضور پر رنگ تری دارند و بیشتر از میکروکنترلرهای ARM مورد استفاده قرار میگیرند. یکی از دلایل حضور متفاوت پردازنده ها در بازار ایران، نوع نیاز تولید کننده های ایرانی است. همچنین تنوع پکیج میکرو کنترلر ARM، کمک بزرگی در ساخت و طراحی مختلف به کاربران می کند. انواع پکیج SMD و DIP و ترکیب پایه های میکروکنترلر آرم را در شکل زیر مشاهده نمایید. بر اساس همین موارد می توان گفت، محصولاتی که از میکروکنترلر های ARM در تولید آنها استفاده شده است، از تکنولوژی بروزتر و امکاناتی بیشتر بهره مند هستند.
4- اکوسیستم و ابزار توسعه :
میکروکنترلرهای ARM دارای یک اکوسیستم تثبیت شده با ابزارهای توسعه گسترده، کتابخانه های نرم افزاری و … هستند. میکروکنترلرهای مبتنی بر ARM توسط IDE های قدرتمندی مانند Keil MDK،IAR Embedded Workbench و ابزارهای توسعه خود ARM پشتیبانی میشوند.
از طرف دیگر میکروکنترلرهای AVR همچنین دارای یک اکوسیستم اختصاصی با ابزارها و منابع توسعه هستند و میکروکنترلرهای مبتنی بر AVR از IDE قدرتمندی به نام Atmel Studio برای برنامه نویسی میکروکنترلرهای AVR استفاده می کنند.
5- برنامه نويسي :
میکروکنترلرهای ARM از طیف گسترده ای از زبان های برنامه نویسی از جمله C/C++، اسمبلی و زبان های سطح بالاتر مانند پایتون پشتیبانی می کنند. معماریهای ARM دارای مجموعههای دستورالعمل بهخوبی مستند هستند و از چارچوبهای توسعه مختلف پشتیبانی میکنند، که برنامهنویسی میکروکنترلرهای ARM را برای توسعهدهندگان آسانتر کرده و برنامه هایی قدرتمندتر و بروزتر در سطوح بالاتری را میتوان با استفاده از این میکروکنترلر پیاده سازی کرد.
میکروکنترلرهای AVR نیز عمدتاً با استفاده از C/C++ برنامهریزی میشوند، اگرچه برنامهنویسی اسمبلی نیز رایج است. مجموعه دستورها AVR در مقایسه با ARM نسبتا سادهتر است، که میتواند برنامهنویسی میکروکنترلرهای AVR را برای مبتدیان آسانتر کند.
6- حافظه :
میکروکنترلرهای ARM به طور کلی دارای ظرفیت حافظه بزرگ تری هستند که شامل حافظه flash و حافظه داده (RAM) می شود. آنها می توانند برنامه ها و ساختارهای داده بزرگتر و پیچیدهتر را در خود جای دهند.
میکروکنترلرهای AVR معمولاً ظرفیت حافظه کمتری نسبت به میکروکنترلرهای ARM دارند، به خصوص از نظر حافظه فلش، آنها برای برنامه های کوچکتر با نیازهای کد نویسی نسبتا سادهتر مناسب هستند.
7- هزینه :
میکروکنترلرهای ARM در مقایسه با میکروکنترلرهای AVR قیمت بالاتری دارند. عملکرد بالاتر، ظرفیت حافظه بیشتر و دامنه وسیعتر ویژگی ها به افزایش هزینه کمک می کند.
میکروکنترلرهای AVR معمولاً در مقایسه با میکروکنترلرهای ARM مقرون به صرفه تر هستند و همین مسئله یکی از دلایل محبوبیت آنها در بین تولید کنندگان داخلی است.
8- پذیرش صنعت :
میکرو کنترلر arm و میکروکنترلر avr هر دو نقش مهمی در پیشرفت صنایع دارند، زیرا هر یک از آنها در ساخت انواع لوازم الکترونیکی مصرفی، سیستم های خودرو، اتوماسیون صنعتی، دستگاه های اینترنت اشیا، سیستم های امنیتی پشرفته همانند دزدگیر اماگن و … استفاده می شوند اما میکرو کنترلر arm در تجهیزات پیشرفتهتر و میکروکنترلر avr در تجهیزات سادهتر و مقرون به صرفه کاربرد بیشتری دارند.
9- در دسترس بودن کتابخانه ها و نمونه های کد :
با توجه به پیشرفت صنعت محبوبیت میکروکنترلرهای ARM در حال افزایش است و تعداد زیادی کتابخانه، نمونه کد و جامعه پشتیبان برای آنها در دسترس است. این باعث می شود توسعه دهندگان بتوانند منابع و راه حل هایی برای پروژه های خود پیدا کنند.
اما میکروکنترلرهای AVR نیز به دلیل قدمت و محبوبیتی که دارند توسط طیف وسیعی از کتابخانه ها و نمونه های کد موجود و … پشتیبانی می شوند. علاوه براین پلتفرم هایی مانند آردوینو به در دسترس بودن نمونه های کد و آموزش های متعدد برای پروژه های مبتنی بر AVR کمک زیادی می کنند.
10- عملکرد زمان واقعی :
میکروکنترلرهای ARM قابلیت های عملکرد زمان واقعی بهتری را به خصوص در سری Cortex-M ارائه می دهند. آنها دارای ویژگی هایی مانند کنترل کننده های وقفه تو در تو، مدیریت دقیق وقفه، و اجرای دستورها قطعی هستند که آنها را برای برنامه های بیدرنگ مناسب می کند.
در حالی که میکروکنترلرهای AVR می توانند وظایف بیدرنگ را انجام دهند، ممکن است در مقایسه با میکروکنترلرهای ARM محدودیت هایی از نظر مدیریت وقفه و زمانبندی دقیق داشته باشند، همچنین در شرایطی نسبت خطای این میکروکنترلر نسب به نوع ARM بالاتر می باشد.
در جدول زیر بهطور خلاصه تفاوت میکروکنترلر ها عنوان شده است.
میکروکنترلر ARM | میکروکنترلر AVR |
کاربردهای نسبتاً پیشرفته | کاربردهای نسبتاً ساده |
میکروکنترلرهای محبوب ARM شامل LPC2148، ARM cortex-M0 تا ARM cortex-M7 و غیره است. | میکروکنترلرهای محبوب AVR شامل atmega 8،16،32 و خانواده آردوینو هستند |
میکروکنترلرهای ARM از حافظه های FLASH, SDRAM, EEPROM, and memory استفاده می کنند. | میکروکنترلرهای AVR از حافظه های FLSH، SRAM و EEPROM استفاده می کنند. |
پروتکل های ارتباطی :SPI, CAN, Ethernet, I2S, DSP, SAI, USART, UART | پروتکل های ارتباطی : UART ،I2C ،SPI ،USB |
تولید کنندگان ARM اپل، انویدیا، کوالکام، سامسونگ الکترونیک و تی و غیره هستند. | تولید کننده avr شرکت ATMEL است. |
جمعبندی کلی
قطعا گزینه های بیشتری در رابطه با تفاوت میکروکنترلر arm با میکروکنترلر avr وجود دارد؛ اما در این مقاله به بررسی اجمالی پرداختیم در صورتی که شما هم تجربه متفاوتی در این موضوع دارید در قسمت نظرات ، تجربه خود را با ما در میان بگذارید.