嵌入式系統(tǒng)原理與應(yīng)用 魏權(quán)利 第3版 課件 第7-12章 ARM9存儲(chǔ)器擴(kuò)展電路設(shè)計(jì)-嵌入式應(yīng)用程序設(shè)計(jì)舉例_第1頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用 魏權(quán)利 第3版 課件 第7-12章 ARM9存儲(chǔ)器擴(kuò)展電路設(shè)計(jì)-嵌入式應(yīng)用程序設(shè)計(jì)舉例_第2頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用 魏權(quán)利 第3版 課件 第7-12章 ARM9存儲(chǔ)器擴(kuò)展電路設(shè)計(jì)-嵌入式應(yīng)用程序設(shè)計(jì)舉例_第3頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用 魏權(quán)利 第3版 課件 第7-12章 ARM9存儲(chǔ)器擴(kuò)展電路設(shè)計(jì)-嵌入式應(yīng)用程序設(shè)計(jì)舉例_第4頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用 魏權(quán)利 第3版 課件 第7-12章 ARM9存儲(chǔ)器擴(kuò)展電路設(shè)計(jì)-嵌入式應(yīng)用程序設(shè)計(jì)舉例_第5頁(yè)
已閱讀5頁(yè),還剩401頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章ARM9存儲(chǔ)器擴(kuò)展電路設(shè)計(jì)1第7章ARM9存儲(chǔ)器擴(kuò)展電路設(shè)計(jì)存儲(chǔ)器是計(jì)算機(jī)或嵌入式系統(tǒng)的主要組成部分之一。

從狹義的角度來(lái)講,它是存儲(chǔ)運(yùn)行程序并且存儲(chǔ)程序在運(yùn)行過(guò)程中的數(shù)據(jù)信息的;

從廣義的角度來(lái)講,它不但包含“狹義”中的內(nèi)容,還要包含為了提高嵌入式系統(tǒng)程序的運(yùn)行效率,所采取的高速緩沖存儲(chǔ)器Cache等,這就是所謂的嵌入式存儲(chǔ)器系統(tǒng)。由于嵌入式系統(tǒng)希望在較小的硬件物理內(nèi)存儲(chǔ)器配置下,還能夠完成應(yīng)該完成的任務(wù),這就需要使用存儲(chǔ)器管理單元MMU(MemoryManagementUnit),將虛擬內(nèi)存單元的內(nèi)容分時(shí)的映射并裝入到它的物理存儲(chǔ)器中去運(yùn)行。

2(續(xù))由于A(yíng)RM微處理器主要使用在嵌入式設(shè)備中,一般很少配置體積較大的硬盤(pán)設(shè)備,因此在嵌入式設(shè)備中就需要通過(guò)NandFlash或NorFlash閃存芯片來(lái)固化、存儲(chǔ)開(kāi)發(fā)的運(yùn)行程序,并存儲(chǔ)程序執(zhí)行中的相關(guān)數(shù)據(jù)。因?yàn)殚W存的訪(fǎng)問(wèn)速度相對(duì)于同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器SDRAM(SynchronousDynamicRandomAccessMemory)要慢得多,一般是程序從閃存中啟動(dòng)運(yùn)行、完成必要的ARM系統(tǒng)初始化工作后,將其運(yùn)行的程序搬移到SDRAM中運(yùn)行,以加快程序的運(yùn)行速度。S3C2410A微處理器的存儲(chǔ)器系統(tǒng)可以擴(kuò)展任意存儲(chǔ)速度、任意總線(xiàn)寬度的存儲(chǔ)器芯片,這些都需要通過(guò)存儲(chǔ)器控制寄存器進(jìn)行設(shè)置,而且必須在A(yíng)RM系統(tǒng)剛啟動(dòng)時(shí)就要配置好,以后才方便使用。常用匯編語(yǔ)言在A(yíng)RM的啟動(dòng)文件或Bootloader啟動(dòng)引導(dǎo)文件中編寫(xiě)配置程序。347.1.1嵌入式存儲(chǔ)器的層次結(jié)構(gòu)及特點(diǎn)

1.存儲(chǔ)器的層次結(jié)構(gòu)圖層次結(jié)構(gòu)說(shuō)明:位于整個(gè)層次結(jié)構(gòu)的最頂部L0層為CPU內(nèi)部寄存器,用于加速指令的執(zhí)行速度。在S3C2410A中共有37個(gè)物理寄存器,根據(jù)異常的類(lèi)型被邏輯地分為7組。位于L1層為芯片內(nèi)部的高速緩存(cache),預(yù)取并存儲(chǔ)將要執(zhí)行的指令和數(shù)據(jù),提高指令的執(zhí)行速度。在S3C2410A芯片上集成了單獨(dú)的16KB指令

Cache和16KB數(shù)據(jù)Cache。位于L2層為芯片外的高速緩存(SRAM、DRAM、DDRAM)。由于這些緩存的讀寫(xiě)速度要遠(yuǎn)遠(yuǎn)大于Flash存儲(chǔ)器或各種ROM的存儲(chǔ)器,因此ARM系統(tǒng)的應(yīng)用程序可以在其系統(tǒng)初始化結(jié)束后,搬移到這些存儲(chǔ)器中運(yùn)行,可以說(shuō)這時(shí)它是作為主存儲(chǔ)器的。S3C2410A的Bank1~Bank7均可以外擴(kuò)SRAM,共計(jì)容量為7×128M;Bank6、Bank7也可以外擴(kuò)SDRAM,共計(jì)容量為2×128M。位于L3層為主存儲(chǔ)器(Flash、PROM、EPROM、EEPROM)。嵌入式系統(tǒng)的主存儲(chǔ)器使用外部擴(kuò)展的方式接入系統(tǒng),它是固化系統(tǒng)程序、運(yùn)行初始化程序或運(yùn)行應(yīng)用程序的存儲(chǔ)器。目前在S3C2410A微處理器中使用的是,在Bank0區(qū)外擴(kuò)NorFlash芯片,或通過(guò)微處理器提供的NandFlash接口外擴(kuò)NandFlash存儲(chǔ)器芯片。L4層為外部存儲(chǔ)器(磁盤(pán)、光盤(pán)、CF、SD卡)。目前使用SD卡的設(shè)備較多,主要用于保存大量的數(shù)據(jù)信息。562.主要特點(diǎn)●位于金字塔的層次越高,存儲(chǔ)的容量越小、速度越快、價(jià)格越貴;●位于金字塔的層次越低,存儲(chǔ)的容量越大、速度越慢、價(jià)格相對(duì)便宜。7.1.2ARM9高速緩沖存儲(chǔ)器cache1.Cache的功能

在主存儲(chǔ)器和CPU之間采用高速緩沖存儲(chǔ)器(cache)被廣泛用來(lái)提高存儲(chǔ)器系統(tǒng)的性能,許多微處理器體系結(jié)構(gòu)都把它作為其定義的一部分。cache能夠減少CPU訪(fǎng)問(wèn)內(nèi)存的平均時(shí)間,提高CPU執(zhí)行程序的速度。2.Cache的分類(lèi)Cache可以分為混合cache和獨(dú)立的數(shù)據(jù)/程序cache。在一個(gè)存儲(chǔ)系統(tǒng)中,指令預(yù)取時(shí)和數(shù)據(jù)讀寫(xiě)時(shí)使用同一個(gè)cache,這時(shí)稱(chēng)系統(tǒng)使用混合的cache;如果在一個(gè)存儲(chǔ)系統(tǒng)中,指令預(yù)取時(shí)使用的一個(gè)cache,數(shù)據(jù)讀寫(xiě)時(shí)使用的另一個(gè)cache,各自是獨(dú)立的,這時(shí)稱(chēng)系統(tǒng)使用了獨(dú)立的cache,用于指令預(yù)取的cache稱(chēng)為指令cache,用于數(shù)據(jù)讀寫(xiě)的cache稱(chēng)為數(shù)據(jù)cache。77.1.2ARM9高速緩沖存儲(chǔ)器cache(續(xù))3.Cache的操作方法當(dāng)CPU更新了cache的內(nèi)容時(shí),要將結(jié)果寫(xiě)回到主存儲(chǔ)器中,可以采用寫(xiě)通法(write-through)和寫(xiě)回法(write-back)。寫(xiě)通法:是指CPU在執(zhí)行寫(xiě)操作時(shí),必須把數(shù)據(jù)同時(shí)寫(xiě)入cache和主存儲(chǔ)器。采用寫(xiě)通法進(jìn)行數(shù)據(jù)更新的cache稱(chēng)為寫(xiě)通cache。寫(xiě)回法:是指CPU在執(zhí)行寫(xiě)操作時(shí),被寫(xiě)的數(shù)據(jù)只寫(xiě)入cache而不寫(xiě)入到主存儲(chǔ)器中。僅當(dāng)需要替換時(shí),才把已經(jīng)修改的cache塊寫(xiě)回到主存儲(chǔ)器中。采用寫(xiě)回法進(jìn)行數(shù)據(jù)更新的cache稱(chēng)為寫(xiě)回cache。87.1.3S3C2410A存儲(chǔ)器管理單元MMU

早期的計(jì)算機(jī)硬件的配置以及運(yùn)行的軟件都較小,內(nèi)存儲(chǔ)器容量可以容納當(dāng)時(shí)的程序。

隨著圖形化界面的出現(xiàn)還有用戶(hù)需求的不斷增大,應(yīng)用程序隨之膨大起來(lái),就出現(xiàn)了應(yīng)用程序過(guò)大而內(nèi)存容納不了應(yīng)用程序,通常解決的辦法就是將應(yīng)用程序分割成許多稱(chēng)為覆蓋塊(overlay)的片段。覆蓋塊0首先運(yùn)行,結(jié)束時(shí)將調(diào)用另一個(gè)覆蓋塊。

雖然覆蓋塊的交換是由操作系統(tǒng)OS(OperatingSystems)自動(dòng)完成的,但是必須由程序員把程序先進(jìn)行分割,這是一項(xiàng)很費(fèi)時(shí)、很枯燥的工作。之后不久找到了一個(gè)辦法,這就是虛擬存儲(chǔ)器(VirtualMemory)。

9(續(xù))

虛擬存儲(chǔ)器(亦稱(chēng)邏輯存儲(chǔ)器)的基本思想是程序、數(shù)據(jù)和堆棧總共占用的地址空間大小可以超過(guò)物理存儲(chǔ)器的地址空間,操作系統(tǒng)把當(dāng)前執(zhí)行的程序部分保留在物理存儲(chǔ)器中,而把其它未被使用的部分保存在磁盤(pán)中。

存儲(chǔ)器管理單元MMU(MemoryManageUnit)在A(yíng)RM的虛擬空間和物理內(nèi)存之間進(jìn)行地址轉(zhuǎn)換,將地址從邏輯空間映射到物理空間,這個(gè)轉(zhuǎn)換過(guò)程一般稱(chēng)為內(nèi)存映射。這一過(guò)程由OS自動(dòng)完成,程序員不需要參與。101.MMU主要功能

●實(shí)現(xiàn)虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射。

采用了頁(yè)式虛擬存儲(chǔ)管理,它把虛擬地址空間分成一個(gè)個(gè)固定大小的塊,每一塊稱(chēng)為一頁(yè);

把物理內(nèi)存的地址空間也分成同樣大小的頁(yè)框?!翊鎯?chǔ)器訪(fǎng)問(wèn)權(quán)限的控制?!裨O(shè)置虛擬存儲(chǔ)空間的緩沖的特性。112.虛擬存儲(chǔ)器與物理存儲(chǔ)器●嵌入式系統(tǒng)的虛擬存儲(chǔ)器大小是由CPU的地址線(xiàn)根數(shù)確定的。對(duì)于S3C2410A來(lái)講,它有32根地址線(xiàn),它的地址范圍從0x00000000~0xFFFFFFFF,地址空間的大小是232=4GB。●物理內(nèi)存儲(chǔ)器大小就是CPU具體配置的實(shí)際內(nèi)存儲(chǔ)器的大小,它是小于或等于虛擬內(nèi)存儲(chǔ)器的。例如FL2440開(kāi)發(fā)板配置的物理存儲(chǔ)器是64MB。123.頁(yè)與頁(yè)框的概念為了能夠?qū)崿F(xiàn)從虛擬存儲(chǔ)器空間到物理存儲(chǔ)器空間的映射,就必須對(duì)虛擬存儲(chǔ)器和物理存儲(chǔ)器進(jìn)行分頁(yè)(Paging)。

虛擬存儲(chǔ)器分頁(yè)的單位被稱(chēng)為頁(yè)(Page),物理存儲(chǔ)器分頁(yè)的單位稱(chēng)為頁(yè)框(Frame)。物理存儲(chǔ)器的頁(yè)框使用來(lái)裝載虛擬存儲(chǔ)器的頁(yè),它們兩者的大小必須相等,因此一個(gè)叫“Page”,另一個(gè)叫“Frame”。S3C2410A的MMU從虛擬存儲(chǔ)器到物理存儲(chǔ)器的映射提供了4種頁(yè)的劃分方式,分別是:①I(mǎi)nvalid(不使用MMU)。②Section(段):頁(yè)的大小為1MB。③CoarsePage(粗表):具有2種頁(yè)大小的劃分,其一為64KB,其二是4KB。④FinePage(細(xì)表):頁(yè)的大小為1KB。134.虛擬存儲(chǔ)器到物理存儲(chǔ)器的映射方法●假設(shè)S3C2410A系統(tǒng)的物理存儲(chǔ)器為64MB,地址范圍從0x30000000~0x33FFFFFF,以Section方式進(jìn)行映射,即頁(yè)與頁(yè)框的大小取1MB,其使用了低位的20根地址線(xiàn)(A0~A19)。●虛擬存儲(chǔ)器的頁(yè)索引(PageIndex)從0x000到0xFFF,覆蓋4GB的虛擬存儲(chǔ)器空間范圍,每一個(gè)頁(yè)中的具體地址是頁(yè)索引左移20位+偏移量;●物理存儲(chǔ)器的頁(yè)框索引(FrameIndex)是從0x300到0x33F,覆蓋了64MB的物理存儲(chǔ)器空間范圍,每一個(gè)頁(yè)框中的具體地址是頁(yè)框索引左移20位+偏移量??梢钥闯鯩MU實(shí)際上完成的是從頁(yè)索引到頁(yè)框索引的映射。144.虛擬存儲(chǔ)器到物理存儲(chǔ)器的映射方法(續(xù))154.虛擬存儲(chǔ)器到物理存儲(chǔ)器的映射方法(續(xù))圖7-2是MMU的映射過(guò)程圖。將虛擬存儲(chǔ)器的某個(gè)頁(yè)映射到物理存儲(chǔ)器的哪個(gè)頁(yè)框中,一般由操作系統(tǒng)程序控制協(xié)處理器CP15及其寄存器完成,需要詳細(xì)了解請(qǐng)參考S3C2410A手冊(cè)。這里虛擬存儲(chǔ)器的索引共有4096項(xiàng),將其某一項(xiàng)映射到物理存儲(chǔ)器的某一頁(yè)框中,從圖7-2可以看出,將其頁(yè)框索引左移20位就可以獲得Section段的基址值(SectionBase),該基址內(nèi)的具體物理存儲(chǔ)器地址等于(SectionBase<<20+偏移量)。實(shí)際使用時(shí)需要從磁盤(pán)裝載到這一頁(yè)框中。167.1.4S3C2410A的主存儲(chǔ)器的分布以及使用的相應(yīng)存儲(chǔ)器類(lèi)型

S3C2410A的主存儲(chǔ)器(內(nèi)存儲(chǔ)器)分布映射圖參見(jiàn)5.2.2節(jié)圖5-1所示。目前的最大物理存儲(chǔ)器配置為8×128MB=1GB,實(shí)際使用配置的更小。S3C2410A將1GB的內(nèi)存空間劃分為8個(gè)128MB,用Bank0~Bank7表示。Bank0~Bank7可以外擴(kuò)ROM或SRAM類(lèi),主要包含ROM、PROM、EPROM、EEPROM、FLASH、SRAM和SDRAM,以下進(jìn)行介紹。只讀程序存儲(chǔ)器ROM(Read-OnlyMemory):是最早的存儲(chǔ)器,它里面的程序需要在出廠(chǎng)時(shí)就必須固化好,用戶(hù)不可更改,而且是一次性的。可編程只讀存儲(chǔ)器PROM(ProgrammableRead-OnlyMemory):它允許用戶(hù)進(jìn)行程序的燒寫(xiě),但最多只允許寫(xiě)一次??刹脸删幊讨蛔x存儲(chǔ)器EPROM(ErasableProgrammableRead-OnlyMemory):它解決了PROM芯片只能寫(xiě)入一次的弊端,但是它的擦除是通過(guò)紫外線(xiàn)光進(jìn)行的,而且耗費(fèi)的時(shí)間很長(zhǎng),大約40分鐘。電可擦除可編程只讀存儲(chǔ)器EEPROM(Electrically-ErasableProgrammableRead-OnlyMemory):也稱(chēng)為E2PROM,它解決了EPROM的擦除問(wèn)題,而且擦/寫(xiě)速度大大加快,可以多次擦/寫(xiě),現(xiàn)在這種芯片的使用也在慢慢減少。17閃速存儲(chǔ)器FLASH(FlashMemory)簡(jiǎn)稱(chēng)閃存:它是一種不揮發(fā)性?xún)?nèi)存(Non-VolatileRAM)。閃存的物理特性與常見(jiàn)的內(nèi)存RAM既有相同的特性也有根本性的差異:

相同特性是用戶(hù)程序也可以向閃存中寫(xiě)入數(shù)據(jù),但速度相比RAM要慢一些;

根本性的差異是目前的RAM、SRAM、DRAM、SDRAM等同類(lèi)都屬于揮發(fā)性?xún)?nèi)存,只要停止電流供應(yīng)內(nèi)存中的數(shù)據(jù)便無(wú)法保持,因此每次電腦開(kāi)機(jī)都需要把數(shù)據(jù)重新載入內(nèi)存。閃存在沒(méi)有電流供應(yīng)的條件下也能夠長(zhǎng)久地保持?jǐn)?shù)據(jù),其存儲(chǔ)特性相當(dāng)于硬盤(pán),這項(xiàng)特性正是閃存得以成為各類(lèi)便攜型數(shù)字設(shè)備存儲(chǔ)介質(zhì)的基礎(chǔ)。18靜態(tài)隨機(jī)存儲(chǔ)器SRAM(StaticRandomAccessMemory):亦稱(chēng)靜態(tài)可讀/寫(xiě)隨機(jī)存儲(chǔ)器。它屬于揮發(fā)性?xún)?nèi)存,它的bit位存儲(chǔ)單元由多個(gè)晶體管耦合而成,集成度小。動(dòng)態(tài)隨機(jī)存儲(chǔ)器DRAM(DynamicRandomAccessMemory):它的一個(gè)比特存儲(chǔ)單元是由一個(gè)場(chǎng)效應(yīng)管和在其柵極對(duì)地接上一個(gè)電容器組成,因此集成度高,但工作時(shí)需要定時(shí)刷新。19同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器SDRAM(SynchronousDynamicRAM):

它是將CPU與RAM通過(guò)一個(gè)相同的時(shí)鐘鎖在一起,使CPU和RAM能夠共享一個(gè)時(shí)鐘周期,以相同的速度同步工作,每一個(gè)時(shí)鐘脈沖的上升沿便開(kāi)始傳遞數(shù)據(jù)。

后來(lái)又出現(xiàn)了雙倍數(shù)據(jù)速率DDRSDRAM(DoubleDataRateSDRAM),還有它的更新?lián)Q代產(chǎn)品,它允許在時(shí)鐘脈沖的上升沿和下降沿傳輸數(shù)據(jù),這樣不需要提高時(shí)鐘的頻率就能加倍提高SDRAM的速度。更多的內(nèi)容請(qǐng)參考其它資料。20DRAM、SDRAM存儲(chǔ)器屬于易揮發(fā)性存儲(chǔ)器,需要定期進(jìn)行刷新才能保存存儲(chǔ)的數(shù)據(jù),它是這2個(gè)RAM的最重要操作,刷新分為2種:自動(dòng)刷新AR(AutoRefresh)與自刷新SR(SelfRefresh)。AR用于微處理器在正常工作時(shí)的刷新,SR用于微處理器在空閑模式時(shí)的自動(dòng)刷新。當(dāng)前大部分的嵌入式應(yīng)用設(shè)備一般都在Bank6、Bankk7中外擴(kuò)SDRAM芯片,作為程序的運(yùn)行區(qū)和數(shù)據(jù)、堆棧區(qū)。需要注意的是,這里的RAM是當(dāng)作ROM使用的,這在PC機(jī)是最為常見(jiàn)的。21由于S3C2410A在上電啟動(dòng)時(shí),程序計(jì)數(shù)器PC的首地址是0x00000000,它是引導(dǎo)系統(tǒng)程序運(yùn)行的開(kāi)始地址,所以Bank0區(qū)必須配置程序存儲(chǔ)器作為系統(tǒng)的程序引導(dǎo)模式,如表7-1所示。OM1、OM0是S3C2410A芯片的外部引腳,根據(jù)Bank0的存儲(chǔ)器配置接為相應(yīng)的電平信號(hào),芯片上電后檢測(cè)引腳的電平信號(hào)組合讀取存儲(chǔ)器的內(nèi)容。22OM1(OperatingMode1)OM0(OperatingMode0)BootingROMDataWidth0(OM1引腳接地)0(OM0引腳接地)NandFlash0(OM1引腳接地)1(OM0引腳接高電平)16-bit1(OM1引腳接高電平)0(OM0引腳接地)32-bit1(OM1引腳接高電平)1(OM0引腳接高電平)TestingMode7.2存儲(chǔ)器控制寄存器S3C2410A可以外擴(kuò)任意訪(fǎng)問(wèn)速率、各種總線(xiàn)寬度的存儲(chǔ)器芯片。完成這項(xiàng)任務(wù)就必須配置好存儲(chǔ)器系統(tǒng)的各個(gè)控制寄存器,而且這一要?jiǎng)?wù)必須在嵌入式芯片初始化的開(kāi)始執(zhí)行,使用ARM匯編語(yǔ)言編寫(xiě)。存儲(chǔ)器控制寄存器(MemoryControlRegister)為訪(fǎng)問(wèn)外部存儲(chǔ)器空間提供了控制信號(hào),共有13個(gè)寄存器。S3C2410A微處理器的存儲(chǔ)器在整個(gè)系統(tǒng)的工作中起著舉足輕重的作用,只有清楚地了解各寄存器的作用,才能更好地進(jìn)行系統(tǒng)開(kāi)發(fā)。237.2.1存儲(chǔ)器控制寄存器1.總線(xiàn)寬度與等待寄存器BWSCON

總線(xiàn)寬度與等待寄存器BWSCON(BusWidth&WaitStatusControlRegister),用來(lái)設(shè)置各Bank區(qū)配置的存儲(chǔ)器總線(xiàn)寬度和訪(fǎng)問(wèn)周期。其使用的地址是0x48000000,可讀/可寫(xiě),初始值是0x00。它的位功能如表7-2所示。24比特位功能描述初值[31]ST7:確定Bank7的存儲(chǔ)器是否使用UB/LB控制信號(hào)。0=不使用UB/LB(對(duì)應(yīng)引腳信號(hào)nWBE[3:0])1=使用UB/LB(對(duì)應(yīng)引腳信號(hào)nBE[3:0])0[30]SW7:確定Bank7的存儲(chǔ)器是否允許等待信號(hào)。0=禁止;1=允許0[29:28]DW7:確定Bank7存儲(chǔ)器的總線(xiàn)寬度。00=8bit;01=16bit;10=32bit;11=保留00[27:4]從Bank6~Bank1每個(gè)均使用4bit,它們對(duì)應(yīng)的位功能與Bank7相同全0[3]保留0[2:1]DW0:指示Bank0存儲(chǔ)器的總線(xiàn)寬度狀態(tài)(注意是狀態(tài)信號(hào),具有只讀屬性)。01=16bit;10=32bit。狀態(tài)由引腳OM[1:0]的電平確定0[0]保留00注意:

①UB、LB分別指的是16位數(shù)據(jù)存儲(chǔ)器的高字節(jié)(UpperByte)和低字節(jié)(LowerByte)的使能端。外擴(kuò)16位SRAM時(shí)需要使用引腳信號(hào)nBE[3:0]。

②nBE[3:0]是nWBE[3:0]“與”nOE的結(jié)果。

③等待信號(hào)在外擴(kuò)速度較慢的存儲(chǔ)器時(shí)需要使能,以調(diào)節(jié)訪(fǎng)問(wèn)速度,以便正確地使用外擴(kuò)存儲(chǔ)器。252.存儲(chǔ)器塊控制寄存器BANKCONn

存儲(chǔ)器塊控制寄存器BANKCONn(BankControlRegistern)是用來(lái)控制Bank0~Bank7的片選信號(hào)nGCS0~nGCS7的工作時(shí)序。

BANKCON0~BANKCON7的屬性如表7-3所示。

BANKCON0~BANKCON5的位功能如表7-4所示。26寄存器名稱(chēng)使用地址讀寫(xiě)屬性功能描述初值BANKCON00x48000004讀/寫(xiě)控制Bank0的nGCS0時(shí)序0x0700BANKCON10x48000008讀/寫(xiě)控制Bank1的nGCS1時(shí)序0x0700BANKCON20x4800000C讀/寫(xiě)控制Bank2的nGCS2時(shí)序0x0700BANKCON30x48000010讀/寫(xiě)控制Bank3的nGCS3時(shí)序0x0700BANKCON40x48000014讀/寫(xiě)控制Bank4的nGCS4時(shí)序0x0700BANKCON50x48000018讀/寫(xiě)控制Bank5的nGCS5時(shí)序0x0700BANKCON60x4800001C讀/寫(xiě)控制Bank6的nGCS6時(shí)序0x18008BANKCON70x48000020讀/寫(xiě)控制Bank7的nGCS7時(shí)序0x1800827

BANKCON0~BANKCON5的位功能如表7-4所示。比特位功能描述初值[31:15]保留0x0[14:13]Tacs:確定在nGCSn有效前地址信號(hào)建立的時(shí)間00=0Clock;01=1Clock;01=2Clock;11=4Clock。00[12:11]Tcos:確定在nOE信號(hào)前芯片片選信號(hào)的建立時(shí)間00=0Clock;01=1Clock;01=2Clock;11=4Clock。00[10:8]Tacc:訪(fǎng)問(wèn)時(shí)間。如果啟用了nWAIT信號(hào),則Tacc>=4Clock。000=1Clock;001=2Clock;010=3Clock;011=4Clock;100=6Clock;101=8Clock;110=10Clock;111=14Clock。111[7:6]Tcoh:確定在nOE無(wú)效后,芯片選擇信號(hào)的保持時(shí)間。00=0Clock;01=1Clock;01=2Clock;11=4Clock。00[5:4]Tcah:確定在nGCSn無(wú)效后,地址信號(hào)的保持時(shí)間。00=0Clock;01=1Clock;01=2Clock;11=4Clock。00[3:2]Tacp:確定頁(yè)模式的訪(fǎng)問(wèn)周期。00=2Clock;01=3Clock;01=4Clock;11=6Clock。00[1:0]PCM:配置頁(yè)模式。00=常規(guī)每次讀寫(xiě)1data;01=4data;01=8data;11=16data。00nGCSn控制時(shí)序圖28BANKCON6和BANKCON7位功能表29比特位功能描述初值[31:17]保留0x0[16:15]MT:確定Bank6或Bank7的配置的存儲(chǔ)器類(lèi)型。00=SRAM或ROM;01=保留;10=保留;11=SDRAM11當(dāng)存儲(chǔ)器類(lèi)型為SRAM或ROM時(shí),使用以下各比特設(shè)置[14:13]Tacs:確定在nGCSn有效前地址信號(hào)建立的時(shí)間。00=0CLK;01=1CLK;01=2CLK;11=4CLK。00[12:11]Tcos:確定在nOE信號(hào)前芯片片選信號(hào)的建立時(shí)間.。00=0CLK;01=1CLK;01=2CLK;11=4Clock。00[10:8]Tacc:訪(fǎng)問(wèn)時(shí)間。如果啟用了nWAIT信號(hào),則Tacc>=4Clock。000=1Clock;001=2Clock;010=3Clock;011=4Clock;100=6Clock;101=8Clock;110=10Clock;111=14Clock。111[7:6]Tcoh:確定在nOE無(wú)效后,芯片選擇信號(hào)的保持時(shí)間。00=0Clock;01=1Clock;01=2Clock;11=4Clock。00[5:4]Tcah:確定在nGCSn無(wú)效后,地址信號(hào)的保持時(shí)間。00=0Clock;01=1Clock;01=2Clock;11=4Clock。00[3:2]Tacp:確定頁(yè)模式的訪(fǎng)問(wèn)周期。

00=2Clock;01=3Clock;01=4Clock;11=6Clock。00[1:0]PMC:配置頁(yè)模式(PageModeConfiguration)。00=常規(guī)每次讀寫(xiě)1data;01=4data;01=8data;11=16data。00當(dāng)存儲(chǔ)器類(lèi)型MT(MemoryType)為SDRAM時(shí),使用以下比特位設(shè)置[3:2]Trcd:行地址信號(hào)RAS到列地址信號(hào)CAS的延時(shí)。00=2Clock;01=3Clock;10=4Clock;11=保留;10[1:0]SCAN:列地址線(xiàn)數(shù)目。00=8bit;01=9bit;10=10bit;11=保留00

系統(tǒng)復(fù)位后,BANKCON6=BANKCON7=0x18008,表示Bank6和Bank7外接SDRAM,同時(shí)設(shè)定Trcd=10(4Clock),8位列地址線(xiàn)數(shù)目。

3.刷新控制寄存器REFRESH與Bank塊大小控制寄存器BANKSIZE

刷新控制寄存器REFRESH(REFRESHcontrolregister)用于控制SDRAM存儲(chǔ)器的自動(dòng)刷新;Bank塊大小控制寄存器BANKSIZE(BANKSIZEcontrolregister)用于設(shè)置Bank6或Bank7存儲(chǔ)器容量的大小,這2個(gè)Bank的存儲(chǔ)器大小相同,Bank7的地址與Bank6的地址連續(xù)。這2個(gè)控制寄存器的屬性如下表所示。30寄存器名稱(chēng)使用地址讀寫(xiě)屬性功能描述初值REFRESH0x48000024讀/寫(xiě)SDRAM自動(dòng)刷新控制0x0AC0000BANKSIZE0x48000028讀/寫(xiě)配置Bank6、Bank7SDRAM大小0x02REFRESH控制寄存器位功能表31比特位功能描述初值[31:24]保留0x0[23]REFEN:SDRAM刷新使能信號(hào)。0=禁止刷新;1=允許刷新1[22]TREFMD:設(shè)置SDRAM的刷新模式。0=Auto模式;1=Self模式0[21:20]Trp:設(shè)置SDRAM行RAS預(yù)充電時(shí)間。00=2Clock;01=3Clock;10=4Clock;11=未定義10[19:18]Tsrc:設(shè)置SDRAM半行周期時(shí)間。00=4Clock;01=5Clock;01=6Clock;11=7Clock。SDRAM的行周期時(shí)間Trc=Trp+Tsrc,如Trp=01,Tsrc=11,則Trc=10Clock11[17:11]保留0x0[10:0]REFCNT:設(shè)置SDRAM刷新計(jì)數(shù)器。刷新周期=(211-REFCNT+1)/HCLK例如:若刷新周期15.6us,HCLK=60MHz,則計(jì)數(shù)器值=211+1-60×15.6=111300BANKSIZE控制寄存器位功能表32比特位功能描述初值[31:8]保留0x0[7]BURST_EN:猝發(fā)使能控制。0=禁止猝發(fā)操作;1=允許猝發(fā)操作0[6]保留0[5]SCKE_EN:SDRAM省電模式使能。0=禁止;1=使用省電模式0[4]SCLK_EN:SCLK時(shí)鐘信號(hào)激活時(shí)間控制。0=總是激活;1=在訪(fǎng)問(wèn)DRAM期間激活(推薦使用,可達(dá)到節(jié)電目的)SDRAM的行周期時(shí)間Trc=Trp+Tsrc,如Trp=01,Tsrc=11,則Trc=10Clock0[3]保留0[2:0]BK76MAP:控制Bank6/Bank7存儲(chǔ)器映射。2組存儲(chǔ)器的大小相等,地址連續(xù)。010=128MB;001=64MB;000=32MB;111=16MB;110=8MB;101=4MB;100=2MB0004.SDRAM模式設(shè)置寄存器

SDRAM模式設(shè)置寄存器MRSR(SDRAMModeSetRegister)包括MRSRB6和MRSRB7.分別用來(lái)控制Bank6和Bank7地址空間的SDRAM工作模式。33寄存器名稱(chēng)使用地址讀寫(xiě)屬性功能描述初值MRSRB60x4800002C讀/寫(xiě)B(tài)ank6模式設(shè)置寄存器-MRSRB70x48000030讀/寫(xiě)B(tài)ank7模式設(shè)置寄存器-比特位功能描述初值[31:8]保留0x0[9]WBL:觸發(fā)寫(xiě)長(zhǎng)度(WriteBurstLength)。0=觸發(fā)長(zhǎng)度固定;1=保留0[8:7]TM:測(cè)試模式(TestMode)。00=設(shè)定測(cè)試模式;其它保留00[6:4]CL:列地址信號(hào)CAS反應(yīng)時(shí)間(CASLatency)。000=1Clock;010=2Clock;011=3Clock;其它保留-[3]BT:觸發(fā)類(lèi)型(BurstType)。0=連續(xù)的(固定);1=保留0[2:0]BL:觸發(fā)長(zhǎng)度(BurstLength)。000=1(固定);其它保留0007.2.2主存芯片配置編程實(shí)例34在了解了系統(tǒng)中連接的存儲(chǔ)器芯片以后,需要進(jìn)行配置才能使用,這需要在A(yíng)RM系統(tǒng)初始化程序中完成。①本開(kāi)發(fā)板使用的NorFlash閃存芯片是SST39VF1601(與AM29LV160DB的引腳完全兼容),它是具有數(shù)據(jù)線(xiàn)16根,存儲(chǔ)容量為2MB,最大可擴(kuò)展兼容量為8MB。②使用的NandFlash閃存芯片是K9F2G08,大小為256M(可兼容最大1GBNandFlash)。

③外擴(kuò)的2片SDRAM芯片HY57V561620,單片具有16根數(shù)據(jù)總線(xiàn),2片構(gòu)成32位數(shù)據(jù)總線(xiàn),使用Bank6的nGCS6作為片選信號(hào),容量為2×32MB=64MB。7.2.2主存芯片配置編程實(shí)例(續(xù))35

存儲(chǔ)器控制器共有13個(gè)特殊功能寄存器,它們的地址在空間分布上是連續(xù)的,可以將各寄存器的控制字使用內(nèi)存分配偽指令連續(xù)存放。BWSCON只需要設(shè)置[27:24]位,Bank0上接入NorFlash不需要配置,因?yàn)檫@里只有狀態(tài)信息位;具體代碼如下:SMRDATADCD0x22111111;Bank0~Bank5數(shù)據(jù)線(xiàn)為16位,Bank6、Bank7數(shù)據(jù)線(xiàn)為32位DCD0x700;nGCS0,Bank0在系統(tǒng)啟動(dòng)引導(dǎo)時(shí)就必須使用,可以對(duì)閃存Flash直接進(jìn)行訪(fǎng)問(wèn)DCD0x700;nGCS1,使用默認(rèn)初值(未使用)DCD0x700;nGCS2,使用默認(rèn)初值(未使用)DCD0x700;nGCS3,使用默認(rèn)初值(未使用)DCD0x700;nGCS4,使用默認(rèn)初值(未使用)DCD0x700;nGCS5,使用默認(rèn)初值(未使用)DCD0x18005;nGCS6:接SDRAM芯片RAS到CAS的延時(shí)Trcd=3Clock,列地址線(xiàn)SCAN=9bitDCD0x18008;nGCS7,使用默認(rèn)初值(未使用)DCD0xa803f4;REFRESH:REFEN=1,TREFMD=0,Trp=2,Tsrc=2,REFCNT=0x3f4

DCD0x31;BANKSIZE:SCKE_EN=1;SCLK=1;BK76MAP=1(64MB)

DCD0x30;MRSR6:CL=3Clock,其它使用固定值或保留值

DCD0x30;MRSR7:CL=3Clock,其它使用固定值或保留值7.2.2主存芯片配置編程實(shí)例(續(xù))36nGCS0的數(shù)據(jù)線(xiàn)寬度由S3C2410A的外部引腳OM[1:0]確定,不需要在程序中進(jìn)行配置。主存儲(chǔ)器的配置匯編程序代碼如下。LDRR0,=SMRDATA;存儲(chǔ)器配置數(shù)據(jù)首地址→R0LDRR1,=0x48000000;存儲(chǔ)器配置寄存器首地址→R1

ADDR2,R0,#520LDRR3,[R0],#4;R3←[R0],R0←R0+4

STRR3,[R1],#4;[R1]←R3,R1←R1+4

CMPR2,R0

BNE%B0;寫(xiě)入未完成,向前轉(zhuǎn)移到標(biāo)號(hào)0處7.38/16/32位內(nèi)存芯片擴(kuò)展設(shè)計(jì)

●ARM微處理器的體系結(jié)構(gòu)通過(guò)存儲(chǔ)器控制寄存器的設(shè)置,就可支持8位/16位/32位的存儲(chǔ)器系統(tǒng),除Bank0以外,其它各Bank可以構(gòu)建8位的存儲(chǔ)器系統(tǒng),或16位的存儲(chǔ)器系統(tǒng),或32位的存儲(chǔ)器系統(tǒng)。32位的存儲(chǔ)器芯片具有較高的性能,但是價(jià)格昂貴很少使用。16位的存儲(chǔ)器芯片則在成本及功耗方面占有優(yōu)勢(shì),而8位的存儲(chǔ)器芯片一般在低端領(lǐng)域使用?!馭3C2410A處理器采用8位數(shù)據(jù)總線(xiàn),處理器的A0地址線(xiàn)與存儲(chǔ)器的A0地址線(xiàn)相接;

采用16位數(shù)據(jù)總線(xiàn)時(shí),處理器的A1地址與存儲(chǔ)器的A0地址線(xiàn)相接,通過(guò)芯片的UB、LB引腳分別訪(fǎng)問(wèn)它的高位字節(jié)數(shù)據(jù)和地位字節(jié)數(shù)據(jù)。

采用32位數(shù)據(jù)總線(xiàn)時(shí),處理器的A2地址與存儲(chǔ)器的A0地址線(xiàn)相接,通過(guò)ARM提供的控制信號(hào)訪(fǎng)問(wèn)32位存儲(chǔ)器字中的4個(gè)字節(jié)數(shù)據(jù)。處理器S3C2410A的地址線(xiàn)與存儲(chǔ)器的地址線(xiàn)連接方法如表7-11所示。37●處理器地址線(xiàn)與存儲(chǔ)器地址線(xiàn)連接方法38存儲(chǔ)器引腳8位總線(xiàn)時(shí)處理器地址線(xiàn)引腳16位總線(xiàn)時(shí)處理器地址線(xiàn)引腳32位總線(xiàn)時(shí)處理器地址線(xiàn)引腳A0A0A1A2A1A1A2A3…………7.3.1八位存儲(chǔ)器芯片擴(kuò)展設(shè)計(jì)

由于8位存儲(chǔ)器的典型性,有必要在此介紹如何利用8位存儲(chǔ)器構(gòu)成8位、16位、32位的存儲(chǔ)器系統(tǒng)。1.8位數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng)

構(gòu)成8位數(shù)據(jù)總線(xiàn)系統(tǒng)的信號(hào)連接如圖7-4(a)所示。●存儲(chǔ)器的允許輸出端nOE端接S3C2410A的nOE引腳;●存儲(chǔ)器的寫(xiě)信號(hào)nWE端接S3C2410A的nWE引腳;●存儲(chǔ)器的片選信號(hào)nCE端接S3C2410A的nGCSn引腳;●存儲(chǔ)器的地址線(xiàn)…A1A0與S3C2410A的地址線(xiàn)…A1A0相連;●存儲(chǔ)器的8位數(shù)據(jù)總線(xiàn)[DQ7~DQ0]與S3C2410A的低8位數(shù)據(jù)總線(xiàn)[DATA7~DATA0]相連。

注意:此時(shí)應(yīng)將BWSCON中的DWn設(shè)置為00,即選擇8位總線(xiàn)方式;控制使能UB/LB=0禁止,nWBE0~nWBE3產(chǎn)生有效信號(hào)。39由8位存儲(chǔ)器構(gòu)成的8/16存儲(chǔ)器系統(tǒng)40(a)8位存儲(chǔ)器系統(tǒng)的構(gòu)成(b)16位存儲(chǔ)器系統(tǒng)的構(gòu)成2.16位數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng)

兩片8位的存儲(chǔ)器以并聯(lián)的方式構(gòu)建16位的存儲(chǔ)器系統(tǒng),其中一片為高8位,另一片為低8位,將兩片存儲(chǔ)器作為一個(gè)整體配置到同一Bank中?!?片存儲(chǔ)器地址線(xiàn)…A1A0均與S3C2410A的地址總線(xiàn)…A2A1相連?!?片存儲(chǔ)器的允許輸出端nOE端均接到S3C2410A的nOE引腳?!竦?位存儲(chǔ)器的寫(xiě)信號(hào)nWE端接S3C2410A的nWBE0引腳,用于寫(xiě)入處理器的低字節(jié)數(shù)據(jù);高8位存儲(chǔ)器的寫(xiě)信號(hào)nWE端接S3C2410A的nWBE1引腳,用于寫(xiě)入處理器的高字節(jié)數(shù)據(jù)?!?片存儲(chǔ)器的片選信號(hào)nCE端均與S3C2410A的nGCSn引腳相連。低8位存儲(chǔ)器的8位數(shù)據(jù)總線(xiàn)[DQ7~DQ0]與S3C2410A的低8位數(shù)據(jù)總線(xiàn)[DATA7~DATA0]相連,高8位存儲(chǔ)器的8位數(shù)據(jù)總線(xiàn)[DQ7~DQ0]與S3C2410A的高8位數(shù)據(jù)總線(xiàn)[DATA15~DATA8]相連。

注意:此時(shí)應(yīng)將BWSCON中的DWn設(shè)置為01,即選擇16位總線(xiàn)方式;控制使能UB/LB=0禁止,nWBE0~nWBE3產(chǎn)生有效信號(hào)。413.32位數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng)

由4片8位存儲(chǔ)器芯片構(gòu)成32位數(shù)據(jù)總線(xiàn)系統(tǒng)的信號(hào)連接如下圖所示?!?片8位的存儲(chǔ)器以并聯(lián)的方式構(gòu)建32位的存儲(chǔ)器系統(tǒng),其中兩片為高16位,兩片為低16位,將4片存儲(chǔ)器作為一個(gè)整體配置到同一Bank中?!袼写鎯?chǔ)器的地址線(xiàn)…A1A0均與S3C2410A的地址總線(xiàn)…A3A2相連?!竦?位存儲(chǔ)器的nWE端連接S3C2410A的nWBE0引腳,控制低字節(jié)數(shù)據(jù)的寫(xiě)入;次低8位存儲(chǔ)器的nWE端接S3C2410A的nWBE1引腳,控制次低字節(jié)數(shù)據(jù)的寫(xiě)入;次高8位存儲(chǔ)器的nWE端接S3C2410A的nWBE2引腳,控制次高字節(jié)數(shù)據(jù)的寫(xiě)入;高8位存儲(chǔ)器的nWE端接S3C2410A的nWBE3引腳,控制高字節(jié)數(shù)據(jù)的寫(xiě)入。●4片存儲(chǔ)器的允許輸出端nOE端均接到S3C2410A的nOE引腳。●4片存儲(chǔ)器的片選信號(hào)nCE端均與S3C2410A的nGCSn引腳相連。

注意:此時(shí)應(yīng)將BWSCON中的DWn設(shè)置為10,即選擇32位總線(xiàn)方式;控制使能UB/LB=0禁止,nWBE0~nWBE3產(chǎn)生有效信號(hào)。42由4片8位存儲(chǔ)器構(gòu)成的32位存儲(chǔ)器系統(tǒng)437.3.2十六位存儲(chǔ)器芯片擴(kuò)展設(shè)計(jì)

1.16位數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng)

由16位數(shù)據(jù)線(xiàn)存儲(chǔ)器芯片構(gòu)成16位總線(xiàn)存儲(chǔ)器系統(tǒng)的信號(hào)連接如下:●存儲(chǔ)器地址線(xiàn)…A1A0與S3C2410A的地址線(xiàn)…A2A1相連;●存儲(chǔ)器的16位數(shù)據(jù)線(xiàn)[DQ15~DQ0]與處理器S3C2410A的16位數(shù)據(jù)總線(xiàn)[DATA15~DATA0]相連;●采用ROM系統(tǒng)時(shí),存儲(chǔ)器的寫(xiě)信號(hào)nWE、允許讀信號(hào)nOE、片選信號(hào)nCE分別連接到S3C2410A的寫(xiě)信號(hào)nWE、允許讀信號(hào)nOE、Bankn組的選擇信號(hào)GCSn,如圖7-6(a)所示;4416位存儲(chǔ)器系統(tǒng)的結(jié)構(gòu)圖45(a)16位ROM存儲(chǔ)器系統(tǒng)(b)16位SRAM存儲(chǔ)器系統(tǒng)(c)16位SDRAM存儲(chǔ)器系統(tǒng)1.16位數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng)(續(xù))●采用SRAM系統(tǒng)時(shí),還需連接存儲(chǔ)器的nUB、nLB到處理器的nBE1、nBE0,其它信號(hào)線(xiàn)的連接如圖7-6(b)所示。注意:此時(shí)使BWSCON中UB/LB=1控制信號(hào)使能,產(chǎn)生nBE1、nBE0來(lái)控制存儲(chǔ)器的高字節(jié)、低字節(jié)數(shù)據(jù)的操作;●采用SDRAM系統(tǒng)時(shí),需保證存儲(chǔ)器的LDQM、UDQM、SCKE、SCLK、nWE、nSRAS、nSCAS、nSCS的正確連接,圖7-6(c)中存儲(chǔ)器的nSCS與處理器的nSCS0相連,映射到了Bank6。注意:以上應(yīng)將BWSCON中的DWn設(shè)置為01,即選擇16位總線(xiàn)方式,并保證其余信號(hào)線(xiàn)的正確連接。46

2.32位數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng)

使用兩片16位存儲(chǔ)器芯片以并聯(lián)的方式構(gòu)建32位的數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng),其中一片為高16位,另一片為低16位,將兩片存儲(chǔ)器作為一個(gè)整體配置到Bankn。構(gòu)成32位數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng)的信號(hào)連接如下:●地址線(xiàn)…A1A0與與S3C2410A的地址線(xiàn)…A3A2相連;●低半字存儲(chǔ)器的16位數(shù)據(jù)總線(xiàn)[DQ15~DQ0]與S3C2410A的低16位數(shù)據(jù)總線(xiàn)[DATA15~DATA0]相連,高半字存儲(chǔ)器的16位數(shù)據(jù)總線(xiàn)[DQ15~DQ0]與S3C2410A的數(shù)據(jù)總線(xiàn)[DATA31~DATA16]相連。

472.32位數(shù)據(jù)總線(xiàn)存儲(chǔ)器系統(tǒng)(續(xù))●在下頁(yè)圖(a)所示的32位SRAM系統(tǒng)中,低16位的nLB、低16位的nUB、高16位的nLB、高16位的nUB分別連接到處理器的nBE0~nBE3。兩片存儲(chǔ)器的nCS相連到同一nGCSn。注意:BWSCON中使能控制信號(hào)UB/LB=1允許,產(chǎn)生nBE0~nBE3信號(hào)用以分別操作低字節(jié)、次低字節(jié)、次高字節(jié)和高字節(jié)數(shù)據(jù)。●在下頁(yè)圖(b)所示的32位數(shù)據(jù)總線(xiàn)SDRAM系統(tǒng)中,存儲(chǔ)器低16位的LDQM、低16位的UDQM、高16位的LDQM、高16位的UDQM分別連接到處理器的DQM0~DQM3兩片存儲(chǔ)器的nSCS相接到nSCS0。●余信號(hào)連接與16位存儲(chǔ)器連接方式相似。注意:此時(shí)應(yīng)將BWSCON中的DWn設(shè)置為10,即選擇32位總線(xiàn)方式。4832位存儲(chǔ)器系統(tǒng)的構(gòu)成圖49(a)32位SRAM存儲(chǔ)器系統(tǒng)(b)32位SDRAM存儲(chǔ)器系統(tǒng)7.4NorFlash閃存接口設(shè)計(jì)

Flash存儲(chǔ)器是一種可在系統(tǒng)中進(jìn)行電擦寫(xiě)、掉電后信息不丟失的存儲(chǔ)器。它具有低功耗、大容量、擦寫(xiě)速度快、可整片或分扇區(qū)在線(xiàn)進(jìn)行系統(tǒng)編程(燒寫(xiě))或擦除等特點(diǎn),并且可由內(nèi)部嵌入的算法完成對(duì)芯片的操作,因而在各種嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。作為一種非易失性存儲(chǔ)器,F(xiàn)lash在系統(tǒng)中通常用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶(hù)數(shù)據(jù)等。常用的Flash為8位或16位的數(shù)據(jù)寬度、編程電壓為3.3V,主要的生產(chǎn)廠(chǎng)商為ATMEL、AMD、HYUNDAI等,他們生產(chǎn)的同型器件一般具有相同的電氣特性和封裝形式,可以通用。507.4.1NorFlash與NandFlash的區(qū)別●NorFlash和NandFlash是目前市場(chǎng)上2種主要的非易失閃存技術(shù)。Intel在1988年首先開(kāi)發(fā)NorFlash技術(shù),徹底改變了原先有EPROM和EEPROM一統(tǒng)天下的局面,緊接著1989年,東芝公司發(fā)表了NandFlash結(jié)構(gòu),強(qiáng)調(diào)降低每位的成本,更高的性能,并且向磁盤(pán)一樣可以通過(guò)接口輕松升級(jí)。NandFlash存儲(chǔ)器經(jīng)??梢耘cNorFlash存儲(chǔ)器互換使用。許多業(yè)內(nèi)人士也搞不清楚Nand

閃存技術(shù)相對(duì)于Nor技術(shù)的優(yōu)越之處,因此大多數(shù)情況下閃存只是用來(lái)存儲(chǔ)少量的代碼,這時(shí)Nor閃存更適合一些,而Nand

則是高數(shù)據(jù)存儲(chǔ)密度的理想解決方案?!馧orFlash的特點(diǎn)是XIP(eXecuteInPlace,芯片內(nèi)執(zhí)行)特性,這樣應(yīng)用程序可以直接在Flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NorFlash的傳輸效率很高,在1~4MB的小容量時(shí)具有很高的成本效益,但是很低的寫(xiě)入和擦除速度大大影響了它的性能?!馧and

Flash結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲(chǔ)密度,并且寫(xiě)入和擦除的速度也很快。應(yīng)用Nand

的困難在于Flash的管理和特殊的系統(tǒng)接口。511.性能比較任何Flash器件的寫(xiě)入操作只能在空的或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫(xiě)入操作之前必須先進(jìn)行擦除。NandFlash器件執(zhí)行擦除操作十分簡(jiǎn)單,而NorFlash則要求在進(jìn)行寫(xiě)入前先要將目標(biāo)塊內(nèi)所有的位都寫(xiě)為0。由于擦除NorFlash器件時(shí)是以64~128KB的塊進(jìn)行的,執(zhí)行一個(gè)寫(xiě)入/擦除操作的時(shí)間為5s。于此相反,擦除NandFlash器件是以8~32KB的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms。執(zhí)行擦除時(shí)塊尺寸的不同進(jìn)一步拉大了NorFlash和NandFlash之間的性能差距。統(tǒng)計(jì)表明,對(duì)于給定的一套寫(xiě)入操作,尤其是更新小文件時(shí),在基于NorFlash的單元中進(jìn)行需要更多的擦除操作。這樣,當(dāng)選擇存儲(chǔ)解決方案時(shí),設(shè)計(jì)師必須權(quán)衡以下各項(xiàng)因素:NandFlash的寫(xiě)入速度比NorFlash快很多(NandFlash的4ms擦除速度比NorFlash的5s快);NorFlash的讀速度比NandFlash稍快一些;大多數(shù)寫(xiě)入操作需要先進(jìn)行擦除操作,NandFlash的擦除單元更小,相應(yīng)的擦除電路也少。522.容量和成本NandFlash的單元尺寸幾乎是NorFlash器件的一半,由于生產(chǎn)過(guò)程更為簡(jiǎn)單,NandFlash結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量,也就相應(yīng)地降低了價(jià)格。在NandFlash閃存中每個(gè)塊的最大擦寫(xiě)次數(shù)是100萬(wàn)次,而NorFlash的擦寫(xiě)次數(shù)是10萬(wàn)次。NorFlash占據(jù)了容量為1~16MB閃存市場(chǎng)的大部分,而NandFlash只是用在8~1GB的產(chǎn)品中,這說(shuō)明NorFlash主要應(yīng)用在代碼存儲(chǔ)介質(zhì)中,NandFlash同時(shí)也適合于數(shù)據(jù)存儲(chǔ)。NandFlash在CompactFlash、SecureDigital、PCCard和MMC存儲(chǔ)卡市場(chǎng)上所占份額最大。533.接口差別NorFlash帶有SRAM接口,有足夠的地址引腳來(lái)尋址,可以很容易地存取其內(nèi)部的每一個(gè)字符。基于NorFlash的閃存使用非常方便,可以像其它存儲(chǔ)器那樣連接,并可以在上面直接運(yùn)行代碼。NandFlash器件需要用復(fù)雜的I/O來(lái)串行存取數(shù)據(jù)(各個(gè)產(chǎn)品或廠(chǎng)商的方法可能各不相同,)8個(gè)引腳用來(lái)傳遞控制、地址、和數(shù)據(jù)信息。NandFlash的讀/寫(xiě)操作采用512字節(jié)的塊,這與硬盤(pán)管理操作類(lèi)似,很自然地,基于NandFlash的存儲(chǔ)器就可以取代硬盤(pán)或其它塊設(shè)備。在使用NandFlash器件時(shí),必須先寫(xiě)入驅(qū)動(dòng)程序后,才能繼續(xù)執(zhí)行其它操作。向NandFlash器件寫(xiě)入信息需要相當(dāng)?shù)募记?,因?yàn)樵O(shè)計(jì)師決不能向壞塊寫(xiě)入信息,這就意味著在NandFlash器件上自始至終都必須進(jìn)行虛擬映射。幸運(yùn)的是,S3C2410A微處理器支持NandFlash接口,這大大方便了NandFlash器件在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用。547.4.2NorFlash實(shí)用電路設(shè)計(jì)●以開(kāi)發(fā)板上的閃存NorFlash存儲(chǔ)器SST39VF1601為例,簡(jiǎn)要介紹一下該閃存儲(chǔ)器的基本特性。SST39LV1601是一種常見(jiàn)的NorFlash存儲(chǔ)器,單片存儲(chǔ)容量為2MB,工作電壓為2.7~3.6V,采用48腳TSOP封裝或48腳TFBG封裝,16位數(shù)據(jù)寬度,以16位(半字模式)數(shù)據(jù)寬度的方式工作?!馭ST39VF1601僅需3.3V電壓即可完成系統(tǒng)的編程與擦除操作,通過(guò)對(duì)其內(nèi)部的命令寄存器寫(xiě)入標(biāo)準(zhǔn)命令序列,可對(duì)Flash進(jìn)行編程、整片擦除、按扇區(qū)擦除以及其它操作。邏輯框圖如圖7-8所示,引腳信號(hào)功能表如表7-12所示。55表7-12SST39VF1601的引腳信號(hào)功能56引腳類(lèi)型描述A[19:0]I20根地址總線(xiàn)A19~A0。DQ[15:0]I/O(有三態(tài)功能)數(shù)據(jù)總線(xiàn),在讀/寫(xiě)操作時(shí)提供16位的數(shù)據(jù)總線(xiàn)寬度/CEI片選信號(hào),低電平有效。當(dāng)對(duì)SST39VF1601進(jìn)行讀/寫(xiě)操作時(shí),該引腳必須為低電平;當(dāng)為高電平時(shí),芯片處于高阻狀態(tài)。/OEI允許輸出使能,低電平有效。/WEI寫(xiě)使能,低電平有效。當(dāng)對(duì)SST39VF1601進(jìn)行編程和擦除操作時(shí),控制相應(yīng)的寫(xiě)命令。VDD—3.3V電源。VSS—接地。

閃存SST39VF1601存儲(chǔ)器芯片與微處理器S3C2410A的硬件連接同一般的存儲(chǔ)器相同如圖7-9所示。577.5閃存NandFlash存儲(chǔ)器接口設(shè)計(jì)由于NorFlash的價(jià)格相對(duì)較高,而NandFlash和SDRAM的價(jià)格相對(duì)低一些,這導(dǎo)致了用戶(hù)在NandFlash中存儲(chǔ)系統(tǒng)程序代碼并引導(dǎo)系統(tǒng)啟動(dòng)(同時(shí)它也可以作為輔助存儲(chǔ)器使用,亦稱(chēng)電子盤(pán)),在SDRAM中運(yùn)行系統(tǒng)程序。S3C2410A支持NandFlash的自動(dòng)啟動(dòng)引導(dǎo),內(nèi)置專(zhuān)用的NandFlash接口控制器,不需要使用Bank0的片選nGCS0。當(dāng)S3C2410A的引腳OM1和OM0均接為低電平時(shí),S3C2410A微處理器便可以從NandFlash啟動(dòng),NandFlash的開(kāi)始4KB的代碼會(huì)被自動(dòng)地復(fù)制到其內(nèi)部的4KB小石頭區(qū)域SRAM中,啟動(dòng)引導(dǎo)系統(tǒng)運(yùn)行程序。需要使用這4KB的代碼將更多的代碼從NandFlash中拷貝到主存儲(chǔ)器SDRAM中去運(yùn)行。NandFlash可以利用硬件糾錯(cuò)碼ECC(ErrorCheckingandCorrecting)對(duì)數(shù)據(jù)的正確性進(jìn)行校驗(yàn)。錯(cuò)誤檢查和糾錯(cuò)碼ECC,能糾正單比特錯(cuò)誤和檢測(cè)雙比特錯(cuò)誤,詳細(xì)更多請(qǐng)參照相關(guān)資料。587.5.1NandFlash的結(jié)構(gòu)組成1.S3C2410A內(nèi)部NandFlash控制器

微處理器S3C2410A內(nèi)部集成了8位的NandFlash控制器,如圖7-10所示?!馧andFlash控制器的接口引腳分為3類(lèi):I/O引腳、控制引腳和狀態(tài)引腳。其中I/O引腳高度復(fù)用,既用作地址總線(xiàn)、數(shù)據(jù)總線(xiàn),又用于命令輸入信號(hào)線(xiàn)。●從圖7-10可以看出,接口引腳中有8個(gè)I/O引腳(I/O0~I/O7),用來(lái)輸出地址、輸出命令、輸入/輸出數(shù)據(jù),控制信號(hào)引腳有5個(gè),其中CLE(CommandLatchEnable)為命令鎖存使能控制信號(hào);ALE(AddressLatchEnable)為地址鎖存使能控制信號(hào);nCE(ChipEnable)為片選信號(hào);nRE(ReadEnable)和nWE(WriteEnable)分別是讀使能和寫(xiě)使能信號(hào);R/nB(Ready/Busy)是準(zhǔn)備就緒或者忙狀態(tài)信號(hào)。當(dāng)R/nB=0時(shí)表示“忙”程序不能對(duì)芯片進(jìn)行操作,當(dāng)R/nB=1時(shí)表示準(zhǔn)備就緒,可以操作該芯片。59602.NandFlash芯片的內(nèi)部數(shù)據(jù)結(jié)構(gòu)目前市場(chǎng)上常見(jiàn)的NandFlash芯片有三星公司的K9F1208、K9F1G08、K9F2G08等。K9F1208、K9F1G08、K9F2G08存儲(chǔ)有效數(shù)據(jù)頁(yè)的大小分別是512字節(jié),2K字節(jié)、2K字節(jié),它們的容量分別是64MB、128MB、256MB。它們?cè)趯ぶ贩绞缴嫌幸欢ú町悾猿绦虼a不通用。K9F1208芯片的容量為64MB(512Mb),工作電壓為2.7V~3.6V,內(nèi)部存儲(chǔ)器結(jié)構(gòu)為528字節(jié)×32頁(yè)×4096塊(Block)。每頁(yè)(Page)的大小是528字節(jié),其中前512字節(jié)存放有效數(shù)據(jù),后16字節(jié)作為輔助數(shù)據(jù)存儲(chǔ)器,用來(lái)存放ECC代碼、壞塊信息和文件系統(tǒng)代碼等。64MB的容量被分為4096塊,每塊32頁(yè)。K9F1208芯片的64MB使用地址線(xiàn)A25A24…A14A13…A9A8A7…A1A0表示其各字節(jié)單元地址,它的組成分為3部分:塊地址(BlockAddress)、頁(yè)地址(PageAddress)、列地址(ColumnAddress)。A25~A14是12根塊地址線(xiàn),A13~A9是5根頁(yè)地址線(xiàn),A8~A0是頁(yè)地址線(xiàn),A7~A0是半頁(yè)單元地址線(xiàn)。當(dāng)A8=0時(shí)代表的是0~255的1stHalfPage地址單元地址,當(dāng)A8=1時(shí)代表的是256~511的2ndHalfPage地址單元地址。注意:芯片一般要求是按頁(yè)進(jìn)行讀寫(xiě)的,但是當(dāng)從芯片中讀取數(shù)據(jù)時(shí),分為2個(gè)半頁(yè)進(jìn)行讀取,讀取1stHalfPage使用命令0x00代替A8=0;讀取2ndHalfPage使用命令0x01代替A8=1。因此發(fā)送地址信號(hào)時(shí)按字節(jié)分為A0~A7、A9~A16、A17~A24、A25,即采用4步尋址法。613.NandFlash芯片的操作過(guò)程與時(shí)序圖該芯片內(nèi)有一個(gè)容量為528字節(jié)的靜態(tài)寄存器,稱(chēng)為頁(yè)寄存器,用來(lái)在讀/寫(xiě)數(shù)據(jù)時(shí)作為緩沖區(qū)使用。寫(xiě)入數(shù)據(jù)或讀取數(shù)據(jù)可以在寄存器和存儲(chǔ)器陣列中按528字節(jié)的順序遞增訪(fǎng)問(wèn)。當(dāng)對(duì)芯片的某一頁(yè)進(jìn)行讀寫(xiě)時(shí),其數(shù)據(jù)首先被該緩沖區(qū)中,通過(guò)這個(gè)緩沖區(qū)與其它芯片進(jìn)行數(shù)據(jù)交換,片內(nèi)的讀寫(xiě)操作由片內(nèi)處理器自動(dòng)完成。以下僅介紹標(biāo)準(zhǔn)頁(yè)的讀寫(xiě)操作流程,其他的操作參見(jiàn)相關(guān)資料。請(qǐng)參考Word文檔。62⑴讀取頁(yè)數(shù)據(jù)的過(guò)程與時(shí)序圖K9F1208芯片讀取頁(yè)數(shù)據(jù)的過(guò)程如下:

●發(fā)送命令階段。在片選信號(hào)/CE有效的情況下,首先命令鎖存信號(hào)CLE有效,此時(shí)寫(xiě)信號(hào)/WE有效,芯片準(zhǔn)備好信號(hào)R/B是高電平,表示可以對(duì)芯片進(jìn)行操作。之后向I/O端口發(fā)送讀頁(yè)命令0x00或0x01,表示進(jìn)行的是讀操作,在/WE的上升沿將命令鎖存到芯片內(nèi)部命令寄存器。命令0x00表示是讀512字節(jié)中的0~255字節(jié),0x01表示讀每頁(yè)512字節(jié)中的256~511字節(jié)。

●發(fā)送地址階段。此時(shí)片選信號(hào)/CE有效,地址鎖存信號(hào)ALE有效,連續(xù)發(fā)送4個(gè)字節(jié)地址,在每個(gè)寫(xiě)入信號(hào)/WE的上升沿將地址信息鎖存,K9F1208的地址寄存器接收到地址信號(hào)后,R/B信號(hào)將維持“忙”狀態(tài)一段時(shí)間,最后進(jìn)入到準(zhǔn)備好狀態(tài)。

●數(shù)據(jù)輸出階段。R/B=1芯片準(zhǔn)備就緒,此時(shí)每當(dāng)讀信號(hào)/RE出現(xiàn)一個(gè)下降沿時(shí),就會(huì)讀出字節(jié)數(shù)據(jù),直到將頁(yè)數(shù)據(jù)讀完。

讀出頁(yè)數(shù)據(jù)的時(shí)序如圖7-11所示。63圖7-11讀取頁(yè)數(shù)據(jù)時(shí)序圖64⑵寫(xiě)入頁(yè)數(shù)據(jù)的過(guò)程與時(shí)序圖

●發(fā)送寫(xiě)數(shù)據(jù)起始命令階段。在片選信號(hào)/CE有效的情況下,首先命令鎖存信號(hào)CLE有效,此時(shí)寫(xiě)信號(hào)/WE有效,芯片準(zhǔn)備好信號(hào)R/B是高電平,表示可以對(duì)芯片進(jìn)行操作。之后向I/O端口發(fā)送寫(xiě)命令0x80,表示進(jìn)行的是寫(xiě)操作,在/WE的上升沿將命令鎖存到芯片內(nèi)部命令寄存器。

●發(fā)送地址階段。片選信號(hào)/CE保持有效,地址鎖存信號(hào)ALE有效,連續(xù)發(fā)送4個(gè)字節(jié)的地址,在每個(gè)寫(xiě)信號(hào)/WE的上升沿保存地址到芯片內(nèi)部地址寄存器。

●數(shù)據(jù)寫(xiě)入階段。此時(shí)當(dāng)寫(xiě)信號(hào)/WE為有效低電平時(shí),輸入一個(gè)字節(jié)數(shù)據(jù),芯片在每個(gè)/WE的上升沿接收數(shù)據(jù),直到將頁(yè)中的所有數(shù)據(jù)寫(xiě)完?!癜l(fā)送寫(xiě)數(shù)據(jù)結(jié)束命令0x10。鎖存命令的過(guò)程與發(fā)送起始命令相同,之后R/B=0維持“忙”狀態(tài)一段時(shí)間。當(dāng)R/B=1時(shí),就可對(duì)芯片進(jìn)行下一次操作。寫(xiě)入頁(yè)數(shù)據(jù)的時(shí)序如圖7-12所示。65圖7-12寫(xiě)入頁(yè)數(shù)據(jù)時(shí)序圖667.5.2NandFlash的引導(dǎo)、工作模式S3C2410A內(nèi)置的NandFlash控制器支持NandFlash模式和自動(dòng)引導(dǎo)模式。操作流程如圖7-13所示。自動(dòng)引導(dǎo)模式是,當(dāng)S3C2410A的引腳OM1、OM0均接為低電平時(shí),則系統(tǒng)處于NandFlash自動(dòng)引導(dǎo)模式狀態(tài)。微處理器的引腳NCON應(yīng)根據(jù)NandFlash芯片的尋址步驟數(shù)接入相應(yīng)的電平信號(hào),3步尋址接0;4步尋址接1(本芯片使用的)。NandFlash工作模式是指作為一般閃存使用的模式,可以進(jìn)行讀、寫(xiě)、擦除等操作。67

681.自動(dòng)引導(dǎo)模式流程●系統(tǒng)復(fù)位;●Nand

Flash中的前4KB代碼復(fù)制到內(nèi)部的小石頭區(qū)域;●小石頭區(qū)域的代碼映射到nGCS0;●處理器開(kāi)始執(zhí)行小石頭區(qū)域中的代碼。2.NandFlash工作模式●通過(guò)NFCONF寄存器設(shè)置NandFlash配置;●寫(xiě)NandFlash命令到NFCMD寄存器;●寫(xiě)

NandFlash地址到NFADDR寄存器。●讀/寫(xiě)數(shù)據(jù)的同時(shí),通過(guò)NFSTAT寄存器檢測(cè)NandFlash狀態(tài),確定程序操作流程。697.5.3NandFlash控制功能寄存器

S3C2410A提供了6個(gè)NandFlash控制功能寄存器用于實(shí)現(xiàn)NandFlash控制,它們的屬性如表7-13所列。70寄存器地址讀寫(xiě)屬性功能描述初值NFCONF0X4E000000讀/寫(xiě)配置NandFlash,位15為1使能NandFlash—NFCMD0X4E000004讀/寫(xiě)設(shè)置NandFlash命令,低8位有效—NFADDR0X4E000008讀/寫(xiě)設(shè)置NandFlash地址,低8位有效—NFDATA0X4E00000C讀/寫(xiě)NandFlash數(shù)據(jù)寄存器,低8位有效—NFSTAT0X4E000010只讀NandFlash操作狀態(tài),第0位有效—NFECC0X4E000014只讀NandFlashECC寄存器,低24位有效—7.6SDRAM存儲(chǔ)器的電路設(shè)計(jì)

同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器SDRAM由于集成度高,單片存儲(chǔ)容量大,讀寫(xiě)速度快,因此在設(shè)計(jì)嵌入式系統(tǒng)時(shí)常作為主存儲(chǔ)器使用。主要作為操作系統(tǒng),應(yīng)用程序代碼的運(yùn)行區(qū)域,以提高它們的運(yùn)行速度。

1.HY57V561620芯片介紹SDRAM類(lèi)型的存儲(chǔ)器芯片很多,其中HY57V561620系列是一種容量為4M×16bit×4Bank的SDRAM芯片,折算為通用的字節(jié)容量為32MB。其內(nèi)部結(jié)構(gòu)如圖7-16所示。7172HY57V561620芯片引腳說(shuō)明:

①DQ0~DQ15是芯片的16根數(shù)據(jù)總線(xiàn)引腳;②A(yíng)0~A12是地址總線(xiàn)引腳,A0~A8是行地址與列地址的復(fù)用線(xiàn),行地址時(shí)是RA0~RA12,列地址時(shí)是CA8~CA0,即每Bank地址信號(hào)總線(xiàn)個(gè)數(shù)為22,尋址空間為222=4M,存儲(chǔ)器容量為4×4M×16bit=32MB;③BA1、BA0是塊Bank地址引腳,在/RAS(RowAddressStrobe)有效時(shí),所有選中的地址塊被激活,在/CAS(ColumnAddressStrobe)有效時(shí),對(duì)所有選中的地址塊可進(jìn)行讀寫(xiě)操作;④CLK是時(shí)鐘信號(hào)引腳,SDRAM的所有輸入是在CLK的上升沿有效;CKE是時(shí)鐘信號(hào)使能引腳,當(dāng)其無(wú)效時(shí),SDRAM處于省電模式;/CS、/WE、/RAS、/CAS分別是片選信號(hào)、寫(xiě)信號(hào)、行地址選通信號(hào)、列地址選通信號(hào);⑤LDQM、UDQM是分別用于控制輸入輸出的低字節(jié)數(shù)據(jù)和高字節(jié)數(shù)據(jù)。73HY57V561620芯片使用連接圖74第7章習(xí)題

7-1簡(jiǎn)述嵌入式存儲(chǔ)器系統(tǒng)層次結(jié)構(gòu)及特點(diǎn)。7-2簡(jiǎn)述cache的分類(lèi)與功能。7-3簡(jiǎn)述MMU的功能。7-4在MMU中什么是頁(yè)?什么是頁(yè)框??jī)烧咧g的關(guān)系是什么?7-5S3C2410A從虛擬內(nèi)存空間到物理內(nèi)存的映射提供的4種劃分頁(yè)的方式是什么?7-6簡(jiǎn)述MMU從虛擬內(nèi)存地址到物理內(nèi)存地址的映射方法。7-7S3C2410A的Bank0~Bank7都能配置哪些類(lèi)型的存儲(chǔ)器?它們各有什么特點(diǎn)?7-8存儲(chǔ)器控制寄存器有哪些?它們各自的功能是什么?7-9使用8/16/32位存儲(chǔ)器芯片擴(kuò)展8/16/32存儲(chǔ)器系統(tǒng)總線(xiàn)時(shí),地址線(xiàn),數(shù)據(jù)線(xiàn)及各控制線(xiàn)是如何連接的?7-10簡(jiǎn)述NORFlash與NANDFlash的區(qū)別。7-11簡(jiǎn)述Flash存儲(chǔ)器在嵌入式系統(tǒng)中的用途。7-12簡(jiǎn)述S3C2410ANANDFlash控制器的基本功能。7-13簡(jiǎn)述NandFlash芯片的頁(yè)數(shù)據(jù)讀、寫(xiě)過(guò)程。7-14簡(jiǎn)述NandFlash的引導(dǎo)、工作模式。7-15簡(jiǎn)述SDRAM的特點(diǎn)、芯片的內(nèi)部結(jié)構(gòu)、與S3C2410A的連接方法。75第8章ARM通用I/O和中斷系統(tǒng)應(yīng)用設(shè)計(jì)76第8章通用I/O端口和中斷系統(tǒng)程序設(shè)計(jì)

●S3C2410A提供了117個(gè)可編程的通用輸入輸出I/O端口引腳,分為8組通用輸入輸出I/O端口(GeneralPurposeI/O或GeneralParallelI/O):通用端口A(yíng)(GPA)、通用端口B(GPA)、…、通用端口H(GPH)、通用端口G(GPG)。

特別是每組端口中的不同I/O引腳根據(jù)需要可以通過(guò)軟件配置為輸入引腳、或輸出引腳、或第2功能引腳、甚至或第3功能引腳,這對(duì)于實(shí)時(shí)控制系統(tǒng)來(lái)講是至關(guān)重要的,說(shuō)明具有較多的輸入輸出開(kāi)關(guān)量。

●在CPU訪(fǎng)問(wèn)I/O外設(shè)的3種方法(程序查詢(xún)方法、I/O中斷方法和DMA方法)中,中斷是實(shí)時(shí)性最好的方法,因?yàn)榍度胧较到y(tǒng)大部分都應(yīng)用于實(shí)時(shí)控制系統(tǒng)。

S3C2410A的CPU提供了普通中斷請(qǐng)求IRQ(InterruptRequest)和快速中斷請(qǐng)求FIQ(FastInterruptRequest)這2種中斷的請(qǐng)求方法,而且可以對(duì)外設(shè)I/O的56個(gè)中斷源請(qǐng)求進(jìn)行實(shí)時(shí)響應(yīng),這對(duì)于實(shí)時(shí)控制系統(tǒng)來(lái)說(shuō)也是非常必要的。S3C2410A中斷系統(tǒng)的邏輯層次深、關(guān)系最為復(fù)雜,無(wú)論是硬件中斷申請(qǐng)過(guò)程的組成,還是軟件相應(yīng)的具體執(zhí)行流程。778組通用

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論