| |
我要投稿 | 资讯 | 机械 | 电气 | 软件 | |
| 机电专业技术网>电子电气>单片机> |
单片机与MMC卡的接口多媒体卡MMC(MultiMedia Card)是由美国SanDisk公司和德国Simens公司于1997年共同开发推出的一种多功能存储卡。内置控制电路,可以使用在手机、数码相机、 MP3、PDA等多种数字设备上,可反复记录30万次。现在市场上的主流容量有128 MB~2 GB。文中首先介绍单片机对SPI协议下的MMC卡的底层读写操作,然后分析MMC卡文件系统的结构,最后详细说明MMC卡文件的创建、读写、删除等操作。该方法可应用到与Windows有交互的嵌入式系统中,便于文件的统一管理。 1 单片机与MMC卡的接口 1.1 单片机与MMC卡的接口电路 接口电路采用的是Philips公司的增强型LPC93x系列单片机。它除了比普通的8051有更快的指令执行周期外,还提供多种在片的硬件接口功能,如UART、SPI、I2C等,因此用LPC93x的SPI接口实现单片机与MMC卡的互连。 MMC卡有7个引脚,支持两种串行数据传输协议,即MMC(Multimedia Card)模式和SPI(Serial PeripheralInterface)模式。在SPI模式中,通过4条信号线完成数据的传输。这4条信号线分别是时钟SPICLK、数据输入 MISO、数据输出MOSI和片选SS#。 LPC93x单片机与MMC卡的接口电路如图1所示。
1.2 MMC卡底层读写原理 MMC卡读写操作都是基于命令的,通过向MMC卡发送枢直的命令并读取枢直的响应来实现对MMC卡的控制。在对MMC卡读写之前,首先要进行初始化操作。这是确保MMC卡能在SPI模式下进行正常数据读写的前提。需要注意的是,在发送使MMC卡空闲命令CMD0之前至少等待74个时钟,确保MMC卡进入 SPI模式。 初始化完成之后,如果使用默认的块读写长度(512字节),就可进行MMC卡的读写。当然,也可用CMD16来设置。MMC卡的块读取长度,可以是 1~512字节之间的任意值。但是对MMC的写过程则要求块长度必须为512字节。无论是MMC卡的读还是写,都要求在读写命令发送后有数据起始令牌 FEH,数据传输结束之后有2个字节的循环冗余编码CRC(Cyclic Redundancy Codes)。 2 MMC卡文件系统的结构分析 要使写入MMC卡的数据在Windows下访问,需要在MMC卡上创建Windows支持的FATl6文件系统。MMC卡上的FATl6文件系统的结构包含分区引导记录、文件分配表、文件目录表以及数据区4个部分。 分区引导记录通常包含4块内容; BPB表从扇区字节位移0bH开始,共占25字节。表1是从MMC卡的首扇区中读出的BPB表的内容。
在分区引导记录之后是FAT(File Allocation Table,文件分配表)区。FATl6的文件系统中有两份完全相同的文件分配表FAT1和FAT2,每份FAT表占用空间的大小可从BPB表中查得。 文件在磁盘上以簇为单位存储,但是同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,往往会分成若干簇,FAT表就是记录文件存储中簇与簇之问连接信息的,这就是文件的链式存储。FATl6以2个字节(即16位)表示1个簇,起始2个字为F8FFH、FFFFH,后面的FFFFH表示终止, 0000H表示未使用。 紧接在FAT表之后的是文件目录表FDT,固定占32个扇区,每个扇区可以容纳16个登记项,每个登记项的长度是32字节。 文件目录表之后就是数据区DATA,用来存放文件数据,占用大部分的磁盘空间。 3 MMC卡文件系统的实现 单片机对MMC底层的读写,按照FAT16的格式对MMC卡上数据进行操作,就可在MMC卡上创建文件、读写文件和删除文件等,从而实现文件的管理。3.1 文件(或目录)的创建 上一篇:单片机SRAM工艺的FPGA加密应用 下一篇:用8031单片机控制的数字钟 接口 MMC 数据 mmc_buffer 读写 目录 字节 系统 接口 MMC 数据 mmc_buffer 读写 目录 字节 系统 |