【STM32】使用SDIO进行SD卡读写(一)-初步认识SD卡

先介绍几个协会的网站,里面有相关的文件

多媒体卡协会网站:www.mmca.org(STM32F4的SDIO支持的一种通讯,但不是本文的重点)

SD卡协会网站:www.sdcard.org

CE-ATA:www.ce-ata.org(STM32F4的SDIO支持的一种通讯,但不是本文的重点)

我会着重在SD卡和SDIO协议的部分,以下图片截至SD卡协会网站

原本SD协议是用在存储上的(图片蓝底处),后来扩展了一个叫SDIO的协议(全名:Secure Digital Input and Output)(图片紫底红框处)

这个协议属于外设接口,使得它能连接一些外设,例如:GPS 相机 Wi-Fi 调频广播 以太网 条形码读卡器 蓝牙,从此跳出存储这个局限

下面是几种卡的类型(容量),配合上面图片写的图标

另外,我没能找到SDUC的SD卡

STM32F4里,只支持SD 2.0协议,SD和SDHC属于这个范畴,SDXC是4.0协议,所以不支持

其他相关的技术,可以去SD卡协会网站查看

下面来说明一下SD卡的引脚

SD卡的读取方式有两种:SDIO、SPI

【SDIO模式】

CLK:时钟,通信过程需要的东西,没这个东西,数据会不稳定

CMD:命令,可下达命令,例如读取SD卡的信息,或是写入数据等等

DAT0、1、2、3:数据线

VCC、VSS:电源和地

【SPI模式】

CLK:时钟,理由同SDIO里面的CLK

MOSI:命令或数据输出到SD卡

MISO:SD卡传输数据到主机

CS:片选,选择是否要操作当前的SD卡

SDIO的存储速度会高于SPI,假设都是SD卡传输数据到主机

SDIO有4条数据线,而SPI只有MISO这1条

另外,SDIO相当于总线,它可以挂载很多SD卡,但是STM32F4只支持一张SD卡

在与SD卡操作的过程中,会有两种不同的操作频率

第一种:识别SD卡阶段的时钟频率FOD,最高为400KHz

第二种:后续数据传输的时钟频率FPP,默认最高为25MHz,还可以透过寄存器修改,修改后最高为50MHz

下面介绍SD卡的8个寄存器

CID:卡识别寄存器,一些制造商ID、版本、日期等相关讯息

RCA:相对卡地址寄存器,初始化时,动态由主机确定,后续挂载在SDIO总线上时,透过RCA找到对应的SD卡来进行操作

DSR:驱动级寄存器,配置卡的输出驱动

CSD:卡的特殊数据寄存器,SD卡的操作信息

SCR:SD配置寄存器,SD卡的特殊信息

OCR:操作条件寄存器,例如SD卡的电压信息

SSR:SD状态寄存器,SD卡专有的特征信息

CSR:SD卡状态寄存器,SD卡的状态信息

这一章节先结束,下一章来说明命令(CMD)的部分

原文地址:https://www.cnblogs.com/PureHeart/p/12008457.html

时间: 2024-10-28 10:54:24

【STM32】使用SDIO进行SD卡读写(一)-初步认识SD卡的相关文章

Android中向SD卡读写数据,读SD卡和手机内存

package com.example.sdoperation; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import android.support.v7.app.Actio

第36章 SDIO—SD卡读写测试

第36章     SDIO-SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.<STM32F4xx规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>以及SD简易规格文件<Physical Layer Simplified Specificatio

Android手机内存,SD卡读写

在手机上有两个存储位置 1 手机内部存储 2 SD卡 文件操作模式: 是否允许外部访问? 文件以覆盖/追加方式写? 手机内存读写 //保存文件到手机内存 public void save(String fileName,String content) throws IOException{ FileOutputStream fos = context.openFileOutput("a.txt", Context.MODE_PRIVATE); fos.write(content.get

Android Rom分区 与 SD卡读写

1.Rom分区 在Android中,对数据的保护是很严密的.除了放在SD卡中的数据,一个应用所拥有的数据库.文件等内容都是不允许其他应用直接访问的,这一部分数据都是在/data/data里面. 这里所说的SD卡是逻辑上的SD卡,比如我现在用的galaxy s4 的Rom是16g,Android系统会把这16g分成两个部分,一个是系统和应用程序数据区,另一个就是虚拟的SD卡,可以称它为内置SD卡. 我们平时外插进手机的是TF卡,简称Micro SD卡,具体的可以参考百度. 三星手机默认的内置SD卡

单片机SD 卡读写

1.迄今为止看到的最详细的关于SD卡SPI mode的分析和代码 http://elm-chan.org/docs/mmc/mmc_e.html 2.转载http://blog.csdn.net/ming1006/article/details/7281597 现在我们手机的内存卡多为Micro SD卡,又叫TF卡,所以Micro SD卡比SD卡常见.自己曾经也想写写SD卡的读取程序,但又不想特地再去买个SD卡,这时想起手机内存卡不是和SD卡很像吗?在网上查了以后发现SD卡和Micro SD卡其

RC522射频卡读写模块驱动(仅读取)

目录 说明 测试结果 main RC522.h RC522.c 说明 更改了网上的源代码,仅保留了读取序列号并通过串口回传的功能.版本号:V1 感谢 https://blog.csdn.net/qq_28877125/article/details/80437095 测试结果 main #include "sys.h" #include "delay.h" #include "usart.h" #include "lcd.h"

无锡换社保卡的流程(旧社保卡在手上)

由于一些原因,导致社保卡消磁或者损坏了,需要去社保局换卡. 一.准备东西: 身份证.旧社保卡.钱 二.换卡地点: 1.社保局办事处,如滨湖区办事处 ,需要1个月的时间才能拿到新社保卡 2.人力资源中心(广瑞路2号),直接上3楼,在左侧这边都是社保卡办理的地方.10天后,来人力资源中心拿新卡 PS:人力资源中心,双休  69号窗口:领新卡地方 78号窗口:办理换卡的地方,只要跟他说明情况,把身份证给他就可以. 第一次换卡是免费的.之后换卡20元一次. 如果不方便再次请假来拿卡,可申请快递:就在78

【STM32】使用SDIO进行SD卡读写(二)-了解SD总线,命令的相关介绍

本章的介绍内容 一.SD总线,传输的流程 二.SD总线里面的命令和响应的数据格式 三.SDIO进行传输时,使用4根数据线的传输情况 四.CMD表格,和SD卡通讯所需的命令介绍 一.SD总线,传输的流程 下面来看一下SD bus(总线) 提醒一下,SDIO通讯,里面就有CMD线和DAT线,分别是发送命令和数据传输 上面是模拟一些操作情况,大致就是命令发出后(CMD线),SD卡有没有做出响应(CMD线),SD卡需不需要传送数据(DAT线),或是主机要不要发送数据(DAT线) 二.SD总线里面的命令和

SD卡读写之FileNotFoundException: /storage/emulated/0object.txt: open failed: ENOENT (No such file or dir

读写sd卡中的文件按照如下步骤:1调用Environment的getExternalStorageState()方法判断手机上是否插入了sd卡,并且应用程序具有读写SD卡的能力 //如果手机已经插入了SD卡,且具有读写sd卡的能力,下面的语句将会返回true Environment.getExternalStorageState().equals(Envronment.MEDIA_MOUNTED) 2)调用environment的getExternalStorageDIrectory()方法获取