999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FAT32文件系統(tǒng)的SD卡數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)研究

2012-11-21 09:51:17李文華徐國(guó)洪胡華文
關(guān)鍵詞:分配

李文華,徐國(guó)洪,胡華文

(仙桃職業(yè)學(xué)院機(jī)械電子工程學(xué)院,湖北 仙桃 433000)

基于FAT32文件系統(tǒng)的SD卡數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)研究

李文華,徐國(guó)洪,胡華文

(仙桃職業(yè)學(xué)院機(jī)械電子工程學(xué)院,湖北 仙桃 433000)

SD卡是嵌入系統(tǒng)中首選的外部數(shù)據(jù)存儲(chǔ)器,為使嵌入式系統(tǒng)中存儲(chǔ)在SD卡上的數(shù)據(jù)可以被計(jì)算機(jī)識(shí)別和處理,詳細(xì)討論了基于FAT32文件系統(tǒng)的SD卡中主引導(dǎo)記錄區(qū)、引導(dǎo)扇區(qū)、文件分配表區(qū)、文件目錄表區(qū)和文件數(shù)據(jù)區(qū)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),并給出了各區(qū)域的訪問(wèn)方法。

SD卡;FAT32;文件系統(tǒng);數(shù)據(jù)存儲(chǔ)

SD卡是一種外部存儲(chǔ)器,具有體積小、容量大、功耗低、非易失等特點(diǎn),廣泛地應(yīng)用于嵌入式系統(tǒng)中,作海量數(shù)據(jù)存儲(chǔ)之用。運(yùn)用SD卡存儲(chǔ)數(shù)據(jù)時(shí),一般是采取基于文件系統(tǒng)的方式存儲(chǔ)數(shù)據(jù),以便保存在SD卡中的數(shù)據(jù)可被計(jì)算機(jī)直接訪問(wèn)和處理,高容量的SD卡一般選用FAT32文件系統(tǒng)。下面,筆者詳細(xì)地討論基于FAT32文件系統(tǒng)的SD卡數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。

1 SD卡數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)

圖1 SD卡數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)

用FAT32格式對(duì)SD卡格式化后,SD卡被劃分為主引導(dǎo)記錄區(qū)、隱藏扇區(qū)、引導(dǎo)扇區(qū)、保留扇區(qū)、文件分配表(FAT)區(qū)和數(shù)據(jù)區(qū)6部分,這6部分的起始位置固定。其中,數(shù)據(jù)區(qū)又分為文件目錄表(FDT)區(qū)和文件的數(shù)據(jù)區(qū)2部分,這2部分分散地分布在數(shù)據(jù)區(qū)中,它們的起始位置隨著文件的建立而隨機(jī)分配?;贔AT32文件系統(tǒng)的SD卡數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)如圖1所示。其中,主引導(dǎo)記錄區(qū)、隱藏扇區(qū)、引導(dǎo)扇區(qū)、保留扇區(qū)這4個(gè)區(qū)域是以扇區(qū)為單位進(jìn)行分配的,文件分配表區(qū)、文件目錄表區(qū)、文件的數(shù)據(jù)區(qū)這3個(gè)區(qū)域是以簇為單位進(jìn)行分配的,1簇由若干個(gè)扇區(qū)組成,其扇區(qū)數(shù)由引導(dǎo)扇區(qū)中偏移地址0DH單元的內(nèi)容給定。

基于FAT32文件系統(tǒng)的SD卡中,文件的數(shù)據(jù)區(qū)用來(lái)存放文件的內(nèi)容,文件的內(nèi)容是以簇為單位按鏈?zhǔn)浇Y(jié)構(gòu)存放的;文件目錄表(FDT)用來(lái)存放文件的文件名、文件大小、文件內(nèi)容存放的起始位置(起始簇的簇號(hào))等信息;文件分配表(FAT)用來(lái)存放文件所分配簇的簇號(hào)。SD卡中,引導(dǎo)扇區(qū)中記錄了FAT的起始位置、FAT的大小和個(gè)數(shù)、SD卡中的簇的大小、數(shù)據(jù)區(qū)的起始位置等FAT32文件系統(tǒng)的訪問(wèn)信息;主引導(dǎo)記錄區(qū)中保存著引導(dǎo)扇區(qū)的起始位置和SD卡的容量大小。

2 SD卡中FAT32文件系統(tǒng)的訪問(wèn)參數(shù)

FAT32文件系統(tǒng)的訪問(wèn)參數(shù)保存在主引導(dǎo)記錄區(qū)和引導(dǎo)扇區(qū)中,這2個(gè)區(qū)域的大小都是1扇區(qū)(512字節(jié))。其中主引導(dǎo)記錄區(qū)是SD卡的0扇區(qū),其物理扇區(qū)地址為0扇區(qū),共有11個(gè)字節(jié)與文件系統(tǒng)的訪問(wèn)相關(guān),其作用如表1所示。引導(dǎo)扇區(qū)也叫邏輯0扇區(qū),其扇區(qū)地址存放在物理0扇區(qū)的1C6H~1C9H單元中。引導(dǎo)扇區(qū)中,F(xiàn)AT32文件系統(tǒng)的配置信息如表2所示。

表1 主引導(dǎo)記錄區(qū)中與訪問(wèn)文件系統(tǒng)相關(guān)的信息

表2 引導(dǎo)扇區(qū)中FAT32文件系統(tǒng)的配置信息

3 文件分配表的結(jié)構(gòu)

文件分配表(FAT)的功能是保存每個(gè)文件所分配簇的簇號(hào),F(xiàn)AT32文件系統(tǒng)的簇號(hào)為32位的二進(jìn)制數(shù),需用4個(gè)字節(jié)的存儲(chǔ)單元保存。每個(gè)簇號(hào)對(duì)應(yīng)文件分配表上的一個(gè)點(diǎn),第i簇(i=0、1、2、…)在文件分配表上的偏移地址為4i、4i+1、4i+2、4i+3,這4個(gè)字節(jié)單元存儲(chǔ)的是文件的下一簇的簇號(hào)(這4個(gè)單元的內(nèi)容叫簇項(xiàng)值)。其中,文件最后一個(gè)簇號(hào)的簇項(xiàng)值是文件結(jié)束標(biāo)記0FFFFFFFH,文件分配表的存儲(chǔ)結(jié)構(gòu)如圖2所示。SD卡的第0簇、第1簇為保留簇(文件分配表占用了這2個(gè)簇),從第2簇開(kāi)始的簇為可用簇。第0簇的簇項(xiàng)值固定為0FFFFFF8H,第1簇的簇項(xiàng)值固定為0FFFFFFFH。

圖2 文件分配表的存儲(chǔ)結(jié)構(gòu)

一個(gè)文件的所有簇的簇號(hào)按其先后順序排列就構(gòu)成了該文件的簇號(hào)鏈。設(shè)某個(gè)文件的內(nèi)容依次存放在第i簇、第j簇、第k簇、…、第m簇中(第i簇為文件的起始簇,第m簇為文件的最后一簇,文件的簇號(hào)鏈為i→j→k→……→m),文件的簇號(hào)鏈存儲(chǔ)方法是:起始簇號(hào)i保存在文件目錄表(FDT)中,其他簇號(hào)保存在文件分配表中。在文件分配表中,第i簇的地址單元(4i~4i+3)中保存文件的第2簇的簇號(hào)j,j簇的地址單元(4j~4j+3)中保存文件的第3簇的簇號(hào)k,…,第m簇的地址單元(4m~4m+3)中保存文件的結(jié)束標(biāo)志0FFFFFFFH,如圖3所示。

圖3 文件的簇號(hào)鏈

4 文件目錄表的結(jié)構(gòu)

文件目錄表位于數(shù)據(jù)區(qū)中,分為根目錄表和子目錄表2類,它們的結(jié)構(gòu)相同,都是由若干個(gè)目錄登記項(xiàng)組成,每個(gè)目錄登記項(xiàng)對(duì)應(yīng)一個(gè)文件或者目錄,用來(lái)保存文件或者目錄的名字以信文件內(nèi)容或者子目錄表存放的起始位置等信息。FAT32文件系統(tǒng)的目錄登記項(xiàng)分為短文件名目錄登記項(xiàng)和長(zhǎng)文件名目錄登記項(xiàng)2種,文件目錄表的結(jié)構(gòu)如圖4所示。

圖4 文件目錄表的結(jié)構(gòu)

短文件名目錄登記項(xiàng)由32字節(jié)組成,這32字節(jié)的定義如圖4右邊部分所示。

長(zhǎng)文件名目錄登記項(xiàng)由1個(gè)短文件名目錄登記項(xiàng)和若干個(gè)目錄碎片登記項(xiàng)組成。其中,短文件名目錄登記項(xiàng)存放文件名開(kāi)始幾個(gè)字符的ASCII碼(若文件名為漢字,則是存放漢字的內(nèi)碼,下同。)、文件的擴(kuò)展名、屬性、創(chuàng)建時(shí)間和日期、起始簇、文件大小等信息。目錄碎片登記項(xiàng)用來(lái)存放長(zhǎng)文件名(含文件的主文件名、園點(diǎn)、文件擴(kuò)展名,下同)字符的Unicode編碼以及目錄碎片的順序號(hào),每個(gè)目錄碎片登記項(xiàng)32個(gè)字節(jié),存放13個(gè)Unicode編碼。目錄碎片登記項(xiàng)的定義如圖4左邊部分所示。

目錄碎片登記項(xiàng)的個(gè)數(shù)與長(zhǎng)文件名的字符數(shù)相關(guān)。設(shè)長(zhǎng)文件名的字符數(shù)為m(每個(gè)漢字計(jì)1個(gè)字符,若無(wú)擴(kuò)展名,則不計(jì)園點(diǎn)),則目錄碎片登記項(xiàng)的個(gè)數(shù)為:

n個(gè)目錄碎片登記項(xiàng)按照第n-1、n-2、…、1、0個(gè)目錄碎片登記項(xiàng)的順序依次連續(xù)地存放長(zhǎng)文件名字符的Unicode編碼。第n-1個(gè)目錄碎片登記項(xiàng)存放的是最開(kāi)始的13字符的Unicode編碼,第0個(gè)目錄碎片登記項(xiàng)中存放的是最后m%13個(gè)字符的Unicode編碼。第0個(gè)目錄碎片登記項(xiàng)的00H(碎片順序號(hào))單元的內(nèi)容為40H+n。第i個(gè)(i≠0)目錄碎片登記項(xiàng)的00H單元的內(nèi)容為目錄碎片登記項(xiàng)的編號(hào)i。

圖5 目錄樹(shù)型結(jié)構(gòu)

FAT32文件系統(tǒng)的目錄呈樹(shù)型結(jié)構(gòu),如圖5所示。目錄表中,子目錄登記項(xiàng)的簇項(xiàng)域的內(nèi)容為子目錄表的簇號(hào)。在子目錄表中,第1個(gè)目錄登記項(xiàng)為當(dāng)前目錄登記項(xiàng),其名字域的內(nèi)容為字符“·”,簇號(hào)域的內(nèi)容是當(dāng)前目錄的簇號(hào);第2個(gè)目錄登記項(xiàng)為當(dāng)前目錄的父目錄登記項(xiàng),其名字域的內(nèi)容為字符“…”,簇號(hào)域的內(nèi)容是父目錄的簇號(hào)。子目錄登記項(xiàng)、父目錄登記項(xiàng)用于目錄的檢索和回溯。

5 SD卡中各區(qū)域的扇區(qū)地址的獲取方法

根據(jù)圖1所示的SD卡數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)圖和表1、表2中的參數(shù),可以計(jì)算出SD卡中各區(qū)域的扇區(qū)地址。主引導(dǎo)記錄區(qū)的扇區(qū)地址固定為0000H,讀主引導(dǎo)記錄區(qū)中偏移地址1C6H~1C9H單元的內(nèi)容就可以獲得引導(dǎo)扇區(qū)的地址BootSector。讀引導(dǎo)扇區(qū)的內(nèi)容,就可以獲得表2中各參數(shù),并計(jì)算出文件分配表1的扇區(qū)地址、根目錄的扇區(qū)地址、數(shù)據(jù)區(qū)任意簇的扇區(qū)地址。

文件分配表1的扇區(qū)地址SectorOfFAT1的計(jì)算方法如下:

SectorOfFAT1=BootSector+ReservedSectors

根目錄的扇區(qū)地址SectorOfRootDir的計(jì)算方法如下:

數(shù)據(jù)區(qū)中第n簇的扇區(qū)地址SectorOfDataClustor的計(jì)算方法如下:

6 結(jié) 語(yǔ)

計(jì)算機(jī)是以文件的形式訪問(wèn)存儲(chǔ)介質(zhì)上的數(shù)據(jù)的,掌握基于FAT32文件系統(tǒng)的SD卡數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),有利于實(shí)現(xiàn)在嵌入式系統(tǒng)中按文件系統(tǒng)的格式要求在SD卡中存儲(chǔ)數(shù)據(jù),從而實(shí)現(xiàn)在嵌入式系統(tǒng)中保存在SD卡上的數(shù)據(jù)可被計(jì)算機(jī)直接訪問(wèn)和處理。

[1]吳萬(wàn)釗,黃占江,宋涵.計(jì)算機(jī)病毒防治大全[M].北京:學(xué)苑出版社,1994.

[2]戴士劍,涂彥輝.數(shù)據(jù)恢復(fù)技術(shù)[M].第2版.北京: 電子工業(yè)出版社,2007.

[3]劉偉.數(shù)據(jù)恢復(fù)技術(shù)深度揭秘[M].北京:電子工業(yè)出版社,2010.

[編輯] 洪云飛

10.3969/j.issn.1673-1409(N).2012.06.034

TP393

A

1673-1409(2012)06-N0102-03

猜你喜歡
分配
分配正義:以弱勢(shì)群體為棱鏡
基于可行方向法的水下機(jī)器人推力分配
應(yīng)答器THR和TFFR分配及SIL等級(jí)探討
Crying Foul
遺產(chǎn)的分配
一種分配十分不均的財(cái)富
你知道電壓的分配規(guī)律嗎
績(jī)效考核分配的實(shí)踐與思考
收入分配視閾下的共享發(fā)展思考
浙江績(jī)效分配改革觀察
主站蜘蛛池模板: 亚洲综合激情另类专区| 国产哺乳奶水91在线播放| 成人在线观看不卡| 亚洲精品黄| 成人午夜网址| 色婷婷亚洲综合五月| 久久亚洲综合伊人| 精品视频福利| 国产91丝袜| 国产精品无码一二三视频| 高清国产va日韩亚洲免费午夜电影| 日韩高清中文字幕| 亚洲欧美另类专区| 欧美黑人欧美精品刺激| 一级毛片免费观看久| 国产欧美在线观看一区| 无遮挡一级毛片呦女视频| 婷婷综合色| 国产第一页免费浮力影院| 国产视频只有无码精品| 国产午夜人做人免费视频中文 | 免费观看三级毛片| 亚洲乱伦视频| 中文字幕无码制服中字| 国产亚洲精| 91九色视频网| 欧美精品高清| 欧美日本在线一区二区三区| 久久永久精品免费视频| 国产SUV精品一区二区| 国产h视频在线观看视频| 一级一毛片a级毛片| 91麻豆精品国产高清在线| 亚洲第一区欧美国产综合| 午夜日韩久久影院| 伊人91在线| 人人爽人人爽人人片| 精品无码人妻一区二区| 国产00高中生在线播放| 久久久久久久久亚洲精品| 日本尹人综合香蕉在线观看| 国产一级在线播放| 蜜桃臀无码内射一区二区三区 | 亚洲成a人片77777在线播放| 日韩精品少妇无码受不了| 国产一级毛片在线| 国产成人啪视频一区二区三区| 一区二区三区四区日韩| 欧美自慰一级看片免费| 日韩AV手机在线观看蜜芽| 国产在线观看一区二区三区| 色婷婷在线播放| 无码高潮喷水在线观看| 免费啪啪网址| 国产午夜福利亚洲第一| 强奷白丝美女在线观看| 日韩毛片免费| 999国内精品久久免费视频| 毛片在线区| 国产午夜精品鲁丝片| 欧美无专区| 三上悠亚一区二区| 亚洲一区第一页| 亚洲v日韩v欧美在线观看| 91蜜芽尤物福利在线观看| 伊人久久大香线蕉aⅴ色| 国产黄网永久免费| 亚洲日韩AV无码一区二区三区人| 免费高清自慰一区二区三区| 中文字幕 91| 欧美性精品| 中文字幕欧美日韩高清| 九色视频一区| 欧洲成人免费视频| 国产在线98福利播放视频免费| 无码国内精品人妻少妇蜜桃视频| 91在线国内在线播放老师 | 亚洲无线视频| 亚洲无码91视频| 亚洲AⅤ综合在线欧美一区| 另类重口100页在线播放| 亚洲av无码人妻|