關(guān)于單片機(jī)AT89S52和CF卡的接口設(shè)計(jì)
發(fā)布時(shí)間:2008/9/23 0:00:00 訪(fǎng)問(wèn)次數(shù):632
通過(guò)8051單片機(jī)對(duì)cf卡進(jìn)行讀寫(xiě)。
2.cf卡的操作方式
cf卡的操作方式與計(jì)算機(jī)的硬盤(pán)操作方式類(lèi)似,其扇區(qū)的尋址也有兩種方式:物理尋址(chs)和邏輯尋址(lba),物理尋址使用柱面、磁頭和扇區(qū)號(hào)表示一個(gè)特定的扇區(qū),起始扇區(qū)是0道、0頭、1區(qū),接下來(lái)是2區(qū)等等,邏輯尋址將整個(gè)cf卡統(tǒng)一尋址。邏輯塊尋址和物理尋址的關(guān)系為:
lba地址=(柱面號(hào)×磁頭數(shù)+磁頭號(hào))×扇區(qū)數(shù)+扇區(qū)數(shù)一1
在實(shí)際使用過(guò)程中,用lba地址進(jìn)行尋址,可以大大簡(jiǎn)化編程的工作量,避免柱面、磁頭和扇區(qū)之間的換算和切換,并且可以突破chs對(duì)大容量的無(wú)法尋址的限制。
3.cf卡的文件管理
cf卡的文件管理系統(tǒng)和硬盤(pán)的文件管理是一樣的,他將cf卡的存儲(chǔ)空間分為五個(gè)部分:主引導(dǎo)記錄扇區(qū)(mbr)、dos引導(dǎo)區(qū)(dbr)、文件分配表(fat)、文件目錄表(fdt)和數(shù)據(jù)。
主引導(dǎo)記錄扇區(qū)(mbr)
主引導(dǎo)記錄扇區(qū)(mbr)在0柱面、0磁頭、1扇區(qū)。主引導(dǎo)記錄記錄磁盤(pán)最重要的結(jié)構(gòu)信息。主引導(dǎo)記錄是硬磁盤(pán)作分區(qū)時(shí)建立的(fdisk)。主引導(dǎo)記錄包括一小段執(zhí)行代碼(主引導(dǎo)代碼)、磁盤(pán)特征和硬盤(pán)分區(qū)表。主引導(dǎo)記錄結(jié)束的兩個(gè)字節(jié)必須是引導(dǎo)自舉標(biāo)記0x55aa。磁盤(pán)特征位于0x01b8, 指定磁盤(pán)操作系統(tǒng)。
dos引導(dǎo)區(qū)(dbr)
dos引導(dǎo)區(qū)(dbr)的起始扇區(qū)在0柱面、1磁頭、1扇區(qū),磁盤(pán)的邏輯0扇區(qū)都稱(chēng)為dos引導(dǎo)扇區(qū),又稱(chēng)為boot區(qū)。它由以下5個(gè)部分組成:
跳轉(zhuǎn)指令,占用3個(gè)字節(jié)的跳轉(zhuǎn)指令將跳至引導(dǎo)代碼,其內(nèi)容隨dos版本變化。
廠商標(biāo)識(shí)和dos版本號(hào)。該部分總共占用8個(gè)字節(jié),其內(nèi)容隨dos版本而不同。
bpb(bios paramenter block, bios參數(shù)塊)。bpb從第12字節(jié)起占用19個(gè)字節(jié)。
dos引導(dǎo)程序。dos引導(dǎo)程序既是占用480字節(jié)的boot代碼,負(fù)責(zé)完成dos的3個(gè)系統(tǒng)文
件的裝入工作。這部分內(nèi)容隨dos版本不同而變化。
結(jié)束標(biāo)志字,結(jié)束標(biāo)志占用2個(gè)字節(jié),其值為aa55。
bpb表中所記錄的有關(guān)參數(shù),能幫助編程者確定磁盤(pán)的容量大小、文件分配表fat的位置和大小、文件目錄表fdt的位置和大小。因此以fat32分區(qū)格式為例討論bpb表的結(jié)構(gòu)。
偏移量為0bh、0ch記錄每個(gè)扇區(qū)的字節(jié)數(shù),0dh記錄每簇扇區(qū)數(shù)。0eh、ofh記錄保留扇區(qū)數(shù),10h記錄fat表的數(shù)目,15h磁盤(pán)介質(zhì)描述符,18h每個(gè)磁道的扇區(qū)數(shù),24h每個(gè)fat表的扇區(qū)數(shù),2ch~2fh根目錄起始號(hào)。
文件分配表(fatl)
文件分配表fat(file allocation tabel)是文件管理系統(tǒng)用來(lái)給每個(gè)文件分配磁盤(pán)物理空間的表格,它告訴操作系統(tǒng),文件存放在磁盤(pán)什么地方。文件分配表(fat)有表標(biāo)識(shí)和簇映射(舊稱(chēng)表目)的集合組成。一個(gè)完全相同的鏡像副本連續(xù)存儲(chǔ)在主 fat 表后。表標(biāo)識(shí)符包括磁盤(pán)介質(zhì)描述符( 1 字節(jié))和填充字節(jié), 總計(jì)占兩個(gè)簇的簇映射區(qū)域(這大概也就是 fat 文件系統(tǒng)簇號(hào)由2開(kāi)始的原因), 填充字節(jié)一般為 ff,fat32 的填充字節(jié)中還包含"臟位", 即系統(tǒng)啟動(dòng)時(shí)執(zhí)行磁盤(pán)檢查(fat-chkdsk/ntfs-autochk)。fat 簇映射中, 0000 表示空簇, ffff 表示簇鏈結(jié)束, fff7 表示壞簇, 其余值表示其后續(xù)簇的簇號(hào)。fat12 和 fat32 的存儲(chǔ)策略同 fat16 類(lèi)似, 例如 fat12的結(jié)束簇為 fff, fat32 的壞簇為 0ffffff7 等(注意 fat32 的高 4 位保留)。文件分配表(fat2)是fat1的完全備份。
文件目錄表(fdt) 在文件目錄表中,每個(gè)文件占32個(gè)字節(jié)(用pc-tools或debub讀出時(shí)占兩行),各個(gè)字節(jié)的含義是這樣的:0-7 字節(jié):文件名;8-10 字節(jié):擴(kuò)展名;11 字節(jié),表示文件屬性;12-21 共10個(gè)字節(jié)為保留字段,沒(méi)有使用;22-23 為建立文件的時(shí)間;24-25 為建立文件的日期;26-27 為文件占用的第一個(gè)簇號(hào),即起始簇;28-31 共4個(gè)字節(jié)為此文件的長(zhǎng)度。
3.at89s52與cf卡的接口設(shè)計(jì)
cf卡有3種工作模式可供選擇:i/0模式、存儲(chǔ)器模式和ide模式。cf卡的默認(rèn)模式是存儲(chǔ)器模式,使用也最為普遍。如果使用存儲(chǔ)器模式則不需要配置任何寄存器。每一種模式的電路連接各不相同。在i/0模式和存儲(chǔ)器模式下,可以采用8位的訪(fǎng)問(wèn)方式,也可以采用16位的訪(fǎng)問(wèn)方式。本文所采用的是8位的存儲(chǔ)器模式,其接口電路原理圖如圖1所示。
at89s52的p0口就為數(shù)據(jù)線(xiàn)連接cf的do—d7,cf卡的a0-a10為地址線(xiàn),p3.6、p3.7分別為讀(rd)、寫(xiě)(we)線(xiàn)。由于 at89s52是8位的單片機(jī),所以對(duì)cf卡的訪(fǎng)問(wèn)采用8位的方式較為方便。通過(guò)把-ce2設(shè)為‘1’即可通過(guò)訪(fǎng)問(wèn)cf卡的d0--d7來(lái)存取數(shù)據(jù)。而- cel可以作為cf卡的片選信號(hào),通過(guò)設(shè)-cel為‘0’來(lái)選通cf卡,即-cel接at89s52的p2.6來(lái)線(xiàn)選cf卡。當(dāng)reg為‘0’時(shí),訪(fǎng)問(wèn) cf卡的屬性寄存器;reg為‘1’時(shí),cf卡在存儲(chǔ)器模式下對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě)操作。rdy/bsy為cf卡狀態(tài)引腳,當(dāng)為“0”時(shí),cf卡忙,為“1”時(shí)可以對(duì)cf卡操作。原理圖
通過(guò)8051單片機(jī)對(duì)cf卡進(jìn)行讀寫(xiě)。
2.cf卡的操作方式
cf卡的操作方式與計(jì)算機(jī)的硬盤(pán)操作方式類(lèi)似,其扇區(qū)的尋址也有兩種方式:物理尋址(chs)和邏輯尋址(lba),物理尋址使用柱面、磁頭和扇區(qū)號(hào)表示一個(gè)特定的扇區(qū),起始扇區(qū)是0道、0頭、1區(qū),接下來(lái)是2區(qū)等等,邏輯尋址將整個(gè)cf卡統(tǒng)一尋址。邏輯塊尋址和物理尋址的關(guān)系為:
lba地址=(柱面號(hào)×磁頭數(shù)+磁頭號(hào))×扇區(qū)數(shù)+扇區(qū)數(shù)一1
在實(shí)際使用過(guò)程中,用lba地址進(jìn)行尋址,可以大大簡(jiǎn)化編程的工作量,避免柱面、磁頭和扇區(qū)之間的換算和切換,并且可以突破chs對(duì)大容量的無(wú)法尋址的限制。
3.cf卡的文件管理
cf卡的文件管理系統(tǒng)和硬盤(pán)的文件管理是一樣的,他將cf卡的存儲(chǔ)空間分為五個(gè)部分:主引導(dǎo)記錄扇區(qū)(mbr)、dos引導(dǎo)區(qū)(dbr)、文件分配表(fat)、文件目錄表(fdt)和數(shù)據(jù)。
主引導(dǎo)記錄扇區(qū)(mbr)
主引導(dǎo)記錄扇區(qū)(mbr)在0柱面、0磁頭、1扇區(qū)。主引導(dǎo)記錄記錄磁盤(pán)最重要的結(jié)構(gòu)信息。主引導(dǎo)記錄是硬磁盤(pán)作分區(qū)時(shí)建立的(fdisk)。主引導(dǎo)記錄包括一小段執(zhí)行代碼(主引導(dǎo)代碼)、磁盤(pán)特征和硬盤(pán)分區(qū)表。主引導(dǎo)記錄結(jié)束的兩個(gè)字節(jié)必須是引導(dǎo)自舉標(biāo)記0x55aa。磁盤(pán)特征位于0x01b8, 指定磁盤(pán)操作系統(tǒng)。
dos引導(dǎo)區(qū)(dbr)
dos引導(dǎo)區(qū)(dbr)的起始扇區(qū)在0柱面、1磁頭、1扇區(qū),磁盤(pán)的邏輯0扇區(qū)都稱(chēng)為dos引導(dǎo)扇區(qū),又稱(chēng)為boot區(qū)。它由以下5個(gè)部分組成:
跳轉(zhuǎn)指令,占用3個(gè)字節(jié)的跳轉(zhuǎn)指令將跳至引導(dǎo)代碼,其內(nèi)容隨dos版本變化。
廠商標(biāo)識(shí)和dos版本號(hào)。該部分總共占用8個(gè)字節(jié),其內(nèi)容隨dos版本而不同。
bpb(bios paramenter block, bios參數(shù)塊)。bpb從第12字節(jié)起占用19個(gè)字節(jié)。
dos引導(dǎo)程序。dos引導(dǎo)程序既是占用480字節(jié)的boot代碼,負(fù)責(zé)完成dos的3個(gè)系統(tǒng)文
件的裝入工作。這部分內(nèi)容隨dos版本不同而變化。
結(jié)束標(biāo)志字,結(jié)束標(biāo)志占用2個(gè)字節(jié),其值為aa55。
bpb表中所記錄的有關(guān)參數(shù),能幫助編程者確定磁盤(pán)的容量大小、文件分配表fat的位置和大小、文件目錄表fdt的位置和大小。因此以fat32分區(qū)格式為例討論bpb表的結(jié)構(gòu)。
偏移量為0bh、0ch記錄每個(gè)扇區(qū)的字節(jié)數(shù),0dh記錄每簇扇區(qū)數(shù)。0eh、ofh記錄保留扇區(qū)數(shù),10h記錄fat表的數(shù)目,15h磁盤(pán)介質(zhì)描述符,18h每個(gè)磁道的扇區(qū)數(shù),24h每個(gè)fat表的扇區(qū)數(shù),2ch~2fh根目錄起始號(hào)。
文件分配表(fatl)
文件分配表fat(file allocation tabel)是文件管理系統(tǒng)用來(lái)給每個(gè)文件分配磁盤(pán)物理空間的表格,它告訴操作系統(tǒng),文件存放在磁盤(pán)什么地方。文件分配表(fat)有表標(biāo)識(shí)和簇映射(舊稱(chēng)表目)的集合組成。一個(gè)完全相同的鏡像副本連續(xù)存儲(chǔ)在主 fat 表后。表標(biāo)識(shí)符包括磁盤(pán)介質(zhì)描述符( 1 字節(jié))和填充字節(jié), 總計(jì)占兩個(gè)簇的簇映射區(qū)域(這大概也就是 fat 文件系統(tǒng)簇號(hào)由2開(kāi)始的原因), 填充字節(jié)一般為 ff,fat32 的填充字節(jié)中還包含"臟位", 即系統(tǒng)啟動(dòng)時(shí)執(zhí)行磁盤(pán)檢查(fat-chkdsk/ntfs-autochk)。fat 簇映射中, 0000 表示空簇, ffff 表示簇鏈結(jié)束, fff7 表示壞簇, 其余值表示其后續(xù)簇的簇號(hào)。fat12 和 fat32 的存儲(chǔ)策略同 fat16 類(lèi)似, 例如 fat12的結(jié)束簇為 fff, fat32 的壞簇為 0ffffff7 等(注意 fat32 的高 4 位保留)。文件分配表(fat2)是fat1的完全備份。
文件目錄表(fdt) 在文件目錄表中,每個(gè)文件占32個(gè)字節(jié)(用pc-tools或debub讀出時(shí)占兩行),各個(gè)字節(jié)的含義是這樣的:0-7 字節(jié):文件名;8-10 字節(jié):擴(kuò)展名;11 字節(jié),表示文件屬性;12-21 共10個(gè)字節(jié)為保留字段,沒(méi)有使用;22-23 為建立文件的時(shí)間;24-25 為建立文件的日期;26-27 為文件占用的第一個(gè)簇號(hào),即起始簇;28-31 共4個(gè)字節(jié)為此文件的長(zhǎng)度。
3.at89s52與cf卡的接口設(shè)計(jì)
cf卡有3種工作模式可供選擇:i/0模式、存儲(chǔ)器模式和ide模式。cf卡的默認(rèn)模式是存儲(chǔ)器模式,使用也最為普遍。如果使用存儲(chǔ)器模式則不需要配置任何寄存器。每一種模式的電路連接各不相同。在i/0模式和存儲(chǔ)器模式下,可以采用8位的訪(fǎng)問(wèn)方式,也可以采用16位的訪(fǎng)問(wèn)方式。本文所采用的是8位的存儲(chǔ)器模式,其接口電路原理圖如圖1所示。
at89s52的p0口就為數(shù)據(jù)線(xiàn)連接cf的do—d7,cf卡的a0-a10為地址線(xiàn),p3.6、p3.7分別為讀(rd)、寫(xiě)(we)線(xiàn)。由于 at89s52是8位的單片機(jī),所以對(duì)cf卡的訪(fǎng)問(wèn)采用8位的方式較為方便。通過(guò)把-ce2設(shè)為‘1’即可通過(guò)訪(fǎng)問(wèn)cf卡的d0--d7來(lái)存取數(shù)據(jù)。而- cel可以作為cf卡的片選信號(hào),通過(guò)設(shè)-cel為‘0’來(lái)選通cf卡,即-cel接at89s52的p2.6來(lái)線(xiàn)選cf卡。當(dāng)reg為‘0’時(shí),訪(fǎng)問(wèn) cf卡的屬性寄存器;reg為‘1’時(shí),cf卡在存儲(chǔ)器模式下對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě)操作。rdy/bsy為cf卡狀態(tài)引腳,當(dāng)為“0”時(shí),cf卡忙,為“1”時(shí)可以對(duì)cf卡操作。原理圖
熱門(mén)點(diǎn)擊
推薦技術(shù)資料
- 硬盤(pán)式MP3播放器終級(jí)改
- 一次偶然的機(jī)會(huì)我結(jié)識(shí)了NE0 2511,那是一個(gè)遠(yuǎn)方的... [詳細(xì)]
- MOSFET 電感單片降壓開(kāi)關(guān)模式變換器優(yōu)勢(shì)
- SiC MOSFET 和 IG
- 新型 電隔離無(wú)芯線(xiàn)性霍爾效應(yīng)電
- 業(yè)界超小絕對(duì)位置編碼器技術(shù)參數(shù)設(shè)計(jì)
- 高帶寬、更高分辨率磁角度傳感技術(shù)應(yīng)用探究
- MagAlpha 角度位置傳感
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究