Secure Digital Memory Card.pdf

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Secure Digital Memory Card

SD卡在单片机上的应用 SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如 MP3、数码相机等设备上也都采用 SD卡作为其存储设备。SD卡之所以得到如此广泛的使用, 是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点, 那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对 SD卡的硬 件与读写时序进行研究。对于 SD卡的硬件结构,在官方的文档上有很详细的介绍,如 SD卡内 的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经 过了实际的测试后,使用 51单片机成功实现了对 SD卡的扇区读写,并对其读写速度进行了评 估。下面先来讲解 SD卡的读写时序。 (1) SD卡的引脚定义 注: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. 命令传输 SD卡自身有完备的命令系统,以实现各项操作。命令格式如下: 命令的传输过程采用发送应答机制,过程如下: 每一个命令都有自己命令应答格式。在 SPI模式中定义了三种应答格式,如下表所示: 写命令的例程: /************************************** 向 SD卡中写入命令,并返回回应的第二个字节 *****************************************/ 2) 初始化 SD卡的初始化是非常重要的,只有进行了正确的初始化,才能进行后面的各项操作。在初始化 过程中,SPI的时钟不能太快,否则会造初始化失败。在初始化成功后,应尽量提高 SPI的速率。 在刚开始要先发送至少 74个时钟信号,这是必须的。在很多读者的实验中,很多是因为疏忽了 这一点,而使初始化不成功。随后就是写入两个命令 CMD0与 CMD1,使 SD卡进入 SPI模式 初始化时序图: 初始化例程: C程序 /*********************************************** 初始化 SD卡到 SPI模式 ************************************************/ 3) 读取 CID CID寄存器存储了 SD卡的标识码。每一个卡都有唯一的标识码。 CID寄存器长度为 128位。它的寄存器结构如下: 它的读取时序如下: 与此时序相对应的程序如下: C程序 //------------------------------------------------------------ 读取 SD卡的 CID寄存器 16字节成功返回 0 //------------------------------------------------------------ 4)读取 CSD CSD(Card-Specific Data)寄存器提供了读写 SD卡的一些信息。其中的一些单元可以由用户 重新编程。具体的 CSD结构如下: 读取 CSD 的时序: 相应的程序例程如下: C程序 //------------------------------------------------------------------- 读 SD卡的 CSD寄存器 共 16字节 返回 0说明读取成功 //----------

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档