新闻中心

EEPW首页>嵌入式系统>设计应用> ATmega128L单片机的MiCrOSD卡读写

ATmega128L单片机的MiCrOSD卡读写

作者: 时间:2009-06-30 来源:网络 收藏

刚上电时,Micro SD卡缺省使用专有的SD总线协议。将Micro SD卡切换到SPI模式,主机需要发出命令(2MD0(GO_IDLE_STATE)。Micro SD卡会检测到SPI模式选择信息,因为卡选择(CS)引脚在该命令和其他所有SPI命令传送过程中都保持为低电平。Micro SD卡以R1作为响应。空闲状态位被置为高电平,此时Micro SD卡进入空闲状态,此阶段的SPI时钟频率不能超过400kHz(将SPCR寄存器设置为0x53)。Micro SD卡进入SPI模式后,主机应该先发一条初始化指令CMD1。此时可将SPI频率设置为高速模式(将SPCR寄存器设置为0x50)。然后发送命令CM1359决定是否开启CRC校验,设置读、写块数据长度,最后延迟8个时钟后返回。MicroSD初始化流程如图2所示。

本文引用地址://m.amcfsurvey.com/article/173684.htm

2.2 Micro SD卡单块数据
从Micro SD卡中读取一个数据块只需要主机发送CMDl7(READl_SINGLE_BLOCK)命令,并将起始地址作为参数(此地址必须和介质上一个块的起始位置对齐),然后.Micro SD卡会验证这个字节地址,并以一个R1命令作为响应。完成了Micro SD卡读取操作后,先发送一个起始数据命令,接着发送固定数量的数据,最后是两个字节CRC校验。
从Mimro SD卡中写入一个数据块和读取数据块相似,需要主机发送CMI)24(wRITE_BLOCK)命令启动写操作过程,Micro SD卡将以R1命令响应格式进行应答。如果命令响应,则进行写操作,主机发送起始令牌,然后发送固定数量的数据字节(512字节),返回一个数据响应令牌指示需要写入的数据是否完成,最后是两个字节的CRC校验,单块数据流程如图3所示。

2.3 Micro SD卡的文件存储
为了方便ATmegal28L对Micro SD卡中文件进行操作,以及要使Micro sD卡的数据能在PC机上得到正确的访问,需要在Micro SD卡上创建它们支持的文件系统,这就需要设计自己的文件管理系统FAT。FAT文件系统有FATl2、FATl6、FAT32,它们的主要不同是在磁盘分配表结构中每个记录所占的位数不同。FAT32文件分配表每一表项为32位。本文选择建立FAT32文件系统。
文件分配表系统的分区应该有以下几部分:
①保留区,FAT32称这个区域为引导扇区(bootsec-tOr)。它是操作系统可以直接访问的第一个扇区,主要包括与引导操作系统有关的引导参数和引导程序,还有就是与FAT文件系统有关的BPB参数(Bios ParameterBlock)。
②文件分配表,记录磁盘上簇的分配情况,在条件允许的情况下,通常都会把文件分配表全部读到内存中去。
③根目录区,记录根目录的信息。文件和目录数据区,是各种文件数据的实际存放区域。
一个文件管理系统的工作过程主要有三步:第一步是读取MBR区,主要是读DPT表,了解存储设备分区情况。第二步,读取BPB信息,确定FAT文件系统的各种基本参数。第三步,显示当前目录位置。文件系统的实现,就是把对应的文件目录操作拆成相应的扇区命令就可以了。因此,应该在FAT初始化的时候将读写扇区函数指针指向Micro SD卡的读写函数:

2.4 FAT32文件系统应用接口函数的实现
FAT32文件系统向应用层提供的接口有:FAT_FindFreeCluster(),查找空簇;FAT_ModifyFAT(),修改FAT项;FAT_OpenDir(),打开目录;FAT_MkDir(),建目录;FAT_RmI)ir(),删除目录;FAT_Rename(),重命名;FAT_Create(),创建文件;FAT_Open(),打开文件;FAT_write(),写文件;FAT_Read(),读文件;FAT_Close(),关闭打开文件;FAT_Delete(),删除文件。下面对文件的打开、读/写和删除函数接口作详细介绍。



评论


相关推荐

技术专区

关闭