1 引言
隨著手機市場競爭的日趨激烈,多媒體手機逐漸成為市場的寵兒。因為有大量的多媒體數(shù)據(jù),因此大容量存儲是多媒體手機所要解決的首要問題。
NOR和NAND是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)。NOR的特點是芯片內(nèi)執(zhí)行(XIP,eXecuteInPlace),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運行,不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。NAND結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲密度,并且寫入和擦除的速度也很快,是大數(shù)據(jù)量存儲的最佳選擇。在選擇存儲方案的時候,設(shè)計師必須綜合考慮以下因素:
(1)NOR的讀速度比NAND稍快一些。
(2)NAND的寫入速度比NOR快很多。
(3)NAND的4ms擦除速度遠(yuǎn)比NOR的5s快。
(4)大多數(shù)寫入操作需要先進行擦除操作。
(5)NAND的擦除單元更小,相應(yīng)的擦除電路更少。
(6)NAND閃存中每個塊的最大擦寫次數(shù)是一百萬次,而NOR的擦寫次數(shù)是十萬次。
此外,NAND的使用比NOR的使用復(fù)雜的多。在NOR器件上運行代碼不需要任何的軟件支持,在NAND器件上進行同樣操作時,通常需要驅(qū)動程序,也就是內(nèi)存技術(shù)驅(qū)動程序(MTD),NAND和NOR器件在進行寫入和擦除操作時都需要MTD.
使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用于NOR器件的更高級軟件,這其中包括M-SySTem的TrueFFS驅(qū)動,該驅(qū)動被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等廠商所采用。
2 TC58DDM82A1XBJ5在多媒體手機中的應(yīng)用
在多媒體手機中,TC58DDM82A1XBJ5主要用來存儲圖片、聲音文件等數(shù)據(jù)量較大的文件。
TC58DDM82A1XBJ5是Toshiba公司生產(chǎn)的256MbitsNANDEEPROM.工作電壓為2.7V~3.6V或者1.65V~1.95V.
存儲結(jié)構(gòu)為528bytes×32pages×2048blocks.Page的大小為528Bytes,Block的大小為(16K+512)Bytes.
2.1 引腳排列和功能
NANDFlash采用高度復(fù)用的訪問接口,該接口既作地址總線,又作數(shù)據(jù)總線和指令輸入接口。NANDFlash的的接口引腳主要分三類:數(shù)據(jù)引腳,控制引腳,狀態(tài)引腳。TC58DDM82A1XBJ5的數(shù)據(jù)引腳為8位,即I/O1~I/O8,用來輸入/輸出地址,數(shù)據(jù)和指令。有一個狀態(tài)引腳(RY/BY)用來表示芯片的狀態(tài),當(dāng)芯片進行數(shù)據(jù)寫入、擦除、隨機讀取的時候,其輸出電平為高,表明芯片正忙,否則輸出低電平。/WP引腳用來禁止獲允許對芯片進行寫入操作。當(dāng)其為低電平時禁止寫操作,反之允許寫操作??刂埔_有6個,見引腳定義。
2.2 TC58DDM82A1與AD6528的連接
AD6528是AnalogDevicesInc.生產(chǎn)的Hermes系列GSM/GPRS處理器。AD6528采用DSP+MCU的雙核結(jié)構(gòu),其中MCU采用的是ARM7,DSP部分選用了ADI自己的ADSP-218xDSP核。
2.3 TC58DDM82A1的操作方式
TC58DDM82A1的地址輸入、命令輸入、數(shù)據(jù)輸入輸出都是通過CLE、ALE、CE、WE、RE、RST、PRE1/PRE2引腳控制??刂七壿嬋绫?所示:
表1 邏輯表
*1:/WP=0,則禁止TC58DDM82A1的Program和Erase操作TC58DDM82A1的各種工作模式,如讀、復(fù)位、編程等,都是通過命令字來進行控制的。
2.4 TC58DDM82A1的時序分析及驅(qū)動程序
可知,第一個周期,CLE信號有效時通過IO口向命令寄存器發(fā)送命令00H.此時NANDFlash處于寫狀態(tài),因此WE有效,RE無效。發(fā)送命令后,接著發(fā)送要讀的地址,該操作將占用WE的3個周期。注意,此時發(fā)送的是地址信息,因此CLE為低,而ALE為高電平。當(dāng)信息發(fā)送完畢后,不能立刻讀取數(shù)據(jù),因為芯片此時處于BUSY(忙)狀態(tài),需要等待2~20ms.之后,才能開始真正的數(shù)據(jù)讀取。此時WE為高電平而處于無效狀態(tài),同時CE片選信號也始終為低以表明選中該芯片。
完成ReadMode(1)的偽碼如下:
ReadMode1_Func(Cmd, Addr)
{
RE=1;
ALE = 0 ;
CLE = 1 ;
WE = 0 ;
CE=0;
SendCmd(Cmd); // 向NAND 發(fā)送操作命令,此例中應(yīng)該是00H
WE = 1 ; / / NAND 取走命令
CE = 1 ;
CLE=0; // 發(fā)送命令結(jié)束
ALE=1; // 開始發(fā)送起始地址
for(i=0;i<3;i++)
{
WE = 0 ;
CE=0;
SendAddr(Addr);
WE=1; // 取走指令
CE=1;
} // 發(fā)送完所有地址
CE=1;
WE = 1 ;
ALE = 0 ;
Delay(2);
while(BUSY)
Wait; // 判斷等待狀態(tài)是否結(jié)束
RE=0;
CE=0;
ReadData(Buf); // 讀取數(shù)據(jù)到buffer
}
2.5 NANDFlashDiver的特殊功能
NANDFlash的訪問是串行的,比較類似硬盤的存儲方式。NANDFlash必須有Driver的支持才能在手機使用。Driver除了提供對NANDFlash的Read,Program,Erase外,還應(yīng)該提供以下基本的功能:
BadBlockManagement
WearLevelingTreatment
ECC(ErrorCorrectCode)
NANDFlash是通過Driver分配的邏輯地址來進行訪問的。BadBlockManagement對壞塊不分配邏輯地址,這樣會形成連續(xù)的邏輯地址。WearLevelingTreatment避免對某一區(qū)域進行大量的讀寫操作,這樣就會延長NANDFlash的使用時間。ECC主要完成讀寫過程中的糾錯,但是ECC只能對1bit的數(shù)據(jù)進行糾錯。
3 結(jié)語
在多媒體手機中NANDFlash主要用來存儲多媒體數(shù)據(jù)(圖片、語音文件等)。在實際應(yīng)用中不會對NANDFlash進行頻繁的寫入和擦除操作,而且多媒體數(shù)據(jù)對數(shù)據(jù)的完整性要求也不是很高,但是多媒體數(shù)據(jù)的數(shù)據(jù)量較大。這些特征決定了使用NANDFlash來存儲多媒體數(shù)據(jù)是十分恰當(dāng)?shù)?,這也正是業(yè)界的通行做法。