SD卡驱动-基础知识

在进行SD卡驱动介绍之前,我的思路是先讲一下我们要驱动的对象-SD卡,他的一些基本信息,从这些信息里我们能了解、抽象出来通用信息,这些信息也是我们做驱动的时候,需要了解的内容,力求在开始正式驱动工作前,通过这篇文章就能对SD卡的信息了解的非常详细。

1. 总结

对于SD卡驱动,需要了解主机支持总线速度模式分类中的 哪几类:这牵涉到配置主控端,输出工作电压、时钟频率等等这些信息:
在这里插入图片描述

2. 为什么现在有这么多的SD卡标准?

首先大家都知道,SD卡说白了就是外部存储器,本质就是用来存数据的,他的功能十分单一,既然这么单一,那为啥还有出现那么多五花八门的版本、标准、专业术语啊这些的呢。

原因很简单,就是为了满足我们日益增加的对数据存储的需求。

以我们的手机来举例子,以前我们可能就是为了存储个通讯录,你人际关系再复杂,几十上百个KB也就差不多了,后面有了听音乐的需求,可能几百MB或者几个GB也就够了,到现在既要下视频、又要下音乐、文件等等,数据有了爆发式的增量需求,那我们对容量的需求也就很大了。

SD卡作为存储设备,肯定需要对它进行接口设计、协议规范,那在一开始制定的时候,受到时下的思维局限,可能没法看的那么远(十年前,谁能想到U盘存储都能上TB了呢),导致随着对容量需求不断增大,你原来设计的已经没法满足了,这时候就需要修改协议:比如原有的物理接口已经到了速度上线,需要重新设计接口,这就导致说SD卡的规范在不断调整,但是这种调整又不能随便乱改,这就出现了不同的标准,也就出现现在这种情况。

3. SD卡协会

为了能让SD卡标准化,方便统一,有个SD卡协会的组织,专门规定了各种涉及SD卡的协议,其中我们主要关注两类:SD Specifications Part 1 Physical Layer Simplified Specification(简单理解成:卡协议) 和SD Specifications Part A2 SD Host Controller Simplified Specification(简单理解成:主机协议)。

其中,卡协议规定了SD卡的物理规格和命令协议,而主机协议是用来标准化SD主机控制器,针对的是SD卡主机控制器厂商,这个协议不是强制的。

4. SD卡分类标准

SD协会,从三个方面对SD卡制定了三个分类标准:按存储容量分类、按最低写入速度分类、按物理总线接口分类。

4.1 容量分类:SDSC/SDHC/SDXC/SDUC

最早的SD卡标准是SDSC,单卡最大容量2GB,后来慢慢2G最大上限不够用了,2006年,SD卡协会制定了新的SDHC标准(大容量标准):容量在2G以上(不含2G)到32GB以内的SD卡都遵循SDHC标准。
原来SDSC使用的是FAT12和FAT16的文件系统,因为容量不超过2GB,FAT16也够用了,但是后面扩容了,就引入了FAT32作为SDHC的文件系统。
2009年,SD卡协会推出了SDXC标准:容量高于32GB(不含32G)到2TB,然后将文件系统改成了exFAT。
2018年宣布新的SD卡容量标准-SDUC:2TB(不含)~128TB.

所以SDHC、SDUC等这些标准都只代表容量分级的标准,但是在速度上没有一个明确的标准。

4.2 物理总线接口版本

CPU这些控制芯片想要从外部存储器里面读取数据,就需要经过一个I/O总线(Bus),那么对于和SD卡一起诞生的bus就是SD Bus。同样,在设计之初,SD Bus总线速度并不高,为了满足容量的扩充变化,SD协会也制定了新的物理总线接口:UHS和SD Express。一共三种总线,共计6种版本。

注意,物理总线接口标准(或者叫总线速度标准)只是规定了SD卡物理接口所能够达到的速度上限,但是我们基本上还用不到能跑到总线速度上线的SD卡

4.2.1 SD Bus(默认总线和高速总线)

最早的SD Bus速度为12.5MB/s,而后在SD标准1.1版中,SD协会为这条总线加入了高速模式,总线速度提高一倍达到25MB/s。

目前所有的SD卡均都支持SD Bus的这两种模式。

4.2.2 UHS(Ultra High Speed超高速)

UHS的出现,是因为SD Bus不够用了,于是SD协会在SD3.0规范中为SDHC和SDXC添加了UHS超高速总线。
目前有UHS-I、UHS-II、UHS-III三种版本。实现UHS标准传输速度需要设备支持,高版本向下兼容低版本,不支持该标准可以兼容降速为普通存储卡使用。

  1. UHS-I
    UHS-I总线规范定义了两种速度,分别是UHS-50和UHS-104,前者具有50MB/s的数据传输速率,后者则为104MB/s,在SD卡上面的标记如下:
    在这里插入图片描述

  2. UHS-II
    继续提速,原有的物理接口排针不够用了,因为总线的频率不能无限制的提高,因此SD卡协会在原有的金手指下面加入了第二排金手指,用于拓宽数据传输的通道(物理接口排针数量变了)。
    在拓宽之后,UHS-II的最高速度可以达到312MB/s。另外,由于引入了新的一排金手指,也就是一个新的数据传输通道,使得支持UHS-II总线的SD卡可以在全双工或者半双工之间切换。打个比方,原本的SD卡只有一条车道,而UHS-II总线为SD卡新建了一条车道,这两条车道可以同向行驶(半双工),也可以逆向行驶(全双工),在两条车道同向的状态下,同样时间从A地(主机)到B地(SD卡)的总车流量就自然增加了一倍。
    在这里插入图片描述
    在这里插入图片描述

  3. UHS-III
    UHS-III与UHS-II一样,使用两排金手指进行数据交换,不过它取消了半双工模式,只保留了全双工的工作模式,但是最高传输速率仍旧比UHS-II高了一倍,有624MB/s。

4.2.3 SD Express

在2018年6月份,SD卡协会为SD卡引入了PCIe总线,虽然只有单通道,但是速率也轻松超越UHS-III规格,全双工的工作状态下可以达到985MB/s,另外,由于采用了PCIe总线进行数据传输,使得SD卡可以支持NVMe协议。
在这里插入图片描述
而支持SD Express规范的SD卡只保留了对UHS-I和SD总线的兼容性,不再兼容UHS-II和UHS-III。

4.2.4 总线速度模式分类

针对上面三类型接口,按总线速度模式来分类,一共有以下几种:

  1. Default Speed mode: 3.3V供电模式,频率上限25MHz,速度上限 12.5MB/sec
  2. High Speed mode: 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 RCLK Frequency Range 26MHz - 52MHz, up to 1.56Gbps per lane.

4.3 速度认证标准(最低写入速度)

上面的分类,容量分类只是从容量角度,总线速度标准,也只是物理总线理论能达到的上线,这些都和SD卡我们实际有用读写速度无关,因此SD卡协会为SD卡本身的速度制定了一些列的认证标准,这些标准都是基于不同的应用角度,各自之间都是互相平行的关系。

4.3.1 class标准(圆圈中带数字)

它指出了SD卡的最低写入速度,一共制定了4档,分别为Class 2、Class 4、Class 6和Class 10,代表SD卡的最低持续写入速度为2MB/s、4MB/s、6MB/s和10MB/s。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

在几年前SD卡性能普遍还很羸弱的时候,Class标识可以让用户非常简便的认出SD卡的持续写入性能:Class 10的卡,它的持续写入速度就一直是10MB/s。不过随着SD卡性能的提高,现在的SD卡最低写入速度随随便便就上个几十MB/s的,几乎市场上所有SD卡都带着Class 10标识,它早已不能描述SD卡的最低写入性能了,但是它的存在指出这张SD卡是兼容SD总线的高速模式的。

4.3.2 UHS速度分级(U标)

UHS速度标识是与UHS-I总线一起加入到SD卡的标签纸上的,它就简单很多,只有两档,U1代表这张卡的最小写入速度为10MB/s,与Class 10基本上就是一个意思,而U3则代表这张卡的最低写入速度为30MB/s,是U1的三倍。
在这里插入图片描述在这里插入图片描述

而UHS速度标识一般是和上文提到的UHS-I总线标识一起出现的,下面这张就是比较常见的、支持UHS-I总线规范,最低写入速度大于30MB/s的SD卡。

4.3.3 视频速度等级(V标)

针对视频应用角度指定的标准,不是重点,自行搜索即可。

4.3.4 应用性能分级(A标)

设备对SD卡随机读写性能分级,不是重点,自行搜索接口。

5. SD卡上常见标识解读

在这里插入图片描述
UHS模式:总线接口标识,标识支持的UHS-I接口(UHS是全新的总线模式,目前有UHS-I 、UHS-II、UHS-III三种版本,实现UHS标准的传输速度,需要设备硬件上支持,不支持该标准,会降速兼容为普通存储卡);
Class等级:speed class标示法,是一种比较旧的速度级别,表示在不支持UHS的设备上所达到的速度级别(在以往的设备、或者是不支持UHS接口的设备中使用时所达到的速度级别,C10和U1的速度基本相同);
超高速等级:UHS Speed Class标示法,标识在UHS接口上,数据传输速率级别为3
视频速度级别:Video Speed Class标示法,4K视频拍摄需求增大后,SD卡协会针对视频拍摄应用制定的视频速度等级,比如拍摄4k 视频的存储卡必须要达到V30以上。

参考资料:
超能课堂(207) SD卡标准错综复杂,到底该认哪一个?

猜你喜欢

转载自blog.csdn.net/CSDNmianfeixiazai001/article/details/123880700
今日推荐