آشنایی با میکروکنترلرهای ARM

 میکروکنترلر ARM

امروزه با پیشرفت روز افزون تجهیزات و الکترونیکی شدن آن ها، بکارگیری سیستم های یکپارچه رونق زیادی یافته است. به طوری که در اکثر دستگا ه های جدید از این سیستم ها استفاده می شود. به عنوان مثال گوشی های همراه و ….اکثراً دارای این تجهیزات الکترونیکی می باشند. با توجه به این موضوع اکثر سیستم های ترمز ABS و GPS و شرکت ها و کارخانجات الکترونیکی به سمت این سیستم های الکترونیکی روی آورده اند. که این خود باعث ایجاد یک رقابت در بین تولیدکنندگان پردازنده های سرعت بالا شده است.

در این خلال نسل جدید پردازنده های ARM به بازار معرفی شدند ، که دارای سیستم پردازش ۳۲ بیتی با سرعت پردازش چند مگاهرتز تا چند صد مگا هرتز می باشند . سرعت بالا، قیمت ارزان و حجم کم این پردازنده ها باعث شد که اکثر تولیدکنندگان میکروکنترلرها و پروسسورها مانند ATMEL PHILIPS, و… آن را در لیست محصولات خود قرار دهند.حجم کم پردازنده های ARM باعث شده که اکثر فضای داخلی میکروکنترلرها برای تجهیزات جانبی مانند DAC ، Serial, LAN, USB, ADC و … بکار گرفته شود.هسته داخلی تمام میکروکنترلرهای ARM کارخانجات مختلف یکی است بنابراین برنامه نوشته شده برای یک سری از میکروکنترلرها را می توان برای سری دیگر نیز استفاده کرد.

پردازنده هایی که در میکروکنترلرهای ARM استفاده می شوند ، پردازنده های ۳۲ بیتی با معماری Risk می باشد، این پردازنده ها برای کاربردهای قابل حمل (Portable) بهینه سازی شده اند به صورتی که مصرف توان آن ها بسیار کم است و می توان آن ها را توسط باتری برای مدت زیادی روشن نگه داشت به عنوان نمونه می توان گوشی های موبایل را نام برد که در آن ها از این هسته پردازشی استفاده می شود.

معروفترین هسته پردازنده ARM7 ، ARM می باشد که یکی از رایج ترین هسته های پردازشی موجود می باشد. بعد از ARM 7 به ترتیب ARM9 و ARM10 و ARM11 قرار دارند.

انواع هسته های پردازنده سری : ARM7

ARM7TDMIرایج ترین هسته پردازنده ۳۲ بیتی با معماری RISK می باشد.
ARM7TDMI-Sاین هسته نسخه قابل سنتز ARM7TDMI است.
ARM72OTاین هسته علاوه بر ویژگی های هسته های بالا داری حافظه CASHو بخش مدیریت حافظه می باشد.
ARM7EJ-5 این هسته برخی از قابلیت های پیشرفته DSP را در خود دارد و برای کارهای پردازش سیگنال مناسب می باشد.

پردازنده های ARM از سیستم PIPELINE برای پردازش استفاده می کنند منظور از این سیستم این است که پردازنده دارای سه مد کاری برای اجرای یک دستور است:

FETCHبازخوانی اطلاعات از حافظه کد
DECODEرمزگشایی اطلاعات نوشته شده
EXECUTEاجرای برنامه در پردازنده های قدیمی تر

در سیکل اول دستور اول FETCH می شود

در سیکل دوم دستور اول DECODE می شود دستور دوم FETCH می شود

در سیکل سوم دستور اول EXECUTE دستور دوم DECODE می شود و دستور سوم FETCH می شود.

این نوع سیستم ۳ STAGE PIPELINE است.

در پردازنده های ARM بالاتر مانند ARM9 سیستم پردازش ۵STAGE PIPELINE می باشد که عملیات خواندن و نوشتن از حافظه ها نیز جزء این عملیات قرار گرفته در۱۰ ARM سیستم پردازش به صورتPIPELINE 6 STAGE است.

انتخاب میکرو کنترلر :

شرکت های مختلفی میکروکنترلرهای بر مبنای پروسسور ARM می سازند مانند : Atmel , Philips ,Samsung , St-micro , Motorola و کمپانی های دیگر ما از میان این شرکت ها میکروکنترلر های ساخت Philips رو که از تولید شرکت NXP است به دلایل زیر انتخاب کردیم:

· قطعات سری LPC2000 یکی از متنوع‏ترین خانواده‏ های میکروکنترلرهای با هسته‏ ARM7 هستند و قطعات این سری، در مقایسه با AT91SAM قیمت کمتری دارند. مثلاً قیمت LPC2101 حدود ۲ دلار است که این مقدار از خیلی از میکروکنترلرهای ۸ بیتی (مثل ATmega16) کمتر است.

· اجرای برنامه از حافظ ه‏ی فلش بسیار سریعتر است. بدلیل دسترسی ۱۲۸ بیتی به حافظه‏ی فلش و وجود واحد شتاب‏دهنده‏ حافظه (MAM)، قطعات LPC2000 می ‏توانند در مُد ARM با حداکثر سرعت ۶۰ تا ۷۵ MHz به حافظه‏ فلش دسترسی داشته باشند؛ در حالی که که SAM7 ها با سرعتی کمتر از نصف این مقدار کد برنامه را اجرا می‏ کنند. علاوه براین، در مقایسه با سایر میکروهای با هسته ARM7 ، فرکانس کاری میکروکنترلرهای LPC2000 نسبتاً بالاست (۶۰ تا ۷۰ مگاهرتز در LPC2000ها در مقایسه با ۵۵ مگاهرتر در sam

· راه ‏اندازی Peripheral های قطعات LPC2000 ساده ‏تره. اکثر سخت افزارهای جانبی به شکلی طراحی شده‏ اند که لازمه رجیسترهای کمتری تنظیم بشن و بسیاری از آن ها را می ‏توانید به حالت پیش‏فرض رها کنید.

· میکروکنترلرهای LPC2000 دارای Peripheral هایی هستند که به ندرت در سایر میکروکنترلرهای با هسته‏ ARM7 دیده می ‏شود. مثلاً تایمر ۳۲ بیتی با پیش ‏تقسیم‏ کننده ۳۲ بیتی ( AT91SAM ها فقط تایمر ۱۶ بیتی دارن! )، DAC، RTC، LIN، SSP، MMC/SD Controller، USB Host/OTG، Fast GPIO ،XGA LCD Controller و غیره.

· قطعات LPC دارای تعداد I/O بیشتری هستند. مثلاً قطعه‏ LPC2132 که یک قطعه‏ ۶۴ پایه است ۴۷ پایه‏ GPIO داره درحالی که قطعه ی مشابه ۶۴ پایه ای AT91SAM7S64، دارای ۳۲ خط I/O است.

· مستندات و نمونه برنامه های ارائه شده توسط NXP برای LPC ها کامل تر و غنی از ATmel برای SAM7 هاست.

حافظه فلش چیپ می تواند به روش های مختلفی برنامه ریزی شود :

۱- واسط سریال

J-Tag 2- به صورت ISP توسط

UART0 3- استفاده از in application programming )IAP)

کامپایلر ها و مفسر های موجود برای چیپ های ARM را در اینجا ذکر می کنم :

IAR : قابلیت برنامه نویسی میکرو کنترل های ارم ببه زبان های C و C++و اسمبلی ، امکان شبیه سازی برنامه نوشته شده ، پشتیبانی تمامی میکروکنترلر های ارم ، منابع اموزشی متوسط و محیط حرفه ای ، پشتیبانی از SPY-C که امکانات خیلی زیادی دارد ، سرعت اجرای بالا و سازگاری کامل با ANSI C ، توابع کتاب خانه ای کم ، نداشتن باگ های امنیتی.

Winarm : قابلیت برنامه نویسی به زبان های C و C++ ، عدم شبیه سازی برنامه ، فقط پشتیبانی ARM7 ، منابع آموزشی و مثال های زیاد ، متن باز بودن برنامه و بالطبع رایگان بودن ، داشتن توابع کتابخانه ای بالا ، ۳ سال است که این نرم افزار به روز رسانی نشده است.

Keil : برنامه نویسی به زبان های Cو C++ و اسمبلی ، امکان شبیه سازی برنامه نوشته شده ، پشتیبانی تمام میکروکنترلر های ARM ، کاربرپسند بودن برنامه و منابع اموزشی متوسط

سایر کامپایلر ها : Cross works for ARM , Flowcode ARM, ARM ADS,تقریبا دو کامپایلر keil و IAR از محبوبیت بیشتری برخوردارند .

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شاید این مطالب را هم دوست داشته باشید