当前位置:文档之家› sd卡协议分析

sd卡协议分析

sd

Mmc

目录

第一章 SD卡系统概念 3

§1.1 SD卡概述 3

§1.2 SD卡的系统特征 3

§1.3 SD卡的系统概念 4

§1.4 SD卡的总线传输 6

§1.5 SD卡的引脚 10

§1.6 SD卡主要寄存器介绍 12

§1.7 SD卡子系统结构 14

第二章 SD卡初始化及状态转换 16

§2.1SD卡状态及初始化过程 16

§2.2SD卡数据传输过程 18

1.SD卡基础

1.SD卡概述

SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制,同时三个公司联合成立了SD协会,并制定SD卡相关的协议标准。SD卡协议主要包括物理层协议、SD卡控制器设计手册、SDIO卡手册三部分。

其中SDIO指的是安全数字输入输出卡(Secure Digital Input and Output Card),是在SD标准上定义了一种外设接口,通过SD的I/O接脚来连接外围设备,并且通过SD上的 I/O数据接位与这些外围设备进行数据传输。相关的一些设备为:GPS、

相机、Wi-Fi、调频广播、条形码读卡器、蓝牙等。SDIO本质上是一种接口,通过该接口可以连接一些其他功能的设备而非仅仅是存储设备。

1.2 SD卡的系统特征(SD物理层协议v

2.0)

?针对移动和固定应用;

?存储容量:

标准容量SD存储卡:最高2G

高容量SD存储卡:2G以上(在该规范版本中,最高32G)

?电压范围:

高电压SD存储卡—操作电压范围:2.7~3.6V

双电压SD存储卡—操作电压范围:低电压范围(T.B.D)和

2.7~

3.6V

?分为只读卡和读/写卡;

?默认模式:时钟频率可在0~25MHz间变化,高达12.5MB/s 的接口速度(使用4条并行数据线) ;

?高速模式:时钟频率可在0~50MHz间变化,高达25MB/s 的接口速度(使用4条并行数据线) ;

?支持高速,电子商务和将来功能的转换功能命令;

?存储域错误纠正;

?读操作期间移去卡,内容不损坏;

?内容保护机制—符合SDMI标准的最高安全性;

?卡的密码保护(CMD42 - LOCK_UNLOCK);

?机械开关的写保护特性;

?内嵌的写保护特性(永久或暂时) ;

?卡检测(插入/移去) ;

?应用特定命令;

?舒适的擦除机制

?通信通道协议属性;

?SD存储卡外形尺寸:标准尺寸SD存储卡

(32*24*2.1mm) 。

3.SD卡的系统概念

读写属性:按照读写属性定义,有两种类型的SD存储卡:

?读/写(R/W)卡(Flash, OTP(一次可编程), MTP(多次可编程))。

这些卡通常买来时是空白的,用于大量数据的存储,以及记录用户的音频、视频和图像。

?只读存储器(ROM)。这些卡生产有固定的数据内容。通常作为软件、音频、视频等的发行媒介。

操作电压范围:按照操作电压定义,有两种类型的SD存储卡:

?高电压SD存储卡:工作在2.7~3.6V的电压范围内

?双电压SD存储卡:能够工作在低电压范围(T.B.D)和

2.7~

3.6V的电压范围内

卡容量:按照容量定义,有两种类型的SD存储卡:

?标准容量SD(SD)存储卡:支持容量高达2GB(231 B)。所有物理层规范都定义了标准容量SD存储卡。

?高容量SD(SDHC)存储卡:支持容量在2GB以上,该规范版本中将容量限制在32GB。高容量SD存储卡是在V2.00中新定义的。

高容量SD存储卡有两种类型:

?Type A(单态卡)只有高容量存储区。

?Type B(双态卡)有高容量存储区和标准容量存储区。在Type B卡中,任何时候,只能有一种存储区能被使用。有一机械开关选择想要的存储区。Type B的细节将在以后的规范中定义。主机可以不必区分高容量SD卡的类型。

只有符合SD存储卡物理层规范V2.00或更高并且符合SD文件系统规范V2.00的主机才能访问高容量SD存储卡。对于SD控制器而言,做到了向低容量的兼容。如图所示:

控制器对SD卡支持情况示意图

1.4 SD卡的总线传输:

SD总线上的通信以一根CMD线和四根Data线为基础。通信的内容包括:命令(主机->SD卡)、反馈(SD卡->主机)、Data。

SD总线通信示意图

命令:命令式操作开始的标志,命令可以发送给总线上所有的SD 卡(广播模式)或者某个特定的SD卡(寻址模式)。命令在CMD 线上传输。

反馈:反馈是SD卡在接收到主机命令后,做出的回应信息,也在CMD线传输。

数据:四根数据总线是双向总线。数据传输数据线上进行,是以块为单位,一次可以传输单个或者多个数据块。传输过程中实际使用的数据线是可配置的,默认只用DAT0。

无响应和无数据操作

卡寻址是使用一个会话地址来实现的,这个地址是在初始化阶段分配给卡的。命令、响应和数据块结构见SD存储卡功能描述。SD总线上的基本操作是命令/响应操作(见上图)。这种总线操作类型直接在命令或响应结构中发送它们的信息。

数据块读操作

数据传输以块为单位,分为单块传输和多块传输。数据块后跟着CRC校验位。多块传输可以更好地实现更快的写操作。当在命令线上发送停止传输命令时候一次多块传输结束。数据传输可使用单数据线或多数据线,由SD主机控制器来进行配置。

数据块写操作

数据块写操作使用一个简单的写操作忙信号。在写操作期间,无论传输数据的数据线条数,该信号只持续在数据线DAT0上。

多数据块写操作可以更好地实现更快的写操作。

其中命令格式如下图所示:

命令标记和格式

命令响应的格式:

命令响应的格式

数据传输格式:SD卡有两种数据传输格式

(1)常规数据(Usual data ,8位宽):常规数据先发送最低有效字节(LSB),最后发送最高有效字节(MSB)。但是,在单个字节中,先发送最高有效位(msb),最后发送最低有效位(lsb)。

(2)宽位数据(Wide width data ,SD寄存器):宽幅数据从最高有效位开始移位。

常规数据格式

宽位数据格式1.5 SD卡的引脚

SD卡引脚以及引脚定义如下图所示。

SD卡结构及引脚

SD卡引脚定义

SD卡支持两种总线模式:SD总线、SPI总线,具体定义如图2所示,其中较为常用的嵌入式系统SD总线系统电路连接如图3所示.

SD总线电路连接

1.6 SD卡基本寄存器介绍

SD卡接口定义了6个寄存器OCR,CID,CSD,RCA,DSR和SCR,可通过特定的命令来获得这些寄存器的信息。

OCR:定义了SD卡支持的工作电压范围。Physical Layer Simplified Specification Version 2.0中规定SD卡支持的工作电压范围在

2.7~

3.6v之间。该32位寄存器的最高位bit31是忙标志位。如果卡暂未完成上电流程,该位为0。

CID:存储了一些制造商、产品名、生成日期等“身份”信息。该寄存器宽度为128位。

CID寄存器定义

CSD:该寄存器存储了一些对卡操作的命令集类型、读写时序、读写电流、块大小等信息。规定了和SD卡进行信息互交所要遵循的一些规则,或者说是访问卡所需要的配置信息。

CSD寄存器定义

RCA:该16位可写寄存器存储了经过卡识别过程后的卡地址信息,用于对总线是某个SD卡的寻址。

DSR:定义了了一些扩展操作,以提高总线性能,这里不做具体讨论,(具体参考Physical Layer Simplified Specification Version 2.00)。SCR:另外一个SD卡的配置寄存器(另一个为CSD),配置SD卡上的一些特点信息数据。

1.7 SD卡子系统结构

嵌入式系统包括若干模块,其中的SD卡子系统是其实现移动存储的重要模块,从系统硬件角度看SD卡子系统可分为SOC 端部分、SD卡端部分和两部分之间的接口部分。如图所示。

SD卡子系统结构

整个SD卡子系统可以看做:

从硬件角度来看,SOC上的ARM、MIPS等IP核通过设置SD控制器的寄存器给控制器发送读写请求、中断、时钟设置等信息,SD控制器通过SD总线(或者SPI总线)和SD卡中的控制单元进行控制信息和数据信息的互交;SD卡中的控制单元根据读写请求从SD中的NAND存储模块读取(或者写入)数据,再通过总线接口发送给SOC段的控制器。S3C2440(ARM920T)的控制器结构如图所示:

S3C2440控制器结构

SD卡初始化及状态转换

2.1 SD卡状态及初始化过程

SD卡工作的所有情况下有以下状态和所处的操作模式。状态是站在SD卡方面而言的,而操作模式可以看作是SD卡控制器(host)所处的模式。

SD

SD卡上电过程

图中“Power up time”是的是电压从0v上升到最小的Vdd需要的时间;“Supply ramp up time”是达到总线操作需要的时间,一般从Power up time结束要经过74个clock,SD卡才开始识别host发来的命令。

上电后,host发送CMD0(作用是软件重启),所有的SD卡处于idle状态,主机和SD卡然后通过CMD41来协商工作电压。

主机然后发送命令ALL_SEND_CID(CMD2)到每个卡以获取每个卡的唯一标识CID号。未识别的卡通过CMD线发送CID号作为响应。当卡发送CID号后,进入识别状态(Identification

State)。此后,主机发送CMD3(SEND_RELATIVE_ADDR)要求卡发布一个新的相对卡地址RCA,地址比CID短,在以后的数据传输模式中用来寻址卡。一旦获得RCA后,卡状态变成就绪状态(Stand-by state)。此时,如果主机要求卡换成其他的RCA号,可以通过发送另一个SEND_RELATIVE_ADDR命令给卡,要求发布一个新的RCA,最后发布的RCA是实际使用的RCA。主机对系统中的每个卡重复识别过程。

SD卡识别模式流程图

2.2 SD卡数据传输过程

数据传输模式:主机首先发送CMD9获得寄存器的内容,如块大小、卡存储容量、最大时钟速率等。

SD卡数据传输模式流程图

通过命令CMD7将某一地址的SD卡它置于传输状态(Transfer state)。如果已有一个卡处于传输状态,它和主机的连接将释放,并返回到Stand-by状态。当CMD7以保留相对地址

“0x0000”发送时,所有卡将返回到Stand-by状态。这可以用来识别新的卡而不重置其他已注册的卡。在这种状态下已有一个RCA地址的卡不响应识别命令(ACMD41,CMD2,CMD3)。

不同传输模式的关系如下:

?所有读数据命令可以在任何时候通过停止命令(stop command,CMD12)中止。数据传输将中止,卡回到传输状态(Transfer State)。读命令有:块读命令(CMD17),多块读命令(CMD18),发送读保护(CMD30),发送scr(ACMD51),以及读模式的通用命令(CMD56)。

?所有写数据命令可以在任何时候通过停止命令(stop command,CMD12)中止。在不选中卡命令CMD7前写命令必须停止。写命令有:块写命令(CMD24 and CMD25), 写CID (CMD26), 写CSD(CMD27), lock/unlock 命令(CMD42) 以及写模式通用命令(CMD56)。

?一旦数据传输完成,卡将退出数据写状态并进入Programming State(传输成功)或Transfer State(传输失败)。

?如果一个快写操作停止,而且最后一块块长度和CRC 是有效的,那么数据可以被操作(programmed)。

?卡可能提供块写缓冲。这意味着在前一块数据被操作时,下一块数据可以传送给卡。如果所有卡写缓冲已满,只要卡在Programming State,DAT0将保持低电平(BUSY)。?写CSD、CID、写保护和擦除时没有缓冲。这表明在卡因这些命令而处于忙时,不再接收其他数据传输命令。在卡忙时DAT0保持低电平,并处于Programming State。实

际上如果CMD和DAT0线分离,而且主机占有的忙DAT0线和其他DAT0线分开,那么在卡忙时,主机可以访问其他卡。?在卡被编程(programming)时,禁止参数设置命令。

参数设置命令包括:设置块长度(CMD16),擦除块开始(CMD32)和擦除块结束(CMD33)。

?卡在操作时不允许读命令。

?使用CMD7指令把另一个卡从Stand-by状态转移到Transfer状态不会中止擦除和编程(programming)操作。

卡将切换到Disconnect状态并释放DAT线。

?使用CMD7指令可以不选中处于Disconnect状态的卡。

卡将进入Programming状态,重新激活忙指示。

?使用CMD0或CMD15重置卡将中止所有挂起和活动的编程(programming)操作。这可能会破坏卡上的数据内容,需要主机保证避免这样的操作。

SanDisk SD Card产品手册之四SD卡协议描述续二

上周看了卡的识别模式后,现在看看卡的数据传输模式,这是最重要的模式,勿庸置疑。 因为一些卡可能有时钟限制,fpp必须保持在fod,直到CSD寄存器被host读取。host发出SEND_CSD(CMD9)来得到一些卡的专用数据,比如block length等等。 CMD7可以将卡置在传输模式。只有一个卡可以在一个时间内在这个状态。如果一个之前的卡在这个状态,那么与host的连接将会释放,并且回到stand-by 模式,当CMD7被发出保留相关卡地址0x0000,所有的卡传输都回到stand-by 状态。这个可以用来识别新插入卡,并且不会重置以及注册的卡。以及有RCA 的卡,不需要对识别命令相应。 *取消选择发生在一个特定的卡在重试CMD7的时候,发现RCA不匹配。在另外一个卡和CMD线通用的时候,会自动发生。因此,在SD卡系统中,系统需要负责做二选其一的事情。 -初始化后,通过公用CMD线工作,在这个情况下,取消选择会自动发生 -有意识去取消选择,如果CMD线是分开的 所有的数据通信在数据传输模式都是点对点的。所有的命令都会有个在CMD线上的相应。 下面我们看下卡里的命令。 1 停止命令CMD12,能够忽略所有的读命令在任何时候,数据传输会中止,并且卡会返回到传输状态,读命令能够阻止块读CMD17,多块读CMD18,发送写保护CMD30,发送SCR ACMD51,和general命令在读模式中CMD56。 2 停止命令CMD12,能够中止所有的数据写命令在任何时候。写命令必须在取消选择CMD7之前停止。写命令被块写CMD24、CMD25,写CSD(CMD27),锁和解锁(CMD42),和在写模式的通用命令(CMD56)阻止。 3 当数据传输完成的时候,sd卡会在数据写状态。之后如果写成功了,那么就去编程状态,如果失败了,就去传输状态。 4 如果block写操作被停止,并且block长度的crc是有效的,数据会被写入。

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 Command index Argument CRC7 End bit 其中的命令索引位是[45:40],里面可以封装各种命令,具体的命令表将在下面给出。不同的命令会对应不同的回应(respond),回应有三种(R1,R2,R3)格式,在命令表中的选项会给出。 2 sd 卡命令索引表 CMD 简略语 指令说明 SPI 模式 自变量 回应 0 GO_IDLE_STATE 这是使card 初始化到Idle 状态的指令.CS 信号设在Low 的状态时,接到本指令后,card 将转换到SPI 模式. None R1 1 SEND_OP_COND 接到本指令后,card 将做R3回应(含有OCR 数据).根据OCR 值,可以得知card 能工作电压范 围.OCR 数据最高值位的1bit 是用来确认card 内部处理是否结束(Ready/Busy 轮询). None R1 2 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卡协议-中文

一概述 1. SD总线模式下 CLK:时钟信号 CMD:双向命令和响应信号 DAT0-3:双向数据信号 VDD,VSS:电源和地信号 SD模式下允许有一个主机, 多个从机(即多个卡), 主机可以给从机分别地址. 主机发 命令有些命令是发送给指定的从机,有些命令可以以广播形式发送. SD模式下可以选择总线宽度, 即选用几根DAT信号线, 可以在主机初始化后设置. 2. SD总线协议 SD模式下的命令和数据流都有一个开始位和结束位. >命令: 是在CMD上传输的用于启动一个操作的比特流. 由主机发往从机, 可以是点对点也可以是广播的. >响应: 是在CMD上传输的用于之前命令回答的比特流. 由从机发往主机. >数据: 是在DAT上传输的比特流, 双向传输. 无响应模式无数据模式 多块读操作模式 多块写操作模式

命令格式 响应格式 数据格式 SD卡上电后会自动初始化,通过给卡发送CMD0也可以复位卡.

二.SD卡命令描述. 1.广播命令: 给所有卡都发送, 某些命令需要响应. 2.点对点命令 给指定地址的卡发送, 需要响应. SD卡系统有两种工作模式: 1.卡识别模式. 主机上电复位后即处于此模式,它会在总线上等待卡. 卡复位后也处于此模式, 直到SEND_RCA(CMD3)命令到来. 2.数据传输模式. 卡收到SEND_RCA(CMD3)命令后即进入此模式. 主机识别到卡后也进入此模式. 卡状态和工作模式对照表 1.卡识别模式. 此模式下主机复位总线所有的卡, 验证工作电压, 询问卡的地址. 这个模式下所有数据的传输都是只通过CMD线来完成. 1)卡的复位. 当卡上电或收到GO_IDLE_STATE (CMD0)命令后, 卡即进入Idle State状态. 此时卡将其RCA设为0, 相关寄存器设为传输稳定的最优模式. 2)工作电压验证 每个卡的最高和最低工作电压存储在OCR. 只有当电压比配时, CID和CSD的数据才能正常传输给主机. SD_SEND_OP_COND (ACMD41)命令用来判断卡的工作电压是否符合, 如果不符合的话, 卡应该放弃总线操作, 进入Inactive State状态. 在发送SD_SEND_OP_COND (ACMD41)命令前记得要首先发送APP_CMD (CMD55).

sd卡协议分析

sd Mmc 目录 第一章 SD卡系统概念 3 §1.1 SD卡概述 3 §1.2 SD卡的系统特征 3 §1.3 SD卡的系统概念 4 §1.4 SD卡的总线传输 6 §1.5 SD卡的引脚 10 §1.6 SD卡主要寄存器介绍 12 §1.7 SD卡子系统结构 14 第二章 SD卡初始化及状态转换 16 §2.1SD卡状态及初始化过程 16 §2.2SD卡数据传输过程 18 1.SD卡基础 1.SD卡概述 SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制,同时三个公司联合成立了SD协会,并制定SD卡相关的协议标准。SD卡协议主要包括物理层协议、SD卡控制器设计手册、SDIO卡手册三部分。 其中SDIO指的是安全数字输入输出卡(Secure Digital Input and Output Card),是在SD标准上定义了一种外设接口,通过SD的I/O接脚来连接外围设备,并且通过SD上的 I/O数据接位与这些外围设备进行数据传输。相关的一些设备为:GPS、

相机、Wi-Fi、调频广播、条形码读卡器、蓝牙等。SDIO本质上是一种接口,通过该接口可以连接一些其他功能的设备而非仅仅是存储设备。 1.2 SD卡的系统特征(SD物理层协议v 2.0) ?针对移动和固定应用; ?存储容量: 标准容量SD存储卡:最高2G 高容量SD存储卡:2G以上(在该规范版本中,最高32G) ?电压范围: 高电压SD存储卡—操作电压范围:2.7~3.6V 双电压SD存储卡—操作电压范围:低电压范围(T.B.D)和 2.7~ 3.6V ?分为只读卡和读/写卡; ?默认模式:时钟频率可在0~25MHz间变化,高达12.5MB/s 的接口速度(使用4条并行数据线) ; ?高速模式:时钟频率可在0~50MHz间变化,高达25MB/s 的接口速度(使用4条并行数据线) ; ?支持高速,电子商务和将来功能的转换功能命令; ?存储域错误纠正; ?读操作期间移去卡,内容不损坏; ?内容保护机制—符合SDMI标准的最高安全性; ?卡的密码保护(CMD42 - LOCK_UNLOCK);

tf卡通信协议

竭诚为您提供优质文档/双击可除 tf卡通信协议 篇一:sd卡和tF卡简介 sd卡和tF卡简介 tF卡 全名:transFlash,原名microsdcard。 由摩托罗拉与sandisk共同研发,在20xx年推出。是一种超小型卡(11*15*1mm),约为sd卡的1/4,可以算目前最小的储存卡了。tF卡可经sd卡转换器后,当sd卡使用。利用适配器可以在使用sd作为存储介质的设备上使用。transFlash主要是为照相手机拍摄大幅图像以及能够下载 较大的视频片段而开发研制的。transFlash卡可以用来储存个人数据,例如数字照片、mp3、游戏及用于手机的应用和个人数据等,还内设置版权保护管理系统,让下载的音乐、影像及游戏受保护;未来推出的新型transFlash还备有加密功能,保护个人数据、财政纪录及健康医疗文件。体积小巧的transFlash让制造商无须顾虑电话体积即可采用此设计,而另一项弹性运用是可以让供货商在交货前随时按客户不同需求做替换,这个优点是嵌入式闪存所没有的。

tF卡引脚定义: tF卡(sd模式): 1-data2,2-data3,3-cmd,4-vdd,5-clk,6-vss,7-data0,8-d ata1tF卡(spi模式): 1-rsv,2-cs,3-di,4-vdd,5-sclk,6-vss,7-do,8-rsv sd卡(securedigitalmemorycard) 安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(外语缩写pda)和多媒体播放器等。sd卡是一种基于半导体闪存工艺的存储卡,1999年由日本松下主导概念,参与者东芝和美国sandisk公司进行实质研发而完成。2000年这几家公司发起成立了sd协会(securedigitalassociation简称sda),阵容强大,吸引了大量厂商参加。其中包括ibm,microsoft,motorola,nec、samsung等。在这些领导厂商的推动下,sd卡已成为目前消费数码设备中应用最广泛的一种存储卡。sd卡具有大容量、高性能、安全等多种特点的多功能存储卡,它比mmc卡多了一个进行数据著作权保护的暗号认证功能(sdmi规格),读写速度比mmc卡要快4倍,达2m/秒。 尺寸32mmx24mmx2.1mm sd卡的技术是基于multimediacard(mmc)格式上发展而来,大小和mmc卡差不多,尺寸为32mmx24mmx2.1mm。长

STM32学习笔记之SD卡V2.0协议初始化

STM32学习笔记 ----SD卡V2.0协议初始化

现在使用的4G的SD卡,小于或等于2G的卡是属于标准SD卡,而大于2G的卡小于32G的卡是大容量SD卡,也就是SDHC卡。对于SDHC卡的初始化和操作要使用V2.0协议。看了几天的SD卡v2.0协议,现在总结一下啊。 首先是一个流程图,这个图在官方资料上有:

第一步操作:复位 SD卡上电后先发送(>74个时钟),因为SD卡有个供电电压上升过程需要大约64个时钟,之后的10个时钟是用来与SD卡同步(参考《例说STM32》)。参考代码: for(count=0;count<15;count++) SPI_WriteReadByte(0xff);//产生74个以上的脉冲 SD卡默认是SD模式,现在用STM32去操作,切换为SPI模式后更好操作。所以

在片选为低时发送CMD0,此时卡进入IDLE状态,因为CMD0回应的命令是R1,根据上面R1的回应格式可以看出我们自需要检查最低位就知道是否处于IDLE 状态。参考代码: do { tmp=SD_WriteCommand(CMD0,0,0X95);//发送SD count++; }while((tmp!=0x01)&&(count

SD卡协议中文精编

S D卡协议中文精编 Document number:WTT-LKK-GBB-08921-EIGG-22986

一概述1. SD总线模式下 CLK:时钟信号 CMD:双向命令和响应信号 DAT0-3:双向数据信号 VDD,VSS:电源和地信号 SD模式下允许有一个主机, 多个从机(即多个卡), 主机可以给从机分别地址. 主机发 命令有些命令是发送给指定的从机,有些命令可以以广播形式发送. SD模式下可以选择总线宽度, 即选用几根DAT信号线, 可以在主机初始化后设置. 2. SD总线协议 SD模式下的命令和数据流都有一个开始位和结束位. >命令: 是在CMD上传输的用于启动一个操作的比特流. 由主机发往从机, 可以是点对点也可以是广播的. >响应: 是在CMD上传输的用于之前命令回答的比特流. 由从机发往主机. >数据: 是在DAT上传输的比特流, 双向传输.

无响应模式无数据模式 多块读操作模式 多块写操作模式

命令格式 响应格式 数据格式 SD卡上电后会自动初始化,通过给卡发送CMD0也可以复位卡. 二.SD卡命令描述.

1.广播命令: 给所有卡都发送, 某些命令需要响应. 2.点对点命令 给指定地址的卡发送, 需要响应. SD卡系统有两种工作模式: 1.卡识别模式. 主机上电复位后即处于此模式,它会在总线上等待卡. 卡复位后也处于此模式, 直到SEND_RCA(CMD3)命令到来. 2.数据传输模式. 卡收到SEND_RCA(CMD3)命令后即进入此模式. 主机识别到卡后也进入此模式. 卡状态和工作模式对照表 1.卡识别模式. 此模式下主机复位总线所有的卡, 验证工作电压, 询问卡的地址. 这个模式下所有数据的传输都是只通过CMD线来

SD协议

一、SD规范介绍 二、物理层规范 三、SD Memory Card 四、SDIO Card 五、驱动编写 一、SD2.0规范介绍 1、版本 SD spec1.0 低速度、低容量25M 2G SD spec1.1 高速度、低容量50M 2G SD spec2.0 高速度、高容量50M 32G 2、SD规范包括 (1) 物理层规范 (2) 文件系统规范 (3) SD卡安全规范 (4) SD卡音频应用规范+其他相关应用规范 (5) SD MC扩展规范移动设备 (6) SDIO卡规范 现在针对SD Memory 和SDIO两种类型的设备,所以下面内容只涉及子协议(1)、(6)。 3、符合SD2.0规范的设备 SD卡MiniSD、MicroSD 1.0/1.1 SDIO卡wifi 、GPS SDHC 2.0 最少支持class2 SDXC Combo Card 传输速度类型分为 class0 旧的卡, class2 大于2MB/S class4 大于4MB/S class6 大于6MB/S

二、物理层规范 2、总线传输模式 SPI 串行传输、低速度 SD 最多支持四线传输 兼容MMC 3 SD总线 3.1 总线分为host device (1) comand 命令host to device 都是48位 A、广播命令 B、点对点命令 (2) response 响应device to host 根据内容不同分为R1、R3、R4、R7(48位)和R2(136位)

初始化阶段,host给SD卡分配地址 数据传输是有单块传输命令和多块传输命令,然后通过发送一个终止命令停止传输单块还是多块传输,通过host去配置 命令先传msb 在lsb 3.2 格式 (1) 命令格式 (2) 响应格式 (3) 数据格式 有两种 (1) usual data bus 字节为单位发送 (2) wide data bus 以块单位发送 usual data :先发送高位,在发送低位一字节一字节发送

v2.0版SD卡协议中命令CMD8的使用详解

V2.0版SD卡在SPI模式下使用CMD8的操作 使用STM32学习板操作SD卡时,遇到了初始化中检测SD卡类型的问题,查看学习板带的源程序发现使用了CMD8命令进行判断SD卡的类型,在网上查了好久查不到有关SDV2.0中CMD8命令的详细描述,于是自己看了英文版的SDV2.0协议(2006),找出了CMD8命令的章节,翻译了一下,然后加上一些自己的理解,构成了这篇说明。 首先简单说一下SD卡的初始化过程,这个过程很多文章都有叙述,此处简单摘自其他文章如下: (1).首先延时74CLK,然后发送CMD0命令,得到返回值0X01; (2).然后进入卡类型检验。为了检验卡的类型,首先发送只有V2.0版的SD卡才具有的命令CMD8,然后检测返回值: 返回值若是0X01,则表示此卡为V2.0卡,然后再发送循环命令CMD55+ACMD41,直到返回0x00,确定SD2.0卡初始化成功;然后再发送CMD58命令,接收返回的OCR 寄存器的数据,其中第31位用于判断V2.0的卡是否为SDHC类型。 若返回值不为0X01,则进一步判断是V1.0卡还是MMC卡:先发送循环命令 CMD55+ACMD41进行复位,如果复位不成功则考虑是MMC卡,如果复位成功,则为V1.0卡。在复位不成功的情况下,再使用CMD1进行复位,如果复位成功,则表明是MMC卡,如果复位不成功,则表示是无法识别的卡。 从上面的初始化过程可以看出主要涉及到4个特殊的命令:CMD8、CMD55、CMD41、CMD58。对于CMD55和CMD41的讲解,有很多文章都有,不多解释,此复位命令的返回值和CMD1的返回值相同,成功复位时返回0X00;对于CMD58,其命令码格式是标准格式,其中数据填充0即可,CRC也可省略,只要最后加上停止位‘1’即可,不作详解;其返回值为R3类型,首先接收到一个字节应该为0X00,表示SD卡响应命令成功,然后接收4字节的OCR寄存器值;OCR寄存器的第30位(CCS)指示了卡的类型是否为

sd卡总线协议

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 sd卡总线协议 甲方:___________________ 乙方:___________________ 日期:___________________

sd卡总线协议 篇一:sd卡接口的完整规范 sd卡接口规范的完整翻译 特性: ◎容虽:32mb/64mb/128mb/256mb/512mb/1gbyte ◎兼容 规范版本1.01 ◎卡上错误校正◎支持cpRm ◎两个可选的通信协议:sd模式和spi模式◎可变时钟频率0— 25mh应通信电压范围:2.0-3.6V 工作电压范围:2.0-3.6V ◎低电压消耗:自动断电及自动睡醒,智能电源管理◎ 无需额外编程电压◎卡片带电插拔保护◎正向兼容mmc^ ◎高速串行接口带随即存取 ----- 支持双通道闪存交叉存取 ----- 快写技术:一个低成本的方案,能够超高速闪存 访问和高可靠数据存储---- 最大读写速率:10mbyte/s ◎最大10个堆叠的卡(20mhz,Vcc=2.7-3.6V) ◎数据寿命:10万次编程/擦除◎ ce和Fcc认证◎ pip封装技术◎尺寸:24mm? x 32mn#x 1.44mm厚说明: 本sd卡高度集成闪存,具备串行和随机存取能力。可以通过专用优化速度的串行接口访问,数据传输可靠。接口允许几个卡垛叠,通过他们的外部连接。接口完全符合最新的消费者标准,叫做sd卡系统标准,由sd卡系统规范

定义。sd卡系统是一个新的大容虽存储系统,基于半导体技术的变革。它的出 现,提供了一个便宜的、结实的卡片式的存储媒介,为了消费多媒体应用。sd 卡可以设计出便宜的播放器和驱动器而没有可移动的部分。 一个低耗电和广供电电压的可以满足移动电话、电池应用比如音乐播放器、个人管 理器、掌上电脑、电子书、电子白科全书、电子词典等等。 使用非常有效的数据压缩比如mpeg, sd卡可以提供足 够的容虽来应付多媒体数据。 框图: sd卡上所有单元由内部时钟发生器提供时钟。接口驱动 单元同步外部时钟的dat和cmd信号到内部所用时钟。 本卡由6线sd卡接口控制,包括:cmd,clk,dat0-dat3 。 sd卡接口的完整规范(二) faceoff 发表于20xx-8-1120:12:00 回复从该cmd线上串行传输。一个命令是对之前命令的回答。回复可以来 自 单机或所有卡。 dat0?3:数据可以从卡传向主机或副versa。数据通过 数据线传输。 sd卡总线拓扑 spi模式针脚定义

SD卡协议学习点滴(完整版本)

SD卡协议学习点滴(一) 首先SD卡有所谓操作模式(operation mode)的概念,每种操作模式又具体对应一种或多种状态,主机通过发送命令可以使SD卡在不同的状态间转换,SD卡则接受命令,并根据自己现在所处状态做出不同的响应。 系统上电时刻或者搜寻SD卡时,SD卡控制器应该处于SD卡识别模式;SD卡在刚接入系统时刻也处于这种模式,并且处于此模式下的Idle状态。 SD卡识别模式:在这种模式下,控制器会检验SD卡的工作电压范围,识别SD卡类型,并要求它们发送各自的相对地址(Relative Card Address);这些操作在SD卡各自的CMD线上进行。所有的操作均使用默认的 SD卡识别时钟频率(identification clock rate)SD卡复位:发送GO_IDLE_STATE(CMD0)到SD卡后,除处于非活动状态(Inactive state)之外的SD卡都会进入空闲状态(Idle state);在Idle状态,SD卡的CMD线处于输入模式,默认相对地址为0x0000,默认驱动寄存器设定为最低速度,最大驱动电流能力。 : 工作条件检测 在控制器和SD卡进行任何通信之前,控制器不清楚SD卡支持的工作电压范围,故而控制器首先使用默认的电压发送一条reset指令(CMD0),紧跟着的CMD8指令,用于取得SD卡支持工作电压范围数据。SD卡通过检测CMD8的参数部分来检查控制器使用的工作电压,控制器通过分析回传的CMD8参数部分来校验SD卡是否可以在所给电压下工作。如果SD卡可以在指定电压下工作,则它回送CMD8的命令响应字,其中包含check voltage, check pattern。如果SD卡不支持所给电压,则SD卡不会给出任何响应信息,并继续处于Idle 状态。在PLV2.0(physical layer version2.0)下,在首次执行ACMD41之前,必须执行CMD8指令,用以初始化SDHC卡,SDHC卡根据是否接收到CMD8指令来鉴别控制器是否支持PLV2.0协议。使用低电压的控制器也必须在ACMD41命令之前发送CMD8,避免可以工作在两种电压模式下的SD卡因为没有接收到CMD8,而默认工作在高电压环境下,被误认为是只支持高电压工作模式。 SD_SEND_OP_COND(ACMD41)命令的目的是给予SD卡控制器一个识别SD卡是否可以在所给Vdd范围下工作的机制,如果SD卡无法在指定Vdd范围内工作,则它会进入非活动状态(Inactive state)。要注意的是,ACMD41是应用相关型命令,因而,每次发出的ACMD41命令都必须紧跟在一条APP_CMD(CMD55)命令之后。在空闲态(Idle State)下使用的CMD55命令使用默认的卡相对地址(RCA)0x0000。

相关主题
文本预览
相关文档 最新文档