关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 大容量辅助存储系统的设计

大容量辅助存储系统的设计

作者:时间:2011-05-17来源:网络收藏

 摘要:串行SPI通信协议是一种标准的通信协议。本文首先简要介绍了SPI总线模式,然后阐述了单片机在SPI协议下与SD卡硬件接口电路,以及软件模拟的SPI总线数据传输,最后给出了具体实现SD卡的初始化、FAT32文件系统的管理和写操作的软件流程。

本文引用地址:http://www.eepw.com.cn/article/202451.htm

  0 引言

  SD卡英文全称为Secure DIGITAL Memory Card,其以FLASH Memory为存储体,具备体积 小、容量大、功耗低、可擦写以及非易失性等特点,在需要长时间地采集、记录海量数据时, 以SD卡作为存储媒质是一种很好的选择。

  1 系统硬件设计

  1.1 SPI总线

  SPI是一种串行总线接口,主要通过三根线进行数据传输:同步时钟线SCK,主/从机输 出线MISO、主/从机输入线MOSI,还有一条低电平有效的从机片选线CS。SPI系统的片选信号 以及同步时钟脉冲由主机提供。SPI模式通过四条线就可以完成所有的数据交换,传输协议 简单,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。 SPI消息由指令、回应和数据块组成,所有的操作均由主设备控制。

  SPI接口有0、1、2 和 3共四种操作模式。SPI操作模式决定了设备接收和发送数据时的时钟相位和极性,即决定了 时钟信号的上升和下降沿与数据流动方向之间的关系,如图1所示。本设计采用模式3。

  1.2 硬件电路设计

  MCU采用的是ATMEL公司生产的低电压、高性能CMOS8位单片机AT89S51,内含4K字节的可 反复擦写的ROM存储器和128字节的RAM存储器。由于SD卡的数据写入是以块为单位,每块为 512字节,所以在单片机最小系统上增加一片RAM。本系统中RAM选用存储器芯片AT24C64,容 量为64K位。

  对于不带SPI串行总线接口的单片机来说,可以使用软件来模拟SPI的操作,包括串行时 钟、数据输入和数据输出。对于不同的串行接口外围芯片,它们的时钟时序是不同的。对于 在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应将其串行时 钟输出口P1.1的初始状态设置为1,而在允许接口后再置P1.1为0。这样,MCU在输出1位SCK 时钟的同时,将使接口芯片串行左移,从而输出1位数据至单片机的P1.3口(模拟MCU的MISO 线),此后再置P1.1为1,使单片机从P1.0(模拟MCU的MOSI线)输出1位数据(先为高位)至 串行接口芯片。至此,模拟1位数据输入输出便宣告完成。此后再置P1.1为0,模拟下1位数 据的输入输出……,依此循环8次,即可完成1次通过SPI总线传输8位数据的操作。对于在SCK 的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为0,即在接 口芯片允许时,先置P1.1为1,以便外围接口芯片输出1位数据(MCU接收1位数据),之后再 置时钟为0,使外围接口芯片接收1位数据(MCU发送1位数据),从而完成1位数据的传送。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭