《存儲技術(shù)基礎(chǔ)》課件第2章_第1頁
《存儲技術(shù)基礎(chǔ)》課件第2章_第2頁
《存儲技術(shù)基礎(chǔ)》課件第2章_第3頁
《存儲技術(shù)基礎(chǔ)》課件第2章_第4頁
《存儲技術(shù)基礎(chǔ)》課件第2章_第5頁
已閱讀5頁,還剩238頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章半導(dǎo)體存儲器2.1半導(dǎo)體存儲技術(shù)基本原理

2.2靜態(tài)隨機(jī)讀/寫存儲器

2.3動態(tài)隨機(jī)讀/寫存儲器

2.4只讀存儲器

2.5其他類型的半導(dǎo)體存儲器

小結(jié)

2.1半導(dǎo)體存儲技術(shù)基本原理

2.1.1半導(dǎo)體存儲器概述

半導(dǎo)體存儲器具有十分豐富的形式和特點(diǎn)。針對特定應(yīng)用而言,存儲器呈現(xiàn)出的特征主要包括存儲器的容量、讀/寫速度以及相應(yīng)的讀/寫模式。對于容量指標(biāo),電路設(shè)計(jì)者關(guān)注存儲器總?cè)萘浚创鎯ζ魈峁┑奈粩?shù)或者觸發(fā)器(寄存器)的個(gè)數(shù);芯片設(shè)計(jì)者則使用字節(jié)(B)、千字節(jié)(KB)、兆字節(jié)(MB)、吉字節(jié)(GB)等單位描述存儲容量;系統(tǒng)設(shè)計(jì)者則關(guān)心存儲器提供的可處理單元數(shù)目(字),如32位處理器中每個(gè)字可以認(rèn)為是32位寬。圖2.1描述了存儲器讀/寫的基本時(shí)序。讀時(shí)間定義為讀請求與有效數(shù)據(jù)穩(wěn)定讀出之間的延遲時(shí)間,而寫時(shí)間則是寫請求與輸入數(shù)據(jù)最終寫入到存儲的時(shí)間間隔。存儲器的讀/寫周期則是連續(xù)兩次進(jìn)行讀或?qū)懖僮鞯淖疃虝r(shí)間間隔,通常讀/寫周期要大于讀時(shí)間或?qū)憰r(shí)間。一般的存儲器讀/寫時(shí)間可以相同也可以不同,簡單起見,我們認(rèn)為讀/寫時(shí)間一致。

從存儲器的基本功能、讀/寫模式以及存儲機(jī)制角度看,存儲器可以分為不同的類型。其中最典型的分類是:讀/寫存儲器(Read-WriteMemory,RWM)和只讀存儲器(Read-OnlyMemory,ROM)。圖2.1存儲器讀/寫的基本時(shí)序

RWM能夠提供不同的操作類型,數(shù)據(jù)以觸發(fā)器形式存儲或者以電容上的電荷形式存儲,而觸發(fā)器形式的單元稱做靜態(tài)存儲,只要有相應(yīng)電源供電就能保存內(nèi)部的數(shù)據(jù)信息。與之對應(yīng)的電荷形式存儲單元則稱做動態(tài)存儲,為了防止漏電流導(dǎo)致的電荷損失,動態(tài)存儲必須定期進(jìn)行刷新操作以維持?jǐn)?shù)據(jù)信息。由于RWM必須維持供電保持存儲信息,故這類存儲可以歸為易失型半導(dǎo)體存儲器。

ROM利用半導(dǎo)體電路拓?fù)浣Y(jié)構(gòu)進(jìn)行信息編碼存儲,比如通過添加或刪除二極管(晶體管)進(jìn)行信息的存儲。由于拓?fù)浣Y(jié)構(gòu)是由內(nèi)部硬連線確定的,存儲數(shù)據(jù)只能讀出不能修改,因此ROM屬于非易失型半導(dǎo)體存儲器,即外部電壓的去除不會引起數(shù)據(jù)丟失。另外還有一類重要的非易失型半導(dǎo)體存儲器可以提供讀功能和寫功能,如可擦除的可編程只讀存儲器(EPROM)、電可擦除的可編程只讀存儲器(E2PROM)以及閃速存儲器(FLASH),可以稱為非易失型讀/寫存儲器(NonvolatileRead-WriteMemory,NVRWM),其主要特點(diǎn)就是掉電信息不丟失以及寫操作時(shí)間比讀操作時(shí)間長。存儲器按數(shù)據(jù)獲取方式不同可以分為隨機(jī)獲取存儲器(RandomAccessMemory,RAM)和順序獲取存儲器(SequenceAccessMemory,SAM)。目前大多數(shù)存儲器均屬于隨機(jī)獲取存儲器,即數(shù)據(jù)存儲的位置與相應(yīng)的讀/寫方式無關(guān)。這里需要說明的是,大多數(shù)ROM和NVRWM同樣可以進(jìn)行數(shù)據(jù)的隨機(jī)存取操作,而一般采用RAM表示RWM型存儲器。相應(yīng)的順序獲取存儲器則對數(shù)據(jù)的讀/寫方式與存取位置進(jìn)行約束,用以獲得速度、面積或者特殊功能方面的性能。這類存儲器主要有:先入先出存儲器(First-InFirst-Out,F(xiàn)IFO)、后入先出存儲器(Last-InFirst-Out,LIFO)、移位寄存器(ShiftRegister)和內(nèi)容尋址存儲器(Contents-AddressableMemory,CAM)。表2.1給出了半導(dǎo)體存儲器的分類。在接下來的部分,我們將選擇典型的存儲器說明其內(nèi)部基本單元和相應(yīng)外部電路的構(gòu)造。

最后一種對半導(dǎo)體存儲器分類的方式是根據(jù)數(shù)據(jù)輸入和輸出端口的數(shù)目進(jìn)行的,如將常用的存儲器輸入和輸出共享單一的端口稱做單端口存儲器。而為了提高存儲器讀/寫的吞吐率,有時(shí)會使用具有多個(gè)端口的存儲器,如FIFO存儲器內(nèi)部就是雙端口存儲器,而精簡指令集計(jì)算機(jī)(ReducedInstructionSetComputer,RISC)處理器中的寄存器文件則提供了更多的端口進(jìn)行讀/寫操作。表2.1半導(dǎo)體存儲器的分類2.1.2半導(dǎo)體存儲器基本結(jié)構(gòu)

對于一個(gè)N字、每字長為M位的存儲器,一種簡單直觀的組織方式如圖2.2(a)所示。圖2.2具有N個(gè)字且每個(gè)字長為M位的存儲結(jié)構(gòu)這種組織情況下,每個(gè)存儲字以順序的方式線性排列,對存儲字的讀/寫則通過N個(gè)選擇信號S0~SN-1進(jìn)行,這樣同一時(shí)刻只能有一個(gè)選擇信號有效以確保讀/寫正確。那么這種方式可以等效為每一個(gè)存儲字由M個(gè)D觸發(fā)器組成,而選擇信號S0~SN-1為對應(yīng)D觸發(fā)器的時(shí)鐘端。隨著存儲容量的不斷增長,這種方式會造成選擇信號急劇增長而無法適應(yīng)讀/寫要求。通過譯碼器方式可以有效地解決輸入引腳的問題,但是如果僅采用一維方式組織存儲器,則會引入存儲形狀和讀/寫速度問題。在一維方式情況下,存儲器組織為狹長線性形狀將不利于在晶圓上進(jìn)行布局安排,如果在存儲容量較大情況下,甚至無法生產(chǎn)具體的芯片。另外一個(gè)重要問題就是讀/寫速度無法得到提高,造成與輸入/輸出端口處距離較遠(yuǎn)的存儲單元存取連線變長而增加了延遲,降低了讀/寫速度。為了解決上述問題,存儲單元陣列通常以二維形式出現(xiàn),使得長寬比接近1∶1。這種情況下,存儲陣列具有行列結(jié)構(gòu),由行地址譯碼器選擇陣列中的某一行進(jìn)行讀/寫操作(激活該行),該行中按列形式存放了多個(gè)數(shù)據(jù)字單元,因此還需要列地址譯碼器以決定具體進(jìn)行讀寫的存儲字單元。如圖2.3所示,相應(yīng)的行譯碼器輸入構(gòu)成行地址(Ak~AL-1),列譯碼器的輸入構(gòu)成列地址(A0~Ak-1),存儲器容量為2L×M位。通常稱行譯碼的輸出為字選擇線,而列譯碼的輸出為位選擇線。為了節(jié)省存儲器的面積(這一點(diǎn)對存儲芯片設(shè)計(jì)非常關(guān)鍵),在構(gòu)成存儲單元時(shí)一般不會選擇采用寄存器方式實(shí)現(xiàn)(寄存器單元通常需要10個(gè)以上的晶體管),而會采用特定的存儲單元方式實(shí)現(xiàn)基本存儲位。這種特定的存儲單元必然在其他性能方面進(jìn)行折中,如噪聲容限(NoiseMargin)、邏輯擺率(LogicSwing)、輸入/輸出隔離(Input/OutputIsolation)、扇出(Fan-Out)及速度。對性能上的折中,雖然存儲單元核可以承受,但是對外部電路接口則無法辨識。圖2.3給出的存儲規(guī)模一般不超過256KB,對于更大容量的存儲器,則因?yàn)榫€長、電容、電阻等的增大使得讀/寫速度急劇下降。由此必須采用更新的組織方式構(gòu)建大容量的存儲器,即分層結(jié)構(gòu)存儲組織,如圖2.4所示。從圖中可見,相應(yīng)的存儲由P個(gè)較小的塊構(gòu)成。其中每一個(gè)單獨(dú)的存儲塊結(jié)構(gòu)與圖2.3相同。在這種情況下,行列地址分別連接到每一個(gè)單獨(dú)的存儲塊上,然后通過新增的塊地址選擇要訪問的存儲塊,對需要的存儲字進(jìn)行讀/寫操作。圖2.4分層結(jié)構(gòu)存儲組織2.1.3靜態(tài)隨機(jī)讀/寫存儲

通用的靜態(tài)隨機(jī)讀/寫存儲器(SRAM)內(nèi)部結(jié)構(gòu)如圖2.5所示,每一位存儲需要6個(gè)晶體管構(gòu)成。對存儲單元的操作通過字線控制稱為導(dǎo)通管的M5和M6進(jìn)行選擇。兩個(gè)位線用于傳輸存儲的位信息,且互相極性相反。

由圖2.5可見,SRAM單元讀操作性能取決于對位線負(fù)載電容的充(放)電過程,而寫操作性能則取決于內(nèi)部交叉耦合反相器的傳播延遲。圖2.5六管SRAM存儲單元[7]

SRAM的寫操作過程如下:

為了確保正確進(jìn)行寫操作,假設(shè)存儲單元保存位信息為1,然后通過設(shè)置BL?=?0及=1產(chǎn)生類似于D觸發(fā)器的復(fù)位信號對存儲單元寫入0信息。在寫操作的開始階段,SRAM存儲單元可簡化為圖2.6。圖2.6SRAM寫模型[7]對于大容量存儲陣列,則從不同方面提出了對SRAM單元結(jié)構(gòu)的改進(jìn),如晶體管的拓?fù)浣Y(jié)構(gòu)、特殊器件和更復(fù)雜的工藝等。例如,圖2.7給出了一種四管結(jié)構(gòu)的SRAM單元,該結(jié)構(gòu)采用一對阻型負(fù)載的NMOS反相器替代原有交叉耦合的CMOS反相器,同時(shí)用電阻替代PMOS構(gòu)成的負(fù)載管M2和M4。這種結(jié)構(gòu)不僅簡化了內(nèi)部連線,還有效縮小了存儲單元的面積,據(jù)估算,面積下降約1/3。但是具體電阻值的選擇方法將直接影響存儲單元的功耗和存取速度。另外,采用薄膜工藝的晶體管存儲單元(Thin-FilmTransistors,TFTs)也具有面積小等特點(diǎn),成為SRAM存儲單元的主要實(shí)現(xiàn)方式。圖2.7四管SRAM存儲單元[7]對于高速應(yīng)用,如Cache或控制存儲,其讀/寫速度在5ns以內(nèi),相應(yīng)的存儲單元則通常采用雙極性SRAM單元。這種類型的存儲結(jié)構(gòu)采用正反饋方式進(jìn)行數(shù)據(jù)信息的存取操作。圖2.8(a)說明了廣泛采用的一種雙極性SRAM單元結(jié)構(gòu),即SBD(Schottky-BarrierDiode)負(fù)載單元。SBD存儲單元內(nèi)含一對交叉耦合的雙極性反相器,位線則通過電阻與供電電源

1.5V連接。SBD存儲單元的工作原理可以簡單描述如下:當(dāng)存儲單元沒有被選中時(shí)工作在等待模式(見圖2.8(b)),通過WL1和WL2分別連接到1.3V和0.3V使該存儲單元操作于1V左右的低電壓環(huán)境中。圖2.8SBD型SRAM結(jié)構(gòu)及工作模式2.1.4動態(tài)隨機(jī)讀/寫存儲

從上述對靜態(tài)SRAM結(jié)構(gòu)的描述可見,負(fù)載管的作用僅僅是補(bǔ)充漏電流損失的電荷。為了減少面積降低成本,我們可以將SRAM中的負(fù)載管去掉,而定期地對存儲單元內(nèi)容進(jìn)行重寫,以保持相應(yīng)的信息。這種重寫操作通常稱為刷新,每次刷新實(shí)際上包括對存儲單元的讀操作并緊接著進(jìn)行寫操作。具有刷新功能的隨機(jī)讀/寫存儲器信息保存在存儲單元分布電容上,并且其內(nèi)容將會以動態(tài)形式維持,這一類半導(dǎo)體存儲器則稱為動態(tài)隨機(jī)讀/寫存儲器(DRAM)。需要說明的是,刷新操作既不能過于頻繁,也不能過于緩慢。如果頻繁進(jìn)行刷新操作,雖然能夠較好地保存信息,但是將減少可以正常讀/寫的工作時(shí)間,且降低了讀/寫速率。如果長時(shí)間不能刷新,存儲的信息就有可能丟失。為此,刷新的頻率必須適當(dāng)選擇,確保在存儲單元分布電容上的電荷沒有喪失分辨率的臨界時(shí)間以便及時(shí)刷新。對于一般的動態(tài)隨機(jī)讀/寫存儲器,存儲單元的刷新間隔時(shí)間在1~4ms以內(nèi)。具體型號的DRAM將會在數(shù)據(jù)手冊中明確刷新間隔時(shí)間。下面從兩種不同類型的DRAM結(jié)構(gòu)出發(fā),對DRAM存儲單元進(jìn)行詳細(xì)說明。

1.三管動態(tài)存儲單元

最早的動態(tài)存儲單元由三個(gè)晶體管構(gòu)成,其結(jié)構(gòu)見圖2.9。這種類型的存儲單元在四管靜態(tài)存儲單元的基礎(chǔ)上去掉了用于負(fù)載的電阻,并且將用于表示信息的互補(bǔ)的兩個(gè)晶體管減少到了一個(gè),因此僅需三個(gè)晶體管即可實(shí)現(xiàn)對信息的存儲。這種類型的存儲單元由于具有相對簡單的結(jié)構(gòu),在當(dāng)前某些專用集成電路場合仍在使用。圖2.9三管動態(tài)存儲單元三管動態(tài)存儲器的主要特點(diǎn)如下:

(1)與SRAM存儲單元相比而言,三管動態(tài)存儲單元器件沒有方向比方面的約束。也就是說,器件尺寸僅考慮性能和可靠性方面的因素。而這一點(diǎn)通常在SRAM存儲單元是較難做到的。

(2)與其他DRAM存儲單元相比而言,讀三管動態(tài)存儲單元對存儲信息沒有破壞,即存儲的數(shù)據(jù)信息不受讀操作的影響。

2.單管動態(tài)存儲單元

我們可以通過犧牲某些特性而進(jìn)一步減少動態(tài)存儲單元的面積及操作復(fù)雜度。其中,在商業(yè)存儲領(lǐng)域應(yīng)用最成功的當(dāng)屬單管動態(tài)存儲單元。圖2.10是對應(yīng)單管動態(tài)存儲單元的電路。單管動態(tài)存儲單元原理非常簡單,在寫操作過程中,位線BL放置具體的數(shù)據(jù),而字線WL被升高。圖2.10單管動態(tài)存儲單元2.1.5只讀存儲器

對于只讀類型存儲器,我們將分為不可修改ROM和可修改ROM分別進(jìn)行介紹。

1.不可修改ROM

不可修改ROM通常在生產(chǎn)過程中就確定其內(nèi)部的信息,而使用過程中則不允許進(jìn)行修改。在諸如家電控制、計(jì)算器和游戲機(jī)等信息固定的應(yīng)用場合經(jīng)常會使用這種類型的存儲器。由于單一的讀出功能,因此設(shè)計(jì)具體存儲單元的時(shí)候?qū)⑾鄬唵?,只要確保當(dāng)存儲器的字線選通后在位線上給出固定的信息位即可。圖2.11給出了三種常用的實(shí)現(xiàn)0、1信息存儲的方法。圖2.11不同工藝下的ROM存儲單元[7]圖2.11(b)所示的雙極性ROM單元則通過雙極性器件替代二極管實(shí)現(xiàn)減少WL驅(qū)動能力的目的。與二極管方式的區(qū)別就在于存儲單元是通過雙極性晶體管的集電極向BL上的分布電容充電。這種獨(dú)立供電的方式雖然減少了WL的壓力,但是會帶來復(fù)雜度和面積的問題。圖2.12給出了4?×?4雙極性ROM陣列的實(shí)例,由圖可見,為了給每一個(gè)存儲1數(shù)據(jù)的單元供電,需要增加額外的供電線路使得存儲單元面積有所增加。圖2.12雙極性ROM陣列[7]圖2.11(c)所示的ROM存儲單元方式為MOS管方式,這種方式能夠提供相對更低的功耗以及更高的集成度。在MOS管型ROM中,BL則通過電阻性器件上拉到供電電壓VDD,因此默認(rèn)輸出為高電平,即在WL與BL間沒有MOS管的情況下存儲數(shù)據(jù)1。當(dāng)WL與BL間通過MOS管連接后,則一旦WL打開,MOS管BL將和地連通,因此表示0數(shù)據(jù)。圖2.13給出了具體MOS型ROM的實(shí)例,其中存儲陣列為4×4。圖2.13MOS型ROM陣列[7]

2.可修改ROM

對于可修改ROM結(jié)構(gòu),同樣可以看做由放置在字線和位線上的晶體管組成的陣列構(gòu)成。通常編程修改ROM的內(nèi)容采用外加電壓的方式改變內(nèi)部晶體管的閾值而實(shí)現(xiàn)。在進(jìn)行新的編程之前,需要對ROM內(nèi)容進(jìn)行擦除,擦除方式的不同則是不同種類可編程非易失存儲器的主要區(qū)別所在。一般情況下,ROM的編程速度比正常的讀操作慢一個(gè)數(shù)量級。下面我們首先給出可編程存儲器核心部件浮柵晶體管的基本情況,然后具體介紹三種常見類型的可編程存儲器。多年來,采用電可修改并且能夠可靠讀/寫的非易失型存儲器件一直是研究的重點(diǎn)。在這一過程中,有些器件沒有獲得成功,如MNOS型晶體管。但是浮柵晶體管的出現(xiàn)則成為解決非易失性半導(dǎo)體存儲技術(shù)的關(guān)鍵器件,成為目前可編程ROM器件的核心,其結(jié)構(gòu)和邏輯符號見圖2.14。浮柵晶體管結(jié)構(gòu)與MOS器件相似,但是在柵極和溝道之間增加了額外的多晶硅帶。由于該多晶硅帶沒有與任何部分相連,通常稱為浮柵。增加浮柵的作用在于使得柵氧化層厚度加倍以減少器件跨導(dǎo),從而增加閾值電壓。通常情況下,浮柵晶體管可以與普通晶體管一樣工作。圖2.14浮柵晶體管[7]浮柵晶體管因?yàn)榫哂锌烧{(diào)閾值電壓的特點(diǎn),所以在可編程ROM存儲器中得到了廣泛使用。對閾值電壓的編程通過在源極與柵漏間加15~20V電壓實(shí)現(xiàn)。該高電壓將產(chǎn)生強(qiáng)電場從而引起雪崩注入使得電子獲得能量從而穿過第一層氧化絕緣隔離后被浮柵捕獲。浮柵捕獲的電子將使得浮柵電壓下降,如圖2.15(a)所示。隨著浮柵電壓的下降,相應(yīng)電子的能量也將減弱而不能穿越氧化絕緣隔離,因此使得浮柵減少對應(yīng)捕獲的電子數(shù)。當(dāng)去除外加電壓,浮柵電子將留在其內(nèi)使柵極中間形成負(fù)電壓(見圖2.15(b)),這樣相當(dāng)于增加了閾值電壓,即當(dāng)外加電壓為5V時(shí)已經(jīng)無法打開相應(yīng)的浮柵晶體管,為了克服中間的負(fù)電壓,必須在柵極加7V左右的電壓才可以打開該晶體管(見圖2.15(c))。由于采用二氧化硅作為絕緣隔離,當(dāng)編程高電壓去除后,浮柵上的電子很難泄漏(一般可保存數(shù)十年)。因此可以用浮柵晶體管實(shí)現(xiàn)非易失型半導(dǎo)體存儲器。圖2.15對浮柵晶體管的編程過程[7]根據(jù)擦除方式的不同,將可編程ROM分為以下三種類型:可擦除編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(E2PROM)以及閃速電可擦除編程只讀存儲器(FLASH)。

1)可擦除編程只讀存儲器(EPROM)

EPROM的擦除功能是通過芯片封裝透明窗口照射強(qiáng)紫外線實(shí)現(xiàn)的。紫外線放射源將在半導(dǎo)體材料上直接產(chǎn)生電子空穴而使得浮柵之間的氧化物層逐漸具有可導(dǎo)性,以使浮柵的電子能夠去除以達(dá)到擦除的目的。根據(jù)紫外線的強(qiáng)度,擦除的時(shí)間從數(shù)秒到數(shù)分鐘不等。而對于編程過程,平均而言能夠?qū)崿F(xiàn)每單位字需要5~10μs。對于EPROM而言,由于紫外線原因,編程和擦除次數(shù)是有限的,一般最多可達(dá)一千次。重復(fù)編程還會使得器件的閾值電壓發(fā)生變化以至于影響EPROM的可靠性。為此,大多數(shù)EPROM均會在芯片內(nèi)部設(shè)計(jì)電路以控制閾值電壓在特定范圍之內(nèi)。EPROM的存儲單元構(gòu)造簡單,而且整體集成度高,因此適合進(jìn)行大批量的低成本生產(chǎn)以應(yīng)用于不需要過多進(jìn)行編程操作的場合。

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

EPROM器件需要進(jìn)行離線的擦除操作,使得應(yīng)用受到了限制。而E2PROM則可以在線方式進(jìn)行編程及擦除時(shí)避免繁雜的工作。E2PROM采用了改進(jìn)的浮柵晶體管器件實(shí)現(xiàn)上述功能。這種器件稱為浮柵隧道氧化物晶體管(FLOTOX)。FLOTOX晶體管結(jié)構(gòu)如圖2.16所示,用于將浮柵的通道與漏極分割的絕緣體的厚度減少到10nm甚至更小。當(dāng)外加10V左右的電壓于薄絕緣體后,浮柵上電子將通過Fowler-Nordheimtunneling機(jī)制進(jìn)行流動實(shí)現(xiàn)對該單元的編程操作。圖2.16FLOTOX晶體管[7]這種E2PROM編程方式的主要優(yōu)點(diǎn)在于可逆性,即擦除操作只需在寫過程中將外加電壓反向即可完成。向浮柵注入電子將升高閾值電壓,而反向操作會降低閾值電壓,這樣必然使得閾值電壓的控制復(fù)雜。如果浮柵上泄漏過多的電子,那么將導(dǎo)致存儲單元無法被字線選中而截至,使得器件損傷。為了解決這個(gè)問題,通常在浮柵晶體管上串聯(lián)一個(gè)附加晶體管構(gòu)成E2PROM的基本存儲單元。圖2.17為具體的邏輯結(jié)構(gòu)。雙晶體管的E2PROM結(jié)構(gòu)造成了其存儲單元面積比EPROM的大。在生產(chǎn)過程中,薄絕緣氧化物制造非常困難,因此E2PROM的單存儲位成本遠(yuǎn)比EPROM高。但是另一方面,E2PROM卻非常靈活。E2PROM具有較強(qiáng)的抗損耗特點(diǎn),能夠支持105次的擦除或編程操作。圖2.17由FLOTOX構(gòu)成的E2PROM存儲單元

3)閃速電可擦除編程只讀存儲器(FLASH)

閃速E2PROM的概念早在1984年就已經(jīng)提出,并且迅速得到發(fā)展,已經(jīng)成為目前較為流行的半導(dǎo)體存儲結(jié)構(gòu)。FLASH結(jié)合了EPROM的集成度和E2PROM的靈活性特點(diǎn),達(dá)到了成本和功能的折中。從結(jié)構(gòu)上看,F(xiàn)LASH是EPROM和E2PROM的組合形式。大多數(shù)FLASH器件采用雪崩熱電子注入方式進(jìn)行編程,而采用類似E2PROM中Fowler-Nordheimtunneling機(jī)制進(jìn)行擦除操作。在FLASH的擦除過程中,通常對整個(gè)芯片的大部分或者存儲的子部分同時(shí)進(jìn)行。這種擦除雖然顯得不夠靈活,但是卻能夠?qū)2PROM中額外添加的晶體管去除而且成批的擦除也能使得速度提高。以上對主要的非易失型讀/寫存儲器進(jìn)行了簡單介紹。為了更全面地了解只讀存儲器,表2.2給出了三種類型ROM的主要技術(shù)指標(biāo)。這些指標(biāo)再次印證了由于E2PROM的靈活性造成了性能和集成度的損失,EPROM和FLASH在集成度和速度方面基本相當(dāng),而FLASH的靈活性卻使得其應(yīng)用更為廣泛。另外需要注意的是,在對所給出的各種結(jié)構(gòu)編程時(shí)要在字線和位線上加12~20V的電壓,而進(jìn)行讀操作時(shí)僅需3~5V的標(biāo)準(zhǔn)電壓即可。表2.2不同類型ROM特征[7]

2.2靜態(tài)隨機(jī)讀/寫存儲器

2.2.1典型芯片

SRAM由于具有操作簡單、可靠性高的特點(diǎn),在實(shí)際應(yīng)用系統(tǒng)中仍然得到廣泛使用。目前,知名的存儲器件生產(chǎn)廠商均有各自的SRAM產(chǎn)品系列,如Cypress、Infienon、IDT、White等.下面就以Cypress公司的SRAM芯片CY7C1061AV33為例來說明靜態(tài)隨機(jī)讀/寫存儲器在應(yīng)用系統(tǒng)中的使用方法。

CY7C1061AV33是一款高密度的CMOS靜態(tài)隨機(jī)讀/寫存儲器,圖2.18和圖2.19給出了具體的邏輯結(jié)構(gòu)和封裝引腳(CY7C1061AV33的封裝和邏輯見數(shù)據(jù)手冊)。表2.3則給出了芯片管腳定義。圖2.18CY7C1061AV33邏輯結(jié)構(gòu)圖2.19CY7C1061AV33管腳表2.3CY7C1061AV33的管腳定義

CY7C1061AV33的特點(diǎn)如下:

(1)高速讀/寫,其存儲獲取時(shí)間可為8ns、10ns或12ns,對應(yīng)系統(tǒng)最高頻率可達(dá)125MHz;

(2)動態(tài)功耗低,最大為1080mW;

(3)供電電壓為(3.3?±?0.3)V;

(4)管腳信號電平兼容TTL規(guī)范;

(5)單片容量1M?×?16b;

(6)提供兩種封裝形式,54針TSOPⅡ和48球的微型BGA(MiniBGA);

(7)提供商業(yè)級和工業(yè)級芯片。下面具體說明CY7C1061AV33存儲芯片的工作模式及時(shí)序特征。

1.寫功能實(shí)現(xiàn)

當(dāng)進(jìn)行寫操作時(shí),芯片的兩個(gè)片選使能和CE2分別接低電平和高電平,并且置寫使能信號為低電平,則將數(shù)據(jù)寫入對應(yīng)地址位置。如果高字節(jié)有效信號為低電平,那么16位數(shù)據(jù)中高8位寫入相應(yīng)位置。對應(yīng)地,如果低字節(jié)有效信號為低電平,那么16位數(shù)據(jù)中低8位寫入相應(yīng)位置。如果字節(jié)有效信號同時(shí)有效,那么可以實(shí)現(xiàn)16位字?jǐn)?shù)據(jù)的寫入。

2.讀功能實(shí)現(xiàn)

當(dāng)進(jìn)行讀操作時(shí),芯片的兩個(gè)片選使能和CE2分別接低電平和高電平,并且置輸出使能信號為低電平,寫使能信號為高電平,則從對應(yīng)地址讀出數(shù)據(jù)至總線。如果高字節(jié)有效信號為低電平,那么高8位數(shù)據(jù)有效讀出。如果低字節(jié)有效信號為低電平,那么低8位數(shù)據(jù)有效讀出;如果字節(jié)有效信號同時(shí)有效,那么可以實(shí)現(xiàn)16位字?jǐn)?shù)據(jù)的讀出。

3.高阻功能實(shí)現(xiàn)

當(dāng)接口信號出現(xiàn)如下情況之一時(shí),相應(yīng)數(shù)據(jù)輸出將呈現(xiàn)高阻狀態(tài):

(1)片選無效,即為高電平或者CE2為低電平;

(2)輸出無效,即為低電平;

(3)字節(jié)使能無效,即當(dāng)高字節(jié)有效信號為高電平時(shí),I/O15~I(xiàn)/O8為高阻狀態(tài),當(dāng)?shù)妥止?jié)有效信號為高電平時(shí),I/O7~I(xiàn)/O0為高阻狀態(tài);

(4)寫操作期間,即在寫過程中,當(dāng)有效數(shù)據(jù)出現(xiàn)之前,數(shù)據(jù)信號將呈現(xiàn)高阻狀態(tài),具體可見寫時(shí)序圖。

4.讀操作時(shí)序

CY7C1061AV33支持兩種形式的讀操作,具體操作時(shí)序見圖2.20。

在使用CY7C1061AV33進(jìn)行讀操作時(shí),相應(yīng)的時(shí)序變量必須結(jié)合不同速度等級要求以滿足數(shù)據(jù)手冊給出的限制。圖2.20兩種讀操作時(shí)序

5.寫操作時(shí)序

CY7C1061AV33支持三種形式的寫操作,具體操作時(shí)序如圖2.21所示。

同樣,圖中給出的時(shí)序變量也必須滿足數(shù)據(jù)手冊給出的約束。圖2.21寫操作時(shí)序

6.操作真值表

表2.4給出了CY7C1061AV33的操作真值表。表2.4CY7C1061AV33的操作真值表從以上給出的真值表可以看出,由于SRAM的異步特點(diǎn)相應(yīng)控制信號非常簡單,因此非常適合應(yīng)用在微處理器、嵌入式和可編程邏輯等環(huán)境中。同時(shí)由于SRAM存儲單元的可靠性較高和讀/寫周期較短的特點(diǎn),也使SRAM在惡劣的高速環(huán)境(如航天/航空)中得到了廣泛使用,為此我們所介紹的CY7C1061AV33有商業(yè)級芯片和工業(yè)級芯片兩種。接下來,我們通過CY7C1061AV33在實(shí)際中的幾個(gè)典型應(yīng)用來進(jìn)一步說明SRAM芯片的使用方法,以期加深理解。2.2.2應(yīng)用實(shí)例分析

由于SRAM與微處理器系統(tǒng)總線(如80x86系列)連接方式已經(jīng)在眾多微處理器的資料中重點(diǎn)描述,我們在此主要針對SRAM與可編程邏輯器件(如FPGA/CPLD)相互連接使用的方法進(jìn)行詳細(xì)說明。首先給出系統(tǒng)邏輯結(jié)構(gòu),然后以硬件描述語言方式給出具體進(jìn)行讀/寫的實(shí)例,最后結(jié)合SRAM系統(tǒng)可靠性在設(shè)計(jì)方面的應(yīng)用給出采用前向糾錯方式的存儲器

讀/寫實(shí)現(xiàn)方法。

為了方便說明,我們選擇Xilinx公司的FPGA器件XC4VLX80作為主控芯片,而兩個(gè)CY7C1061AV33芯片構(gòu)成獨(dú)立的存儲空間。這樣我們可以實(shí)現(xiàn)的系統(tǒng)邏輯結(jié)構(gòu)圖如圖2.22所示。圖2.22FPGA與SRAM系統(tǒng)邏輯結(jié)構(gòu)應(yīng)用實(shí)例1:主控FPGA對SRAM單元進(jìn)行讀/寫檢測。具體實(shí)現(xiàn)過程如下所述,首先由FPGA發(fā)出對SRAM單元的寫操作,并在下一時(shí)鐘將該單元內(nèi)容讀出進(jìn)行比較,如果相同,則進(jìn)行下一個(gè)單元的讀/寫檢測,否則置錯誤信號有效。

系統(tǒng)設(shè)計(jì)的實(shí)體名稱為SRAM_VERIFACATION。

FPGA實(shí)體SRAM_VERIFICATION接口信號見表2.5。表2.5接口信號讀/寫檢測有限狀態(tài)機(jī)可見圖2.23。由圖可見,進(jìn)行讀/寫過程分為四個(gè)狀態(tài):空閑(IDLE)、寫(WRITE)、讀(READ)和比較(COMP)。當(dāng)復(fù)位后,系統(tǒng)進(jìn)入空閑狀態(tài)將內(nèi)部信號(如地址信號、輸出使能)清零,并發(fā)出寫有效信號進(jìn)入寫狀態(tài);在寫狀態(tài),保持當(dāng)前地址不變發(fā)出輸出使能信號進(jìn)入讀狀態(tài);在讀狀態(tài),獲得讀入的數(shù)據(jù),進(jìn)入比較狀態(tài);在比較狀態(tài)如果寫入數(shù)據(jù)與讀出數(shù)據(jù)一致并且沒有到達(dá)最后一個(gè)單元時(shí),那么地址遞增并轉(zhuǎn)換到寫狀態(tài),否則,如果有錯置相應(yīng)錯誤信號后切換到空閑狀態(tài)結(jié)束對整個(gè)芯片的檢測。圖2.23讀寫有限狀態(tài)機(jī)圖2.24給出了利用ModelSim進(jìn)行仿真的波形圖,由圖中可見,系統(tǒng)能夠正常對SRAM進(jìn)行讀/寫,滿足了預(yù)期的設(shè)計(jì)要求。圖2.24SRAM檢測仿真正常波形為了測試檢測程序的檢錯功能,我們通過將某一數(shù)據(jù)位恒置1方式加入了錯誤比特信息,圖2.25是相應(yīng)的仿真波形。圖2.25SRAM檢測仿真檢錯波形在以上給出的例子中,我們對存儲器進(jìn)行單個(gè)地址的寫操作并立即讀出進(jìn)行比對檢測。從仿真波形看,寫時(shí)序能夠確保一個(gè)時(shí)鐘周期的低脈沖滿足芯片的要求使得數(shù)據(jù)可以正常寫入。但是實(shí)際應(yīng)用的讀/寫模式則是不確定的,也就是說很可能出現(xiàn)對不同單元的連續(xù)寫操作,或者連續(xù)讀操作。當(dāng)出現(xiàn)連續(xù)讀操作時(shí),根據(jù)芯片的讀時(shí)序,可以將輸出使能OE保持在整個(gè)讀操作周期內(nèi)均為低電平,通過改變地址連續(xù)讀多個(gè)操作數(shù),相應(yīng)的波形可參見圖2.26。圖2.26連續(xù)讀操作時(shí)序一般的時(shí)序數(shù)字系統(tǒng),如果寫使能與時(shí)鐘同步,那么其脈沖寬度最小也應(yīng)為一個(gè)時(shí)鐘周期。這樣在一個(gè)時(shí)鐘內(nèi)產(chǎn)生小于周期的脈沖將很難實(shí)現(xiàn)。根據(jù)實(shí)際工程經(jīng)驗(yàn),寫使能仍然由時(shí)鐘信號給出,但是在連接到存儲芯片寫使能管腳時(shí),將其與時(shí)鐘邏輯運(yùn)算,進(jìn)而產(chǎn)生半個(gè)時(shí)鐘周期的寫低脈沖信號,實(shí)現(xiàn)對存儲芯片的連續(xù)寫功能。具體可見圖2.27和圖2.28給出的時(shí)序和邏輯結(jié)構(gòu)。圖2.27時(shí)鐘與寫使能運(yùn)算進(jìn)行連續(xù)寫操作時(shí)序時(shí)鐘與寫使能運(yùn)算進(jìn)行連續(xù)寫操作邏輯:

assignSRAMA_WE=(RamWe)?~CLOCK:1;

assignSRAMB_WE=(RamWe)?~CLOCK:1;

應(yīng)用實(shí)例2:在特殊應(yīng)用場合(如航天/航空、工業(yè)、高速處理等環(huán)境)中,SRAM存儲單元有可能受到輻射影響而產(chǎn)生單粒子翻轉(zhuǎn)效應(yīng)而造成讀/寫錯誤。因此,在實(shí)際的SRAM應(yīng)用中經(jīng)常會通過采用糾錯碼方式增加冗余,達(dá)到消除單粒子翻轉(zhuǎn)效應(yīng)影響的目的。下面給出通過硬件描述語言代碼方式實(shí)現(xiàn)漢明碼進(jìn)行讀寫SRAM的實(shí)例。

漢明碼參數(shù)為:碼長7位,信息位4位,校驗(yàn)3位,即用(7,4,3)表示。漢明碼性能:由于碼字間距離為3,根據(jù)相關(guān)理論,該碼在一個(gè)碼字內(nèi)可以糾單比特錯誤。

漢明碼的生成矩陣G和校驗(yàn)矩陣H分別為:

系統(tǒng)設(shè)計(jì)的實(shí)體名為:HAMMING_ENCODE(編碼)、HAMMING_DECODE(解碼)。

編碼部分接口信號如表2.6所示。表2.6編碼接口信號解碼部分接口信號如表2.7所示。表2.7解碼接口信號由糾錯編碼理論可知,編碼過程可以看做信息位與生成矩陣的乘積,即C?=?mG。而解碼過程則根據(jù)接收的碼字與校驗(yàn)矩陣乘積的情況判斷是否發(fā)生了錯誤以及錯誤的位置等信息。下面給出具體實(shí)現(xiàn)的硬件描述語言代碼。

漢明碼編碼過程:具體到SRAM讀/寫控制時(shí),一般會采用以下方式實(shí)現(xiàn)對存儲數(shù)據(jù)的保護(hù),如圖2.28所示。首先,我們應(yīng)結(jié)合漢明碼和SRAM存儲單元結(jié)構(gòu)選擇合適的保護(hù)方案,通常漢明碼具有碼長為2m-1,信息位長度為2m-1-m,然而單個(gè)存儲單元地址的位數(shù)則為2的冪次,如8位、16位、32位等。對于這種長度的不一致的情況,一種簡單的方法就是設(shè)置存儲單元的某一位為無關(guān)位,即不參與實(shí)際存儲系統(tǒng)的信息讀/寫,進(jìn)而滿足漢明碼碼長的要求。例如,上面給出的長度為7位的漢明碼,如果用于對字節(jié)存儲的保護(hù),則可以設(shè)最高存儲單元位為無關(guān)。圖2.28采用漢明碼進(jìn)行SRAM讀/寫的結(jié)構(gòu) 2.3動態(tài)隨機(jī)讀/寫存儲器

2.3.1典型芯片

動態(tài)隨機(jī)讀/寫存儲器由于內(nèi)部采用較少的CMOS管,使得其集成度非常高且單位價(jià)格非常低。因此,在個(gè)人計(jì)算機(jī)領(lǐng)域,主存部件通常采用動態(tài)隨機(jī)讀/寫存儲器實(shí)現(xiàn)。目前較為流行的有DDR2(雙倍速率DRAM)、DDR3等內(nèi)存條。但是,由于動態(tài)讀/寫必須具有刷新操作的特征,也使得硬件設(shè)計(jì)人員較難掌握DRAM的讀/寫操作。為此,我們以工程實(shí)踐中使用的同步動態(tài)隨機(jī)讀/寫存儲器SDRAM(Synchro-nousDRAM)為例來介紹SDRAM的基本參數(shù),以及工程使用方法等方面的內(nèi)容。以期通過這里的說明能夠?qū)討B(tài)存儲器在具體工程使用中有所幫助。目前SDRAM型號較多,這里我們以Micron公司生產(chǎn)的MT48LC系列SDRAM為例來具體說明。MT48LC系列根據(jù)內(nèi)部組織結(jié)構(gòu)的不同包含三個(gè)主要的64MbSDRAM存儲器,即MT48LC16M4A2、MT48LC8M8A2和MT48LC4M16A2。這三種SDRAM器件存儲容量均是64Mb,表2.8給出了具體的內(nèi)部結(jié)構(gòu)安排。表2.8MT48LC系列SDRAM存儲器結(jié)構(gòu)

MT48LCSDRAM的基本特征如下:

(1)與PC系統(tǒng)總線PC66、PC100、PC133兼容,可以連接到計(jì)算機(jī)主板上;

(2)最高工作時(shí)鐘為143MHz,存儲規(guī)格可以調(diào)整;

(3)全同步存儲,即所有信號在存儲器時(shí)鐘上升沿寄存;

(4)內(nèi)部流水操作,列地址可以連續(xù)時(shí)鐘切換;

(5)內(nèi)部由不同體(BANK)構(gòu)成,可以方便進(jìn)行預(yù)充(Precharge)和行地址選擇;

(6)突發(fā)讀/寫長度可以編程調(diào)整為1、2、4、8或整頁面;

(7)自動預(yù)充功能,即可以進(jìn)行并發(fā)預(yù)充和自刷新操作;

(8)自刷新模式,即標(biāo)準(zhǔn)模式和低功耗模式;

(9)刷新周期為64ms,4096個(gè)時(shí)鐘;

(10)電平標(biāo)準(zhǔn)兼容LVTTL輸入/輸出;

(11)單供電模式,電壓為(+3.3±0.3)V。

MT48LC系列存儲器是具有64Mb的高速CMOS動態(tài)存儲器,內(nèi)部分為4個(gè)同步接口的存儲體。在MT48LC16M4A2情況下,每一個(gè)16Mb體組織為4096行?×?1024列?×?4位的三維結(jié)構(gòu);MT48LC8M8A2中每一個(gè)16Mb體組織為4096行×512列×8位的三維結(jié)構(gòu);而MT48LC4M16A2的每一個(gè)16Mb體組織為4096行×256列×16位的三維結(jié)構(gòu)。MT48LC具有突發(fā)的讀/寫方式,可以根據(jù)預(yù)先編程的突發(fā)模式進(jìn)行對存儲體的有效訪問。讀/寫過程通過命令進(jìn)行控制,首先由激活(ACTIVE)命令啟動一次讀/寫過程并寄存訪存行地址與體地址,然后由READ命令或者WRITE命令實(shí)現(xiàn)對存儲單元的訪問,同時(shí)寄存訪存突發(fā)起始列地址用于定位具體的存儲單元。MT48LC讀/寫突發(fā)長度可以編程設(shè)定為1、2、4、8或整頁面,在突發(fā)過程中可以通過突發(fā)終止選擇停止突發(fā)讀/寫。在每次突發(fā)結(jié)束后可以通過自動預(yù)充方式對存儲體中的行進(jìn)行自刷新。MT48LC內(nèi)部采用流水方式處理,可以在對單體刷新的同時(shí)對其余三個(gè)體進(jìn)行讀/寫操作,這樣實(shí)現(xiàn)MT48LC的刷新隱藏使得讀/寫過程可以高速連續(xù)完成。在功耗方面,MT48LC采用3.3V供電方式并提供節(jié)能操作模式,輸入/輸出引腳兼容LVTTL電平。

圖2.29給出了MT48LC引腳圖,圖2.30則為對應(yīng)的內(nèi)部結(jié)構(gòu)圖。圖2.29MT48LC引腳圖圖2.30MT48LC16M4A2內(nèi)部結(jié)構(gòu)表2.9給出了MT48LC具體的管腳定義。表2.9MT48LC的管腳定義續(xù)表2.3.2SDRAM工作模式設(shè)定

在SDRAM正常工作前,SDRAM必須進(jìn)行初始化操作使其工作在預(yù)定義模式。當(dāng)SDRAM正常供電且時(shí)鐘穩(wěn)定后,除了命令禁止(COMMANDINHIBIT)和空操作(NOP)兩個(gè)命令外,其余命令必須延遲100μs才可以執(zhí)行,并且在這100μs延遲內(nèi)必須能夠執(zhí)行命令禁止和空操作之一。當(dāng)100μs延遲結(jié)束后,必須執(zhí)行一次預(yù)充(PRECHARGE)命令使得所有存儲體均得到預(yù)充并處于空閑狀態(tài)(IDLE)。接著,在經(jīng)過兩個(gè)自動刷新(AutoRefresh)周期后,必須對在上電過程中處于不定狀態(tài)的內(nèi)部模式寄存器進(jìn)行設(shè)置。該模式寄存器用于定義SDRAM當(dāng)前工作模式,如突發(fā)長度、突發(fā)類型、列選通CAS延遲、操作模式以及寫突發(fā)模式。模式寄存器由裝載模式寄存器命令(LOADMODEREGISTER)實(shí)現(xiàn)對其寫入。圖2.31給出了具體模式寄存器格式定義。其中模式寄存器中每位的含義在表2.10~2.14中給出。當(dāng)初始化過程結(jié)束后,SDRAM就可以進(jìn)行正常的讀/寫操作。正如前面所述,MT48LC是采用面向突發(fā)的讀/寫方式,因此接下來給出有關(guān)突發(fā)的基本過程。圖2.31模式寄存器格式表2.10突發(fā)長度列表表2.11突發(fā)類型表2.12CL延遲表2.13操作模式表2.14寫突發(fā)模式

1)突發(fā)長度

突發(fā)長度決定了在進(jìn)行讀/寫命令時(shí)可以獲取的最大列地址長度。突發(fā)長度本身可以通過模式寄存器實(shí)現(xiàn)對其編程設(shè)定。根據(jù)突發(fā)類型不同,在順序方式下,讀/寫的突發(fā)長度可以為1、2、4、8和整頁,而交織方式下,讀/寫的突發(fā)長度可以為1、2、4、8。其中整頁突發(fā)長度通常與突發(fā)終止命令(BURSTTERMINATE)實(shí)現(xiàn)任意長度的突發(fā)讀/寫操作。當(dāng)進(jìn)行讀/寫命令時(shí),與突發(fā)長度相等的一部分列地址將被選中。所有的突發(fā)操作將以該部分列地址給出的存儲單元為邊界。對于突發(fā)長度為2,MT48LC16M4A2由地址A9~A1確定突發(fā)邊界,MT48LC8M8A2由地址A8~A1確定突發(fā)邊界,MT48LC4M16A2由地址A7~A1確定突發(fā)邊界;對于突發(fā)長度為4,MT48LC16M4A2由地址A9~A2確定突發(fā)邊界,MT48LC8M8A2由地址A8~A2確定突發(fā)邊界,MT48LC4M16A2由地址A7~A2確定突發(fā)邊界;對于突發(fā)長度為8,MT48LC16M4A2由地址A9~A3確定突發(fā)邊界,MT48LC8M8A2由地址A8~A3確定突發(fā)邊界,MT48LC4M16A2由地址A7~A3確定突發(fā)邊界。整頁突發(fā)則在整個(gè)存儲體選定的整行內(nèi)進(jìn)行讀/寫操作。

2)突發(fā)類型

在確定了突發(fā)長度后,突發(fā)類型則明確了每次突發(fā)內(nèi)部各個(gè)列地址的模式。MT48LC采用兩種類型突發(fā),即順序和交織類型。而具體設(shè)置則由模式寄存器內(nèi)部相關(guān)位進(jìn)行說明。表2.15給出了在不同突發(fā)長度下,兩種突發(fā)類型確定的地址模式。表2.15兩種突發(fā)類型的地址模式

3)列選通CAS延遲

當(dāng)讀命令寄存后,第一有效的數(shù)據(jù)需經(jīng)過幾個(gè)時(shí)鐘的延遲才能穩(wěn)定出現(xiàn)在端口處,該延遲就是列選通CAS延遲(CASLatency,CL),通常采用時(shí)鐘數(shù)進(jìn)行標(biāo)識,如CL=2,3。圖2.32給出了兩個(gè)時(shí)鐘和三個(gè)時(shí)鐘延遲的讀波形。圖2.32不同CAS延遲的讀時(shí)序一般情況下,CL的確定直接影響著輸入時(shí)鐘頻率,表2.16給出了不同速度等級MT48LC的CL與時(shí)鐘頻率關(guān)系。表2.16列選通延遲與時(shí)鐘頻率的關(guān)系

4)?MT48LC操作命令

對MT48LC系列SDRAM的操作是通過命令字的形式來實(shí)現(xiàn)的,每個(gè)單獨(dú)命令字則由不同存儲器引腳的狀態(tài)確定。

表2.17給出了MT48LC命令字真值表。表2.17操作命令字真值表2.3.3SDRAM的操作命令

接下來,對具體各個(gè)命令進(jìn)行功能描述。

(1)命令禁止(COMMANDINHIBIT)。該命令使SDRAM無法執(zhí)行任何新的操作命令,即SDRAM處于未選中狀態(tài)。但是該命令不影響正在操作的功能。

(2)空操作(NOOPERATION)。空操作命令使得SDRAM執(zhí)行一次空操作,即不做任何實(shí)質(zhì)性動作。通常空操作避免SDRAM處于空閑或等待狀態(tài)時(shí)執(zhí)行一些不可預(yù)知的命令。同樣,正在執(zhí)行的操作不受該命令的影響。

(3)激活(ACTIVE)。激活命令用于對特定體中的行進(jìn)行打開(激活),以方便后續(xù)讀/寫操作。用于讀寫的行保持打開狀態(tài)直到執(zhí)行了預(yù)充命令。需要注意的是,在激活同一體內(nèi)其他行之前,必須執(zhí)行一次預(yù)充命令。

(4)讀命令(READ)。讀命令用于啟動對所激活行的一次突發(fā)讀操作,相應(yīng)地址根據(jù)存儲結(jié)構(gòu)不同表示突發(fā)讀的初始列地址。A10的狀態(tài)決定突發(fā)讀操作結(jié)束后是否進(jìn)行自動預(yù)充操作,如果選擇了自動預(yù)充,那么將在讀突發(fā)后進(jìn)行一次對該行的預(yù)充操作。否則,所讀取的行將保持激活狀態(tài)準(zhǔn)備后續(xù)操作。兩個(gè)時(shí)鐘前的數(shù)據(jù)掩碼信號DQM狀態(tài)決定了當(dāng)前輸出數(shù)據(jù)的有效位數(shù),若DQM為高電平,那么輸出數(shù)據(jù)呈現(xiàn)高阻狀態(tài),否則輸出合法有效數(shù)據(jù)。

(5)寫命令(WRITE)。寫命令用于在當(dāng)前激活行啟動一次突發(fā)寫操作,同樣地址位給出了初始列地址。A10的狀態(tài)決定突發(fā)寫操作結(jié)束后是否進(jìn)行自動預(yù)充操作,如果選擇了自動預(yù)充,那么將在寫突發(fā)后進(jìn)行一次對該行的預(yù)充操作。否則,所寫入的行將保持激活狀態(tài)準(zhǔn)備后續(xù)操作。寫數(shù)據(jù)將同當(dāng)前的數(shù)據(jù)掩碼信號DQM一起確定真正要寫入的數(shù)據(jù)位,如果相應(yīng)位的DQM為高電平,寫操作無效;否則,對應(yīng)數(shù)據(jù)將寫入SDRAM存儲單元中。

(6)突發(fā)終止(BURSTTERMINATE)。突發(fā)終止命令實(shí)現(xiàn)對固定長度或整頁長度突發(fā)的截?cái)?。在該命令之前最近的讀寫突發(fā)操作將被終止。

(7)預(yù)充命令(PRECHARGE)。預(yù)充命令使得特定體內(nèi)激活的行或所有激活的行關(guān)閉。當(dāng)預(yù)充命令結(jié)束后,對應(yīng)的體必須經(jīng)過一定延遲后方可繼續(xù)進(jìn)行操作。A10的狀態(tài)決定是否進(jìn)行一個(gè)體內(nèi)激活行的預(yù)充或所有體內(nèi)激活行的預(yù)充。一旦體內(nèi)進(jìn)行預(yù)充后就進(jìn)入空閑狀態(tài),那么在進(jìn)行所有后續(xù)的讀寫命令之前必須先激活該體。

(8)自動預(yù)充(AUTOPRECHARGE)。自動預(yù)充命令執(zhí)行與上述預(yù)充命令相同的操作,但是并不需要顯示說明。在進(jìn)行讀/寫命令后,由A10的狀態(tài)決定是否進(jìn)行自動預(yù)充。對由讀/寫操作確定的體和行地址進(jìn)行的預(yù)充在執(zhí)行完突發(fā)操作后自動完成。在整頁突發(fā)情況下,無法實(shí)現(xiàn)自動預(yù)充。由于預(yù)充操作伴隨單獨(dú)的讀/寫操作,自動預(yù)充呈現(xiàn)出非持續(xù)特性。

(9)自動刷新(AUTOREFRESH)或自我刷新(SELFREFRESH)。在正常的操作過程中,可以通過自動刷新命令實(shí)現(xiàn)對特定行的刷新操作。刷新行地址由內(nèi)部的刷新控制器確定,因此外部行地址可以任意設(shè)定。MT48LCSDRAM要求在64ms內(nèi)至少進(jìn)行4096次刷新操作,這就意味著每隔15.625μs進(jìn)行一次自動刷新即可滿足刷新要求,確保每一行數(shù)據(jù)均保持?;蛘咴?4ms內(nèi)集中4096次自動刷新也可以滿足要求。自我刷新命令可以在其余系統(tǒng)部分掉電情況下實(shí)現(xiàn)對數(shù)據(jù)的維持。在自我刷新模式下,SDRAM可以在沒有時(shí)鐘的情況下維持內(nèi)部數(shù)據(jù)。刷新操作命令執(zhí)行時(shí),CKE為低電平。當(dāng)進(jìn)入自我模式,則由SDRAM內(nèi)部的時(shí)鐘實(shí)現(xiàn)自動刷新操作。如果需要退出該刷新模式,首先在CKE變?yōu)楦唠娖角?,CLK時(shí)鐘必須穩(wěn)定。一旦CKE變?yōu)楦唠娖胶?,還需要執(zhí)行至少兩個(gè)時(shí)鐘的空操作以使內(nèi)部的刷新完成。然后,切換至正常讀寫操作過程,并利用自動刷新命令實(shí)現(xiàn)數(shù)據(jù)刷新。

(10)裝載模式寄存器(LOADMODEREGISTER)。該命令通過A0~A11將輸入信號寫入模式寄存器中,具體對應(yīng)含義見前面的描述。需要說明的是,該命令必須當(dāng)所有體(BANK)均處于空閑狀態(tài)時(shí)才能執(zhí)行,而且執(zhí)行完必須經(jīng)過一定時(shí)間的延遲方能執(zhí)行下一條新的命令。

下面給出采用以上命令實(shí)現(xiàn)具體SDRAM操作的過程。2.3.4SDRAM的操作時(shí)序

1.?SDRAM體/行選擇激活操作

為了對SDRAM中存儲單元進(jìn)行讀/寫操作,該存儲單元所在的體和行必須處于打開狀態(tài)。也就是說,必須通過激活命令實(shí)現(xiàn)選擇體和行處于打開狀態(tài)。圖2.33給出了激活操作的時(shí)序波形。在激活操作結(jié)束后,必須延遲TRCD/TCK個(gè)時(shí)鐘后可以進(jìn)行讀/寫操作,TCK表示SDRAM輸入時(shí)鐘周期。例如125MHz時(shí)鐘輸入情況下,如果TRCD=20ns,那么必須經(jīng)過TRCD/TCK=3個(gè)(向上取整)時(shí)鐘周期后進(jìn)行讀/寫操作。圖2.34給出了具體的時(shí)序圖。圖2.33激活操作時(shí)序圖2.34激活后讀/寫時(shí)序

2.讀突發(fā)操作

圖2.35給出了由讀命令觸發(fā)的一次讀突發(fā)操作時(shí)序。在突發(fā)讀過程中,起始列和體地址由讀命令給出,并且可以打開或關(guān)閉對突發(fā)讀位置自動預(yù)充。如果打開自動預(yù)充功能,那么在讀突發(fā)結(jié)束時(shí)對應(yīng)的行將被自動預(yù)充。在讀突發(fā)操作時(shí),從起始列地址讀出的有效數(shù)據(jù)將在讀命令后延遲CAS時(shí)鐘(即CL)得到。后續(xù)的數(shù)據(jù)將在緊接著時(shí)鐘上升沿依次給出。當(dāng)突發(fā)結(jié)束后,如果沒有新的命令,那么數(shù)據(jù)輸出接口DQ將處于高阻狀態(tài)。如果當(dāng)前突發(fā)沒有結(jié)束且又進(jìn)行了讀命令,那么突發(fā)長度將被截?cái)?,新的讀命令對應(yīng)數(shù)據(jù)將出現(xiàn)在數(shù)據(jù)接口上。為了使新的讀命令不至于覆蓋當(dāng)前的讀命令,必須要求新的讀命令在當(dāng)前讀操作最后一個(gè)數(shù)據(jù)之前CL-1個(gè)時(shí)鐘給出。圖2.35讀命令時(shí)序圖2.36給出了突發(fā)長度為4且CL=2、3的情況,從圖可見,新的讀命令在最后一個(gè)數(shù)據(jù)(n+3)前一兩個(gè)時(shí)鐘出現(xiàn),使得輸出的數(shù)據(jù)連續(xù)沒有間斷。由于SDRAM內(nèi)部采用流水操作,讀命令可以實(shí)現(xiàn)隨機(jī)訪問使得數(shù)據(jù)輸出也呈現(xiàn)隨機(jī)特性(即可在不同體進(jìn)行切換)。讀突發(fā)操作可以由寫操作中斷,或者由對相同體的預(yù)充命令中斷。圖2.37給出了讀突發(fā)中跟隨預(yù)充命令的時(shí)序。整頁讀突發(fā)可以由突發(fā)終止命令截?cái)啵潭ㄩL度讀突發(fā)只能在自動預(yù)充未激活情況下由突發(fā)終止命令截?cái)?。圖2.38給出了突發(fā)終止命令的時(shí)序情況。圖2.36讀數(shù)據(jù)CL時(shí)序圖2.37讀到預(yù)充過程時(shí)序圖2.38中斷讀突發(fā)

3.寫突發(fā)操作

寫突發(fā)操作由寫命令啟動,其工作過程與讀過程基本類似。由于篇幅所限,這里不進(jìn)行具體描述,感興趣的讀者可參見具體的數(shù)據(jù)手冊。

4.預(yù)充操作

預(yù)充命令實(shí)現(xiàn)對特定體中激活的行進(jìn)行關(guān)閉操作,或者對所有體中激活的行進(jìn)行關(guān)閉操作。在實(shí)施了預(yù)充命令后,必須經(jīng)過一段時(shí)間延遲(TRP)后才可以重新激活新的行。地址線A10確定單體或者所有體進(jìn)行預(yù)充,而當(dāng)進(jìn)行單體預(yù)充時(shí),由BA0、BA1確定具體操作的體。一旦經(jīng)過預(yù)充后,該體便處于空閑狀態(tài),必須經(jīng)過激活后才能進(jìn)行讀/寫操作。

5.低功耗操作

當(dāng)處于空操作或命令禁止時(shí),如果CKE信號為低電平并且沒有進(jìn)行讀/寫,那么SDRAM進(jìn)入了低功耗操作狀態(tài)。進(jìn)入低功耗模式后,輸入和輸出的緩沖將無效(除CKE信號的緩沖外),使得SDRAM功耗得以降低。低功耗狀態(tài)時(shí)沒有進(jìn)行刷新操作,故SDRAM不能在此模式下超過64ms。當(dāng)空操作或命令禁止時(shí),CKE信號變?yōu)楦唠娖剑瑒t退出該低功耗模式。

6.時(shí)鐘掛起操作

時(shí)鐘掛起模式發(fā)生在列突發(fā)正在進(jìn)行中而CKE信號變?yōu)榈碗娖降那闆r。在該模式下,內(nèi)部時(shí)鐘將不起作用,凍結(jié)所有同步邏輯。

當(dāng)檢測到CKE變?yōu)榈碗娖胶?,?nèi)部下一個(gè)時(shí)鐘上升沿開始進(jìn)入掛起模式。只要時(shí)鐘掛起,輸入管腳上的命令和數(shù)據(jù)均不起作用,而保持輸出DQ數(shù)據(jù),內(nèi)部的突發(fā)計(jì)數(shù)也保持不變。當(dāng)CKE變?yōu)楦唠娖胶?,SDRAM便退出時(shí)鐘掛起模式,繼續(xù)進(jìn)行后續(xù)操作。2.3.5動態(tài)隨機(jī)讀/寫存儲器控制器設(shè)計(jì)

為了方便使用SDRAM,通常采用SDRAM控制器實(shí)現(xiàn)對內(nèi)部細(xì)節(jié)的屏蔽。SDRAM控制器一方面的接口類似于SRAM,一方面則直接與SDRAM管腳相連,在其內(nèi)部完成對SDRAM操作細(xì)節(jié)的控制,如刷新、預(yù)充、讀/寫操作等方面命令的實(shí)施。因此如何設(shè)計(jì)SDRAM控制器將成為高效使用動態(tài)存儲器的關(guān)鍵所在。對于SDRAM控制器,可以采用微控制器完成或者采用可編程邏輯器件實(shí)現(xiàn)。

2.4只?讀?存?儲?器

2.4.1CF存儲卡的基本情況

CF卡是目前較為廣泛使用的一種消費(fèi)類存儲設(shè)備,由美國SanDisk公司于1994年研制成功,它是目前應(yīng)用最為廣泛的存儲卡,有可永久保存數(shù)據(jù)、無需電源、速度快、價(jià)格低等特點(diǎn)。CF卡同時(shí)支持3.3V和5V的電壓。它有兩種接口標(biāo)準(zhǔn):CFTypeⅠ和CFTypeⅡ。從物理結(jié)構(gòu)上來看,CFTypeⅠ卡和CFTypeⅡ卡的每個(gè)插孔的間隔大小一樣,而CFTypeⅡ卡比CFTypeⅠ卡厚一些。另外,TypeⅡ比TpyeⅠ插槽要寬,所以CFTypeⅡ卡不能在TypeⅠ卡插槽上使用。目前已經(jīng)推出容量高達(dá)4GB的CF卡。2.4.2CF存儲卡標(biāo)準(zhǔn)結(jié)構(gòu)

CF聯(lián)盟于1995年10月成立,負(fù)責(zé)制定相關(guān)CF卡技術(shù)標(biāo)準(zhǔn)規(guī)范。CF卡的出現(xiàn)使得對數(shù)據(jù)信息包括音頻、視頻以及文檔獲取保存更加方便快捷。CF卡標(biāo)準(zhǔn)的制定為存儲廠商以及用戶使用提供了統(tǒng)一規(guī)范,無論從硬件層面還是軟件層面均使得CF卡容易開發(fā)應(yīng)用,因此對CF卡的推廣起了重要作用。從技術(shù)層面上,CF卡是一種提供大容量以及符合個(gè)人計(jì)算機(jī)存儲卡國際聯(lián)盟(PersonalComputerMemoryCardInternationalAssociation,PCMCIA)和ATA接口標(biāo)準(zhǔn)的存儲設(shè)備。CF卡接口與PC機(jī)中ATA標(biāo)準(zhǔn)基本符合,因此可以運(yùn)行在與IDE接口相同的TrueIDE模式下,簡化了應(yīng)用開發(fā)的工作。CF卡由內(nèi)部的智能控制器負(fù)責(zé)管理I/O接口協(xié)議、數(shù)據(jù)存儲、數(shù)據(jù)獲取(包括內(nèi)部的數(shù)據(jù)差錯控制)、故障檢測與處理、電源管理與時(shí)鐘控制。作為主設(shè)備的CF卡可以看做標(biāo)準(zhǔn)ATA磁盤驅(qū)動器。

圖2.39給出了CF卡的邏輯框圖。CF存儲卡內(nèi)部由兩部分組成:一部分是卡控制器,負(fù)責(zé)與CF卡外部數(shù)據(jù)交換,實(shí)現(xiàn)具體讀/寫功能,另一部分是閃速存儲器(FLASH),負(fù)責(zé)信息數(shù)據(jù)存儲。外部采用2排共50針(每排25針)的母座封裝結(jié)構(gòu),其中針間距為1.27mm。如前所述,CF卡分為兩種型號,即TypeⅠ和TypeⅡ。表2.18具體給出了這兩種型號的標(biāo)準(zhǔn)物理尺寸。圖2.39CF卡的邏輯結(jié)構(gòu)表2.18CF卡物理尺寸

CF卡可以工作于三種不同的模式:PC卡輸入/輸出ATA模式,PC卡內(nèi)存ATA模式,TrueIDE模式。各種模式配置由內(nèi)部PCMCIA寄存器設(shè)定。不同模式情況下,CF管腳定義不同,表2.19具體給出了在三種模式下的管腳定義。其中由外部向CF卡傳輸?shù)男盘柖x為輸入,而由CF卡向外部傳輸?shù)男盘柖x為輸出。表2.19CF卡信號說明續(xù)表一續(xù)表二續(xù)表三2.4.3CF存儲卡讀/寫時(shí)序

1.屬性存儲讀時(shí)序

屬性存儲讀周期為300ns,表2.20給出了具體的時(shí)序要求。圖2.40為具體的讀屬性存儲時(shí)序。表2.20屬性存儲讀參數(shù)圖2.40屬性存儲讀時(shí)序

2.配置寄存器(屬性存儲)寫時(shí)序

屬性存儲寫周期為250ns,表2.21給出了具體的時(shí)序要求。圖2.41為具體的寫屬性存儲時(shí)序。表2.21屬性存儲寫參數(shù)圖2.41配置寄存器(屬性存儲)寫時(shí)序

3.通用存儲讀時(shí)序

表2.22給出了具體的通用存儲讀時(shí)序要求。圖2.42為具體的讀存儲時(shí)序。表2.22通用存儲讀參數(shù)圖2.42通用存儲讀時(shí)序

4.通用存儲寫時(shí)序

表2.23給出了具體通用存儲寫時(shí)序要求。圖2.43為具體的寫存儲時(shí)序。表2.23通用存儲寫參數(shù)圖2.43存儲寫時(shí)序

5.?I/O輸入讀時(shí)序

表2.24給出了具體的I/O輸入讀時(shí)序要求。圖2.44為具體的讀時(shí)序。表2.24I/O輸入讀參數(shù)圖2.44I/O輸入讀時(shí)序

6.?I/O輸出寫時(shí)序

表2.25給出了具體I/O輸出寫時(shí)序要求。圖2.45為具體的寫時(shí)序。表2.25I/O輸出寫參數(shù)圖2.45I/O輸出寫時(shí)序

7.?TrueIDEPIO模式讀/寫時(shí)序

表2.26給出了在TrueIDE模式下進(jìn)行讀/寫的時(shí)序的要求。為了簡單起見,我們僅給出PIO模式的情況,并且采用ATA-4接口形式表示信號。表2.26TrueIDEPIO模式讀/寫參數(shù)單位:ns圖2.46給出了TrueIDEPIO模式的時(shí)序。圖2.46TrueIDEPIO模式時(shí)序2.4.4CF存儲卡的配置

1.?CF存儲卡配置寄存器

CF卡的配置信息存放在特定的數(shù)據(jù)結(jié)構(gòu)中,即卡信息結(jié)構(gòu)區(qū)(CardInformationStructure,CIS)。在對CF進(jìn)行讀/寫操作前,應(yīng)首先設(shè)定CIS內(nèi)的配置寄存器。這些配置寄存器規(guī)定了CF卡工作的基本模式以及必要的設(shè)置,如I/O空間的定義、卡中斷級等。同時(shí),用戶也可以通過這些寄存器中的狀態(tài)位讀取當(dāng)前CF卡工作狀態(tài),并將狀態(tài)信息提供給中斷控制器進(jìn)行仲裁

,或者提供給主機(jī)以確定下一步的動作。根據(jù)CF卡的功能區(qū)分,通常可分為單功能CF卡與多功能CF卡。對于單功能CF卡,在CIS結(jié)構(gòu)中僅有一組可以配置的功能寄存器;而在多功能CF卡內(nèi),針對所有功能有一組通用的全局CIS信息以描述公共信息設(shè)置,而各個(gè)功能則具有獨(dú)立的CIS信息。在全局CIS中,CISTPL_LONGLINK_MFC索引表記錄每種功能CIS信息存儲的位置。表2.27給出了CF卡與內(nèi)存空間的設(shè)置。表2.28為配置寄存器的真值表。表2.27CF卡與內(nèi)存空間的設(shè)置表2.28配置寄存器的真值表

2.屬性內(nèi)存功能

屬性內(nèi)存空間用于存放CF卡的標(biāo)識和配置信息,對其的讀/寫操作限制在偶地址8位寬。各種配置寄存器同樣存放在屬性內(nèi)存空間中,并且起始地址為200h。在進(jìn)行屬性內(nèi)存讀操作時(shí),REG#和OE#信號有效,WE#信號無效。表2.29給出了屬性內(nèi)存空間讀/寫的真值表。表2.29屬性內(nèi)存功能

3.配置選擇寄存器(屬性內(nèi)存地址:Base+00h)

配置選擇寄存器用于配置CF卡接口、地址解碼以及中斷方式,同時(shí)可以產(chǎn)生對CF卡的軟復(fù)位。圖2.47給出了該寄存器的定義。圖2.47配置選擇寄存器

(1)?SRESET:軟復(fù)位。當(dāng)該信號設(shè)置為1并持續(xù)最小復(fù)位時(shí)間后變?yōu)?時(shí),將使CF卡處于復(fù)位狀態(tài)。復(fù)位后,CF卡內(nèi)部處于未配置情況。軟復(fù)位與上電以及硬件復(fù)位效果一致。SRESET在上電和硬件復(fù)位后為0。

(2)?LevIREQ:當(dāng)該位設(shè)置為1時(shí),CF卡處于電平中斷模式;當(dāng)設(shè)為0時(shí),CF卡存儲設(shè)備處于脈沖中斷模式。復(fù)位后,該位置為0。

(3)?Conf5~Conf0:為配置索引位。復(fù)位后,該位為0,這些索引用于選擇CF卡的操作模式。表2.30給出了具體的定義。表2.30CF卡配置索引

4.配置與狀態(tài)寄存器(屬性內(nèi)存地址:Base+02h)

配置與狀態(tài)寄存器包含存儲卡的工作條件,具體定義見圖2.48。圖2.48配置與狀態(tài)寄存器

(1)?Changed:用于表明管腳替換寄存器中CReady或CWProt位有一個(gè)或者全部被設(shè)置為1。當(dāng)該位為1時(shí),如果SigChg位也為1,那么STSCHG#管腳(46)將保持為低電平。CF卡配置為I/O接口。

(2)?SigChg:由主機(jī)控制使能的狀態(tài)改變信號。如果不需要狀態(tài)改變信號,該位置為0且STSCHG#管腳將保持為高電平。

(3)?IOis8:主機(jī)設(shè)置該位為1,表明CF卡配置為8位I/O模式。由于CF卡總配置為8位和16位I/O模式,該位通??珊雎?。

(4)?XE#:對于CF卡,該位設(shè)置為0,CF卡不支持相應(yīng)功能。

(5)?Audio:主機(jī)通過設(shè)置該位控制SPKR#管腳的音頻信息。對CF卡該位通常為0。

(6)?PwrDwn:該位表明主機(jī)是否要求CF卡處于低功耗或激活模式。當(dāng)為1時(shí),CF存儲設(shè)備進(jìn)入低功耗模式;當(dāng)為0時(shí),表明主機(jī)要求CF卡進(jìn)入激活模式。

(7)?Int:內(nèi)部中斷請求信號位。無論是否為I/O接口模式,該位均可讀取。直到中斷請求得到處理后,該信號變?yōu)闊o效。當(dāng)通過設(shè)備控制寄存器中IEN#位屏蔽中斷后,該位設(shè)置為0。

5.管腳替換寄存器(屬性內(nèi)存地址:Base+04h)

圖2.49給出了該寄存器的定義。圖2.49管腳替換寄存器

(1)?CReady:該位為1表明RReady狀態(tài)改變,可通過主機(jī)設(shè)置。

(2)?CWProt:該位為1表明RWprot狀態(tài)改變,可通過主機(jī)設(shè)置。

(3)?RReady:該位表明內(nèi)部READY信號狀態(tài)。當(dāng)READY管腳重新分配為中斷請求信號時(shí),該位可以表明內(nèi)部READY的狀態(tài)。當(dāng)進(jìn)行寫操作時(shí),該位作為對相應(yīng)CReady的掩碼操作信號MReady。

(4)?WProt:如果CF卡沒有寫保護(hù)開關(guān),該位為0。當(dāng)進(jìn)行寫操作時(shí),該位作為對相應(yīng)CWProt的掩碼操作信號MWProt。

6.管道與復(fù)制寄存器(屬性內(nèi)存地址:Base+06h)

該寄存器包含額外配置信息。在寫CF卡配置索引寄存器之前,由主機(jī)完成對該寄存器進(jìn)行寫操作。該寄存器不是CF卡必須的寄存器。2.4.5I/O傳輸功能

通過I/O傳輸可以實(shí)現(xiàn)CF卡的8或16位數(shù)據(jù)讀/寫。當(dāng)訪問16位端口,IOIS16#管腳將由CF卡輸出有效,否則該管腳無效。CF卡允許任意地址進(jìn)行8或16位讀/寫,IOIS16#信號可以對所有地址及時(shí)響應(yīng)。在進(jìn)行輸入操作時(shí),CF卡可以通過WAIT#信號要求插入等待周期直到數(shù)據(jù)準(zhǔn)備好。表2.31給出了具體功能的定義。表2.31PCMCIA模式I/O功能2.4.6通用內(nèi)存?zhèn)鬏敼δ?/p>

通用內(nèi)存?zhèn)鬏斂梢赃M(jìn)行主機(jī)與CF卡8或16位的數(shù)據(jù)交換。CF卡允許對所有通用內(nèi)存地址進(jìn)行8位或16位操作,同樣可以插入WAIT#信號使主機(jī)放慢寫的速度。表2.32給出了具體功能定義。表2.32通用內(nèi)存模式功能2.4.7TrueIDE模式I/O傳輸功能

在TrueIDE模式下,上電時(shí)由主機(jī)將OE#信號接地。在工作過程中,CF卡可以通過以下方式檢測接口并確定其狀態(tài)。

(1)?CF卡可以檢測OE#信號,當(dāng)其變?yōu)楦唠娖綍r(shí),CF卡轉(zhuǎn)換為PCMCIA模式。

(2)當(dāng)CF卡復(fù)位后,CF卡可以重新判定接口模式。

(3)當(dāng)CF卡檢測到持續(xù)的OE#低電平后,CF卡可以切換至TrueIDE模式。對于CF系統(tǒng)設(shè)計(jì)者來講,不能依靠上述的方式進(jìn)行控制。在TrueIDE模式下,PCMCIA協(xié)議和配置將失效,只能對任務(wù)文件和數(shù)據(jù)寄存器進(jìn)行讀/寫。主機(jī)無法看到通用存儲和屬性存儲寄存器。而CF卡則可以在用戶執(zhí)行設(shè)置特征命令(SetFeatureCommand)后進(jìn)入8位PIO模式讀/寫數(shù)據(jù)。具體TrueIDE模式的功能定義可以參考IDE功能定義相關(guān)資料。2.4.8典型芯片及應(yīng)用實(shí)例分析

我們將以SanDisk公司生產(chǎn)的CF卡為例,詳細(xì)介紹CF卡與微控制器互聯(lián)的應(yīng)用實(shí)例。SanDisk主要生產(chǎn)消費(fèi)類存儲設(shè)備,如CF卡、PC卡、IDE閃存驅(qū)動器、閃存芯片組以及多媒體卡(MMC)。除MMC設(shè)備外,其余存儲設(shè)備均具有相同的物理存儲基本單元以及滿足ATA指令集的軟件接口。下面將給出SanDisk提供的將CF存儲設(shè)備與80C51微控制器連接應(yīng)用的實(shí)例。

CF卡提供了多種操作模式,如標(biāo)準(zhǔn)ATA接口和PCMCIA接口。標(biāo)準(zhǔn)ATA接口規(guī)范就是我們熟悉的IDE接口,廣泛應(yīng)用于PC系統(tǒng)中硬盤接口和嵌入式系統(tǒng)中存儲接口。標(biāo)準(zhǔn)ATA能夠廣泛使用的一個(gè)原因在于PC系統(tǒng)和工業(yè)主機(jī)系統(tǒng)的BIOS已經(jīng)提供了豐富的接口函數(shù)支持。由于IDE接口采用16位數(shù)據(jù)傳送,而80C51為8位微控制器,因此必須在上電后通過命令切換傳輸數(shù)據(jù)的通路寬度為8位。

PCMCIA提供I/O與內(nèi)存影射兩種方式的數(shù)據(jù)接口,以方便不同類型的處理器要求。例如,IntelX86系列處理器具有獨(dú)立的I/O指令可以進(jìn)入I/O影射方式讀/寫數(shù)據(jù)。而其他一些處理器則將內(nèi)存與I/O統(tǒng)一編址進(jìn)行讀/寫,那么就可以采用內(nèi)存影射方式進(jìn)行數(shù)據(jù)交換。無論采用哪種接口操作模式,CF控制器外部的接口都是一組ATA寄存器,或者稱為任務(wù)文件,外部的主機(jī)則不能直接對CF卡存儲單元直接進(jìn)行操作。主機(jī)與存儲設(shè)備間的數(shù)據(jù)傳輸以塊或者扇區(qū)為基本單位。雖然支持虛擬的內(nèi)存窗口進(jìn)行存儲塊間的傳送,但是對單字節(jié)的讀寫操作仍然不能在CF卡存儲單元內(nèi)進(jìn)行。在與80C51微控制器連接的實(shí)例中,我們將選擇簡單而無需特別配置的缺省內(nèi)存模式進(jìn)行說明。對于與80C51微處理器連接的電路原理圖可參見附錄。在該例中,采用無ROM版本的80C51微控制器80C31作為主控器。由串行接口提供數(shù)據(jù)輸入與輸出操作,在實(shí)際應(yīng)用中可以改變輸入/輸出接口的形式,如A/D變換接口、并行接口等。微控制器時(shí)鐘由11.0592MHz晶振提供,外部EPROM(U5)作為其程序存儲區(qū)。微控制器產(chǎn)生UART形式信號后由RS-232接收發(fā)送器(U6)調(diào)制連接到串口接口(J1)。?訪存地址低8位由鎖存器U2鎖存后提供給存儲器或者CF卡。訪存地址高8位則由微控制器U1的端口2提供。U3負(fù)責(zé)對地址空間中非內(nèi)存或CF卡地址設(shè)備進(jìn)行解碼。整個(gè)系統(tǒng)地址空間劃分如下:

EPROM程序存儲區(qū):0000H~1FFFH;

內(nèi)存區(qū)RAM(U4):2000H~3FFFH;

CF存儲設(shè)備:E000H~FFFFH。

以上的空間分配除了EPROM必須從0地址開始外,其余均可以靈活指定。

表2.33給出了原理圖中CF存儲設(shè)備與80C31相連接的信號。表2.33CF存儲設(shè)備與80C31連接信號列表在設(shè)計(jì)完原理圖和完成制版工作后,就可以進(jìn)行系統(tǒng)的調(diào)試。為了簡單起見,我們這里僅給出部分常用的CF卡讀/寫寄存器列表,見表2.34。表2.34部分常用的CF卡讀/寫寄存器列表

2.5其他

溫馨提示

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

評論

0/150

提交評論