当前位置: 首页 > article >正文

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卡写入流程

  •  单块

  • 多块


http://www.kler.cn/a/285938.html

相关文章:

  • 内存区域与内存溢出异常
  • flutter使用echarts
  • 优惠券的最佳利用策略:如何在Java代码中优化优惠券的使用
  • SpringSecurity Oauth2 - 密码模式完成身份认证获取令牌 [自定义UserDetailsService]
  • 9千含读音文件的中文汉语学习ACCESS\EXCEL数据库
  • 《JavaEE进阶》----6.<SpringMVC实践项目:【简易两整数加法计算器】>
  • 网络安全总结②
  • 远程调用以及注册中心Nacos
  • JavaScript初级——键盘事件
  • 前端面试模拟:常见的3个JavaScript经典考题
  • uniapp分包
  • ElasticSearch7.12.1详细安装
  • 【XR】SDK的接口规划与设计
  • C++ 求1+2+3+......+n__有限制(牛客网)
  • 机器学习-SVM方法
  • Linux系统性能调优技巧
  • C#按引用传递参数
  • HTML中自定义属性并通过JS获取属性值
  • Nginx负载均衡中动态资源缓存配置指南
  • esp8266根据httpserver状态,调用网络唤醒,实现一键开机