جلسه42
رباتیک والکترونیک روبواچ پیRoboHp
رباتیک والکترونیک

 به نام خدا
با عرض سلام خدمت دوستان عزيز
در مورد ميكروكنترلر‌هاي AVR در جلسات گذشته توضيحات مفصلي داده شده است و دوستان تا حد خوبي با اين خانواده از ميكروكنترلر‌ها آشنا شده‌اند، اما اين آشنايي براي انجام پروژه‌هاي حرفه‌اي‌تر كافي نيست و مطالب بسيار گسترده‌ي ديگري هم در مورد اين خانواده از ميكروكنترلرها وجود دارد كه هنوز مطرح نشده‌اند، ولي اهميت بسيار زيادي دارند. از اين رو ما سعي مي‌كنيم در خلل كار، مجدداً جلساتي را به مباحث مرتبط با AVR اختصاص دهيم تا خلأ موجود در اين بخش را به تدريج برطرف كنيم.
در اين جلسه به موضوع انواع حافظه در ميكروكنترلرهاي مي‌پردازيم.
با نحوه‌ي پروگرام كردن ميكرو كنترلر در جلسه‌ي 27 آشنا شديد. همان‌طور كه مي‌دانيد، اطلاعاتي كه در مرحله‌ي پروگرام كردن به ميكروكنترلر منتقل مي‌شود، با خاموش كردن سيستم(يعني قطع جريان برق ميكروكنترلر)، از بين نمي‌رود و نيازي نيست براي هر بار استفاده از ميكروكنترلر مجدداً آن را پروگرام كنيم، و تا زمانيكه برنامه‌ي پروگرام شده روي ميكروكنترلر توسط كاربر Erase نشود، آن برنامه پاك نخواهد شد. اين نوع حافظه را «حافظه‌ي غير فرّار» مي‌گوييم، در اين نوع حافظه اگر جريان برق قطع هم شود اطلاعات از بين نخواهند رفت. مثال ديگر اين نوع حافظه‌ها، هارد ديسك كامپيوتر‌هاي شخصي خانگيست.
نوع ديگر حافظه‌ها، حافظه‌هاي «فرّار» نام دارند، در اين نوع، با قطع جريان برق، اطلاعات هم از بين مي‌روند. مثال آن حافظه‌ي RAM در كامپيوتر‌هاي شخصي خانگيست.
در ميكروكنترلر‌هاي AVR چند  نوع حافظه وجود دارد كه در زير به اختصار در مورد هر يك آن‌ها توضيح مي‌دهيم.


حافظه‌ي FLASH  



اين حافظه در مرحله‌ي پروگرام كردن، و براي ذخيره‌ي برنامه‌ي كامپايل شده توسط كامپيوتر (فايل با پسوند hex.) در ميكروكنترلر مورد استفاده قرار مي‌گيرد. همان‌ط‌ور كه توضيح داده شد اين حافظه از نوع حافظه‌هاي غير فرّار است.


حافظه‌ي SRAM  



وقتي در برنامه‌هاي خود متغيري تعريف مي‌كنيم، در زمان اجراي آن توسط ميكروكنترلر، به‌طور معمول از حافظه‌ي SRAM استفاده مي‌شود. مثلاً وقتي در برنامه جمله‌ي زير را مي‌نويسيد:
int TEMP;


ميكروكنترلر براي ساختن اين متغير 2-بايتي، از حافظه‌ي SRAM استفاده مي‌كند.
حافظه‌ي SRAM از نوع حافظه‌هاي فرّار است و اطلاعاتي كه در آن ذخيره مي‌شوند، پس از خاموش شدن ربات و قطع جريان برق از ميكروكنترلر، همگي پاك مي‌شوند. اگر بخواهيم براي تعريف حافظه از فضاي ديگري به جز SRAM استفاده كنيم، بايد در الگوي تعريف متغير، تغيير كوچكي دهيم كه در ادامه شرح داده شده است.


حافظه‌ي EEPROM  



گاهي اوقات ما نياز داريم اطلاعاتي كه در متغير‌ها ذخيره شده‌اند با خاموش شدن ربات يا دستگاه پاك نشوند و براي استفاده در زمان‌هاي ديگر هم قابل استفاده باشند. براي اين منظور حافظه‌ي EEPROM تعبيه شده است. EEPROM جزو حافظه‌هاي غير فرّار است.
براي استفاده از اين حافظه بايد متغير‌ها را به گونه‌اي تعريف كنيد كه به جاي استفاده از SRAM از EEPROM استفاده كنند. براي اين منظور طبق الگوي زير عمل مي كنيم:
eeprom int  TEMP;


يعني پيش از تعريف متغير، كلمه‌ي كليدي «eeprom» را ذكر مي‌كنيم. اگر اين كار را نكنيم، متغير به صورت پيش فرض در حافظه‌ي SRAM تعريف مي‌شود.
براي مثال فرض كنيد ربات مين‌يابي داريم كه مختصات مين‌هاي كشف شده را در متغيرهايي از حافظه‌ي ميكروكنترلرش ذخيره كرده است. اگر اين متغير‌ها در SRAM باشند، زماني‌كه ربات خاموش شود اين اطلاعات پاك مي‌شوند و ديگر قابل بازبيني نيستند، در اين‌گونه موارد بهتر است اطلاعات در eeprom ذخيره شوند تا خيالمان از بابت ذخيره‌ي اين اطلاعات راحت باشد.


رجيسترها  



در مورد رجيستر‌ها در جلسه‌ي 24 توضيحاتي داده شده است. رجيسترها هم جزو متغير‌هاي فرّار هستند و با قطع جريان برق پاك مي‌شوند. مهم‌ترين مزيت رجيسترها نسبت به SRAM سرعت بالاي آن‌ها به‌خاطر نزديك بودن به واحد پردازش‌گر مركزي است. و مهم‌ترين محدوديت‌ آن‌ها هم كم بودن تعداد آن‌هاست.  نيازي نيست كه ما در برنامه‌هاي خود مستقيماً از رجيستر‌ها استفاد كنيم، اما خود ميكروكنترلر براي اجراي برنامه‌هاي خود مكرراً از آن‌ها استفاده مي‌كند.
مطالب مطرح شده مختصر و اجمالي هستند، ولي اين مطالب براي رفع نياز دوستان و انجام پروژه‌هاي مختلف كفايت مي‌كنند و نياز به بررسي تخصصي‌تر روي اين مبحث نيست. توضيحات بيشتر در اين باب، نياز به مقدمات علمي و تخصصي بيشتري دارد كه در اين‌جا مجال مطرح كردن تمام اين مطالب نيست.
منتظر سوالات، نظرها و پيشنهادهاي دوستان خوبم هستم.

 



نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:







درباره سایت


به فروشگاه رباتیک والکترونیک RoboHpخوش آمدید
پيوندها

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان فروشگاه رباتیک و آدرس robohp.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان


ورود اعضا:

نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 81
بازدید دیروز : 35
بازدید هفته : 212
بازدید ماه : 209
بازدید کل : 130561
تعداد مطالب : 164
تعداد نظرات : 20
تعداد آنلاین : 1


IS
Google

در اين سایت
در كل اينترنت

تولید ملی حمایت از کار و سرمایه ایرانی