新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于SST25VF020的數(shù)據(jù)存儲(chǔ)系統(tǒng)設(shè)計(jì)

基于SST25VF020的數(shù)據(jù)存儲(chǔ)系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2013-05-21 來源:網(wǎng)絡(luò) 收藏
前言

  近年來,閃速存儲(chǔ)器已應(yīng)用在數(shù)以千計(jì)的產(chǎn)品中,特別是移動(dòng)通信、MP3音樂播放器、手持PC管理器、數(shù)碼相機(jī)、網(wǎng)絡(luò)路由器、艙內(nèi)錄音機(jī)等工業(yè)產(chǎn)品。閃速存儲(chǔ)器由于具有非易失性和電可編程擦除性,從而具有半導(dǎo)體存儲(chǔ)器的讀取速度快、存儲(chǔ)容量大等優(yōu)點(diǎn),同時(shí)又克服了DRAM及SRAM斷電丟失所存數(shù)據(jù)的缺陷。與EPROM相比較,閃速存儲(chǔ)器的優(yōu)勢(shì)在于系統(tǒng)電可擦除和可重復(fù)編程,且不需要特殊的高電壓,此外,它還有成本低,密度大的特點(diǎn)。

  閃速存儲(chǔ)器由于各自技術(shù)架構(gòu)的不同,又可分為NOR技術(shù)、NAND技術(shù)、AND技術(shù)和由EEPROM派生的閃速存儲(chǔ)器。以EEPROM做閃速存儲(chǔ)陣列的Flash Memory,如SST的小扇區(qū)結(jié)構(gòu)閃速存儲(chǔ)器具有EEPROM與NOR技術(shù)Flash Memory二者折中的性能特點(diǎn):(1)讀寫的靈活性遜于EEPROM,但與NOR技術(shù)Flash Memory的塊結(jié)構(gòu)相比,其頁尺寸小,具有快速隨機(jī)讀取和快編程、快擦除的特點(diǎn)。(2)與EEPROM比較,具有明顯的成本優(yōu)勢(shì)。

  SST25VF系列產(chǎn)品,是業(yè)界第一個(gè)完整的串行閃存產(chǎn)品系列,其記憶容量包含512Kbit至16Mbit,且采用產(chǎn)業(yè)標(biāo)準(zhǔn)的8接腳SOIC封裝及超薄型WSON封裝技術(shù)。此外,SST最新串行閃存提供最新自動(dòng)地址增值(AAI)資料寫入模式,與單一字節(jié)資料寫入模式相比,該資料寫入模式能夠?qū)⒄麄€(gè)閃存的資料寫入時(shí)間減少50%。SST25VF系列是以高效能超快閃技術(shù)為基礎(chǔ),加上四線及串行外圍界面(SPI),相對(duì)平行EEPROM等非揮發(fā)性內(nèi)存解決方案而言,SST的串行式閃存產(chǎn)品使用較少的接腳,將資料往返于系統(tǒng)CPU,因此可減少電路板空間、耗能及成本。

  芯片介紹

  芯片引腳介紹

  是SST25VF系列產(chǎn)品中的一員,其芯片具有以下特點(diǎn):總?cè)萘繛?M;單電源讀和寫操作,工作電壓為2.7-3.3V;低功耗,工作電流為7mA,等待電流為3μA;時(shí)鐘頻率高達(dá)33MHz,快速編程、快速擦除、快速讀?。恍⌒鸵恢麻W區(qū)尺寸4KB;數(shù)據(jù)保存100年;CMOS I/O兼容等。

  狀態(tài)寄存器

  狀態(tài)寄存器用來對(duì)芯片的工作模式進(jìn)行設(shè)定,在工作過程中,可以提供芯片的工作狀態(tài),比如讀、寫、寫保護(hù)等。

  工作過程

  首先設(shè)置狀態(tài)寄存器,對(duì)FLASH的工作模式、寫使能以及寫保護(hù)區(qū)域進(jìn)行設(shè)定。在讀寫的過程中,還可以通過讀寄存器內(nèi)容來判斷FLASH當(dāng)前的工作狀態(tài)。設(shè)定結(jié)束后,可以開始讀寫操作。

  寫操作

  選用自動(dòng)地址增值寫入(AAI)模式,這種模式在寫入大量數(shù)據(jù)時(shí)可以縮短程序運(yùn)行時(shí)間。在寫操作中,首先寫入寫使能命令字(0x06),AAI模式以AF為寫命令,順序?qū)懭氪鎯?chǔ)起始地址和存儲(chǔ)數(shù)據(jù),每傳送完一字節(jié)的數(shù)據(jù)時(shí),時(shí)鐘位置高,為寫下一字節(jié)數(shù)據(jù)做準(zhǔn)備。當(dāng)數(shù)據(jù)全部寫入時(shí),寫終止寫使能命令字(0x04),寫操作結(jié)束。在整個(gè)寫過程中,狀態(tài)寄存器中的BUSY位始終為1,寫操作結(jié)束后,BUSY自動(dòng)復(fù)位。

  讀操作

  在讀操作中,首先寫入讀命令字(0x03),然后寫入讀取數(shù)據(jù)的起始地址,數(shù)據(jù)會(huì)順序讀出,直至讀完。如果地址累加至7FFFF,下次數(shù)據(jù)讀取會(huì)從00000地址開始。在整個(gè)讀過程中,狀態(tài)寄存器中的BUSY位始終為1,寫操作結(jié)束后,BUSY自動(dòng)復(fù)位。

  擦除操作

  提供3種芯片擦除方式:扇區(qū)擦除、塊擦除和全擦除。命令字分別為0x20、0x52、0x60,可分別實(shí)現(xiàn)不同范圍的擦除。在整個(gè)擦除過程中,狀態(tài)寄存器中的BUSY位始終為1,擦除操作結(jié)束后,BUSY自動(dòng)復(fù)位。

  硬件電路

  系統(tǒng)控制器選用MSP430F149單片機(jī),對(duì)溫度傳感器信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換后采樣,將采集到的數(shù)據(jù)通過SPI串行通信存儲(chǔ)到FLASH中。當(dāng)系統(tǒng)通過異步串口和PC機(jī)相連時(shí),通過SPI串行通信將儲(chǔ)存到FLASH中的數(shù)據(jù)讀到PC機(jī)中,從而對(duì)采集的數(shù)據(jù)進(jìn)行分析、處理。將采集到的數(shù)據(jù)保存后,即可擦除FLASH,為下一次采集做準(zhǔn)備。存儲(chǔ)電路連接如圖4所示。通過上拉電阻將CE#、SO端的初始狀態(tài)置為高電平,寫保護(hù)端始終為高電平。相應(yīng)的輸入輸出端、時(shí)鐘信號(hào)端和使能端分別和單片機(jī)接口相連。

  關(guān)鍵源程序

  case 0x03: /* 讀數(shù)據(jù) */

  TXBUF1 =0x03; // 發(fā)讀命令字

  while (IFG20x20==0x00); // 發(fā)送完否?

  for(i=0;i《=2;i++) /* 發(fā)送地址 */

  {TXBUF1=addr[i];

  while (IFG20x20==0x00);}//發(fā)送完否?

  for(i=0;i《=19;i++) /* 讀取數(shù)據(jù) */

  { TXBUF1=0X33 ; // 發(fā)送偽數(shù)據(jù)用于產(chǎn)生接收數(shù)據(jù)CLK

  while (IFG20x20==0x00); // 發(fā)送完否?

  while( IFG20x10==0x00) ;

  backdata1[i]=RXBUF1 ;} //存放讀取的數(shù)據(jù)

  delay(2) ;

  P5OUT |=0X01 ; // 拉高 STE1

  delay(200) ;

  break;

  case 0xaf: /* AAI 模式 寫數(shù)據(jù) */

  P5OUT =~0X01 ; // 拉 底 STE1

  delay(2) ;

  TXBUF1 =0X06 ; /* write enable */

  while (IFG20x20==0x00); // 發(fā)送完否?

  delay(2) ;

  P5OUT |=0x01 ; // 拉高 STE1

  delay(12);

  P5OUT =~0x01 ; // 拉底 STE1

  delay(2) ;

  TXBUF1 =0xaf; // 發(fā)寫命令字

  while (IFG20x20==0x00); // 發(fā)送完否?

  for(i=0;i《=2;i++) /* 發(fā)送地址 */

  { TXBUF1=addr[i];

  while (IFG20x20==0x00); }//發(fā)送完否?

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

  { TXBUF1=data1[i] ; // 連續(xù)寫20字節(jié)的數(shù)據(jù)

  while (IFG20x20==0x00) ; // 發(fā)送完否?

  if(i==19) break ;

  delay(2) ;

  P5OUT |=0X01 ; // 拉高 STE1

  delay(12) ;

  P5OUT =~0X01 ; // 拉底 STE1

  delay(2) ;

  TXBUF1 =0xaf ;

  while (IFG20x20==0x00); } // 發(fā)送完否?

  delay(2) ;

  P5OUT |=0X01 ; // 拉高 STE1

  delay(12);

  P5OUT =~0X01 ; // 拉底 STE1

  delay(2) ;

  TXBUF1 =0X04 ; // /* 結(jié)束AAI模式*/

  while (IFG20x20==0x00); // 發(fā)送完否?

  delay(2) ;

  P5OUT |=0X01 ; // 拉高 STE1

  break;

  總結(jié)

  S ST串行式閃存因具備低耗能與小型接腳的特色,可作為硬盤、繪圖卡、電子玩具、智能卡、MP3播放器、無線電話、藍(lán)牙模塊及GPS模塊等裝置比較理想的存儲(chǔ)解決方案。由于SST串行式閃存的容量從512Kbit至16Mbit不等,因此適用于從低階智能卡至高容量的聲音檔案存儲(chǔ),如電話錄音機(jī)等各類資料存儲(chǔ) 應(yīng)用裝置。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉