论文部分内容阅读
[摘要]分析了基于STC单片机的SD卡的读写操作,给出了一种基于高速、低功耗、超强抗干扰的新一代STCl2C5A60S2系列IT单片机的SD卡读写方法。该方法利用串行外围接口总线与SD卡相连,从而实现了对SD卡的数据读写。
[关键词]单片机 SD卡读写设计
中图分类号:TP277 文献标识码:A 文章编号:1009-914X(2013)07-0027-01
引言
SD卡是一种微型、低功耗、可移动的Flash多功能存储卡,该卡向上兼容MMC卡,并增加了智能保护机制,以有效地防止盗版,同时具有更快的传输速率及更高的存储容量,可广泛用于便携式消费类电子产品中。本文首先介绍了STC12C5A60S2单片机在SPI协议下与SD卡的硬件接口电路,然后简要阐述了SPI总线模式以及软件模拟的SPI总线数据通讯,最后给出了实现SD卡的初始化和读写操作的软件流程。
1 STC单片机
2 硬件电路设计
本SD卡读写系统中的接口电路采用的STCl2C5A60S2单片机控制,并通过软件编程实现SPI模式的数据传输(包括串行时钟、数据的输入和输出)。在SPI模式下。单片机与SD卡的连接主要有四根线(包括时钟线,两根数据传输线和一根片选线),其接口硬件连接电路如图1所示。
3 通讯模式的选择
通常,SD卡有两种总线模式,即SD总线模式和SPI总线模式。其中SD总线模式采用四条数据线并行传输数据,数据传输速率高,但是传输协议复杂,只有少数单片机才提供有此接口,而用软件方法模拟SD总线又比较繁琐,会降低SD卡的數据传输速率;而SPI总线模式只有一条数据传输线。传输协议简单,易于实现,虽然数据传输速率较低,但绝大多数中高档单片机都提供有SPI总线,同时由于其易于用软件方法来模拟。因此,本设计采用SPI总线模式。
4 软件设计
4.1 SD卡的初始化
SD卡从上电到对SD卡进行正确的读写操作,往往都需要一个上电初始化的过程。SD卡上电后,主机必须先向SD卡发送74个时钟周期,以完成SD卡的上电过程。通常SD卡上电后会自动进入SD总线模式,并在SD总线模式下向SD卡发送复位命令(CMD0)。因此,主机在对SD卡进行任何操作前,都必须先要拉低SD卡的片选信号CS(card select),以使SD卡进入SPI总线模式,然后再由主机向SD卡发送命令。SD卡可以响应主机发来的各种应答信号,同时向主机发送一个特殊的数据响应标志。若主机读到的应答信号为01,即表明SD卡已进人SPI模式,此时,主机即可不断地向SD卡发送命令字(CMDl)并读取SD卡的应答信号,直到应答信号为00,表明SD卡已完成初始化过程,并准备好接受下一命令。此后,系统便可读取SD卡的各寄存器,以进行读写等操作。SD卡初始化流程如图3所示。
4.2 SD卡的读写
5 结束语
该SD卡与STCl2C5A60S2单片机的接口电路已在实际的试验板上验证成功,并已证明可以正确实现数据通讯,故可对SD卡上的文件进行各种操作。
[关键词]单片机 SD卡读写设计
中图分类号:TP277 文献标识码:A 文章编号:1009-914X(2013)07-0027-01
引言
SD卡是一种微型、低功耗、可移动的Flash多功能存储卡,该卡向上兼容MMC卡,并增加了智能保护机制,以有效地防止盗版,同时具有更快的传输速率及更高的存储容量,可广泛用于便携式消费类电子产品中。本文首先介绍了STC12C5A60S2单片机在SPI协议下与SD卡的硬件接口电路,然后简要阐述了SPI总线模式以及软件模拟的SPI总线数据通讯,最后给出了实现SD卡的初始化和读写操作的软件流程。
1 STC单片机
2 硬件电路设计
本SD卡读写系统中的接口电路采用的STCl2C5A60S2单片机控制,并通过软件编程实现SPI模式的数据传输(包括串行时钟、数据的输入和输出)。在SPI模式下。单片机与SD卡的连接主要有四根线(包括时钟线,两根数据传输线和一根片选线),其接口硬件连接电路如图1所示。
3 通讯模式的选择
通常,SD卡有两种总线模式,即SD总线模式和SPI总线模式。其中SD总线模式采用四条数据线并行传输数据,数据传输速率高,但是传输协议复杂,只有少数单片机才提供有此接口,而用软件方法模拟SD总线又比较繁琐,会降低SD卡的數据传输速率;而SPI总线模式只有一条数据传输线。传输协议简单,易于实现,虽然数据传输速率较低,但绝大多数中高档单片机都提供有SPI总线,同时由于其易于用软件方法来模拟。因此,本设计采用SPI总线模式。
4 软件设计
4.1 SD卡的初始化
SD卡从上电到对SD卡进行正确的读写操作,往往都需要一个上电初始化的过程。SD卡上电后,主机必须先向SD卡发送74个时钟周期,以完成SD卡的上电过程。通常SD卡上电后会自动进入SD总线模式,并在SD总线模式下向SD卡发送复位命令(CMD0)。因此,主机在对SD卡进行任何操作前,都必须先要拉低SD卡的片选信号CS(card select),以使SD卡进入SPI总线模式,然后再由主机向SD卡发送命令。SD卡可以响应主机发来的各种应答信号,同时向主机发送一个特殊的数据响应标志。若主机读到的应答信号为01,即表明SD卡已进人SPI模式,此时,主机即可不断地向SD卡发送命令字(CMDl)并读取SD卡的应答信号,直到应答信号为00,表明SD卡已完成初始化过程,并准备好接受下一命令。此后,系统便可读取SD卡的各寄存器,以进行读写等操作。SD卡初始化流程如图3所示。
4.2 SD卡的读写
5 结束语
该SD卡与STCl2C5A60S2单片机的接口电路已在实际的试验板上验证成功,并已证明可以正确实现数据通讯,故可对SD卡上的文件进行各种操作。