آموزش میکروکنترلر ARM STM32 - معرفی ساختار حافظه در میکروکنترلر
همانطور که می دانیم ماشین آلات و دستگاههای الکترونیکی زیادی هستند که از قطعات الکتریکی بزرگ و کوچکی استفاده میکنند و هرکدام از این قطعات وظیفه مخصوص به خود را دارد و مجموعهای از آنها مدارهای مجتمع را تشکیل میدهند. هر قطعه ساختار و معماری منحصر به فرد خود را دارد که توسط زبانهای برنامه نویسی کدگذاری و مقداردهی میشوند. یکی از این قطعات مهم الکترونیکی میکروکنترلر نام دارد. در این مطلب ضمن معرفی قطعهی مهم میکروکنترلر میخواهیم آموزش میکروکنترلر ARM STM32 که یکی از مهمترین آنهاست را شرح دهیم و با ساختار حافظه در میکروکنترلرها آشنا شویم اما قبل از آن مایلم مجموعه آموزش میکروکنترلر فرادرس را به شما معرفی کنم؛ برای دریافت این آموزش روی لینک زیر کلیک کنید:
آشنایی با میکروکنترلر ARM
امروزه با پیشرفتی که سیستمهای کامپیوتری داشتهاند میکروکنترلر ها نیز توسعه داده شدهاند و این تراشههایی که بهعنوان مغز هر سیستمی میباشند در وسایل مختلفی از انواع خودرو گرفته تا تلفنها همراه جای گرفتهاند. میکروکنترلر ها به 4 گروه مهم با نامهای ARM - PIC - AVR و 8051 که از مهمترین آنها نیز هستند دسته بندی میشوند. یکی از این میکروکنترلر ها با نام ARM میباشد که تقریباً در هر نوع دستگاه و کاربری میتوانیم از آنها استفاده کنیم.
از سیستمهای امنیتی و نظامی گرفته تا حمل و نقل خودرو و حتی پروتکلهای پزشکی میتوانیم از این تراشههای کوچک و کاربردی استفاده کنیم. تراشههای میکروکنترلر سیستم پردازشی از نوع 32 بیتی دارند که سرعت پردازش در آنها از چند مگاهرتز گرفته تا چند صد مگاهرتز را شامل میشود. میکروکنترلر های ARM در عین حال که قیمت پایینی دارند مصرف انرژی در آنها نیز پایین بوده و کارایی و عملکرد مناسبی ارائه میکنند که باعث میشود برخی از شرکتهای تولید سخت افزار بزرگ مانند Apple، NXP و ST تراشههای ARM را تولید و روانهی بازار قطعات کامپیوتری و الکترونیکی کنند.
میکروکنترلر ARM دارای انواع مختلفی هست که معروفترین آنها شامل ARM11 - ARM10 - ARM9 - ARM7 میباشد و از جمله پراستفادهترین آنها میکروکنترلر از نوع ARM7 است که کاربرد هستهی پردازشی آن بسیار مورد توجه است. البته بعد از میکروکنترلر ARM7 انواع دیگر آن نیز بسیار پرکاربرد هستند و در برخی از دستگاهها مانند لپ تاپ ها مورد استفاده قرار میگیرند.
تفاوت میکروکنترلر و ریزپردازنده ها چیست؟
هر دو قطعهی میکروکنترلر و میکروپروسسور بهعنوان قطعات پردازشگر شناخته میشوند که هرکسی که به حوزهی الکترونیک علاقهمند باشد شاید این دو را با یکدیگر اشتباه بگیرد ولی در اصل این دو قطعه باهم تفاوتهایی دارند که در ادامه بررسی خواهیم کرد. البته باید بگوییم که تشخیص اینکه یک قطعه میکروکنترلر باشد یا ریزپردازنده کار واقعاً سختی است چون هر دو قطعه بین 6 تا 80 و یا بیشتر پایه دارند. ولی تفاوت مهم آنها باهم این است که میکروکنترلر ها علاوه بر اینکه واحد پردازشگر دارند، واحدهای دیگری به نام ROM - RAM و همچنین حافظهی جانبی را در خود قرار دادهاند.
نوع کار میکروکنترلر ها به این شیوه است که دادههایی را بهصورت ورودی دریافت میکنند و عملیات پردازشی را بر روی آنها انجام میدهند و در آخر اطلاعات خروجی را به بخشهای دیگر ارسال میکنند. و به همین خاطر میتوانیم به میکروکنترلر بهعنوان یک میکرو کامپیوتر هم نگاه کنیم و این نشان از استفادهی بالا و عملکرد خوب آن است. ولی در ریزپردازندهها تنها یک واحد پردازشگر (CPU) وجود دارد که توانایی پردازش اطلاعات را دارد و واحدهای دیگری در آن نیست. در نتیجه کاربرانی که دستگاههای الکترونیکی را با استفاده از قطعات مختلف در کنار هم قرار میدهند باید سایر بخشها مانند حافظهی جانبی حافظه ROM و RAM را به ریزپردازندهها متصل کنند. البته این خصوصیت باعث میشود با استفاده از میکروپروسسورها برخلاف میکروکنترلر ها وظایف مختلف و گوناگونی را انجام دهیم.
مهمترین ویژگی های میکروکنترلر ARM
حال که با تعریف میکروکنترلر ها و انواع مهم آن یعنی ARM آشنا شدیم میخواهیم برای کسب اطلاعات کامل در زمینه آموزش میکروکنترلر ARM STM32 ابتدا به سراغ ویژگیهای اصلی میکروکنترلر ARM برویم و با آنها آشنا شویم. لازم به ذکر است که پردازندههای ARM بر پایه معماری RISC بوده ولی بر طبق نیازمندیهایی که در یک سیستم تعبیه میشود اصلاحاتی در معماری RISC اتفاق می افتد. نوع معماری میکروکنترلر ARM بهصورت Load and Store یا انتقال داده میباشد. در این حالت از معماری پردازشهای صورت گرفته تنها بر روی محتوای رجیسترها صورت میگیرد نه اینکه بخواهیم بهصورت مستقیم در حافظه اینکار را انجام دهیم و میتوان نتیجه گرفت که دستورهای پردازش شده روی هر رجیستری متفاوت را انواع دیگر است. دستورهای میکروکنترلر ARM طول ثابت و یکسانی دارند بهطوری که پردازندههای ARM از نوع 32 بیتی 2 مجموعه دستور دارند. یکی دیگر از ویژگیهای میکروکنترلر ARM این است که از POP Line های چند مرحلهای پشتیبانی میکند تا از این کار جهت افزایش سرعت انجام دستورات استفاده کند.
میکروکنترلر STM32 چیست؟
نوع STM32 یکی از پرطرفدارترین میکروکنترلر های از نوع 32 بیتی است که میتوانیم از میکروکنترلر ARM داشته باشیم و توسط شرکت ST تولید و عرضه میشود. مزایای مهم میکروکنترلر STM32 این است که قابلیتهای متنوع و بالایی دارد و سرعت و فرکانس کاری آنها بالا بوده ولی قیمت بسیار پائینی دارد در بازار ایران دارد. نرم افزارهای مختلفی نیز که با میکروکنترلر STM32 سازگار هستند توسط این شرکت طراحی و به بازارهای مختلف عرضه شده است که باعث میشود کار با این میکروکنترلر ها بسیار ساده و کاملاً وسیع باشد و پیچیدگی زیادی نداشته باشد.
با آموزش میکروکنترلر ARM STM32 میتوانیم از آنها برای دستگاههای مختلف از تلفن همراه گرفته تا لوازم خانگی مانند ماشین لباس شویی نیز استفاده کنیم. در حقیقت تمامی بخشها و المانهای مناسب جهت کارکرد صحیح یک دستگاه در این میکروکنترلر طراحی و نصب شده است که کار ما را بهعنوان تجمیع کننده قطعات الکترونیکی و هماهنگی بین آنها را راحتتر میکند.
بررسی عملکرد میکروکنترلرهای STM32
شرکت ST توانسته است خواندهای بزرگ از میکروکنترلر ها را براساس هستهی ARM تولید و عرضه کند. هستههای مختلف ARM از سری کورتکس و سایر سریهای ARM در این مجموعه یافت میشود. در ادامه به بررسی میکروکنترلر STM32 از نوع F429bit میپردازیم که از خانواده کورتکس M4 و 32 بیتی است. این میکروکنترلر دارای واحد محاسبات اعشاری FPU، شتاب دهنده زمان واقعی با انتظار صفر برای اجرا از روی فلش میباشد. فرکانس کاری این میکروکنترلر تا 180 مگاهرتز میرسد و دارای واحد نگهبانی از حافظه MPU است. این میکروکنترلر دارای 2 مگابایت حافظه فلش برنامه و 256 کیلوبایت حافظه رم میباشد. رابط موازی LCD با حالتهای 6800/8080 هستند و کنترل کننده گرافیک با امکان گرافیک تا XGA میباشد. پس در این صورت انواع LCD هایی که از نوع TFT هستند بدون اینکه نیازی به مدار دیگری داشته باشند قابل اجرا و راه اندازی هستند. البته باید بدانیم که شتابدهنده از نوع کروم آرت برای اینکه گرافیک بهتری را ایجاد کند از میکروکنترلر STM32 استفاده میکند. رابط موازی دوربین 8 تا 14 بیت با قابلیت انتقال تا 54 مگابایت در ثانیه در این میکروکنترلر تعبیه شده است.
آشنایی با ساختار انواع حافظه
در این بخش میخواهیم به سراغ انواع حافظهها در داخل میکروکنترلر ها برویم و با کاربرد آنها آشنا شویم. از جمله مباحث مهمی که در میکروکنترلر ها وجود دارد بحث مربوط به بخش حافظهها است و برای فراگیری و آموزش میکروکنترلر ARM STM32 میتوانیم یادگیری بخش حافظه و کاربرد آنها را بررسی کنیم تا نگاه خوبی به انتخاب میکروکنترلر ها برای پروژههای مختلف داشته باشیم. بهصورت کل اگر به مشخصات تمام میکروکنترلر های امروزی نگاه کنیم متوجه میشود در تمامی آنها از نوع AVR گرفته تا STM32 همگی از 3 نوع حافظه استفاده میکنند که انواع حافظهی آنها عبارتاند از :
- حافظه EEPROM
- حافظه SRAM
- حافظه Flash
در ادامه نگاهی داریم به انواع حافظه که کدامیک از آنها برای نگهداری متغیرها و کدام برای حافظه استفاده میشود و اینکه کدامیک از نوع حافظهی غیر فرّار و کدام حافظهی فرّار است.
بطور کلی دو نوع حافظه اصلی در سیستم داریم:
که یک نوع آن برای نگهداری برنامه یا Program Memory است و دیگری جهت نگهداری متغیرها یا Data Memory مورد استفاده قرار می گیرد.
حافظهی Program Memory یک نوع حافظهای است که اطلاعات بر روی آن ذخیره میشوند و غیر فرّار هستند به این معنی که با قطع شدن جریان برق برنامهها داخل میکروکنترلر از بین نخواهند رفت. ولی حافظهی Data Memory از نوع فرّار یا غیر فرّار میتواند باشد. در حال حاضر از حافظهی فلش که از نوع حافظهی غیر فرّار است برای نگهداری کردن برنامهها استفاده میشود ولی در میکروکنترلر ها از حافظههای SRAM و EEPROM برای ذخیره کردن دیتا استفاده میشود که البته حافظهی SRAM از نوع فرّار و حافظهی EEPROM از نوع غیر فرّار میباشد.
سوال: چرا حافظه مورد استفاده در Flash از نوع غیر فرّار می باشد؟
برای پاسخ به این سوال ابتدا سر تکاملی حافظه های برنامه ها را بررسی می کنیم تا به پاسخ خود برسیم.
حافظه های برنامه 5 نوع هستند که هرکدام خصوصیات و ویژگی های خاص خود را دارند :
- حافظه ROM
- حافظه PROM
- حافظه EPROM
- حافظه EEPROM
- حافظه Flash
در ادامه ی آموزش میکروکنترلر ARM STM32 به بررسی هرکدام از حافظه های مورد استفاده در میکروکنترلرهای STM32 می پردازیم.
حافظه Rom
در ابتدا که سیستمهای کامپیوتری ساخته شد از حافظهی ROM بهعنوان یک حافظهی فقط قابل خواندن یا اصطلاحاً (Read Only Memory) استفاده میشد. خصوصیت مهم این حافظه این است که تنها یکبار قابل خواندن است و برنامهی کامپیوتری در ابتدای ساخته شدن یک سیستم توسط شرکت سازنده بر روی حافظهی ROM نوشته میشود و دیگر قابل پاک کردن نیست.
حافظه PROM
بعد از نسل اول حافظه ROM، حافظهی نسل دوم یعنی PROM یا Programmable Rom معرفی شد که این نوع حافظهها مثل نوع حافظهی ROM تنها یکبار بر روی آنها برنامه ریخته میشود ولی یک تفاوت با نسل قبلی دارد اینکه این بار توسط کاربر برنامه نویسی میشود و در صورتی که برنامه نویسی بر روی آن انجام شود دیگر نمیتوان آن را تغییر داد.
حافظه EPROM
نسل سوم حافظهها نوع دیگری از آنهاست که با نام EPROM یا Erasable Programmable ROM شناخته میشود که برخلاف حافظههای ROM و EPROM میتوانیم با استفاده از اشعه UV تمامی محتویات برنامه را پاک کرده و مجدداً برنامه ریزی و برنامه نویسی را روی آن انجام دهیم. البته برای اینکار نیاز به یک پنجرهی کوچک روی میکروکنترلر میباشد.
حافظه EEPROM
بعد از حافظهی EPROM نسل چهارم حافظهها یعنی حافظهی EEPROM یا Electrically Erasable Programmable ROM طراحی و ساخته شد که در این حافظهها هم تغییراتی نسبت به نسل قبلی به وجود آمد و اینکه برخلاف حافظهی EPROM که با اشعهی UV ماوراء بنفش امکان پاک کردن اطلاعات بود، میتوانیم از ولتاژ الکتریکی جهت حذف کردن محتویات حافظه استفاده کنیم. یعنی بهصورت خیلی ساده میتوانیم در این نوع حافظه یک بایت از اطلاعات را در آن واحد بنویسیم سپس بخوانیم و در آخر هم پاک کنیم.
حافظه Flash
بعد از اینکه حافظههایی با خصوصیات حافظهی EEPROM ابداع شدند، حافظهی قابل حمل Flash به بازار آمدند که هرکسی میتوانست طبق حجم مورد تقاضای خود یکی از آنها را تهیه کرده و برای امور شخصی و نگه داری اطلاعات استفاده کند. بهطور کلی میتوان گفت که حافظهی Flash از زیر مجموعههای حافظهی EEPROM است یا خود یک نوع حافظهی EEPROM است. البته تفاوتهایی با هم نیز دارند که میتوان به نوع حذف کردن اطلاعات اشاره کرد و در حافظهی Flash میتوانیم در یک لحظه تمامی بایتهای موجود در بلوک دیتا را حذف کنیم.
در نتیجه در بحث آموزش میکروکنترلر ARM STM32 میتوانیم به این سؤال پاسخ دهیم که حافظههای Flash طبق نیاز کاربران که از نوع خواندنی و نوشتنی هستند و هرکسی میتواند هر تعداد بار که بخواهد اطلاعات را بر روی این حافظه نوشته و سپس حذف کند. البته حافظهی فلش بدون عیب هم نیست و میتوانیم به مشکل طول عمر آن اشاره کنیم. یعنی اینکه به هر ترتیب تعداد پاک کردن و نوشتن اطلاعات بر روی حافظههای نامحدود نیست و معمولاً تا 10 هزار مرتبه است. البته با پیشرفتهایی که در این زمینه انجام شده این تعداد به 100 هزار مرتبه در حافظههای جدیدتر رسیده است.
جمع بندی درباره آموزش میکروکنترلر ARM STM32
در این مطلب دربارهی مبحث میکروکنترلر ها و انواع آنها بحث کردیم و به خصوصیات و کاربردهای هرکدام اشاره شد. در ادامه به معرفی و آموزش میکروکنترلر ARM STM32 پرداختیم تا با ویژگیها و جزئیات این قطعات الکترونیکی پرکاربرد در حافظههای مختلف آشنا شویم. جهت فراگیری خصوصیات کامل میکروکنترلر های ARM پیشنهاد میکنیم با فیلمهای آموزشی فرادرس شروع به یادگیری نموده تا با اطلاعات کامل به آنها مسلط شوید.
منبع: nashrila
تگ:
نظرات کاربران
از دیدگاه مرتبط با موضوع استفاده نمایید.
از تبلیغ سایت یا شبکه اجتماعی خودداری فرمایید.
برای پاسخ گویی بهتر در سایت ثبت نام نمایید و سپس سوال خود را مطرح فرمایید.
اگر به دنبال کار پاره وقت هستید با ما تماس بگیرید.
اگر سوال یا نظری دارید در بخش کامنت ها بنویسید.اگر موضوع خاصی مد نظر شماست که در سایت موجود نیست در بخش کامنت ها بنویسید