大容量存儲(chǔ)的NOR FLASH的原理及應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
VDRF256M16是珠海歐比特公司自主研發(fā)的一種高速、大容量的NOR FLASH,可利用其對(duì)大容量數(shù)據(jù)進(jìn)行高速緩存。文中介紹了該芯片的結(jié)構(gòu)和原理,并同時(shí)給出了一個(gè)系統(tǒng)中大容量、高速數(shù)據(jù)傳輸要求的設(shè)計(jì)方案。
1引言
NOR FLASH 是很常見的一種存儲(chǔ)芯片,數(shù)據(jù)掉電不會(huì)丟失。NOR FLASH 支持Execute On Chip,即程序可以直接在FLASH 片內(nèi)執(zhí)行。這點(diǎn)和NAND FLASH 不一樣。因此,在嵌入是系統(tǒng)中,NOR FLAS H 很適合作為啟動(dòng)程序的存儲(chǔ)介質(zhì)。NOR FLAS H 的讀取和RAM很類似,但不可以直接進(jìn)行寫操作。對(duì)NOR FLAS H 的寫操作需要遵循特定的命令序列,最終由芯片內(nèi)部的控制單元完成寫操作。所以,NOR FLASH一般是作為用于程序的存儲(chǔ)與運(yùn)行的工具。
NOR的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP, Execute In Place),這樣應(yīng)用程序可以直接在FLASH閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR FLASH的傳輸效率很高,在1~4MB的小容量時(shí)具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
2NAND FLASH與NOR FLASH的性能比較
FLASH閃存是非易失存儲(chǔ)器,可以對(duì)稱為塊的存儲(chǔ)器單元塊進(jìn)行擦寫和再編程。任何FLASH器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫入操作之前必須先執(zhí)行擦除。NAND FLASH器件執(zhí)行擦除操作是十分簡(jiǎn)單的,而NOR FLASH則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為0。
由于擦除NOR FLASH器件時(shí)是以64~128KB的塊進(jìn)行的,執(zhí)行一個(gè)寫入/擦除操作的時(shí)間為5s,與此相反,擦除NAND FLASH器件是以8~32KB的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms。
執(zhí)行擦除時(shí)塊尺寸的不同進(jìn)一步拉大了NOR FLASH和NADN FLASH之間的性能差距,統(tǒng)計(jì)表明,對(duì)于給定的一套寫入操作(尤其是更新小文件時(shí)更多的擦除操作必須在基于NOR FLASH的單元中進(jìn)行。
NAND FLASH的單元尺寸幾乎是NOR FLASH器件的一半,由于生產(chǎn)過(guò)程更為簡(jiǎn)單,NAND FLASH結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量,也就相應(yīng)地降低了價(jià)格。
NOR FLASH占據(jù)了容量為1~16MB閃存市場(chǎng)的大部分,而NAND FLASH只是用在8~128MB的產(chǎn)品當(dāng)中,這也說(shuō)明NOR主要應(yīng)用在代碼存儲(chǔ)介質(zhì)中,NAND FLASH適合于數(shù)據(jù)存儲(chǔ),NAND FLASH在Compact Flash、Secure Digital、PC Cards和MMC存儲(chǔ)卡市場(chǎng)上所占份額最大
3VDRF256M16芯片
3.1芯片介紹
VDRF256M16是一款高集成度的靜態(tài)隨機(jī)存取存儲(chǔ)器,其總含有256M bits。由于此芯片里面包含4個(gè)片選,每個(gè)片選含有1個(gè)Block,具體的內(nèi)部結(jié)構(gòu)見圖1。這種結(jié)構(gòu)不但大大的擴(kuò)充了存儲(chǔ)器的容量和數(shù)據(jù)位寬,而且還可以在應(yīng)用時(shí)大量節(jié)省了PCB板的使用空間。從圖1可以看出,每個(gè)片選控制了每一Block的寫保護(hù)信號(hào)#WP,另外芯片中的每一個(gè)Block的其他控制端口、地址線和數(shù)據(jù)線都是共用的。圖2為VDRF256M16中的任一Block的結(jié)構(gòu)框圖,它主要由控制邏輯、存儲(chǔ)整列等組成。下面為VD RF256M16的主要特性。
-總?cè)萘浚?56Mbit;
-數(shù)據(jù)寬度:16位;
-工作電壓3.3V +/- 0.3V;
-每個(gè)DIE(共4個(gè)DIE)含:-8個(gè)8KB的扇區(qū)、127個(gè)64KB的扇區(qū);
-扇區(qū)的硬件鎖防止被擦除、編程;
-存取時(shí)間最高達(dá)90ns;
-高擦除/編程速度:
-字編程8us(典型值);
-扇區(qū)擦除500ms(典型值);
-芯片擦除64s/DIE(典型值);
-解鎖旁路模式;
-擦除暫停/繼續(xù)模式;
-支持JEDEC通用FLASH接口協(xié)議(CFI);
-寫保護(hù)功能,允許不管扇區(qū)保護(hù)狀態(tài)對(duì)兩BOOT扇區(qū)進(jìn)行寫保護(hù);
-加速功能促進(jìn)加快芯片編程時(shí)間;
-最小100000次的擦除、編程;
圖1 VDRF256M16芯片內(nèi)部的結(jié)構(gòu)圖
圖2 VDRF256M16內(nèi)部Block的結(jié)構(gòu)框圖
3.2VDRF256M16的引腳說(shuō)明
VDRF256M16芯片采用的是SOP封裝工藝,整塊芯片表面鍍金,這樣可以大幅度增強(qiáng)了芯片的抗干擾和抗輻射的能力,有利于該芯片能應(yīng)用于航空航天等惡劣的環(huán)境。
VDRF256M16芯片各引腳分布見下圖3所示,各引腳的功能說(shuō)明如下:
VCC:+3.3V電源輸入端。濾波的旁路電容應(yīng)盡可能靠近電源引腳, 并直接連接到地;
VSS:接地引腳;
A[21..0]:地址同步輸入端;
#WE:此端為低時(shí)寫入,為高時(shí)寫無(wú)效,數(shù)據(jù)有效發(fā)生在相應(yīng)地址有效之后的兩個(gè)周期;
# OE:輸出使能, 數(shù)據(jù)讀取時(shí)需置為低,寫時(shí)置為低;
#WP/ACC[3..0]:最外的兩個(gè)8KB的BOOT扇區(qū)保護(hù)狀態(tài)。當(dāng)電平為VIL時(shí),此兩扇區(qū)受保護(hù),不能進(jìn)行擦除、編程操作;當(dāng)電平為VIH時(shí),取決于扇區(qū)保護(hù)狀態(tài),如此兩扇區(qū)是受保護(hù)的則不能進(jìn)行操作,如未受保護(hù)則可進(jìn)行擦除、編程操作;當(dāng)電平為VHH時(shí),將進(jìn)入解鎖旁路模式進(jìn)入加速編程狀態(tài)。此管腳不能懸空;
#CE[3..0]:低電平有效時(shí)選中該片,可通過(guò)兩個(gè)片選信號(hào)選擇四個(gè)Block,但兩個(gè)片選信號(hào)不能同時(shí)選中;
#BYTE:字節(jié)/字模式選擇。低電平為字節(jié)模式,DQ0~DQ7為數(shù)據(jù)端口,DQ8~DQ14為高阻狀態(tài),DQ15做LSB地址輸入;高電平為字模式,DQ0~DQ15為數(shù)據(jù)端口;
RY/#BY:準(zhǔn)備/忙碌狀態(tài)輸出。低電平為忙碌狀態(tài);高電平為準(zhǔn)備狀態(tài);
D[15..0]:數(shù)據(jù)輸入/輸出腳。
圖3 VDRF256M16引腳分布圖
3.3芯片操作
VDRF256M16的軟件操作可以分成兩類: 普通讀操作和命令操作。普通讀操作非常簡(jiǎn)單, 與RAM的讀操作類似, 當(dāng)#OE和#CE信號(hào)同時(shí)為低電平時(shí), 即可從芯片讀出數(shù)據(jù)。芯片的命令操作包括芯片的識(shí)別、字節(jié)編程、扇區(qū)擦除以及整片擦除等。這些操作分別由各自的軟件操作命令序列來(lái)完成, 如表1所列。其中, BA為待編程字節(jié)的地址,Data為字節(jié)編程數(shù)據(jù), SAX為待擦除扇區(qū)的地址。命令中的地址只有低15位有效, 高4位可任意設(shè)置為/ 00或/ 10。VDRF256M16的軟件操作命令序列實(shí)際上是由一個(gè)或多個(gè)總線寫操作組成的。以VDRF256M16的扇區(qū)擦除為例, 其操作過(guò)程包括3個(gè)步驟: 第1步, 開啟擦除方式,用表1中給出的第1至第5周期的總線寫操作來(lái)實(shí)現(xiàn); 第2步, 裝載扇區(qū)擦除命令( 30H) 和待擦除扇區(qū)的地址, 用其對(duì)應(yīng)的第6周期的總線寫操作來(lái)實(shí)現(xiàn); 第3步, 進(jìn)行內(nèi)部擦除。內(nèi)部擦除時(shí)間最長(zhǎng)為500ms。
表1 軟件操作命令序列表
總線寫操作時(shí),OE必須保持為高電平, CE和WE應(yīng)為低電平。地址和數(shù)據(jù)的鎖存由CE和WE兩個(gè)信號(hào)的邊沿進(jìn)行控制。它們當(dāng)中后出現(xiàn)的下降沿將鎖存地址, 先出現(xiàn)的上升沿將鎖存數(shù)據(jù)。
4VDRF256M16芯片的應(yīng)用
以VDRF256M16為核心,配合適當(dāng)?shù)目刂菩盘?hào),不但可以對(duì)存儲(chǔ)器進(jìn)行各種讀寫操作,而且還可以進(jìn)行進(jìn)一步的容量拓展。下面以該芯片在系統(tǒng)中的應(yīng)用為例,介紹VDRF256M16在系統(tǒng)中的的硬件設(shè)計(jì)及各信號(hào)之間的時(shí)序關(guān)系。
4.1系統(tǒng)的工作原理
硬件設(shè)計(jì)就是搭建合適的接口電路, 將VDRF256M16連接到微處理器的系統(tǒng)總線上。根據(jù)VDRF256M16和微處理器的結(jié)構(gòu)特性, 我們發(fā)現(xiàn)VDRF256M16的數(shù)據(jù)線、讀、寫等信號(hào)線可以很容易地連接到微處理器的系統(tǒng)總線上。
圖4 硬件電路原理圖
微處理器接到指令,需將數(shù)據(jù)或程序存放至NOR FLASH時(shí),微處理器首先會(huì)發(fā)送擦除指令將芯片進(jìn)行擦除,具體的流程見圖5。然后將數(shù)據(jù)或程序利用寫指令寫到FLASH中。當(dāng)需要調(diào)取數(shù)據(jù)或程序指令的時(shí)候,需要從FLASH中調(diào)取程序,那就需要發(fā)送讀指令到FLASH中,具體的流程見圖6。
圖5 擦除指令流程圖
圖6 讀指令流程
4.2控制時(shí)序
由于該設(shè)計(jì)的數(shù)據(jù)速度快,容量大,因此時(shí)序的配合很重要,這種配合不僅僅指單個(gè)Block中各信號(hào)與時(shí)鐘的配合,同時(shí)也應(yīng)考慮Block與Block之間的各信號(hào)之間的配合。當(dāng)數(shù)據(jù)輸入時(shí)地址和數(shù)據(jù)應(yīng)在保持穩(wěn)定;而數(shù)據(jù)輸出時(shí),地址也應(yīng)保持穩(wěn)定,這樣才能保證數(shù)據(jù)傳輸?shù)目煽啃约斑B續(xù)性。圖5(讀時(shí)序)和圖6(寫時(shí)序)為單片Block的控制時(shí)序圖。從圖中可以看出:無(wú)論在讀或?qū)憯?shù)據(jù)時(shí),地址總線信號(hào)和控制信號(hào)在發(fā)送一段時(shí)間后,數(shù)據(jù)信號(hào)才能發(fā)送或者讀取。所以在使用時(shí),必須注意時(shí)序上的延時(shí)。
圖7 單片Block的寫時(shí)序圖
圖8 單片Block的讀時(shí)序圖
圖8 單片Block的擦除時(shí)序圖
5結(jié)束語(yǔ)
本文所介紹的VDRF256M16是一款高速度、存儲(chǔ)容量大的16位NOR FLASH存儲(chǔ)器,總?cè)萘窟_(dá)到了256M,存儲(chǔ)周期最大可達(dá)到90ns。16位的數(shù)據(jù)總線寬度能更好和更快速的采集和緩存數(shù)據(jù)。在實(shí)際的應(yīng)用中,可作為高速緩存。但在使用的過(guò)程中需要注意寫入和讀取數(shù)據(jù)的延時(shí)問題。另外,本芯片能在相當(dāng)大的應(yīng)用范圍中使用,具有很好的通用性,在需要高速大容量數(shù)據(jù)存儲(chǔ)的場(chǎng)合的工程中比其他類型的存儲(chǔ)器更有應(yīng)用價(jià)值。