Chinaunix首页 | 论坛 | 博客
  • 博客访问: 512824
  • 博文数量: 114
  • 博客积分: 271
  • 博客等级: 二等列兵
  • 技术积分: 733
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-24 13:40
文章分类
文章存档

2014年(5)

2013年(14)

2012年(95)

分类: LINUX

2014-08-09 10:26:26

原味地址:

首先,本博文遵照SD卡协议3.01版本,最旧协议版本为1.10,但是协议是向下兼容的。SDPhysical Layer Simplified Specification Version 3.01英文协议规范可以去官方下载地址为:

 

关于SD卡做一个简单介绍如下:

SD卡按照内存容量大小分3类:

SDSC(标准容量SD内存卡) :最大支持为2GByte

SDHC(大容量SD内存卡)   :SD卡容量介于2Gyte~32GByte

SDXC(扩展容量SD卡内存卡):SD卡容量介于32GByte~2TByte

 

再来介绍一下关于SD卡的传输速度分为5个等级:

Class 0  :未定义它的传输速度!!

Class 2  :定义它的传输速度大于等于2MB/sec

Class 4 :定义它的传输速度大于等于4MB/sec

Class 6  :定义它的传输速度大于等于6MB/sec

Class 10 :定义它的传输速度大于等于10MB/sec

协议中还规定了SDHCSDXC这两类卡的传输速度应当大于等于2MB/sec


SD卡的可以看看自己SD卡上边有这些标号:这些标号代表此SD卡的传输速度!!

 

 

 

 

 

 

 

 

再介绍下SD卡控制器是如何识别SD卡大小的,

SD卡内部有一些关于SD卡自身信息的寄存器,关于SD卡大小的就是CSD Register,此寄存器共128位,最高两位(即:127:126两位)的值分为2个版本,如下:

注释:0代表此卡容量为标准容量。

  1代表此卡容量为大容量或扩展容量。

  23保留

 

下面介绍CSD寄存器中与容量有关的位,它的大小与这三个参数有关C_SIZE, C_SIZE_MULT and READ_BL_LEN,下图是寄存器中的位置:




 

下图是关于READ_BL_LEN寄存器位的说明:



注释:4个二进制位来表示最大读取数据的长度,

          1001b表示读取数据最大长度为29 Byte = 512Byte

  1010b表示读取数据最大长度为210 Byte= 1024Byte

  1011b表示读取数据最大长度为211 Byte=2048Byte

 

  其余为保留!!

注意:SD内存卡的WRITE_BL_LEN一直等于READ_BL_LEN的大小!!

 

下图是关于C_SIZE_MULT 寄存器为的说明:


 


      注释:3个二进制位来表示计算设备总大小的一个乘数。

  这个就不用我多解释了吧!!

 

关于计算SD卡容量,放在SD卡协议规范学习(二)中。

阅读(4250) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~