sd卡存储采集数据电路设计毕业设计(论文)说明书(编辑修改稿)内容摘要:

执行。 三是内部寄存器组 OCR、 CID、 RCA 等。 四是存储数据的存储单元。 接口电路通过控制电路与内部寄存器组成存储单元交换数据,其主要操作有写命令、读数据、写数据、读状态等。 图 SD卡的外形与接口 图 SD卡的内部结构 桂林航天工业学院毕业设计(论文) 第 5 页 共 40 页 5 SD 卡的引脚定义 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 模式工作介绍 ( 1) SD 卡 SPI 模式下与单片机的连接图 如图 图 SD卡 SPI模式下与单片机连接图 桂林航天工业学院毕业设计(论文) 第 6 页 共 40 页 6 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 卡的驱动方法,只实现简单的扇区读写。 SD 卡总线介绍 SD存储卡定义了两种可选择的总线协议,分别是 SD和 SPI。 与 SD 卡通信的主机一方可以透明地 选择与 SD 的通信模式。 SD 卡总线 SD总线包括以下的信号: CLK:主机与卡之间的同步时钟; CMD:双向的命令/反馈信号; DATo~ DAT3: 4 位双向的数据传输线; VDD, Vss1, Vss2:电源和地信号。 通过同步星型拓扑, SD 总线可以接一个主 SD卡,或者多个从 SD卡。 时钟、电源和地信号是所有卡公用的。 主机和每张 SD 卡的 CMD、 DAT0~ DAT3 信号连线必须点对点的进行连接。 SD总线连接图如图 所示。 桂林航天工业学院毕业设计(论文) 第 7 页 共 40 页 7 图 SD 总线连接图 SPI 总线 兼容 SD 卡的 SPI通信模式是一种通过 SPI 信道访问 SD 卡的方式。 SPI 标准仅仅定义了物理连接方式,并未包括完整的数据传输协议。 SD 卡的 SPI 总线实现方式使用了和SD总线相同的命令集。 从应用的角度来看,使用 SPI 总线模式的好处是它对主机的性能要求降至最低,另一方面,它也为产品设计成最小化作出了努力。 它的不利之处是降低了系统的性能,也没有 SD总线那样更多的连接选项。 一般而言,兼容 SD 卡的 SPI 总线包含以下信号。 . CS:主机到卡芯片之间的片选信号; CLK:主机与卡之间的同步时钟; Dataln:主机到卡之 间的数据输入信号; DataOut:主机到卡之间的数据输出信号。 图 是 SPI 总线连接图。 图 SPI 总线连接 桂林航天工业学院毕业设计(论文) 第 8 页 共 40 页 8 总线协议 (1)SD 总线协议 SD总线上的通信是以命令帧、反馈帧和数据帧进行的,这几种帧格式都包含起始位和停止位。 命令帧:命令帧用来传输一个操作命令的令牌。 反馈帧:反馈帧是从地址卡或者所有的连接卡发送给主机的作为对以前接收到的命令帧做出应答的令牌。 数据帧:数据帧用来在卡和主机之间进行真正有用的数据传输。 数据是通过数据链路进 行传输的。 SD 总线协议的数据传输是以数据块的方式进行的。 数据块之后通常跟着 CRC 校验码。 在协议中定义了数据传输的方式可以是单块和多块传输。 多块传输在进行写卡操作时的速度比单块传输快得多。 多块传输会在 CMD线路上出现一个停止命令帧时中断传输。 写操作和读操作在时序上的不同在于数据线路 DAT0 上多了一个写操作忙的信号。 (2)SPI 总线 虽然 SD 通道是面向有起止位的控制帧和数据流格式的传输,但是 SPI 通道是面向字节的传输。 SPI 的命令和数据块都是按 8 个比特为单位进行分组的,和 SD协议相似,SPI 的信息也分为控制帧、反馈帧和数 据帧,所有主机和卡之间的通信都被主机进行控制,主机通过拉低 CS 信号以开始一个总线事务。 SPI 的反馈方式和 SD 协议相比有以下3个方面的不同。 被选中的卡必须时刻对命令帧做出响应; 使用两种新的响应结构 (8 位或 16 位 ); 当卡获取数据出问题时,它将发出一个出错反馈帧通知主机,而不是使用超时检测的方式。 除了需要对命令帧做出反馈之外,在进行写卡操作期间,还需要对每一个发送到卡的数据块发一个特别的数据反馈令牌。 一个合法的数据块的结尾应当包括 16 位的 CRC 校验部分, CRC 校验值是按照标准的CCITT的 x 的 16 次方 +X 的 12次方 +X的 5 次方 +1产生的。 一旦数据读取出现错误,卡就不再传输数据,取而代之的是发送一个数据出错令牌给主机。 在 SPI模式中也支持单块和多块的数据写命令。 卡从主机端接收到一个数据块之后,它就会发一个数据响应令牌给主机,如果接收的数据经校验无错,就把数据写入卡的存储介质中。 如果卡正在忙于往存储介质中写数据时,它会持续发一个“工作忙”的令牌给主机。 桂林航天工业学院毕业设计(论文) 第 9 页 共 40 页 9 SD 卡的命令 SD 卡的命令格式 SD卡的命令格式固定为 6个字节 48 个位,其格式如图 所示。 图 SD 卡命令格式 开始位固定为 0,第二位固定为 1,表示主机给 SD 卡的命令,然后是 6位命令索引号,索引号的大小与索引号数字相同,比如 CMD0的索引号为 000000,索引号 41为 101001。 紧接着命令索引号是命令参数,有些命令有参数,有些命令没有参数,比如 CMD0和 CMD1命令参数为 32个 0,而命令 CMD2 CMD17 的命令参数是数据的读写地址。 最后是 7 位CRC 校验位和一位停止位 1。 根据命令索引号可推知 SD 卡的命令最多不超过 64 个(有些命令索引号为保留以后升级用,没有实际的命令相对应), SD 卡协议把卡 的命令分为若干类,有些命令只有对 SD 模式起作用,有些命令只对 SPI 模式起作用,大部分命令是通用的,两种模式下具有相同的命令。 SD 卡的命令类型 (1) 命令类型 控制 SD 卡有 4 种类型的命令 : 广播命令,无响应。 广播命令的特点是如果所有的 CMD 线与主机连接到一起。 如果把它们分开,那么每张卡将在轮到它的时候单独接收。 ② 有响应的广播命令。 从所有卡来的响应是同时的。 但是在 SD 卡里没有开漏模式,这个类型命令只可以使用在所有的 CMD 线是分开的情况下。 这个命令将被所有的卡单独接受并响应。 ③ 在 DAT 上没有数据传输的定址 (点对点 )命令。 ④ 在 DAT 上有数据传输的定址命令。 所有的命令和响应都在 CMD 线上进行。 命令传送总是从左边的位开始。 ( 2) SD卡命令集 : 桂林航天工业学院毕业设计(论文) 第 10 页 共 40 页 10 SD 卡命令共分为 12 类,分别为 class0 到 classⅡ,不同的 SD 卡,主控根据其功能,支持不同的命令集如下: C1ass0: (卡的识别、初始化等基本命令集 ): CMD0:复位 SD 卡。 CMD1:读 OCR 寄存器。 CMD9:读 CSD 寄存器。 CMD10:读 CTD 寄存器。 CMD12:停止读多块时的数据传输。 CMD13:读 Cardes Status 寄存器。 Class2(读卡命令集 ): CMD16:设置块的长度。 CMD17:读单块。 CMD18:读多块,直至主机发送 CMD12 为止。 Class4(写卡命令集 ): CMD24:写单块。 CMD25:写多块。 CMD27:写 CSD 寄存器。 Class5(擦除卡命令集 ): CMD32:设置擦除块的起始地址 . CMD33:设置擦除块的终止地址。 CMD38:擦除所选择的块。 Class6(写保护命令集 ): CMD28:设置写 保护块的地址。 CMD29:擦除写保护块的地址。 CMD30: Ask the card for the status of the mite protection bits。 Class7:卡的锁定,解锁功能命令集。 class8:申请特定命令集。 classl0和 class11:保留。 其中 class 1, class3,class9的 SPI模式不支持。 桂林航天工业学院毕业设计(论文) 第 11 页 共 40 页 11 3 硬件设计 系统整体硬件方案分为三个部分 :电源部分、单片机 STC12C5A60S2 主控芯片的DY_mini80E 开发板的选择部分(包括 信号采集、 A/D 转换等)、带 SD卡的 TFT 彩屏的选择部分(包括 SD 卡工作电路部分等 )。 设计在 Keil 编程环境下,建立工程,编写程序,然后将程序下载到单片机中,同时复位单片机,然后调节 DY_mini80E 开发板上的四路电位器采集不同的电压信号(四路电压范围均 0V5V),按动采集键后,信号开始采集,每秒钟各通道进行一次 A/D 转换,并对数据进行处理后由单片机控制分别存入带 SD卡的 TFT 彩屏的 SD 卡的相应文档中。 并用 TFT 彩屏显示经过 A/D 转换后的四路实时电压,用以观察采集数据的变化。 电源模块 SD卡的工作电平为 ,而控制芯片 STC12C5A60S2 的逻辑电平为 5V CMOS 电平标准。 因此,它们之间不能直接相连,否则可能会烧坏 SD 卡;出于对安全工作的考虑,有必要解决电平匹配问题。 要解决这一问题,最根本的就是解决逻辑器件接口的要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。 一般来说,通用的电平转换方案是采用类似 SN74ALVC4245 的专用电平转换芯片,这类 芯片不仅可以用作升压和降压,而且允许两边电源不同。 但是,这个方案代价相对昂贵,而且一般的专用电平转换芯片都是同时转换 8路、 16 路或者更多路数的电平,相对本系统仅仅需要转换 4路来说是一种资源的浪费。 带 SD 卡的 TFT 彩屏模块中包含 电压转换模块。 在 SD 卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,所以只做一个直流 5V 的稳压电源给系统供电即可,既经济又实用。 电源电路原理图如图。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。