摘要:nand結(jié)構(gòu)flash數(shù)據(jù)存儲器件是超大容量數(shù)據(jù)存儲的理想選擇,當前被廣泛應(yīng)用于u盤、mp3和數(shù)碼相機的數(shù)據(jù)存儲。本文對該類型flash的基本操作進行研究并對實際應(yīng)用系統(tǒng)給予驗證,揭示了nand結(jié)構(gòu)flash的操作規(guī)律。 關(guān)鍵詞:nand flash 數(shù)據(jù)存儲 c8051f 引 言 大容量數(shù)據(jù)存儲是單片機應(yīng)用系統(tǒng)的瓶頸,受到容量、功耗、尋址方式的約束。突破容量限制,可以很大程度上擴展和提高應(yīng)用系統(tǒng)的總體功能。sumsung公司的nand結(jié)構(gòu)flash存儲器件是一款性價比很高的超大容量數(shù)據(jù)存儲器件,在mp3、u盤、數(shù)碼相機和pda中有廣泛的應(yīng)用,且市場占有份額逐年加大。用該器件作為各種單片機尤其是嵌入式系統(tǒng)的數(shù)據(jù)存儲器,可以完美地解決容量限制,實現(xiàn)靈活操作,勢必成為數(shù)據(jù)存儲的主流方向。
 1 器件介紹 nand結(jié)構(gòu)flash是sumsung公司隆重推出并著力開發(fā)的新一代數(shù)據(jù)存儲器件,電源電壓1.7~3.6v,體積小,功耗低,容量最大可達1gb,按頁進行讀寫,按塊擦除,通過i/o口分時復(fù)用作為命令/地址/數(shù)據(jù)。本次應(yīng)用開發(fā)的是nand結(jié)構(gòu)16mb的k9f2808uob,其它大容量的器件只比該型號送出的地址多了幾字節(jié),操作指令和時序相同。具體結(jié)構(gòu)說明如圖1所示。 由圖1可知,該器件由1k個塊(block)組成,每個塊有32頁,每頁有528字節(jié),這528字節(jié)分成a、b、c三個區(qū)。對每一頁的尋址需要通過i/o口送出三個地址,第二、三行地址(a9~a23)指明尋址到某一頁,第一列地址指明尋址到頁的指定區(qū)中某一字節(jié)。對頁的分區(qū)命令如表1所列。 表1 起始指針位置與區(qū)域關(guān)系對照表 命 令 指針位置/字節(jié) 區(qū) 域 00h 0~255 陣列第一伴(a) 01h 256~511 陣列第二半(b) 50h 512~527 剩余陣列(c) 由表1可以看出,00h、01h、50h只是選區(qū)指針。 選定區(qū)的內(nèi)部尋址是由第一個列地址完成的,a0~a7可以最大尋址256字節(jié)。 2 應(yīng)用舉例 在開發(fā)便攜式心電信號采集監(jiān)視儀中,k9f2808被用做心電采樣數(shù)據(jù)存儲器。mcu采用美國cygnal公司的soc增強型單片機c8051f020,內(nèi)部ram共有4352字節(jié),i/o支持雙向操作等。flash的命令引腳要接到端口1上去,端口3是命令/地址/數(shù)據(jù)的復(fù)用形式。顯然這里的數(shù)據(jù)是并行的,因此操作速度很快,達到了讀頁 1.2ns,寫頁200μs。圖2給出了芯片的接口電路圖。由于篇幅所限,圖3只給出寫頁的命令時序,并對相關(guān)的指令代碼做簡要說明。
在寫頁之前,mcu的ram中就應(yīng)該存有采樣來的528字節(jié)的數(shù)據(jù)。寫操作時,先指出寫開始地址。這由選區(qū)命令和第一個列地址來共同指定,以后在寫頁時就可以忽略不寫。此處為了最大限度存儲數(shù)據(jù),開始地址定為a區(qū)的00h。為了指定這個地址,必須在送出命令80h之前送出選區(qū)命令00h,同時地址a0~a7置為0。緊跟在80h之后送出三個地址,第一個列地址已經(jīng)是00h,第二、三頁地址只要指定a9~a23就可以了。隨后連續(xù)送出528個數(shù)據(jù)字節(jié),為了把數(shù)據(jù)從flash的數(shù)據(jù)寄存器寫入對應(yīng)存儲單元,接下來再寫入命令10h。經(jīng)過約500μs的物理寫入,就可以進行狀態(tài)查詢了。寫入命令字70h后,從flash的i/o0位就可以讀出操作結(jié)果標志。在執(zhí)行主代碼之前,需要對單片機進行初始化和定義操作子函數(shù)。詳細的寫入程序清單請參看本刊網(wǎng)站www.dpj.com.cn。
圖3
3 小 結(jié) 以上操作代碼成功實現(xiàn)了對sumsung公司nand結(jié)構(gòu)flash的頁寫入,其它基本操作只要在寫頁的基礎(chǔ)上進行修改即可。在使用該器件時要注意:①所選單片機最好是高速的,內(nèi)部ram要大,端口支持實時雙向輸入輸出;②由于該flash的操作時序是ns級,所以在調(diào)試時要注意指令的安排順序和有選擇地加入空操作指令,以滿足其精確的時序要求;③對于實施信號檢測采樣的各種工業(yè)應(yīng)用,本文的大容量flash可圓滿實現(xiàn)各種基本操作。 |