基于AT89S52和FAT16的SD卡读写系统设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

基于AT89S52和FAT16的SD卡读写系统设计

来源:中国一卡通网  作者:不详  发布时间:2014-01-23 09:55:11  字体:[ ]

关键字:SD卡  读写系统  数据传输  FAT16  

摘   要:本系统采用MCS51架构的AT89S52单片机。AT89S52是一种低成本、低功耗、高性能的CMOS 8位微控制器,具有8 KB在系统可编程Flash存储器。应用AT89S52读写SD卡,首先要确定它们之间的通信方案。

  1 系统方案介绍

  本系统采用MCS51架构的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条:一为输出电平器件输出的高电平的最小值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。

  考虑到SD卡在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卡之间通过指令来实现交互。

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

  图1 电平转换电路                                    图2 SD卡结构示意图

  2.2 接口电路设计

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

  表1 SPI模式下SD卡引脚定义

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

  图3 系统硬件原理图

  3 软件设计

  3.1 FAT16文件系统

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

  图4 FAT16存储结构示意图

  FAT16文件系统的存储结构如图4所示。

  主引导记录区(Main Boot Record,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表来定位文件。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖