新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于SST25VF020的数据存储系统设计

基于SST25VF020的数据存储系统设计

作者:时间:2013-05-21来源:网络收藏
前言

  近年来,闪速存储器已应用在数以千计的产品中,特别是移动通信、MP3音乐播放器、手持PC管理器、数码相机、网络路由器、舱内录音机等工业产品。闪速存储器由于具有非易失性和电可编程擦除性,从而具有半导体存储器的读取速度快、存储容量大等优点,同时又克服了DRAM及SRAM断电丢失所存数据的缺陷。与EPROM相比较,闪速存储器的优势在于系统电可擦除和可重复编程,且不需要特殊的高电压,此外,它还有成本低,密度大的特点。

  闪速存储器由于各自技术架构的不同,又可分为NOR技术、NAND技术、AND技术和由EEPROM派生的闪速存储器。以EEPROM做闪速存储阵列的Flash Memory,如SST的小扇区结构闪速存储器具有EEPROM与NOR技术Flash Memory二者折中的性能特点:(1)读写的灵活性逊于EEPROM,但与NOR技术Flash Memory的块结构相比,其页尺寸小,具有快速随机读取和快编程、快擦除的特点。(2)与EEPROM比较,具有明显的成本优势。

  SST25VF系列产品,是业界第一个完整的串行闪存产品系列,其记忆容量包含512Kbit至16Mbit,且采用产业标准的8接脚SOIC封装及超薄型WSON封装技术。此外,SST最新串行闪存提供最新自动地址增值(AAI)资料写入模式,与单一字节资料写入模式相比,该资料写入模式能够将整个闪存的资料写入时间减少50%。SST25VF系列是以高效能超快闪技术为基础,加上四线及串行外围界面(SPI),相对平行EEPROM等非挥发性内存解决方案而言,SST的串行式闪存产品使用较少的接脚,将资料往返于系统CPU,因此可减少电路板空间、耗能及成本。

  芯片介绍

  芯片引脚介绍

  是SST25VF系列产品中的一员,其芯片具有以下特点:总容量为2M;单电源读和写操作,工作电压为2.7-3.3V;低功耗,工作电流为7mA,等待电流为3μA;时钟频率高达33MHz,快速编程、快速擦除、快速读取;小型一致闪区尺寸4KB;数据保存100年;CMOS I/O兼容等。

  状态寄存器

  状态寄存器用来对芯片的工作模式进行设定,在工作过程中,可以提供芯片的工作状态,比如读、写、写保护等。

  工作过程

  首先设置状态寄存器,对FLASH的工作模式、写使能以及写保护区域进行设定。在读写的过程中,还可以通过读寄存器内容来判断FLASH当前的工作状态。设定结束后,可以开始读写操作。

  写操作

  选用自动地址增值写入(AAI)模式,这种模式在写入大量数据时可以缩短程序运行时间。在写操作中,首先写入写使能命令字(0x06),AAI模式以AF为写命令,顺序写入存储起始地址和存储数据,每传送完一字节的数据时,时钟位置高,为写下一字节数据做准备。当数据全部写入时,写终止写使能命令字(0x04),写操作结束。在整个写过程中,状态寄存器中的BUSY位始终为1,写操作结束后,BUSY自动复位。

  读操作

  在读操作中,首先写入读命令字(0x03),然后写入读取数据的起始地址,数据会顺序读出,直至读完。如果地址累加至7FFFF,下次数据读取会从00000地址开始。在整个读过程中,状态寄存器中的BUSY位始终为1,写操作结束后,BUSY自动复位。

  擦除操作

  提供3种芯片擦除方式:扇区擦除、块擦除和全擦除。命令字分别为0x20、0x52、0x60,可分别实现不同范围的擦除。在整个擦除过程中,状态寄存器中的BUSY位始终为1,擦除操作结束后,BUSY自动复位。

  硬件电路

  系统控制器选用MSP430F149单片机,对温度传感器信号进行模数转换后采样,将采集到的数据通过SPI串行通信存储到FLASH中。当系统通过异步串口和PC机相连时,通过SPI串行通信将储存到FLASH中的数据读到PC机中,从而对采集的数据进行分析、处理。将采集到的数据保存后,即可擦除FLASH,为下一次采集做准备。存储电路连接如图4所示。通过上拉电阻将CE#、SO端的初始状态置为高电平,写保护端始终为高电平。相应的输入输出端、时钟信号端和使能端分别和单片机接口相连。

  关键源程序

  case 0x03: /* 读数据 */

  TXBUF1 =0x03; // 发读命令字

  while (IFG20x20==0x00); // 发送完否?

  for(i=0;i《=2;i++) /* 发送地址 */

  {TXBUF1=addr[i];

  while (IFG20x20==0x00);}//发送完否?

  for(i=0;i《=19;i++) /* 读取数据 */

  { TXBUF1=0X33 ; // 发送伪数据用于产生接收数据CLK

  while (IFG20x20==0x00); // 发送完否?

  while( IFG20x10==0x00) ;

  backdata1[i]=RXBUF1 ;} //存放读取的数据

  delay(2) ;

  P5OUT |=0X01 ; // 拉高 STE1

  delay(200) ;

  break;

  case 0xaf: /* AAI 模式 写数据 */

  P5OUT =~0X01 ; // 拉 底 STE1

  delay(2) ;

  TXBUF1 =0X06 ; /* write enable */

  while (IFG20x20==0x00); // 发送完否?

  delay(2) ;

  P5OUT |=0x01 ; // 拉高 STE1

  delay(12);

  P5OUT =~0x01 ; // 拉底 STE1

  delay(2) ;

  TXBUF1 =0xaf; // 发写命令字

  while (IFG20x20==0x00); // 发送完否?

  for(i=0;i《=2;i++) /* 发送地址 */

  { TXBUF1=addr[i];

  while (IFG20x20==0x00); }//发送完否?

  for(i=0;i《=19;i++)

  { TXBUF1=data1[i] ; // 连续写20字节的数据

  while (IFG20x20==0x00) ; // 发送完否?

  if(i==19) break ;

  delay(2) ;

  P5OUT |=0X01 ; // 拉高 STE1

  delay(12) ;

  P5OUT =~0X01 ; // 拉底 STE1

  delay(2) ;

  TXBUF1 =0xaf ;

  while (IFG20x20==0x00); } // 发送完否?

  delay(2) ;

  P5OUT |=0X01 ; // 拉高 STE1

  delay(12);

  P5OUT =~0X01 ; // 拉底 STE1

  delay(2) ;

  TXBUF1 =0X04 ; // /* 结束AAI模式*/

  while (IFG20x20==0x00); // 发送完否?

  delay(2) ;

  P5OUT |=0X01 ; // 拉高 STE1

  break;

  总结

  S ST串行式闪存因具备低耗能与小型接脚的特色,可作为硬盘、绘图卡、电子玩具、智能卡、MP3播放器、无线电话、蓝牙模块及GPS模块等装置比较理想的存储解决方案。由于SST串行式闪存的容量从512Kbit至16Mbit不等,因此适用于从低阶智能卡至高容量的声音档案存储,如电话录音机等各类资料存储 应用装置。



评论


相关推荐

技术专区

关闭