ARM與Flash ROM
掃描二維碼
隨時(shí)隨地手機(jī)看文章
以ARM為核心的嵌入式設(shè)備,是一種以計(jì)算機(jī)為核心的產(chǎn)品,必須要有存儲(chǔ)軟件的存儲(chǔ)器。單片機(jī)中軟件存儲(chǔ)在單片機(jī)芯片內(nèi)的ROM存儲(chǔ)器中,單片機(jī)的ROM容量很小,一般都小于1MBytes,所以ROM集成在芯片內(nèi)。PC機(jī)要求的ROM比較大,主板上啟動(dòng)計(jì)算機(jī)用的BIOS存儲(chǔ)在主板上一片1MBytes左右的Flash ROM中,操作系統(tǒng)和應(yīng)用程序存儲(chǔ)在硬盤中。ARM產(chǎn)品因?yàn)轶w積的緣故,通常都不用硬盤,但軟件的體積一般都在幾MBytes以上,通常在芯片外擴(kuò)展聯(lián)接容量較大的Flash ROM存儲(chǔ)軟件。
Flash ROM分為兩種:NOR Flash ROM 和 NAND Flash ROM。NOR Flash ROM 用法類似于SDRAM 內(nèi)存,有地址總線、數(shù)據(jù)總線、控制總線,但是容量比較小,價(jià)格貴。NAND Flash ROM用法完全不同于SDRAM內(nèi)存,容量大,價(jià)格便宜,現(xiàn)在的U盤實(shí)際上都是用NAND Flash ROM 制作的。
根據(jù)不同的ARM芯片,使用 Flash ROM 的方法也不盡相同。ARM7 時(shí)代,一般使用 NOR Flash ROM,因?yàn)檐浖w積比較小,比如S3C44B0,使用一片2MBytes的NOR Flash ROM,可以放下全部軟件:Bootloader、uCLinux內(nèi)核及文件系統(tǒng)。ARM9的芯片有兩種用法:1、有些ARM芯片只能從NOR Flash ROM啟動(dòng)軟件,所以擴(kuò)展兩片F(xiàn)lash ROM ,一片NOR Flash ROM存儲(chǔ)Bootloader和Linux內(nèi)核,一片容量大的NAND Flash ROM存儲(chǔ)文件系統(tǒng),常見(jiàn)的有AT91RM9200芯片;2、有些ARM9芯片內(nèi)有專門的硬件機(jī)制,能讓Bootloader直接從NAND Flash ROM中啟動(dòng)運(yùn)行,所以就只需要擴(kuò)展一片NAND Flash ROM,所有軟件都放在這片 NAND Flash ROM 中,常見(jiàn)的有S3C2410、S3C2440。
S3C2440一般擴(kuò)展聯(lián)接一片64MBytes以上的NAND Flash ROM芯片,例如 K9F1208。S3C2440能直接從NAND Flash ROM上啟動(dòng)軟件的原理是:S3C2440內(nèi)有一塊4KBytes的內(nèi)置SRAM和NAND Flash ROM的硬件驅(qū)動(dòng)電路,S3C2440上電啟動(dòng)時(shí),將NAND Flash ROM的前4KBytes字節(jié)內(nèi)容拷貝到內(nèi)置SRAM中,然后運(yùn)行SRAM中的軟件,這樣在設(shè)計(jì)軟件時(shí),Bootloader放在NAND Flash ROM的起始處,Bootloader的前4KBytes內(nèi)容為ARM核心的初始化和NAND Flash ROM的軟件驅(qū)動(dòng),并將整個(gè)Bootloader拷貝到SDRAM中運(yùn)行,Bootloader在SDRAM運(yùn)行完畢后,再?gòu)?NAND Flash ROM 中拷貝Linux內(nèi)核到SDRAM,然后運(yùn)行Linux。
NAND Flash ROM芯片(例如K9F1208)的引腳很少,不像SDRAM和NOR Flash ROM那樣有專門的地址總線、數(shù)據(jù)總線、控制總線,而只有8根地址、數(shù)據(jù)復(fù)用的輸入/輸出線和若干控制線。所以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 寫(xiě)使能)、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(寫(xiě)保護(hù))、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 啟動(dòng)。
K9F1208:WP(1)
NAND Flash ROM 芯片引腳較少,與ARM芯片的聯(lián)接比較簡(jiǎn)單,當(dāng)然還需要ARM芯片支持 NAND Flash ROM。
NOR Flash ROM 芯片與ARM芯片的聯(lián)接類似于SDRAM芯片與ARM芯片聯(lián)接,不再多說(shuō)。