引言
多媒体卡MMC的特点是闪存功耗低,密度高,体积小,可靠性高,可擦除,可重写,容量大;内部控制电路,可以使用在手机、数码相机、MP3、PDA等多种数字设备上,可反复记录30万次,现在市场上的主流容量有128MB-2GB。
SPI最早是由摩托罗拉公司提出的一种串行总线接口,支持MCU与外设的双工、同步串行通信。由于其简单的接口设计,只用4根线即可完成所有的通信工作,因此被大部分的MCU芯片所支持。利用被广泛支持的SPI总线来进行MMC卡的读写,可解决没有MMC控制器的问题。
1 MMC卡
1.1 MMC卡的简介
MMC卡的面积为24mm×32mm,厚度为1.4mm,MMC卡的工作电压为2.7-3.6V,时钟频率范围为0-20MHz,为了支持广泛的应用,MMC卡接口简单(为7引脚),具有最大的可扩展性和可配置性。其中3脚为电源供应,数据操作通过4脚的串行总线完成。作为SPI设备,MMC卡的SPI通道由以下4个信号组成:CS的反(片选),CLK(时钟),DateIn(主机到卡的数据信号)和DateOut(卡到主机的数据信号)。CS的反是MMC卡的片选信号线,在整个SPI操作过程中,必须保持低电平有效;CLK便于同步,DateIn不但传输数据,还发送命令;DateOut除了发送数据外,还传送应答信号。
1.2 MMC卡的SPI协议
MMC存储卡有MMC和SPI两种工作模式。MMC卡上电后即进入MMC模式;当片选(CS)线被拉低时发送Reset(CMD0)指令会使MMC卡进入SPI模式,如果需要从SPI模式转入MMC模式,只能切断电源重新上电。
SPI协议是以主从方式工作的,这种模式通常有一个主设备和一个(或多个)从设备,SPI接口是一种通用同步串行接口总线,字长为8位,用来与外部设备进行通信。该接口在工作时,主设备通过提供移位时钟和从使能信号来控制信息的流动,主设备的每次开始传送任务时,都先将片选(CS的反)线置低以激活MMC卡,使其进入工作状态。
MMC卡的SPI协议的特点主要有:被选中的卡总是对来自于设备的指令有所响应的,当卡遇到错误时,会返回一个出错响应来代替期望的数据,指令的响应是一个8位或16位的结构,只支持单块读写操作,块的大小可以大到一个扇区(512字节),小到1个字节。
2 硬件电路设计
MMC卡既可以采用MMC总线访问,也可以采用SPI总线访问,大部分微处理器都有SPI接口而没有MMC总线接口,如果采用I/O口模拟MMC总线,不但增加了软件的开销,而且对大多数微处理器来说,模拟MMC总线远不如真正的MMC总线速度快,这将大大降低总线数据传输的速度。
基于以上考虑,可以采用LPC2200微处理器的SPI接口,设计访问MMC的硬件接口电路,LPC2200是系统的核心控制器,它的主要作用是将数据发送至MMC卡内存储。MMC卡的数据写入是以块为单位的,一块为512字节,所以当RAM中存放了512字节数据时,LPC2200便将其一次性写入MMC卡中。LPC2200微处理器与MMC卡卡座接口电路如图1所示,连接引脚如表1所示。
SPI模式下MMC卡的读写机制
评论