معماری و برنامه نویسی میکروکنترلر ARM

میکروکنترلر ARM-Cortex محبوب ترین میکروکنترلر در دنیای سیستم تعبیه شده دیجیتال است و بسیاری از صنایع، فقط میکروکنترلرهای ARM را ترجیح می دهند زیرا از ویژگی های بسیار زیادی برای اجرای محصولات با ظاهر پیشرفته تشکیل شده است. میکروکنترلرهای ARM دستگاه های حساس به هزینه و عملکرد بالا هستند که در طیف گسترده ای از برنامه ها مانند سیستم های کنترل ابزار صنعتی ، شبکه های بی سیم و حسگرها و سیستم بدنه خودرو و غیره استفاده می شوند.

مقدمه ای بر میکروکنترلر ARM
ARM مخفف Advanced RISC machine است و یک میکروکنترلر 32 بیتی تنظیم شده با دستورالعمل های رایانه ای (RISC) است. ARM اولین بار توسط سازمان رایانه های Acron در سال 1987 معرفی شد. ARM خانواده ای از میکروکنترلرها است که توسط سازندگان مختلف مانند میکروالکترونیک ST ، موتورولا و غیره ساخته شده است. معماری میکروکنترلر ARM با چند نسخه مختلف مانند ARMv1 ، ARMv2 و غیره ارائه می شود و هرکدام مزایا و معایب خاص خود را دارند.

میکروکنترلر ARM cortex یک میکروکنترلر پیشرفته در خانواده ARM است که توسط معماری ARMv7 توسعه یافته است. خانواده ARM به سه زیر خانواده تقسیم شده است:

سری ARM-Cortex Axe
سری ARM-Cortex Rx
سری ARM-Cortex Mx

معماری میکروکنترلر ARM Cortex-M3
پردازنده cortex-M3 ARM پردازنده 32 بیتی با عملکرد بالا است که مزایای چشمگیری را به توسعه دهندگان می دهد. معماری ARM “معماری هاروارد” است که داده و دستورالعمل جداگانه ای را برای برقراری ارتباط با حافظه ROM و RAM ارائه می دهد. این روند 3 مرحله ای برای واکشی ، رمزگشایی و اجرای متوالی دستورالعمل ها است. پردازنده Cortex یک دستگاه حساس به هزینه است که برای کاهش سطح پردازنده مورد استفاده قرار می گیرد و دارای قابلیت های گسترده برای بهبود عملکرد و اشکال زدایی سیستم است.

پردازنده های بازوی cortex-M3 توسط مجموعه دستورالعمل های THUMB مبتنی بر فناوری THUMB-2 اجرا می شوند ، بنابراین ، تراکم کد بالا را تضمین می کنند و میزان حافظه برنامه را کاهش می دهند. مجموعه دستورات cortex-m3 با توجه به معماری مدرن 32 بیتی ، عملکرد بسیار خوبی را ارائه می دهد. پردازنده ARM core-m3 از نزدیک با کنترل کننده وقفه Nested Vector (NVIC) یکپارچه است تا عملکرد خوبی در وقفه ایجاد کند.

ویژگی های اضافی پردازنده Cortex-M3
یک RISC Controller است
پردازنده 32 بیتی با کارایی بالا
دارای فناوری THUMB-2
ادغام بهینه دستورالعمل های 16/32 بیتی
عملکرد بالا
پشتیبانی از ابزارها و RTOS و دارای اشکال زدایی و ردیابی اصلی Sight
اتصال خطای سیم JTAG یا 2 پین سریال
پشتیبانی از چندین پردازنده
حالت های کم مصرف
پشتیبانی از حالت خواب
قدرت کنترل نرم افزار
دامنه های قدرت چندگانه
کنترل کننده وقفه بردار تو در تو (NVIC)
بدون نیاز به برنامه نویسی مونتاژ

حالت های ثبت نام میکروکنترلر ARM
میکروکنترلر ARM ذخیره سازی بار است که باعث کاهش دستورالعمل مجموعه معماری کامپیوتر می شود ، به این معنی که هسته نمی تواند مستقیماً با حافظه کار کند. عملیات داده ها باید توسط رجیسترها انجام شود و اطلاعات توسط یک آدرس در حافظه ذخیره شود. ARM cortex-M3 متشکل از 37 مجموعه ثبتی است که در آنها 31 رجیستر با هدف عمومی و 6 رجیستر وضعیت هستند. ARM از هفت حالت پردازشی برای اجرای وظیفه کاربر استفاده می کند.

حالت کاربر
حالت FIQ
حالت IRQ
حالت SVC
حالت تعریف نشده
حالت ABORT
حالت مانیتور

حالت کاربر: حالت کاربر یک حالت عادی است که کمترین تعداد ثبت را دارد. SPSR ندارد و دسترسی محدودی به CPSR دارد.

FIQ و IRQ: IRQ و FIQ دو حالت CPU هستند که باعث وقفه می شوند. FIQ در حال پردازش وقفه است و IRQ یک وقفه استاندارد است. حالت FIQ دارای پنج رجیستر بانکی اضافی برای ایجاد انعطاف پذیری بیشتر و عملکرد بالا هنگام رسیدگی به وقفه های مهم است.

حالت SVC: حالت Supervisor حالت قطع نرم افزار پردازنده برای راه اندازی یا تنظیم مجدد است.

حالت تعریف نشده: حالت تعریفی هنگام اجرای دستورالعمل های غیرقانونی به دام می افتد. هسته ARM از گذرگاه داده 32 بیتی و جریان داده سریعتر تشکیل شده است.

حالت THUMB: در حالت THUMB داده های 32 بیتی به 16 بیت تقسیم می شوند و سرعت پردازش را افزایش می دهند.

حالت THUMB-2: در حالت THUMB-2 دستورالعمل ها می توانند 16 بیتی یا 32 بیتی باشند و عملکرد میکروکنترلر ARM cortex –M3 را افزایش دهند. میکروکنترلر ARM cortex-m3 فقط از دستورالعمل های THUMB-2 استفاده می کند.

برنامه نویسی میکروکنترلر ARM-Cortex
در روزهای اخیر ، فروشندگان میکروکنترلر، میکروکنترلرهای 32 بیتی را براساس معماری ARM cortex-m3 ارائه می دهند. بسیاری از توسعه دهندگان سیستم جاسازی شده شروع به استفاده از این میکروکنترلرهای 32 بیتی برای پروژه های خود می کنند. میکروکنترلرهای ARM از هر دو زبان برنامه نویسی سطح پایین و سطح بالا پشتیبانی می کنند. برخی از معماری های میکروکنترلر سنتی با محدودیت های زیادی ساخته شده اند ، بنابراین استفاده از زبان برنامه نویسی سطح بالا دشوار است.

آخرین مقالات

مقالات مرتبط