如何优化SDIO协议的性能?

1、SDIO概述

在介绍SDIO接口之前先了解一下MMC、SD卡、SDIO等背景知识,如下图:

 

  1. MMC(Multi Media Card):即多媒体卡,它是一种非易失性存储器件,体积小巧(24mm*32mm*1.4mm),容量大,耗电量低,传输速度快,主要应用于消费类电子产品中;
  2. SD(Secure Digital Memory Card):即安全数码卡,它是在MMC卡的基础上发展而来,并增加两个主要特色:SD卡增加了数据的安全访问,可以设定对存储数据的访问权限,防止数据被他人复制;SD相比2.11版的MMC卡传输速度更快;SD卡向前兼容MMC卡,所有支持SD卡的设备也支持MMC卡;
  3. SDIO:在SD标准上定义的一种外设接口,和SD可规范的唯一区别是增加了低速标准。SDIO卡只需要使用SPI或1位SD传输模式支持低速模式,低速卡的应用目标是以最小的硬件开销支持低速IO能力;目前常见的SDIO外围有:WIFI card(无线网络卡)、CMOS sensor card、GPS card、Bluetooth card等。

注:多媒体卡协会网站 www.mmca.org,SD卡协会网站 www.sdcard.org

2、SD标准简介

SD 标准使制造商能够提供高性能产品,以增强每天听音乐、录制视频、拍照、保存数据和使用手机的数百万人的体验。

作为行业标准,SD 标准被用于便携式存储行业的多个细分市场,包括手机、数码相机、MP3 播放器、个人电脑、平板电脑、打印机、汽车导航系统、电子书和许多其他消费电子设备。

2.1、外形尺寸

SD卡有三种外形尺寸;全尺寸、miniSD 和 microSD。microSD 取代了 miniSD,因此市场上更常见的两种外形尺寸如下表所示。

构成因素

标清

Micro SD

尺寸图

卡容量类型

SD、SDHC、SDXC 和 SDUC

引脚数

高速和UHS-I:9针

UHS-II和UHS-III:17针

SD Express 1-lane:17-19针

SD Express 2-lane:25-27针

高速和UHS-I:8针

UHS-II和UHS-III:16针

SD Express 1通道:17针

工作电压

第一行3.3V VDD范围:2.7V–3.6V
第二行1.8V VDD范围:1.70V-1.95V

写保护开关

是的

  1. 传统的SD存储卡只有一排引脚,包括一个3.3V电源VDD,用于默认速度、高速和 UHS-I总线接口模式。全尺寸卡有9个针脚(两个VSS),microSD卡有8个针脚(一个 VSS)。
  2. 更快的总线传输速度卡在第二排具有新的引脚布局,以支持UHS-II、UHS-III和SD Express传输速度。1.8V VDD包含在第二排引脚中。所有UHS-II、UHS-III和SD Express卡都需要3.3V 和 1.8V两种电源电压。

2.2、容量标准

  1. SD标准:使用FAT12和16文件系统的高达2GB SD存储
  2. SDHC标准:超过2GB-32GB使用FAT32文件系统的SDHC存储卡
  3. SDXC标准:超过32GB-2TB使用exFAT文件系统的SDXC存储卡
  4. SDUC标准:超过2TB-128TB使用exFAT文件系统的SDUC存储卡

2.3、速度标准

2.3.1、Class标准

Class是早期的通用速度等级标准,Class等级越高传输速度越快,目前Class 10级别最常见,对应的速度标准如下:

  1. Class 0:包括低于Class 2和未标注Speed Class的情况。
  2. Class 2:能满足观看普通MPEG4 MPEG2 的电影、SDTV、数码摄像机拍摄。
  3. Class 4:可以流畅播放高清电视(HDTV),数码相机连拍等需求。 
  4. Class 6:满足单反相机连拍和专业设备的使用要求。
  5. Class 10:全高清电视的录制和播放。

Class标准和其对应的通信速度如下:

Class等级

符号

通信速度

读写时的数据传输速度最低2MB/秒

读写时的数据传输速度最低4MB/秒

读写时的数据传输速度最低6MB/秒

读写时的数据传输速度最低10MB/秒

2.3.2、UHS标准

UHS是全新的总线模式,意为Ultra High Speed,它在存储卡表面以“I”或“II”表示。相较于之前常规的总线模式最高仅到达25MB/s的速度,目前最高接口带宽可达312MB/s,若采用不支持UHS-I/UHS-II的设备可使用卡但无法发挥最快的速度。

UHS-I的写入最高 95MB/s,读取最高104MB/s,保证最低传输速度为10MB/s;UHS-Ⅱ的写入最高280MB/s,读取最高312MB/s,保证最低传输速度为30MB/s。“U1”和“U3”代表UHS接口规范下的写入速度标准,为区分Speed Class的Class 2,UHS Class并没有设置U2等级,目前仅有U1和U3,下一个等级是U5。

  1. U1:表示UHS Class 1,写入速度为10MB/s
  2. U3:表示UHS Class 3,写入速度为30MB/s

2.3.3、VSC标准

近来由于6K/8K视频规格的提出,以及未来VR领域应用的可能,SD5.0标准新增了视频速度等级标准(Video Speed Class),它扩展了速度标准,将卡速分为V6/V10/V30/V60/V90五大等级,分别对应6MB/s、10MB/s、30MB/s、60MB/s、90MB/s的最低写入速度。

         SD卡不同标准数据传输速度对比如下表:

2.3.4、标准对比

综上所述,SD卡根据容量标准和数据传输速度标准可总结如下表所示:

SD标准

SDHC 标准

SDXC 标准

SDUC 标准

容量

高达2GB

2GB–32GB

32GB–2TB

2TB–128TB

文件系统

FAT12,16

FAT32

exFAT

exFAT

全尺寸SD卡

32 x 24 x 2.1 毫米

Micro SD 卡

11 x 15 x 1.0 毫米

NS模式

C2、C4、C6

高速模式

C2、C4、C6、C10、

V6、V10

UHS-I

模式

——

C2、C4、C6、C10

U1、U3

V6、V10、V30

UHS-II

模式

——

C4、C6、C10

U1、U3

V6、V10、V30、V60、V90

UHS-III

模式

——

C4、C6、C10

U1、U3

V6、V10、V30、V60、V90

2.3.4、版本对比

SD协议不同版本的对比表:

3、SDIO总线

SDIO协议是由SD卡协议演进而来,向前兼容SD卡协议。SDIO协议在SD卡协议基础上增加了低速标准。SDIO卡只需要SPI和1位SD传输模式。低速卡的目标应用是以最小的硬件开支来支持低速I/O能力,低速卡支持类似MODEM,条形扫描仪和GPS接收器等应用。

3.1、SDIO接口

SDIO总线和USB总线类似,SDIO总线也有两端,其中一端是主机(HOST)端,另一端是设备端(DEVICE),采用HOST- DEVICE这样的设计是为了简化DEVICE的设计,所有的通信都是由HOST端发出命令开始的。在DEVICE端只要能解析HOST的命令,就可以同HOST进行通信了,SDIO的HOST可以连接多个DEVICE。

 

 

SDIO的信号传输模式包括:SPI模式、1bit模式和4bit模式;

SDIO协议规定,在SDIO的1bit模式下,数据线DATA0用来传输数据,DATA1用作中断。在SDIO的4bit模式下,数据线DATA0~3用于传输数据,其中DATA1复用作中断线;

SD卡和micro SD卡接口如下图: 

 

3.2、SDIO命令

SDIO总线上的设置和控制都是通过命令来实现,SDIO总线上都是HOST端发起请求,然后DEVICE端回应请求,其中请求和应答中会包含数据信息:

  1. Command: 用于开始传输的命令,是由HOST端发往DEVICE端的,其中命令是通过CMD信号线传送的。
  2. Response: DEVICE返回的应答。也是通过CMD线传送的;
  3. Data: 数据是双向传送的。可以设置为1线模式,也可以设置为4线模式。数据是通过DAT0-DAT3信号线传输的。

SDIO的命令:

SDIO的命令分为:应用相关命令(ACMD)和通用命令(CMD)两部分。发送ACMD时,需先发送CMD55。

SDIO所有的命令和响应都是在SDIO_CMD引脚上面传输的,命令长度固定为48位,SDIO命令格式如下表所示:

SDIO的响应:

一般SD卡在接收到命令行,都会有一个应答(CMD0例外),这个应答我们也称之为响应。STM32的SDIO接口,支持2种响应类型:短响应(48位)和长响应(136位)

SDIO短响应(48位)格式如下表所示:

 SDIO长响应(136位)格式如下表所示:

 SD卡的响应:

SD卡总共有6类响应(R1、R1b、R2、R3、R6、R7),我们这里以R1为例简单介绍一下。R1(普通响应命令)响应属于短响应,其长度为48位,如下表所示:

物联沃分享整理
物联沃-IOTWORD物联网 » 如何优化SDIO协议的性能?

发表评论