SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。
(1) SD卡的引脚定义:
SD卡引脚功能详述:
引脚
编号
| SD模式
| SPI模式
| 名称
| 类型
| 描述
| 名称
| 类型
| 描述
| 1
| CD/DAT3
| IO或PP
| 卡检测/
数据线3
| #CS
| I
| 片选
| 2
| CMD
| PP
| 命令/
回应
| DI
| I
| 数据输入
| 3
| VSS1
| S
| 电源地
| VSS
| S
| 电源地
| 4
| VDD
| S
| 电源
| VDD
| S
| 电源
| 5
| CLK
| I
| 时钟
| SCLK
| I
| 时钟
| 6
| VSS2
| S
| 电源地
| VSS2
| S
| 电源地
| 7
| DAT0
| IO或PP
| 数据线0
| DO
| O或PP
| 数据输出
| 8
| DAT1
| IO或PP
| 数据线1
| RSV
|
|
| 9
| DAT2
| IO或PP
| 数据线2
| RSV
|
|
|
注:S:电源供给 I:输入 O:采用推拉驱动的输出
PP:采用推拉驱动的输入输出
SD卡SPI模式下与单片机的连接图:
SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。 |