تحلیل کتابخانه

تحلیل و برسی کتابخانه SRAM_23LC.h

sram_23lc-h-memory-arduino-library-digispark
نوشته شده توسط معین صابری

حافظه ها یکی از اجزای جدانشدنی در سیستم های دیجیتال به شمار می روند. هیچ سستم دیجیتالی را نمی توان بدون وجود حافظه تصور نمود. یکی از مهم ترین نوع حافظه ها، حافظه RAM است. این حافظه داده ها را تا زمانیکه سیگنال برق فعال است، نگاه داشته و پس از قطع برق داده های خود را از دست می دهد. این حافظه حین اجرای برنامه ها اهمیت کلیدی دارد. متغیرهای تعریف شده اعم از عمومی و محلی، آدرس های توابع و… در این حافظه ذخیره می گردد.

در بسیاری از مواقع به دلیل وجود متغیرهای زیاد و یا نیاز به سرعت دسترسی بالا، نیاز داریم تا از حافظه RAM استفاده کنیم. اما در بسیاری از مواقع حافظه RAM یا SRAM میکروکنترلر حجم بسیار پایینی دارد. در این موارد نیاز است تا از حافظه RAM خارجی استفاده نماییم. برای این مورد، آی سی SRAM_23LC یک انتخاب بسیار هوشمندانه خواهد بود. به کمک این آی سی می توان میزان حافظه RAM را افزایش دهید. جهت راه اندازی و کار با این آی سی، کتابخانه تحت آردوینو توسعه یافته است. به کمک این کتابخانه به شکلی سریع و در فرمی استاندارد می توانیم اقدام به راه اندازی این حافظه نماییم. در این آموزش قصد به بررسی کتابخانه راه انداز این آی سی داریم. مطابق رویه معمول ابتدا به بررسی آی سی به صورت مختصر می پردازیم. در ادامه نحوه نصب کتابخانه را به همراه الزامات فنی آن، خواهیم دید. سپس وارد قسمت مهم آموزش، تحلیل و بررسی توابع کتابخانه شده و در نهایت با ارایه یک مثال، استفاده از توابع را در برنامه های عملی مشاهده خواهیم نمود. در ادامه آموزش تحلیل کتابخانه SRAM_23LC با مرجع تخصصی تحلیل کتابخانه آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


آی سی حافظه SRAM_23LC


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

  • حافظه موقت یا RAM
  • حافظه دائمی از نوع Flash
  • حافظه دائمی از نوع EEPROM

آی سی حافظه SRAM_23LC، یک حافظه موقت از نوع SRAM است. به کمک این حافظه و اتصال آن به میکروکنترلر، می توان میزان حافظه RAM را افزایش داد. بدین ترتیب برنامه نویسی می توان میزان متغیر وتوابع بسیاری بیشتری را تعریف نماید. آی سی حافظه SRAM_23LC دارای یک مگابایت حافظه با قابلیت دسترسی سریال است. این حافظه از پورت سریال SPI جهت ارتباط با میکروکنترلر استفاده می کند.

 

در صورتیکه نیاز به سرعت بیشتر در تبادل داده دارید، این آی سی از پورت سریال SDI و SQI پشتیبانی می کند. جهت راه اندازی این آی سی و اتصال آن به بردهای آردوینو نظیر UNO کتابخانه توسعه یافته که در این آموزش به تحلیل و بررسی آن می پردازیم. قسمت های بعدی آموزش به این مورد اختصاص می یابد.

 


نصب کتابخانه SRAM_23LC


همانطور که اطلاع دارید، کتابخانه ها یکی از ابزارهای کلیدی و کاربردی در برنامه نویسی به شمار می روند. به کمک این ابزار، می توانیم توابع نوشته شده در فایلهایی به نام کتابخانه ذخیره کرده و سپس در پروژه های متعدد از آن استفاده کنیم.  همانطور که پیشتر گفته شد، برای راه اندازی و کار با ماژول کتابخانه توسعه داده شده است. برای استفاده از این کتابخانه، ابتدا باید آن را نصب کنیم. برای نصب کتابخانه در محیط آردویینو، ابتدا مطابق تصویر زیر بر روی گزینه Tools و سپس Manage Libraries کلیک کنید.

اصول نصب کتابخانه در آردوینو - دیجی اسپارک

 

پس از کلیک بر روی گزینه Manage Libraries، در صفحه ظاهر شده، در قسمت کادر جستجو، عبارت SRAM_23LC.h را جستجو نموده و کتابخانه مشخص شده در تصویر زیر، با کادر قرمز رنگ را نصب نمایید.

دانلود و نصب کتابخانه SRAM_23LC - دیجی اسپارک

 


الزامات و نکات فنی کتابخانه SRAM_23LC


پس از نصب کتابخانه، نوبت به الزامات فنی آن می رسد. آنطور که پیشتر نیز گفته شد، آی سی حافظه SRAM_23LC از پورت سریال SPI جهت تبادل داده با میکروکنترلر استفاده می کند. بنابراین برد مد نظر شما باید از پورت SPI سخت افزاری پشتیبانی کند. در طرف دیگر، این کتابخانه مستقل از معماری پردازنده بر روی کلیه بردهای مورد پشتیبانی پلتفرم آردوینو، عمل می کند. به عبارت دیگر، این کتابخانه بر روی بردهایی با معماری AVR و سایر معماری ها نظیر ESP قابلیت اجرا را دارد.

 


توابع کلیدی و کاربردی کتابخانه


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

شرح ورودی ها تابع
تابع سازنده کلاس کتابخانه با تعریف پورت SPI، پایه CS و مدل آی سی ورودی اول آدرس SPI

ورودی دوم پایه CS

ورودی سوم مدل آی سی

SRAM_23LC(SPIClass * spi, const uint8_t chipSelect, const SRAM_23LC_Device device)
این تابع اتصال به آی سی و راه اندازیرا فراهم می کند. بدون ورودی void begin(void)
این تابع فرم دیگری از تابع فوق است. به کمک آن می توان سرعت ارتباط را نیز تعیین کرد. ورودی از نوع بدون علامت ۳۲ بیتی void begin(const uint32_t clkSpeed)
به کمک این تابع می توان داده در آدرس تعیین شده ورودی را خواند. پس از خواندن نتیجه در خروجی قرار می گیرد. ورودی جهت تعیین آدرس uint8_t readByte(const uint32_t address)
به کمک این تابع می توانیم داده ای را در آدرس تعیین شده بنویسیم. برای این مورد ورودی نخست آدرس محل نوشتن و ورودی دوم بایت جهت نوشتن در آدرس است. ورودی اول آدرس

ورودی دوم داده جهت نوشتن

  size_t writeByte(const uint32_t address, const uint8_t byte)
به کمک این تابع می توان بلاکی از حافظه را خواند. در این حالت بیش از یک کاراکتر خوانده می شود. آدرس شروع در ورودی نخست، تعداد کاراکترها در ورودی دوم و محل ذخیره سازی در ورودی سوم قرار می گیرد. ورودی اول آدرس جهت خواندن

ورودی دوم اندازه داده

ورودی سوم بافر جهت ذخیره سازی

size_t readBlock(const uint32_t address, const size_t length, void * buffer);
به کمک این تابع می توان در بلاکی از حافظه نوشت. در این حالت بیش از یک کاراکتر نوشته می شود. آدرس شروع در ورودی نخست، تعداد کاراکترها در ورودی دوم و بافر داده ها جهت ذخیره سازی در ورودی سوم قرار می گیرد. ورودی اول آدرس جهت خواندن

ورودی دوم اندازه داده

ورودی سوم بافر جهت ذخیره سازی

   size_t writeBlock(const uint32_t address, const size_t length, void * buffer)

 

توجه: جهت تعیین مدل ای سی، ثوابتی از پیش تعریف شده است. این ثوابت در جدول زیر قرار می گیرند.

ظرفیت مدل آی سی
۸KB SRAM_23A640, SRAM_23K640
۳۲KB SRAM_23A256, SRAM_23K256
۶۴KB SRAM_23LCV512, SRAM_23LC512, SRAM_23A512
۱۲۸KB SRAM_23LCV1024, SRAM_23LC1024, SRAM_23A1024

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

 


اجرای یک نمونه برنامه


با آشنایی با توابع کلیدی و کاربردی کتابخانه SRAM_23LC، نوبت به اجرای یک نمونه برنامه می رسد. جهت اجرای نمونه برنامه می توانید در محل نصب کتابخانه example را اجرا کنید. برای این مورد، در سیستم عامل ویندوز Documents->Arduino->Libraries->SRM_23LC->Examples برنامه نمونه را اجرا کنید.

 


لوازم مورد نیاز


لینک خرید انواع برد آردوینو، کلیک کنید

لینک خرید انواع برد ESP، کلیک کنید

لینک خرید آی سی SRAM23_LC، کلیک کنید.

 


جمع بندی


حافظه ها یکی از مهم ترین و پرکابردترین ابزارها در طراحی سیستم های دیجیتال و میکروکنترلری به شمار می رود. حافظه ها به دسته های مختلفی تقسیم بندی می شوند. یکی از مهم ترین نوع حافظه ها، حافظه SRAM است. به کمک این حافظه برنامه ها متغیرهای خود را در آن ذخیره می کنند. آی سی حافظه SRAM_23LC یکی از مهم ترین حافظه های SRAM به شمار می رود. با اتصال این آی سی به بردهای آردوینو نظیر UNO می توان حجم حافظه زیادتری در اختیار داشت. در این آموزش به شرح و بررسی این آی سی پرداختیم. سپس از آنجاییکه هدف تحلیل و بررسی کتابخانه آن است، نصب، الزامات فنی و در نهایت توابع کلیدی و کاربردی آن را مورد بررسی قرار دادیم.

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه