微機(jī)原理與嵌入式接口技術(shù)課件:存儲(chǔ)器及其擴(kuò)展_第1頁
微機(jī)原理與嵌入式接口技術(shù)課件:存儲(chǔ)器及其擴(kuò)展_第2頁
微機(jī)原理與嵌入式接口技術(shù)課件:存儲(chǔ)器及其擴(kuò)展_第3頁
微機(jī)原理與嵌入式接口技術(shù)課件:存儲(chǔ)器及其擴(kuò)展_第4頁
微機(jī)原理與嵌入式接口技術(shù)課件:存儲(chǔ)器及其擴(kuò)展_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

存儲(chǔ)器及其擴(kuò)展9.1存儲(chǔ)器概述9.2存儲(chǔ)器系統(tǒng)的層次結(jié)構(gòu)9.3半導(dǎo)體存儲(chǔ)器9.4存儲(chǔ)芯片的主要技術(shù)指標(biāo)9.5存儲(chǔ)器的擴(kuò)展9.6FSMC擴(kuò)展存儲(chǔ)器接口組習(xí)題9

本章要點(diǎn)

☆存儲(chǔ)器系統(tǒng)的層次結(jié)構(gòu)

☆存儲(chǔ)器的分類

☆存儲(chǔ)芯片的主要技術(shù)指標(biāo)

☆存儲(chǔ)器容量擴(kuò)展的一般方法

☆STM32的FSMC擴(kuò)展存儲(chǔ)器

9.1存儲(chǔ)器概述

計(jì)算機(jī)的存儲(chǔ)器,從體系結(jié)構(gòu)的觀點(diǎn)來劃分,可根據(jù)其在主機(jī)內(nèi)還是主機(jī)外分為內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器兩大類。

內(nèi)部存儲(chǔ)器(簡稱內(nèi)存或主存)是計(jì)算機(jī)主機(jī)的組成部分之一,用來存儲(chǔ)當(dāng)前運(yùn)行所需要的程序和數(shù)據(jù),CUP

可以直接訪問內(nèi)存并與其交換信息。相對(duì)外部存儲(chǔ)器(簡稱外存或輔存)而言,內(nèi)存的容量小、存取速度快。而外存剛好相反,外存用于存放暫時(shí)不參加運(yùn)行的程序和數(shù)據(jù),CUP

不能對(duì)它直接訪問,而必須通過專門的設(shè)備才能夠?qū)λM(jìn)行讀寫(如磁盤驅(qū)動(dòng)器等)。外存的信息調(diào)入內(nèi)存后才能使用,這是它與內(nèi)存之間的本質(zhì)區(qū)別。外存容量一

般都很大,但存取速度比較慢。

存儲(chǔ)器按照使用的存儲(chǔ)介質(zhì)不同,可分為半導(dǎo)體存儲(chǔ)器、磁介質(zhì)存儲(chǔ)器(如磁盤存儲(chǔ)器與磁帶存儲(chǔ)器)、光介質(zhì)存儲(chǔ)器(如光盤);按存取方式的不同,可分為隨機(jī)存儲(chǔ)器、順序存儲(chǔ)器、半順序存儲(chǔ)器;按照信息是否可保存,可分為易失性存儲(chǔ)器和非易失性存儲(chǔ)器;按其在計(jì)算機(jī)系統(tǒng)中的作用不同,可分為主存儲(chǔ)器、輔助存儲(chǔ)器、緩沖存儲(chǔ)器和控制存儲(chǔ)器等。

從使用者的角度來看,存儲(chǔ)器具有一維線性結(jié)構(gòu),有地址和數(shù)據(jù)兩個(gè)要素,對(duì)存儲(chǔ)器進(jìn)行讀寫操作時(shí)必須提供地址,如圖9.1

所示。由于大容量存儲(chǔ)器所需的地址較長,在指令中直接使用地址,會(huì)使指令變得很長。另外,還希望能靈活地以多種形式訪問存儲(chǔ)器,因此在CUP

指令中有多種地址形成方式,如寄存器間接尋址、基址尋址等。圖9.1存儲(chǔ)器的一維線性結(jié)構(gòu)

存儲(chǔ)容量是反映存儲(chǔ)能力的指標(biāo)。對(duì)于存儲(chǔ)芯片及其制造商,一般采用biT

表示存儲(chǔ)容量;對(duì)于存儲(chǔ)器系統(tǒng)和用戶,一般用ByTE

表示存儲(chǔ)容量。當(dāng)容量不夠時(shí)還可以進(jìn)行橫向的位擴(kuò)展、縱向的字節(jié)擴(kuò)展,字節(jié)擴(kuò)展和位擴(kuò)展也可以同時(shí)進(jìn)行。在圖9.1

中位擴(kuò)展的是存儲(chǔ)器橫向數(shù)據(jù)空間,字節(jié)擴(kuò)展的是存儲(chǔ)器縱向地址空間。

9.2存儲(chǔ)器系統(tǒng)的層次結(jié)構(gòu)

9.2.1存儲(chǔ)器系統(tǒng)的層次結(jié)構(gòu)概述存儲(chǔ)器系統(tǒng)是微機(jī)重要的子系統(tǒng),隨著計(jì)算機(jī)技術(shù)的發(fā)展,它的性能已成為衡量計(jì)算機(jī)系統(tǒng)性能的核心指標(biāo)。衡量存儲(chǔ)器系統(tǒng)有三個(gè)指標(biāo):容量、速度和價(jià)格/位。

一般來講,速度高的存儲(chǔ)器,單位容量價(jià)格也高,因此不能單純地采用大容量的高速存儲(chǔ)器來構(gòu)成存儲(chǔ)器系統(tǒng)。必須采用硬件、軟件或軟硬件相結(jié)合的方法,將各種存儲(chǔ)器按層次結(jié)構(gòu)組織起來形成存儲(chǔ)器系統(tǒng),如圖9.2

所示。圖9.2典型微型計(jì)算機(jī)存儲(chǔ)系統(tǒng)結(jié)構(gòu)

現(xiàn)代計(jì)算機(jī)的存儲(chǔ)系統(tǒng)是分層次的,它們依次是:寄存器→高速緩存→主存→虛擬存儲(chǔ)器→各種外存儲(chǔ)器,如圖9.3

所示,呈現(xiàn)出金字塔結(jié)構(gòu)。圖9.3

CachE—主存—輔存三級(jí)存儲(chǔ)結(jié)構(gòu)

9.2.2

CachE

1.

程序訪問的局部性

盡管計(jì)算機(jī)程序往往需要巨大的快速存儲(chǔ)空間,但程序?qū)Υ鎯?chǔ)空間的訪問并不是均勻的。通過對(duì)大量典型程序運(yùn)行情況的分析表明,在一個(gè)較短的時(shí)間間隔內(nèi),CUP

訪問存儲(chǔ)器時(shí),無論是存取指令還是存取數(shù)據(jù),所訪問的存儲(chǔ)單元都趨于聚集在一個(gè)較小的連續(xù)區(qū)域中,而對(duì)此范圍以外的地址訪問甚少,這種現(xiàn)象就稱為程序訪問的局部性。

存在兩種不同類型的局部性:

時(shí)間局部性:如果一個(gè)數(shù)據(jù)項(xiàng)正在被訪問,那么在近期它很可能還會(huì)被再次訪問。程序循環(huán)、堆棧等是產(chǎn)生時(shí)間局部性的原因。

空間局部性:將要用到的數(shù)據(jù)很可能與正在使用的數(shù)據(jù)在地址空間上是臨近的。

指令的順序執(zhí)行、循環(huán)程序和子程序的多次調(diào)用,以及數(shù)組、堆棧等連續(xù)存放數(shù)據(jù)結(jié)構(gòu)的使用是產(chǎn)生空間局部性的原因。

2.

CachE

工作原理

據(jù)局部性原理,可以在主存和CUP

之間設(shè)置一個(gè)高速但容量相對(duì)較小的CachE,如果當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)存放在這個(gè)存儲(chǔ)器中,當(dāng)程序運(yùn)行時(shí),訪問這個(gè)高速存儲(chǔ)器即可,不必從主存取指令和數(shù)據(jù),從而提高了程序運(yùn)行速度。例如,一段循環(huán)程序要重復(fù)執(zhí)行許多次,把相應(yīng)的指令和數(shù)據(jù)放在CachE

中,這段程序的執(zhí)行就可以加快。

3.

處理器中的CachE

因?yàn)橛蒑OS型半導(dǎo)體存儲(chǔ)器構(gòu)成的大容量主存的速度已經(jīng)完全跟不上處理器的速度,為了匹配CUP

與主存之間的訪問速度,處理器中的CachE

通常由速度與CUP

處于一個(gè)數(shù)量級(jí)的雙極型SRAM構(gòu)成,其工作速度極快,通常被稱為高速緩存。

4.

外存中的CachE

CachE

本身只是一種存儲(chǔ)技術(shù),而不是一種新型的存儲(chǔ)器,它通常用來匹配不同工作設(shè)備之間的訪問速度。在計(jì)算機(jī)系統(tǒng)中,只要有不同工作速度設(shè)備相連接的地方就有可能出現(xiàn)CachE。硬盤驅(qū)動(dòng)器和光盤驅(qū)動(dòng)器中設(shè)有CachE,是因?yàn)榇糯鎯?chǔ)介質(zhì)的硬盤和光存儲(chǔ)介質(zhì)的光盤的訪問速度比較慢。為了讓其他的高速設(shè)備訪問它們時(shí)不至于空等,在進(jìn)行寫入操作時(shí),高速設(shè)備可以把寫入的內(nèi)容直接寫入到CachE

中,隨后驅(qū)動(dòng)器再將緩存的數(shù)據(jù)真正地寫入硬盤或光盤。

在進(jìn)行讀取操作時(shí),驅(qū)動(dòng)器按照一定的算法,預(yù)先把高速設(shè)備可能需要的數(shù)據(jù)從硬盤或光盤中讀取到CachE

中,若CachE

中的數(shù)據(jù)恰好是所需的數(shù)據(jù),驅(qū)動(dòng)器直接把它送給高速設(shè)備。

5.

CachE

工作中存在的問題

作為CachE,它要完成讀和寫兩種緩沖操作。硬盤驅(qū)動(dòng)器和光盤驅(qū)動(dòng)器的CachE

主要用于緩沖寫操作,它們需要完成的工作也比較簡單。對(duì)于寫操作的緩沖,只要把緩沖的數(shù)據(jù)隨后寫入硬盤或光盤中即可,對(duì)于讀操作的緩沖工作也不是很復(fù)雜。

處理器中的CachE

工作比較復(fù)雜,它必須同時(shí)完成讀和寫兩種緩沖操作。讀操作緩沖的主要性能標(biāo)志是命中率,它是指CUP

真正需要的數(shù)據(jù)在CachE

中的概率,顯然,只要增加CachE

的容量就能提高命中率,但這不是一種經(jīng)濟(jì)的做法,也不是提高命中率的唯一做法。為了充分發(fā)揮處理器中CachE

的功效,最大限度地提高其命中率,一些相關(guān)的算法應(yīng)運(yùn)而生,這些算法主要與CachE

中數(shù)據(jù)的更新替換有關(guān),它們被統(tǒng)稱為CachE

的“替換算法”。替換算法所要解決的問題是如何更新CachE

中的內(nèi)容,以保證它們正是CUP

當(dāng)前所需的。

論是寫操作緩沖還是讀操作緩沖,都要面臨CachE

與主存之間內(nèi)容上的一致性問題。CUP

對(duì)CachE

進(jìn)行寫操作后,會(huì)使CachE

中的副本與保存在主存中的原型出現(xiàn)不一致。另外,當(dāng)主存中的內(nèi)容被其他輸入、輸出設(shè)備修改后也會(huì)出現(xiàn)CachE

與主存的不一致。這時(shí),需要對(duì)它們進(jìn)行同步以消除這種不一致性。何時(shí)將它們同步、如何將它們同步就是“一致性算法”所要解決的問題。

9.2.3虛擬內(nèi)存

1.

虛擬內(nèi)存

虛擬內(nèi)存實(shí)際上是外部存儲(chǔ)器(通常是硬盤)中劃分出的一部分,用來當(dāng)做內(nèi)存使用和管理。CUP

將當(dāng)前正在運(yùn)行的程序中暫時(shí)不使用的指令和數(shù)據(jù)存入虛擬內(nèi)存,從而可以執(zhí)行比實(shí)際物理內(nèi)存容量更大的程序。

所有的應(yīng)用程序只需要使用虛擬地址尋址數(shù)據(jù),處理器的MMU,內(nèi)存管理單元)具備內(nèi)存地址映射和尋址功能,操作系統(tǒng)采取“按需調(diào)頁”策略,使用MMU

完成從虛擬地址到物理地址的轉(zhuǎn)換。這種使用虛擬地址尋址整個(gè)系統(tǒng)內(nèi)存空間和在輔存中擴(kuò)展主存的方式被稱為虛擬內(nèi)存。

MMU

在完成從虛擬地址到物理地址之間轉(zhuǎn)換的同時(shí),還可以實(shí)現(xiàn)內(nèi)存管理,使得不同進(jìn)程有自己單獨(dú)的進(jìn)程空間,有效地提高了系統(tǒng)可靠性和安全性。不過,與虛擬內(nèi)存頻繁交換數(shù)據(jù)會(huì)嚴(yán)重影響系統(tǒng)的運(yùn)行速度。

2.

虛擬內(nèi)存的應(yīng)用

目前,通用計(jì)算機(jī)系統(tǒng)都使用了虛擬內(nèi)存,如WinDows

的“虛擬內(nèi)存”、Linux

的“交換空間”等。在WinDows

的“系統(tǒng)屬性/高級(jí)/性能設(shè)置”頁面下有虛擬內(nèi)存的設(shè)置,在硬盤上表現(xiàn)為PagEFilE.sys頁面文件。

實(shí)存儲(chǔ)器管理不需要經(jīng)過MMU,對(duì)于內(nèi)存的訪問是直接的,訪問的地址直接送到地址線上輸出,所有指令訪問的地址都是實(shí)際的物理地址。在這種方式下,一個(gè)進(jìn)程在執(zhí)行前,系統(tǒng)必須為它分配足夠大的連續(xù)地址空間,然后全部載入主存儲(chǔ)器的連續(xù)空間。

9.3半導(dǎo)體存儲(chǔ)器

9.3.1半導(dǎo)體存儲(chǔ)器的分類

1.

ROM與RAM半導(dǎo)體存儲(chǔ)器按照易失性和可寫性標(biāo)準(zhǔn)可分為ROM和RAM

兩大類。需要說明的是ROM和RAM

是在不同分類方法下的兩個(gè)類別,兩者本來不具備可比性,但是由于二者的特點(diǎn)十分鮮明,讓人直觀感受到半導(dǎo)體存儲(chǔ)器就是由它們組成的,使得ROM和RAM

的分類方法成為了半導(dǎo)體存儲(chǔ)器分類的習(xí)慣和現(xiàn)實(shí)。

ROM和RAM

都有著對(duì)方不具備的顯著優(yōu)點(diǎn),因此從它們問世開始,讓ROM具有RAM

的可直接寫入功能、讓RAM

具有ROM的非易失性一直是半導(dǎo)體存儲(chǔ)器的發(fā)展方向。Flash存儲(chǔ)器較好地融合了ROM和RAM

的優(yōu)點(diǎn)。盡管它不能像RAM

那樣直接寫入,但它的編程速度和方式都有很大改進(jìn),目前已經(jīng)有了非常廣泛的應(yīng)用。而具有非易失性特點(diǎn)的RAM

存儲(chǔ)器目前也處于快速的發(fā)展過程中,各方面性能還有待提高。

2.

雙極型與MOS型半導(dǎo)體存儲(chǔ)器

按照存儲(chǔ)器內(nèi)部使用的晶體管類型,半導(dǎo)體存儲(chǔ)器被分為了雙極型和MOS型兩大類。雙極型晶體管以電流方式工作,工作速度快,但集成度低、功耗大、價(jià)格偏高;MOS型晶體管以電壓方式工作,工作速度慢,具有集成度高、制造簡單、成本低廉、功耗低等顯著優(yōu)點(diǎn)。

3.

異步型與同步型半導(dǎo)體存儲(chǔ)器

按照訪問操作時(shí)時(shí)鐘來源的不同,半導(dǎo)體存儲(chǔ)器又可分為異步型和同步型。

異步型存儲(chǔ)器的工作時(shí)鐘獨(dú)立于CUP(或系統(tǒng)總線)的時(shí)鐘,其訪問操作時(shí)序的脈沖節(jié)拍由存儲(chǔ)器本身確定。對(duì)于異步型的存儲(chǔ)器而言,如果其自身的工作速度很慢,CUP

在訪問它時(shí)就必須插入額外的等待狀態(tài)。

9.3.2半導(dǎo)體存儲(chǔ)芯片的一般結(jié)構(gòu)

半導(dǎo)體存儲(chǔ)芯片的結(jié)構(gòu)如圖9.4

所示,下面對(duì)其進(jìn)行簡要說明。

存儲(chǔ)矩陣是半導(dǎo)體存儲(chǔ)芯片的核心部分,負(fù)責(zé)信息的具體存儲(chǔ)工作。它由大量的存儲(chǔ)元構(gòu)成,一個(gè)存儲(chǔ)元存儲(chǔ)一位信息。CUP

發(fā)出一個(gè)地址,可以尋址一個(gè)存儲(chǔ)單元,一個(gè)存儲(chǔ)單元可以有若干條數(shù)據(jù)線,即一個(gè)存儲(chǔ)單元可以有若干個(gè)存儲(chǔ)元。存儲(chǔ)單元數(shù)據(jù)線的數(shù)目和芯片數(shù)據(jù)線的數(shù)目一致。圖9.4半導(dǎo)體存儲(chǔ)芯片結(jié)構(gòu)

對(duì)于RAM

來說,如果是讀,則被選中的存儲(chǔ)單元的數(shù)據(jù)經(jīng)數(shù)據(jù)總線傳送給CUP;如果是寫,則CUP

發(fā)送到數(shù)據(jù)總線上的數(shù)據(jù)被控制單元存入被選中的存儲(chǔ)單元。

對(duì)于早期的ROM來說,由于它們只能被讀,所以沒有寫控制線。

對(duì)于可編程的ROM來說,這里的寫控制線通常稱為“編程模式”選擇線。

9.3.3靜態(tài)RAM

靜態(tài)RAM以觸發(fā)器構(gòu)成存儲(chǔ)單元,數(shù)據(jù)一旦存入就能夠穩(wěn)定地保持下去?;镜?

管NMOS靜態(tài)存儲(chǔ)單元如圖9.5

所示,由6

只NMOS管(T

1

~T

6

)組成。T

1

與T

2

構(gòu)成一個(gè)反相器,T

3

與T

4

構(gòu)成另一個(gè)反相器,兩個(gè)反相器的輸入與輸出交叉連接,構(gòu)成基本觸發(fā)器作為數(shù)據(jù)存儲(chǔ)單元。當(dāng)T

1

導(dǎo)通、T

3

截止時(shí),F(xiàn)

為0,E

為1;當(dāng)T

3

導(dǎo)通、T

1

截止時(shí),F(xiàn)為1,E

為0。所以,可用F

點(diǎn)電平的高低來表示“1”和“0”兩種信息。圖9.5

NMOS靜態(tài)存儲(chǔ)單元

與異步SRAM相比,同步SRAM與CUP

的連接要復(fù)雜許多,其價(jià)格也高出不少。它的優(yōu)點(diǎn)是速度快,且支持突發(fā)模式(所謂突發(fā)模式,是指在一個(gè)周期內(nèi)能完成多個(gè)存儲(chǔ)區(qū)域的讀取或?qū)懭氩僮?,是一種高速的數(shù)據(jù)傳輸模式)。

9.3.4動(dòng)態(tài)RAM

DRAM是通過對(duì)電容充、放電來存放信息的。在實(shí)際的電路中,電容上的電荷總是不穩(wěn)定的,會(huì)隨著放電的過程而逐漸消失。因此需要定時(shí)給電容進(jìn)行充電以保持當(dāng)前存儲(chǔ)的信息。正是因?yàn)镈RAM需要這種周期性的刷新操作,所以相對(duì)于SRAM來說,DRAM是動(dòng)態(tài)的,即DRAM上存儲(chǔ)的信息是會(huì)在一定范圍內(nèi)波動(dòng)的。

DRAM是由IBM

公司工程師RobErT

DEnnarD

于1966

年發(fā)明。實(shí)際的DRAM都是用一個(gè)MOS管來存儲(chǔ)信息的,如圖9.6所示。圖9.6

MOS管存儲(chǔ)單元

圖9.7是DRAM的寫操作時(shí)序圖。讀操作與此類似,只是寫控制信號(hào)是高電平。圖9.7

DRAM的寫操作時(shí)序

DRAM存儲(chǔ)器經(jīng)過不斷地發(fā)展,先后出現(xiàn)了以下幾種主要的類型。

1)DRAM

最原始的DRAM存儲(chǔ)器,上面介紹的就是這種DRAM。

2)FOM

DRAM

為提高存儲(chǔ)器訪問的速度,除了采用更高速度的器件外,還可以采用改進(jìn)存儲(chǔ)空間的組織結(jié)構(gòu)和訪問方式來實(shí)現(xiàn)。

3)EDO

DRAM

EDO

DRAM,擴(kuò)展數(shù)據(jù)輸出DRAM)在技術(shù)上與FPMDRAM大致相同,它改進(jìn)了數(shù)據(jù)輸出的控制邏輯和緩沖電路。EDO

DRAM在本周期的數(shù)據(jù)輸出尚未完成時(shí),即可進(jìn)行下一個(gè)連續(xù)地址的訪問操作,因而取名為“擴(kuò)展數(shù)據(jù)輸出”。

4)SDRAM

SDRAM(SynchronousDRAM,同步DRAM)中加入了同步控制邏輯,它與CUP(或系統(tǒng)總線)同步工作,避免了對(duì)異步DRAM進(jìn)行操作時(shí)可能會(huì)出現(xiàn)的額外等待時(shí)間,所以提高了數(shù)據(jù)的傳輸速度和效率。

5)DDRSDRAM

傳統(tǒng)的SDRAM只能在時(shí)鐘信號(hào)的上升沿傳輸數(shù)據(jù),而DDRSDRAM(DoublE

DaTaRaTE

SDRAM,雙倍數(shù)據(jù)速率的SDRAM)的數(shù)據(jù)線有特殊的電路,可以讓它在時(shí)鐘的上升/下降沿都傳輸數(shù)據(jù)。這樣能在不改變芯片時(shí)鐘頻率的情況下,使訪問速度提升近兩倍。

6)DDRIISDRAM

DDRIISDRAM(DoublE

DaTaRaTE

IISDRAM,第二代DDRSDRAM)仍然采用了在時(shí)鐘的上升/下降沿進(jìn)行數(shù)據(jù)傳輸?shù)幕痉绞降cDDRSDRAM相比,最大的不同就是擁有兩倍于DDRSDRAM的預(yù)讀取能力。

9.3.5

ROM

只讀存儲(chǔ)器(REaD

OnlyMEmory,ROM)常用于存儲(chǔ)數(shù)字系統(tǒng)及計(jì)算機(jī)中不需改寫的數(shù)據(jù),例如數(shù)據(jù)轉(zhuǎn)換表及計(jì)算機(jī)操作系統(tǒng)程序等。ROM存儲(chǔ)的數(shù)據(jù)不會(huì)因斷電而消失,即具有非易失性。對(duì)可編程的ROM芯片,需要額外的條件,或者專門的寫入設(shè)備,或者CUP

對(duì)其執(zhí)行一系列規(guī)定的總線操作才能將信息寫入,這與RAM

的寫入過程有較大的區(qū)別。一般把對(duì)ROM的這種“寫”操作稱為編程(ProgRAMming)。再次編程要先把ROM中原有信息擦除,另外對(duì)ROM的編程有次數(shù)限制。

1.

掩模式只讀存儲(chǔ)器(MROM)

掩模式只讀存儲(chǔ)器(MaskROM,MROM)中儲(chǔ)存的信息在芯片制造過程中就固化好了,用戶無法修改。制作掩模板工藝較復(fù)雜,生產(chǎn)周期長,因此生產(chǎn)第一片MROM的費(fèi)用很大,而復(fù)制同樣的ROM就很便宜了,所以適合于大批量生產(chǎn),而不適用于科學(xué)研究和小批量產(chǎn)品。MROM有雙極型、MOS型等幾種電路形式。

圖9.8

是一個(gè)簡單的4×4

位MOS管ROM,采用單譯碼結(jié)構(gòu),兩位地址線A1

、A0

經(jīng)過譯碼器譯碼后有4

種狀態(tài),輸出4

條選擇線,分別選中4

個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元有4位輸出。在此矩陣中,行和列交點(diǎn)處有管子連接表示存儲(chǔ)“0”信息;沒有連接管子表示存儲(chǔ)“1”信息。若地址線A1A0=00,則選中0

號(hào)單元,即字線0

為高電平,若有管子與其相連(如位線D

2

、D

0

),其相應(yīng)的MOS管導(dǎo)通,位線輸出為0,而位線D

3

、D

1

沒有管子與字線相連,則輸出為1。因此,單元0

存儲(chǔ)1010。對(duì)于圖9.8

中矩陣,單元1

存儲(chǔ)1101;單元2

存儲(chǔ)0101;單元3

存儲(chǔ)0110。圖9.8掩模式ROM

2.

可編程只讀存儲(chǔ)器(PROM)

可編程只讀存儲(chǔ)器出廠時(shí)各單元內(nèi)容全為0,用戶可用專門的PROM寫入器將信息寫入,這種寫入是破壞性的,即某個(gè)存儲(chǔ)位一旦寫入1,就不能再變?yōu)?,因此對(duì)這種存儲(chǔ)器只能進(jìn)行一次編程。圖9.9

是熔絲型PROM的一個(gè)存儲(chǔ)單元示意圖。圖9.9熔絲型PROM存儲(chǔ)單元

3.

可擦除/可編程的只讀存儲(chǔ)器(EPROM)

目前,根據(jù)擦除芯片內(nèi)已有信息方法的不同,可擦除1可編程EPROM可分為兩種類型:紫外線擦除PROM(簡稱EPROM)和電擦除PROM(簡稱EEPROM或E

2

PROM)。

1)紫外線可擦除的只讀存儲(chǔ)器EPROM

EPROM采用絕緣柵(或稱浮柵)MOS管構(gòu)成,結(jié)構(gòu)如圖9.10

所示。圖9.10

EPROM存儲(chǔ)單元

EPROM可擦除的次數(shù)有限,成本較高,可靠性不如掩模式ROM和PROM。只能對(duì)EPROM整個(gè)芯片進(jìn)行擦除,不能只擦除某個(gè)單元或者某個(gè)位,擦除時(shí)間較長,擦/寫均需離線操作,使用不方便。因此,能夠在線擦寫的E

2

PROM芯片近年來得到廣泛應(yīng)用。

2)電可擦除可編程ROM

E

2

PROM也是采用浮柵技術(shù)生產(chǎn)的可編程ROM,它同樣以浮柵上是否帶有電荷決定存儲(chǔ)的信息為1

還是0。不同的是,E?2

PROM在MOS管的浮柵附近增加了一個(gè)柵極(控制柵),給控制柵加上一個(gè)正電壓,就可

在浮柵和漏極之間形成一個(gè)氧化物隧道。通過該隧道,電荷可以被注入浮柵中,從而實(shí)現(xiàn)數(shù)據(jù)的寫入;如果給控制柵加上一個(gè)負(fù)電壓,將使浮柵上的電荷泄漏,從而實(shí)現(xiàn)數(shù)據(jù)的“電”可擦除。E2PROM的擦除速度要比紫外線擦除EPROM快得多。

盡管經(jīng)過改進(jìn)的E

2

PROM能夠在線編程,但它還有很多不完善的地方,如它的擦除速度很快,但編程時(shí)間相對(duì)RAM

而言還是太長,特別是對(duì)大容量的芯片更是如此。在實(shí)際應(yīng)用中,迫切需要一種寫入速度類似于RAM,掉電后存儲(chǔ)內(nèi)容又不丟失的存儲(chǔ)器。為此,一種新型的稱為閃存的快速擦除讀寫存儲(chǔ)器被研制出來。

9.3.6

Flash

閃速存儲(chǔ)器(Flash)簡稱閃存,是在E

2

PROM的技術(shù)基礎(chǔ)上發(fā)展而成,兩者的內(nèi)部結(jié)構(gòu)和技術(shù)細(xì)節(jié)有很多相似之處。Flash的擦除/編程也需要輸入一個(gè)較高的電壓,因此Flash芯片內(nèi)都備有升壓電路。Flash與E

2

PROM一樣是用電來擦除,與EPROM一樣用單管來存儲(chǔ)一位信息。不同的是,F(xiàn)lash能進(jìn)行整片或整區(qū)的擦除,介于E

2

PROM的單個(gè)存儲(chǔ)區(qū)域和EPROM的整片擦除或更新之間。閃存的編程速度快,掉電后存儲(chǔ)內(nèi)容又不丟失,從而得到很廣泛的應(yīng)用。

NOR和NAND是Flash存儲(chǔ)器的兩種不同制造方式,其命名來源于它們當(dāng)中單個(gè)CEll所使用的邏輯門的類型(NNOR:或非門,NAND:與非門)。NORFlash和NANDFlash經(jīng)過不斷地發(fā)展,形成了當(dāng)今世上兩種特色鮮明、不同類型的Flash存儲(chǔ)器。下面對(duì)這兩種Flash進(jìn)行對(duì)比分析。

1.

應(yīng)用特點(diǎn)

NORFlash的目標(biāo)是替代現(xiàn)有的EPROM和E

2

PROM。它的突出特點(diǎn)是可以單個(gè)字讀取,實(shí)現(xiàn)片上執(zhí)行,在NORFlash中既可以保存程序,也能直接執(zhí)行程序,不必再把代碼讀到系統(tǒng)RAM

中。NORFlash通常用來存放固件、系統(tǒng)啟動(dòng)代碼、PC的BIOS

等一系列不需要經(jīng)常改寫的小程序。

2.

存儲(chǔ)空間的組織方式

NORFlash的存儲(chǔ)空間的組織方式是:Word→Sector/Block→Bank→Chip。字是其最小單位,字的大小由芯片的數(shù)據(jù)總線寬度決定。地址連續(xù)的一片字存儲(chǔ)空間被組成一個(gè)Sector/Block。生產(chǎn)NORFlash的各大IC

廠商對(duì)Sector/Block

存儲(chǔ)空間的定義沒有統(tǒng)一標(biāo)準(zhǔn),所以Sector/Block

的大小不定,通常為KB數(shù)量級(jí)。Bank

級(jí)別的存儲(chǔ)空間定義也沒有統(tǒng)一標(biāo)準(zhǔn),通常是多個(gè)Sector/Block

構(gòu)成一個(gè)Bank。Chip

為單個(gè)存儲(chǔ)芯片。

3.

擦除操作

作為Flash存儲(chǔ)器,NORFlash和NANDFlash在編程前都需要先擦除。NORFlash的擦除以Sector/Block

為基本單位,也可進(jìn)行整個(gè)Bank/Chip

的擦除操作。

4.

讀取與編程操作

NORFlash以字為基本單位進(jìn)行讀取或編程,讀取一個(gè)字所需的時(shí)間通常為幾十納秒,編程一個(gè)字所需的時(shí)間通常為幾至十幾微秒。

5.

容量和價(jià)格

NAND結(jié)構(gòu)的CE11尺寸幾乎僅為NOR結(jié)構(gòu)的CE11尺寸的一半,由于生產(chǎn)過程更為簡單,NAND結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量。現(xiàn)有的NORFlash存儲(chǔ)芯片,其單片的容量都在lGbiT

以下,而NANDFlash的單片容量已經(jīng)達(dá)到GbiT

的級(jí)別,市場上已經(jīng)有單片容量達(dá)32

GbiT

的NANDFlash存儲(chǔ)芯片。以單位存儲(chǔ)空間的價(jià)格計(jì)算,NANDFlash要比NORFlash便宜很多。

6.

耐用性和可靠性

Flash存儲(chǔ)器的耐用性主要體現(xiàn)在可擦寫次數(shù)上。在這一點(diǎn),NANDFlash與NORFlash相比具有一定的優(yōu)勢(shì),常見NANDFlash存儲(chǔ)芯片能保證的最大可擦寫次數(shù)通常在105以上,而常見NORFlash存儲(chǔ)芯片能保證的最大可擦寫次數(shù)通常小于10

5

7.

接口差別與易用性

NORFlash的接口與異步SRAM十分相似,各種微處理器、微控制器都能直接支持NORFlash,并可以在其上面執(zhí)行代碼。

8.

Flash存儲(chǔ)器的發(fā)展

由于Flash存儲(chǔ)器在編程速度上的突破,其應(yīng)用范圍一直在不斷擴(kuò)大。NANDFlash的一個(gè)重要發(fā)展方向是替換現(xiàn)有的磁介質(zhì)硬盤,成為計(jì)算機(jī)系統(tǒng)的海量外存。而NORFlash由于具有片上執(zhí)行功能,它的一個(gè)重要發(fā)展方向就是替代現(xiàn)有的各種RAM

存儲(chǔ)器,讓計(jì)算機(jī)的主存具有非易失性。

在嵌入式系統(tǒng)中,通常選擇NORFlash構(gòu)建一個(gè)小容量的存儲(chǔ)區(qū)域,該區(qū)域被用來存儲(chǔ)系統(tǒng)的啟動(dòng)代碼,用NANDFlash構(gòu)建一個(gè)海量的存儲(chǔ)空間,該區(qū)域用來存放操作系統(tǒng)和保存各種需要掉電后保持的海量數(shù)據(jù)。

9.4存儲(chǔ)芯片的主要技術(shù)指標(biāo)

1.存儲(chǔ)容量存儲(chǔ)容量是指存儲(chǔ)器所能存儲(chǔ)二進(jìn)制數(shù)據(jù)的數(shù)量,即所含存儲(chǔ)元的總數(shù)。存儲(chǔ)器芯片的存儲(chǔ)容量用“存儲(chǔ)單元個(gè)數(shù)×每個(gè)存儲(chǔ)單元的位數(shù)”來表示。

2.存取時(shí)間和存取周期

存取時(shí)間又稱存儲(chǔ)器訪問時(shí)間,即啟動(dòng)一次存儲(chǔ)器操作(讀或?qū)懀┑酵瓿稍摬僮魉枰臅r(shí)間。也就是從一次讀操作命令發(fā)出到該操作完成,將數(shù)據(jù)讀入數(shù)據(jù)緩沖寄存器為止所經(jīng)歷的時(shí)間,即為存儲(chǔ)器存取時(shí)間。

3.可靠性

可靠性是指存儲(chǔ)器對(duì)電磁場和溫度變化的抗干擾性能。一般用平均無故障時(shí)間來表示。

4.功耗

功耗通常是指每個(gè)存儲(chǔ)單元消耗功率的大小,單位為μW/biT

或者mW/biT。

5.集成度

集成度指在一塊存儲(chǔ)芯片內(nèi)能集成多少個(gè)基本存儲(chǔ)電路,每個(gè)基本存儲(chǔ)電路存放一位二進(jìn)制信息,所以集成度常用位/片來表示。

6.性能/價(jià)格比

性能/價(jià)格比(簡稱性價(jià)比)是衡量存儲(chǔ)器經(jīng)濟(jì)性能好壞的綜合指標(biāo),它關(guān)系到存儲(chǔ)器的實(shí)用價(jià)值。其中性能包括前述的各項(xiàng)指標(biāo),而價(jià)格是指存儲(chǔ)單元本身和外圍電路的總價(jià)格。

7.其他指標(biāo)

體積小、重量輕、價(jià)格便宜、使用靈活是微型計(jì)算機(jī)的主要特點(diǎn)及優(yōu)點(diǎn),所以存儲(chǔ)器的體積大小、工作溫度范圍、成本高低等也成為人們關(guān)注的性能指標(biāo)。

9.5存儲(chǔ)器的擴(kuò)展

9.5.1存儲(chǔ)器擴(kuò)展時(shí)的問題除了常規(guī)的接口引腳定義、邏輯電平與驅(qū)動(dòng)能力、時(shí)序邏輯等問題之外,在進(jìn)行存儲(chǔ)器的擴(kuò)展接口設(shè)計(jì)時(shí)還應(yīng)考慮以下問題。

1.

存儲(chǔ)器容量

不同處理器所能支持的片外存儲(chǔ)空間的大小可能不同。

存儲(chǔ)器容量有兩層含義,一是指系統(tǒng)中的全部存儲(chǔ)芯片的總?cè)萘?;二是指單個(gè)存儲(chǔ)芯片的容量。

2.

存儲(chǔ)空間的安排

處理器所能支持的整個(gè)存儲(chǔ)空間被劃分為多個(gè)Bank

時(shí),不同Bank

的功能、存儲(chǔ)空間大小均可能不同。

3.

數(shù)據(jù)總線的寬度

這里的數(shù)據(jù)總線寬度同時(shí)包含了CUP

和半導(dǎo)體存儲(chǔ)芯片兩者的數(shù)據(jù)總線寬度。現(xiàn)代計(jì)算機(jī)的最小存儲(chǔ)單位是字節(jié),所以常見的處理器和半導(dǎo)體存儲(chǔ)芯片的數(shù)據(jù)總線寬度都是8

位的整數(shù)倍。通常情況下,存儲(chǔ)芯片的數(shù)據(jù)總線寬度就是它的存儲(chǔ)單元數(shù)據(jù)線的數(shù)目,所以其存儲(chǔ)容量(位)為

芯片存儲(chǔ)容量(位)=存儲(chǔ)單元數(shù)量×數(shù)據(jù)總線寬度

9.5.2存儲(chǔ)容量的位擴(kuò)展

當(dāng)給定的存儲(chǔ)器芯片存儲(chǔ)單元的位數(shù)與系統(tǒng)需要的內(nèi)存單元字長不相等時(shí)采用的方法,稱為存儲(chǔ)容量的位擴(kuò)展。

下面以用64

K×1

位的存儲(chǔ)芯片經(jīng)過擴(kuò)展構(gòu)成64

K×8

位的存儲(chǔ)系統(tǒng)為例進(jìn)行講解。

1.

計(jì)算需要的存儲(chǔ)芯片數(shù)量

2.

位擴(kuò)展

位擴(kuò)展構(gòu)成的存儲(chǔ)器系統(tǒng)中,每個(gè)存儲(chǔ)單元的內(nèi)容被存儲(chǔ)在不同的存儲(chǔ)器芯片上。如圖9.11

所示,64

K×8

位存儲(chǔ)器中每個(gè)單元的8

位二進(jìn)制數(shù)被分別存儲(chǔ)在8

個(gè)芯片上,即每個(gè)芯片存儲(chǔ)1

位。因此需要將它們的數(shù)據(jù)線分別接到數(shù)據(jù)總線(D

7~D

0

)的相應(yīng)位上。從數(shù)據(jù)空間的角度來看,位擴(kuò)展后存儲(chǔ)單元的位數(shù)增加了。圖9.11存儲(chǔ)器的位擴(kuò)展

因此位擴(kuò)展存儲(chǔ)器時(shí),各存儲(chǔ)芯片是“數(shù)據(jù)并聯(lián)”工作的。以“三總線”的觀點(diǎn)來看,所謂“數(shù)據(jù)并聯(lián)”的位擴(kuò)展有三個(gè)方面的含義:

9.5.3存儲(chǔ)容量的字?jǐn)U展

當(dāng)存儲(chǔ)芯片字長已滿足要求,但存儲(chǔ)單元的個(gè)數(shù)不夠時(shí),需要增加的是存儲(chǔ)單元的數(shù)量,稱為存儲(chǔ)容量的字?jǐn)U展。

1.

計(jì)算需要的存儲(chǔ)芯片數(shù)量

2.

字?jǐn)U展

字?jǐn)U展是存儲(chǔ)芯片字長滿足要求,即不需要擴(kuò)展存儲(chǔ)器的數(shù)據(jù)空間,需要增加的是存儲(chǔ)器的地址空間,因此字?jǐn)U展是對(duì)存儲(chǔ)器的一種“地址串聯(lián)”擴(kuò)展,如圖9.12

所示。圖9.12存儲(chǔ)器的字?jǐn)U展

“地址串聯(lián)”擴(kuò)展需要把各芯片地址空間串聯(lián)起來,形成一個(gè)連續(xù)但不重疊的地址空間,一個(gè)時(shí)刻只能有一個(gè)芯片工作。圖9.12

中4

個(gè)存儲(chǔ)芯片的地址分配如表9.1

所示。

以“三總線”的觀點(diǎn)來看,所謂字?jǐn)U展的“地址串聯(lián)”有三個(gè)方面的含義:

3.

高位地址譯碼選擇存儲(chǔ)芯片

通常通過線選法、部分譯碼法和全譯碼法三種典型的方法來解決高位地址譯碼選擇存儲(chǔ)芯片的問題,這是字?jǐn)U展主要需要解決的問題。

1)線選法

線選法是直接使用高位地址線來選擇不同的存儲(chǔ)芯片。一條地址線選擇一個(gè)存儲(chǔ)芯片,所以稱為線選法。

線選法的基本原理是使用CUP

空余的高位地址線經(jīng)過一個(gè)“非門”后,直接作為存儲(chǔ)芯片的片選信號(hào),圖9.13

是其連接示意圖。圖9.13線選法譯碼

列出每個(gè)芯片的高位地址,芯片的片內(nèi)地址從全0

變化到全1,就可以確定每個(gè)芯片的地址范圍。圖9.13

中各芯片的地址范圍見表9.2。

線選法的優(yōu)點(diǎn)是結(jié)構(gòu)簡單,不需要添加很多的硬件電路。缺點(diǎn)也很明顯:首先是系統(tǒng)中有效存儲(chǔ)空間的地址不連續(xù),為存儲(chǔ)器的使用帶來不便;第二,CUP

的可尋址空間被嚴(yán)重浪費(fèi)。

2)部分譯碼法

部分譯碼法是用高位地址的一部分作為譯碼電路的輸入,通過譯碼電路產(chǎn)生片選信號(hào),選擇不同的存儲(chǔ)器芯片。對(duì)圖9.13

改用部分譯碼法實(shí)現(xiàn),如圖9.14

所示。圖9.14部分譯碼法

當(dāng)然,也可以使用其他的高位地址組合作為譯碼器的輸入。使用不同的高位地址組合將會(huì)影響每個(gè)存儲(chǔ)芯片的地址范圍。圖9.14

中各芯片的地址范圍見表9.3。

3)全譯碼法

全譯碼是指將全部高位地址線都作為譯碼器的輸入,再用譯碼器的輸出作為選擇存儲(chǔ)芯片的片選信號(hào)。全譯碼和部分譯碼的實(shí)現(xiàn)原理沒有本質(zhì)區(qū)別,只是使用地址線的數(shù)量不同。全譯碼存儲(chǔ)系統(tǒng)需要更復(fù)雜的譯碼器,但沒有部分譯碼的地址重疊現(xiàn)象,地址空間可以得到最充分的利用。對(duì)圖9.14

改用全譯碼法實(shí)現(xiàn),如圖9.15

所示。圖9.15全譯碼法

在線選法、部分譯碼法和全譯碼法的示意圖中,都沒有畫出讀/寫控制線和數(shù)據(jù)總線,是因?yàn)樗鼈兊倪B接并不是設(shè)計(jì)的要點(diǎn)。只要按照對(duì)應(yīng)關(guān)系,把多個(gè)8

位異步SRAM存儲(chǔ)芯片的讀/寫控制線和數(shù)據(jù)總線分別并在一起,再與CUP

相應(yīng)的引腳相連即可。

9.5.4

32

位數(shù)據(jù)總線的存儲(chǔ)器接口設(shè)計(jì)

下面以32

位CUP

與8

位存儲(chǔ)器的接口設(shè)計(jì)為例進(jìn)行講解。如圖9.16

所示,首先有4個(gè)8

位存儲(chǔ)器芯片0?!?#,分別掛在32

位數(shù)據(jù)總線上,這一點(diǎn)看起來有點(diǎn)像位擴(kuò)展。讀/寫控制線與前面也沒有區(qū)別,而在地址總線上卻有問題發(fā)生。圖9.16

32

位CUP

與8

位存儲(chǔ)器的接口設(shè)計(jì)方法A

1.

字節(jié)尋址與字尋址的矛盾

不論是16

位還是32

位的CUP,它在進(jìn)行各種操作時(shí),基本的數(shù)據(jù)單位都是Byte。因此,它們?cè)谠L問外部存儲(chǔ)芯片時(shí),需要具有可“字節(jié)尋址”的地址總線,完成對(duì)存儲(chǔ)器的“字節(jié)訪問”。即CUP

的地址總線上,一個(gè)有效的“字節(jié)地址”尋址一個(gè)字節(jié)。然而為了提高訪問速度,充分利用16/32

位CUP

數(shù)據(jù)總線寬度,在訪問外部存儲(chǔ)器時(shí),又需要可“字尋址”的地址總線,完成對(duì)存儲(chǔ)器的“字訪問”,一次存取多個(gè)字節(jié)。即CUP

的地址總線上,一個(gè)有效的“字地址”值尋址一個(gè)字。32

位CUP

還可以“半字尋址”。不同數(shù)據(jù)總線寬度下

的尋址要求見表9.4。

2.

讀邏輯修改

由于CUP

是智能部件,具有運(yùn)算和處理能力,因此在CUP

內(nèi)部引入一定的控制機(jī)制,當(dāng)CUP

以32

位模式讀取一個(gè)字節(jié)或半字時(shí),能根據(jù)自己尋址的字節(jié)自動(dòng)濾去夾雜的無效數(shù)據(jù),CUP

外部則無需額外的部件。

3.

地址總線錯(cuò)位對(duì)齊與寫邏輯修改

1)地址總線錯(cuò)位對(duì)齊

如圖9.16

所示,設(shè)計(jì)32

位存儲(chǔ)系統(tǒng)時(shí),CUP

地址總線與存儲(chǔ)器地址線錯(cuò)兩位對(duì)齊,它實(shí)現(xiàn)了按32

位字訪問的要求,這是系統(tǒng)設(shè)計(jì)的關(guān)鍵點(diǎn)之一。

2)寫邏輯修改

為了實(shí)現(xiàn)CUP

按字節(jié)訪問的要求,消除字節(jié)尋址與字尋址的矛盾,常見的各種32

位數(shù)據(jù)總線寬度的處理器寫入字節(jié)數(shù)據(jù)時(shí),需要在外部添加一些額外的控制信號(hào)線,通常采用以下兩種改進(jìn)方法。圖9.17

32

位CUP

與8

位存儲(chǔ)器的接口設(shè)計(jì)方法B

與方法A相比,方法B實(shí)際上是將字節(jié)選擇線和寫控制線的邏輯進(jìn)行了整合,兩種改進(jìn)方法各有特點(diǎn),其線路連接的方法也有所不同。圖9.18

32

位CUP

與16

位存儲(chǔ)器的接口設(shè)計(jì)

9.6

FSMC擴(kuò)展存儲(chǔ)器接口

9.6.1

FSMC簡介

FSMC實(shí)質(zhì)上是一種MCU內(nèi)嵌的可編程時(shí)序部件。它綜合考慮了各種存儲(chǔ)芯片的特點(diǎn),硬件上FSMC對(duì)外提供了地址/數(shù)據(jù)/控制三總線對(duì)應(yīng)連接存儲(chǔ)器;軟件上FSMC內(nèi)置了若干時(shí)序模型以匹配不同的存儲(chǔ)芯片,對(duì)于每種時(shí)序模型又有一組時(shí)序參數(shù)配合,拓寬了可選用的外部存儲(chǔ)器的范圍,時(shí)序模型和參數(shù)都可以通過相應(yīng)的寄存器進(jìn)行設(shè)置。

1.

FSMC的技術(shù)優(yōu)勢(shì)

(1)支持多種靜態(tài)存儲(chǔ)器類型。STM32通過FSMC即可支持SRAM、PSRAM、NORFlash類型存儲(chǔ)器,也支持NANDFlash、PCCARD、CF

及CF+類型存儲(chǔ)器。

(2)支持豐富的存儲(chǔ)操作方法。FSMC不僅支持多種數(shù)據(jù)寬度的異步讀/寫操作,而且支持NOR/PSRAM存儲(chǔ)器的同步突發(fā)訪問。

(3)支持同時(shí)擴(kuò)展多種存儲(chǔ)器。FSMC的映射地址空間中,不同的Bank

是獨(dú)立的,可用于擴(kuò)展不同類型的存儲(chǔ)器。當(dāng)系統(tǒng)中使用多個(gè)外部存儲(chǔ)器時(shí),通過FSMC相關(guān)參數(shù)的設(shè)置,可以避免存儲(chǔ)器對(duì)總線的訪問沖突。

(4)支持更為廣泛的存儲(chǔ)器型號(hào)。通過對(duì)FSMC的時(shí)間參數(shù)設(shè)置,擴(kuò)大了系統(tǒng)中可用存儲(chǔ)器的速度范圍,為用戶提供了靈活的存儲(chǔ)芯片選擇空間。

(5)支持代碼從FSMC擴(kuò)展的外部存儲(chǔ)器中直接運(yùn)行,而不需要首先調(diào)入內(nèi)部SRAM。

2.

FSMC的結(jié)構(gòu)與工作原理

在STM32內(nèi)部,F(xiàn)SMC的一端通過內(nèi)部高速總線AHB

連接到內(nèi)核CORTExM3,另一端則是面向擴(kuò)展存儲(chǔ)器的外部總線。內(nèi)核對(duì)外部存儲(chǔ)器的訪問信號(hào)發(fā)送到AHB

總線后,經(jīng)過FSMC轉(zhuǎn)換為符合外部存儲(chǔ)器通信規(guī)范的信號(hào),送到外部存儲(chǔ)器的相應(yīng)引腳,實(shí)現(xiàn)內(nèi)核與外部存儲(chǔ)器之間的數(shù)據(jù)交互。FSMC起到橋梁作用,既能夠進(jìn)行信號(hào)類型的轉(zhuǎn)換,又能夠進(jìn)行信號(hào)寬度和時(shí)序的調(diào)整。在屏蔽了不同存儲(chǔ)類型的差異后,使之對(duì)內(nèi)核而言沒有區(qū)別。

FSMC功能框圖如圖9.19

所示。FSMC包含三個(gè)主要模塊:AHB

接口(包含F(xiàn)SMC配置寄存器)、NORFlash/PSRAM控制器、NANDFlash/PC卡控制器。圖9.19

FSMC功能框圖

當(dāng)AHB

操作的數(shù)據(jù)寬度小于存儲(chǔ)器的數(shù)據(jù)寬度

時(shí),根據(jù)外部設(shè)備的類型,異步的數(shù)據(jù)傳輸有以下兩種情況:

(1)與具有字節(jié)選擇功能的存儲(chǔ)器進(jìn)行異步傳輸時(shí),F(xiàn)SMC一次讀入全部字節(jié),然后舍棄不用的字節(jié),期間字節(jié)控制NBL[1:0]為低電平;寫入時(shí),F(xiàn)SMC通過控制BL[1:0]取值保證寫入正確。

(2)與不具有字節(jié)選擇功能的存儲(chǔ)器進(jìn)行異步傳輸時(shí),禁止執(zhí)行字節(jié)寫入操作,但可以進(jìn)行字節(jié)讀操作(控制器讀出16

位數(shù)據(jù),舍棄不用的字節(jié),NBL[1:0]為低電平)。

3.

FSMC外部存儲(chǔ)器接口信號(hào)

FSMC支持的外部存儲(chǔ)器種類較多,接口信號(hào)可分為四類:NORFlash/PSRAM信號(hào)、公用信號(hào)、NANDFlash信號(hào)、PC卡信號(hào)。由于篇幅限制,這里只介紹與SRAM擴(kuò)展有關(guān)的NORFlash/PSRAM信號(hào)和公用信號(hào)。

FSMC的NORFlash/PSRAM接口信號(hào)如表9.8

所示。

9.6.2

FSMC擴(kuò)展存儲(chǔ)器

1.

存儲(chǔ)芯片簡介

IS62WV51216

是ISSI

公司生產(chǎn)的1

MB(512

K×16)CMOS靜態(tài)存儲(chǔ)器芯片,該芯片具有如下特點(diǎn):

2.

硬件設(shè)計(jì)與地址映像

1)FSMC擴(kuò)展SRAM接口設(shè)計(jì)從FSMC的外部存儲(chǔ)器接口信號(hào)和IS62WV51216

引腳功能來看,其引腳是兼容的,因而擴(kuò)展SRAM比較簡單。依據(jù)三總線連接規(guī)律,得到信號(hào)連接方式如表9.10

所示,圖9.20是其電路圖。圖9.20

溫馨提示

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

評(píng)論

0/150

提交評(píng)論