基于ARM9內(nèi)核Processor外部NANDFLASH的控制實(shí)現(xiàn)
出處:lai832 發(fā)布于:2007-09-26 10:24:53
NAND寫(xiě)回速度快、芯片面積小,特別是大容量使其優(yōu)勢(shì)明顯。頁(yè)是NAND中的基本存貯單元,一頁(yè)一般為512B(也有2kB每頁(yè)的largepageNANDFLASH),多個(gè)頁(yè)面組成塊。不同存儲(chǔ)器內(nèi)的塊內(nèi)頁(yè)面數(shù)不盡相同,通常以16頁(yè)或32頁(yè)比較常見(jiàn)。塊容量計(jì)算公式比較簡(jiǎn)單,就是頁(yè)面容量與塊內(nèi)頁(yè)面數(shù)的乘積。根據(jù)FLASHMemory容量大小,不同存儲(chǔ)器中的塊、頁(yè)大小可能不同,塊內(nèi)頁(yè)面數(shù)也不同。例如:8MB存儲(chǔ)器,頁(yè)大小常為512B、塊大小為8kB,塊內(nèi)頁(yè)面數(shù)為16。而2MB的存儲(chǔ)器的頁(yè)大小為256B、塊大小為4kB,塊內(nèi)頁(yè)面數(shù)也是16。NAND存儲(chǔ)器由多個(gè)塊串行排列組成。實(shí)際上,NAND型的FLASHMemory可認(rèn)為是順序讀取的設(shè)備,他僅用8b的I/O端口就可以存取按頁(yè)為單位的數(shù)據(jù)。NAND在讀和擦寫(xiě)文件、特別是連續(xù)的大文件時(shí),速度相當(dāng)快。
2 NANDFLASH與NORFLASH比較
NOR的特點(diǎn)是可在芯片內(nèi)執(zhí)行,這樣程序應(yīng)該可以直接在FLASH內(nèi)存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高,但寫(xiě)入和讀出速度較低。而NAND結(jié)構(gòu)能提供極高的單元密度,并且寫(xiě)入和擦除的速度也很快,是高數(shù)據(jù)存儲(chǔ)密度的選擇。
這兩種結(jié)構(gòu)性能上的異同主要為:NOR的讀速度比NAND快;NAND的寫(xiě)入速度比NOR快很多;NAND的擦除速度遠(yuǎn)比NOR快;NAND的擦除單元更小,相應(yīng)的擦除電路也更加簡(jiǎn)單;NAND的實(shí)際應(yīng)用方式要比NOR復(fù)雜得多;NOR可以直接使用,并在上面直接運(yùn)行代碼,而NAND需要I/O接口,因此使用時(shí)需要驅(qū)動(dòng)程序。
3 NANDFLASH在系統(tǒng)中的控制
在沒(méi)有NANDFLASH硬件接口的環(huán)境中,通過(guò)軟體控制CPU時(shí)序和硬件特殊接線方式實(shí)現(xiàn)仿真NANDFLASH接口,進(jìn)而實(shí)現(xiàn)在嵌入式系統(tǒng)中脫離NANDFLASH專用硬件接口進(jìn)行對(duì)NANDFLASH讀、寫(xiě)、擦除等操作的實(shí)現(xiàn)方法。
本方法主要工作在以下兩個(gè)方面:
軟件方面:針對(duì)特殊硬件線路的軟體設(shè)計(jì)和嚴(yán)格的CPU時(shí)序控制;
硬件方面:硬件的線路設(shè)計(jì),利用NORFLASH專用硬件接口控制NANDFLASH。
首先建立的開(kāi)發(fā)平臺(tái)如圖1所示。

本平臺(tái)使用Intel的PXA270Processor,無(wú)內(nèi)建NANDFLASHController,使用NORFLASHController控制NANDFLASH,具體的線路連接方式如圖2所示。

NANDFLASH的I/O0~I(xiàn)/07引腳用于對(duì)FLASH發(fā)送操作命令和收發(fā)數(shù)據(jù),ALE用于指示FLASH當(dāng)前數(shù)據(jù)為地址信息,CLE用于指示當(dāng)前數(shù)據(jù)為操作命令信息,當(dāng)兩者都無(wú)效時(shí),為數(shù)據(jù)信息。CE引腳用于FLASH片選。RE和WE分別為FLASH讀、寫(xiě)控制,R/B指示FLASH命令是否已經(jīng)完成。逭里選用的是CEdon'tcare的NANDFLASH。
NANDFLASH的讀寫(xiě)操作以page方式進(jìn)行,讀寫(xiě)均為一個(gè)page,erase方式以block方式進(jìn)行。這種方式,使其讀寫(xiě)速度大大提高。
在時(shí)序方面,以讀操作為例,其時(shí)序如圖3所示。

操作過(guò)程主要分為以下幾個(gè)步驟:
(1)發(fā)送讀操作命令
CE有效,CLE有效,WE有效,I/O0~I(xiàn)/O8上面數(shù)據(jù)為command代碼數(shù)據(jù)。
(2)發(fā)送地址數(shù)據(jù)(需要讀取的FLASH地址)
CE有效,ALE有效,WE有效,I/O0~I(xiàn)/O8上面為所需地址數(shù)據(jù)。由于地址數(shù)據(jù)較多,所以需要分幾次依次發(fā)送。每次發(fā)送都需要產(chǎn)生WE信號(hào)以將其寫(xiě)入NANDFLASH芯片。
(3)等待R/B信號(hào),讀出數(shù)據(jù)
在一個(gè)地址數(shù)據(jù)寫(xiě)入FLASH之后,R/B信號(hào)即變低。等待芯片完成整個(gè)page數(shù)據(jù)讀取之后,R/B信號(hào)變高。此時(shí),CE有效,ALE,CLE均拉低,依次產(chǎn)生RE信號(hào),從I/O0~I(xiàn)/O8讀取出所需數(shù)據(jù)。
對(duì)于寫(xiě)操作和擦除操作,其基本原理相同,只是信號(hào)順序略有改變,就不再贅述。
由于使用了CPU地址線A1,A2連接CLE,ALE引腳,對(duì)CPU低2、3位地址的讀寫(xiě)操作就意味著對(duì)NANDFLASH進(jìn)行讀寫(xiě)命令/數(shù)據(jù)操作。如果此程序工作在OS上的application層的話,MMU已經(jīng)屏蔽程序?qū)Φ讓佑布闹苯釉L問(wèn),所以需要對(duì)MMU進(jìn)行設(shè)定,為NANDFLASH開(kāi)辟一塊。Memory映像區(qū)域,這樣就可以通過(guò)OS對(duì)底層的NANDFLASH進(jìn)行操作。以該系統(tǒng)為例,使用CPU的CS1引腳控制NANDFLASH的CE信號(hào),先將其映像為0x24000000地址,此時(shí),對(duì)0x24000000地址讀寫(xiě)即對(duì)NANDFLASH芯片進(jìn)行數(shù)據(jù)讀寫(xiě),而對(duì)Ox24000002地址寫(xiě)數(shù)據(jù),使CPU的A1地址引腳為高,即對(duì)NANDFLASH發(fā)送command命令,同樣,對(duì)0x24000004地址寫(xiě)數(shù)據(jù),即對(duì)NANDFLASH發(fā)送address數(shù)據(jù)。
在對(duì)NANDFLASH發(fā)送命令/數(shù)據(jù)之后,由于程序運(yùn)行速度比FLASH芯片快很多,需要在每操作之后插入若干等待周期,并利用CPU的GPIO檢測(cè)芯片R/B信號(hào)。直至芯片完成本次操作再進(jìn)行下一步操作。
需要注意的是,在對(duì)FLASH發(fā)送命令數(shù)據(jù)過(guò)程中的等待,沒(méi)有反饋信號(hào)可以檢測(cè),只能通過(guò)反復(fù)調(diào)試確定其所需等待時(shí)間。
在設(shè)計(jì)中采用CPU的CS1信號(hào)對(duì)NANDFLASH進(jìn)行CE(片選)控制。此處不能采用CPU的GPIO進(jìn)行控制,因?yàn)樵谇度胧皆O(shè)備的ARMCPU中,CPU本身采用了指令、數(shù)據(jù)自動(dòng)預(yù)讀的高速緩存技術(shù)和流水線技術(shù)。因此,當(dāng)程序在NORFLASH里面直接運(yùn)行的時(shí)候(目前絕大多數(shù)嵌入式系統(tǒng)采用的方式),在運(yùn)行任何兩段相連的代碼中間,CPU都有可能對(duì)NORFLASH進(jìn)行指令或數(shù)據(jù)的預(yù)讀操作,從而產(chǎn)生大量的RE,OE信號(hào)和地址信號(hào)。如果使用GPIO控制NANDFLASH的CE信號(hào)則無(wú)法避免這種影響。CPU的CS1信號(hào)是由CPU內(nèi)部自動(dòng)產(chǎn)生,因此在CPU預(yù)讀期間,CS1信號(hào)可以有效屏蔽NANDFLASH芯片。并且,由于NANDFLASH芯片支持CEdon'tcare模式,在CE無(wú)效的情況下,芯片本身的工作狀態(tài)并不會(huì)被干擾,由此保證了NORFLASH和NANDFLASH在同一CPU界面中互不干擾的穩(wěn)定運(yùn)行。對(duì)于CS1信號(hào)的寬度等參數(shù),也需要在實(shí)驗(yàn)中進(jìn)行調(diào)節(jié),才能保證整個(gè)系統(tǒng)快速穩(wěn)定的運(yùn)行。
4 NANDFLASH在系統(tǒng)中的讀寫(xiě)速度
經(jīng)過(guò)測(cè)試在該系統(tǒng)平臺(tái)中,OS為PalmOS5.4;CPU使用PXA270312MHz;SDRAM使用Samsung的16bdatawidthHYB25L256160AF-7.5@104MHz;NANDFLASH選用Samsung128MB8bI/ONANDFLASHK9F1G08U0A達(dá)到在文件系統(tǒng)下面的讀/寫(xiě)的速度為3MB/s,擦除的速度為65MB/s,在手持式設(shè)備中運(yùn)用性能已經(jīng)夠了。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開(kāi)發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開(kāi)啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開(kāi)關(guān)中的EMI問(wèn)題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見(jiàn)問(wèn)題分析









