فهرست مطالب
در این مطلب آموزشی نحوه ارتباط با کارت حافظه micro SD با گذرگاه SD شرح داده شده است. کارت حافظه کاربرد گسترده ای در سیستم های Embedded دارد بعنوان مثال میتوان به ذخیره log سیستم در حافظه و یا پخش آهنگ ذخیره شده در حافظه در سیستم آسانسور و … اشاره نمود. بدلیل محدودیت حافظه داخلی پردازندهها استفاده از حافظه خارجی امری ضروری بنظر میرسد.
حافظه ها را میتوان در دو دسته Volatile و Non-volatile طبقه بندی کرد. حافظه های Volatile به حافظههایی گفته میشود که با قطع تغذیه داده ذخیره شده در آن بطور کامل پاک میشود. حافظه هایی نظیر SRAM، DRAM در این گروه قرار دارند. در حافظه های Non-volatile با قطع تغذیه داده ذخیره شده از بین نمیرود. حافظه های نظیر EEPROM و Flash از پرکاربردترین حافظه های Non-volatile هستند. در شکل 1 انواع حافظه بصورت ساده شده نشان داده شده است.
کارت حافظه های SD
امروزه کارت حافظه SD کاربرد وسیعی در سیستم های الکترونیکی دارند. از جمله این کاربردها میتوان به گوشی موبایل اشاره نمود که در اکثر گوشیهای موبایل دارای یک کارت حافظه SD هستند. بلوک دیاگرام کارت حافظه micro SD در شکل 2 نشان داده شده است. این کارت حافظه شامل گذرگاه 9 پینی، کنترلر کارت، هسته حافظه و گذرگاه حافظه است. گذرگاه 9 پین امکان تبادل داده بین پردازنده Host و کنترلر کارت را فراهم میکند. کنترلر کارت از طریق گذرگاه حافظه، میتواند عملیات خواندن و نوشتن را در حافظه انجام دهد. علاوه بر این کارت دارای چندین رجیستر داخلی برای ذخیره وضعیت آن است. کنترلر به دو نوع درخواست پاسخ میدهد: داده و کنترل. درخواست های کنترلی چگونگی عملکرد کنترلر را تنظیم میکنند. همچنین امکان دسترسی به رجیسترهای کارت SD را نیز فراهم میکنند. از درخواستهای داده برای خواندن و نوشتن داده از هسته حافظه استفاده میشوند.
تبادل داده با کارت micro SD
ارتباط با کارت حافظه micro SD با یکی از گذرگاههای SPI و SD صورت میگیرد. ارتباط با کارت SD با ارسال فرمان و دریافت پاسخ انجام میشود. هر یک از فرمانهای کارت SD از 48 بیت تشکیل میشود. ساختار فرمان در شکل 3 نشان داده شده است.
شرح فیلدهای فریم فرمان بصورت زیر است:
- Start: بیت 46 و 47 بیت های شروع هستند که مقدار آن همواره “01” است.
- Command: بیتهای 40 تا 45 فیلد فرمان است. در جدول 1 لیست فرامین SD نشان داده شده است.
- Argument: بیتهای 8 تا 39 فیلد آرگومان است.
- CRC: بیتهای 1 تا 7 فیلد CRC است که برای تشخیص خطای احتمالی در نظر گرفته شده است.
- Stop: در نهایت یک بیت خاتمه در انتهای فرمان قرار داده شده است. این بیت همواره “1” است
گذرگاه های ارتباطی حافظه های Micro SD
کارت حافظه micro SD از گذرگاه های SPI و SD پشتیبانی میکنند. در این پروژه نحوه استفاده از کارت حافظه SD با گذرگاه SD بررسی شده است. گذرگاه SD بصورت یک Slave و چندین Master است. سیگنال کلاک و تغذیه بین کلیه Slave ها مشترک است و هر Slave سیگنالهای داده (DAT0-DAT3) و فرمان (CMD) منحصر به فرد خود را دارد. گذرگاه SD این امکان را فراهم میکند تا بصورت دینامیکی عرض گذرگاه داده را تنظیم کرد. بصورت پیشفرض کارت حافظه تنها از DAT0 برای انتقال داده استفاده میکند.
گذرگاه SD از سیگنالهای زیر تشکیل شده است:
- CLK: سیگنال کلاک گذرگاه است که توسط Host تولید میشود.
- CMD: سیگنال دو طرفه Command/Respond است.
- DAT0-DAT3: خطوط دو طرفه داده است.
- VDD، VSS، VSS2: سیگنالهای Power و Ground هستند.
توپولوژی گذرگاه SD در شکل زیر نشان داده شده است.
مقدمه ای بر فایل سیستم
فایل سیستم روشی برای سازماندهی داده بر روی حافظههای فیزیکی مانند دیسک و … است. بدون فایل سیستم برای استفاده از حافظه باید با مفاهیمی نظیر آدرس، بانک، سکتور و … استفاده کرد. بعبارت دیگر فایل سیستم جزئیات فیزیکی حافظه را کاربر مخفی نگه میدارد و به کاربر این امکان را میدهد تا از Directory و مسیر (بعنوان مثال C:\\myfile) بجای آدرس فیزیکی استفاده شود. فایل سیستم استفاده از حافظه فیزیکی را بسیار آسوده میسازد. در واقع استفاده حافظه فیزیکی بدون فایل سیستم بسیار دشوار است.
امروزه فایل سیستم های متنوعی وجود دارد. از معروف ترین آن ها میتوان به FAT، NTFS و ext4 و … اشاره نمود. در سیستم های Embedded معمولا از فایل سیستم FAT (File Allocation Table) استفاده میشود.