日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于MCF51QE128的SD卡文件系統(tǒng)設(shè)計

摘要:隨著嵌入式系統(tǒng)的發(fā)展,越來越多的嵌入式設(shè)備需要處理大量的數(shù)據(jù),使用文件系統(tǒng)將成為這類嵌入式應(yīng)用的一個必然趨勢。本文基于Freescale公司MCF51QEl28微控制器和SD卡,結(jié)合實驗數(shù)據(jù)深入探討了FATl6文件系統(tǒng)及其存儲原則,實現(xiàn)了文件的創(chuàng)建、打開和多扇區(qū)數(shù)據(jù)的讀寫。
關(guān)鍵詞:MCF51QEl28;SD卡;FATl6文件系統(tǒng)

引言
    MCF51QEl28微控制器是Freescale公司生產(chǎn)的8位/32位兼容的低功耗微處理器。工作電壓的典型值是3.6V,與SD卡的工作電壓兼容,可直接與SD卡連接而無需電平轉(zhuǎn)換電路。SD卡因為其體積小、功耗低、容量大且成本低,目前被廣泛應(yīng)用于各類嵌入式數(shù)據(jù)采集系統(tǒng)中。本文針對此類應(yīng)用,通過實測512MB SD卡數(shù)據(jù),以實例的形式深入解析了FATl6文件系統(tǒng)的存儲原則,并給出了實現(xiàn)方案。

1 FATl6文件系統(tǒng)
    SD卡格式化為FAT文件系統(tǒng)時,一般只采用1個分區(qū),以便于存儲空間的管理。FATl6主要由圖1所示的6個陰影部分組成。通常情況下,每扇區(qū)的大小為512字節(jié)。

 


1. 1 主引導(dǎo)記錄
    MBR(Master Boot Record,主引導(dǎo)記錄)總是位于存儲卡的起始位置,即扇區(qū)O。圖2是主引導(dǎo)記錄的詳細信息。由于只有1個分區(qū),所以由偏移量0x1BE可找到第1分區(qū)的入口,接著由偏移量0x08找到第1分區(qū)的相對起始扇區(qū),即第1分區(qū)引導(dǎo)記錄所在的扇區(qū)。以512 MB SD卡為例,讀取圖2中地址OxlC6~OxlC9處的4個字節(jié)數(shù)據(jù)(由高位向低位讀取),即Ox000000E9??芍?,第1分區(qū)引導(dǎo)記錄位于SD卡的第0xE9個扇區(qū)。

 


1.2 分區(qū)引導(dǎo)記錄
    分區(qū)BR(Boot Record,引導(dǎo)記錄)位于分區(qū)的第O扇區(qū)。它由跳轉(zhuǎn)代碼,OEM(Original Eqtlipment Manufacturer,原始設(shè)備制造商),BPB(BIOs Parameter Block,BIOS參數(shù)塊),擴展BPB,引導(dǎo)代碼和結(jié)束標志(Ox55 AA)組成。圖3重點列出了分區(qū)引導(dǎo)記錄中BPB的各項參數(shù)。讀圖3中Ox000000E9扇區(qū),由偏移量0x0B處2字節(jié)數(shù)據(jù)Ox0200=512可知,SD卡每扇區(qū)的字節(jié)數(shù)為512。類似地,可得到其他相關(guān)參數(shù)。

 


1.3 FAT表和文件存儲原則
    FATl6文件系統(tǒng)主要通過FAT表(FATl和FAT2)、根目錄和數(shù)據(jù)區(qū)實現(xiàn)對文件的存儲管理。FAT表記錄了數(shù)據(jù)文件的存儲鏈表,對數(shù)據(jù)的讀取極為重要,通常都會有一個或多個備份。這里,F(xiàn)AT2就是對FATl的備份,必須隨著FATl即時同步更新。根目錄一般以32字節(jié)為單位來存放文件記錄。[!--empirenews.page--]

     數(shù)據(jù)區(qū)主要存放文件數(shù)據(jù),為了有效利用存儲空間,一般以簇為單位,簇的大小通常是2的,n次冪個扇區(qū)。FAT格式化后,簇的大小就確定下來了,可通過讀取分區(qū)引導(dǎo)記錄獲得。例如,讀取圖3中Ox000000E9扇區(qū),由偏移量OxOD處1字節(jié)數(shù)據(jù)0x10=16可知,SD卡的1個簇占16個扇區(qū)。
    如果將SD卡的存儲空間想象成一本書,那么要閱讀一篇文章,首先應(yīng)該打開目錄找到文章的頁碼,然后根據(jù)頁碼翻到文章所在的地方。類比到FATl6文件系統(tǒng),F(xiàn)AT表和根目錄就像書的目錄,簇號類似于書的頁碼,而數(shù)據(jù)區(qū)存放的就是文章的具體內(nèi)容。
    以打開文件為例,文件的存儲原則可以這樣描述:首先在根目錄中查找文件名,如有匹配,就找到了文件的開始簇號,好比知道了文章的頁碼。但文件的存儲和書不同,書的內(nèi)容一般是連續(xù)的,而文件在存儲后是可以隨意修改的(例如添加或刪除),因而在存儲空間上可能不連續(xù),這樣就無法僅通過開始簇號找到整個文件。那么怎樣才能完整找到這些不連續(xù)的數(shù)據(jù)呢?答案就是FAT表。FAT表以“0xF8FF FFFF”作為開始標志,以2字節(jié)為單位存放文件簇號。FAT表實質(zhì)是一個二維鏈表,如圖4所示。

 


    FAT表上面的數(shù)字是這2個字節(jié)在表中的位置序號,同時也代表文件的簇號,與數(shù)據(jù)區(qū)的簇號對應(yīng),類似目錄的頁碼。通常SD卡上第一個文件的開始簇號為2。若文件長度小于1簇,則其開始簇號所對應(yīng)的2字節(jié)值為FFFF。若文件長度大于1簇,則其開始簇號所對應(yīng)2字節(jié)中存放的是文件所在的下一個簇號,由所得簇號再查找其對應(yīng)的2字節(jié),可找到文件接下來的簇號。依此類推,直到最后所得簇號對應(yīng)的2字節(jié)值為FFFF,即為文件的結(jié)束簇號。根據(jù)上述原則,由FAT表和根目錄就可以確定文件在數(shù)據(jù)區(qū)的存儲簇號,從而實現(xiàn)文件數(shù)據(jù)的管理。

2 FATl6文件系統(tǒng)設(shè)計
    文件系統(tǒng)的基本功能包括:文件的創(chuàng)建、打開和讀寫。這里假定已經(jīng)實現(xiàn)了MCF51QEl28微控制器和SD卡的硬件接口和底層通信,具體細節(jié)參考文獻。
2.1 數(shù)據(jù)結(jié)構(gòu)
    為了便于對主引導(dǎo)記錄、分區(qū)引導(dǎo)記錄、FAT表、根目錄和數(shù)據(jù)區(qū)中的相關(guān)信息進行記錄和處理,定義了FATl6_t和FILE_t兩個結(jié)構(gòu)體類型。數(shù)據(jù)類型byte、word和dword分別對應(yīng)于8位、16位和32位數(shù)據(jù)。
    FATl6_t結(jié)構(gòu)體類型用于記錄主引導(dǎo)記錄和第1分區(qū)引導(dǎo)扇區(qū)信息,部分定義如下:

    FILE_t結(jié)構(gòu)體類型用于記錄每個文件項信息,部分定義如下:

2.2 FATl6初始化
    FATl6的初始化主要是讀取主引導(dǎo)記錄和第1分區(qū)引導(dǎo)扇區(qū)信息,并保存到FATl6_t類型變量中。初始化流程如圖5所示。

 


    FATl6初始化子程序中調(diào)用了底層SD卡讀數(shù)據(jù)塊函數(shù)SD_ReadBlock。其函數(shù)聲明為byte SD_ReadBlock(dword sector,byte*buffer),用于讀入地址為sector扇區(qū)中的數(shù)據(jù),暫存入buffer中。預(yù)編譯函數(shù)from_BE_32和from_BE_16分別實現(xiàn)由高位向低位讀取4字節(jié)和2字節(jié)數(shù)據(jù)。[!--empirenews.page--]
    FATl6初始化子程序聲明為byte Init_FAT(FArl6_t*FAT,byte*buffer),部分代碼如下:

2.3 打開和創(chuàng)建文件
    打開和創(chuàng)建文件采用一個函數(shù)來實現(xiàn)。首先根據(jù)讀入的文件名查找根目錄,若有匹配項則打開文件,否則創(chuàng)建一個新文件。流程如圖6所示。

 


    打開和創(chuàng)建文件子程序聲明為byte Open_File(FILE_t*FILE,F(xiàn)ATl6_t*FAT,byte*buffer,byte*name)。部分代碼如下:

    在根目錄中查找是否有文件項匹配,從根目錄的第1個扇區(qū)開始讀扇區(qū)。


     根據(jù)文件起始簇號和根目錄的記錄項號,計算文件FAT表、根目錄和數(shù)據(jù)區(qū)的相關(guān)信息。對于根目錄和數(shù)據(jù)區(qū)的信息,已有文件和新文件的計算一致。如果是新文件,還需修改FAT表和根目錄記錄項。
2.4 多扇區(qū)數(shù)據(jù)讀寫
    多扇區(qū)數(shù)據(jù)的讀寫是在打開文件的基礎(chǔ)上,以扇區(qū)為單位讀寫文件,可連續(xù)讀寫多個扇區(qū)數(shù)據(jù),同時寫入文件的屬性、日期和時間。寫數(shù)據(jù)的流程如圖7所示,讀數(shù)據(jù)與之類似。多扇區(qū)數(shù)據(jù)的寫子程序聲明為byte Write_File(FILE_t*FILE,F(xiàn)ATl6_t*FAT, byte attribute,word time,word date,dWOEd size_s,byte*buffer),根據(jù)寫入扇區(qū)數(shù)size_s,設(shè)置文件的寫入位置。首先將寫入扇區(qū)數(shù)與文件剩余扇區(qū)數(shù)進行比較,若寫入扇區(qū)數(shù)小于等于剩余扇區(qū)數(shù),則新寫入扇區(qū)數(shù)、簇數(shù)均為0,文件結(jié)束簇、寫簇號不變,不需要修改FAT表,僅修改根目錄中的文件長度。否則,需要計算新寫入扇區(qū)數(shù)和簇數(shù)。若有增加簇,則需修改FAT表,包括FATl和FAT2、根目錄的文件記,錄項。最后,將數(shù)據(jù)寫入文件數(shù)據(jù)區(qū)。

 

 

結(jié)語
    本文基于Freescale公司MCF51QEl28微控制器,深入探討了SD卡上FATl6文件系統(tǒng)的存儲原則,給出了實現(xiàn)方案。軟件算法上,對單扇區(qū)數(shù)據(jù)讀寫進行改進,實現(xiàn)了連續(xù)多個扇區(qū)數(shù)據(jù)的讀寫,大大提高了文件的讀寫效率,特別適用于數(shù)據(jù)量較大的視頻、音頻數(shù)據(jù)采集系統(tǒng)的文件存儲。隨著SD卡的快速流行,在此類存儲設(shè)備中引入文件系統(tǒng)將得到更加廣泛的應(yīng)用。
 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

美國紐約州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)發(fā)布 2022 年第三季度業(yè)績報告。 IBM 董事長兼首席執(zhí)行官 Arvind Kri...

關(guān)鍵字: IBM 軟件 BSP 云平臺

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產(chǎn)品設(shè)計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動的最基本功能。而對于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關(guān)系的思考,同時也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預(yù)告。今年前三季度,公司預(yù)計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預(yù)計為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機構(gòu)對在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關(guān)鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉