当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于AT89S52和FAT16的SD卡读写系统设计

引 言
    长期以来,闪存卡(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电源。

[!--empirenews.page--]
2 AT89S52与SD卡接口电路设计
2.1 SD卡接口规范
    SD卡工作在2.7~3.6 V电压下,图2是普通SD卡的结构示意图和引脚排列图,表1列出了各引脚在SPI模式下的定义和功能描述。主机与SD卡之间通过指令来实现交互。

2.2 接口电路设计
    AT89S52内有256字节的RAM,由于SD卡数据的读出与写入是以块为单位的,而每块为512字节,所以需要在单片机的最小系统上扩展1片RAM。本系统选用的RAM芯片为HM62256,容量32KB。系统硬件电路如图3所示。

3 软件设计
3.1 FAT16文件系统
    FAT16文件系统的存储结构如图4所示。

 [!--empirenews.page--]

   主引导记录区(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所示。

3.2 SD卡指令规范
    单片机通过相应指令与SD卡进行交互。SD卡有特定的指令格式,都是6字节长,最高有效位(MSB)传输优先,如图6所示。

    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中。

   [!--empirenews.page--]
3.3.2 SD卡的初始化
    SD卡的初始化流程如图7所示。SD卡上电延时74个时钟周期后,单片机向SD卡发送复位命令CMDO,使SD卡进入SPI模式。之后循环发送激活SD卡指令CMD1,直到接收到SD卡响应的第0位为0。

3.3.3 SD卡数据块的读写
    完成SD卡的初始化后,就可以对SD卡进行读写操作。读写操作都是通过指令来完成的:单块写命令CMD24,多块写命令CMD25;单块读命令 CMD17,多块读命令CMD18。单块读写时,数据块的长度为512字节,多块读写时SD卡收到1个停止命令CMD12后停止读写。图8、图9分别是单块读、写SD卡的软件流程。

3.4 FAT16文件读写
    按照FAT16文件系统的文件组织规范,编写读文件函数和写文件函数。FAT16文件读写的软件流程如图10所示。

结 语
    通过串口将本系统连接到PC进行测试,结果表明本系统完成了对FAT16文件系统下文件的读写。当采用11.059 2 MHz晶振时,读写速度和质量都令人满意。本系统采用51架构的AT89S52单片机,实现了基于FAT16文件系统的读写SD卡设计,整套系统成本较低,在嵌入式数据记录和存储中有广泛应用前景。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

南京2022年10月17日 /美通社/ -- 日前《2022第三届中国高端家电品牌G50峰会》于浙江宁波落幕,来自两百余名行业大咖、专家学者共同探讨了在形势依然严峻的当下,如何以科技创新、高端化转型等手段,帮助...

关键字: LINK AI BSP 智能家电

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭