28.SD卡简介(SPI方式)——mini版专用

发布者:心灵舞者最新更新时间:2017-11-10 来源: eefocus关键字:SD卡  SPI方式 手机看文章 扫描二维码
随时随地手机看文章

一。 SD卡简介

1. 什么是SD卡

28.SD卡简介(SPI方式)——mini版专用

28.SD卡简介(SPI方式)——mini版专用

2. SD卡的特点

28.SD卡简介(SPI方式)——mini版专用

3. SD卡的寄存器

28.SD卡简介(SPI方式)——mini版专用
CSD寄存器包括卡的容量,数据块的大小,非常重要的寄存器。


二。SPI 模式如何访问SD卡

1. SPI模式下,SD卡的命令格式

28.SD卡简介(SPI方式)——mini版专用
2. SD卡命令介绍

28.SD卡简介(SPI方式)——mini版专用
CMD0用来复位SD卡。

CMD8用来区分2.0卡还是1.0卡。

CMD9读取卡的特定的数据寄存器SCR。

CMD10读取卡的标志寄存器CID。

CMD16设置块大小,对于SDHC无效,SDHC固定是512字节。

CMD17读取一个块的数据。

CMD18读取多个块的数据。

CMD24是写入一个块的数据。

CMD25是写入多个块的数据。

每个指令都有一个响应。

SD卡和单片机的通信过程

28.SD卡简介(SPI方式)——mini版专用
R2到R7响应,请参照《SD卡2.0协议.pdf》7.3.2节

3. SD卡初始化

28.SD卡简介(SPI方式)——mini版专用
初始化步骤:

28.SD卡简介(SPI方式)——mini版专用

28.SD卡简介(SPI方式)——mini版专用
此流程图为SPI模式

流程解读: 先Power-on上电,然后延时大于74个CLK,然后使CS=0,发送CMD0,这样就进入SPI模式,然后发送CMD8(通常带个参数0x1AA)1为代表主机的供电范围为2.7V到3.6V和AA为检查通信,这个指令最重要的作用是用来区分是2.0的卡还是1.x的卡或是MMC卡,如果这个指令有响应,就是说明卡是2.0的卡或者是以后版本的卡,如果没有响应就说明是1.x的卡或是MMC卡,如果是2.0的卡就会有响应,然后检查卡的电压,CMD58是可选的指令,这里用不到,就不发送CMD58,发送ACMD41指令(注意在发送这个指令之前要先发送CMD55),如果主机支持高容量的卡就设置HCS位等于1,如果不支持,设置HCS=0,发送完ACMD41指令后,卡有个R1响应,如果R1响应中idle_state = 1,就是空闲状态=1,如果空闲状态=1,就不停发送ACMD41指令,知道空闲状态标志位idle_state=0,再进行下面的步骤,发送一个CMD58指令,通过CMD58指令,返回一个OCR寄存器的值(CMD58指令是读取OCR寄存器的值),OCR寄存器中有个CCS位,如果CCS=1,说明是一个2.0的SDHC高容量的卡,如果CCS=0,说明是 一个2.0的标准容量的卡,也就是0到2GB的卡。

     另外一个如果不响应CMD8,是一个1.x的卡或是MMC卡,然后同样CMD58指令不用,发送ACMD41指令,这里注意对于1.x的卡,HCS位是无效的,所以参数为0,对于ACMD41没有响应的话,就是一个MMC卡,如果对于ACMD41有响应,就判断idle_state位空闲状态是不是等于0,等于0以后这个就是1.x的标准容量的卡。

28.SD卡简介(SPI方式)——mini版专用
VHS位一般设置为0001b,CMD8使用的参数一般是0x1AA。

28.SD卡简介(SPI方式)——mini版专用
一般设置HCS位=1.

28.SD卡简介(SPI方式)——mini版专用
ACMD41指令只有第30位有效。

28.SD卡简介(SPI方式)——mini版专用
这里重点关心CCS位,如果是会SDHC卡,CCS=1,如果是SDSC卡,CCS= 0。通过CCS位可以区分是SDHC还是SDSC卡。

4. 单块数据读取512字节

28.SD卡简介(SPI方式)——mini版专用
接收512个字节的数据。

5. SD卡多块读取流程

28.SD卡简介(SPI方式)——mini版专用

28.SD卡简介(SPI方式)——mini版专用

28.SD卡简介(SPI方式)——mini版专用
注意:地址的单位跟卡的类型有关,数据地址如果是SDSC卡,地址单位是字节,如果是SDHC卡,是以512字节为单位,表示读取第几个512字节,2^32=4GB,对于SDSC卡足够寻址,SDSC卡最大为2GB,对于SDHC卡,寻址范围是2^32*512=2TB,所以SDHC卡最大为2T容量。

28.SD卡简介(SPI方式)——mini版专用

28.SD卡简介(SPI方式)——mini版专用

6. SD卡单块数据块写入流程

28.SD卡简介(SPI方式)——mini版专用

MCU可以读取MISO上的电平,如果读到是0,表示SD卡还在编程,就不能发新的数据,知道0xff,才能发送下一批数据。

7. SD卡多块数据块写入流程

28.SD卡简介(SPI方式)——mini版专用
注意:在发送结束令牌0xfd后,还要多写入一个512个字节的数据,然后才能完成写入。

28.SD卡简介(SPI方式)——mini版专用

28.SD卡简介(SPI方式)——mini版专用

28.SD卡简介(SPI方式)——mini版专用

28.SD卡简介(SPI方式)——mini版专用
发送完0xfd令牌以后,还要发送一个512字节的数据,然后才结束写入。

三。 硬件连接


关键字:SD卡  SPI方式 引用地址:28.SD卡简介(SPI方式)——mini版专用

上一篇:27. SD卡实验一 -SDIO简介
下一篇:29. SD卡简介(SDIO方式)

推荐阅读最新更新时间:2024-03-16 15:44

STCl2C5A60S2单片机的SD卡读写
O 引言 SD卡是一种微型、低功耗、可移动的Flash多功能存储卡,该卡向上兼容MMC卡,并增加了智能保护机制,以有效地防止盗版,同时具有更快的传输速率及更高的存储容量,可广泛用于便携式消费类电子产品中。本文首先介绍了STC12C5A60S2单片机在SPI协议下与SD卡的硬件接口电路,然后简要阐述了SPI总线模式以及软件模拟的SPI总线数据通讯,最后给出了实现SD卡的初始化和读写操作的软件流程。 1 STC单片机 STCl2C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(IT)的单片机,这是一种高速、低功耗、超强抗干扰的新一代805l单片机,它的指令代码完全兼容传统8051,但速度比8051快8~
[单片机]
STCl2C5A60S2单片机的<font color='red'>SD卡</font>读写
基于ARM9和μC/OS-II的SD卡文件系统的实现
随着嵌入式式技术的不断发展,ARM处理器凭借其高性能、廉价、耗能低的优质特性而得到广泛应用。文中主要针对货车动态称重系统中大量实时载重数据存取的需求,在ARM9嵌入式处理器和μC/OS-II操作系统基础上,设计实现了一种SD卡文件系统。该系统具有实时性强、存取速率高、易维护,易移植等特点。 1 硬件接口电路设计 本系统硬件开发平台处理器为S3C2440A,是三星公司推出的16/32位RISC微处理器,ARM920T内核,主频400 MHz,最高可达533 MHz,内部具有丰富的系统外围控制器和多种通信接口。SD卡支持SPI和SD两种通信模式,S3C2440A具有SD卡接口,支持SD总线模式,所以不再像低端的ARM处理器
[单片机]
基于ARM9和μC/OS-II的<font color='red'>SD卡</font>文件系统的实现
STM32F401 SDIO HAL driver初始化SD卡
STM32F4xx的HAL部分已经提供了SD的driver,初始化时的IO PIN等放在HAL_SD_MspInit。 void HAL_SD_MspInit(SD_HandleTypeDef *hsd) { GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GP
[单片机]
SD卡在单片机上的应用
SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。 (1)
[单片机]
基于STM32F407的FatFs文件系统在SD卡驱动上的移植
最近在做SD卡驱动,以前移植过efsl,觉得用的人不是很多,现在移植个FatFs,也跟上队伍。 第一步,保证SD卡底层驱动函数正确,包括SD卡初始化、SD扇区读写等。 第二步,下载FatFs源码,名为ff9b.zip,解压在src文件夹中可以得到diskio.c、ff.c、以及\option\cc936.c这三个源码文件,在STM32F407工程文件中创建FatFs文件夹,加入这几个源码以及相应头文件,并且在系统Include Path中加入这个文件夹的位置,以编译时找到其头文件。 第三步开始移植。diskio.c这个文件中定义了fatfs文件系统与硬件存储器之间的接口函数,供文件系统调用,包
[单片机]
SD卡协会发布影像速度等级的SD规格,支持4K和8K高像素影片
    SD卡协会释出SD记忆卡新规格,影片速度等级(Video Speed Class)的SD 5.0规格,支援4K、8K、3D和360度全景影片,且最高支援SD卡每秒写入90MB。 存储卡业界标准制定委员会SD卡协会(SD Association,SDA)于2月25日发布影片速度等级(Video Speed Class)的SD 5.0规格,可以同时记录和存取多种超高画质的影片格式,而新SD卡规格支援4K、8K、3D和360度全景影片,且让SD卡最快能在每秒写入90MB的资料,还能够优化采用NAND快闪记忆体架构的SD卡。 Video Speed Class也和UHS Speed Class规格一样有等级规范,以
[手机便携]
基于LPC2148的SD卡实现嵌入式系统升级设计
1 引言     随着现代工业社会逐步向智能化社会的过渡,嵌入式在现代经济生活中扮演着重要的角色。为了做出好的产品,必须与用户形成互动,利用用户的反馈信息不断完善产品。另外,产品在长时间使用中,会慢慢出现终端程序设计上的缺陷,这就要求对终端系统设备的内核、文件进行系统升级或者对设备进行功能维护。如果对几百个终端进行现场ISP升级,或通过JTAG口、串口实现升级,不仅浪费大量的人力、财力,更重要的是浪费了宝贵的时间,延误了开拓市场的机遇,降低了用户对产品的信誉度。为了解决这些问题,提出了利用LPC2148的SD卡实现嵌入式系统升级的设计方案。 2 总体系统升级方案设计     厂家生产出产品后,用户购买回去使用,当设备出现了系统
[单片机]
基于LPC2148的<font color='red'>SD卡</font>实现嵌入式系统升级设计
LPC1114 FAT下读写SD卡
前一贴里利用的是SSP总线下进行扇区的读写,这一贴将在FAT文件系统下进行SD卡的读写。 本来想自己写个简单的FAT文件系统,但是,在前不就,本人写了个FAT在AVR ICC下能够正常的运行,到LPC2148中来时死活不运行,这让我对自己写FAT失去了信心。本身FAT就是个比较复杂的东东,没有那么都时间去写。 再说了自己写的总是兼容性上有一定的。所以,决定还是移植一个比较好的文件系统吧。 在网络上的文件系统常见的有四个:UC/FS;ZLG/FS;efsl;FatFS。 第一个:UC/FS。文件系统没得什么说的,UCOSII那个公司开发的,稳定性,兼容性应该都不会差。 第二个:ZLG/FS。周立功的很多的上面都送了
[单片机]
LPC1114 FAT下读写<font color='red'>SD卡</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved