NandFLASH和NorFLASH接口設(shè)計(jì)和驅(qū)動(dòng)開發(fā)
0 引 言
隨著嵌入式系統(tǒng)的迅速發(fā)展,其應(yīng)用環(huán)境的廣泛性,復(fù)雜性對(duì)構(gòu)建于系統(tǒng)上的Nor和Nand閃存設(shè)備提出更高要求,需要閃存設(shè)備傳輸速度更快,體積更小,容量更大,穩(wěn)定性更好。該文在基于Samsung公司的S3C2410處理器平臺(tái)上,針對(duì)FLASH閃存設(shè)備在嵌入式系統(tǒng)中的應(yīng)用,詳細(xì)分析FLASH閃存設(shè)備的接口設(shè)計(jì)方法,并針對(duì)FLASH接口特點(diǎn),提出Linux環(huán)境下NorFLASH和 NandFLASH的驅(qū)動(dòng)開發(fā)流程,給出詳細(xì)的代碼分析。
1 NandFLASH和NandFLASH對(duì)比
隨著存儲(chǔ)技術(shù)的高速發(fā)展,閃存設(shè)備因其在性能和成本方面的優(yōu)勢(shì),如非易失性,可擦除性以及更低廉的價(jià)格正逐步取代傳統(tǒng)記憶體。目前常用閃存是Nor-FLASH和NandFLASH。它們的技術(shù)性能差異顯著,表1是它們的技術(shù)對(duì)比。
NorFLASH使用方便,易于連接,可以在芯片上直接運(yùn)行代碼,穩(wěn)定性出色,傳輸速率高,在小容量時(shí)有很高的性價(jià)比,這使其很適合應(yīng)于嵌入式系統(tǒng)中作為 FLASH ROM。相對(duì)于NorFLASH,NandFLASH強(qiáng)調(diào)更高的性能,更低的成本,更小的體積,更長(zhǎng)的使用壽命。這使NandFLASH很擅于存儲(chǔ)純資料或數(shù)據(jù)等,在嵌入式系統(tǒng)中用來(lái)支持文件系統(tǒng),在該S3C2410平臺(tái)上用以支持bon文件系統(tǒng)。
然而FLASH閃存卻是保證數(shù)據(jù)正確性不太理想的設(shè)備,應(yīng)用中可能出現(xiàn)壞塊;這就給其在嵌入式系統(tǒng)中的應(yīng)用,如何更好地進(jìn)行數(shù)據(jù)存儲(chǔ)管理提出了更高要求。恰當(dāng)?shù)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/接口">接口設(shè)計(jì)和驅(qū)動(dòng)開發(fā)是解決問(wèn)題的關(guān)鍵,本文基于S3C2410,詳細(xì)分析FLASH接口設(shè)計(jì)和驅(qū)動(dòng)開發(fā)流程。
2 FLASH接口設(shè)計(jì)
2.1 處理器內(nèi)存分配情況
在分析FLASH的接口以及工作模式前,先分析處理器的內(nèi)存分配情況。內(nèi)核ARM920T是32位處理器,尋址空間4 GB,3 GB被處理器內(nèi)部的寄存器和一些其他設(shè)備占用,只有1 GB用于外部尋址;這1 GB的空間S3C2410分為8個(gè)部分以支持不同的設(shè)備,每個(gè)空間為128 Mb,被命名為BANK。S3C2410給每個(gè)BANK一個(gè)片選即nGCS0~nGCS7來(lái)方便對(duì)BANK的操作,將CPU上相應(yīng)的BANK連線接到外設(shè)芯片的片選引腳上就可以根據(jù)相應(yīng)的地址對(duì)存儲(chǔ)器進(jìn)行控制。
2.2 FLASH在系統(tǒng)中的架構(gòu)
FLASH模塊通過(guò)系統(tǒng)總線與處理器相連,如圖1所示。
為了擁有高速的數(shù)據(jù)交換通道,F(xiàn)LASH經(jīng)由控制器模塊通過(guò)AHB總線與處理器通信。NandFLASH控制器、NorFLASH控制器和DMA控制器都是高速總線AHB上的Master模塊,都包含符合AMBA標(biāo)準(zhǔn)的總線接口模塊與AHB交互工作。FLASH工作時(shí),F(xiàn)LASH控制器模塊和DMA控制器模塊相互協(xié)作,完成各種操作。
評(píng)論