SyncFlash存儲器在ARM嵌入式系統(tǒng)中的應(yīng)用
摘 要:本文在簡要介紹SyncFlash(同步Flash)存儲器的基礎(chǔ)上,著重?cái)⑹隽?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/SyncFlash">SyncFlash在基于ARM體系微處理器的嵌入式系統(tǒng)中的應(yīng)用,并介紹了采用SyncFlash設(shè)計(jì)嵌入系統(tǒng)的優(yōu)勢。
關(guān)鍵詞:SyncFlash;SDRAM;ARM微處理器;嵌入式系統(tǒng)
隨著嵌入式處理器的迅速發(fā)展,32位RISC處理器的應(yīng)用越來越廣泛,許多基于ARM核的微處理器都集成了SDRAM控制器。應(yīng)用系統(tǒng)中一般都是采用SDRAM存儲器作內(nèi)存、NOR Flash作程序存儲器。這種應(yīng)用存在著缺點(diǎn),而本文介紹的采用SyncFlash(即同步Flash存儲器)設(shè)計(jì)嵌入系統(tǒng)的方法能很好地克服這些不足。
SyncFlash存儲器
在嵌入式應(yīng)用系統(tǒng)中用作程序存儲器的器件一般是EPROM、NOR Flash、EEPROM等。大家都比較熟悉Flash 存儲器,應(yīng)用也很多,而SyncFlash存儲器相對較陌生,目前應(yīng)用也較少。SyncFlash存儲器就是在NOR Flash的基礎(chǔ)上增加了同步接口(所有信號均在時(shí)鐘上升沿鎖存),且該接口與通用SDRAM控制器接口兼容,并采用了內(nèi)部管道結(jié)構(gòu)以實(shí)現(xiàn)高速讀寫操作,如Atmel公司的AT29LS4M16 (1M 16)和Micron公司的MT28S4 M16B1LC,在133MHz時(shí)鐘時(shí)讀周期僅為5.4ns(CAS等待周期為2)。其簡化的結(jié)構(gòu)框圖如圖1所示。
SyncFlash和ARM嵌入式微處理器(如Cirrus Logic公司的EP7312)的硬件連接很簡單,直接將它連接到SDRAM總線上即可。需注意的是其RP#引腳應(yīng)和系統(tǒng)的復(fù)位信號相連,因?yàn)镾yncFlash必須先復(fù)位(RP#由低變高后100 可完成內(nèi)部初始化),才能正常工作。另外,其VCCP引腳應(yīng)和VCC相連。微處理器對SyncFlash的讀操作和讀SDRAM完全一樣,非讀操作(如寫、擦除等)須采用SCS(軟件命令序列,Software Command Sequence)來實(shí)現(xiàn),SCS由制造商提供。
運(yùn)用SyncFlash設(shè)計(jì)ARM嵌入式系統(tǒng)
采用Flash設(shè)計(jì)的ARM嵌入式系統(tǒng)
通常在設(shè)計(jì)基于ARM微處理器的嵌入式系統(tǒng)時(shí),都是采用Flash作為程序存儲器(包括引導(dǎo)程序和應(yīng)用程序),SDRAM存儲器作系統(tǒng)內(nèi)存。系統(tǒng)中還包括時(shí)鐘、復(fù)位邏輯等其他電路,結(jié)構(gòu)框圖如圖2所示。
ARM嵌入式系統(tǒng)的啟動(dòng)過程
以EP7312為例,上電后EP7312處于等待狀態(tài),由WAKEUP上升沿激活并開始運(yùn)行引導(dǎo)(BOOT)程序,引導(dǎo)程序包括微處理器外圍設(shè)備初始化、SDRAM控制器初始化、MMU(內(nèi)存管理單元)。為了提高應(yīng)用程序運(yùn)行速度,應(yīng)用程序一般都是在SDRAM中執(zhí)行,因?yàn)榕cSDRAM存儲器相比,NOR Flash的讀取速度較慢(一般大于50ns),影響執(zhí)行速度。因此引導(dǎo)程序還應(yīng)包括將應(yīng)用程序傳送到SDRAM中的代碼,并將程序指針指向應(yīng)用程序,應(yīng)用程序即開始執(zhí)行。
運(yùn)用SyncFlash設(shè)計(jì)的ARM嵌入式系統(tǒng)
由上述ARM嵌入式系統(tǒng)的啟動(dòng)過程可以看出,NOR Flash存儲器僅用作存儲程序,以保證斷電數(shù)據(jù)不丟失。將應(yīng)用程序傳送到SDRAM中之后,NOR Flash存儲器即閑置,不參與系統(tǒng)執(zhí)行。由于EP7312只具有普通SDRAM控制器,不支持SyncFlash直接啟動(dòng),采用SyncFlash來設(shè)計(jì)時(shí),框圖如圖3所示。由于SyncFlash既具有非易失性,又可直接連接到SDRAM總線,且可高速操作,即具有XIP (eXecute_In_Place)特性,因此可將應(yīng)用程序直接寫到SyncFlash,將BOOT程序固化在NOR Flash中,執(zhí)行完BOOT程序后,將指針直接指向SyncFlash中的應(yīng)用程序并執(zhí)行。
另外,有一些微處理器具有能夠直接啟動(dòng)且支持SyncFlash硬件命令序列的SDRAM控制器,如Motorola的龍珠MX1處理器。它將所有非易失存儲器的功能移植到高速SDRAM/SyncFlash存貯器總線中,且能配置成從標(biāo)準(zhǔn)異步非易失存儲器SyncFlash啟動(dòng)。采用這種處理器設(shè)計(jì)時(shí),框圖中的用于固化BOOT程序的ROM芯片也可省去。
運(yùn)用SyncFlash設(shè)計(jì)ARM嵌入式系統(tǒng)時(shí)需要注意:一是SDRAM和SyncFlash都連接在SDRAM總線上,共用SDRAM控制器,但SyncFlash用作程序存儲器,而SDRAM用作數(shù)據(jù)存儲器,因此在進(jìn)行系統(tǒng)存儲器映射時(shí),二者應(yīng)映射到兩個(gè)不同的區(qū)域;二是在使用SCS時(shí),必須將Cache禁止。
運(yùn)用SyncFlash的優(yōu)勢
根據(jù)EP7312嵌入式系統(tǒng)的啟動(dòng)過程,及應(yīng)用SyncFlash前后系統(tǒng)的結(jié)構(gòu)框圖比較,不難發(fā)現(xiàn)運(yùn)用SyncFlash設(shè)計(jì)系統(tǒng)具有以下優(yōu)勢。
提高啟動(dòng)速度
由于SyncFlash具有XIP特點(diǎn),應(yīng)用程序直接固化在SyncFlash中,在啟動(dòng)時(shí)省去了將應(yīng)用程序傳送到SDRAM中的過程,因而提高了系統(tǒng)的啟動(dòng)速度。
節(jié)省系統(tǒng)成本
一般BOOT程序的代碼都極少(幾KBytes),而應(yīng)用程序較大(可達(dá)幾MBytes),如都固化在NOR Flash中,勢必需要大容量的Flash,由上述ARM嵌入式系統(tǒng)的啟動(dòng)過程可知,只有BOOT程序在Flash中運(yùn)行,啟動(dòng)后用于存儲應(yīng)用程序的Flash實(shí)際上是冗余的,因而在運(yùn)用SyncFlash設(shè)計(jì)的系統(tǒng)中,可將存儲應(yīng)用程序的NOR Flash省去,而只用小容量的NOR Flash(或EPROM)來存儲BOOT程序即可,這樣就達(dá)到了節(jié)省系統(tǒng)成本的目的?!?/P>
參考文獻(xiàn)
1 EP7312 User誷 Manual. CIRRUS LOGIC, 2000
2 馬忠梅等. ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ). 北京航空航天大學(xué),2002
3 AT49LS4M16 SyncFlash Data Sheet. ATMEL. 2002
4 SyncFlash Design Guide for Generic SDRAM Controllers. MICRON. 2002
評論