大容量NAND Flash在多媒體手機中的應用
完成ReadMode(1)的偽碼如下:
ReadMode1_Func(Cmd, Addr)
{
RE=1;
ALE = 0 ;
CLE = 1 ;
WE = 0 ;
CE=0;
SendCmd(Cmd); // 向NAND 發(fā)送操作命令,此例中應該是00H
WE = 1 ; / / NAND 取走命令
CE = 1 ;
CLE=0; // 發(fā)送命令結束
ALE=1; // 開(kāi)始發(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)是否結束
RE=0;
CE=0;
ReadData(Buf); // 讀取數據到buffer
}
2.5 NANDFlashDiver的特殊功能
NANDFlash的訪(fǎng)問(wèn)是串行的,比較類(lèi)似硬盤(pán)的存儲方式。NANDFlash必須有Driver的支持才能在手機使用。Driver除了提供對NANDFlash的Read,Program,Erase外,還應該提供以下基本的功能:
BadBlockManagement
WearLevelingTreatment
ECC(ErrorCorrectCode)
NANDFlash是通過(guò)Driver分配的邏輯地址來(lái)進(jìn)行訪(fǎng)問(wèn)的。BadBlockManagement對壞塊不分配邏輯地址,這樣會(huì )形成連續的邏輯地址。WearLevelingTreatment避免對某一區域進(jìn)行大量的讀寫(xiě)操作,這樣就會(huì )延長(cháng)NANDFlash的使用時(shí)間。ECC主要完成讀寫(xiě)過(guò)程中的糾錯,但是ECC只能對1bit的數據進(jìn)行糾錯。
3 結語(yǔ)
在多媒體手機中NANDFlash主要用來(lái)存儲多媒體數據(圖片、語(yǔ)音文件等)。在實(shí)際應用中不會(huì )對NANDFlash進(jìn)行頻繁的寫(xiě)入和擦除操作,而且多媒體數據對數據的完整性要求也不是很高,但是多媒體數據的數據量較大。這些特征決定了使用NANDFlash來(lái)存儲多媒體數據是十分恰當的,這也正是業(yè)界的通行做法。
評論