大容量NANDFlash在多媒体手机中的应用 时间:2012年03月09日
1 引言
(3)NAND的4ms擦除速度远比NOR的5s快。 2.4 TC58DDM82A1的时序分析及驱动程序 可知,第一个周期,CLE信号有效时通过IO口向命令寄存器发送命令00H.此时NANDFlash处于写状态,因此WE有效,RE无效。发送命令后,接 着发送要读的地址,该操作将占用WE的3个周期。注意,此时发送的是地址信息,因此CLE为低,而ALE为高电平。当信息发送完毕后,不能立刻读取数据, 因为芯片此时处于BUSY(忙)状态,需要等待2~20ms.之后,才能开始真正的数据读取。此时WE为高电平而处于无效状态,同时CE片选信号也始终为 低以表明选中该芯片。 完成ReadMode(1)的伪码如下: ReadMode1_Func(Cmd, Addr) { RE=1; ALE = 0 ; CLE = 1 ; WE = 0 ; CE=0; SendCmd(Cmd); // 向NAND 发送操作命令,此例中应该是00H WE = 1 ; / / NAND 取走命令 CE = 1 ; CLE=0; // 发送命令结束 ALE=1; // 开始发送起始地址 for(i=0;i<3;i++) { WE = 0 ; CE=0; SendAddr(Addr); WE=1; // 取走指令 CE=1; } // 发送完所有地址 CE=1; WE = 1 ; ALE = 0 ; Delay(2); while(BUSY) Wait; // 判断等待状态是否结束 RE=0; CE=0; ReadData(Buf); // 读取数据到buffer } 2.5 NANDFlashDiver的特殊功能 NANDFlash的访问是串行的,比较类似硬盘的存储方式。NANDFlash必须有Driver的支持才能在手机使用。Driver除了提供对NANDFlash的Read,Program,Erase外,还应该提供以下基本的功能: BadBlockManagement WearLevelingTreatment ECC(ErrorCorrectCode) NANDFlash是通过Driver分配的逻辑地址来进行访问的。BadBlockManagement对坏块不分配逻辑地址,这样会形成连续的逻辑地 址。WearLevelingTreatment避免对某一区域进行大量的读写操作,这样就会延长NANDFlash的使用时间。ECC主要完成读写过程 中的纠错,但是ECC只能对1bit的数据进行纠错。 3 结语 在多媒体手机中NANDFlash主要用来存储多媒体数据(图片、语音文件等)。在实际应用中不会对NANDFlash进行频繁的写入和擦除操作,而且多 媒体数据对数据的完整性要求也不是很高,但是多媒体数据的数据量较大。这些特征决定了使用NANDFlash来存储多媒体数据是十分恰当的,这也正是业界 的通行做法。 |
|