SD2.0协议标准完整版【翻译:沙贝@中科创达2014.11】1、总体描述Sd存储卡,是为了满足安全、容量、性能、和环境需求的新型音视频电子存储卡。Sd卡包含一个内容保护机制,符合SDMI标准,并且有更快的速度和更高的容量。Sd卡的安全系统采用双向认证和“新密码算法”来防止卡的内容被非法使用。也可以对用户自己的数据进行非安全访问。SD卡也支持基于常用标准的第二安全系统,比如ISO-7816,这样就可以用于将SD卡连接到共用网络和其他系统,来支持移动电子商务和数字签名的应用。除了SD卡外,还有SDIO卡。SDIO卡规范在一个单独的规范中定义,命名为“SDIO卡规范”(可以从SD协会得到)。SDIO规范定义了一个SD卡可能包含不同的IO单元同SDhost之间的接口。SDIO卡可以包含存储功能,以及IO功能。SDIO卡的存储部分应该完全兼容SD卡规范。SDIO卡基于并兼容SD卡。这种兼容包括机械、电气、电源、信号和软件。Sdio卡的意图是为移动电子设备在低功耗情况下提供高速数据读写。一个主要目标是一个IO卡插到非SDIO主机中,不会引起物理损坏或者设备和软件的中断。这种情况下IO卡应该被简单的忽略掉。一旦插入一个SDIO主控,卡的检测将以常规的方法描述,即带有SDIO规范扩展的SD卡规范SD卡通信是基于9-pin接口(时钟,命令,数据x4,电源x3),设计在最大50M频率以及低电下工作。通信协议是本规范的一部分。SD规范分为几个文件:SD规范安全规格SDspecificationsSecuritySpec音频规范(Audio)其他应用文档文件系统规范Sd规范物理层规范Mc-EX接口规范SDIO卡规范●音频规范这个规范,以及其他应用规范,描述了一个特殊应用的规范(本文档是音频应用),以及实施需求●文件系统规范这个规范描述了存储在sd卡上的数据的文件格式化结构的规范(保护和非保护区域)●安全规范这个规范描述了内容保护机制和支持的特殊应用命令●物理层规范(本文档)这个规范描述了sd卡使用的物理接口和命令协议。这个文档的目的是定义sd卡以及它的环境和处理。这篇文档被分为了几个部分:第3章是关于系统概念的概述第4章描述了常见SD卡特点。这种描述定义了卡的整体性能,我们建议看产品文档第5章描述了sd卡寄存器第6章定义了sd卡的硬件接口的电气参数第8章描述了sd卡的物理和机械性能,以及卡槽或者盒子的最小建议。这个文档中,“shall”和“will”表示一个标准的强制性规定。“should”表示一个条款,建议但不强制。“may”是指一个特征(feature),可能存在或不存在(看使用者选择),它的存在并不影响依存性●Mc-EX接口规范SD卡规范的A1部分作为SD卡物理层规范的扩展,提供了所有传输移动商务扩展(MC-EX)命令包所需要的定义。(从Mc-EXhost到Mc-EX使能SD卡,或者反向传输)2、系统特征●针对便携式和固定式应用●存储容量:标准容量SD卡:最高达到2GB高容量SD卡:大于2GB(本版本规格最高32GB)●电压范围:高电压SD卡-工作电压范围:2.7-3.6V双电压SD卡-工作电压范围:低电范围(T.B.D)和2.7-3.6V●专为只读和读/写卡●默认模式:可变时钟频率0-50MHz,最高25MB/s的接口速度(使用4条并行数据线)●切换功能命令支持高速,电子商务和未来的功能●存储区域错误改正●读取操作过程卡被移除,不会损坏内容●内容保护机制-符合SDMI标准的最高安全标准●卡密码保护(CMD42-LOCK_UNLOCK)●机械开关的写保护功能●内置写保护功能(临时和永久)●卡检测(插入/拔出)●应用特殊命令●轻松擦写机制●通信信道的协议属性SD卡通信信道6线通信信道(时钟,命令,数据x4)错误保护数据传输单块或多块的定向数据传输●SD卡形状标准尺寸的SD卡:见本规格的第6、8章MiniSD卡:见“miniSDMemoryCardSpecification”MicroSD卡:见“microSDMemoryCardSpecification”●SD卡标准尺寸2.1mm和1.4mm本规范的所有特征都是基于标准尺寸的SD卡3、SD卡系统概念SD卡提供给应用设计者一个低成本的存储设备(支持高安全级别的内容保护的可插拔卡),以及一个简洁,易实现的接口。SD卡可以分为几个等级(class),他们提供的功能不同(功过D卡系统命令的子集提供)一个SD卡系统包含SD卡,总线,以及主机/应用。不过主机及应用的说明不在本文档中。接下来的各节提供了卡的概述,总线拓扑,SD卡系统的通信协议。内容保护系统描述在文档“SDMemoryCardSecuritySpecification”中。3.1读写属性以读写属性来说,有两种SD卡:●读写卡(闪存,一次可编程-OTP,多次可编程-MTP)这些卡一般是空白媒体卡卖出,用于存储含量数据,终端用户视频,音频或者数字图像●只读卡(ROM)这些卡是用固定内容制作的卡。他们通常用软件,音频视频的分发媒体。3.2支持电压以电压来说,有两种SD卡:●高电压SD卡,可以工作在2.7-3.6V●双电压SD卡,可以工作在低电范围(T.B.D)以及2.7-3.6V3.3卡容量以容量来说,有两种SD卡:●标准容量SD卡,支持最大2GB的容量。所有的物理规格文档都会定义这种●高容量SD卡,支持超过2GB的容量。本文档解释的规格最大为32GB容量。只有Host支持2.0协议才能够识别这种高容量SD卡。注释:1“Part1物理层规格V2.0”以及“Part2文件系统规格V2.0”允许标准容量SD卡最大2GB,高容量SD卡最大32GB。大于32GB的容量将在未来的版本中说明。2Host如果可以读写2GB到32GB的SD卡,那么它应该也可以读取2GB或更小的卡。如果Host只支持标准容量SD卡,则不能识别超过2GB的卡。即向下兼容。●高容量的SD卡有两种类型。类型A(单状态卡)有一个单独的高容量存储区域。细节参考“PhysicalLayerSpecificationversion22.00”。类型B(多状态卡)有一个高容量存储区和标准容量存储区。在B类卡中,每次只能有一个存储区域能够使用。可以通过电气开关来切换哪个区域被使用。详细信息见未来的文档。主机端不一定要区别两种类型。3.4速度等级我们定义了4个速度等级,来表示卡的最小速率:(实际上目前最高Class10)●Class0–这种卡不定义具体性能,代表了这个规范出来之前的所有卡●Class2–最小2MB/s的性能●Class4–最小4MB/s的性能●Class6–最小6MB/s的性能●Class8–最小8MB/s的性能●Class10–最小10MB/s的性能高容量SD卡应该支持速度等级规格,并且最小要到Class2。注意:性能单位表示的是1000x1000[字节/秒],而数据大小的MB单元指的是1024x1024字节。这是因为最大SD总线速度是由最大SD时钟频率决定的,而数据大小是基于存储范围。3.5总线拓扑SD卡系统定义了两种通信协议:SD和SPI主机系统可以选择任意一种。当收到reset命令的时候,SD卡通过主机的信息来决定使用何种模式,并且之后的通讯都会使用相同的模式。不推荐多卡槽用共同的总线信号。一个单独的SD总线应该连接一个单独的SD卡。在主机支持高速模式的情况下,单独的SD总线应该连接单独的SD卡。3.5.1SD总线图3-2SD卡总线拓扑SD总线包含下面的信号:CLK:时钟信号CMD:双向命令/响应信号DAT0-DAT3:双向数据信号Vdd,Vss1,Vss2:电源和地信号SD卡总线有一个主(应用),多个从(卡),同步的星型拓扑结构(图3-2)。时钟,电源和地信号是所有卡都有的。命令(CMD)和数据(DAT0-3)信号是根据每张卡的,提供连续地点对点连接到所有卡。在初始化时,处理命令会单独发送到每个卡,允许应用程序检测卡以及分配逻辑地址给物理卡槽。数据总是单独发送(接收)到(从)每张卡。但是,为了简化卡的堆栈操作,在初始化过程结束后,所有的命令都是同时发送到所有卡。地址信息包含在命令包中。SD总线允许数据线的动态配置。上电后,SD卡默认只使用DAT0来传输数据。初始化之后,主机可以改变总线宽度(使用的数据线数目)。这个功能允许硬件成本和系统性能之间的简单交换。注意:当DAT1-DAT3没有使用的时候,相关的主机DAT先应该被设置为输入模式。SDIO卡DAT1和DAT2用于信令。3.5.2SPI总线SD卡的SPI兼容通信模式是用来同SPI信道通信,主要是用在市场是哪个的各种微处理器。模式选择是在上电后的第一次reset命令期间,并且只要不断电就不能改变。SPI标准只是定义了物理连接,没有完成数据传输协议。SD卡的SPI实现使用了SD模式相同的命令。从应用的角度来说,SPI模式的优点是使用现成主机的能力,从而减小设计压力。相对于使能宽总线选项的SD卡来说,缺点是性能的损失。SD卡SPI接口同市场上现有的SPI主机兼容。同其他SPI设备一样,SD卡的SPI信道有以下4个信号:CS:主机到卡的片选(chipselect)信号CLK:主机到卡的时钟信号DataIn:主机到卡的数据信号DataOut:卡到主机的数据信号另一个SPI的通用特点是字节传输,这也是卡的实现。所有的数据都是字节(8bit)的整数倍,并且直接总是对齐CS信号。表格3-3SD卡系统(SPI模式)总线拓扑卡片的识别和寻址方法由一个硬件片选信号代替。没有广播命令。每一个命令,都会有一个从卡通过拉低片选信号来被选择(表格3-3)。在SPI活动(命令,响应,数据)期间片选信号应该是连续被拉低的。唯一的例外是在卡编程期间,此时主机能在不影响编程过程的情况下断定CS信号。SPI接口使用SD总线的9线里面的7根(DAT1和DAT2不用,DAT3作为CS信号)3.6总线协议3.6.1SD总线SD总线的通信是基于命令和数据流的。由一个起始位开始,由一个停止位终止。●命令(Command):命令就是一个标记,用于发起一个操作。由主机发送到单个卡(寻址命令)或者所有卡(广播命令)。命令在CMD线上是连续传输的。●响应(Response):响应是一个标记,从寻址的卡或者所有卡(同步)发送给主机,作为向前接收到的命令的回答。响应也是在CMD线上连续传输的。●数据(Data):数据可以从主机到卡,也可以从卡到主机。通过数据线传输。卡片寻址通过使用会话地址来实现,会话地址会在初始化阶段分配给卡。命令,响应和数据块的结构在第4章中描述。SD总线上的基本交互是命令/响应交互(表格3-4)。这种总线交互直接在命令或者响应的结构里面传输他们的信息。此外,一些操作还有数据内容。SD卡发送或接收的数据在块(block)中完成。数据块以CRC位来保证成功。目前有单块或多块操作。注意:多块操作模式在快速写操作时更好一点。多块传输以命令线上的结束命令为结束标志。主机端可以配置单线还是多线传输。块写操作使用简单的busy来表示DAT0数据线上的持续写操作,不管使用几线传输。命令符号是以下的编码方案:注:命令内容:命令+地址信息/参数+7位CRC校验(48bit)每一个命令标记都是以起始位bit(0)在最开始,以结束位bit(1)表示成功。总长度是48Bit。每个命令都使用CRC位来保护,这样可以检测到传输错误,并且再次发送命令。响应标记以内容分,有4种编码方式。编码的长度可以是48Bit或者136bit,详细的命令和响应见4.7章。数据块的CRC保护算法是一个16bit的CCITT多项式。所有允许的CRC类型见4.5章注:●R1response:方向位[1Bit]+命令[8Bit]+状态信息[32Bit]+CRC[7Bit]=[48Bit]●R2response:方向位+命令+CID/CSD寄存器+CRC=[136Bit]●R3response:方向位+命令+OCR寄存器+CRC校验=[48Bit]●R6response:方向位+命令+RCA寄存器+C