热度 22
2013-1-20 13:59
3680 次阅读|
3 个评论
首先,本博文遵照 SD 卡协议 3.01 版本,最旧协议版本为 1.10 ,但是协议是向下兼容的。 SD 卡 Physical Layer Simplified Specification Version 3.01 英文协议规范可以去官方下载地址为: https://www.sdcard.org/downloads/pls/simplified_specs/ 。 关于 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 协议中还规定了 SDHC 和 SDXC 这两类卡的传输速度应当大于等于 2MB/sec 。 有 SD 卡的可以看看自己 SD 卡上边有这些标号:这些标号代表此 SD 卡的传输速度!! 再介绍下 SD 卡控制器是如何识别 SD 卡大小的, SD 卡内部有一些关于 SD 卡自身信息的寄存器,关于 SD 卡大小的就是 CSD Register ,此寄存器共 128 位,最高两位(即: 127:126 两位)的值分为 2 个版本,如下: 注释: 0 代表此卡容量为标准容量。 1 代表此卡容量为大容量或扩展容量。 2 、 3 保留 下面介绍 CSD 寄存器中与容量有关的位,它的大小与这三个参数有关 C_SIZE, C_SIZE_MULT and READ_BL_LEN ,下图是寄存器中的位置: 下图是关于 READ_BL_LEN 寄存器位的说明: 注释: 4 个二进制位来表示最大读取数据的长度, 1001b 表示读取数据最大长度为 2 9 Byte = 512Byte , 1010b 表示读取数据最大长度为 2 10 Byte= 1024Byte , 1011b 表示读取数据最大长度为 2 11 Byte=2048Byte , 其余为保留!! 注意: SD 内存卡的 WRITE_BL_LEN 一直等于 READ_BL_LEN 的大小!! 下图是关于 C_SIZE_MULT 寄存器为的说明: 注释: 3 个二进制位来表示计算设备总大小的一个乘数。 这个就不用我多解释了吧!! 关于计算SD卡容量,放在SD卡协议规范学习(二)中。 今天就写到这里,回头继续更新关于 SD 协议方面的知识,本文如有翻译不当或讲解错误的地方,欢迎大家指出,各种拍砖,本人不胜感激!! 如若转载请加上本博客地址。