《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
国产精品二区在线观看| 黄色小说综合网站| 久久国产夜色精品鲁鲁99| 一本色道久久综合精品竹菊 | 亚洲日韩欧美视频| 亚洲高清三级视频| 久久国产毛片| 亚洲福利国产| 亚洲国产三级| 亚洲人成在线播放| 亚洲精品日韩在线观看| 亚洲片区在线| 亚洲伦理久久| 一本一本久久| 一卡二卡3卡四卡高清精品视频| 亚洲乱码一区二区| 日韩亚洲欧美一区| 一区二区三区精品久久久| 中文精品视频| 亚洲欧美日韩高清| 欧美亚洲免费在线| 久久久久国色av免费看影院| 久久精品视频播放| 老司机一区二区三区| 久久综合网hezyo| 美女网站在线免费欧美精品| 欧美成人国产| 欧美日韩在线另类| 国产精品久久久久久久免费软件| 国产精品美女久久久久久免费 | 亚洲国产精品综合| 亚洲精品字幕| 亚洲一区二区视频在线观看| 午夜精品一区二区三区在线 | 久久久久久久波多野高潮日日| 久久久久欧美| 欧美国产日韩亚洲一区| 欧美日韩性生活视频| 国产精品yjizz| 国产情人综合久久777777| 狠狠干狠狠久久| 91久久精品美女| 一区二区欧美在线| 欧美一区三区三区高中清蜜桃 | 欧美大片一区| 欧美视频一区在线观看| 国产色视频一区| 亚洲国产国产亚洲一二三| 亚洲国产三级在线| 亚洲午夜av电影| 亚洲电影在线看| 亚洲视频一区二区在线观看| 久久不射中文字幕| 欧美精品一区二区三区四区| 国产精品免费观看在线| 国产一区二区三区四区五区美女| 在线观看不卡av| 一卡二卡3卡四卡高清精品视频 | 午夜伦欧美伦电影理论片| 亚洲二区免费| 亚洲在线观看视频网站| 久久久人成影片一区二区三区 | 欧美日韩另类在线| 国产亚洲欧美aaaa| 亚洲精品乱码久久久久久蜜桃91 | 亚洲图片欧美日产| 亚洲国产日韩一区二区| 亚洲一区国产精品| 久久偷窥视频| 国产精品国产三级国产普通话99 | 国产欧美短视频| 亚洲片在线资源| 欧美在线观看网址综合| 亚洲午夜高清视频| 久热爱精品视频线路一| 国产精品久久久久一区二区三区| 精品成人一区二区| 亚洲天堂黄色| 日韩一级精品视频在线观看| 久久大逼视频| 欧美午夜免费电影| 亚洲国产日韩欧美在线99 | 久久精品国产v日韩v亚洲 | 激情久久五月天| 亚洲在线电影| 夜夜爽夜夜爽精品视频| 久久天天躁夜夜躁狠狠躁2022 | 日韩视频一区二区在线观看 | 欧美一区视频| 欧美手机在线| 亚洲精品网站在线播放gif| 久久精品国产免费观看| 欧美一级二级三级蜜桃| 欧美日韩视频在线观看一区二区三区| 娇妻被交换粗又大又硬视频欧美| 亚洲资源在线观看| 亚洲午夜免费视频| 欧美乱大交xxxxx| 有坂深雪在线一区| 欧美在线精品免播放器视频| 亚洲一区二区三区四区五区午夜| 欧美激情国产日韩| 亚洲第一网站| 久久精品国产99精品国产亚洲性色 | 99www免费人成精品| 日韩午夜免费| 欧美成人蜜桃| 亚洲福利视频三区| 亚洲欧洲视频| 六月天综合网| 精品91视频| 亚洲国产一区二区三区高清| 久久久精品久久久久| 国产日韩欧美中文在线播放| 亚洲视频一二| 亚洲一区欧美二区| 国产精品久久久久久久久果冻传媒| 一区二区久久| 亚洲小说欧美另类婷婷| 欧美无砖砖区免费| 一区二区三区四区蜜桃| 亚洲一区二区三区免费视频| 欧美日韩亚洲一区二区三区在线| 亚洲毛片在线| 亚洲午夜精品网| 国产精品国产a| 亚洲欧美国产高清va在线播| 午夜精品久久久久久99热软件| 国产精品国产三级国产 | 亚洲精品影院在线观看| 欧美黄在线观看| 亚洲日产国产精品| 在线综合欧美| 欧美视频第二页| 一区二区三区国产精品| 亚洲欧美亚洲| 国产日韩一区二区三区在线播放| 欧美一级淫片aaaaaaa视频| 久久久不卡网国产精品一区| 红桃av永久久久| 亚洲精品欧美极品| 欧美三级日本三级少妇99| 亚洲色图综合久久| 久久精品国产久精国产思思| 黑人中文字幕一区二区三区| 亚洲经典在线看| 欧美破处大片在线视频| 在线亚洲+欧美+日本专区| 欧美亚洲视频在线观看| 国产亚洲欧美一区二区| 亚洲第一中文字幕| 欧美国产日韩一区二区在线观看| 日韩视频在线一区二区| 性8sex亚洲区入口| 国内自拍亚洲| 夜夜嗨av色综合久久久综合网| 国产精品久久久久久av福利软件 | 一区精品久久| 一本色道久久综合| 国产伦一区二区三区色一情| 亚洲高清不卡av| 欧美日韩亚洲网| 欧美在线啊v一区| 欧美日韩国产一区| 亚欧成人在线| 欧美精品v日韩精品v韩国精品v| 亚洲一区二区视频在线观看| 久久亚洲精品中文字幕冲田杏梨| 91久久国产精品91久久性色| 亚洲欧美视频在线观看| 在线精品国产欧美| 亚洲一区二区在线播放| 国产中文一区| 亚洲视频在线观看免费| 国模私拍一区二区三区| 制服诱惑一区二区| 狠狠色狠狠色综合人人| 亚洲午夜精品久久久久久浪潮| 国内精品久久久久影院薰衣草| 99在线热播精品免费99热| 国产日韩欧美中文在线播放| 99精品国产在热久久| 国产亚洲欧美一级| 亚洲视频网站在线观看| 激情久久久久久久| 午夜精品久久一牛影视| 亚洲欧洲精品一区二区| 久久久精品视频成人| 一区二区三区欧美成人| 欧美成人国产va精品日本一级| 亚洲一区中文| 欧美日韩国产精品一区二区亚洲| 欧美在线免费播放| 国产精品美女在线| 9国产精品视频| 精品91免费| 欧美影院一区| 亚洲婷婷免费| 欧美日韩18| 91久久精品国产91久久性色|