sd卡协议分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sd
Mmc
目录
第一章 SD卡系统概念 3
§1.1 SD卡概述 3
§1.2 SD卡的系统特征 3
§1.3 SD卡的系统概念 4
§1.4 SD卡的总线传输 6
§1.5 SD卡的引脚 10
§1.6 SD卡主要寄存器介绍 12
§1.7 SD卡子系统结构 14
第二章 SD卡初始化及状态转换 16
§2.1SD卡状态及初始化过程 16
§2.2SD卡数据传输过程 18
1.SD卡基础
1.SD卡概述
SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制,同时三个公司联合成立了SD协会,并制定SD卡相关的协议标准。SD卡协议主要包括物理层协议、SD卡控制器设计手册、SDIO卡手册三部分。
其中SDIO指的是安全数字输入输出卡(Secure Digital Input and Output Card),是在SD标准上定义了一种外设接口,通过SD的I/O接脚来连接外围设备,并且通过SD上的 I/O数据接位与这些外围设备进行数据传输。相关的一些设备为:GPS、
相机、Wi-Fi、调频广播、条形码读卡器、蓝牙等。SDIO本质上是一种接口,通过该接口可以连接一些其他功能的设备而非仅仅是存储设备。
1.2 SD卡的系统特征(SD物理层协议v
2.0)
∙针对移动和固定应用;
∙存储容量:
标准容量SD存储卡:最高2G
高容量SD存储卡:2G以上(在该规范版本中,最高32G)
∙电压范围:
高电压SD存储卡—操作电压范围:2.7~3.6V
双电压SD存储卡—操作电压范围:低电压范围(T.B.D)和
2.7~
3.6V
∙分为只读卡和读/写卡;
∙默认模式:时钟频率可在0~25MHz间变化,高达12.5MB/s 的接口速度(使用4条并行数据线) ;
∙高速模式:时钟频率可在0~50MHz间变化,高达25MB/s 的接口速度(使用4条并行数据线) ;
∙支持高速,电子商务和将来功能的转换功能命令;
∙存储域错误纠正;
∙读操作期间移去卡,内容不损坏;
∙内容保护机制—符合SDMI标准的最高安全性;
∙卡的密码保护(CMD42 - LOCK_UNLOCK);
∙机械开关的写保护特性;
∙内嵌的写保护特性(永久或暂时) ;
∙卡检测(插入/移去) ;
∙应用特定命令;
∙舒适的擦除机制
∙通信通道协议属性;
∙SD存储卡外形尺寸:标准尺寸SD存储卡
(32*24*2.1mm) 。
3.SD卡的系统概念
读写属性:按照读写属性定义,有两种类型的SD存储卡:
∙读/写(R/W)卡(Flash, OTP(一次可编程), MTP(多次可编程))。
这些卡通常买来时是空白的,用于大量数据的存储,以及记录用户的音频、视频和图像。
∙只读存储器(ROM)。这些卡生产有固定的数据内容。通常作为软件、音频、视频等的发行媒介。
操作电压范围:按照操作电压定义,有两种类型的SD存储卡:
∙高电压SD存储卡:工作在2.7~3.6V的电压范围内
∙双电压SD存储卡:能够工作在低电压范围(T.B.D)和
2.7~
3.6V的电压范围内
卡容量:按照容量定义,有两种类型的SD存储卡:
∙标准容量SD(SD)存储卡:支持容量高达2GB(231 B)。所有物理层规范都定义了标准容量SD存储卡。
∙高容量SD(SDHC)存储卡:支持容量在2GB以上,该规范版本中将容量限制在32GB。高容量SD存储卡是在V2.00中新定义的。
高容量SD存储卡有两种类型:
∙Type A(单态卡)只有高容量存储区。
∙Type B(双态卡)有高容量存储区和标准容量存储区。在Type B卡中,任何时候,只能有一种存储区能被使用。有一机械开关选择想要的存储区。Type B的细节将在以后的规范中定义。主机可以不必区分高容量SD卡的类型。
只有符合SD存储卡物理层规范V2.00或更高并且符合SD文件系统规范V2.00的主机才能访问高容量SD存储卡。对于SD控制器而言,做到了向低容量的兼容。如图所示:
控制器对SD卡支持情况示意图
1.4 SD卡的总线传输:
SD总线上的通信以一根CMD线和四根Data线为基础。通信的内容包括:命令(主机->SD卡)、反馈(SD卡->主机)、Data。
SD总线通信示意图
命令:命令式操作开始的标志,命令可以发送给总线上所有的SD 卡(广播模式)或者某个特定的SD卡(寻址模式)。命令在CMD 线上传输。
反馈:反馈是SD卡在接收到主机命令后,做出的回应信息,也在CMD线传输。
数据:四根数据总线是双向总线。数据传输数据线上进行,是以块为单位,一次可以传输单个或者多个数据块。传输过程中实际使用的数据线是可配置的,默认只用DAT0。
无响应和无数据操作
卡寻址是使用一个会话地址来实现的,这个地址是在初始化阶段分配给卡的。命令、响应和数据块结构见SD存储卡功能描述。SD总线上的基本操作是命令/响应操作(见上图)。这种总线操作类型直接在命令或响应结构中发送它们的信息。
数据块读操作
数据传输以块为单位,分为单块传输和多块传输。数据块后跟着CRC校验位。多块传输可以更好地实现更快的写操作。当在命令线上发送停止传输命令时候一次多块传输结束。数据传输可使用单数据线或多数据线,由SD主机控制器来进行配置。
数据块写操作
数据块写操作使用一个简单的写操作忙信号。在写操作期间,无论传输数据的数据线条数,该信号只持续在数据线DAT0上。
多数据块写操作可以更好地实现更快的写操作。
其中命令格式如下图所示:
命令标记和格式
命令响应的格式: