基于SST25VF020的數(shù)據(jù)存儲系統(tǒng)設(shè)計
前言
近年來,閃速存儲器已應(yīng)用在數(shù)以千計的產(chǎn)品中,特別是移動通信、MP3音樂播放器、手持PC管理器、數(shù)碼相機(jī)、網(wǎng)絡(luò)路由器、艙內(nèi)錄音機(jī)等工業(yè)產(chǎn)品。閃速存儲器由于具有非易失性和電可編程擦除性,從而具有半導(dǎo)體存儲器的讀取速度快、存儲容量大等優(yōu)點,同時又克服了DRAM及SRAM斷電丟失所存數(shù)據(jù)的缺陷。與EPROM相比較,閃速存儲器的優(yōu)勢在于系統(tǒng)電可擦除和可重復(fù)編程,且不需要特殊的高電壓,此外,它還有成本低,密度大的特點。
閃速存儲器由于各自技術(shù)架構(gòu)的不同,又可分為NOR技術(shù)、NAND技術(shù)、AND技術(shù)和由EEPROM派生的閃速存儲器。以EEPROM做閃速存儲陣列的Flash Memory,如SST的小扇區(qū)結(jié)構(gòu)閃速存儲器具有EEPROM與NOR技術(shù)Flash Memory二者折中的性能特點:(1)讀寫的靈活性遜于EEPROM,但與NOR技術(shù)Flash Memory的塊結(jié)構(gòu)相比,其頁尺寸小,具有快速隨機(jī)讀取和快編程、快擦除的特點。(2)與EEPROM比較,具有明顯的成本優(yōu)勢。
SST25VF系列產(chǎn)品,是業(yè)界第一個完整的串行閃存產(chǎn)品系列,其記憶容量包含512Kbit至16Mbit,且采用產(chǎn)業(yè)標(biāo)準(zhǔn)的8接腳SOIC封裝及超薄型WSON封裝技術(shù)。此外,SST最新串行閃存提供最新自動地址增值(AAI)資料寫入模式,與單一字節(jié)資料寫入模式相比,該資料寫入模式能夠?qū)⒄麄€閃存的資料寫入時間減少50%。SST25VF系列是以高效能超快閃技術(shù)為基礎(chǔ),加上四線及串行外圍界面(SPI),相對平行EEPROM等非揮發(fā)性內(nèi)存解決方案而言,SST的串行式閃存產(chǎn)品使用較少的接腳,將資料往返于系統(tǒng)CPU,因此可減少電路板空間、耗能及成本。
芯片介紹
芯片引腳介紹
SST25VF020是SST25VF系列產(chǎn)品中的一員,其芯片具有以下特點:總?cè)萘繛?M;單電源讀和寫操作,工作電壓為2.7-3.3V;低功耗,工作電流為7mA,等待電流為3μA;時鐘頻率高達(dá)33MHz,快速編程、快速擦除、快速讀取;小型一致閃區(qū)尺寸4KB;數(shù)據(jù)保存100年;CMOS I/O兼容等。
狀態(tài)寄存器
狀態(tài)寄存器用來對芯片的工作模式進(jìn)行設(shè)定,在工作過程中,可以提供芯片的工作狀態(tài),比如讀、寫、寫保護(hù)等。
工作過程
首先設(shè)置狀態(tài)寄存器,對FLASH的工作模式、寫使能以及寫保護(hù)區(qū)域進(jìn)行設(shè)定。在讀寫的過程中,還可以通過讀寄存器內(nèi)容來判斷FLASH當(dāng)前的工作狀態(tài)。設(shè)定結(jié)束后,可以開始讀寫操作。
寫操作
選用自動地址增值寫入(AAI)模式,這種模式在寫入大量數(shù)據(jù)時可以縮短程序運行時間。在寫操作中,首先寫入寫使能命令字(0x06),AAI模式以 AF為寫命令,順序?qū)懭氪鎯ζ鹗嫉刂泛痛鎯?shù)據(jù),每傳送完一字節(jié)的數(shù)據(jù)時,時鐘位置高,為寫下一字節(jié)數(shù)據(jù)做準(zhǔn)備。當(dāng)數(shù)據(jù)全部寫入時,寫終止寫使能命令字(0x04),寫操作結(jié)束。在整個寫過程中,狀態(tài)寄存器中的BUSY位始終為1,寫操作結(jié)束后,BUSY自動復(fù)位。
讀操作
在讀操作中,首先寫入讀命令字(0x03),然后寫入讀取數(shù)據(jù)的起始地址,數(shù)據(jù)會順序讀出,直至讀完。如果地址累加至7FFFF,下次數(shù)據(jù)讀取會從00000地址開始。在整個讀過程中,狀態(tài)寄存器中的BUSY位始終為1,寫操作結(jié)束后,BUSY自動復(fù)位。
擦除操作
SST25VF020提供3種芯片擦除方式:扇區(qū)擦除、塊擦除和全擦除。命令字分別為0x20、0x52、0x60,可分別實現(xiàn)不同范圍的擦除。在整個擦除過程中,狀態(tài)寄存器中的BUSY位始終為1,擦除操作結(jié)束后,BUSY自動復(fù)位。
硬件電路
系統(tǒng)控制器選用MSP430F149單片機(jī),對溫度傳感器信號進(jìn)行模數(shù)轉(zhuǎn)換后采樣,將采集到的數(shù)據(jù)通過SPI串行通信存儲到FLASH中。當(dāng)系統(tǒng)通過異步串口和PC機(jī)相連時,通過SPI串行通信將儲存到FLASH中的數(shù)據(jù)讀到PC機(jī)中,從而對采集的數(shù)據(jù)進(jìn)行分析、處理。將采集到的數(shù)據(jù)保存后,即可擦除 FLASH,為下一次采集做準(zhǔn)備。存儲電路連接如圖4所示。通過上拉電阻將CE#、SO端的初始狀態(tài)置為高電平,寫保護(hù)端始終為高電平。相應(yīng)的輸入輸出端、時鐘信號端和使能端分別和單片機(jī)接口相連。
關(guān)鍵源程序
case 0x03: /* 讀數(shù)據(jù) */
TXBUF1 =0x03; // 發(fā)讀命令字
while (IFG2&0x20==0x00); // 發(fā)送完否?
for(i=0;i《=2;i++) /* 發(fā)送地址 */
{TXBUF1=addr[i];
while (IFG2&0x20==0x00);}//發(fā)送完否?
for(i=0;i《=19;i++) /* 讀取數(shù)據(jù) */
{ TXBUF1=0X33 ; // 發(fā)送偽數(shù)據(jù)用于產(chǎn)生接收數(shù)據(jù)CLK
while (IFG2&0x20==0x00); // 發(fā)送完否?
while( IFG2&0x10==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 (IFG2&0x20==0x00); // 發(fā)送完否?
delay(2) ;
P5OUT |=0x01 ; // 拉高 STE1
delay(12);
P5OUT &=~0x01 ; // 拉底 STE1
delay(2) ;
TXBUF1 =0xaf; // 發(fā)寫命令字
while (IFG2&0x20==0x00); // 發(fā)送完否?
for(i=0;i《=2;i++) /* 發(fā)送地址 */
{ TXBUF1=addr[i];
while (IFG2&0x20==0x00); }//發(fā)送完否?
for(i=0;i《=19;i++)
{ TXBUF1=data1[i] ; // 連續(xù)寫20字節(jié)的數(shù)據(jù)
while (IFG2&0x20==0x00) ; // 發(fā)送完否?
if(i==19) break ;
delay(2) ;
P5OUT |=0X01 ; // 拉高 STE1
delay(12) ;
P5OUT &=~0X01 ; // 拉底 STE1
delay(2) ;
TXBUF1 =0xaf ;
while (IFG2&0x20==0x00); } // 發(fā)送完否?
delay(2) ;
P5OUT |=0X01 ; // 拉高 STE1
delay(12);
P5OUT &=~0X01 ; // 拉底 STE1
delay(2) ;
TXBUF1 =0X04 ; // /* 結(jié)束AAI模式*/
while (IFG2&0x20==0x00); // 發(fā)送完否?
delay(2) ;
P5OUT |=0X01 ; // 拉高 STE1
break;
總結(jié)
S ST串行式閃存因具備低耗能與小型接腳的特色,可作為硬盤、繪圖卡、電子玩具、智能卡、MP3播放器、無線電話、藍(lán)牙模塊及GPS模塊等裝置比較理想的存儲解決方案。由于SST串行式閃存的容量從512Kbit至16Mbit不等,因此適用于從低階智能卡至高容量的聲音檔案存儲,如電話錄音機(jī)等各類資料存儲 應(yīng)用裝置。[!--empirenews.page--]