,时下已经成为最为通用的数据存储卡。在诸如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 方式进行介绍。 (2) SPI 方式驱动 SD 卡的方法 SD 卡的SPI 通信接口使其可以通过 SPI 通道进行数据读写。从应用的角度来看,采用SPI 接口的好处在于,很多单片机内部自带 SPI控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了 SD 卡的性能优势,要解决这一问题,就要用SD 方式,因为它提供更大的总线数据带宽。SPI 接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍 SD 卡的驱动方法,只实现简单的扇区读写。 1) 命令与数据传输 1. 命...