stm32-SD卡实验

1. SD简介

SD卡,Secure Digital Card,称为安全数字卡(安全数码卡)。

SD卡系列主要有三种:SD(full size)MiniSD卡和MicroSD卡(原名 TF卡)。

特点:容量大、高安全性、体积小、传输速度快接口简单

2. SD分类

  • 存储等级

  • 速度等级

SD速度等级分为:Speed ClassUHS Speed ClassVideo Speed Class 

 Video Speed Class 分为V6V10V30V60V90对应不同视频格式

​​​​​​3. SD卡的驱动方式

 微处理器对SD卡进行操作,可通过SPI接口SDIO接口。不同接口,SD卡引脚功能不一样。

  •  SDIO接口通信线:CLK/CMD/DAT0~3

CLK:时钟线,由SDIO主机产生,由STM32微控制器SDIO外设输出 

CMD:命令线,SDIO主机通过该线发送命令控制SD卡,若命令要求SD卡响应,SD卡也是通过该线传输响应信息。

DAT0~3:数据线,用于接收或发送数据;SD卡可将DAT0拉低表示处于状态

TF卡只比SD卡少了一个电源引脚VSS2,其他引脚功能类似。

SD卡和TF卡只有引脚和形状大小不同,内部结构类似,操作时序完全相同,可用完全相同的代码驱动 

4. SD卡寄存器

SD卡有8个寄存器,但不能直接进行读写操作,需要通过命令来控制。SD卡协议定义了一些命令用于实现某一特定功能,SD卡根据收到的命令要求对内部寄存器进行修改。

SD总线上的通信基于命令数据位流传输。

命令:应用相关命令(ACMD)和通用命令(CMD),通过命令线CMD传输,固定长度48

响应:SD卡接收到命令,会有一个响应,用来反应SD卡状态。有2种响应类型:短响应(48位,格式与命令一样)和长响应(136)

数据:主机发送的数据 / SD发送的数据。SD数据是以块(Block)形式传输,SDHC卡数据块长度一般为512字节。数据块需要CRC保证数据传输成功。

5. SDIO模式

5.1SD卡命令格式 

SD卡的命令格式由6个字节组成,发送数据时高位在前,SD卡的写入命令格式如下:

  • Byte1:命令字的第一个字节为命令号(如CMD0CMD1等),格式为“0 1 x x x x x x 
  • Byte2~Byte5:命令参数,有些命令参数是保留位,没有定义参数的内容,保留位应设置为0

  • Byte6:用于校验命令传输内容正确性,前7位为CRC(循环冗余校验)校验位,最后一位为停止位0

注意:使用SDIO接口驱动,CRC7校验值必须正确;而SPI接口驱动,CRC7校验默认关闭,即伪CRC

  • SD卡常用命令 

  • SD卡响应

 SD卡和单片机的通信采用发送应答机制。

每发送一个命令,SD卡都会给出一个应答,以告知主机该命令的执行情况,或者返回主机需要获取的数据。使用SDIO接口时,响应通过CMD线传输。

SD卡响应因使用接口不同,格式也不同。响应具体有R1R1bR2R3R7

响应内容大小可以分为短响应48bit和长响应136bit

5.2 SD卡操作步骤

  • SD卡系统(主机和SD)定义了两种操作模式:卡识别模式数据传输模式

系统复位后,主机和SD卡都处于卡识别模式,主机在总线上找设备;当SD卡被主机识别后,SD卡进入到数据传输模式,而主机在总线上所有卡都被识别后也进入数据传输模式 

 

5.2.1SD卡初始化

需要区分4类卡(SDHC卡、SDSC卡、SD1.x卡、MMC)

 5.2.2 SD卡数据块读取流程

  • 单块

  • 多块

5.2.3 SD卡写入流程

  •  单块

  • 多块

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值