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