cmd的发送 mmc_SPI模式下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所示。

3.2 MMC卡块读写

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

(1)读取数据块

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

(2)写入数据块

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

4 小结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值