<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > AT89S52單片機和FAT16文件的SD卡讀寫(xiě)設計

AT89S52單片機和FAT16文件的SD卡讀寫(xiě)設計

作者: 時(shí)間:2014-01-16 來(lái)源:網(wǎng)絡(luò ) 收藏

引 言

本文引用地址:http://dyxdggzs.com/article/226899.htm

長(cháng)期以來(lái),閃存卡(SD卡、MMC卡等)因其體積小、功耗低、容量大和非易失性等特點(diǎn),在嵌入式存儲領(lǐng)域的應用越來(lái)越廣泛。特別是近年來(lái),隨著(zhù)閃存技術(shù)的發(fā)展,閃存卡價(jià)格不斷下降且存儲容量不斷提高。當數據采集系統需要長(cháng)時(shí)間地采集和記錄海量數據時(shí),應用SD卡作為存儲介質(zhì)是很好的選擇,例如電能檢測、溫度濕度檢測、病人心肺數據記錄等。文件系統是。Microsoft公司在其MS-DOS 操作系統中采用的文件系統,具有出色的文件管理性能,能被當前大多數操作系統識別。因此,將SD卡與文件系統相結合是嵌入式數據存儲、記錄系統的理想方案,可以將采集記錄的數據直接在PC上讀取和處理。本文研究和設計了基于文件系統的SD卡讀寫(xiě)系統。

1 系統方案介紹

本系統采用MCS-51架構的。是一種低成本、低功耗、高性能的CMOS 8位微控制器,具有8 KB在系統可編程Flash存儲器。應用AT89S52讀寫(xiě)SD卡,首先要確定它們之間的通信方案。SD卡有2種可選的通信協(xié)議:SD模式和SPI模式。 SD模式是SD卡的標準讀寫(xiě)方式,選用此模式需要選擇帶SD卡控制接口的MCU或者額外的SD卡控制單元;SPI模式通過(guò)SPI總線(xiàn)完成SD卡與主控制器的通信。AT89S52沒(méi)有集成SD卡控制器,為了不增加額外的SD卡控制單元硬件成本,本設計方案采用SD卡的SPI通信模式。雖然AT89S52也沒(méi)有集成SPI接口模塊,但可以用軟件的方式模擬SPI接口時(shí)序。

另外一個(gè)要解決的問(wèn)題是SD卡與AT89S52的電平匹配。SD卡的邏輯電平相當于3.3 V的TTL電平標準,AT89S52的邏輯電平為5 V CMOS電平。

解決電平匹配問(wèn)題的原則有2條:一為輸出電平器件輸出的高電平的最小值,應該大于接收電平器件識別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應該小于接收電平器件識別為低電平的最高電壓值。

考慮到SsD卡在SPI工作模式下,數據的傳輸都是單向的,這樣可以在向SD卡傳輸數據時(shí)采用晶體管加下拉電阻的方法,基本電路如圖1所示。而在 SD卡向單片機傳輸數據時(shí)可以采用直接連接,因為它們之間的電平剛好滿(mǎn)足上述的電平兼容原則,既經(jīng)濟又實(shí)用。這個(gè)方案需要雙電源供電,1個(gè)5 V電源,1個(gè)3.3 V電源。

AT89S52單片機和FAT16文件的SD卡讀寫(xiě)設計

2 AT89S52與SD卡接口電路設計

2.1 SD卡接口規范

SD卡工作在2.7~3.6 V電壓下,圖2是普通SD卡的結構示意圖和引腳排列圖,表1列出了各引腳在SPI模式下的定義和功能描述。主機與SD卡之間通過(guò)指令來(lái)實(shí)現交互。

AT89S52單片機和FAT16文件的SD卡讀寫(xiě)設計2.2 接口電路設計

AT89S52內有256字節的RAM,由于SD卡數據的讀出與寫(xiě)入是以塊為單位的,而每塊為512字節,所以需要在單片機的最小系統上擴展1片RAM。本系統選用的RAM芯片為HM62256,容量32KB。系統硬件電路如圖3所示。

AT89S52單片機和FAT16文件的SD卡讀寫(xiě)設計

3 軟件設計

3.1 FAT16文件系統

FAT16文件系統的存儲結構如圖4所示。

AT89S52單片機和FAT16文件的SD卡讀寫(xiě)設計

主引導記錄區(Main BootRecord,MBR)位于物理磁盤(pán)第零扇區。MBR中有硬盤(pán)分區記錄表(Disk Partition Table,DPT),DPT記錄了各邏輯分區的相對偏移。SD卡不支持多分區,在1個(gè)SD卡中只有1個(gè)分區,因此在SD卡上的DPT只有1個(gè)分區表項被占用。系統引導記錄區(DOS Boot Record,DBR)位于磁盤(pán)邏輯分區的第0扇區,是操作系統可以訪(fǎng)問(wèn)的第1個(gè)扇區,它其中包含1個(gè)稱(chēng)為BPB(Bios Parameter Block)的本分區參數記錄表。BPB記錄著(zhù)本分區的根目錄大小、FAT、


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: AT89S52 單片機 FAT16

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>