您好,欢迎来到维库电子市场网 登录 | 免费注册

Micro SD卡
阅读:13474时间:2010-12-24 09:57:44

  Micro SD卡是一种附带安全元件的大容量标准存储卡,为移动支付和信息安全提供安全保障。可以广泛的应用于手机支付、网上银行、手机银行、语音安全、版权保护等多种行业应用,可以涵盖从远程支付到近场手机支付的全系列应用场景。灵活性源自Java Card科技功能性和安全性是手机移动安全产品的核心。

描述

  MicroSD卡是把有序和随机的存取能力高度结合的闪存卡.通过专用的串行接口有效地进行快速和可靠的数据传输.这个接口允许几种卡通过连接外部装置直接应用. 这些MicroSD卡是完全兼容一些新的消费标准的。在MicroSD卡的系统描述中会有MicroSD卡系统标准的定义。

  MicroSD卡系统是基于半导体技术革新上的大容量存储系统。它已经发展成为了一种应用于多媒体消费类产品廉价,结实的存储介质.MicroSD卡适适用于那些廉价的播放器和驱动器的设计,不用移动任何一个部分.耗电量低,宽电压范围支持移动,电池电源。可用于音频播放器,万用笔记本,掌上电脑,电子书,电子百科全书,电子词典.用于非常有效的数据压缩方案。比如:MPEG格式, MicroSD卡将为多媒体数据的传输提供足够的容量。

特性

  - 容量: 128MB/256MB/512MB;

  - 兼容MicroSD卡2.0版本规格;

  - 物理层的规范部分是2.0版本;

  -卡内错误自动纠正;

  -电压传输范围: 2.7~3.6V;

  -耗电量较低:

  自动开关电源, 自动的管理电源;

  - 不要求额外的运行电压;

  -充电时插入或移除卡都不会造成毁坏;

  -数据张力: 100k 写入/擦除 周期;

  -便于终端客户处理;

  - 可信赖的电子结构;

  - 支持文本信息和图像;

  - 面积: 11mm(W)x15mm(L);

  - 厚度 跨连接区7mm;

  卡的厚度.95mm;

  - MICROSD卡的插槽可以连接适配器用;

MICROSD 卡的格式

  图像1. MICROSD 卡的格式

读写单块数据

  从Micro SD卡中读取一个数据块只需要主机发送CMD17(MSD_READ_SINGLE_BLOCK)命令,并将起始地址作为参数(此地址必须和介质上一个块的起始位置对齐),然后Micro SD卡会验证这个字节地址,并以一个R1命令作为响应。在完成Micro SD卡读取操作后,先发送一个起始数据命令,接着发送固定数量的数据,是2个字节CRC校验。读取一个数据块由函数u8 MSD_ReadBlock(u8*pBuffer,u32 ReadAddr,u16 NumByteToRead)来完成,pBuffer是一个指针,它指向接受Micro SD卡数据内存缓冲区的地址,ReadAddr是要读取数据在Micro SD卡中的地址,NumByteToRead是要读取的字节数,一般为512 B。

  从Micro SD卡中写入一个数据块与读取数据块相似。主机发送CMD24(MSD_WRITE_BLOCK)命令启动写操作过程,Micro SD卡将以R1命令响应格式进行应答。如果命令响应,则进行写操作,主机发送起始令牌,然后发送固定数量的数据字节(512 B),返回一个数据响应令牌,指示需要写入的数据是否完成,是2个字节的CRC校验,写入一个数据块由函数u8 MSD_WriteBuffer(u8*pBuffer,u32 WriteAddr,u32 Num-ByteToWrite)来完成,向Micro SD卡写数据函数中的参数与向Micro sD卡读数据函数中的参数相同。读/写单块数据流程如图所示。

读/写单块数据流程图

文件存储

  由于需要Micro SD卡上的数据能够在计算机上直接读/写,所以Micro SD卡文件系统必须与计算机的文件系统一致。目前常用的文件系统主要有微软的FATl2,FATl6,FAT32,NTFS,以及Linux系统下的 EXT2,EXT3等。由于微软Windows的广泛应用,在当前的消费类电子产品中,用得最多的还是FAT文件系统,如U盘、MP3,MP4,数码相机等,所以找到一款容易移植和使用、占用硬件资源相对较小而功能又强大的FAT开源文件系统,对于单片机系统设计者来说是很重要的。所以在Micro SD卡存储机制上,移植了FAT FS文件系统。FAT FS是一种完全免费开源的FAT文件系统模块,是专门为小型嵌入式系统而设计的。它完全用标准C语言编写,所以具有良好的硬件平台独立性,可以移植到多种平台而只需做简单的修改。需要使用者编写移植代码的是FAT FS提供的底层接口,包括存储介质读/写接口DiskIO和供给文件创建修改时间的实时时钟RTC。

  FAT FS Module一开始就是为了能在不同的单片机上使用而设计的,所以具有良好的层次结构,如图所示。最顶层是应用层,使用者无需理会FAT FSModule的内部结构和复杂的FAT协议,只需要调用Module提供给用户的一系列应用接口函数,如f-open,f-read,f- write,f-Close等就可以像在PC上读/写文件那样简单。

FAT FS Module层次结构

  1、文件(或目录)创建

  在Micro SD卡上创建文件(或目录)的过程就是在文件目录表中申请登记项的过程。首先程序要检测文件目录表(FDT)中是否已经存在该文件,然后申请空闲的FDT 表项。如果存在同名的文件,则返回,创建文件(或目录)失败。申请FDT表项成功后,程序会检测磁盘剩余的空间是否满足新创文件数据长度的需要,而后寻找个空闲的簇号,并修改对应的FDT表项。根据文件的大小,不断循环查找下一个空闲的簇,同时修改当前FAT项目为下一个簇号,直到一个FAT项写入0xFFFFH,以表示文件结束。新建目录时,只需要提供函数CreateDir()函数新建目录的目录名,其过程和创建文件一样,只是不需要提供数据相关的信息。

  2、 文件的读写

  Micro SD卡上的文件都是以簇(Cluster)为单位存取的。当读取Micro SD卡上的文件时,首先要根据文件名查找到文件加目录登记项(F-DT),根据文件中目录登记项中起始簇号即可以找到文件在数据DATA区中的簇内容,并且可以在FAT表中找到第二个簇号。根据第二个簇号又能读取第二簇的数据和FAT中第三个簇号,这样就可以读取全部文件数据。写文件时要保证 FAT1和FAT2内容的一致性,即要对两个FAT进行同样的写操作。当要在已有的文件中增添数据时,程序首先要分析原有文件一个扇区还有多少剩余空闲字节数,以便新添加数据与这一个扇区汇合,超过扇区的数据在申请新的空闲FAT表项时,其过程与新建文件类似。在文件的一簇填写0xFFFFH 表示文件结束。

  3 、文件(或目录)的删除

  删除文件的操作需要提供函数DeleteFile()删除文件的文件名和扩展名。删除文件时,不涉及数据区的操作,只须在文件的目录登记项(FDT)上做一个删除标记,并把文件在FAT表中所占用的簇标记为“空簇”。

  程序先在FDT中查找是否有同名文件,如果存在同名文件,则将在对应的FDT表项中个字节内容改为0xE5H,表示该FDT表项的内容已经被删除,新建文件可以使用该表项。还需要将FAT表中所有文件相关簇项目的内容都改成Ox0000,释放出所对应的Micro SD卡磁盘空间。若未找到同名文件,则返回一个错误值。删除目录的操作只需要提供函数DeleteDir()删除目录的目录名。程序先在FDT中查找是否有同名目录项,如果存在同名目录项,则将对应的FDT表项中个字节内容改为0xE5H。然后读出对应目录的起始簇号,在该簇号中去删除该目录下的所有文件。

维库电子通,电子知识,一查百通!

已收录词条45426