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