《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AT89S52和FAT16的SD卡讀寫系統設計
基于AT89S52和FAT16的SD卡讀寫系統設計
摘要: FAT16文件系統是。Microsoft公司在其MS-DOS 操作系統中采用的文件系統,具有出色的文件管理性能,能被當前大多數操作系統識別。因此,將SD卡與FAT16文件系統相結合是嵌入式數據存儲、記錄系統的理想方案,可以將采集記錄的數據直接在PC上讀取和處理。本文研究和設計了基于AT89S52單片機和FAT16文件系統的SD卡讀寫系統。
Abstract:
Key words :

  引 言

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

  1 系統方案介紹

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

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

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

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

電平轉換電路

  2 AT89S52與SD卡接口電路設計

  2.1 SD卡接口規范

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

普通SD卡的結構示意圖和引腳排列圖

各引腳在SPI模式下的定義和功能描述

  2.2 接口電路設計

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

系統硬件電路

  3 軟件設計

  3.1 FAT16文件系統

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

FAT16文件系統的存儲結構

  主引導記錄區(Main BootRecord,MBR)位于物理磁盤第零扇區。MBR中有硬盤分區記錄表(Disk Partition Table,DPT),DPT記錄了各邏輯分區的相對偏移。SD卡不支持多分區,在1個SD卡中只有1個分區,因此在SD卡上的DPT只有1個分區表項被占用。系統引導記錄區(DOS Boot Record,DBR)位于磁盤邏輯分區的第0扇區,是操作系統可以訪問的第1個扇區,它其中包含1個稱為BPB(Bios Parameter Block)的本分區參數記錄表。BPB記錄著本分區的根目錄大小、FAT、個數、磁盤介質描述、分配單元大小等重要參數。

  DBR之后是FAT(File Allocation Table,文件分配記錄表),記錄文件在磁盤上的存儲位置。在Windows系統中,文件存儲的單位是簇而不是字節,1個文件不是連續地存放于磁盤的某一區域,而往往分成若干段,像鏈子一樣存放。FAT表記錄了每個文件的起始簇號、后繼簇號和終止簇號。FAT表中的每個表項對應數據存儲區中的1個簇,由于FAT表對文件管理的重要性,FAT表有1個備份。

  DIR是根目錄區,緊接著第2個FAT表(FAT2)之后,記錄著根目錄下每個文件的起始簇號、大小等屬性。操作系統根據DIR中文件的起始簇號和大小,結合FAT表來定位文件。FAT16文件系統中1個文件的存儲示意圖如圖5所示。

FAT16文件系統中1個文件的存儲示意圖

  3.2 SD卡指令規范

  單片機通過相應指令與SD卡進行交互。SD卡有特定的指令格式,都是6字節長,最高有效位(MSB)傳輸優先,如圖6所示。

 

SD卡指令規范

  SD卡指令的最高2位“01”是SD卡指令的開始標志,最后1位“1”是結束標志。6位的指令是SD卡的指令序號,例如CMD17的6位指令即17的二進制表示010001。指令參數占4字節,具體內容參照SD卡規范。7位CRC校檢的生成多項式為G(x)=x7+x3+1。事實上SD卡在進入SPI模式后,不再通過CRC碼來確認指令的傳輸正確與否,指令中的7為CRC校檢,只在SD模式下起作用。因此僅SD卡上電后的第1條切換SPI模式指令CMd0 需要校檢碼,而此校檢碼是固定的0x95,其他指令的CRC均置1即可。SD卡響應有4種格式,不同指令對應不同響應,具體內容可參看SD卡規范。

  3.3 SD卡讀寫驅動

  3.3.1 SPI時序模擬

  用軟件來模擬SPI總線的具體方法是:將SCK的初始狀態置0,允許接收后(即CS置0)將SCK置1,這樣單片機由DI線輸出1位數據到SD卡;接著再將SCK置0,單片機由DO線從SD卡讀1位數據。至此,模擬1位數據輸入輸出完成。此后再將SCK置1,依次循環8次,完成SPI總線1字節數據的輸入輸出。

  以下是本系統軟件模擬SPI時序的匯編代碼。以通用寄存器A作為函數參數,實現將寄存器A中的數據通過SPI總線發送出去,并將從SPI總線讀到的數據存到寄存器A中。

  3.3.2 SD卡的初始化

  SD卡的初始化流程如圖7所示。SD卡上電延時74個時鐘周期后,單片機向SD卡發送復位命令CMDO,使SD卡進入SPI模式。之后循環發送激活SD卡指令CMD1,直到接收到SD卡響應的第0位為0。

SD卡的初始化流程

  3.3.3 SD卡數據塊的讀寫

  完成SD卡的初始化后,就可以對SD卡進行讀寫操作。讀寫操作都是通過指令來完成的:單塊寫命令CMD24,多塊寫命令CMD25;單塊讀命令 CMD17,多塊讀命令CMD18。單塊讀寫時,數據塊的長度為512字節,多塊讀寫時SD卡收到1個停止命令CMD12后停止讀寫。圖8、圖9分別是單塊讀、寫SD卡的軟件流程。

單塊讀SD卡的軟件流程

單塊寫SD卡的軟件流程

  3.4 FAT16文件讀寫

  按照FAT16文件系統的文件組織規范,編寫讀文件函數和寫文件函數。FAT16文件讀寫的軟件流程如圖10所示。

FAT16文件讀寫的軟件流程

  結 語

  通過串口將本系統連接到PC進行測試,結果表明本系統完成了對FAT16文件系統下文件的讀寫。當采用11.059 2 MHz晶振時,讀寫速度和質量都令人滿意。本系統采用51架構的AT89S52單片機,實現了基于FAT16文件系統的讀寫SD卡設計,整套系統成本較低,在嵌入式數據記錄和存儲中有廣泛應用前景。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
男人的天堂亚洲| 国产亚洲欧美aaaa| 欧美中文字幕在线播放| 一本色道久久| 亚洲精品女人| 亚洲激情成人| 最新国产成人av网站网址麻豆| 欧美一区二区在线视频| 午夜国产精品视频| 午夜日韩av| 欧美在线啊v一区| 久久国产99| 久久精品国产77777蜜臀| 性欧美xxxx大乳国产app| 亚洲欧美日韩第一区| 亚洲制服丝袜在线| 香蕉久久国产| 欧美一级久久久久久久大片| 欧美一区午夜精品| 久久激情综合网| 亚洲国产清纯| 亚洲美洲欧洲综合国产一区| 亚洲毛片视频| 亚洲一区bb| 午夜精品婷婷| 久久青草久久| 欧美成人黑人xx视频免费观看| 欧美成人自拍| 欧美日韩一区二区三区在线看 | 欧美高清视频在线| 欧美高清视频一二三区| 欧美日韩另类字幕中文| 国产精品区一区二区三区| 国产日本精品| 在线免费观看日本欧美| 最新日韩中文字幕| 亚洲一级片在线看| 久久国产视频网| 亚洲精品麻豆| 亚洲欧美日韩国产成人精品影院 | 欧美精品在线一区| 欧美日韩在线亚洲一区蜜芽 | 中文网丁香综合网| 欧美一区亚洲| 日韩午夜av在线| 亚洲欧美www| 久久一区亚洲| 欧美日韩在线视频一区二区| 国产视频一区二区三区在线观看| 在线观看视频欧美| 一本久久综合| 亚洲第一偷拍| 亚洲视屏在线播放| 久久天天综合| 欧美午夜不卡| 精品999网站| 夜夜精品视频| 久久www成人_看片免费不卡| aⅴ色国产欧美| 久久精品五月婷婷| 欧美精品免费视频| 国产精一区二区三区| 91久久精品国产91性色tv| 亚洲一区免费观看| 亚洲精品国产欧美| 欧美一区观看| 欧美日韩不卡| 国产亚洲精品美女| 9久草视频在线视频精品| 久久激情五月丁香伊人| 亚洲——在线| 欧美成人在线影院| 国产欧美欧美| 夜夜嗨av一区二区三区免费区| 亚洲成人自拍视频| 亚洲女女做受ⅹxx高潮| 欧美成人精品三级在线观看| 国产麻豆综合| 一本色道88久久加勒比精品| 亚洲国产欧美一区二区三区同亚洲 | 亚洲欧洲一区二区在线播放 | 国产精品亚洲综合久久| 亚洲精品少妇| 亚洲高清一区二区三区| 午夜国产欧美理论在线播放| 欧美理论电影在线播放| 在线观看一区二区精品视频| 亚洲欧美成人一区二区在线电影| 99精品视频免费| 美女视频黄 久久| 国产亚洲激情| 亚洲免费人成在线视频观看| 99香蕉国产精品偷在线观看| 美女网站在线免费欧美精品| 国产午夜精品美女毛片视频| 在线一区免费观看| 一区二区三区高清不卡| 欧美1区2区3区| 黄色一区二区三区四区| 先锋影音国产精品| 午夜伦理片一区| 欧美日韩在线不卡| 亚洲三级电影全部在线观看高清| 亚洲国产三级| 久久天天躁狠狠躁夜夜爽蜜月| 国产日韩欧美不卡在线| 亚洲欧美精品suv| 午夜国产不卡在线观看视频| 国产精品成人免费| 99精品视频免费观看| 一区二区三区导航| 欧美日韩亚洲综合一区| 亚洲欧洲日本专区| av不卡在线观看| 欧美日韩国产色视频| 亚洲精品国产精品乱码不99| 日韩香蕉视频| 欧美久久一级| 日韩午夜精品| 亚洲午夜精品网| 欧美性jizz18性欧美| 中文精品一区二区三区| 亚洲免费在线观看| 国产精品自拍在线| 欧美一区二区在线| 久久一二三国产| 在线观看不卡av| 亚洲国产高清视频| 欧美黄色小视频| 亚洲精品一区二区三区樱花 | 国产精品高清在线观看| 亚洲综合国产| 久久九九99| 一区二区三区在线不卡| 亚洲黄色毛片| 欧美精品在线播放| 一区二区三区**美女毛片| 亚洲欧美日韩一区二区在线| 国产欧美在线看| 亚洲国产小视频在线观看| 红桃视频一区| 亚洲人久久久| 亚洲一区综合| 国产精品一区二区在线观看| 欧美伊人久久| 欧美xart系列高清| 99热这里只有精品8| 性18欧美另类| 好男人免费精品视频| 亚洲日本中文字幕区| 欧美午夜视频在线| 午夜精品www| 你懂的亚洲视频| 99视频精品在线| 久久精品中文字幕一区| 亚洲国产一区在线| 亚洲欧美国产另类| 国产在线视频欧美一区二区三区| 最新日韩精品| 欧美色精品在线视频| 午夜精品久久久久| 欧美粗暴jizz性欧美20| 在线中文字幕一区| 久久夜色精品国产| 亚洲美女中出| 久久久午夜视频| 亚洲美女黄色片| 久久成人这里只有精品| 亚洲欧洲综合另类| 欧美一区二区三区另类| 亚洲国产精品va在看黑人| 亚洲欧美国产va在线影院| 国模精品娜娜一二三区| 这里只有精品丝袜| 黑人巨大精品欧美黑白配亚洲 | 在线观看成人av电影| 亚洲午夜精品| 精品不卡一区二区三区| 中文精品99久久国产香蕉| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩亚洲欧美成人| 久久精品国产99精品国产亚洲性色 | 先锋影音网一区二区| 欧美久久99| 欧美在线观看视频一区二区| 欧美三级特黄| 亚洲国产激情| 国产精品另类一区| 亚洲免费大片| 国语自产偷拍精品视频偷| 亚洲欧美日韩天堂| 亚洲日韩视频| 麻豆freexxxx性91精品| 亚洲一区二区三区三| 欧美黄在线观看| 久久狠狠一本精品综合网| 国产精品日韩欧美一区二区| 亚洲精品四区| 激情久久久久久久| 久久国产日韩|