大容量NAND FLASH在A(yíng)RM嵌入式系統中的設計與實(shí)現
1 引 言
隨著(zhù)嵌人式系統在數碼相機、數字攝像機、移動(dòng)電話(huà)、mp3音樂(lè )播放器等移動(dòng)設備中越來(lái)越廣泛的應用,FLASH存儲器已經(jīng)逐步取代其他半導體存儲元件,成為嵌入式系統中主要數據和程序載體。FLASH存儲器又稱(chēng)閃存,是一種可在線(xiàn)多次擦除的非易失性存儲器,即掉電后數據不會(huì )丟失。FLASH存儲器還具有體積小、功耗低、抗振性強等優(yōu)點(diǎn),是嵌入式系統的首選存儲設備。
NAND和NOR FLASH是現在市場(chǎng)上兩種主要的非易失閃存芯片,這兩種類(lèi)型的FLASH區別在于:
NOR類(lèi)型FLASH可以按照字節訪(fǎng)問(wèn),所以存放在FLASH里的程序可以直接執行,而NAND類(lèi)型FLASH是串行訪(fǎng)問(wèn)的,需要先把程序讀取到內存然后再從內存中運行。與NOR型相比,NAND型閃存的優(yōu)點(diǎn)是容量大,但是NAND型的速度比較慢,因為他的I/O端口只有8(或16)個(gè),要完成地址和數據的傳輸就必需讓這些信號輪流傳送。NAND型FLASH具有極高的單元密度,容量可以比較大,價(jià)格相對便宜。本文采用Samsung公司的NAND型FLASH存儲設備K9F2808U0C。
2 系統硬件結構及接口電路
2.1 ARM芯片介紹
ARM公司自1990年正式成立以來(lái),在32位RISC(Reduced InSTruction Set Computer)CPU開(kāi)發(fā)領(lǐng)域不斷取得突破,目前已經(jīng)占有75%以上的32位RISC嵌入式產(chǎn)品市場(chǎng)。在低功耗、低成本的嵌人式應用領(lǐng)域確立了市場(chǎng)領(lǐng)導地位。
PHILIPS公司的LPC2210是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMI-STMCPU的微控制器,片內128位寬度的存儲器接口和獨特的加速結構使32位代碼能夠在最大時(shí)鐘頻率下運行。LPC2210極低的功耗、多個(gè)32位定時(shí)器、8路10位ADC以及9個(gè)外部中斷使其特別適用于工業(yè)控制、醫療系統、訪(fǎng)問(wèn)控制和POS機。由于內置了寬范圍的串行通信接口,他們也非常適合于通信網(wǎng)關(guān)、協(xié)議轉換器、嵌入式軟MODEM以及其他各種類(lèi)型的
應用。
2.2 K9F2808U0C芯片的結構和特點(diǎn)
K9F2808U0C是SAMSung公司生產(chǎn)的NAND型FLASH存儲器,其功能框圖如圖1所示。
K9F2808U0C存儲容量為132 Mb,其中主數據區為128 Mb,輔助數據區為4 Mb,工作電壓為2.7~3.6 V,I/O端口寬度為8 b。片內寫(xiě)控制自動(dòng)實(shí)現編程和擦除所有功能,包括內部校驗、脈沖的周期和數據冗余。
芯片的存儲空間是按照塊和頁(yè)的概念來(lái)組織的,一個(gè)芯片分為1 024個(gè)塊,每個(gè)塊有32頁(yè),每一頁(yè)有528 B。528 B中分為512 B的數據區和16個(gè)字節的空閑區,空閑區用于存放ECC代碼、壞塊信息和文件系統相關(guān)代碼。一個(gè)528 B的數據寄存器作為數據緩沖單元,用來(lái)實(shí)現I/0緩沖和存儲器之間的數據傳輸。
使用NAND型FLASH的關(guān)鍵技術(shù)之一是存儲空間的管理。SAMSUNG公司的NAND FLASH存儲器有一些初始無(wú)效塊(包含一個(gè)或多個(gè)壞位的存儲塊),制造商不保證這些塊的可靠性。NAND FLASH容許成品中有壞塊存在,這是采用NAND技術(shù)所特有的現象。壞塊的存在并不影響有效塊的性能。但是,系統級的設計必須能夠用地址映射把這些壞塊屏蔽掉。芯片在出廠(chǎng)時(shí),除保存壞塊信息的區域外,其他部分一律被擦除(值為0xFF),對壞塊的讀操作是允許的,但不推薦進(jìn)行寫(xiě)和擦除操作,以免由于結構方面的原因使鄰近的塊也失效。系統設計時(shí)必須根據初始的壞塊信息識別出壞塊,并建立壞塊列表。進(jìn)行寫(xiě)或擦除操作時(shí)將欲操作塊的地址與壞塊地址表的地址相比較,若是壞塊則應跳過(guò)。為了提高存儲空間的效率,單個(gè)位數據錯誤引起的讀寫(xiě)失敗都可以用ECC(校錯和糾錯)方法處理。
芯片在使用過(guò)程中,可能有新壞塊的產(chǎn)生,為了系統的可靠性,必須對此情況加以考慮。在數據寫(xiě)入或塊擦除操作后,如果讀狀態(tài)寄存器出現錯誤,則表示塊內有壞頁(yè)存在,也即表明此塊已壞,因為塊內壞頁(yè)的存在并不影響其他頁(yè)的讀寫(xiě),這時(shí)可采用塊替換操作來(lái)把頁(yè)內有用數據轉移到其他空閑塊內,并把壞塊信息存入壞塊表中。
pos機相關(guān)文章:pos機原理
評論