大容量NAND Flash在多媒體手機(jī)中的應(yīng)用
完成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的支持才能在手機(jī)使用。Driver除了提供對NANDFlash的Read,Program,Erase外,還應(yīng)該提供以下基本的功能:
BadBlockManagement
WearLevelingTreatment
ECC(ErrorCorrectCode)
NANDFlash是通過Driver分配的邏輯地址來進(jìn)行訪問的。BadBlockManagement對壞塊不分配邏輯地址,這樣會形成連續(xù)的邏輯地址。WearLevelingTreatment避免對某一區(qū)域進(jìn)行大量的讀寫操作,這樣就會延長NANDFlash的使用時間。ECC主要完成讀寫過程中的糾錯,但是ECC只能對1bit的數(shù)據(jù)進(jìn)行糾錯。
3 結(jié)語
在多媒體手機(jī)中NANDFlash主要用來存儲多媒體數(shù)據(jù)(圖片、語音文件等)。在實際應(yīng)用中不會對NANDFlash進(jìn)行頻繁的寫入和擦除操作,而且多媒體數(shù)據(jù)對數(shù)據(jù)的完整性要求也不是很高,但是多媒體數(shù)據(jù)的數(shù)據(jù)量較大。這些特征決定了使用NANDFlash來存儲多媒體數(shù)據(jù)是十分恰當(dāng)?shù)模@也正是業(yè)界的通行做法。
評論