ARM, STM32_LL, آموزش, توصیه شده, مقاله

آموزش STM32 با توابع LL قسمت اول: پردازنده‌های ARM

آموزش STM32 با توابع LL

همانطور که می‌دانید میکروکنترلرها یا پردازنده‌های ARM (تفاوت میکروکنترلر و پردازنده در ادامه ذکر خواهد شد. فعلا این دو را معادل هم در نظر بگیرید) امروزه بیشترین استفاده را در بین سایر میکروکنترلرها، حداقل در کشور ما دارد.

ما هم از همین رو بر آن شدیم تا یک مجموعه آموزشی کاربردی برای این دسته از میکروکنترلرها در سیسوگ منتشر کنیم.

البته قبلا هم در سیسوگ چندین مجموعه آموزشی برای میکروکنترلرهای ARM ارائه شده است که می‌توانید به آن‌ها مراجعه کنید، اما این مجموعه‌ی جدید متفاوت خواهد بود. در ادامه تفاوت این مجموعه شرح داده می‌شود.

فقط اگر در ابتدای مسیر یادگیری هستید و قصد شروع به کار با این نوع میکروکنترلرها را دارید، توصیه می‌شود که همین مجموعه را دنبال کنید چون که قرار است با زبانی ساده‌تر مطالب توضیح داده شوند و همچنین هدف فقط راه‌اندازی نیست و تشریح سخت‌افزار و نرم‌افزار (کد) هم در دستور کار قرار دارد.

 

ARM (Advanced RISC Machine)

ARM در واقع اسم یک شرکت و همینطور اسم یک نوع معماری است که تنها به طراحی پردازنده با معماری خاص خود می‌پردازد اما خود تولیدکننده یا فروشنده هیچ نوع پردازنده یا میکروکنترلری نیست و تنها مجوز پردازنده‌هایی که طراحی کرده است را به سایر شرکت‌ها می‌فروشد.

در این مقاله در نهایت چندین شرکتی که این معماری را از شرکت ARM خریداری می‌کنند معرفی و در نهایت میکروکنترلر یکی از این شرکت‌ها را برای ادامه‌ی کار انتخاب خواهیم کرد.

 

انواع پردازنده‌های ARM

پردازنده‌های نسل جدید (نه همه‌ی پردازنده‌ها) شرکت ARM به صورت کلی به سه خانواده برای رده‌های کاری مختلف تقسیم می‌شود. البته اگر وارد جزئیات این سه دسته بشویم، خود شامل چندین زیرشاخه می‌شوند و انواع مختلفی از پردازنده‌ها را شامل می‌شود.

اجازه بدهید قبل از اینکه به سه دسته پردازنده مذکور بپردازیم، ابتدا تفاوت میکروکنترلر و پردازنده را بیان کنیم تا در ادامه‌ی راه سردرگم نشوید.

تقریبا می‌توان گفت که پردازنده همان CPU است، اما میکروکنترلر علاوه بر CPU، شامل حافظه‌ها، پورت‌ها، مبدل‌ها، تایمرها، پروتکل‌های ارتباطی و … نیز می‌شود.

حقیقت این است که پردازنده‌هایی که شرکت ARM طراحی می‌کند و امتیاز آن را به سایر شرکت‌ها می‌فروشد فقط یک CPU تنها نیست و کمی بیش از یک CPU درون این پردازنده‌ها قرار دارد. اکنون جهت جلوگیری از سردرگمی شما از پرداختن به اینکه پردازنده ARM دقیقا شامل چه چیز‌هایی است، صرف‌نظر می‌کنیم و این موضوع را به آینده موکول می‌کنیم.

پس نتیجه می‌گیریم که پردازنده‌های شرکت ARM یک چیزی بین میکروکنترلر و CPU هستند.

و اما به بحث اصلی یعنی انواع خانواده پردازنده‌های نسل جدید ARM برگردیم.

 

پردازنده‌ها‌ی ARM نوع Cortex-A

این نوع پردازنده‌ها برای اجرای سیستم‌عامل‌هایی مانند اندروید، لینوکس و … در نظر گرفته شده است. بسیاری از گوشی‌های موبایل در حال حاضر از این نوع پردازنده‌ها استفاده می‌کنند.

 

پردازنده‌ها‌ی ARM نوع Cortex-R

این نوع پردازنده‌ها برای برنامه‌هایی بلادرنگ و حساس به ایمنی بهینه‌سازی شده است، به عنوان مثال برای استفاده در خودروها یا جاهایی که نیاز به تصمیم‌گیری خیلی حساس باشد این نوع پردازنده‌هاد مورد استفاده قرار می‌گیرند.

 

پردازنده‌‌‎های ARM نوع Cortex-M

این نوع پردازنده‌ها برای کاربردهای میکروکنترلری کم هزینه و کم مصرف طراحی شده است که در ده‌ها میلیارد دستگاه نهفته به کار می‌رود.

احتمالا با توجه به کاربردها حدس زده باشید که تمرکز ما بر روی میکروکنترلرهای نوع Cortex-M خواهد بود.

بله تمرکز ما در این دوره‌ی آموزشی بر روی این نوع پردازنده‌ها یعنی پردازنده‌های نوع Cortex_M خواهد بود و در نهایت با واحدهای جانبی این نوع پردازنده‌ها آشنا خواهیم شد و برای قسمت‌های مختلف میکروکنترلرهای مبتنی بر این نوع پردازنده برنامه‌نویسی خواهیم کرد.

اجازه بدهید کمی به معرفی پردازنده‌ی Cortex-M بپردازیم و با انواع و جزئیات آن بیشتر آشنا شویم.

 

Cortex_M

 

تا به امروز 10 نوع پردازنده‌ی Cortex-M طراحی شده است که در جداول زیر امکانات آن‌ها قابل مشاهده است:

 

پردازنده‌های Cortex-M

 

پردازنده‌های Cortex-M

 

در دو تصویر بالا امکانات انواع پردازنده‌های Cortex-M با هم مقایسه شده است، اگر شما اکنون با بسیاری از موارد مقایسه شده در بالا  آشنا نیستید، اشکال ندارد و در طول زمان یادگیری با هر یک از آن‌ها آشنا خواهید شد. اکنون فقط یک نگاه کلی به آن‌ها بیندازید و رد شوید.

 

شرکت‌های استفاده‌کننده از پردازنده‌های ARM

شرکت‌های TI ،NXP ،ATMEL و ST از جمله معروف‌ترین شرکت‌هایی هستند که پردازنده‌های طراحی شده توسط شرکت ARM را خریداری می‌کنند و این پردازنده‌ها را در میکروکنترلرهایی که خودشان طراحی می‌کنند به کار می‌گیرند.

پس خود این شرکت‌های مذکور در طراحی پردازنده دخیل نیستند و فقط پردازنده‌ها را می‌خرند و در کنار این پردازنده‌ها، حافظه‌ها، پورت‌ها، مبدل‌ها، تایمرها، پروتکل‌های ارتباطی و … را قرار می‌دهند تا میکروکنترلر ساخته شود.

اما ما از کدام یک از میکروکنترلر‌های شرکت‌های بالا استفاده خواهیم کرد؟

از آن جهت که میکروکنترلرهای شرکت ST در حال حاضر در کشور ما استفاده بیشتری دارند و به وفور یافت می‌شوند و همینطور ابزارهای گسترده‌ای که شرکت ST برای کار راحت‌تر با میکروکنترلرهای خودش در دسترس ما قرار داده است، ما از میکروکنترلرهای این شرکت استفاده خواهیم کرد.

شرکت ST دو دسته میکروکنترلر STM8 که 8 بیتی هستند و STM32 که 32 بیتی هستند دارد، توجه کنید که میکروکنترلرهای STM8 ربطی به معماری ARM ندارند و فقط مربوط به شرکت ST است، ما هم با این دسته کاری نداریم.

اما آن دسته از میکروکنترلرهای که مدنظر ما هستند میروکنترلرهای STM32 هستند. عدد 32 هم مربوط به 32 بیتی بودن آن‌هاست.

در نظر داشته باشید که میکروکنترلرهای ARM بر خلاف AVR و سایر میکروکنترلرهای 8 یا 16 بیتی، 32 بیتی هستند.

پس تا این‌جا متوجه شدیم که قرار است از پردازنده‌های Cortex_M شرکت ARM که در میکروکنترلرهای STM32 شرکت ST به کار رفته است، استفاده بکنیم.

اجازه بدهید در ادامه به معرفی میکروکنترلرهای STM32 شرکت ST بپردازیم و در نهایت با یک جمع‌بندی این مقاله را به پایان برسانیم.

 

انواع میکروکنترلرهای STM32

ابتدا به شکل زیر دقت کنید:

 

انواع میکروکنترلرهای STM32

 

همانطور که از تصویر بالا مشخص است محور افقی، مربوط به دسته‌بندی پردازنده‌های Cortex-M شرکت ARM و محور عمودی مربوط به دسته‌بندی میکروکنترلرهای STM32 شرکت ST است.

محور افقی که مربوط به پردازنده‌های Cortex-M می‌باشد را کمی قبل‌تر بررسی کردیم. اکنون می‌خواهیم محور عمودی که مربوط به دسته‌بندی شرکت ST می‌شود را بررسی کنیم و بگوییم که هر دسته برای چه کاربردهایی مناسب است.

سری Wireless عمدتا برای کاربردهایی مثل IOT یا همان اینترنت اشیا به کار می‌رود.

سری Ultra-low-power به دلیل مصرف کم توان برای دستگاه‌هایی که با باتری کار می‌کنند بسیار مناسب است.

سری Mainstream کاربردهای عمومی دارد و غالبا در پروژه‌هایی که از نظر مصرف توان، قدرت پردازشی و حافظه‌‌ی زیاد محدودیتی ندارند مورد استفاده قرار می‌گیرد.

سری High performance پرقدرت‌ترین میکروکنترلرهای شرکت ST هستند. این دسته از میکروکنترلرها قدرت پردازشی بیشتری نسبت به سری‌های دیگر دارند و برای کارهایی پردازشی و کارهایی که نیاز به سرعت بالایی دارند بسیار مناسب هستند.

خب در این مقاله با اینکه ARM چیست و چه پردازنده‌های دارد، و همینطور انواع میکروکنترلرهای مبتنی بر این نوع پردازنده‌ها به خوبی آشنا شدیم و مشخص کردیم که در ادامه‌ی راه قرار است با چه میکروکنترلری کار بکنیم.

فعلا تا همین جا کافی است، در قسمت دوم با ابزارها و نحوه‌ی پیکره‌بندی میکروکنترلرهای STM32 آشنا می‌شویم.

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

دیدگاهتان را بنویسید

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

6 دیدگاه در “آموزش STM32 با توابع LL قسمت اول: پردازنده‌های ARM

  1. سعید حقیقی پور سعید حقیقی پور گفت:

    سلام مهندس
    مطلب جالب و خوبی بود ممنون!
    یه سوال هم داشتم.راجع به LL منظورتون رو متوجه نشدم؟اگه اونطور که حدس زدم میخواید برنامه نویسی سطح پایین این میکروها رو بگید تا چه حد سطح پایین؟اسمبلی طور؟

    1. سلام سعید جان. سپاس از نظر مثبت و لطفی که به ما دارید.

      ببینید LL یه کتابخونه است که با زبان C نوشته شده است نه اسمبلی، پس ما قصد داریم که با سطح پایین‌ترین کتاب‌خونه‌ای که برای این دسته از میکروکنترلرها وجود داره برنامه بنویسیم (کتاب‌خونه LL سطح‌پایین‌تر از کتاب‌خونه HAL که احتمالا برایتان آشنا باشد، است و هر دو نیز به زبان C نوشته شده‌اند).
      برای این دسته از میکروکنترلرها تا به حال هیچ کتاب‌خونه‌ای به زبان اسمبلی ارائه نشده است.

      همچنین در نظر داشته باشید که این پردازنده‌ها برای زبان C هم بهینه شده‌اند و به طور کامل از این زبان پشتیبانی می‌کنند، پس اگر زمان توسعه‌ی کد را هم در نظر بگیریم (با زبان اسمبلی توسعه‌ی کد بسیار زمان‌بر است) زبان Cمی‌تونه انتخاب بهتری باشه.

  2. Vvv.bagheri VHD گفت:

    سلام
    خیلی خوب بود
    ممنون
    فقط کاش مثل بعضی دیگر از سری آموزش‌ها ناقص و نا تموم نمونه

    1. درود بر شما دوست عزیز. سپاس از نظر مثبت شما.

      خیر، این مجموعه تمامی قسمت‌هایش از قبل مشخص شده است و فقط باید نگارش و در نهایت منتشر گردد.

  3. امید مقدس گفت:

    ممنون از مطالب آموزنده شما و زحمتی که می کشید

    1. سپاس از نظر مثبت شما امید جان.