SD卡-中文学习笔记

合集下载

SD卡-中文学习笔记

SD卡-中文学习笔记

SD卡操作一、概述1、简介SD卡是基于flash的存储卡。

SD卡和MMC卡的区别在于初始化过程不同。

SD卡的通信协议包括SD和SPI两类。

SD卡使用卡内智能控制模块进行FLASH操作控制,包括协议、安全算法、数据存取、ECC算法、缺陷处理和分析、电源管理、时钟管理。

2、功能介绍2.1 特点1)主机无关的FLASH内存擦除和编程读或写数据,主机只要发送一个带地址的命令,然后等待命令完成,主机无需关心具体操作的完成。

当采用新型的FLASH时,主机代码无需更新。

2)缺陷管理3)错误恢复4)电源管理Flash每个扇区有大约10万次的写寿命,读没有限制。

擦除操作可以加速写操作,因为在写之前会进行擦除。

3 SD总线模式3.1 Negotiating Operation Conditions当主机定义了SD卡不支持的电压范围时,SD卡将处于非活动状态,将忽略所有的总线传输。

要退出非活动状态唯一的方法就是重新上电。

3.2 SD卡获取和识别SD卡总线采用的是单主多从结构,总线上所有卡共用时钟和电源线。

主机依次分别访问每个卡,每个卡的CID寄存器中已预编程了一个唯一的卡标识号,用来区分不同的卡。

主机通过READ_CID命令读取CID寄存器。

CID寄存器在SD卡生产过程中的测试和格式化时被编程,主机只能读取该号。

DAT3线上内置的上拉电阻用来侦测卡。

在数据传输时电阻断开(使用ACMD42)。

3.3 卡状态卡状态分别存放在下面两个区域:卡状态(Card Status),存放在一个32位状态寄存器,在卡响应主机命令时作为数据传送给主机。

SD状态(SD_Status),当主机使用SD_STATUS(ACMD13)命令时,512位以一个数据块的方式发送给主机。

SD_STATUS还包括了和BUS_WIDTH、安全相关位和扩展位等的扩展状态位。

3.4 内存组织数据读写的基本单元是一个字节,可以按要求组织成不同的块。

Block:块大小可以固定,也可以改变,允许的块大小是实际大小等信息存储在CSD寄存器。

SD6.0规范(简化版)学习笔记

SD6.0规范(简化版)学习笔记

SD6.0规范(简化版)学习笔记⽬录1.概述 (1)2.系统特点SYSTEM FEATURE (1)3.SD存储卡系统概要 (2)3.1按照读写特性,可分为读写卡以及只读卡。

(2)3.2按供电电压可分为两类 (2)3.3卡容量 (2)3.4速率等级 (2)3.5总线拓扑 (2)3.6总线协议 (2)3.6.1SD总线协议 (2)3.6.2SPI总线协议 (4)3.6.3UHS-2总线协议 (4)3.7SD存储卡的管脚和寄存器 (5)3.7.1SD 总线管脚安排 (5)3.7.2UHS-2总线管脚安排 (5)3.8ROM卡(即前⾯提到的只读卡) (5)3.9UHS-1卡 (5)3.9.1⽀持的速率 (5)3.9.2UHS-1卡的类别 (5)3.9.3UHS-1主设备类别 (5)3.9.4UHS-1总线速率模式选择流程 (5)3.9.5UHS-1系统框图 (6)3.9.6UHS-1卡总线速率模式总结 (6)3.10UHS-2卡 (6)3.10.1UHS-2卡⼯作模式 (6)3.10.2UHS-2卡类别 (6)3.10.3UHS-2主设备和卡配合 (7)3.10.4UHS-2接⼝选择时序 (7)3.10.5UHS-2卡总线速率模式总结 (8)3.11应⽤性能等级 APPLICATION PERFORMANCE CLASS (8) 3.12C ACHE (9)3.13SELF MAINTENANCE (9)3.14COMMAND QUEUE (9)3.15LV接⼝ (9)3.16UHS-2更⾼的总线速率(UHS-3) (9)4.SD存储卡的功能描述 (9)4.1概要 (9)4.2卡识别模式 (10)4.3数据传输模式 (10)4.4时钟控制 (10)4.5CRC (10)4.6E RROR CONDITION 出现错误的情况 (10)4.7命令 (10)4.8卡状态转换表 (10)4.9响应 (10)4.10SD存储卡的三种状态信息 (10)4.11M EMORY ARRAY PARTITIONING (10)4.12时序 (10)4.13速率等级划分 (10)4.13.1SDSC和SDHC的速率等级 (11)4.13.2SDXC卡的速率等级 (13)4.13.3UHS-1和UHS-2的速率等级 (13)4.13.4Video速率等级 (14)4.14E RASE TIMEOUT CALCULATION (15)4.15S ET B LOCK C OUNT命令 (15)4.16应⽤性能说明A PPLICATION P ERFORMANCE S PECIFICATION (15) 4.16.1应⽤性能等级 (15)4.16.2应⽤等级测试条件 (15)4.16.3应⽤等级性能参数 (15)4.17C ACHE (16)4.18S ELF MAINTENANCE ⾃维护 (16)4.19C ONMAND QUEUE模式 (16)5.卡寄存器 (16)6.SD存储卡硬件接⼝ (16)6.1热插拔 (16)6.2卡检测 (16)6.3电源保护(热插拔) (16)6.4电源 (16)6.4.1SD总线接⼝的上电时序 (16)6.4.2UHS-2接⼝的上电时序 (18)6.5P ROGRAMMABLE CARD OUTPUT DRIVER(可选) (19)6.6B US OPERATING CONDITIONS FOR 3.3V SIGNALING (19)6.6.1Threshold level for high voltage range (19)6.6.2Peak voltage and leakage current (19)6.6.3Power consumption (19)6.6.4Bus signal line load (19)6.6.5Bus signal levels (19)6.6.6总线时序(默认速率模式) (19)6.6.7总线速率(⾼速模式) (20)6.7D RIVE STRENGTH AND BUS TIMING FOR 1.8V SIGNALING (21)6.8ESD要求 (21)7.SPI模式 (21)1. 概述除了SD存储卡之外还有SDIO卡,SDIO卡基于SD存储卡,也兼容SD存储卡接⼝。

sd卡学习笔记之欧阳德创编

sd卡学习笔记之欧阳德创编

1、简介:SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD 模式和SPI模式,本系统采用SPI模式。

本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。

SD 卡内部结构及引脚如下图所示:SD卡内部图.JPG2、SD卡管脚图:SD卡图.JPG3、SPI模式下SD各管脚名称为:sd 卡:SPI模式下SD各管脚名称为.JPG注:一般SD有两种模式:SD模式和SPI模式,管脚定义如下:(A)、SD MODE 1、CD/DATA3 2、CMD 3、VSS1 4、VDD 5、CLK 6、VSS2 7、DATA0 8、DATA1 9、DATA2(B)、SPI MODE 1、CS 2、DI 3、VSS 4、VDD 5、SCLK 6、VSS2 7、DO 8、RSV 9、RSVSD 卡主要引脚和功能为:CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz 的频率;CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。

SD卡以命令形式来控制SD卡的读写等操作。

可根据命令对多块或单块进行读写操作。

在SPI模式下其命令由6个字节构成,其中高位在前。

SD卡命令的格式如表1所示,其中相关参数可以查阅SD卡规范。

4、MicroSD卡管脚图:MicroSD卡管脚图.JPG5、MicroSD卡管脚名称:MicroSD卡管脚名称.JPGSD 卡与MicroSD卡仅仅是封装上的不同,MicroSD 卡更小,大小上和一个SIM卡差不多,但是协议与SD 卡相同。

SD卡深入解读

SD卡深入解读

SD卡深入解读.txt点的是烟抽的却是寂寞……不是你不笑,一笑粉就掉!人又不聪明,还学别人秃顶。

绑不住我的心就不要说我花心!再牛b的肖邦,也弹不出老子的悲伤!活着的时候开心点,因为我们要死很久。

请你以后不要在我面前说英文了,OK?本文由raymond_at_li贡献doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

SD 卡深入解读 SD 卡操作一、概述 1、简介、SD 卡是基于 flash 的存储卡。

SD 卡和 MMC 卡的区别在于初始化过程不同。

SD 卡的通信协议包括 SD 和 SPI 两类。

SD 卡使用卡内智能控制模块进行 FLASH 操作控制,包括协议、安全算法、数据存取、 ECC 算法、缺陷处理和分析、电源管理、时钟管理。

2、功能介绍、2.1 特点1) 主机无关的 FLASH 内存擦除和编程读或写数据,主机只要发送一个带地址的命令,然后等待命令完成,主机无需关心具体操作的完成。

当采用新型的 FLASH 时,主机代码无需更新。

2) 缺陷管理 3) 错误恢复 4) 电源管理Flash 每个扇区有大约 10 万次的写寿命,读没有限制。

擦除操作可以加速写操作,因为在写之前会进行擦除。

3 SD 总线模式3.1 Negotiating Operation Conditions当主机定义了 SD 卡不支持的电压范围时,SD 卡将处于非活动状态,将忽略所有的总线传输。

要退出非活动状态唯一的方法就是重新上电。

3.2 SD 卡获取和识别SD 卡总线采用的是单主多从结构,总线上所有卡共用时钟和电源线。

主机依次分别访问每个卡,每个卡的 CID 寄存器中已预编程了一个唯一的卡标识号,用来区分不同的卡。

主机通过 READ_CID 命令读取 CID 寄存器。

CID 寄存器在 SD 卡生产过程中的测试和格式化时被编程,主机只能读取该号。

DAT3 线上内置的上拉电阻用来侦测卡。

STM32笔记(六)SD卡的读写和FatFS文件系统

STM32笔记(六)SD卡的读写和FatFS文件系统

STM32笔记(六)SD卡的读写和FatFS文件系统因为要用,学习了一下SPI操作SD卡,同时移植了一个免费开源的FAT文件系统:FatFS。

感觉挺好,在单片机上实现了读写文件的操作,接下来就可以解释我的G代码咯!我的SD卡底层操作参考了网上几种常见的代码,但又对其结构做了一定的优化,至少看起来用起来比较方便。

既可以作为文件系统的diskio使用,也可以直接使用底层函数,把SD卡作为一块flash读写。

FatFs文件系统体积蛮小,6-7K足矣,对于128Kflash的STM32来说很合适,代价不大。

同时可移植性很高,最少只需要4个函数修改既可以实现文件系统的移植。

相关文件系统的介绍请看这里。

这里给一套比较完整的参考资料,包括fatfs文件系统的原版资料、几个重要的手册和网上下载的代码。

/bbs/bbs_content.jsp?bbs_sn=3210864&bbs_page_no=1&bbs_id=3020 下面是我的代码:其中底层的SPI总线对SD卡的操作在SPI_SD_driver.c/h中,而FATFS的移植文件diskio.c中对磁盘的操作函数中将调用底层的操作函数。

下面是一些底层操作函数:u8 SPI_ReadWriteByte(u8 TxData); //SPI总线读写一个字节u8 SD_WaitReady(void); //等待SD卡就绪u8 SD_SendCommand(u8 cmd, u32 arg, u8 crc); //SD卡发送一个命令u8 SD_SendCommand_NoDeassert(u8 cmd, u32 arg, u8 crc); //SD卡发送一个命令,不断线u8 SD_Init(void); //SD卡初始化u8 SD_ReceiveData(u8 *data, u16 len, u8 release); //SD卡读数据u8 SD_GetCID(u8 *cid_data); //读SD卡CIDu8 SD_GetCSD(u8 *csd_data); //读SD卡CSDu32 SD_GetCapacity(void); //取SD卡容量u8 SD_ReadSingleBlock(u32 sector, u8 *buffer); //读一个sectoru8 SD_WriteSingleBlock(u32 sector, const u8 *buffer); //写一个sectoru8 SD_ReadMultiBlock(u32 sector, u8 *buffer, u8 count); //读多个sectoru8 SD_WriteMultiBlock(u32 sector, const u8 *data, u8 count); //写多个sector这是diskio.c中的一段代码,在disk初始化中,我们调用了SPI_SD_driver.c中的SD卡初始化函数。

sd卡协议(中文)

sd卡协议(中文)

数据包的封装与命令协议相关1 sd 卡指令数据包sd 卡的指令被封装成48位的数据包,每次传送这48位的数据包。

数据包的内容包括起始位、结束位、传输位、命令索引、传输参数和7位CRC 校验码。

其具体格式分布如下图 Bit 位置 47 46 [45:40] [39:08] [07:01] 00 Bit 宽度 1 1 6 32 7 1 值 “0” “1” x x x “1”说明Start bit Transmission bit CommandindexArgument CRC7 End bit其中的命令索引位是[45:40],里面可以封装各种命令,具体的命令表将在下面给出。

不同的命令会对应不同的回应(respond),回应有三种(R1,R2,R3)格式,在命令表中的选项会给出。

2 sd 卡命令索引表 CMD 简略语 指令说明 SPI 模式自变量 回应0 GO_IDLE_STATE 这是使card 初始化到Idle 状态的指令.CS 信号设在Low 的状态时,接到本指令后,card 将转换到SPI 模式.None R11 SEND_OP_COND 接到本指令后,card 将做R3回应(含有OCR 数据).根据OCR 值,可以得知card 能工作电压范围.OCR 数据最高值位的1bit 是用来确认card 内部处理是否结束(Ready/Busy 轮询).None R12 ALL_SEND_CID 接到本指令后, 处于Ready 状态的card 将传送CID 数据.在MMC 模式下,数据被送到CMD 信号,在CID数据的每1bit传送后,CMD信号状态将与该card内部状态相比较,如果不一致,將中止数据传送,card返回到Ready状态.如果相一致,该card 将认为已被选中,然后转换到Identification 状态.3 SET_RELATIVE_ADDR 本指令会为已转换到Identification状态的card分配一个相对card地址(RCA).当RCA分配后,card将转换到Stand-by 状态,对以后的CMD2和CMD3不回应.4 NOP 这是用来设定DSR(DriveState寄存器)的指令,但是本car不支持DSR.7 SELECT/DESELECT_CARD本指令是用来选择一张card,让它在Stand-by状态和Transfer状态之间转换的指令.如果给card设定已分配到的RCA地址,card将从Stand-by状态转换到Transfer状态,并将回应以后的读取指令及其他指令.如果给card设定RCA以外的地址,card将转换到Stand-by状态。

SD卡的有关知识

SD卡的有关知识

SD卡的有关知识一.SD卡就是Secure Digital Card——安全数码卡,是由日本松下公司,东芝公司和美国SANDISK公司共同开发研制的,具有大容量,高性能,尤其是安全等多种特点的多功能存储卡。

它比MMC卡多了一个进行数据著作权保护的暗号认证功能(SDMI规格)。

现多用于MP3,数码摄像机,电子图书,微型电脑,AV器材等。

大小尺寸比MMC卡略厚一点32mm×24mm×2.1mm,容量则要大许多,今年将生产出256M的卡。

据报道将来最大可达到1G的容量。

另外此卡的读写速度比MMC卡要快4倍,达2MB/秒。

同时于MMC卡兼容,SD卡的插口大多支持MMC卡。

全称:Secure Digital Memory Card 安全数码存储卡,由日本松下、东芝和美国SANDISK公司共同研发的。

特点:大容量、高性能、安全性高(添加了著作权保护的暗号认证功能 CSDMI规格)。

用途:可用在MP3、移动电话、PDA、数码相机、数码摄像机、电子图书、微型电脑、AV器材等领域。

尺寸规格:32 x 24 x 2.1 mm此卡的读写速度比MMC卡要快四倍,2MB/秒同时与MMC卡兼容,SD卡的插口大多支持MMC卡。

电压3.3V±10%;5.0V±10%读电流:*********;*********写电流:*********;*********数据传输速度:2M/s产品规格:宽:24mm 高:32mm 厚:2.1mm环境要求:抗冲击:50Gs@11ms抗震动:15Gs peak- to-peak使用温度:0℃—55℃保存温度:-20℃—65℃各大电子商城都有卖的,具体价格请到网上去查!我认为:SD卡很不错,价格比SONY的记忆棒便宜,体积又比CF卡小,现在我所知道的最大容量已经到达了2GB,足够用了!SD卡很具有性价比!二.SD卡的使用SD卡应用于以下的手提数码装置:●数码相机储存相片及短片●数码摄录机储存相片及短片●个人数码助理(PDA)储存各类资料●手提电话储存相片、铃声、音乐、短片等资料●多媒体播放器SD卡多用于MP3随身听、数码摄像机、数码相机等,也有用于笔记本电脑上。

SD卡深入解读

SD卡深入解读

SD卡深入解读.txt点的是烟抽的却是寂寞……不是你不笑,一笑粉就掉!人又不聪明,还学别人秃顶。

绑不住我的心就不要说我花心!再牛b的肖邦,也弹不出老子的悲伤!活着的时候开心点,因为我们要死很久。

请你以后不要在我面前说英文了,OK?本文由raymond_at_li贡献doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

SD 卡深入解读 SD 卡操作一、概述 1、简介、SD 卡是基于 flash 的存储卡。

SD 卡和 MMC 卡的区别在于初始化过程不同。

SD 卡的通信协议包括 SD 和 SPI 两类。

SD 卡使用卡内智能控制模块进行 FLASH 操作控制,包括协议、安全算法、数据存取、 ECC 算法、缺陷处理和分析、电源管理、时钟管理。

2、功能介绍、2.1 特点1) 主机无关的 FLASH 内存擦除和编程读或写数据,主机只要发送一个带地址的命令,然后等待命令完成,主机无需关心具体操作的完成。

当采用新型的 FLASH 时,主机代码无需更新。

2) 缺陷管理 3) 错误恢复 4) 电源管理Flash 每个扇区有大约 10 万次的写寿命,读没有限制。

擦除操作可以加速写操作,因为在写之前会进行擦除。

3 SD 总线模式3.1 Negotiating Operation Conditions当主机定义了 SD 卡不支持的电压范围时,SD 卡将处于非活动状态,将忽略所有的总线传输。

要退出非活动状态唯一的方法就是重新上电。

3.2 SD 卡获取和识别SD 卡总线采用的是单主多从结构,总线上所有卡共用时钟和电源线。

主机依次分别访问每个卡,每个卡的 CID 寄存器中已预编程了一个唯一的卡标识号,用来区分不同的卡。

主机通过 READ_CID 命令读取 CID 寄存器。

CID 寄存器在 SD 卡生产过程中的测试和格式化时被编程,主机只能读取该号。

DAT3 线上内置的上拉电阻用来侦测卡。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SD卡操作一、概述1、简介SD卡是基于flash的存储卡。

SD卡和MMC卡的区别在于初始化过程不同。

SD卡的通信协议包括SD和SPI两类。

SD卡使用卡内智能控制模块进行FLASH操作控制,包括协议、安全算法、数据存取、ECC算法、缺陷处理和分析、电源管理、时钟管理。

2、功能介绍2.1 特点1)主机无关的FLASH内存擦除和编程读或写数据,主机只要发送一个带地址的命令,然后等待命令完成,主机无需关心具体操作的完成。

当采用新型的FLASH时,主机代码无需更新。

2)缺陷管理3)错误恢复4)电源管理Flash每个扇区有大约10万次的写寿命,读没有限制。

擦除操作可以加速写操作,因为在写之前会进行擦除。

3 SD总线模式3.1 Negotiating Operation Conditions当主机定义了SD卡不支持的电压范围时,SD卡将处于非活动状态,将忽略所有的总线传输。

要退出非活动状态唯一的方法就是重新上电。

3.2 SD卡获取和识别SD卡总线采用的是单主多从结构,总线上所有卡共用时钟和电源线。

主机依次分别访问每个卡,每个卡的CID寄存器中已预编程了一个唯一的卡标识号,用来区分不同的卡。

主机通过READ_CID命令读取CID寄存器。

CID寄存器在SD卡生产过程中的测试和格式化时被编程,主机只能读取该号。

DAT3线上内置的上拉电阻用来侦测卡。

在数据传输时电阻断开(使用ACMD42)。

3.3 卡状态卡状态分别存放在下面两个区域:卡状态(Card Status),存放在一个32位状态寄存器,在卡响应主机命令时作为数据传送给主机。

SD状态(SD_Status),当主机使用SD_STATUS(ACMD13)命令时,512位以一个数据块的方式发送给主机。

SD_STATUS还包括了和BUS_WIDTH、安全相关位和扩展位等的扩展状态位。

3.4 内存组织数据读写的基本单元是一个字节,可以按要求组织成不同的块。

Block:块大小可以固定,也可以改变,允许的块大小是实际大小等信息存储在CSD寄存器。

Sector:和擦除命令相关,由几个块组成。

Sector的大小对每个设备是固定的,大小信息存储在CSD寄存器。

WP Group:写保护单位。

大小包括几个group,写保护由一位决定,对每个设备大小是固定的,存储在CSD寄存器。

3.5 读写操作Single Block Mode:主机根据事先定义的长度读写一个数据块。

由发送模块产生一个16位的CRC校验码,接受端根据校验码进行检验。

读操作的块长度受设备sector大小(512 bytes)的限制,但是可以最小为一个字节。

不对齐的访问是不允许的,每个数据块必须位于单个物理sector内。

写操作的大小必须为sector大小,起始地址必须与sector边界对齐。

Multiple Block Mode:主机可以读写多个数据块(相同长度),根据命令中的地址读取或写入连续的内存地址。

操作通过一个停止传输命令结束。

写操作必须地址对齐。

3.6 数据传输速率SD卡可以通过单数据线(DA T0)或四根数据线(DA T0-DAT3)进行数据传输。

单根数据线传输最大传输速率为25 Mbit/s,四根数据线最大传输速率为100 Mbit/s。

3.7 数据保护每个sector的数据通过Error Correction Code (ECC)进行保护。

在写sector时生成ECC,在读sector时检验ECC。

如果发现错误,在传输前进行纠正。

3.8数据擦除SD卡数据擦除的最小单位是sector。

为了加速擦除操作,多个sector可以同时擦除。

为了方便选择,第一个指令包含起始地址,第二个指令包含结束地址,在地址范围内的所有sector将被擦除。

3.9 写保护两种写保护方式可供选择,永久保护和临时保护,两种方式都可以通过PROGRAM_CSD指令进行设置。

永久保护位一旦设置将无法清除。

3.10 拷贝位通过CSD寄存器中的拷贝位(copy bit)设置SD卡中的数据是原始数据还是拷贝数据。

拷贝位一旦设置,将无法清除,在测试和格式化时使用。

3.11 CSD寄存器所有SD卡的配置信息存储在CSD寄存器。

通过SEND_CSD读取,PROGRAM_CSD修改。

4 SPI模式二、SD卡接口描述1 引脚和寄存器主机通过9个引脚和SD卡相连1.1 SD模式引脚扩展数据线(DA T1-DA T3)上电后为输入,SET_BUS_WIDTH命令执行后作为数据线。

即使只有DAT0使用,所有数据线都和外部上拉电阻连接,否则DAT1 & DAT2(如果未被使用)的振荡输入将引起非期望的高电流损耗。

上电后,数据线输入50K(+/-20K)欧姆的上拉(用来进行卡侦测和SPI模式选择)。

用户可以在常规数据传输时,通过SET_CLR_CARD_DETECT (ACMD42)命令分离上拉。

1.2 SPI模式引脚1.3 寄存器主机通过重新上电来重置(reset)卡。

卡有它自身检测上电的电路,当上电后卡状态切换到idle状态。

也可以通过GO_IDLE (CMD0)指令来重置。

2SD卡总线拓扑SD总线有6根通信线和三根电源供应线:✧CMD——命令线是双向信号线。

主机和卡通过push pull 模式工作。

✧DAT0-3——数据线是双向信号线。

主机和卡通过push pull 模式工作。

✧CLK——时钟是从主机到卡的信号。

CLK通过push pull 模式操作。

✧VDD—VDD是所有卡的电源供应线。

✧VSS[1:2]—VSS是2根地线。

在初始化的时候,向每个卡分别发送命令,允许应用检测卡并给物理槽(physical slot)分配逻辑地址。

数据通常分别传输给每个卡。

然后,为了方便处理卡堆栈,初始化后所有命令同时发送给所有卡,在命令数据包中包含了操作地址。

SD总线允许动态配置数据线数目。

上电后默认SD卡只用DAT0作为数据传输线。

初始化后,主机可以改变总线宽度。

这个特性使得在硬件开销和系统性能间取得平衡。

3SPI总线拓扑4电气接口4.1 上电上电后,包括热插入,卡进入idle状态。

在该状态SD卡忽略所有总线操作直到接收到ACMD41命令。

ACMD41命令是一个特殊的同步命令,用来协商操作电压范围,并轮询所有的卡。

除了操作电压信息,ACMD41的响应还包括一个忙标志,表明卡还在power-up过程工作,还没有准备好识别操作,即告诉主机卡还没有就绪。

主机等待(继续轮询)直到忙标志清除。

单个卡的最大上电时间不能操作1秒。

上电后,主机开始时钟并在CMD线上发送初始化序列,初始化序列由连续的逻辑“1”组成。

序列长度为最大1毫秒,74个时钟或supply-ramp-up时间。

额外的10个时钟(64个时钟后卡已准备就绪)用来实现同步。

每个总线控制器必须能执行ACMD41和CMD1。

CMD1要求MMC卡发送操作条件。

在任何情况下,ACMD41或CMD1必须通过各自的CMD线分别发送给每个卡。

5寄存器5.1 OCR(Operating Conditions Register)32位的操作条件寄存器存储了V DD电压范围。

SD卡操作电压范围为2~3.6V。

然而从内存中访问数据的电压是2.7~3.6V。

OCR显示了卡数据访问电压范围,结构如下表所示。

表3-8 OCR寄存器定义OCR结构如下图所示。

如果第32位(busy bit)置位,表明卡上电过程已结束。

5.2 CID(Card Identification)CID寄存器长度为16个字节的卡唯一标识号,该号在卡生产厂家编程后无法修改。

SD 和MMC卡的CID寄存器结构不一样。

1、格式为“n.m”,如“6.2”表示为0110 00105.3 CSD(Card Specific Data)CSD寄存器包含访问卡数据所需的配置信息。

SD卡和MMC卡的CSD不同。

6数据交互格式和卡容量通常,SD卡分为2个区:✧用户区—用户通过读写命令存储安全和非安全数据。

✧安全保护区(Security Protected Area)—版权保护应用程序用来保存安全相关数据,通过SD安全规范中定义的条件验证后,由主机使用安全的读写指令完成操作。

安全保护区的大小大概是总大小的1%。

三、SD卡协议1 SD总线协议SD总线通信是基于命令和数据位流方式的,由一个起始位开始,以一个停止位结束:命令——命令是开始开始操作的标记。

命令从主机发送一个卡(寻址命令)或所有连接的卡(广播命令)。

命令在CMD线上串行传送。

响应——响应是从寻址卡或所有连接的卡(同步)发送给主机用来响应接受到的命令的标记。

命令在CMD线上串行传送。

数据——数据可以通过数据线在卡和主机间双向传送。

卡寻址通过会话地址方式实现,地址在初始化的时候分配给卡。

SD总线上的基本操作是command/response。

数据传送采用块方式,数据块后接CRC校验位,操作包括单数据块和多数据块。

多数据块更适合快速写操作,多数据块传输当在CMD线出现停止命令时结束。

数据传输可以在主机端设置采用单数据线或多数据线方式。

块写操作在DAT0数据线写操作期间使用忙信号,无论用来传输的信号线数目是多少。

命令格式如下所示:响应标记(token)根据内容不同具有四种格式,标记长度。

长度为48位或136位。

数据块的CRC算法采用16位的CCITT多项式。

在命令行中,MSB位首先传送,LSB位最后传送。

当使用宽总线模式时,数据同时在4根数据线上传输。

开始位、结束位和CRC在每根数据线上传送。

CRC对每根数据线单独计算。

CRC状态响应和Busy信号只通过DAT0由卡发送给主机。

2 协议功能描述所有主机和SD卡间的通信由主机控制。

主机发送下述两类命令:●广播命令——广播命令发送给所有SD卡,有些命令需要响应。

●寻址(点对点)命令——寻址命令只发送给具有相应地址的卡,并需要从卡返回一个响应。

对卡而言也有两类操作:●卡识别模式——在重置(reset)后当主机查找总线上的新卡时,处于卡识别模式。

重置后SD卡将始终处于该模式,直到收到SEND_RCA命令(CMD3)。

●数据传输模式——一旦卡的REC发布后,将进入数据传输模式。

主机一旦识别了所有总线上的卡后,将进入数据传输模式。

操作模式与卡状态关系:3 卡识别模式在卡识别模式,主机重置所有处于卡识别模式的SD卡,检验操作电压范围,识别卡并请求卡发送相对卡地址RCA。

操作对每个卡在各自的CMD线上单独进行,所有的数据传送只使用CMD线。

3.1 重置GO_IDLE_STATE(CMD0)是软件重置命令,设置每个SD卡进入Idle状态。

处于Inactive 状态的卡不受此命令影响。

主机上电后,所有SD卡进入Idle状态,包括处于Inactive状态的卡。

相关文档
最新文档