SD Card及协议学习笔记

您所在的位置:网站首页 sd卡标准 SD Card及协议学习笔记

SD Card及协议学习笔记

#SD Card及协议学习笔记| 来源: 网络整理| 查看: 265

在嵌入式系统中,通常见的最多的移动存储设备就是SD Card了,其协议相对简单,便于开发。学习笔记是从软件角度写的,硬件部分会稍微薄弱些。

SD Card (Secure Digital Memory Card) 是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式。笔记主要对SD卡的要点进行记录。

简单介绍

先从宏观上来看SD cards

## Structure of SD cards and pins

SD卡引脚图 [1]

SD模式:数据并行传输,2地,1电源,1时钟,1命令,4数据线(4出入)(SD模式的命令通过命令线传输)

SPI模式:数据串行传输,2地,1电源,1时钟,1片选,2数据线(1入1出)(SPI模式的命令通过数据线传输)

## System Features

本大章节讲解SD的一些基本特征,包括SD卡的物理规格、容量、速度等方面。

### Form-factor

目前市面上按物理规格来看,常见的SD卡有三种:

- 标准的SD卡,这种卡比较大,在有些相机或者PC电脑上会使用;

- 第二种是miniSD,这种卡我没怎么使用,不作详述;

- 最后一种是叫TF卡,也称mirco SD,这种卡比较小,是我们最常接触的,像我们的手机里面使用的就是这种卡。很多人基本上都管我们手机使用的那种卡叫SD卡,这样的叫法实际上不够准确,更准确应该是叫TF卡,但是不管怎样,都没人会去计较,能理解就行。

### Capacity of Memory

SD卡按容量(Capacity)分类,可以分为标准容量卡、高容量卡,扩展容量卡,详细如下:

- Standard Capacity SD Memory Card (SDSC): 这种卡容量小于等于2GB

- High Capacity SD Memory Card (SDHC): 这种卡容量大于2GB,小于等于32GB

- Extended Capacity SD Memory Card (SDXC):这种卡容量大于32GB, 小于等于2TB

如果你买了一张16G或者32G的SD卡,你会发现SD卡上面印有"HC"字样,代表该卡是SDHC卡,同理,64G的SD卡上面印着"XC",表示SDXC卡。

### Voltage range

SD卡按供电范围划分,分两种:

- High Voltage SD Memory Card: 操作的电压范围在2.7-3.6V

- UHS-II SD Memory Card: 操作的电压范围VDD1: 2.7-3.6V, VDD2: 1.70-1.95V

UHS-II类型的卡参考协议文档: SD Specifications Part 1 UHS-II Simplified Addendum

### Bus Speed Mode (using 4 parallel data lines)

SD卡按总线速度模式来分,有下面几种:

- Default Speed mode: 3.3V供电模式,频率上限25MHz,速度上限 12.5MB/sec

- High Speed mode: 3.3V供电模式,频率上限50MHz,速度上限 25MB/sec

- SDR12: UHS-I卡, 1.8V供电模式,频率上限25MHz,速度上限 12.5MB/sec

- SDR25: UHS-I卡, 1.8V供电模式,频率上限50MHz,速度上限 25MB/sec

- SDR50: UHS-I卡, 1.8V供电模式,频率上限100MHz,速度上限 50MB/sec

- SDR104: UHS-I卡, 1.8V供电模式,频率上限208MHz,速度上限 104MB/sec

- DDR50: UHS-I卡, 1.8V供电模式,频率上限50MHz,性能上限 50MB/sec

- UHS156: UHS-II RCLK Frequency Range 26MHz - 52MHz, up to 1.56Gbps per lane.

SDR(Single Date Rate), 一个周期只能采集一次数据,即一个bit,由于SD卡是4条数据线并行传输,所以一个周期能传输4bit,如果频率是50MHz(即1秒传输次数为50 000 000),那么1秒能传输的数据量为25MB(这里1MB为1 000 000 Byte)。所以这就是为什么各种SDR模式里面,频率上限是速度上限的两倍。而对于DDR(Double Data Rate),在时钟上升沿和下降沿都可以采集数据,也就是单一周期内可读取或写入2次,因此4条并行数据线在一个周期内能传输8bit。

### Speed Class

SD卡按照读写性能划分,有5种规格,每种规格后面的数字象征最小的读写速度:

- Class 0 - 这种卡没有性能要求

- Class 2 - 要求在 Default Speed mode 下,性能至少要达到(大于等于) 2MB/sec

- Class 4 - 要求在 Default Speed mode 下,性能至少要达到 4MB/sec

- Class 6 - 要求在 Default Speed mode 下,性能至少要达到 6MB/sec

- Class 10 - 要求在 High Speed mode 下,性能至少要达到 10MB/sec

厂商卖的SD卡上面基本上都会印着一个用圆圈包围起来的数字10,表示该卡是Class 10 类型的卡。

硬件电路

然后从硬件上来看,SD cards的硬件电路也十分简单,一般来讲Soc都会有SD Controller相关的引脚,只要将引脚于SD cards上的引脚一一对应即可

常见的连接方法(SD mode)

交互协议

### Bus Protocol

在SD Bus上,有三种transaction:

- Command: 一个命令代表着将开始一个操作。命令通过CMD线传输,方向从host到card。

- Response: 响应是card对前一次host发送的命令的执行情况的反馈。也是通过CMD线传输,方向从card到host。

- Data: 数据是通过4条data线传输的,方向可以从card到host,也可以从host到card。

不管Command,还是Response或者Data,都开始于一个start bit (bit值0),结束于一个end bit(bit值1)。

关于这块的内容不做过多解释了,详情自行阅读"Physical Layer Simplified Specification Version 6.00"文档 "3.6 Bus Protocl" 章节的内容。

不过有一点值得注意:

In the CMD line the Most Significant Bit (MSB) is transmitted first, the Least Significant Bit (LSB) is the last.There are two types of Data packet format for the SD card.(1) Usual data (8-bit width): The usual 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.(2) Wide width data (SD Memory Register): The wide width data is shifted from the MSB bit.

不过这些工作一般都是直接由Soc来完成。

初始化及命令交互

先了解SD Card的工作模式,参考"Physical Layer Simplified Specification Version 6.00"文档 "4. SD Memory Card Functional Description",主要分为identification mode和transfer mode。

这里摘录了SD Card的初始化流程,不包含UHS-II,详细每一步的意义在协议中介绍得非常清楚,在初始化结束后,就可以进行数据传输了。对于嵌入式软件开发,SD Card的init、读写擦等操作几乎就是组成SD Card Driver的所有了。

[1] Part1_Physical_Layer_Simplified_Specification_Ver6.00



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3