پیش نیاز ها این دوره آموزشی :
کل مباحث دوره آموزشی AVR : از اینجا شروع کنید
کل مباحث دوره آموزشی ARM7 : از اینجا شروع کنید
نکته مهم : روند آموزش های آتی به سمت کاربردی و کوتاه شدن پیش خواهد رفت و کمتر به اصول و پیش نیازها اشاره خواهیم کرد. بنابراین در صورتی که پیش نیازهای ذکر شده را به طور کامل مسلط نباشید ، در مفاهیم قسمت های بعدی با مشکل مواجه خواهید شد. توصیه می شود قبل از شروع به کار با میکروکنترلرهای Cortex M3 چند پروژه عملی با ARM7 انجام دهید.
مقدمه
در بخش های قبلی آموزش ARM به تشریح و راه اندازی میکروکنترلرهای LPC213X پرداختیم. این میکروکنترلرها دارای معماری ARM7TDMI بودند. از این بخش به بعد می خواهیم به معرفی ، تشریح و راه اندازی میکروکنترلرهای LPC176X بپردازیم که دارای معماری CotexM3 هستند. در این بخش با هسته های سری Cortex ، معماری CortexM3 و تفاوت های آن با ARM7 آشنا خواهیم شد.
معرفی هسته های Cortex M
همانطور که می دانید شرکت ARM خود سازنده میکروکنترلرها نیست بلکه طراحی کننده هسته های پردازشی ( CPU ) معماری دستورالعمل ها به همراه معماری ساخت آنها می باشد و از طریق فروش سورس کد قابل سنتز این هسته ها ( به زبان Verilog ) به شرکت های سازنده چیپ نظیر NXP ، STmicro ، Analog Device و … درآمد کسب می کند. سپس شرکت های سازنده روی این کد به دلخواه خود تغییراتی اعمال می کنند تا به اهدافی نظیر توان مصرفی پایین ، افزایش حداکثر کلاک کاری ، مدیریت نوع و تعداد واحدهای جانبی بر حسب کاربرد ، سایزهای مختلف حافظه و … دست یابند. این عمل باعث تولید انواع چیپ ها و میکروکنترلرها با یک هسته و معماری اما با توان مصرفی ، سرعت و کاربردهای مختلف می گردد.
هسته های پردازشی خانواده Cortex M دسته ای از هسته های 32 بیتی شرکت ARM هستند که به منظور کاربردهای میکروکنترلری از آن ها استفاده می گردد. این خانواده خود به سری های Cortex-M0, M0+, M1, M3, M4, M7, M23, M33 تقسیم بندی می شوند. شکل زیر انواع این خانواده و سال تولید آن را نشان می دهد.
پردازنده های سری Cortex-M در نسل هفتم پردازنده ARM معرفی شدند و معماری آن ها به منظور استفاده در کنترلر های بلادرنگ ( Real Time ) بهینه سازی شده است. پردازنده های مختلف این خانواده می توانند به عنوان جایگزین مناسبی جهت پردازنده های مختلف در گستره وسیعی از کاربرد ها مورد استفاده واقع شوند.
هر چند هسته های Cortex M اکثرا در میکروکنترلرها مورد استفاده قرار می گیرد اما یکی از کاربردهای دیگر آن ها ، در SoC ها ( مخفف System On a Chip به معنای سیستم های روی یک آی سی ) می باشد. در SoC ها از هسته های Cortex M به منظور مدیریت و کنترل سیستم ، ورودی/خروجی ها ، توان مصرفی چیپ و کنترل سنسورها استفاده می شود. میکروکنترلرهای سری Cortex M به علت هزینه تمام شده مناسب و افزایش سرعت و کارایی به مرور زمان تبدیل به جایگزین مناسبی برای میکروکنترلرهای 8 بیتی نظیر AVR و میکروکنترلرهای 32 بیتی نظیر ARM7 و ARM9 هستند.
ویژگی های پردازنده خانواده Cortex M3
پردازنده های Cortex M3 دارای کارایی متوسط در بین پردازنده های سری Cortex M هستند. همچنین خانواده Cortex M3 اولین خانواده از سری Cortex M هستند. در نتیجه این خانواده متوسط ترین امکانات و قابلیت ها را دارند و نیز جزو معروف ترین و پرکاربردترین خانواده ها نیز هستند.
از مهمترین ویژگی هایی که در پردازنده های خانواده Cortex M3 وجود دارد عبارت است از :
- پردازنده 32 بیتی RISC با دستورالعمل های بهینه سازی شده ARMv7-M و Thumb در دو نسخه 1 و 2
- استفاده از معماری حافظه مدرن هاروارد Harward ، معماری خط لوله ای سه مرحله ای
- پاسخگویی سریع به 1 تا 240 وقفه و اولویت بندی آنها در واحد NVIC ( مخفف Nested Vectored Interrupt Controller )
- بهبود در عیب یابی سیستم ( System Debug ) به همراه قابلیت های Trace و BreakPoint
- پاسخ گویی سریع به وقفه ها در 12 سیکل کلاک
- مصرف توان پایین ( 0.19 میلی وات به ازای هر 1 مگاهرتز )
- دارای مدهای کاهش مصرف توان ( Sleep ) یکپارچه
- دارای پلتفرم امنیتی MPU ( مخفف Memory Protection Unit ) جهت محافظت از 8 نقطه از حافظه
- دارای واحد جداگانه برای انجام ضرب ، تقسیم ، جمع و تفریق اعداد 32 بیتی و 64 بیتی
- اضافه شدن تایمر سیستم ( SysThick Timer ) و بهینه سازی این تایمر جهت مدیریت زمان اجرای سیستم عمل های بلادرنگ ( RTOS )
شکل زیر بلوک دیاگرام واحدهای مختلف و نحوه ارتباط آن ها را در پردازنده های Cortex M3 نشان می دهد. همانطور که مشاهده می کنید برخی از این قابلیت ها Optional یعنی اختیاری و برخی دیگر اجباری هستند. وجود یا عدم وجود هر یک از قابلیت های Optional در اختیار شرکت سازنده می باشد.
برای مطالعه بیشتر و کسب اطلاعات کامل تر در مورد معماری پردازنده های ARM سری Cortex M ، خواندن PDF زیر توصیه می شود :
مقایسه بین میکروکنترلرهای ARM7 و Cortex M3
میکروکنترلرهای Cortex M3 در اصل نسخه بهبود یافته میکروکنترلرهای ARM7TDMI می باشند و از نظر معماری پردازنده بسیار شبیه به هم هستند. مهمترین بهبودهای صورت گرفته از نظر افزایش سرعت ، کاهش توان مصرفی و دستورالعمل های با کارایی بالاتر می باشد. در جدول شکل زیر تفاوت های این دو معماری را مشاهده می کنید.
علاوه بر بهبود های سخت افزاری پردازنده های Cortex M3 نسبت به ARM7 ، یک استاندارد نرم افزاری بسیار کاربردی تحت عنوان CMSIS ( مخفف Cortex Microcontroller Software Interface Standard ) برای همه میکروکنترلرهای سری Cortex M وجود دارد که به صورت رایگان در اختیار استفاده کنندگان از این تراشه ها قرار می گیرد. کتابخانه های CMSIS شامل راه اندازی ( Driver ) کلیه واحدهای موجود در میکروکنترلر می باشد که برای اولین بار توسط شرکت NXP توسعه داده شده است و توسط دیگر شرکت های میکروکنترلر نظیر STM و Atmel نیز پشتیبانی می شود. بنابراین در صورت استفاده از کتابخانه های CMSIS و توابع موجود در آن میتوان برای همه میکروکنترلرهای Cortex M کدهای استاندارد تولید کرد که قابلیت پروگرام روی هر میکروکنترلر کورتکس دیگری را نیز پیدا می کند. در میکروکنترلرهای ARM7 این استاندارد و کتابخانه های آن وجود ندارد و همین مسئله موجب درگیر شدن برنامه نویس با سطح پایین برنامه نویسی و شروع نوشتن برنامه از رجیسترها می شود.
شرکت های سازنده میکروکنترلرهای Cortex M3
شرکت NXP دارای سه سری عمده از محصولات بر اساس هسته پردازشی Cortex M3 می باشد. سری های LPC13xx ، LPC15xx ، LPC17xx و LPC18xx .
LPC13xx کارایی متوسط با حداکثر فرکانس 72 مگاهرتز برای کاربردهای سیگنال ترکیبی ( Mixed Signal ) با توان مصرفی پایین در نظر گرفته شده است.
LPC15xx با کارایی بالا و فرکانس حداکثر 120 مگاهرتز هستند که برای کاربردهایی نظیر کنترل چندگانه و سریع انواع موتورها با دقت بالا و قابلیت های جدید می باشند.
LPC17xx با کارایی بالا و و فرکانس حداکثر 120 مگاهرتز هستند که پشتیبانی از ارتباطات همه جانبه و انواع ادوات جانبی ( Peripherals ) نظیر DAC , CAN , USB و … را نشانه رفته است.
LPC18xx با کارایی بسیار بالا و فرکانس کاری حداکثر 180 مگاهرتز جزو سریعترین و پیشرفته ترین میکروکنترلرهای Cortex M3 هستند که کاربردهای زیادی در صنعت دارند.
میکروکنترلرهای شرکت STM نیز با سه سری STM32F1xx با قابلیت ها و کارایی متوسط و حداکثر فرکانس 72 مگاهرتز ، STM32F2xx با کارایی و قابلیت های بالا و حداکثر سرعت 120 مگاهرتز و همچنین سری STM32L1xx با کارایی و مصرف توان پایین و حداکثر سرعت 32 مگاهرتز عرضه شده است.
شرکت های دیگری از قبیل :
- Atmel با محصولات SAM3A, SAM3N, SAM3S, SAM3U, SAM3X
- Texas Instrument با محصولات F28, LM3, TMS470, OMAP 4
- Energy Micro با محصولات EFM32
- Analog Devices با محصولات ADuCM3xx
- Toshiba با محصولات TX03
از جمله دیگر تولید کنندگان میکروکنترلر بر پایه Cortex M3 می باشند.
برای رفتن به بخش بعدی روی تصویر زیر کلیک کنید.
دیدگاه (4)
بسیار عالی بود
خیلی خیلی ممنون
لطفا اموزش های دیگه اشو هم بذارید توی سایت
تشکر
ممنون از حسن نظرتون
آموزش ها ادامه دارد
شهرام اصلانی از ارومیه خواستم دست مریزاد بگم به ادمین الکتروولت که سایت بسیار آموزش دهنده ای را در سطح کشور ساختین ارادت دارم خدمت افراد دانشمند
ممنون از لطفتون جناب اصلانی از همراهی شما متشکریم