官术网_书友最值得收藏!

2.3 存儲器電路

2.3.1 存儲器概述

存儲器是用來存放數據的集成電路或介質,常見的存儲器有半導體存儲器(ROM、RAM)、光存儲器(如CD、VCD、MO、MD、DVD)、磁介質存儲器(如磁帶、磁盤、硬盤)等。存儲器是計算機極為重要的組成部分,有了它計算機才具有存儲信息的功能,才能使計算機可以脫離人的控制自動工作。單片機嵌入式系統中主要使用的存儲器是半導體存儲器,從使用功能上,可分為隨機存取存儲器(RAM)和只讀存儲器(ROM)兩類。RAM主要用于存放各種現場數據、中間計算結果,以及主機與外設交換信息等,它的存儲單元的內容既可讀出,又可寫入。ROM中存儲的信息只能讀出,不能寫入,如PC主板上的存放BIOS程序的芯片就是ROM存儲器。

在單片機系統中,RAM存儲器常用來作為數據存儲器,ROM存儲器常用來作為程序存儲器。RAM存儲器的優點是讀/寫方便,使用靈活,但斷電后RAM中的信息會丟失,為易失性存儲器。ROM存放的數據一般不能用簡單的方法對其內容進行改寫,正常使用時主要對其進行讀取操作,一般用于存放程序或一些固定的數據,一般在使用之前由生產廠家或用戶將內容直接寫入器件中。ROM存儲器的優點是在斷電時信息不會丟失,為非易失性存儲器。但寫入數據較為復雜,如何寫入數據通常與ROM的類型有關。

2.3.2 存儲器有關概念

1.存儲元

計算機中最小的信息單位是bit,也就是一個二進制位。存儲元是存儲器的最小存儲單位,是組成存儲器的基礎和核心,其作用是用來存放1位二進制代碼0或1。任何具有兩個穩定狀態(雙穩態)的物理器件都可以用來作為存儲元。存儲元也稱為存儲位元。

2.存儲單元

在存儲器中有大量的存儲元,把它們按一定的規則劃分為組,組內所有的存儲元同時進行讀出或寫入操作,這樣的一組存儲元稱為一個存儲單元。

一個存儲單元包含若干存儲元,其具體數量和存儲器組織有關。一般以8個存儲元作為1個存儲單元,也就是1個字節。也可以16個存儲元作為1個存儲單元,也就是2個字節。

在存儲器中每個存儲單元都有一個唯一的整數編碼,稱為存儲地址或字地址。計算機通過這個地址訪問相應的存儲單元。

存儲單元一般用十六進制數表示,而每一個存儲器地址中又存放著一組二進制表示的數,通常稱為該地址的內容。值得注意的是,內儲單元的地址和地址中的內容兩者是不一樣的。前者是存儲單元的編號,表示存儲器總的一個位置,而后者表示這個位置里存放的數據。正如一個是房間號碼,另一個是房間里住的人一樣。

3.存儲容量

存儲容量是指存儲器可以容納的二進制信息量。

存儲容量大小由存儲器的地址線和數據線多少決定。假設某存儲器芯片有M條地址線和N條數據線,則M決定了存儲單元數,N決定了每個存儲單元的數據位數。

芯片的存儲容量=存儲單元數×每個存儲單元的數據位數=2M×N。例如,RAM存儲器RAM 62256的地址線為A0~A14,共15線,數據線為D0~D7,共8線,則該存儲器容量為215×8=262144存儲元。

半導體存儲器芯片是以位b(Bit)為基本單位說明其存儲容量的。但通常我們是以字節B(Byte)為基本單位說明其存儲容量的。

每一千個字節稱為1KB,注意,這里的“千”不是我們通常意義上的1000,而是指1024。即1KB=210B=1024B。更大的存儲單位是MB(220B)、GB(230B)、TB(240B)。

另外,需要注意的是,存儲產品生產商會直接以1GB=109B,1MB=106KB,1KB=103B的計算方式統計產品的容量,這就是為何買回的存儲設備容量達不到標稱容量的主要原因。

下面將分別簡介RAM和ROM兩大類存儲器。

2.3.3 RAM存儲器

RAM存儲器是指斷電時信息會丟失的存儲器,但是這種存儲器可以現場快速地修改信息,所以RAM存儲器是可讀/寫存儲器,一般都作為數據存儲器使用,用來存放現場輸入的數據,或者存放可以更改的運行程序和數據。根據其工作原理不同,可分為以下兩類:基于觸發器原理的靜態讀/寫存儲器(Static RAM,SRAM)和基于分布電容電荷存儲原理的動態讀寫存儲器(Dynamic RAM,DRAM)。前者相對讀/寫速度快,且大多數與相同的程序存儲器EPROM引腳基本兼容,利于印制板電路設計,使用方便,但是集成度低,成本高,功耗大。后者集成度高,成本低,功耗相對較低,但是由于分布電容上的電荷會隨時間而泄漏減少,為保持其內容,需要對其周期性地刷新(即對電容充電),這就需要增加一個刷新電路,附加額外的成本。

一般SRAM用于僅需要小于64KB數據存儲器的小系統,如單片機系統,或作為大系統中的高速緩沖存儲器,如PC的CPU中的Cache;而DRAM常用于需要大于64KB的大系統,這樣刷新電路的附加成本會被大容量的DRAM的低功耗、低成本等利益所補償,大容量數據存儲器采用DRAM是最經濟的方案。

選擇SRAM的另一個依據是當需要用電池作為后備電源進行數據保護時,應該采用CMOS SRAM。這是因為1978年后推出的CMOS SRAM芯片都有低功耗工作方式,一般只要用2V電源電壓且在功耗極低的情況下就可以保持芯片中的數據信息。雖然用電池作為后備電源也可以保護DRAM中的數據,但是由于DRAM需要連續地動態刷新保持數據不變,這就需要給整個存儲器支持系統提供電功率,由此勢必需要使用大容量的電池作為后備電源,因此在單片機系統中常采用SRAM作為數據存儲器。

SRAM的基本結構如圖2.26所示。RAM的結構大體由三部分組成:用于選擇存儲單元的地址譯碼器、由存儲單元所構成的存儲單元矩陣、控制數據流向的輸入/輸出電路(包括讀/寫控制電路、片選信號及輸出緩沖器)。存儲器和外部設備的數據交換是通過數據線進行的,為了節約數據線,一般采用讀/寫共享數據線的方式,其上的數據流向由讀/寫控制電路決定。在存儲器電路中,通常把數據線上一次能傳送的數據稱為一個字,如8位數據線所傳送的字含8位二進制信息,稱字長為8。

每個存儲元可存儲1位二進制信息,存儲元常排列成矩陣的形式,構成存儲體。如一個1024字×1位的存儲芯片,常排列成32×32的矩陣形式,它表示有1024個可尋址的邏輯單元,可存儲1024個字,由這樣的4個存儲芯片就可組成1024字×4位的存儲器。

圖2.26 SRAM的基本結構

為了能夠對每個存儲單元進行讀/寫操作,各單元必須有各自的單元地址。當輸入一個地址碼時,利用地址譯碼器就可以在存儲矩陣中找到相應的存儲單元。

讀/寫控制電路用于控制對存儲單元的讀或寫操作。存儲器所設置的片選信號,使得只有在該片選信號有效時,才可以進行讀/寫操作。輸出緩沖器常采用漏極開路電路或三態輸出電路,以便存儲器的輸出可以并聯使用,從而擴充了存儲單元。下面對各組成部分分別加以介紹。

1.地址譯碼方式

地址譯碼有兩種方式,一種是單譯碼方式,或稱為字結構方式,適用于小容量存儲器;另一種是雙譯碼方式,或稱為X-Y譯碼結構。譯碼結構中,把地址譯碼輸出線稱為字選線,簡稱字線。每個存儲單元有兩條傳輸數據的原碼與反碼的數據位線,簡稱位線。位線是存儲體內的數據傳輸線,每一列中各存儲單元的位線是連通的,被選中單元的位線通過輸入/輸出電路可以與存儲器的數據總線相連。

(1)單譯碼結構

圖2.27所示為一種單譯碼結構的16字×4位的存儲器,共有64個存儲單元,排列成16行×4列的矩陣,每個小方塊表示一個存儲單元。電路設有4根地址線,可尋址24=16個地址邏輯單元,若把每個字的所有4位視為一個邏輯單元,使每個邏輯單元的4個存儲單元具有相同的地址碼,譯碼電路輸出的這16根字線剛好可以選擇16個邏輯單元,每選中一個地址,對應字線的4位存儲單元同時被選中。選中的存儲單元將與數據位線連通,即可按照要求實現讀或寫操作了。

圖2.27 16字×4位單譯碼結構存儲器

(2)雙譯碼結構

圖2.28所示為一個雙譯碼結構的16字×1的地址譯碼存儲器。視每個字的1位存儲單元構成一個邏輯單元,圖中每個小方塊表示一個邏輯單元。16個可尋址邏輯單元排列成4×4的矩陣,為減少地址譯碼電路的輸出數量,采用雙重譯碼結構,每個地址譯碼的輸出線數為22=4根(單譯碼方式需16根地址輸出線)。圖中,A0、A1是行地址碼,A2、A3是列地址碼。行、列地址經譯碼后分別輸出4根字線X0~X3和Y0~Y3。X字線控制矩陣中的每一行是否與位線連通,一行中究竟哪個邏輯單元被選中則由Y字線控制。被選中的單元將與數據線連通,以交換信息。

圖2.28 雙譯碼結構地址譯碼存儲器

2.讀/寫控制電路

在RAM結構中,讀出和寫入的數據線是公用的,為了控制電路中數據的流向,設立了專門的讀/寫控制電路。

圖2.29所示為1位數據的讀/寫控制電路。門G1、G2是控制信號為高電平有效的三態門,I/O線即為RAM的外接數據總線。在控制信號的作用下,它可以與存儲單元的內部數據線D接通或斷開。

當片選信號CS=0有效時,讀/寫控制信號WE可以控制信號的流向。若WE=1時,外電路向存儲器讀取數據,門G4導通,輸出高電平,門G3截止,對應輸出給三態門G1的控制信號無效,G1輸出高阻狀態,G2開啟,D上的數據通過G2送到總線I/O上,實現讀操作。當WE=0時,情況剛好和前面相反,這時G1開啟,G2輸出高阻狀態,數據只能由I/O送給D,實現寫操作。

目前大多數存儲器采用獨立的兩根信號線完成讀寫控制。其內部電路與圖2.29略有不同。

單片機系統常用的SRAM主要技術特性如表2.22所示。

圖2.29 讀/寫控制電路

表2.22 常用SRAM主要技術特性

3.靜態RAM 62256

圖2.30 RAM 62256引腳圖

(1)引腳圖

RAM 62256是一個32K×8位的靜態隨機讀/寫存儲器芯片,其引腳包含地址線15條,數據線8條,1個片選端,一個寫允許端和一個輸出允許端。該芯片功耗極低,在未選中時僅2.5W,工作時也僅40mW,很適合于用電池供電的RAM電路。圖2.30所示為RAM62256引腳圖。

引腳說明:A0~A14為地址線,D0~D7為數據線,為片選線;為輸出允許,為寫允許,VCC為工作電源(5V),GND為接地。

(2)工作方式表

RAM 62256工作方式如表2.23所示。

(3)連接使用方法

用戶對存儲器芯片的使用,實際上是如何按規定的地址范圍把它同CPU的系統總線正確地連接起來的問題。正常芯片的數據總線可以直接接到系統的數據總線上,地址線可直接連接到系統總線的地址線上,余下的問題是芯片的各控制端如何處理,即控制總線的接法。現以RAM 62256芯片與CPU總線連接為例加以說明。

表2.23 RAM 62256工作方式

在RAM 62256的數據總線和地址總線按一般規律連接后引腳可直接與相接,用總線的讀/寫信號控制芯片的讀/寫操作。的連接必須保證在要求的地址范圍內,片選信號低有效,這就存在如何處理總線的高位地址線的問題。在圖2.31中,從CPU的高位地址線A15產生信號,因為RAM 62256的為低有效,所以對于圖2.31(a)所示的接法,當A15=0時選中RAM 62256,RAM 62256的地址確定為0000H~7FFFH,而對于圖2.31(b)所示接法,當A15=1時選中RAM 62256,RAM 62256的地址確定為8000H~FFFFH。

圖2.31 RAM 62256的連接使用方法

RAM 62256寫入數據的過程如下:

① 在芯片的A0~A14上加入要寫入的單元的地址;

② 在D0~D7上加上要寫入的數據;

③ 在上加上有效的低電平;

④ 在上加上有效的低電平;

⑤ 在上加上高電平。

這樣就將數據寫到了地址所選中的單元中。

RAM 62256讀出數據的過程如下:

① 在芯片的A0~A14上加入要寫入的單元的地址;

② 在上加上有效的低電平;

③ 在上加上低電平;

④ 使為高電平。

這樣相應地址的數據便送到了D0~D7供讀取。

2.3.4 ROM存儲器

前已述及,只讀存儲器(ROM)的特點是:其內容是預先寫入的,而且一旦寫入,使用時就只能讀出不能改變,掉電時也不會丟失,ROM器件還具有結構簡單、信息度高、價格低、非易失性和可靠性高等特點。對ROM內容的設定(寫入)稱為編程。大多數單片機系統都需要某種形式的ROM存儲器存儲程序。ROM的種類較多,按存儲內容的寫入(常稱為編程)方式可分為固定ROM、可編程的PROM、可擦可編程的EPROM三類。可擦可編程的EPROM又分為UV-EPROM(紫外線擦除可編程,人們常把UV-EPROM稱為EPROM)、E2PROM(電擦除可編程)、Flash E2PROM(閃速存儲器)。

固定ROM又稱Mask ROM,需要存儲的信息由ROM制造廠家寫入,信息存儲可靠性最高,當用量很大時,單片成本最低。

可編程PROM又稱OTP ROM,需要存儲的信息由用戶使用編程器寫入,信息存儲可靠性次之,單片成本較低,只能使用一次,目前已較少使用。

可擦可編程的EPROM,存儲的信息可由用戶通過光或電的方法擦除,需要存儲的信息由用戶使用編程器寫入,信息存儲可靠性較低,單片成本較高。但由于其可反復使用,故得到大多數中小用戶的青睞。

這一類存儲器以閃速存儲器Flash E2PROM系列發展最快。閃速存儲器是Intel公司20世紀90年代初發明的一種高密度、非易失性的讀/寫半導體存儲器,它既有E2PROM的特點,又有RAM的特點,因而是一種全新的存儲結構。所謂的固態盤、U盤、MP3、CF卡等移動存儲器都是以Flash E2PROM作為存儲介質的。

1.ROM的結構與工作原理

ROM的結構與RAM十分相似,如圖2.32所示,它由存儲矩陣、地址譯碼器、輸出緩沖器電路組成。地址譯碼器可以是單譯碼,也可以是雙譯碼。

2.ROM的點陣結構表示法

如圖2.33所示,將存儲器字線和位線畫成相互垂直的一個陣列,每一個交叉點對應一個存儲元,交叉點上有黑點表示該存儲元存1,無黑點表示該存儲元存0,這就是存儲器的點陣圖表示方法。ROM點陣結構表示法是一種新思路,它對后來其他可編程器件的發展起到了奠基作用。

在圖2.33中,如果把ROM視為組合邏輯電路,則地址碼A1A0是輸入變量,數據碼D3~D0是輸出變量,由上圖可得輸出函數表達式:

圖2.32 ROM的結構框圖

圖2.33 ROM的點陣結構表示圖

邏輯函數是與或表達式,每一條字線對應輸入變量的一個最小項。由此可列出邏輯函數真值表,如表2.24所示。

表2.24 圖2.33中ROM存儲器的內容

3.可用紫外線擦除可編程只讀存儲器EPROM

EPROM是Erasable Programmable Read Only Memory的縮寫,因為其擦除方法是用紫外線照射,所以又稱為可用紫外線擦除可多次編程的ROM-UV-EPROM(Ultraviolet-Erasable Programmable Read Only Memory)。用戶可多次改寫內容,改寫時需要寬度約為50ms的高電壓編程脈沖,EPROM芯片外殼上方有窗口,當用紫外線通過這個窗口照射時,寫入的信息被擦除。為避免EPROM的內容在外來光線照射下慢性自動擦除,通常用一種不透光的標簽粘貼在窗口上。EPROM存儲芯片的基本用法與RAM大致相同。

(1)引腳與接線

圖2.34所示為64KB芯片EPROM 27C512外引腳及與CPU的接線方法。其中,A0~A15為地址線,O0~O7為數據線,為片選線,為輸出允許,VCC為工作電源(5V),GND為接地。

圖2.34 64KB芯片EPROM 27C512外引腳及與CPU的接線方法

27C512是64KB的EPROM,28腳雙列直插式封裝,地址線為16條,8位數據線帶三態輸出緩沖,為片選信號接地,表示在0000H~FFFFH范圍內全部選中27C512,OE為允許輸出引腳,讀出時只需單一的+5V電源,O0~O7為三態輸出,與TTL電平兼容。讀周期類似于RAM,當地址引腳上出現讀出單元地址,和OE都為低電平時,從O0~O7端可讀到數據。

部分EPROM主要技術特性如表2.25所示。新一代的單片機芯片內部都集成了32~64KB大容量的程序存儲器,所以單片機系統中已很少使用EPROM電路。

(2)編程操作

EPROM在工廠提供的產品未被編程前,所有的位都是邏輯1狀態,用戶根據需要使用專用設備編程器把邏輯0狀態寫入所希望的位。如果要把已經寫入的邏輯0改寫成邏輯l,不能用編程器實現,唯一的方法就是通過對EPROM芯片石英玻璃窗口照射一定劑量的紫外線,擦除芯片整片的信息后再重新編程。

表2.25 部分EPROM主要技術特性

4.電可擦除可編程只讀存儲器E2PROM(E2PROM)

E2PROM是一種具有掉電記憶功能的存儲器,其引腳與接線同SRAM,內容也可以像普通RAM一樣進行改寫,而且改寫時能夠自動擦除并換成新內容。它不像EPROM那樣需要紫外線擦除;而只需用電即可擦除并改寫存儲在其內部的內容。E2PROM通常在內部帶有編程電源。由于它只需外接單一的+5V電源,因此使用起來十分方便。

E2PROM的主要缺點是成本高,擦除和改寫的速度慢。

2.3.5 閃速存儲器

閃速存儲器(Flash Memory)可以用來存放程序,但由于其讀寫方便,也可以像RAM一樣存放需要修改的數據,但由于擦寫壽命限制,Flash Memory并不適合于數據頻繁改寫的場合,現場使用多以讀為主。與其他類型半導體存儲器相比較,Flash Memory具有大容量、讀/寫方便、非易失性和低成本4個顯著優點,在單片機控制系統和移動信息設備中得到廣泛的應用。隨著市場對Flash Memory需求的不斷擴大,各大半導體廠商正不斷推出功能更強、容量更大的Flash Memory產品,技術也日趨成熟。新一代閃速存儲器的特點及其功能描述如下。

(1)低電壓在線編程,使用方便,可多次擦寫

現代的Flash Memory都只使用5V或3V單電源供電,而編程時所需的高壓及時序均由片內的編程電路自動產生,外圍電路少,編程就像裝載普通RAM一樣簡單,而高壓編程電流也只有幾毫安,因此非常適合于在應用系統中(尤其在低電壓系統中)進行在線編程和修改,因而在智能化的工業控制和家電產品等方面都得到了很廣泛的應用。其可重復擦寫壽命也都在105次以上,能夠滿足許多場合的需要。

(2)按塊/按扇區擦除,按字節編程

Flash Memory產品,可以以小扇區為單位進行擦除(幾十字節到幾百字節為一個扇區),也可以全片快速擦除。而編程則是按字節進行的。

(3)完善的數據保護功能

Flash Memory具有以下5種軟硬件保護功能,保證片內數據不會意外丟失。

① 噪聲濾波器:所有的控制線都有過濾電路,以消除任何小于15 ns的噪聲脈沖。

VCC感應器:一般VCC跌至3.8V以下(對3V器件為1.8V以下)時,編程將被禁止。

③ 上電延遲:VCC在上電后的5ms內,編程被禁止。

④ 三線控制:OE、CE及WE三條控制線只要一條不處于正確電平,編程將被禁止。

⑤ 軟件數據保護:所有對Flash Memory的數據的改寫都需要通過編程算法完成。

在單片機系統中主要采用大容量的Flash Memory,如果單片機內存小于存儲器存儲容量,對Flash Memory的訪問可通過分頁面的方法來進行,詳細的接線方法見7.3節。

主站蜘蛛池模板: 正定县| 财经| 会东县| 临澧县| 喀喇沁旗| 临夏市| 吕梁市| 新竹市| 蒙城县| 辽宁省| 临潭县| 方正县| 阆中市| 疏勒县| 宜黄县| 曲麻莱县| 大田县| 高青县| 朔州市| 宁夏| 苏尼特左旗| 菏泽市| 武穴市| 曲沃县| 城口县| 东方市| 特克斯县| 泸定县| 东辽县| 景东| 西安市| 钦州市| 门源| 肥西县| 双峰县| 黑龙江省| 南川市| 朔州市| 岐山县| 永善县| 尉犁县|