میکروکنترلر ARM ، به میکروکنترلرهایی گفته می شود که پردازندۀ آنها ساخت شرکت ARM است. شرکت ARM سازندۀ میکروکنترلر نیست. بلکه سازندۀ پردازنده (CPU) است. پردازنده یکی از اجزای یک میکروکنترلر است. امروزه به میکروکنترلرهایی که پردازندۀ آنها طراحی شدۀ شرکت ARM باشد، میکروکنترلر ARM گفته می شود. پس منظور از میکروکنترلر ARM، میکروکنترلری است که CPU آن طراحی شدۀ شرکت ARM باشد. شرکت ARM یا Advanced RISC Machine یک شرکت طراحی کنندۀ پردازنده (CPU) است. شرکت های مختلف این طراحی ها را تهیه کرده و در میکروکنترلرها و یا دیگر ادوات و محصولات الکترونیکی خود از آن استفاده می کنند.
امروزه در درصد زیادی از میکروکنترلرهای دنیا ازجمله میکروکنترلر STM32، از پردازندۀ ARM استفاده شده است. از طرفی امروزه استفاده از میکروکنترلرها در صنعت بسیار گسترده شده است. باتوجه به اینکه در بسیاری از میکروکنترلرها از پردازندۀ ARM استفاده می شود، در نتیجه استفاده از پردازندۀ ARM نیز در صنعت بسیار گسترده شده است.
نوشتۀ مرتبط: میکروکنترلر چیست؟
پردازنده ARM چیست؟ معماری پردازنده های ARM
پردازنده ARM چیست؟ شرکت ARM در طراحی پردازنده، سبک اختصاصی خودش را دارد که بطور کلی به آن معماری ARM گفته می شود. معمولا این پردازنده ها 32 و 64 بیتی هستند. معماری ARM برای اولین بار در سال 1983 توسط خانم سوفیا ویلسون ارائه شد. این موضوع باعث شده که به پردازنده های ARM، پردازنده های ساخت یک خانم گفته شود. همانطور که از نام Advanced RISC Machine برداشت می شود، معماری کلی پردازنده های این شرکت، معماری RISC یا Reduced Instruction Set Computer است. معماری RISC در مقابل معماری CISC یا Complex Instruction Set Computer است. ایدۀ RISC در راستای کاهش دستوالعمل های کامپیوتر ارائه شد. نظریه ای بود که یک کامپیوتر با معماری CISC تنها با 20 درصد دستوالعمل های خود برای کارکرد نیاز دارد. این ایده باعث شد که معماری جدیدی به عنوان RISC ارائه شود که از دستورالعمل های بسیار کمتری نسبت به CISC در آن استفاده شده است. کم کردن دستوالعمل ها، باعث کم شدن ترانزیستورها در CPU می شود. کاهش تعداد ترانزیستورها باعث کاهش مصرف انرژی می شود. کاهش مصرف انرژی باعث کاهش دما می شود. درنتیجۀ کاهش دما باعث می شود که پردازنده نیاز به خنک کاری خاصی نداشته باشد و بتوان آن را در محصولاتی مثل تلفن همراه استفاده کرد. درنتیجه امروزه از معماری RISC در ساخت پردازنده هایی برای تلفن همراه و تبلت و میکروکنترلرها استفاده می شود. از معماری CISC برای دستگاه های قوی تر مثل کامپیوترها استفاده می شود که این دستگاه ها نیاز به خنک کاری دارند که این خنک کاری عموما با استفاده از فن انجام می شود. البته که امروزه معماری RISC پیشرفت هایی داشته که حتی در ساخت برخی لپ تاپ ها نیز از آن استفاده می شود.
تصویر 1 – مقایسۀ معماری RISC و CISC
شرکت ARM، تنها سازندۀ پردازنده های با معماری RISC نیست اما بزرگترین و معروف ترین آنها است. شاید سوالاتی مثل تفاوت AVR و ARM یا تفاوت ARM و INTEL برای شما وجود داشته باشد. بطور کلی یا محدودۀ فعالیت و هدفگذاری این شرکتها متفاوت است (مثلا ARM پردازنده های معماری RISC و INTEL پردازنده های معماری CISC می سازد.)، یا هدفگذاری آنها مشترک است ولی یک شرکت بزرگتر و شرکت دیگر کوچکتر و محدودتر است.
معماری پردازنده های ARM، بطور کلی به عنوان معماری ARM شناخته می شود. اما معماری ARM زیرمجموعه های مختلفی دارد. در هر زیرمجموعه یک هدف متفاوت را دنبال می کند. این زیرمجموعه ها همیشه درحال توسعه هستند. درحال حاضر شامل زیرمجموعه های زیر است:
- معماری های قدیمی: شرکت ARM در طول زمان معماری های مختلفی را طراحی می کند. با گذشت زمان برخی از آنها از رده خارج شده و حتی از دسته بندی های محصولات در وبسایت ARM نیز حذف می شود. شاید نام آشناترین معماری های قدیمی ARM برای فعالان دنیای میکروکنترلرها، معماری ARM7 باشد. همچنین ازجمله معماری های قدیمی دیگر می توان معماری های ARM1, ARM2, ARMaS, ARM6, ARM7T, ARM7JE, ARM8, ARM9T, ARM9E, ARM10E و ARM11 را نام برد.
- Cortex-X : این دسته بندی یک زیرمجموعۀ جدید است. در این دسته بندی هدف طراحی CPU های پیشرفته و اختصاصی برای محصولات آیندۀ شرکتها است.
- Cortex-A : حرف A مخفف Application است. در محصولاتی مثل تلفن های هوشمند، تبلت ها و بردهای میکروکامپیوتری مثل رزبری پای و … از این پردازنده استفاده می شود. به عبارت دیگر پردازنده های Cortex-A برای سیستم هایی که یک سیستم عامل قدرتمند مثل لینوکس یا اندروید نیاز دارند استفاده می شود. به عنوان برخی از زیرمجموعه های این دسته بندی می توان به Cortex-A5 و Cortex-A720 و Cortex-A720 اشاره کرد.
- Cortex-R : حرف R مخفف Real Time است. از پردازندههای Cortex-Rدر کاربردهای بلادرنگ (Real Time) با راندمان و قابلیت اطمینان بسیار بالا استفاده می شود. به عنوان مثال در ایربگ و سیستم ترمز و ECU خودرو از این پردازنده ها استفاده می شود. به عنوان برخی از زیرمجموعه های این دسته بندی می توان به Cortex-R4 و Cortex-R82 اشاره کرد.
- Cortex-M : حرف M مخفف Microcontroller است. پر استفاده ترین پردازندۀ مورد استفاده در میکروکنترلرها، پردازنده های سری Cortex-M است. اینکه سری Cortex_R مخصوص کاربردهای بلادرنگ است، دلیل بر این نیست که Cortex-M در کاربردهای بلادرنگ استفاده نمی شود. اتفاقا استفادۀ Cortex_M بسیار بیشتر Cortex-R است. به عبارت دیگر در اکثر کاربردهای میکروکنترلری چه سیستم های حیاتی و چه سیستم های غیر حیاتی از Cortex-M استفاده می شود. مگر در برخی کاربردهای خاص و خیلی حساس از Cortex-R استفاده می شود. به عنوان برخی از زیرمجموعه های این دسته بندی می توان به Cortex-M0 و Cortex-M3 و Cortex-M4 و Cortex-M7 و Cortex-M85 اشاره کرد.
- Ethos : محصولات جدیدی از شرکت ARM مبتنی بر شبکه های عصبی است که برای کاربردهای IOT طراحی شده است.
- Immortailes & Mail : این سری محصولات ARM، مربوط به GPU برای پردازش گرافیکی است. پردازندههای گرافیکی Arm Immortalis و Maliمبحث گرافیک را در طیف گستردهای از دستگاهها، از تلفنهای هوشمند گرفته تا تبلتها و تلویزیونهای هوشمند مبتنی بر سیستمعامل اندروید ارائه میکنند.
لینک مرتبط: آموزش ARM
معرفی میکروکنترلر ARM: مزایا و کاربردها
میکروکنترلر ARM یکی از پرکاربردترین نوع میکروکنترلرها در صنعت الکترونیک است. میکروکنترلرمبتنی بر معماری ARM در بسیاری از دستگاههای الکترونیکی کاربرد دارند. با توجه به ویژگیهای خاص خود، به عنوان یکی از بهترین گزینهها در زمینه کنترل و کاربردهای صنعتی شناخته شدهاند.
مزایای میکروکنترلر ARM:
از مزایای میکروکنترلرهای ARM می توان به سرعت بالا، مصرف کم انرژی، پشتیبانی از سیستمعامل (برای میکروکنترلر ARM، سیستمعاملهایی مانند Linux و Android پشتیبانی میشوند که این امکان را به برنامهنویسان میدهد که برنامههایی با پیچیدگی بالاتر را برای این میکروکنترلرها توسعه دهند.)، پشتیبانی شده در محیطهای برنامهنویسی مختلف، پردازشهای پیشرفته (میکروکنترلر ARM به دلیل پشتیبانی از پردازشهای پیشرفته مانند پردازش رشتهای، شبکههای ارتباطی و حتی پردازش تصویر، به عنوان یکی از بهترین گزینهها برای کاربردهای پیشرفته در صنعت شناخته شدهاند.) اشاره کرد.
کاربردهای میکروکنترلر ARM:
کاربردهای میکروکنترلر ARM به گستردگی دنیای الکترونیک است. احتمال نتوانیم صنعتی را در الکترونیک پیدا کنیم که از میکروکنترلرمبتنی بر معماری ARM در آن استفاده نشده باشد. به عنوان مثال از چند صنعت می توان به خودروسازی، اینترنت اشیا، رباتیک، سیستمهای امنیتی، سیستمهای انرژی و بازیهای الکترونیکی اشاره کرد.
معماری میکروکنترلرهای ARM
در چند پاراگراف قبل، معماری پردازنده های ARM را دیدیم. میکروکنترلرهایی که از هستۀ ARM استفاده می کنند نیز هریک معماری خود را دارند. به این معنی که هریک از آنها علاوه بر پردازندۀ ARM، المان های دیگری مثل انواع حافظه ها، تایمر، واحد مبدل آنالوگ به دیجیتال (ADC) و … را نیز در خود دارند. ترکیب انتخاب این واحدهای مختلف و ارتباط آنها با هم در یک میکروکنترلر، معماری یک میکروکنترلر را شکل می دهد.
طراحی و برنامهنویسی میکروکنترلر ARM در محیطهای مختلف
میکروکنترلرهای ARM باتوجه به استفادۀ گسترده ای که دارند، انواع مختلفی از ابزارهای طراحی نیز برای این میکروکنترلرها وجود دارد. از جملۀ این ابزارها می توان به موارد زیر اشاره کرد:
- محیط توسعه یکپارچه (IDE): محیط توسعه یکپارچه یا IDE برای طراحی و برنامهنویسی میکروکنترلر ARM استفاده میشود. این محیطها شامل نرمافزارهایی مانند Keil ، STM32CubeIDE، IAR وAtmel Studio میشوند. این محیطها امکاناتی مانند ویرایشگر کد، ابزارهای تجزیه و تحلیل، و برنامههای شبیهسازی را ارائه میدهند.
آموزش Atmel Studio، مهاجرت از کدویژن به اتمل استودیو
- زبان برنامهنویسی: زبانهای برنامهنویسی مختلفی برای برنامهنویسی میکروکنترلرهای ARM وجود دارد. از جمله می توان زبانهای C، C++، Assembly و Python را نام برد. که البته پر استفاده ترین زبان برنامه نویسی دنیای میکروکنترلرها، زبان های C و C++ هستند. البته این دو زبان برنامه نویسی تنها زبانهای برنامه نویسی هستند که برای استفاده در سیستم های حیاتی استانداردگذاری شده اند.
- کتابخانههای نرمافزاری: برای تسهیل در برنامهنویسی میکروکنترلر ARM، کتابخانههای نرمافزاری مختلفی وجود دارد. برخی از این کتابخانهها شامل کتابخانههای HAL (Hardware Abstraction Layer)، CMSIS (Cortex Microcontroller Software Interface Standard)، و LL (Low-Level) میشوند. این کتابخانهها به برنامهنویسان کمک میکنند تا به طور سریع و آسان برنامههای خود را برای میکروکنترلر ARM توسعه دهند.
تصویر 2 – درایورهای STM32 HAL
- ابزارهای تحلیل و شبیهسازی: برای توسعه و برنامهنویسی میکروکنترلر ARM، ابزارهای تحلیل و شبیهسازی مختلفی وجود دارد. این ابزارها شامل GNU Debugger، OpenOCD، و J-Link Debugger میشوند. این ابزارها به برنامهنویسان کمک میکنند تا به طور دقیقتر و با دسترسی به اطلاعات بیشتر، برنامههای خود را برای میکروکنترلر ARM توسعه دهند و آنها را تست کنند.
- سیستمهای عامل: برای برنامهنویسی میکروکنترلر ARM، سیستمهای عامل مختلفی مانند FreeRTOS، µC/OS-II، ThreadX و CMSIS-RTOS وجود دارند. این سیستمهای عامل کمک میکنند تا برنامههای پیچیدهتری برای میکروکنترلر ARM توسعه داده شود و به طور موثرتر از منابع سختافزاری استفاده شود.
تصویر 3 – آموزش FreeRTOS یوبرد (کلیک کنید)
- برنامههای شبیهسازی: برای تست و ارزیابی برنامههای میکروکنترلر ARM، برنامههای شبیهسازی مختلفی وجود دارد. برخی از این برنامهها شامل Keil Simulation، STM32CubeMX Simulator، و Atmel Studio Simulator میشوند. این برنامهها به برنامهنویسان کمک میکنند تا برنامههای خود را در یک محیط شبیهسازی تست کنند و از صرف هزینههای بسیار بالای ساخت و تست مدارهای سختافزاری جلوگیری کنند.
بطور کلی برای طراحی و برنامهنویسی میکروکنترلر ARM، باید از ابزارهای نرمافزاری مختلفی استفاده کرد و با محیطهای مختلفی کار کرد. انتخاب مناسب ابزار و محیط برای توسعه برنامههای میکروکنترلر ARM، بسته به نیازهای پروژه و تجربه برنامهنویس، متفاوت است.
کاربرد میکروکنترلر ARM در صنایع
میکروکنترلر ARM به دلیل پردازش سریع، مصرف انرژی کم، و قابلیت انعطاف پذیری بالا، در صنایع مختلف مورد استفاده قرار میگیرند. به عنوان مثال در صنعت خودروسازی به طور گستردهای در سیستمهای کنترلی خودروها استفاده میشوند. این سیستمها شامل سیستمهای ABS (ضد قفل کردن ترمز)، ESP (کنترل پایداری الکترونیکی)، سیستمهای رانندگی خودکار و … است. در صنعت پزشکی برای کنترل دستگاههای پزشکی مانند دستگاههای تشخیصی، دستگاههای تصویربرداری، دستگاههای اندازه گیری، و دستگاههای مانیتورینگ قلب و عروق استفاده میشوند. در صنعت الکترونیک در دستگاههای خانگی، دستگاههای صوتی و تصویری، دستگاههای رایانه، دستگاههای هوشمند و … استفاده میشوند. در صنعت ارتباطات برای کنترل دستگاههای ارتباطی مانند مودمها، روترها، تلفنهای همراه، دستگاههای امنیتی و … استفاده میشوند. در صنایع دفاعی برای سیستمهایی مانند ماشینهای نظامی، سیستمهای ارتباطی، سیستمهای راداری، دستگاههای مانیتورینگ و … استفاده میشوند. در صنعت انرژی برای توربینهای بادی، توربینهای گازی، توانگاههای خورشیدی و … استفاده میشوند.
تصویر 4 – کاربرد میکروکنترلرها
تولید کنندگان میکروکنترلر ARM
تولید کنندگان میکروکنترلرهای مبتنی بر معماری ARM بسیار زیاد هستند. به عنوان برخی از سرشناس ترین این شرکتها می توان شرکت های STMicroelectronics، NXP Semiconductors، Texas Instruments، Infineon Technologies، Renesas Electronics، Atmel (اکنون تحت مالکیت Microchip Technology)، Silicon Labs، Analog Devices، Microchip Technology را نام برد.
درباره شرکت ST
شرکت STMicroelectronics یا ST یا STM یک شرکت بزرگ در صنعت الکترونیک است که در سال 1987 توسط تلویژن فرانسه (Thomson-CSF) و سوسیته جنرال دی الکتریک (SGS Microelettronica) تأسیس شد. این شرکت در زمینه طراحی و تولید محصولات الکترونیکی، از جمله میکروکنترلرها، صفحات نمایش ال سی دی، حسگرها، سوئیچهای شبکه و دیگر قطعات الکترونیکی فعالیت میکند.
یکی از تخصصهای اصلی STM در زمینه میکروکنترلر ARM است. شرکت STM محصولاتی با هستههای ARM Cortex-M0 تا Cortex-M7 و Cortex-A7 تا Cortex-A53 تولید میکند و یکی از بزرگترین تولید کنندگان میکروکنترلر ARM است. نام میکروکنترلرهای STM32 که یکی از خانواده های میکروکنترلرهای با پردازندۀ ARM ساخت این شرکت است، برای تمام فعالان دنیای میکروکنترلرها آشناست.
لینک مرتبط: فیلم آموزش ARM STM32 مقدماتی – پک 10 جلسه ای
محبوب ترین و پراستفاده ترین میکروکنترلر ARM
از محبوب ترین و پراستفاده ترین خانواده های میکروکنترلر ARM می توان به میکروکنترلرهای STM32 و STM8 ساخت شرکت ST و میکروکنترلرهای LPC و Kinetis ساخت شرکتNXP اشاره کرد. موارد ذکر شده را می توان محبوب ترین و پراستفاده ترین میکروکنترلرهای با هستۀ ARM در دنیا دانست. از میکروکنترلرهای شناخته شدۀ دیگر نیز می توان به خانوادۀ EFM32 شرکت Silicon Labs، میکروکنترلرهای TIVA C شرکت Texas Instruments و میکروکنترلرهای ATSAM شرکت Microchip Technology اشاره کرد.
پراستفاده ترین بردهای مبتنی بر میکروکنترلر ARM
امروزه شرکت های بسیاری بردهای آماده ای که در آنها میکروکنترلر ARM وجود دارد را تولید می کنند. این بردهای آماده باعث می شود که توسعه دهنده درگیر سخت افزار نشود و صرفا تمرکز خود را بر روی توسعۀ نرم افزار بگذارد. به این بردهای آماده اصطلاحا بردهای توسعه و یا بردهای آموزشی گفته می شود. از جملۀ این بردهای توسعه می توان به بردهای Arduino، بردهای دیسکاوری STM32، بردهای Nucleo اشاره کرد. همچنین برخی از این بردهای آماده دارای میکروکنترلرهای ARM سری Cortex-A هستند که به چنین بردهایی، بردهای میکروکامپیوتری گفته می شود. از جمله بردهای میکروکامپیوتری می توان به برد Raspberry Pi و BeagleBone Black اشاره کرد.
تصویر 5 – بردها مبتنی بر میکروکنترلر و پردازنده های ARM
لینک مرتبط: فیلم آموزش آردوینو مقدماتی – پک 11 جلسه ای
نتیجه گیری
- میکروکنترلر ARM ، به میکروکنترلرهایی گفته می شود که پردازندۀ آنها ساخت شرکت ARM است. شرکت ARM سازندۀ میکروکنترلر نیست. بلکه سازندۀ پردازنده (CPU) است. پردازنده یکی از اجزای یک میکروکنترلر است.
- شرکت ARM در طراحی پردازنده، سبک اختصاصی خودش را دارد که بطور کلی به آن معماری ARM گفته می شود. معمولا این پردازنده ها 32 و 64 بیتی هستند. معماری ARM برای اولین بار در سال 1983 توسط خانم سوفیا ویلسون ارائه شد. این موضوع باعث شده که به پردازنده های ARM، پردازنده های ساخت یک خانم گفته شود. همانطور که از نام Advanced RISC Machine برداشت می شود، معماری کلی پردازنده های این شرکت، معماری RISC است.
- میکروکنترلر ARM به دلیل سرعت بالا، کارایی قوی، مصرف برق کم و انعطاف پذیری در استفاده، در بسیاری از صنایع مانند خودروسازی، پزشکی، دفاعی الکترونیک صنعتی، ابزار دقیق و … مورد استفاده قرار میگیرد.
- Cortex-M پر استفاده ترین پردازندۀ مورد استفاده در میکروکنترلرها است. استفادۀ Cortex_M بسیار بیشتر Cortex-R است. برخی از زیرمجموعه های این دسته بندی عبارتند از Cortex-M0 و Cortex-M3 و Cortex-M4 و Cortex-M7 و Cortex-M85.
- میکروکنترلرهای ARMباتوجه به استفادۀ گسترده ای که دارند، انواع مختلفی از ابزارهای طراحی نیز برای این میکروکنترلرها وجود دارد. از جمله: محیط توسعه یکپارچه (IDE)، زبان برنامهنویسی، کتابخانههای نرمافزاری، ابزارهای تحلیل و شبیهسازی، سیستمهای عامل و برنامههای شبیهسازی و … .
- شرکت STMicroelectronics یا ST یا STM یک شرکت بزرگ در صنعت الکترونیک است که در زمینه طراحی و تولید محصولات الکترونیکی، از جمله میکروکنترلرها، صفحات نمایش ال سی دی، حسگرها، سوئیچهای شبکه و دیگر قطعات الکترونیکی فعالیت میکند. یکی از تخصصهای اصلی STM در زمینه میکروکنترلر ARM است. شرکت STM محصولاتی با هستههای ARM Cortex-M0 تا Cortex-M7 و Cortex-A7 تا Cortex-A53 تولید میکند و یکی از بزرگترین تولید کنندگان میکروکنترلر ARM است.
- از جملۀ بردهای معروف مبتنی بر میکروکنترلر ARM می توان به بردهای Arduino، بردهای دیسکاوری STM32، بردهای Nucleo، Raspberry Pi و BeagleBone Black اشاره کرد.
سلام، عالی بود خسته نباشید🙏❤️
سلام. خیلی ممنون. سلامت باشید.