۰۲۱-۷۷۶۰۵۵۳۸

شنبه, 02 فروردين 773 ساعت 00:00

ارتباط میکروکنترلر با حافظه هاي فلش

نوشته شده توسط 
این مورد را ارزیابی کنید
(0 رای‌ها)

ارتباط میکروکنترلر با حافظه هاي فلش (sd،mmc) ; (قسمت اول)

در اداﻣﻪ ﻧﻤﻮﻧﻪ ﻗﻮﯾﺘﺮي ﺑﺎ ﻧﺎم16 FATرا اراﺋﻪ ﮐﺮد ﮐﻪ ﻗﺎﺑﻠﯿﺖ آدرس دﻫﯽ 16ﺑﯿﺘﯽ ﮐﻼﺳﺘﺮﻫﺎ را داﺷﺖ و ﺗﺎ ﻇﺮﻓﯿﺖ 4 ﮔﯿﮕﺎ ﺑﺎﯾﺖ را ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽﮐﺮد اﯾﻦ ﻧﻤﻮﻧﻪ ﻧﯿﺰ ﺑﺎ روي ﮐﺎر آﻣﺪن ﻓﻀﺎﻫﺎي ﺑﺴﯿﺎر ﺑﺎﻻ در ﻫﺎرد دﯾﺴﮑﻬﺎ ﮐﻨﺎررﻓﺘﻪ و ﻓﻘﻂ در ﺳﯿﺴﺘﻢﻫﺎي ﻗﺎﺑﻞ ﺣﻤﻠﯽ ﻣﺎﻧﻨﺪ ‪ MP3 PLAYERو ‪ COOL DISKﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد. اﯾﻦ ﻧﻤﻮﻧﻪ ﺑﺪﻟﯿﻞ ﭘﺎﺋﯿﻦ ﺑﻮدن ﺗﻌﺪاد ﺳﮑﺘﻮر ﺑﻪازاي ﻫﺮ ﮐﻼﺳﺘﺮ در ﺳﯿﺴﺘﻢﻫﺎي ﻗﺪﯾﻤﯽ ﺳﺮﻋﺖ ﮐﻤﺘﺮي را داراﺳﺖ زﯾﺮا در ﺣﺠﻢ ﺑﺮاﺑﺮﺑﻪ ﻣﺤﺎﺳﺒﺎت ﺑﯿﺸﺘﺮي ﻧﺴﺒﺖ ﺑﻪ ﻧﻤﻮﻧﻪ ﺟﺪﯾﺪﺗﺮ ﺧﻮد ﻧﯿﺎز دارد ﺗﺎ اداﻣﻪ ﻓﺎﯾﻞ ذﺧﯿﺮه ﺷﺪه را در ﺣﺎﻓﻈﻪ ﭘﯿﺪا ﮐﻨﺪ. ﺑﻪ اﯾﻦ دﻟﯿﻞ و ﻣﺤﺪودﯾﺖ ﻇﺮﻓﯿﺖ ﻧﻤﻮﻧﻪ دﯾﮕﺮي اراﺋﻪ ﺷﺪ

‫ﮐﻪ ﺑﺎ ﻧﺎم32 FATﻗﺎﺑﻠﯿﺖ آدرس دﻫﯽ 32ﺑﯿﺘﯽ ﮐﻼﺳﺘﺮﻫﺎ را دارا ﺑﻮد. اﯾﻦ ﻧﻤﻮﻧﻪ ﮐﻪ ﺗﺎ ﭼﻨﺪي ﭘﯿﺶ درﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎي ﺷﺨﺼﯽ ﺣﺮف اول را در ﻣﻮرد ﻣﺪﯾﺮﯾﺖ ﻫﺎرددﯾﺴﮏﻫﺎ ﻣﯽزد ﺗﺎ ﻇﺮﻓﯿﺖ 32ﮔﯿﮕﺎﺑﺎﯾﺖ ﺣﺎﻓﻈﻪرا ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽﮐﺮد و از ﺳﺮﻋﺖ ﺑﺎﻻﯾﯽﻧﺴﺒﺖ ﺑﻪ ﻫﻤﻪ ﻧﻤﻮﻧﻪﻫﺎي ﻗﺒﻠﯽ ﺑﺮﺧﻮردار ﺑﻮد. اﻣﺎ ﺑﺎ ﻧﻤﻮﻧﻪ آﺧﺮ ﺑﺎﻧﺎم ‪ NTFSﻓﻌﻼ ﺗﻤﺎم ﺣﺮفﻫﺎ و ﺣﺪﯾﺚﻫﺎ ﺗﻤﺎم ﺷﺪ، اﯾﻦ اﺳﺘﺎﻧﺪارد ﮐﻪ ﺑﺎ ﻧﻤﻮﻧﻪﻫﺎي ﻗﺒﻞ ﻓﺮق داﺷﺘﻪ وﻇﺮﻓﯿﺖ 2 ﺗﺮاﺑﺎﯾﺖ را در ﺣﺎﻓﻈﻪ ﭘﺸﺘﯿﺒﺎﻧﯽﻣﯽﮐﻨﺪ و ﺑﺴﯿﺎر ﺟﻤﻊ و ﺟﻮرﺗﺮ از ﻫﻤﻪ ﻃﺮاﺣﯽ ﺷﺪ و از رﯾﺨﺖ و ﭘﺎش ﻓﻀﺎي ﺣﺎﻓﻈﻪ ﺑﺴﯿﺎر ﺟﻠﻮﮔﯿﺮي ﺷﺪه و از ﻟﺤﺎظ ﺳﺮﻋﺖ و ﻣﯿﺰان ﻣﺤﺎﺳﺒﺎت ﻣﻮرد ﻧﯿﺎز ﺑﺴﯿﺎر ﺑﻬﯿﻨﻪ ﺳﺎزي ﺷﺪ.
در اداﻣﻪ ﺑﻪ ﺑﺤﺚ در ﻣﻮرد ﺑﻌﻀﯽ از ﻣﻔﺎﻫﯿﻢ ﻣﻮﺟﻮد در اﯾﻦ اﺳﺘﺎﻧﺪارد و ﮐﻠﻤﺎت ﮐﻠﯿﺪي آن ﻣﯽﭘﺮدازﯾﻢ و ﺑﺎ ﺗﻮﺿﯿﺢ ﻻزم ﺗﻔﺎوتﻫﺎي ﻣﻮﺟﻮد ﺑﯿﻦ ﻧﻤﻮﻧﻪﻫﺎي ﻣﺨﺘﻠﻒ را ﺷﺮح ﻣﯽدﻫﯿﻢ.

ﻣﻔﺎﻫﯿﻢ ﮐﻠﯿﺪي:

‫‪ :SECTOR.1

ﻓﻀﺎي ﻣﻤﻮري ﮐﺎرتﻫﺎ ﯾﺎ ﻫﺎرد دﯾﺴﮏﻫﺎ ﺑﻪ ﺗﻌﺪادي ﺳﮑﺘﻮر ﺗﻘﺴﯿﻢﻣﯽﺷﻮﻧﺪ ﮐﻪ ﺑﺮاي ﻣﻤﻮري ﮐﺎرتﻫﺎي ‪ SD و ‪ MMCﺳﮑﺘﻮر ﺷﺎﻣﻞ 215 ﺑﺎﯾﺖ ﻣﯽﺑﺎﺷﺪ و ﻣﻤﻮري ﮐﺎرت در ﻫﻨﮕﺎم ﻧﻮﺷﺘﻦ و ﺧﻮاﻧﺪن ﺑﻄﻮر ﻣﺴﺘﻘﯿﻢ ﺑﺎ ﺑﺎﯾﺖﻫﺎ  ﺳﺮ و ﮐﺎر ﻧﺪارد ﺑﻠﮑﻪ ﺑﺎ ﺳﮑﺘﻮرﻫﺎ ﮐﺎر ﻣﯽﮐﻨﺪ و‫ ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ ﺑﺮاي اﯾﻨﮑﻪ ﺑﺘﻮان ﺑﺸﮑﻞ ﻣﻌﻤﻮل ﺑﺎ ﻣﻤﻮري ﮐﺎر ﮐﺮد ﺑﻬﺘﺮ اﺳﺖ ﮐﻪ ﻣﯿﮑﺮوﮐﻨﺘﺮﻟﺮي اﺳﺘﻔﺎده ﮐﺮد ﮐﻪ از 215 ﺑﺎﯾﺖ ﺑﯿﺸﺘﺮ ‪ داﺷﺘﻪ ﺑﺎﺷﺪSRAM  

2.CLUSTER :                          

‫‪ .از دﯾﺪﺳﺨﺖ اﻓﺰاري ﮐﻼﺳﺘﺮ وﺟﻮد ﺧﺎرﺟﯽ ﻧﺪارد و ﻓﻘﻂ در اﺳﺘﺎﻧﺪارد  FAT ﻓﺎﯾﻞ ﺳﯿﺴﺘﻢ ﺑﺠﺎي اﯾﻨﮑﻪ ﺑﺎ ﺳﮑﺘﻮرﻫﺎ ﮐﺎر ﮐﻨﺪ ﮐﻪ ﺗﻌﺪاد زﯾﺎدي ﻣﯽﺑﺎﺷﻨﺪ ﺑﺎ ﮐﻼﺳﺘﺮ ﮐﺎر ﻣﯽﮐﻨﺪ، و ﮐﻼﺳﺘﺮ ﺑﻪ ﻣﺠﻤﻮﻋﻪاي از ﺳﮑﺘﻮرﻫﺎ اﻃﻼق ﻣﯽﺷﻮد ﮐﻪ ﺑﺮاي ﻫﺮ ﻧﻮع ‪ FATاﻋﻢ از21‪ FAT32 ، FAT16 ، FATو ‪ NTFSﻣﺘﻔﺎوت و واﺑﺴﺘﻪﺑﻪ ﻇﺮﻓﯿﺖ ﺣﺎﻓﻈﻪ ﻣﯽﺑﺎﺷﺪ. در ﺟﺪول زﯾﺮ اﯾﻦﻣﻄﻠﺐ ﺑﻪ روﺷﻨﯽ ﻣﺸﺨﺺ ﺷﺪه

:

تصوير ۱

 از آﻧﺠﺎﯾﯽ ﮐﻪ ﻫﺮ ﺳﮑﺘﻮر در اﯾﻦ ﻧﻮع ﻣﻤﻮري 215 ﺑﺎﯾﺖ اﺳﺖ ﭘﺲ ﺑﻪ ﻃﻮر ﻣﺜﺎل ﺑﺮاي ﻇﺮﻓﯿﺖ921 ﻣﮕﺎﺑﺎﯾﺖ ﺗﺎ 652 ﻣﮕﺎﺑﺎﯾﺖ در  ‪. ﮐﻪ ﮐﻼﺳﺘﺮ ﺳﺎﯾﺰ 2 ﮐﯿﻠﻮﺑﺎﯾﺖ ذﮐﺮ ﺷﺪه ﯾﻌﻨﯽ4 ﺳﮑﺘﻮر. fat 32

‫ 3.(MBR :MBR (MASTER BOOT RECORD

‫‪ ﯾﮏ ﮐﺪ اﺟﺮاﯾﯽ ﮐﻮﭼﮑﯽ اﺳﺖ ﮐﻪ در ﺑﺨﺸﯽ از ﺣﺎﻓﻈﻪ ﻗﺮار ﻣﯽﮔﯿﺮد ﺗﺎ ﺳﯿﺴﺘﻢ از آن ﺑﻪ اﺻﻄﻼح ‪ BOOTﺷﻮد. در ﺷﮑﻞ زﯾﺮ ‫ﻧﺤﻮه ﺑﻮت ﺷﺪن ﯾﮏ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ را ﻣﻼﺣﻈﻪ ﻣﯽﮐﻨﯿﺪ:

تصوير 8-2 

4.اﺟﺰاي FAT در ‪ ﺟﺪول زﯾﺮ اﯾﻦ اﺟﺰا ﻣﺸﺨﺺ اﺳﺖ: 

ﻣﻔﺎﻫﯿﻢ ﮐﻠﯿﺪي:

‫‪ :SECTOR.1

ﻓﻀﺎي ﻣﻤﻮري ﮐﺎرتﻫﺎ ﯾﺎ ﻫﺎرد دﯾﺴﮏﻫﺎ ﺑﻪ ﺗﻌﺪادي ﺳﮑﺘﻮر ﺗﻘﺴﯿﻢﻣﯽﺷﻮﻧﺪ ﮐﻪ ﺑﺮاي ﻣﻤﻮري ﮐﺎرتﻫﺎي ‪ SDو ‪ MMCﺳﮑﺘﻮر ﺷﺎﻣﻞ 215 ﺑﺎﯾﺖ ﻣﯽﺑﺎﺷﺪ و ﻣﻤﻮري ﮐﺎرت در ﻫﻨﮕﺎم ﻧﻮﺷﺘﻦ و ﺧﻮاﻧﺪن ﺑﻄﻮر ﻣﺴﺘﻘﯿﻢ ﺑﺎ ﺑﺎﯾﺖﻫﺎ ﺳﺮ و ﮐﺎر ﻧﺪارد ﺑﻠﮑﻪ ﺑﺎ ﺳﮑﺘﻮرﻫﺎ ﮐﺎر ﻣﯽﮐﻨﺪ و‫ ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ ﺑﺮاي اﯾﻨﮑﻪ ﺑﺘﻮان ﺑﺸﮑﻞ ﻣﻌﻤﻮل ﺑﺎ ﻣﻤﻮري ﮐﺎر ﮐﺮد ﺑﻬﺘﺮ اﺳﺖ ﮐﻪ ﻣﯿﮑﺮوﮐﻨﺘﺮﻟﺮي اﺳﺘﻔﺎده ﮐﺮد ﮐﻪ از 215 ﺑﺎﯾﺖ ﺑﯿ ﺸﺘﺮ ‪ داﺷﺘﻪ ﺑﺎﺷﺪSRAM  

2.CLUSTER :                          

‫‪ .از دﯾﺪﺳﺨﺖ اﻓﺰاري ﮐﻼﺳﺘﺮ وﺟﻮد ﺧﺎرﺟﯽ ﻧﺪارد و ﻓﻘﻂ در اﺳﺘﺎﻧﺪارد  FAT ﻓﺎﯾﻞ ﺳﯿﺴﺘﻢ ﺑﺠﺎي اﯾﻨﮑﻪ ﺑﺎ ﺳﮑﺘﻮرﻫﺎ ﮐﺎر ﮐﻨﺪ ﮐﻪ ﺗﻌﺪاد زﯾﺎدي ﻣﯽﺑﺎﺷﻨﺪ ﺑﺎ ﮐﻼﺳﺘﺮ ﮐﺎر ﻣﯽﮐﻨﺪ، و ﮐﻼﺳﺘﺮ ﺑﻪ ﻣﺠﻤﻮﻋﻪاي از ﺳﮑﺘﻮرﻫﺎ اﻃﻼق ﻣﯽﺷﻮد ﮐﻪ ﺑﺮاي ﻫﺮ ﻧﻮع ‪ FATاﻋﻢ از21‪ FAT32 ، FAT16 ، FATو ‪ NTFSﻣﺘﻔﺎوت و واﺑﺴﺘﻪﺑﻪ ﻇﺮﻓﯿﺖ ﺣﺎﻓﻈﻪ ﻣﯽﺑﺎﺷﺪ. در ﺟﺪول زﯾﺮ اﯾﻦﻣﻄﻠﺐ ﺑﻪ روﺷﻨﯽ ﻣﺸﺨﺺ ﺷﺪه:

 از آﻧﺠﺎﯾﯽ ﮐﻪ ﻫﺮ ﺳﮑﺘﻮر در اﯾﻦ ﻧﻮع ﻣﻤﻮري 215 ﺑﺎﯾﺖ اﺳﺖ ﭘﺲ ﺑﻪ ﻃﻮر ﻣﺜﺎل ﺑﺮاي ﻇﺮﻓﯿﺖ921 ﻣﮕﺎﺑﺎﯾﺖ ﺗﺎ 652 ﻣﮕﺎﺑﺎﯾﺖ در  ‪. ﮐﻪ ﮐﻼﺳﺘﺮ ﺳﺎﯾﺰ 2 ﮐﯿﻠﻮﺑﺎﯾﺖ ذﮐﺮ ﺷﺪه ﯾﻌﻨﯽ4 ﺳﮑﺘﻮر. fat 32

‫ 3.(MBR :MBR (MASTER BOOT RECORD

‫‪ ﯾﮏ ﮐﺪ اﺟﺮاﯾﯽ ﮐﻮﭼﮑﯽ اﺳﺖ ﮐﻪ در ﺑﺨﺸﯽ از ﺣﺎﻓﻈﻪ ﻗﺮار ﻣﯽﮔﯿﺮد ﺗﺎ ﺳﯿﺴﺘﻢ از آن ﺑﻪ اﺻﻄﻼح ‪ BOOTﺷﻮد. در ﺷﮑﻞ زﯾﺮ ‫ﻧﺤﻮه ﺑﻮت ﺷﺪن ﯾﮏ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ را ﻣﻼﺣﻈﻪ ﻣﯽﮐﻨﯿﺪ:

    

ROOT DIRECTORY.5 :                               

‫‪ ﺑﻪ ﺷﺎﺧﻪ اﺻﻠﯽ ﻣﻤﻮري ﮐﺎرت‪ROOT DIRECTORY ﻣﯽﮔﻮﯾﻨﺪ ﮐﻪ در آن آدرس ﻓﺎﯾﻞﻫﺎ و ﻓﻮﻟﺪرﻫﺎي ﻣﻮﺟﻮد و ﻧﺎم و ﻣﺸﺨﺼﺎﺗﺸﺎن ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ.

در اداﻣﻪ ﺑﺮاي روﺷﻦ ﺷﺪن ﻣﻮﺿﻮع ، ﻫﺮ FAT را ‪ ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ ﺑﺮرﺳﯽ ﻣﯽﮐﻨﯿﻢ

FAT32   :

ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﮔﻔﺘﻪ ﺷﺪ در ﻣﻤﻮري ﮐﺎرتﻫﺎ ﺳﮑﺘﻮر ﺑﻮت ﻣﻌﻤﻮﻻ در ﺳﮑﺘﻮر ﺻﻔﺮ ﻗﺮار دارد.

‫اﯾﻦ ﺳﮑﺘﻮر ﺷﺎﻣﻞ اﻃﻼﻋﺎت اﺻﻠﯽ ﻓﻀﺎي ﺣﺎﻓﻈﻪ اﺳﺖ. در ﺷﮑﻞ زﯾﺮ اﻃﻼﻋﺎت ﻣﻮﺟﻮد در اﯾﻦ ﺳﮑﺘﻮر را ﮐﻪ ‫ﺑﺮاي ﺣﺎﻓﻈﻪ ﺧﺎﺻﯽ ﻧﻮﺷﺘﻪ ﺷﺪه ﻣﺸﺎﻫﺪه ﻣﯽﮐﻨﯿﺪ:      

توضيحات: از ﺑﺎﯾﺖ ﺻﻔﺮ ﺗﺎ ﺑﺎﯾﺖ دﻫﻢ اﯾﻦ ﻓﻀﺎ اﻃﻼﻋﺎﺗﯽ از ﺷﺮﮐﺖ ﻣﻮرد ﻧﻈﺮ وﺟﻮد دارد ﮐﻪ در اﯾﻨﺠﺎ ‪     MSDOS5.0 را ﻣﻼﺣﻈﻪ ﻣﯽﮐﻨﯿﺪ.

Reserved sector :

اﯾﻦ داده دوﺑﺎﯾﺘﯽ ﻧﺸﺎن دﻫﻨﺪه آدرس ﺷﺮوع fat ﻣﯽﺑﺎﺷﺪ در واﻗﻊ اﯾﻦ آدرس ﻣﺤﻞﺷﺮوع ﺟﺪول ﺗﺨﺼﯿﺺ ﺣﺎﻓﻈﻪ ﯾﺎ memory allocation tableﻣﯽﺑﺎﺷﺪ ﮐﻪ ﻣﻬﻤﺘﺮﯾﻦ ﺑﺨﺶ ﻓﻀﺎي ﺣﺎﻓﻈﻪ ﺑﻮده و در اداﻣﻪ ﺗﻮﺿﯿﺢ داده ﺧﻮاﻫﺪ ﺷﺪ.‫

‫‪ ‪‪  ‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻨﮑﻪ ﺑﯿﺸﺘﺮ ﻣﻮاﻗﻊ آدرس ﺳﮑﺘﻮر اﺻﻠﯽ ﺻﻔﺮ اﺳﺖ ﺑﻄﻮر ﻣﻌﻤﻮل آدرس ﺷﺮوع  fatﻧﯿﺰ ‪ﻫﻤﯿﺸﻪ 36 ﻣﯽﺑﺎﺷﺪ. اﻟﺒﺘﻪ اﯾﻦ آدرس در ﻣﻮاردي ﮐﻪ ﺷﺮﮐﺖ راهاﻧﺪاز ﻧﯿﺎز ﺑﻪ ﻗﺮار دادن اﻃﻼﻋﺎﺗﯽ دور از دﺳﺘﺮس ﮐﺎرﺑﺮان ﺧﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﻓﺮق ﺧﻮاﻫﺪ ﮐﺮد اﻣﺎ اﮔﺮ ﻣﻤﻮري ﺑﺮاي ﮐﺎر ﺑﺎ وﯾﻨﺪوز ﻃﺮاﺣﯽ ﺷﺪه ﺑﺎﺷﺪ اﯾﻦ آدرس ﻫﻤﯿﺸﻪ 36 اﺳﺖ.

Number of FAT :

اﯾﻦ داده ﯾﮏ ﺑﺎﯾﺘﯽ ﺑﻮده و ﺗﻌﺪاد fat های ﻣﻮﺟﻮد در ﻣﻤﻮري را ﻧﺸﺎن ﻣﯽ دﻫﺪ و ﺑﻪ ﻃﻮر ﻣﻌﻤﻮل ﺣﺎوي ﻋﺪد 2 ﺑﻮده ﮐﻪ ﻧﺸﺎﻧﮕﺮ دو fat در مموری است که همانطور که قبلا گفته شدfat دوم برای بازیابی اطلاعات است که به دلایل نامعلومی از آن استفاده نمی شود. 

 روش ﮐﺎر ﺑﻪ ﺻﻮرﺗﯽ اﺳﺖ ﮐﻪ ﻓﺎﯾﻞﻫﺎ و ﻓﻮﻟﺪرﻫﺎ ﻫﻢ  fatاول هم در fat دوم ﺗﺨﺼﯿﺺ و آدرس دﻫﯽ ﻣﯽﺷﻮﻧﺪ اﻣﺎ در ﻫﻨﮕﺎم ﭘﺎك ﮐﺮدن ﯾﺎ ﻓﺮﻣﺖ ﺳﺮﯾﻊﯾﺎ quick formatﻓﻘﻂ fatاول ﭘﺎك ﺷﺪه و fatدوم  ‪ ‪  ‪ ﺗﺎ زﻣﺎﻧﯿﮑﻪ ﻓﺎﯾﻞ ﯾﺎ ﻓﻮﻟﺪر ﺟﺪﯾﺪي اﯾﺠﺎد ﻧﺸﻮد اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ دادهﻫﺎي ﻗﺒﻠﯽ را دارد ﭘﺲ ﻣﯽﺗﻮان ﺑﺎ رﺟﻮع ﺑﻪ ‪  

 fat دوم اﻃﻼﻋﺎت از دﺳﺖ رﻓﺘﻪ را ﺑﺎزﮔﺮداﻧﺪ اﻣﺎ ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﮔﻔﺘﻪ ﺷﺪ اﯾﻦ روش اﺳﺘﻔﺎده ﻧﻤﯽﺷﻮد و در ﻫﻨﮕﺎم‫ ﭘﺎك ﮐﺮدن ﯾﺎ ﻓﺮﻣﺖ ﺳﺮﯾﻊ ﻫﺮ دو ‪ fatﭘﺎك ﻣﯽﺷﻮﻧﺪ.

‫ :Root cluster number

‫‪ از آﻧﺠﺎﯾﯽ ﮐﻪﺷﺎﺧﻪ اﺻﻠﯽ ﻣﻤﮑﻦ اﺳﺖ ﻓﺎﯾﻞ و ﻓﻮﻟﺪرﻫﺎي زﯾﺎدي را در ﺧﻮد ﺟﺎي دﻫﺪ ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ اﯾﻦ ﺷﺎﺧﻪ ﺷﺎﻣﻞ ﭼﻨﺪ ﮐﻼﺳﺘﺮ اﺳﺖ ﮐﻪ در اﯾﻦ داده اﯾﻦ ﺗﻌﺪاد ﻣﺸﺨﺺ ﻣﯽﺷﻮد.

 ﻃﻮل اﯾﻦ داده ﭼﻬﺎر ﺑﺎﯾﺖ اﺳﺖ و ﺑﻪ ﻗﻮل ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ ﺑﻄﻮر ﻣﻌﻤﻮل ﺷﺎﻣﻞ ﻋﺪد 2 اﺳﺖ ﯾﻌﻨﯽ ﺷﺎﺧﻪ اﺻﻠﯽ دو ﮐﻼﺳﺘﺮ اﺳﺖ.

‪ SD[1]/MMC[2]

 اﯾﻦ ﻧﻮع ﺣﺎﻓﻈﻪﻫﺎ ﮐﻪ از ﻧﻮع  FLASH ﻣﯽﺑﺎﺷﻨﺪ و ﺑﻪ ﺻﻮرت ﻣﺮﺳﻮم در دﺳﺘﮕﺎهﻫﺎي ﻗﺎﺑﻞ ﺣﻤﻠﯽ ﻣﺎﻧﻨﺪ ‪ MP3 PLAYERﻫﺎ ،COOL DISK ﻫﺎ و ﻣﻮﺑﺎﯾﻞﻫﺎ اﺳﺘﻔﺎده ﻣﯽﺷﻮﻧﺪ.

 از ﺧﺼﻮﺻﯿﺎت ﺑﺎرز آن ﻣﯽﺗﻮان ﺑﻪ ﺳﺮﻋﺖ ﺑﺎﻻ و ﺣﺠﻢ ﺑﺴﯿﺎر ﺑﺎﻻي آن اﺷﺎره ﮐﺮد. اﯾﻦ ﺣﺠﻢ ﺑﺎﻻ ﮐﻪ از ﭼﻨﺪﯾﻦﻣﮕﺎﺑﺎﯾﺖ ﺗﺎ ﭼﻨﺪﯾﻦ ﮔﯿﮕﺎﺑﺎﯾﺖ ﻣﯽﺑﺎﺷﺪ ﺑﻪ ﻫﻤﺎن ﻗﺪر ﮐﻪ ﺑﺮاي ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪﮔﺎن اﯾﻦ دﺳﺘﮕﺎهﻫﺎ وﺳﻮﺳﻪ اﻧﮕﯿﺰ اﺳﺖ ﮐﻪﺑﺮاي ﻣﻬﻨﺪﺳﺎن اﻟﮑﺘﺮوﻧﯿﮏ. ﺷﺎﯾﺪ دﻟﯿﻞﻋﻤﺪه اﯾﻦ ﺗﻮﺟﻪ از ﻃﺮف ﻣﻬﻨﺪﺳﺎن اﻟﮑﺘﺮوﻧﯿﮏ ﻓﻀﺎي زﯾﺎدي ﺑﺎﺷﺪ ﮐﻪ در ﻫﯿﭻ ﻣﺪار ﻣﯿﮑﺮوﮐﻨﺘﺮﻟﺮي ﺑﻪ آندﺳﺘﺮﺳﯽ ﻧﺪارﻧﺪ.

 اﻟﺒﺘﻪ ﻗﻄﻌﺎت ﻣﺨﺘﻠﻔﯽ ﺑﺮاي رﻓﻊ اﯾﻦ ﻧﯿﺎز ﻣﺎﻧﻨﺪ ﺧﺎﻧواده ‪ AT45DBXXXاز ﺷﺮﮐﺖ اﺗﻤﻞ ﺗﻮﻟﯿﺪﺷﺪ ﮐﻪ ﻧﻮﻋﯽ ‪  FLASH ﺑﻮده وﻟﯽ از ﻟﺤﺎظ ﻇﺮﻓﯿﺖ ﻫﺮﮔﺰ ﺑﻪ ﮔﺮد ‪ SDﯾﺎ ‪ MMCﻧﺨﻮاﻫﻨﺪ رﺳﯿﺪ. وﯾﮋﮔﯽ ﺑﺎرز دﯾﮕﺮ اﯾﻦ ﺣﺎﻓﻈﻪ ﻗﺎﺑﻠﯿﺖ ﭘﺸﺘﯿﺒﺎﻧﯽ از اﺳﺘﺎﻧﺪاردﻫﺎي ‪ FATاﺳﺖ ﮐﻪ ﺑﺎ اﯾﻦ وﯾﮋﮔﯽاﻣﮑﺎن دﺳﺘﺮﺳﯽ ﺑﻪ دادهﻫﺎ در ﮐﺎﻣﭙﯿﻮﺗﺮ ﺑﻮﺟﻮد ﻣﯽآﯾﺪ.

‫ ‪

 ﺑﺮرﺳﯽ مموري ﮐﺎرت از دﯾﺪ ﺳﺨﺖ افزاري :

SD و ‪  MMCﺗﻨﻬﺎ از ﻧﻈﺮ ﺳﺮﻋﺖ و ‫ ﺣﺠﻢ ﺑﺎﻓﺮ ﺑﺎ ﻫﻢ ﺗﻔﺎوت دارﻧﺪ وﻟﯽ از ﻧﻈﺮ ﻧﻮع ﻓﻀﺎ و آدرس دﻫﯽﻫﺎ و... ﺑﺎ ﻫﻢ ﻓﺮﻗﯽ ﻧﺪارﻧﺪ. ﭘﺮوﺗﮑﻞ ارﺗﺒﺎﻃﯽ ﻣﻤﻮري ﺑﻪ دو ﺷﮑﻞ ‪ IDE MODEﯾﺎ ارﺗﺒﺎط ﻣﻮازي ﭼﻬﺎرﺑﯿﺘﯽ و ﻧﻮع ‪ SPI MODE ﯾﺎ ارﺗﺒﺎط ﺳﺮﯾﺎل ﺳﻨﮑﺮون ﻣﯽﺑﺎﺷﺪ ﮐﻪ ﻣﺘﺎﺳﻔﺎﻧﻪ ﻣﻄﺎﻟﺐ زﯾﺎدي درﺑﺎره ﻧﻮع اول ﻣﻮﺟﻮد ﻧﯿﺴﺖ اﻣﺎ ﻧﻮع دوم ارﺗﺒﺎط ﻣﺮﺳﻮﻣﯽ در ﻣﯿﮑﺮوﮐﻨﺘﺮﻟﺮﻫﺎﺳﺖ.

‫اﯾﻦ ﭘﺮوﺗﮑﻞ ارﺗﺒﺎﻃﯽ ﺑﻪ ﻃﻮر ﻣﻌﻤﻮل داراي ﺳﻪ ﺧﻂ اﺻﻠﯽ ارﺗﺒﺎﻃﯽ ﻣﯽﺑﺎﺷﺪ ﮐﻪ ﯾﮑﯽ از اﯾﻦ ﺳﻪ ﺧﻂ وﻇﯿﻔﻪ ارﺳﺎل داده، دﯾﮕﺮي درﯾﺎﻓﺖ داده و ﺧﻂ ﺳﻮم ﺣﺎﻣﻞ ﮐﻼك ﻣﯽﺑﺎﺷﺪ.

‫ در اﯾﻦارﺗﺒﺎط ﻃﺮﻓﯿﻦ در دو ﺣﺎﻟﺖ ﻗﺮار ﻣﯽﮔﯿﺮﻧﺪ ﯾﮑﯽ ‪ MASTERﮐﻪ ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪه ﭘﺎﻟﺲ و ﺣﺎﻟﺖ دوم

 SLAVEﮐﻪ ﻫﯿﭽﮕﻮﻧﻪ اﻋﻤﺎﻟﯽ روي ﮐﻼك اﻧﺠﺎم ﻧﻤﯽدﻫﺪ و ﻓﻘﻂ درﯾﺎﻓﺖ ﮐﻨﻨﺪه آن اﺳﺖ. 
در اﯾﻦ ارﺗﺒﺎط ﯾﮏ ﺧﻂ ﻧﯿﺰ ﺣﺎﻣﻞ ﺳﯿﮕﻨﺎل ‪ SSﯾﺎ ‪ SLAVE SELECTﻣﯽﺑﺎﺷﺪ ﮐﻪ ﺑﺎ ﻓﻌﺎل ﺷﺪن آن ﺳﯿﺴﺘﻢ درﯾﺎﻓﺖ ﮐﻨﻨﺪه اﯾﻦ ﺳﯿﮕﻨﺎل ﺑﻪ ﻣﺪ ‪ SLAVEﻣﯽرود اﻣﺎ اﯾﻦ ﺧﻂ ﺑﻪ ﺻﻮرت ‪ OPTIONALﯾﺎ اﺧﺘﯿﺎري

‫اﺳﺖ و در اﮐﺜﺮ ﻣﻮارد ﻧﯿﺎزي ﺑﻪ آن ﻧﯿﺴﺖ. در ارﺗﺒﺎط ﺑﺎ ﻣﻤﻮري ﮐﺎرتﻫﺎ اﯾﻦ ﺧﻂ ﺑﻪ ﻧﻮﻋﯽ ﺑﻌﻨﻮان ‪ CSﯾﺎ

CHIP SELECT ﺑﻪ ﮐﺎر ﻣﯽرود.

در ﺷﮑﻞ زﯾﺮ ﯾﮏ ﻧﻤﻮدار ﺳﯿﮕﻨﺎﻟﯽ اﯾﻦ ارﺗﺒﺎط را ﻣﺸﺎﻫﺪه ﻣﯽﮐﻨﯿﺪ:

 ﻧﮑﺘﻪ ﻣﻬﻢ دﯾﮕﺮ اﯾﻨﮑﻪ در اﯾﻦ ارﺗﺒﺎط ﻣﯽﺗﻮان اﻧﺘﺨﺎب ﮐﺮد ﮐﻪ اﺑﺘﺪا ‪ MSBارﺳﺎل ﺷﻮد ﯾﺎ ‪ LSBﮐﻪ در ﺑﺤﺚﻣﻤﻮري ﮐﺎرت ‪ MSBاﺑﺘﺪا ارﺳﺎل ﻣﯽﺷﻮد.

شکل زیر ساختار درونی MMC را نشان میدهدکه از بلوکهایی جداگانه تشکیل شده است.همه این بلوکها به وسیله یک اسیلاتور داخلی کلاک می خورند.چون MMC دارای اوسیلاتور داخلی با فرکانس مشخص میباشد بنا براین برای انتقال داده توسط خطوط ( CMD دستور) و ( DAT داده) باید فرکانس اسیلاتور داخلی با فرکانس خط( CLK کلاک) که توسط( Host کنترلر) بوجود میاید سنکرون (همزمان) شود.این کار توسط واحد Interface driver انجام میشود. 

 

MMc ها به وسیله سه پین )خط داده ( CMD,DAT.CLK کنترل میشوند که هر یک از این خطوط داده کار خاصی را در طول انتقال داده انجام میدهند.

همچنین MMCها دارای چهار رجیستر داخلی هستند که از این رجیستر ها برای شناسایی و یک سری از خصوصیات MMC استفاده میشود.این رجیستر ها عبارنتد از:

OCR  یا(Operation Condition Register) :

این رجیستر رنج ولتاژهایی را که توسط کارت پشتیبانی میشود نشان میدهد.

CID یا (Card Identification) :

این رجیستر , رجیستر شناسایی کارت میباشد.

CSD یا (Card specific):

این رجیستر , رجیستر تعیین داده میباشد.

RCA یا  (Rela Card Address) :  
رجیستر تخصیص آدرس برای انتقال داده ها بین Host و mmc میباشد.

MMC   برای انتقال داده از دو پروتکل پشتبانی می کند یا به عبارت دیگر به دو روش mode می توان داده ها را بین MMC و Host تبادل کرد که عبارتند از:

      1.            Multimedia Mode یا MMC Mode

      2.            Serial Peripheral Interface یا SPI Mode

 
 
MMc Mode : 
در این مد برای انتقال داده از کمترین خط داده استفاده شده است که عبارتند از :
CLK  :با هر دوره تناوب از سیگنال ورودی به این پین یک بیت داده بر روی خط DAT یا CMD جا به جا میشود.فرکانس این خط میتواند از صفر تا ماکزیمم فرکانس ممکنهباشد و این فرکانس میتواند در حین انتقال داده تغيیر کند

CMD : این خط یک خط داده دو طرفه است که برای فعال کردن MMC و دستور انتقال داده و پاسخ مورد استفاده قرار میگیرد.این خط به دو روش عمل میکند.

 Open Drain Mode : برای فعال کردن MMC
Push Pull Mode : برای انتقال سریع داده دستور همیشه توسطHost  يا مستر ارسال مي شود اما پاسخ توسط MMC فرستاده میشود.
DAT : این خط یک خط داده دو طرفه است و برای انتقال داده که باید بروی حافظه ذخیره یا از حافظه خوانده شودمورد استفاده قرار میگیرد.
‫ﺗﻐﺬﯾﻪ ﻣﻤﻮري ﺑﯿﻦ  2.7 وﻟﺖ ﺗﺎ  3.6وﻟﺖ ﻣﯽﺑﺎﺷﺪ ﮐﻪ ﺑﺮاي اﻃﻤﯿﻨﺎن از ﺻﺤﺖ ﮐﺎر آن ﺗﻮﺻﯿﻪ ﺷﺪه ﺑﺎ‬ وﻟﺘﺎژ 3.6  وﻟﺖ ﺗﻐﺬﯾﻪ ﺷﻮد و ﺣﺎﻓﻈﻪ ﺑﺴﯿﺎر ﺑﻪ وﻟﺘﺎژ ﮐﺎري ﺧﻮد ﺣﺴﺎس اﺳﺖ و اﻣﮑﺎن آﺳﯿﺐ دﯾﺪن آن‬ ﺑﺪﻟﯿﻞ اﺿﺎﻓﻪ وﻟﺘﺎژ و ﻧﻮﯾﺰ ﺑﺴﯿﺎر زﯾﺎد اﺳﺖ.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
ﻓﺮﮐﺎﻧﺲ ﮐﺎري ﺣﺎﻓﻈﻪ در ﻣﺪ ‪ SPI‬ﺗﺎ 50 ﻣﮕﺎﻫﺮﺗﺰ ﺑﻮده و در‬ اﯾﻦ ﭘﺮوژه ﮐﻪ ﺑﺎ ﻣﯿﮑﺮوﮐﻨﺘﺮﻟﺮ ‪ AVR‬اﻧﺠﺎم ﺷﺪه ﻓﺮﮐﺎﻧﺲ ﮐﺎري ﺣﺪاﮐﺜﺮ 16 ﻣﮕﺎﻫﺮﺗﺰ ﻣﯽﺑﺎﺷﺪ.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
‫ﻧﮑﺘﻪ: ﺑﺮاي ارﺳﺎل ﻫﺮ داده ﯾﺎ دﺳﺘﻮر ﺑﻪ ﻣﻤﻮري ﺑﺎﯾﺪ اﺑﺘﺪا ‪ CS‬ﻓﻌﺎل ﺷﻮد ﺑﺠﺰ ﻣﻮاردي ﮐﻪ ذﮐﺮ ﺧﻮاﻫﺪ‬ ‫ﺷﺪ.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
ﻧﮑﺘﻪ: اﯾﻦ ﻧﻮع ﺣﺎﻓﻈﻪ ﺷﺎﻣﻞ ﭼﻨﺪﯾﻦ ﺳﮑﺘﻮر اﺳﺖ ﮐﻪ ﻫﻤﻪ ﺳﮑﺘﻮرﻫﺎ در ﻫﻤﻪ اﻧﻮاع ﻣﻤﻮري ﮐﺎرت512  ﺑﺎﯾﺖ اﺳﺖ.‬
 
‫ﻧﺤﻮه ارﺗﺒﺎط:‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
‫1. رﯾﺴﺖ:
 ﺑﺮاي راه اﻧﺪازي ﺣﺎﻓﻈﻪ اﺑﺘﺪا ﺑﺎﯾﺪ از ﻧﻈﺮ ﺳﺨﺖاﻓﺰاري رﯾﺴﺖ ﺷﻮد. ﺑﺮاي اﯾﻨﮑﺎر‬ ﻣﺨﺎﻟﻒ ﻫﻤﻪ دﺳﺘﻮرﻫﺎ ﺑﺎﯾﺪ ‪ CS‬ﻏﯿﺮ ﻓﻌﺎل ﺷﻮد ﺳﭙﺲ ده ﺑﺎر ﻋﺪد ‪ 0XFF‬از ﻃﺮﯾﻖ ‪ SPI‬ﺑﻪ‬ ﻣﻤﻮري ارﺳﺎل ﺷﻮد. ﺑﻼﻓﺎﺻﻠﻪ ﻋﺪد ‪0X40 ‬ ﮐﻪ دﺳﺘﻮر ‪ RESET‬ﻣﯽﺑﺎﺷﺪ ارﺳﺎل و ﭼﻬﺎر ﺑﺎر ﻋﺪد‬ 0X00  ارﺳﺎل ﺷﻮد. در اداﻣﻪ ﻋﺪد 0X95‪ ‬ارﺳﺎل ﺷﻮد و ﺗﺎ زﻣﺎﻧﯿﮑﻪ ﻋﺪد 0X01‪ ‬از ﻃﺮف‬ ﻣﻤﻮري درﯾﺎﻓﺖ ﻧﺸﺪ ﺑﻪ ﻣﻤﻮري ﻋﺪد ‪ 0XFF‬ارﺳﺎل ﺷﻮد.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
‫2.مقدار دهي اوليه ‪ :INITIALIZATION MEMORY‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
ﺑﺮاي ‪ INIT‬ﮐﺮدن ﻣﻤﻮري اﺑﺘﺪا ‪ CS‬را ﻓﻌﺎل‬ ﮐﺮده و ﻋﺪد 0X41‪ ‬را ارﺳﺎل ﻣﯽﮐﻨﯿﻢ و ﺑﻼﻓﺎﺻﻠﻪ ﭼﻬﺎر ﺑﺎر ﺻﻔﺮ را ارﺳﺎل ﮐﺮده و ﺗﺎ زﻣﺎﻧﯿﮑﻪ از‬ ﻃﺮف ﻣﻤﻮري ﻋﺪد 0X00‬ درﯾﺎﻓﺖ ﻧﺸﺪ ﺑﻪ ﻣﻤﻮري ﻋﺪد ‪ 0XFF‬را ارﺳﺎل ﻣﯽﮐﻨﯿﻢ.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
‫‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
‫3. ﺧﻮاﻧﺪن ﯾﮏ ﺳﮑﺘﻮر از ﻣﻤﻮري: ‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
ﺑﻌﺪ از ﻓﻌﺎل ﺷﺪن ‪ CS‬و ﻋﺪد 0X15‪ ‬را ﺑﻪ آن ارﺳﺎل ﻣﯽﮐﻨﯿﻢ و ﺑﻪ ﺻﻮرت ‪ BIG INDIAN‬دو ﺑﺮاﺑﺮ آدرس ﻣﻮرد ﻧﻈﺮ را ﺑﻪ ﻣﻤﻮري ارﺳﺎل ﮐﺮده و ﯾﮏ‬ ﺑﺎر ﻋﺪد 0X00‪ ‬را ارﺳﺎل ﮐﺮده و ﺗﺎ زﻣﺎﻧﯿﮑﻪ ﻋﺪد ‪  0XFE‬را درﯾﺎﻓﺖ ﻧﮑﺮدﯾﻢ ﺑﻪ ﻣﻤﻮري ﻋﺪد‬ 0XFF‬را ارﺳﺎل ﻣﯽﮐﻨﯿﻢ. در اﯾﻦ ﻟﺤﻈﻪ ﻣﻤﻮري آﻣﺎده ارﺳﺎل دادهﻫﺎي ﻣﻮﺟﻮد در ﺳﮑﺘﻮر ﻣﻮرد‬ ﻧﻈﺮ ﺑﻮده و ﺑﺎ ﻫﺮ ﺑﺎر ارﺳﺎل ‪ 0XFF‬ﯾﮑﯽ از 512 ﺑﺎﯾﺖ را ارﺳﺎل ﻣﯽﮐﻨﺪ.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
‫‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

‫ ‫4. ﻧﻮﺷﺘﻦ در ﯾﮏ ﺳﮑﺘﻮر:
 ﺑﺮاي ﻧﻮﺷﺘﻦ در ﯾﮏ ﺳﮑﺘﻮر اﺑﺘﺪا ﻋﺪد0X58  ارﺳﺎل ﺷﺪه ﺳﭙﺲ دو‬ ‬ ﺑﺮاﺑﺮ آدرس ﺳﮑﺘﻮر ﻣﻮرد ﻧﻈﺮ ارﺳﺎل و ﺳﻪ ﺑﺎر  0XFF و يك بار 0XFE ارسال شده در اين لحظه مي توان 512 بايت داده را ارسال كرد بعد از اين داده ها دو بار 0XFF ارسال مي شود و مي توان CS را غير فعال كرد. البته در اين پروژه تنها خواندن اطلاعات نياز است.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

بازدید 226797 بار
+