MEMORY系列之“SDIO”

硬件助手 2019-04-02

本文主要介绍SDIO接口及SDIO存储卡的相关特性。


1、SDIO接口

SDIO接口不只用于存储数据的SD存储卡,还有SD I/O卡,MMC卡。其中SD I/O卡与SD存储卡是有区别的,SD I/O卡实际上就是利用SDIO接口的一些模块,插入SD的插槽中,扩展设备的功能,如:SDI/O Wi-Fi,SDI/O CMOS相机等。



SD规范包括如下几部分:

  • 物理层规范

  • 文件系统规范

  • SD卡安全规范

  • SD卡音频应用规范+其他相关应用规范

  • SD MC扩展规范、移动设备

  • SDIO卡规范


由于SDIO可支持各种设备,所以对SDIO接口进行初始化后,上电后就要对它接入的卡进行识别、分类,这个过程是主机向卡发送一系列不同的命令,根据卡不同的响应来进行分类。

SDIO接口包含CLK、CMD及4条DAT[3:0]信号线。这6条信号线都是共用的总线,即新加入的设备可以并联接入到SDIO接口。SDIO主机是通过命令和SD从设备的响应来寻址的,所以不需要片选信号线。

  • CLK是卡的时钟信号线,由主机产生时钟信号,SD卡和SDIO卡的时钟频率可为0~25MHz。在命令和数据线上,每个时钟周期传输1位命令或数据。

  • CMD为命令信号线,SDIO的所有由主机发出的命令及从机对命令的响应,都是在这个信号线上传输的。

  • DAT[3:0]表示4条数据线,主机和从机的数据信号在这4条线上传输。


SD卡可以通过单数据线(DATA0)或四根数据线(DATA[3:0])进行数据传输。单根数据线传输的最大速率为25Mbit/s,四根数据线传输的最大速率为100Mbit/s。


2、SD Memory Card

SD存储卡有如下一些版本和类别:


版本

最大时钟速率MHz

1.0

25

1.1

50

2.0

50

 

卡类型

容量

标准容量卡(SDSC)

最大容量为2GB

高容量卡(SDHC)

容量为2~32GB

扩展容量卡(SDXC)

容量为32GB~2TB

 

2.1、SD卡分类(速度等级)

四线速度模式分为以下几种:

  • Default Speed Mode: 3.3V signaling, Frequency up to 25MHz, up to12.5MB/sec;

  • High Speed Mode: 3.3V signaling, Frequency up to 50MHz, up to25MB/sec;

  • SDR12: 1.8V signaling, Frequency up to 25MHz, up to 12.5MB/sec;

  • SDR25: 1.8V signaling, Frequency up to 50MHz, up to 25MB/sec;

  • SDR50: 1.8V signaling, Frequency up to 100MHz, up to 50MB/sec;

  • SDR104: 1.8V signaling, Frequency up to 208MHz, up to 104MB/sec;

  • DDR50: 1.8V signaling, Frequency up to 50MHz, sampled on both clock edges, upto 50MB/sec;

SD存储卡传输速度分类如下:

  • class-0:这类卡片不指定性能

  • class-2:不低于2MB/s

  • class-4:不低于4MB/s

  • class-6:不低于6MB/s

  • class-10:不低于10MB/s

注:大容量和超大容量SD存储卡至少应该为class-2


2.1.1、UHS-I





注:DDR50 is mandatory for microSDform factor and optional for Standard size SD form factor.




2.1.2、UHS-II






2.2、引脚定义
2.2.1、SD卡引脚定义


引脚号

SD 4-bit模式

SD 1-bit模式

SPI模式

名称

类型

描述

名称

名称

类型

描述

1

CD/DAT3

I/O/PP

卡检测/数据线3

NC

CS

I

片选

2

CMD

I/O/PP

指令/响应

CMD

DI

I

数据输入

3

VSS1[长脚]

S

VSS1

VSS

S

4

VDD[长脚]

S

电源

VDD

VDD

S

电源

5

CLK

I

时钟

CLK

SCLK

I

时钟

6

VSS2

S

VSS2

VSS2

S

7

DAT0

I/O/PP

数据线0

DAT

DO

O/PP

数据输出

8

DAT1

I/O/PP

数据线1

IRQ(中断)

Reserved



9

DAT2

I/O/PP

数据线2

RW(Read Wait)

Reserved




2.2.2、MicroSD(TF)/MiniSD卡引脚定义

TF卡(TransFlash)是Motorola与SanDisk共同推出的记忆卡规格,它采用最新的封装技术,并配合SanDisk最新的NAND MLC技术和控制器技术。大小为11x15x1mm,TransFlash Card附有SD转接器,可兼容任何SD读卡器。TF卡是市面上最小的闪存卡,TF卡产品采用SD架构设计而成,SD协会于2004年底正式将其更名为Micro SD卡。


引脚号

SD模式

SPI模式

名称

类型

描述

名称

类型

描述

1

DAT2

I/O/PP

数据线2

Reserved



2

CD/DAT3

I/O/PP

卡检测/数据线3

CS

I

片选

3

CMD

PP

指令/响应

DI

I

数据输入

4[长脚]

VDD

S

电源

VDD

S

电源

5

CLK

I

时钟

SCLK

I

时钟

6[长脚]

VSS

S

VSS2

S

7

DAT0

I/O/PP

数据线0

DO

O/PP

数据输出

8

DAT1

I/O/PP

数据线1

Reserved




2.2.3、MiniSD卡引脚定义


引脚号

SD模式

SPI模式

名称

类型

描述

名称

类型

描述

1

CD/DAT3

I/O/PP

卡检测/数据线3

CS

I

片选

2

CMD

I/O/PP

指令/响应

DI

I

数据输入

3

VSS1

S

VSS

S

4

VDD

S

电源

VDD

S

电源

5

CLK

I

时钟

SCLK

I

时钟

6

VSS2

S

VSS2

S

7

DAT0

I/O/PP

数据线0

DO

O/PP

数据输出

8

DAT1

I/O/PP

数据线1

Reserved



9

DAT2

I/O/PP

数据线2

Reserved



10

NC






11

NC







 



注:SD1-bit模式和SPI模式的区别:

  • SPI总线是一个通用总线,大部份芯片都用硬件模块;

  • SPI模式支持不带CRC校验的传输方式,可以降低硬件要求;

  • SD的CMD线与DATA线之间有可能同时产生数据,对没有SD硬件模块的主机支持起来难度较高。


2.2.4、UHS-II引脚定义

Pin #

Name

Type

Description

4

VDD1

Supply voltage

2.7V to 3.6V

7

RCLK+

Differential Signaling: Input

Clock Input

8

RCLK-

Differential Signaling: Input

Clock Input

10

VSS3

Ground


11

D0+

Differential Signaling: Input (FD) /  Bidirectional (HD)

Input in default

12

D0-

Differential Signaling: Input (FD) /  Bidirectional (HD)

Input in default

13

VSS4

Ground


14

VDD2

Supply Voltage 2

1.70V to 1.95V

15

D1-

Differential Signaling: Output (FD) /  Bidirectional (HD)

Output in default

16

D1+

Differential Signaling: Output (FD) /  Bidirectional (HD)

Output in default

17

VSS5

Ground



SD bus contacts 7 and 8 Pins are used for RCLK. Thefirst row contacts in non UHS-II mode are equivalent to SD Memory Card PadAssignment.



UHS-II Card shall not drive unused lines of SD I/Fin UHS-II mode. (CLK, CMD and DAT[3:2]. DAT[2] may be used as interrupt line in case ofUHS-II SDIO Card. In this case, card controls DAT[2] level.) Host shall notleave these unused lines floating, but keep them at a defined high or lowlevel. How to keep line level is dependent on host implementation. For example,use pull-up resistor or host drives the lines to low level without providingpull-up voltage. As DAT[1:0] are used for providing RCLK, individual linecontrol is required to use pull-up method for CMD and DAT[3:2]. CLK (withoutpull-up resistor) should be driven to low.

In case ofentering hibernate mode, unused lines shall be set to low before turning offVDD1.


2.3、SD卡总线协议

SD卡总线协议包括如下三种:

  • SD Bus Protocol

  • SPI Bus Protocol

  • UHS-II Bus Protocol


2.4、SD卡操作模式


Card State

Operation mode

Inactive

Inactive

Idle  State

Card Identification Mode

Ready State

Identification State

Stand-by State

Data Transfer Mode

Transfer State

Sending-data State

Receive-data State

Programming State

Disconnect State


SD模式状态图如下图所示:


SPI模式状态图如下图所示:


2.5、SD卡的命令格式

SDIO的所有命令及命令响应,都是通过SDIO-CMD引脚来传输的。且命令只能由HOST发出。

SDIO协议规定了非常多的命令,把这些命令分类别来整理,都有11种之多,包括基本命令、块读取命令、块写入命令、写保护命令、擦除命令、卡上锁命令、应用指定命令、I/O模式命令、功能选择命令及特殊的应用命令ACMD。其中,在使用ACMD命令前,要先向卡发送编号为CMD55的应用指定命令。

所有的命令长度都固定为48bits,传输速率为1.92us@25MHz或者0.96us@25MHz。一个命令包含了6个段,分别为start bit,transmission bit,command index段、argument段、crc7段和end bit,其中除了command index段和argument段是需要在软件配置的时候设置的,其它段都由硬件完成。command index就是命令索引(SD协议规定的命令编码),如命令CMD0,CMD1…的编码为0,1...。有的命令会包含参数,如读命令的参数为要读取数据的地址,这些命令参数被存放在argument段。

SD存储卡的指令和响应格式如下表所示:


Command

Bit  Position

47

46

[45:40]

[39:8]

[7:1]

0

Width(bits)

1

1

6

32

7

1

Value

0

1(Host  Command)

x

x

x

1

Description

Start bit

Transmission bit

Command index

Argument

CRC7

End bit

Response  R1、R3、R6

Bit  Position

47

46

[45:40]

[39:8]

[7:1]

0

Width(bits)

1

1

6

32

7

1

Value

0

0(Card  Response)

x

x

x

1

Description

Start bit

Transmission bit

Command index

Card status

CRC7

End bit

Response  R2

Bit  Position

135

134

[133:128]

[127:1]

0

Width(bits)

1

1

6

127

1

Value

0

0(Card  Response)

111111

x

1

Description

Start bit

Transmission bit

Reserved

CID or CSD register incl.

internal CRC7

End bit

 

SD卡对主机的各种命令回复称为响应,除了CMD0命令外,SD卡在接收到命令都会返回一个响应。对于不同的命令,会有不同的响应格式,一共有7种,简称R1~R7(SD存储卡不支持R4、R5,SDIO卡支持7种)。按响应的字节长度又分为长响应型(136bit)和短响应型(48bit)。

当需要知道RCA和卡状态时,可以向卡发送CMD3命令,然后等待SD卡对命令的响应。SDIO接口通过CMD信号线接收到响应后,由硬件去除响应的头尾信息,把command index保存到SDIO_RESPCMD寄存器,把Argument field内容保存存储到SDIO_RESPx寄存器中。然后软件读取这两个寄存器即可获得所需的信息。


2.6、SD卡数据传输格式

SD卡的数据写入、读取的最小单位是块,每块的大小为512字节。首先软件通过SDIO接口的CMD信号线发送多块写入的命令,接收到正常的响应后,要写入的数据线从4根DAT信号线传输出去,每块结束后是CRC校验码。接着要检测忙状态,数据传输到SD卡后,SD卡启动内部时序保存数据,这时SD卡会把DAT0信号线拉低,表示处于“忙”状态,忙状态结束后,主机才能发送下一个数据块的数据。

SD卡有两种数据包格式:

  • Usualdata (8-bit width): Theusual data (8-bit width) are sent in LSB (Least Significant Byte) first,MSB (Most Significant Byte) last sequence. But in the individual byte, it is MSB (Most Significant Bit)first, LSB (Least Significant Bit) last.

注:在字节之间,先传输低字节后传输高字节;在字节内部,先传输高位后传输低位。

  • Widewidth data (SD Memory Register): The wide width data is shifted from the MSBbit.

注:以块(512bit)为单位发送,先传输最高位后传输低位。




2.7、SD Memory Card寄存器

 

名称

带宽

描述

CID卡标识寄存器

128

卡的ID号,用来区分每张卡:产品序列、生产日期。强制

RCA卡地址

16

卡的本地系统地址,在设定初值期间由卡动态产生并被主机核准。强制

DSR驱动层寄存器

16

配置卡的输出驱动。可选

CSD卡特性寄存器

128

卡的特殊数据,标识卡的操作条件。强制

SCR卡配置寄存器

64

标识SD存储卡的特别特征:支持协议、支持总线宽度。强制

OCR操作寄存器

32

操作条件寄存器:电压值、上电状态。强制

SSR

512


CSR

32


注:RCA寄存器在SPI模式时不可用。

 

2.7.1、OCR寄存器

OCR(操作条件寄存器)中存储了卡片的电压信息以及部分状态信息:其中一个状态位(bit 31)指示卡片的上电操作是否完成,另外一个状态位(bit 30)指示卡片的容量状态(0代表SDSC、1代表SDHC或者SDXC)。寄存器的说明如下图所示:



2.7.2、CID寄存器

CID(卡标识寄存器)总共128 bits,包含了卡片的识别信息,每个独立的卡片都应该有一组独一无二的识别信息。寄存器说明如下图所示:




2.7.3、CSD寄存器

CSD(卡特性寄存器)也是128 bits,提供了访问卡片内容的一些信息如:传输速率、数据格式、错误类型、最大是数据访问时间、DSR寄存器是否启用的。其中bit[126:127]记录了CSD的版本号,CSD Version1.0为标准容量卡所用,CSD Version 2.0为大容量或超大容量卡所用。CSD Version 1.0寄存器说明如下图所示:



2.7.4、SCR寄存器

SCR(卡配置寄存器)总共64 bits,定义了卡片的一些特殊功能,寄存器说明如下图所示:



2.7.5、CSR寄存器

CSR(卡片状态寄存器)总共32 bits,代表了执行一个命令的错误和状态信息,其信息包含在R1格式的应答中返回给主机,寄存器说明如下图所示:




2.7.6、SSR寄存器

SD Status 寄存器包含了SD存储卡的的专有属性并为以后的功能扩展保留了足够的空间,其大小为512 bits即一个块大小,这个寄存器作为ACMD13命令的执行结果,通过DATA线发送到主机,寄存器说明如下图所示:


 

3、SDIO Card

SDIO卡在SD内存卡基础上发展起来,SDIO接口兼容之前的SD内存卡,可连接SDIO设备,根据SDIO协议,支持设备包括蓝牙,GPS卡,网卡,电视卡等。

SDIO协议是SD协议的一个子协议,很多地方保留SD卡协议,在这基础上增加了CMD52和CMD53命令。SDIO与SD的一个重要区别是,增加了低速标准。


3.1、SDIO设备分类

SDIO设备分类如下:

  • 低速卡(Low-Speed SDIO cards):调制解调器、条形码扫描仪,GPS接收器等,时钟频率为0~400KHz,4bits SD模式为optional;
  • 高速卡(Full-Speed SDIO cards):网卡等,时钟频率为0~25MHz,传输速率为10MB/s;
  • 组合卡(Combo cards):组合卡指SDIO+存储器,组合卡中SDIO最高CLOCK为25MHZ,SD最高高于25M时强制4bitsSD模式。

3.2、SDIO卡引脚定义


引脚号

SD 4-bit模式

SD 1-bit模式

SPI模式

名称

类型

描述

名称

名称

类型

描述

1

CD/DAT3

I/O/PP

卡检测/数据线3

NC

CS

I

片选

2

CMD

I/O/PP

指令/响应

CMD

DI

I

数据输入

3

VSS1

S

VSS1

VSS

S

4

VDD

S

电源

VDD

VDD

S

电源

5

CLK

I

时钟

CLK

SCLK

I

时钟

6

VSS2

S

VSS2

VSS2

S

7

DAT0

I/O/PP

数据线0

DAT

DO

O/PP

数据输出

8

DAT1

I/O/PP

数据线1

IRQ(中断)

IRQ



9

DAT2

I/O/PP

数据线2

RW(Read Wait)

Reserved



10

NC



NC

NC



11

NC



NC

NC



注:NC仅在miniSDIO卡中使用。


硬件助手 将艺术融于技术,将技术融于生活。 Art in tech, tech in life.
评论
热门推荐
相关推荐
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦