以ARM為核心的嵌入式設(shè)備,是一種以計算機為核心的產(chǎn)品,必須要有存儲軟件的存儲器。單片機中軟件存儲在單片機芯片內(nèi)的ROM存儲器中,單片機的ROM容量很小,一般都小于1MBytes,所以ROM集成在芯片內(nèi)。PC機要求的ROM比較大,主板上啟動計算機用的BIOS存儲在主板上一片1MBytes左右的Flash ROM中,操作系統(tǒng)和應用程序存儲在硬盤中。ARM產(chǎn)品因為體積的緣故,通常都不用硬盤,但軟件的體積一般都在幾MBytes以上,通常在芯片外擴展聯(lián)接容量較大的Flash ROM存儲軟件。
Flash ROM分為兩種:NOR Flash ROM 和 NAND Flash ROM。NOR Flash ROM 用法類似于SDRAM 內(nèi)存,有地址總線、數(shù)據(jù)總線、控制總線,但是容量比較小,價格貴。NAND Flash ROM用法完全不同于SDRAM內(nèi)存,容量大,價格便宜,現(xiàn)在的U盤實際上都是用NAND Flash ROM 制作的。
根據(jù)不同的ARM芯片,使用 Flash ROM 的方法也不盡相同。ARM7 時代,一般使用 NOR Flash ROM,因為軟件體積比較小,比如S3C44B0,使用一片2MBytes的NOR Flash ROM,可以放下全部軟件:Bootloader、uCLinux內(nèi)核及文件系統(tǒng)。ARM9的芯片有兩種用法:1、有些ARM芯片只能從NOR Flash ROM啟動軟件,所以擴展兩片F(xiàn)lash ROM ,一片NOR Flash ROM存儲Bootloader和Linux內(nèi)核,一片容量大的NAND Flash ROM存儲文件系統(tǒng),常見的有AT91RM9200芯片;2、有些ARM9芯片內(nèi)有專門的硬件機制,能讓Bootloader直接從NAND Flash ROM中啟動運行,所以就只需要擴展一片NAND Flash ROM,所有軟件都放在這片 NAND Flash ROM 中,常見的有S3C2410、S3C2440。
S3C2440一般擴展聯(lián)接一片64MBytes以上的NAND Flash ROM芯片,例如 K9F1208。S3C2440能直接從NAND Flash ROM上啟動軟件的原理是:S3C2440內(nèi)有一塊4KBytes的內(nèi)置SRAM和NAND Flash ROM的硬件驅(qū)動電路,S3C2440上電啟動時,將NAND Flash ROM的前4KBytes字節(jié)內(nèi)容拷貝到內(nèi)置SRAM中,然后運行SRAM中的軟件,這樣在設(shè)計軟件時,Bootloader放在NAND Flash ROM的起始處,Bootloader的前4KBytes內(nèi)容為ARM核心的初始化和NAND Flash ROM的軟件驅(qū)動,并將整個Bootloader拷貝到SDRAM中運行,Bootloader在SDRAM運行完畢后,再從 NAND Flash ROM 中拷貝Linux內(nèi)核到SDRAM,然后運行Linux。
NAND Flash ROM芯片(例如K9F1208)的引腳很少,不像SDRAM和NOR Flash ROM那樣有專門的地址總線、數(shù)據(jù)總線、控制總線,而只有8根地址、數(shù)據(jù)復用的輸入/輸出線和若干控制線。所以NAND Flash ROM芯片與ARM芯片的聯(lián)接是專門的方法。
S3C2440和K9F1208的聯(lián)接方式介紹如下:
1、S3C2440與NAND Flash ROM聯(lián)接的相關(guān)引腳有:數(shù)據(jù)總線DATA[31:0],OM[1:0],CLE命令鎖存,ALE地址鎖存,nFCE(NAND Flash 芯片使能)、nFRE(NAND Flash 讀使能)、nFWE(NAND Flash 寫使能)、NCON(NAND Flash 設(shè)置)、FRnB(NAND Flash 芯片狀態(tài)----就緒/忙),另外還有GPG13、GPG14、GPG15用于 NAND Flash ROM 的設(shè)置。
2、K9F1208的引腳:I/O[7:1],CLE、ALE、CE、RE、WE、WP(寫保護)、R/B。
3、S3C2440與K9F1208的聯(lián)接:
S3C2440 K9F1208
DATA[7:0]---------------------I/O[7:0]
CLE------------------------------CLE
ALE------------------------------ALE
nFCE----------------------------CE
nFRE----------------------------RE
nFWE----------------------------WE
FRnB----------------------------R/B
4、特殊引腳
S3C2440:NCON(1)、GPG13(1)、GPG14(1)、GPG15(0),OM[1:0]要設(shè)置成“00”以保證S3C2440從NAND Flash ROM 啟動。
K9F1208:WP(1)
NAND Flash ROM 芯片引腳較少,與ARM芯片的聯(lián)接比較簡單,當然還需要ARM芯片支持 NAND Flash ROM。
NOR Flash ROM 芯片與ARM芯片的聯(lián)接類似于SDRAM芯片與ARM芯片聯(lián)接,不再多說。