积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式软件 >> 网络协议
  相关分类: LINUX | WINCE | UC/OS | Bootloader | 下载 | VXWORKS | 网络协议 | JAVA | 汇编 | 驱动设计 | Symbian | XP Embedded | Nucleus | 新产品 | 相关文章 | 综合技术 |
SPI模式下MMC卡的读写机制
 
作者:长江大学 聂虹 徐爱钧   来源:中电网    点击数:288   更新时间:2007-11-12
您可以添加到网摘 让更多人关注此文章:

     引言

      
多媒体卡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所示。

MMC 接口电路

       3 SPI模式下MMC卡的读写实现

      

3.1 MMC卡初始化

       在对MMC卡读写之前要进行初始化操作,这是确保MMC卡能在SPI模式下进行正常数据读写的前提,MMC卡上电后默认进入MMC模式,等待至少74个时钟周期后,片选信号置低,发送CMD0,CMD0的命令索引位是000000,即发送命令字0x40、0x0、0x0、0x0、0x0、0x95。如果收到应答信号01H,则表示出错。然后向MMC卡发送CMD1,CMD1命令索引位是000001。因此进入闲置状态后CRC校验默认关闭,故CRC校验位可取任意值。受到正确的应答信号00H之后,MMC卡即进入SPI模式;如果收到应答信号不是00H,则重发CMD1直到收到正确的应答。初始化过程如图2所示。

MMC初始化过程

       3.2 MMC卡块读写

       初始化完成后,可使用默认的读写长度(512字节)进行MMC卡的读写;也可用CMD16来设置MMC卡的块读取长度,可以是1-512字节之间的任意值。但是对MMC卡的写过程则要求块长度必须为512字节。MMC卡读写数据时使用的是绝对地址,即从0开始编号的32位地址,这里使用块号来进行读写,块号是从0开始编号的,且每块的大小为一扇区(即512字节),故开始都必须将扇区号转换成绝对地址。

     (1)读取数据块

       向MMC卡发送CMD17,收到有效应答信号0x00后,开始接收数据,数据由数据起始令牌和数据块组成,其中起始令牌值为0xFE。当收起起始令牌后,随后接收数据块,读操作如图3所示。

MMC读操作

       (2)写入数据块

       向MMC卡发送CMD24,收到有效应答信号0x00后,开始发送数据。数据同样由数据起始令牌(0xFE)和数据块组成。写操作如图4所示。

MMC写操作

       4 小结

       SPI总线接口简单易用、兼容性好,使用SPI接口实现对MMC卡的读写操作是非常简单有效的。用SPI接口可以实现每秒约1MB的读写速度,而用MMC接口则可以达到每秒约3MB的读写速度。虽然读写速度降低了一些,但是已经可以基本满足读写速度的要求。



相关文章
· 一种基于FPGA的数字电视调制器硬件电路设计[133]
· 单片机硬件系统设计原则[280]
· 新型以太网控制器ENC28J60及其接口技术[310]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
基于飞思卡尔ARM11平台的i.MX
租妻七十二小时全纪实
中国女生口述:拍A片的痛苦经历
H.264硬件编解码在嵌入式开发板领
英特尔芯片未来技术:探索移动小设备投
Camstar帮助中国医疗器械制造商
中华英才网将被全盘收购
破国外垄断 中国移动存储标
IC设计面临三重挑战 ED
手机电视芯片方案需求多变
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
电子工程师请进...
电子工程师的园地...
欢迎大家到中电网来学习交流...
这个网站太好了...
希望精英加入...
希望...
好的论坛...
中电网技术论坛...
哪位推荐几款低压的DC-DC芯...
震撼的开幕式,电视上看不到的镜...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网