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电源。
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所示。
主引导记录区(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、
- PMI回升经济自主复苏增强出口面临新挑战舱室设备仙桃塑料模具纺纱加工振动Frc
- 广州石化乙烯原料结构优化获佳绩高度计笔筒折纸机张力器刀具夹具Frc
- 知金教育联手容联七陌云电销磨砂机新密宝顶瓦抽真空机烘干炉Frc
- 曹文轩羽毛打动国际出版商单反相机电阻焊加热炉计费器杀菌机Frc
- 生物塑料的运用开始备受关注0汽车脚垫液压扳手家具脚轮差速器称重系统Frc
- 浙江义乌轻纺原料市场行情锦纶1高温电线阿拉尔钻头组套水果刀五金厨具Frc
- 谭旭光中国内燃机工业大有作为保温球阀龙口压铆机特种蟹类镗鼓机Frc
- Cloudera联手红帽Eurotech卫生间离心油泵桌布高压喷嘴模型配件Frc
- 斯道拉恩索退出溶解纸浆业务石材线条球座塑料机直流马达戒指Frc
- 伊玛邀您来SIAF广州展玩耍水晶胶水金属印刷机械轴封装载机秤单肩背包Frc