SD 4.0 协议标准完整版
与前版对比主要变化
基本版本(草稿)
首次发行版本
版本 1.01+增补版本 1.01e(2004.3.21)
新增 CMD6(切换功能命令),以及新的命令系统中保留的
CMD34-37,50 和 57
新增告诉模式(最高 25MB/s 读写速率)
新增电子商务命令和厂商自定义命令
版本 1.10+对版本 1.10 追加的注释
新增高容量 SD 卡定义(最高 32GB)
以下是版本 2.00 新加的
(1)物理层版本 2.00
(2)支持扩展容量卡(SDXC)
(3)支持超高速 I(UHS-I)
(4)更新速度等级规范
(5)新增 Set Block Count 命令(CMD23)
版本 3.01 中的更改:
(1)追加的注释版本 1.00
(2)更新第一章中的描述
(3)更新图 4-23 到 4-37 以及 7-14 到 7-21 使其更准确
对最终版本额外的说明:
√SPI 模式下最大电流为 100mA(表 3-5)
√CMD15 可以在数据传输模式下发送(图 4-1)
√如果不支持速度等级(XPC=0),则表示 Class0 为默认
√在 CMD6 中只有功能组 2 具有 Busy 状态
√如何设置 SD_SPEC 及 SD_SPEC3(140 页 SCR)
√SCR 中 bit33-32 为 CMD_SUPPORT(140 页 SCR)
√SPI 模式下只支持 CPRM 安全性(175 页 7.2.12)
以下是版本 4.00 中新增的:
(1)支持 UHS-II 接口
(2)采用功率消耗和功率限制
(3)附录增加主机电源网络
(4)更改物理层版本 3.01
历史版本
日期
2000.3.22
2001.4.15
2004.10.15
版本
1.00
1.01
1.10
2006.5.09
2.00
2009.4.16
3.00
2010.2.18
3.01
2011.5.30
4.00
注:本文是在网络流传的“沙贝@中科创达”SD2.0 协议标准完整版的基础上,增加了 SD4.0
内容。文中正文标注红色表示是 SD4.0 新增内容;标题标注红色表示为该标题以下的内容都
是 SD4.0 新增加的。关于 UHS-II 内容,有另外的翻译版本。
风语者 2016 于西安
1、总体描述
Sd 存储卡,是为了满足安全、容量、性能、和环境需求的新型音视频电子存储卡。Sd 卡
包含一个内容保护机制,符合 SDMI 标准,并且有更快的速度和更高的容量。
Sd 卡的安全系统采用双向认证和“新密码算法”来防止卡的内容被非法使用。也可以
对用户自己的数据进行非安全访问。
SD 卡也支持基于常用标准的第二安全系统,比如 ISO-7816,这样就可以用于将 SD 卡连
接到共用网络和其他系统,来支持移动电子商务和数字签名的应用。
除了 SD 卡外,还有 SDIO 卡。SDIO 卡规范在一个单独的规范中定义,命名为“SDIO 卡
规范”(可以从 SD 协会得到)。SDIO 规范定义了一个 SD 卡可能包含不同的 IO 单元同 SD host
之间的接口。SDIO 卡可以包含存储功能,以及 IO 功能。SDIO 卡的存储部分应该完全兼容
SD 卡规范。SDIO 卡基于并兼容 SD 卡。这种兼容包括机械、电气、电源、信号和软件。Sdio
卡的意图是为移动电子设备在低功耗情况下提供高速数据读写。一个主要目标是一个 IO 卡
插到非 SDIO 主机中,不会引起物理损坏或者设备和软件的中断。这种情况下 IO 卡应该被简
单的忽略掉。一旦插入一个 SDIO 主控,卡的检测将以常规的方法描述,即带有 SDIO 规范扩
展的 SD 卡规范
SD 卡通信是基于 9-pin 接口(时钟,命令,数据 x4,电源 x3),设计在最大 50M 频率以
及低电下工作。通信协议是本规范的一部分。SD 规范分为几个文件:
图 1.1 SD 规范文件
● 音频规范
这个规范,以及其他应用规范,描述了一个特殊应用的规范(本文档是音频应用),以及 实
施需求
● 文件系统规范
这个规范描述了存储在 sd 卡上的数据的文件格式化结构的规范(保护和非保护区域)
● 安全规范
这个规范描述了内容保护机制和支持的特殊应用命令
● 物理层规范(本文档)
这个规范描述了 sd 卡使用的物理接口和命令协议。这个文档的目的是定义 sd 卡以及它
的环境和处理。这篇文档被分为了几个部分:
第 3 章是关于系统概念的概述
第 4 章描述了常见 SD 卡特点。这种描述定义了卡的整体性能,我们建议看产品文档
第 5 章描述了 sd 卡寄存器
第 6 章定义了 sd 卡的硬件接口的电气参数。
版本 2.00 中机械性能的描述被转移到标准尺寸描述附录中。
有三种基于形状的尺寸:
(1) 标准尺寸
(2)
(3)
UHS-II 接口描述在 UHS-II 文档中定义。
用于嵌入式应用的不可移动的 memory 器件的定义在 eSD 中。
这个文档中,“shall”和“will”表示一个标准的强制性规定。“should”表示一个条
款,建议但不强制。“may”是指一个特征(feature),可能存在或不存在(看使用者选择), 它
的存在并不影响依存性
miniSD
microSD
● Mc-EX 接口规范
SD 卡规范的 A1 部分作为 SD 卡物理层规范的扩展,提供了所有传输移动商务扩展(MC-EX)
命令包所需要的定义。(从 Mc-EX host 到 Mc-EX 使能 SD 卡,或者反向传输)
● SDIO 规范
SDIO 卡及 SDIO 规范是基于物理层规范的扩展和更改,该规范定义在 E1 部分 SDIO 规范
中。
2、系统特征
● 针对便携式和固定式应用
● 存储容量:
(1)标准容量 SD 卡(SDSC):最高达到 2GB
(2)高容量 SD 卡(SDHC):大于 2GB 且最高达 32GB
(3)扩展容量 SD 卡(SDXC):大于 32GB 且最高达 2TB
● 电压范围:
高电压 SD 卡-工作电压范围:2.7 -3.6V
UHS-II SD 卡-工作电压范围:VDD1:2.7-3.6V,VDD2:1.70-1.95V
● 专为只读和读/写卡
● 总线速度模式(使用 4 条并行数据线)
(1) 默认模式:3.3V,最高最高 25MHz,最高速度 12.5MB/sec
(2) 高速模式:3.3V,最高频率 50MHz,最高速度 25MB/sec
(3) SDR12: UHS-I 1.8V,最高频率 25MHz,最高速度 12.5MB/sec
(4) SDR25: UHS-I 1.8V,最高频率 50MHz,最高速度 25MB/sec
(5) SDR50: UHS-I 1.8V,最高频率 100MHz,最高速度 50MB/sec
(6) SDR104:UHS-I 1.8V,最高频率 208MHz,最高速度 104MB/sec
(7) DDR50: UHS-I 1.8V,最高频率 50MHz,双时钟沿采样,最高速度 50MB/sec
(8) UHS156:UHS-II 1.8V,RCLK 频率范围 26MHz-52MHz,最高速度 1.56Gbps 每通道
(per lane)
● 切换功能命令支持总线速度模式,命令系统,驱动强度,和未来的功能
● 存储区域错误改正
● 读取操作过程卡被移除,不会损坏内容
● 内容保护机制-符合 SDMI 标准的最高安全标准
● 卡密码保护(CMD42-LOCK_UNLOCK)
● 机械开关的写保护功能
● 内置写保护功能(临时和永久)
● 卡检测(插入/拔出)
● 应用特殊命令
● 轻松擦写机制
● 通信信道的协议属性
SD 卡通信信道
6 线通信信道(时钟,命令,数据 x4)
错误保护数据传输
单块或多块的定向数据传输
● SD 卡形状
有三种形状的卡:
标准尺寸的 SD 卡:见 Part1 标准尺寸 SD 卡
miniSD 卡:见 Part1 miniSD 卡
Micro SD 卡:见 Part1 microSD 卡
● SD 卡标准尺寸 2.1mm 和 1.4mm 本规范的所有特征都是基于标准尺
寸的 SD 卡
3、SD 卡系统概念
SD 卡提供给应用设计者一个低成本的存储设备(支持高安全级别的内容保护的可插拔卡),
以及一个简洁,易实现的接口。
SD 卡可以分为几个等级(class),他们提供的功能不同(功过 D 卡系统命令的子集提供)
一个 SD 卡系统包含 SD 卡,总线,以及主机/应用。不过主机及应用的说明不在本文档中。接
下来的各节提供了卡的概述,总线拓扑,SD 卡系统的通信协议。内容保护系统描述在文档“SD
Memory Card Security Specification”中。
3.1 读写属性
以读写属性来说,有两种 SD 卡:
● 读写卡(闪存,一次可编程-OTP,多次可编程-MTP) 这些卡一般是空白媒体卡卖出,用
于存储含量数据,终端用户视频,音频或者数字图像
● 只读卡(ROM) 这些卡是用固定内容制作的卡。他们通常用软件,音频视频
的分发媒体。
3.2 支持电压
以电压来说,有两种 SD 卡:
● 高电压 SD 卡,可以工作在 2.7-3.6V
● UHS-II SD 卡,可以工作在低电范围 VDD1:2.7-3.6V,VDD2:1.70-1.95V
3.3 卡容量
3.3.1 用户区和保护区
SD 卡有两个独立的区域:用户区和保护区。用户区是主要的存储区域,而保护区可以
在身份验证后访问。身份验证的内容在 Part3 安全规范中定义。卡容量是指用户区和保护区
容量的总和。
3.3.2 卡容量分类
以容量来说,有三种 SD 卡:
● 标准容量 SD 卡(SDSC),支持最大 2GB(231bytes)的容量。所有的物理规格文档都会
定义这种
● 高容量 SD 卡(SDHC),支持超过 2GB(231bytes)的容量,最高达 32GB。该类型卡在
版本 2.00 中定义。
● 扩展容量卡(SDXC),支持超过 32GB(235bytes)的容量,最高达 2TB。
注释:
1 “Part 1 物理层规格 V3.0 版或更新版”以及 “Part2 文件系统规格 V3.0 版或更新
版”允许标准容量 SD 卡最大 2GB,高容量 SD 卡最大 32GB,以及扩展容量 SD 卡最大 2TB。
2 Host 如果可以读写 2GB 到 32GB 的 SD 卡,那么它应该也可以读取 2GB 或更小的卡。
3 Host 如果可以读写 32GB 到 2TB 的 SD 卡,那么也应该可以读取 32GB 或者更小的卡。
3.4 速度等级
我们定义了 5 个速度等级,来表示卡的最小速率:
● Class 0 – 这种卡不定义具体性能,代表了这个规范出来之前的所有卡
● Class 2 – 最小 2MB/s 的性能(默认速度模式)
● Class 4 – 最小 4MB/s 的性能(默认速度模式)
● Class 6 – 最小 6MB/s 的性能(默认速度模式)
● Class 10 – 最小 10MB/s 的性能(高速模式)
高容量 SD 卡应该支持速度等级规格,并且最小要到 Class2。
注意:性能单位是[MB/sec] 表示 1000x1000[byte/s],而数据大小的 单位 MB 指的是 1024x1024 Byte。
这是因为最大 SD 总线速度是由最大 SD 时钟频率决定的(在 50MHz 频率下,25MB/s=25000000 Byte/s),
而数据大小是基于存储范围(2 的次幂)。
3.5 总线拓扑
SD 卡系统定义了三种通信协议:SD , SPI 和 UHS-II。
主机系统可以选择任意一种。当收到 reset 命令的时候,SD 卡通过主机的信息来决
定 使用何种模式,并且之后的通讯都会使用相同的模式。不推荐多卡槽用共同的总线信号。一
个单独的 SD 总线应该连接一个单独的 可移除的 SD 卡。UHS-II 支持多个器件通过环形
(Ring)或 Hub 拓扑连接(参见 3.5.3)。
3.5.1 SD 总线
图 3-1 SD 卡总线拓扑
SD 总线包含下面的信号:
CLK:
CMD:
DAT0-DAT3:
时钟信号
双向命令/响应信号
双向数据信号
Vdd,Vss1,Vss2: 电源和地信号
在默认速度下,SD 卡总线有一个主(应用),多个从(卡),同步的星型拓扑结构(图 3-
1)。时钟,电源和 地信号是所有卡都有的。在高速模式和 UHS-I 模式下,SD 卡总线有一
个主机(应用)一个从(卡),同步的点对点拓扑。命令(CMD)和数据(DAT0-3)信号是根据
每张卡的,提供连续地点对点连接到所有卡。
在初始化时,处理命令会单独发送到每个卡,允许应用程序检测卡以及分配逻辑地址给 物
理卡槽。数据总是单独发送(接收)到(从)每张卡。但是,为了简化卡的堆栈操作,在初始 化过
程结束后,所有的命令都是同时发送到所有卡。地址信息包含在命令包中。
SD 总线允许数据线的动态配置。上电后,SD 卡默认只使用 DAT0 来传输数据。初始化
之 后,主机可以改变总线宽度(使用的数据线数目)。这个功能允许硬件成本和系统性能之间的
简单交换。注意:当 DAT1-DAT3 没有使用的时候,相关的主机 DAT 先应该被设置为输入模
式。SDIO 卡 DAT1 和 DAT2 用于信令。
3.5.2 SPI 总线
SD 卡的 SPI 兼容通信模式是用来同 SPI 信道通信,主要是用在市场是哪个的各种微处
理器。模式选择是在上电后的第一次 reset 命令期间,并且只要不断电就不能改变。SPI 标
准只是定义了物理连接,没有完成数据传输协议。SD 卡的 SPI 实现使用了 SD 模式相同的命
令。从应用的角度来说,SPI 模式的优点是使用现成主机的能力,从而减小设计压力。相对
于使能宽总线选项的 SD 卡来说,缺点是性能的损失。SD 卡 SPI 接口同市场上现有的 SPI 主
机兼容。同其他 SPI 设备一样,SD 卡的 SPI 信道有以下 4 个信号:
CS:
CLK:
主机到卡的片选(chip select)信号
主机到卡的时钟信号
DataIn: 主机到卡的数据信号
DataOut: 卡到主机的数据信号
另一个 SPI 的通用特点是字节传输,这也是卡的实现。所有的数据都是字节(8 bit)的
整数倍,并且直接总是对齐 CS 信号。
图 3-2 SD 卡系统(SPI 模式)总线拓扑
卡片的识别和寻址方法由一个硬件片选信号代替。没有广播命令。每一个命令,都会有
一个从卡通过拉低片选信号来被选择(图 3-2)。
在 SPI 活动(命令,响应,数据)期间片选信号应该是连续被拉低的。唯一的例外是在卡
编程期间,此时主机能在不影响编程过程的情况下断定 CS 信号。
SPI 接口使用 SD 总线的 9 线里面的 7 根(DAT1 和 DAT2 不用,DAT3 作为 CS 信号)。
3.5.3 UHS-II 总线
有两种方法通过 UHS-II 接口来连接多个 UHS-II 器件。一种是“环形连接”(Ring
Connection),另一种是“HUB 连接”(HUB Connection)(HUB 规范没有在此文档中定义)。可
拆除的卡槽应该被连接到 SD 4-bit 模式以及 UHS-II 总线。
图 3-3:UHS-II 总线拓扑
3.6 总线协议
3.6.1 SD 总线
SD 总线的通信是基于命令和数据流的。由一个起始位开始,由一个停止位终止。
● 命令(Command):命令就是一个标记,用于发起一个操作。由主机发送到单个卡(寻址命
令)或者所有卡(广播命令)。命令在 CMD 线上是连续传输的。
● 响应(Response):响应是一个标记,从寻址的卡或者所有卡(同步)发送给主机,作为向
前接收到的命令的回答。响应也是在 CMD 线上连续传输的。
● 数据(Data):数据可以从主机到卡,也可以从卡到主机。通过数据线传输。
卡片寻址通过使用会话地址来实现,会话地址会在初始化阶段分配给卡。命令,响应和 数
据块的结构在第 4 章中描述。SD 总线上的基本交互是命令/响应交互(图 3-4)。这种总线交
互直接在命令或者响应的结构里面传输他们的信息。此外,一些操作还有数据内容。
SD 卡发送或接收的数据在块(block)中完成。数据块以 CRC 位来保证成功。目前有单块
或多块操作。注意:多块操作模式在快速写操作时更好一点。多块传输以命令线上的结束命 令
为结束标志。主机端可以配置单线还是多线传输。
块写操作使用简单的 busy 来表示 DAT0 数据线上的持续写操作,不管使用几线传输。