日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
[轉(zhuǎn)載]基于C8051F020的CF卡文件存儲
[轉(zhuǎn)載]基于C8051F020的CF卡文件存儲
 更新時間:2008-8-17 16:44:41  點擊數(shù):9
【字體: 字體顏色

C8051F020對CF卡向指定扇區(qū)寫數(shù)據(jù)的命令是30H或31H,其操作亦與讀數(shù)據(jù)相似,只不過在寫入數(shù)據(jù)后要等到CF卡中數(shù)據(jù)穩(wěn)定并進入空閑狀態(tài)才能結(jié)束這一過程。

在CF卡讀寫時,分別向第2、3、4、5、6個寄存器寫入CF卡需要訪問的扇區(qū)位置,其寫入模式有2種:即CHS(Cylinder/Head/Sector)模式和LBA(Logical Block Address)模式。通過設(shè)置第6個寄存器的第6位LBA確定其模式:即如果LBA=0,則為CHS模式;如果LBA=I,則為LBA模式。

由CHS模式到LBA模式的轉(zhuǎn)換如下:
 

其中LBA是邏輯塊地址,Cn是柱面號,HpC是每個柱面的磁頭數(shù),Hn是磁頭數(shù),Sn是扇區(qū)號,SpH是每個磁頭(簇)的扇區(qū)數(shù)。

3 CF卡的文件存儲

FAT(File Allocation Table)文件系統(tǒng)產(chǎn)生于20世紀(jì)70年代末到80年代初,是微軟的MS-DOS操作系統(tǒng)所支持的文件系統(tǒng)。目前FAT文件系統(tǒng)有3種類型:FATl2、FATl6和FAT32。它們的不同是在磁盤上實際的FAT結(jié)構(gòu)中每個記錄(Entry)所占的位數(shù)不同。FATl2占12位(1.5字節(jié)),FATl6占16位(2字節(jié)),FAT32占32位(4字節(jié))。每一個記錄中的數(shù)據(jù)都按照低字節(jié)在前、高字節(jié)在后排列。

在CF卡格式化時,首先要了解CF卡的容量等一系列信息。通過對CF卡寫入命令ECH就可以讀出1個扇區(qū),其中包含了該CF卡的一些參數(shù)的信息,如容量、默認(rèn)的柱面數(shù)、默認(rèn)的磁頭數(shù)、每個扇區(qū)的字節(jié)數(shù)、每個磁道的扇區(qū)數(shù)和CF卡上總的扇區(qū)數(shù)等。這為格式化CF卡提供了重要的數(shù)據(jù)。

在格式化后的CF卡中,FAT文件系統(tǒng)由如下4部分組成:

0區(qū):保留區(qū)(引導(dǎo)區(qū))。
1區(qū):FAT區(qū)。
2區(qū):根目錄區(qū)(FAT32中存在的是浮動的FDT表)。
3區(qū):文件、目錄與數(shù)據(jù)區(qū)(下面簡稱數(shù)據(jù)區(qū))。

引導(dǎo)區(qū)中包含了整個FAT文件系統(tǒng)的重要信息,即BPB(BIOS Parameter Block)。下面為BPB的幾個重要數(shù)據(jù)結(jié)構(gòu):
 
 
 

在FAT32格式下,BPB﹒RootEntCnt為'0',因此RootDirSec總是為'0'。

如果BPB.FATSzl6不為'0',就可以根據(jù)下面公式計算數(shù)據(jù)區(qū)的第一個扇區(qū)地址。

FirstDataSec=BPB.ResvdSecCnt+(BPB.NumFATs*BPB.FATSzl6)+RootDirSec (4)

因此數(shù)據(jù)區(qū)所占用的扇區(qū)數(shù):

DataSec=BPB.TotSecl6-FirstDataSec (5)

根目錄的第一個扇區(qū)地址(在FATl2、FATl6下):

FirstRootDirSec=BPB.ResvdSecCnt+(BPB.NumFATs*BPB.FATSzl6)

如果BPB.FATSzl6為'0',則BPB.FATSz32一定不為'0',則有:

FirstDataSec=BPB.ResvdSecCnt+fBPB.NumFATs*BPB.FATSz32)+RootDirSec (6)

DataSec=BPB.TotSec32-FirstDataSec (7)

FirstRootDirSec=BPB.ResvdSecCnt+(BPB.NumFATs*BPB.FATSz32) (8)

如果CF卡有多個分區(qū),則(3)~(8)式計算出的參數(shù)只是相對當(dāng)前分區(qū)而言的,且數(shù)據(jù)區(qū)所占用的簇數(shù)為:

CntofClus=DataSec/BPB.SecPerClus (9)

在格式化CF卡時,根據(jù)CF卡容量的大小決定FAT數(shù)據(jù)結(jié)構(gòu)中的一些參數(shù),再由式(9)算出數(shù)據(jù)區(qū)總的簇數(shù),并根據(jù)總簇數(shù)的大小確定FAT形式。一般來說,如果CntofClus<4 084簇,則可以格式化成FATl2的形式;如果≥4 084簇而<65 524簇,則可以格式化成FATl6的形式;如果≥65 524簇,則格式化成FAT32的形式。

若給定一個簇的序號N(N≥2),則在數(shù)據(jù)區(qū)對應(yīng)該簇的第一個扇區(qū)序號為:

FirstSecofClus=((N-2)*BPB.SecPerClus)+FirstDataSec (10)

式(10)表示了FAT與數(shù)據(jù)區(qū)的對應(yīng)關(guān)系,如圖3所示。在FAT區(qū)每一個記錄的位置與數(shù)據(jù)區(qū)中的一簇數(shù)據(jù)相對應(yīng),同時,這個記錄又存儲著下一簇序號,從而一個件在FAT區(qū)形成一個鏈表。至于每一簇的序號在FAT中的存儲位置,可以根據(jù)格式化的形式(FATl2、FAT16、FAT32)確定。設(shè)每一記錄占i個字節(jié),則第N個記錄在N×i的位置上。

  • 上一篇: [轉(zhuǎn)載]LED顯示電腦電子鐘
  • 下一篇: [轉(zhuǎn)載]AVR單片機的RTOS-AVRX應(yīng)用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1