ساختار حافظه‌ها

ساختار حافظه‌ها

ساختار حافظه‌ها در میکروکنترلر AVR چه گونه است؟

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

میکروکنترلرهای AVR با استفاده از معماری اصلاح شده هاروارد ساخته شده‌اند. این بدان معنی است که فضای حافظه برنامه Flash در یک باس آدرس جداگانه از Static Random Access Memory (SRAM) قرار دارد. دو باس داده وجود دارد، یکی که می تواند به همه داده‌ها دسترسی داشته باشد و باس داده In / Out (ورودی و خروجی) که به بخش کوچکی از حافظه دسترسی دارد. در آموزشگاه AVR در مورد این میکروکنترلر و ساختار حافظه آن و به طور کلی آموزش طراحی میکروکنترلرهای  AVR را به خوبی آموزش داده شده است.

انواع حافظه در میکروکنترلر AVR

انواع حافظه در میکروکنترلر AVR : حافظه فلش

حافظه برنامه میکروکنترلر AVR که شامل حافظه فلش قابل برنامه ریزی مجدد درون سیستم برای تراشه برنامه هستند در بهترین آموزشگاه AVR در تهران به صورت کامل توضیح داده می‌شود. از آنجا که کلیه دستورالعمل های AVR 16 یا ۳۲ بیت عرض دارند، فلش به صورت ۳۲k×۱۶ سازماندهی می‌شود، برای امنیت نرم افزار، فضای حافظه Flash Program به دو بخش تقسیم می‌شود – بخش Boot Loader و بخش برنامه در دستگاه. حافظه فلش از دوام و پایداری معمولی حداقل ۱۰،۰۰۰ چرخه نوشتن / پاک کردن برخوردار است. جداول دوام و پایداری را می‌توان در کل فضای آدرس حافظه برنامه، با استفاده از دستورالعمل Load Program Memory (LPM) اختصاص داد.

ساختار حافظه‌ها در میکروکنترلر AVR چه گونه است؟ - وبسایت بهسا

انواع حافظه در میکروکنترلر AVR : حافظه داده EEPROM

حافظه فقط خواندنی قابل برنامه ریزی شده و قابل پاک کردن الکتریکی داده (EEPROM) به عنوان یک فضای داده جداگانه سازماندهی می‌شود، که در آن بیت‌های واحد قابل خواندن و نوشتن هستند. دسترسی از CPU به EEPROM از طریق رجیستر‌های آدرس EEPROM، ثبت اطلاعات EEPROM و ثبت کنترل EEPROM انجام می شود. EEPROM حداقل ۱۰۰۰۰۰ چرخه نوشتن / پاک کردن را دارد.

انواع حافظه در میکروکنترلر AVR : حافظه داده SRAM

از طریق باس داده استاندارد می‌توان به داده ها دسترسی داشت. برای دسترسی سریع و مستقیم به مکان‌های انتخابی، یک باس داخلی / ورودی ثانویه وجود دارد.

حافظه داده شامل:

  • رجیستر
  • حافظه I / O
  • حافظه I / O Extended
  • SRAM داخلی

فضای رجیستر- متشکل از ۳۲ رجیستر ۸ بیتی با هدف (R0-R31) است.

حافظه I / O– حاوی فضای آدرس پذیر برای توابع محیطی ، مانند رجیسترهای کنترل و سایر توابع I / O است.

حافظه I / O Extended –  برخی از میکروکنترلرهای AVR که دارای لوازم جانبی بیشتری هستند، نیاز به فضای بیشتری دارند تا حافظه I / O بتواند به آن توجه کند، بنابراین برخی از SRAM ها از حافظه I / O Extended برای رسیدگی به رجیستری‌های اضافی لوازم جانبی جانبی و سایر عملکردهای I / O استفاده می‌کنند.

SRAM داخلی (حافظه داده) – برای ذخیره موقت نتایج و متغیرهای متوسط ​​در یک برنامه نرم افزاری استفاده می‌شود.

ساختار حافظه‌ها در میکروکنترلر AVR چه گونه است؟ - وبسایت بهسا

پنج حافظه داده مختلف (ورودی/خروجی) آدرس دهی برای حافظه داده وجود دارد:

  • مستقیم – آدرس دهی مستقیم به کل فضای داده می‌رسد.
  • غیر مستقیم – در فایل رجیستر، رجیسترهای R26 تا R31 دارای رجیسترهای اشاره گر غیرمستقیم هستند.
  • غیر مستقیم با جابجایی – حالت غیر مستقیم با جابجایی از آدرس پایه داده شده از Y یا Z رجیستر به ۶۳ مکان آدرس می‌رسد.
  • غیر مستقیم با پیشوند-آدرس‌های ثبت شده X ، Y و Z کاهش می‌یابد.
  • غیر مستقیم با پسوند – آدرس‌های ثبت شده X ، Y و Z افزایش می‌یابند.

ورودی/خروجی باس داده از موارد ساختار حافظه‌ها در میکروکنترلر AVR

این باس داده با استفاده از آدرس ۰×۰۰ به ۰×۱F مستقیما به بخش حافظه ۶۴ بیت I / O دسترسی دارد. با استفاده از یک باس داده استاندارد ۰×۲۰ در کنترل پنل، می‌توانید به این حافظه دسترسی داشته باشید.

ساختار حافظه‌ها در میکروکنترلر AVR چه گونه است؟ - وبسایت بهسا

حافظه I / O : به همه مکانهای حافظه I / O  (حافظه I / O و حافظه I / O Extended) با استفاده از دستورالعمل‌های مونتاژ LD / LDS / LDD و ST / STS / STD با استفاده از داده استاندارد می‌توان دسترسی پیدا کرد. داده ها بین ۳۲ رجیستر همه منظوره و فضای I / O منتقل می‌شوند.

رجیسترهای I / O در محدوده آدرس باس داده داخل / خارج  ۰×۱F-0×۰۰ (حافظه I / O) با استفاده از دستورالعمل های SBI و CBI بطور مستقیم قابل دسترسی هستند. در این رجیسترها می‌توان مقدار بیت‌های واحد را با استفاده از دستورالعمل‌های SBIS و SBIC بررسی کرد.

رجیستر همه منظوره I / O : سه رجیستر همه منظوره I / O، رجیستر همه منظوره I / O 0/1/2 (GPIOR 0/1/2) در بالای حافظه I / O قرار دارند (x020- 0x022  ) این رجیسترها را می‌توان برای ذخیره هرگونه اطلاعات استفاده کرد، و به ویژه برای ذخیره متغیرهای جهانی مفید هستند. این رجیسترها با استفاده از دستورالعمل های SBI ، CBI ، SBIS و SBIC بطور مستقیم از طریق باس داده In / Out قابل دسترسی هستند. رجیستر I / O باقیمانده پس از رجیستر همه منظوره I / O آغاز می‌شود.

  نظرات