《MCS-51單片機原理及嵌入式系統(tǒng)應用》課件第6章_第1頁
《MCS-51單片機原理及嵌入式系統(tǒng)應用》課件第6章_第2頁
《MCS-51單片機原理及嵌入式系統(tǒng)應用》課件第6章_第3頁
《MCS-51單片機原理及嵌入式系統(tǒng)應用》課件第6章_第4頁
《MCS-51單片機原理及嵌入式系統(tǒng)應用》課件第6章_第5頁
已閱讀5頁,還剩206頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章MCS-51系列單片機的外部資源擴展6.1MCS-51系列單片機的外部地址擴展6.2MCS-51系列單片機的外部程序存儲器的擴展6.3MCS-51系列單片機的外部數(shù)據存儲器的擴展6.4MCS-51系列單片機的外部I/O通道的擴展習題六6.1MCS-51系列單片機的外部地址擴展6.1.1MCS-51系列單片機的外部資源擴展概述

1.數(shù)據總線

MCS-51系列單片機的數(shù)據總線寬度為8位(DB0~DB7),由P0口提供,它是一個三態(tài)結構的雙向輸入/輸出端口,在系統(tǒng)外部資源擴展時,是外圍器件和CPU內部功能部件之間的信息傳輸通道,通過這個通道,外圍擴展電路與累加器之間可以交換數(shù)據和指令等信息。

2.地址總線

MCS-51系列單片機的地址總線寬度為16位,可以尋址的最大空間為216(65?536)即64KB。低8位地址總線(AB0~AB7)由P0口提供,高8位地址總線(AB8~AB15)由P2口提供。由于P0端口既作為數(shù)據總線使用又作為低8位地址總線使用,因此只能采用“分時復用”方式。“分時復用”的輔助信號是ALE,因此擴展外部資源時需要使用外部低8位地址鎖存器,在ALE輸出有效電平(高電平)時,P0端口的信息作為低8位地址信息鎖存在外部地址鎖存器中,然后P0就可以切換為雙向數(shù)據總線使用。

P2端口本身具有輸出鎖存能力,因此無需外部鎖存器即可直接作為高8位地址總線使用。

3.控制總線

MCS-51系列單片機的控制信號線包括、、ALE、和。這5根信號線構成了MCS-51單片機的控制總線,控制總線的作用是控制外部擴展的接口電路和單片機本身的工作狀態(tài)。和的作用:這兩個信號都是由CPU發(fā)出的,分別是CPU對片外接口(包括存儲器和I/O)的寫和讀操作控制信號。當CPU執(zhí)行MOVX指令(訪問外部接口資源)時,有效的和信號(低電平有效)從CPU的P3.6和P3.7管腳自動輸出。

ALE的作用:P0端口分時復用為低8位地址總線和數(shù)據總線,“分時復用”的“分時”輔助信號就是ALE。在進行外部地址擴展時,ALE在P0端口輸出低8位地址信息的同時保持有效電平,允許外部地址鎖存器使用ALE信號作為觸發(fā)將低8位地址鎖存在外部的地址鎖存器中。的作用:用于區(qū)分CPU正在訪問的地址空間是否屬于程序地址空間的控制信號。當為低電平時,表示CPU處于取指令階段,如果有外部程序存儲器,此時外部程序存儲器可以將指令送出(“讀”外部程序地址空間);否則,為高電平期間,表示CPU處于執(zhí)行周期階段,可以訪問外部的數(shù)據存儲器和I/O地址空間。信號由CPU發(fā)出。的作用:對MCS-51系列單片機來講,是輸入信號。是MCS-51系列單片機控制總線中惟一一個用于控制CPU工作狀態(tài)的控制信號。當被外部電路強制拉到低電平(=0)時,MCS-51系列單片機僅使用外部程序存儲器,而且無論使用的單片機是否有片內程序存儲器(即片內程序被屏蔽);當被外部電路強制鉗位到高電平(=1)時,MCS-51系列單片機允許使用片內程序存儲器,當片內地址空間小于64KB時,也可以訪問外部程序存儲器,但外部程序存儲器與片內程序存儲器地址重疊部分不能使用。顯然,對那些片內沒有程序存儲器的MCS-51系列單片機來講,必須強制拉到低電平,如第二章中提到的8031和8032、DS80C320等。采用“三總線”結構的典型擴展電路如圖6-1所示。MCS-51系列單片機的地址總線寬度為16位,所以采用MCS-51系列單片機為核心的單片機應用系統(tǒng)的最大尋址能力為64KB,地址范圍為0000H~FFFFH。MCS-51系列單片機的指令操作流水線采用兩階段(取指令階段和執(zhí)行指令階段),而且兩個階段的狀態(tài)由來區(qū)分。在取指令操作階段(狀態(tài)),CPU僅對程序存儲器(代碼段地址空間)操作(取指令操作);而在指令執(zhí)行階段(狀態(tài)),CPU僅對數(shù)據存儲器或I/O地址空間操作(數(shù)據存儲器或I/O地址的讀/寫操作)。這樣外部資源擴展電路如果使用控制信號來區(qū)分程序地址空間和非程序地址空間,那么MCS-51系列單片機系統(tǒng)就可以擴展兩個64KB地址空間,即一個64KB的程序地址空間和另一個64KB的非程序(數(shù)據存儲器和I/O端口)地址空間。圖6-1MCS-51系列單片機外部擴展的“三總線”結構如圖6-2所示,圖中給出了Intel8031單片機的外部擴展64KB的程序存儲器(27C512)和64KB的數(shù)據存儲器的典型電路。其中,外部程序存儲器的地址范圍為0000H~FFFFH,外部數(shù)據存儲器的地址范圍為0000H~FFFFH。這兩片存儲器分別工作在低電平期間(CPU取指令階段)和高電平期間(CPU執(zhí)行指令階段),即27C512僅在CPU取指令時才占用數(shù)據總線、地址總線和控制總線,向CPU發(fā)送指令;而CPU在執(zhí)行指令階段需要訪問外部地址時,62C512才能工作并占用數(shù)據總線、地址總線和控制總線,將來自CPU的數(shù)據寫入SRAM或將數(shù)據發(fā)送給CPU。如執(zhí)行下面的程序:

MOV

DPTR,#8000H;16位數(shù)據指針指向8000H地址

MOVX

A,@DPTR

;將外部的8000H地址中的數(shù)據讀到累加器

MOV

R4,A

;將累加器中的內容保存到寄存器R4中

MOV

A,#55H ;將立即數(shù)55H傳送到累加器中

MOVX

@DPTR,A

;將累加器中的內容寫到外部的8000H地址中

RET ;子程序返回,讀得的數(shù)據存在R4中

…圖6-28031外部擴展64KB數(shù)據存儲器和64KB程序存儲器的典型電路相同功能的C語言程序如下:unsignedcharGetByteFromExAd8000(void){

#define

EXAd8000

(unsignedchar*)(0x018000)//定義一個指向外部數(shù)據存儲空間的(地址為8000H)的字節(jié)型指針

unsignedchar_data;

data=*EXAd8000;

//從外部數(shù)據存儲器8000H地址讀數(shù)據到data變量中*EXAd8000=0x55;

//寫55H到外部數(shù)據存儲器8000H地址

return(_data);

//子程序返回,讀得的數(shù)據作為函數(shù)返回值}在圖6-2所示的電路中,用戶編寫的程序代碼被編譯生成可執(zhí)行的機器碼(即可執(zhí)行代碼)后,由于Intel8031單片機片內無ROM空間,因此可執(zhí)行代碼被存放在擴展的EPROM中,CPU自動按照程序流程在取指令階段從EPROM中取指令,其他階段的操作都是按照程序意圖對內部功能單元或擴展的SRAM芯片62512進行讀或寫操作。需要注意,由于SRAM占用了所有的外部數(shù)據存儲空間(64KB),因此執(zhí)行程序的過程中只要執(zhí)行了訪問外部地址空間指令(MOVX),那么必定是對SRAM的操作。為了說明圖6-2的電路,圖6-3給出了MCS-51系列單片機擴展外部程序存儲器和數(shù)據存儲器的操作時序,可以根據操作時序來驗證電路原理是否正確。圖6-3MCS-51系列單片機外部程序和數(shù)據存儲器的訪問時序圖6-3中的時間參數(shù)如表6-1所示。6.1.2常用的地址鎖存器和地址譯碼器在對MCS-51系列單片機的外部地址資源進行擴展時,往往不會總是按照圖6-2那樣僅擴展64KB程序空間和64KB數(shù)據存儲空間,而且也不僅有2片外部器件,往往需要更多的片選(使能)信號,將64KB的數(shù)據存儲地址劃分成若干段,然后分配給不同的外圍器件,以擴展單片機系統(tǒng)的功能。MCS-51系列單片機的16位地址總線被劃分成高8位(AB8~AB15)和低8位(AB0~AB7),并分別從P2和P0口送出。在進行外部資源擴展時P2口為高8位地址總線專用,而P0口則分時復用為低8位地址總線和8位數(shù)據總線,由于這種分時復用機制,因此要求MCS-51系列單片機擴展外部地址資源時必須有外部帶鎖存功能的寄存器。當MCS-51單片機訪問外部地址空間時,P0口首先將低8位地址信息送出,同時有效的地址鎖存使能信號從ALE腳位輸出,將低8位地址信息鎖存在擴展的外部寄存器中,然后P0口轉為發(fā)送數(shù)據或接收數(shù)據的數(shù)據總線使用。在單片機外部用于鎖存地址的寄存器稱為地址鎖存器。所有地址總線和數(shù)據總線復用的CPU需要訪問外部地址資源時,都必須在其復用的總線上連接地址鎖存器(大多數(shù)兼容Intel總線時序的CPU都這樣)?,F(xiàn)在使用的地址鎖存器都采用的是集成電路形式,俗稱地址鎖存芯片。在MCS-51單片機系統(tǒng)中常用的地址鎖存器有74HC373和74HC573等,它們都是高電平觸發(fā)鎖存的地址(或數(shù)據)鎖存器。圖6-4是地址鎖存器74HC373的內部結構原理。它是由8個帶三態(tài)輸出控制的D型鎖存器組合構成的,其輸入信號包括8個D型鎖存器的輸入端1D~8D、輸出三態(tài)控制信號和允許鎖存信號LE,輸出信號為1Q~8Q。圖6-474HC373的內部結構原理表6-2給出了74HC373的輸入狀態(tài)與輸出狀態(tài)的對應關系表(即邏輯真值表)。根據圖6-4和表6-2,74HC373的鎖存觸發(fā)信號的有效電平是高電平,也就是說,在74HC373的鎖存允許信號LE的輸入端處于高電平時,D型鎖存器的輸出端Q鎖存相應的輸入端D的狀態(tài),一旦LE引腳的高電平撤消(進入低電平),D型鎖存器的輸出端Q則保持最后一次的鎖存狀態(tài)直至LE端再次出現(xiàn)高電平(鎖存允許電平)。74HC573的內部原理、真值表與74HC373完全相同,但兩者的引腳排列不相同。

MCS-51單片機進行擴展時,如果外部的器件比較多,譬如有多片數(shù)據存儲器、多片程序存儲器或有程序存儲器和數(shù)據存儲器以及其他功能的擴展器件,往往需要給這些器件各自分配獨立的片選(使能)信號,這時就需要使用地址譯碼器來產生多個片選信號分配給各個外圍器件,便于MCS-51單片機訪問這些器件。為什么要給MCS-51單片機的外圍器件各自分配一個獨立的片選信號?假定某系統(tǒng)以8031單片機作為處理器,需要擴展外部程序存儲器(IC1)、第一片外部數(shù)據存儲器(IC2)和第二片數(shù)據存儲器(IC3)。當8031復位后進入正常工作時,8031首先需要到外部程序存儲器(IC1)中取指令碼,然后執(zhí)行指令碼。在8031取指令碼的過程中,8031首先從P0口和P2口送出指令地址信息,此時程序存儲器必須能夠被允許工作,按照地址總線上的地址信息將8031要取的指令碼發(fā)送到數(shù)據總線上,然后8031從P0口(數(shù)據總線)讀回指令碼,假設在程序存儲器輸出指令碼期間有另一片數(shù)據存儲器也被選中(由于譯碼電路錯誤),也根據地址信息送出數(shù)據到數(shù)據總線上,這時指令碼信息被破壞,8031得到的指令碼是非法的,如此一來8031就不能正常運行程序。顯然,在CPU到外部程序存儲器中取指令碼時,必須且僅有一片程序存儲器給CPU發(fā)送正確的指令,而此時其他器件必須處于不工作狀態(tài),那么外部程序存儲器的片選信號必須各自惟一、獨立。假設8031取得正確的指令碼后,執(zhí)行的指令是需要8031到外部的第一片數(shù)據存儲器(IC2)“讀”數(shù)據,8031立即進入讀外部存儲器周期。在8031讀外部數(shù)據存儲器的過程中,8031首先從P0和P2口送出地址信息,如果外部譯碼電路將產生惟一的片選信號選中第一片外部數(shù)據存儲器(IC2),則第一片外部數(shù)據存儲器(IC2)被允許工作,然后按照地址總線上的地址信息將對應的數(shù)據發(fā)送到數(shù)據總線上,8031從P0(數(shù)據總線)將數(shù)據讀回累加器。在這個過程中,如果錯誤的譯碼電路將兩片外部數(shù)據存儲器都選中,那么兩片數(shù)據存儲器同時向數(shù)據總線發(fā)送數(shù)據,這樣會造成數(shù)據總線上的數(shù)據被破壞,8031得到的數(shù)據便是非法的。8031“寫”外部數(shù)據存儲器的過程是,8031首先發(fā)送地址信息,然后伴隨WR有效時P0口發(fā)送出數(shù)據信息,將要被寫的數(shù)據存儲器是數(shù)據的接收者。在這個過程中,如果兩個數(shù)據存儲器都被選中,數(shù)據將會同時寫到兩片數(shù)據存儲器中,這也是不合適的??傊?,MCS-51單片機對連接在其地址和數(shù)據、控制總線上的器件進行訪問時,任何時間僅且只能和惟一一個外圍器件之間傳輸數(shù)據或指令。這就是“惟一”訪問原則。產生外圍器件惟一片選信號的方法有兩種:線選法和地址譯碼器選通法。地址線選法擴展多片數(shù)據存儲器的參考電路如圖6-5所示。圖中3片6264(8KBSRAM)的片選信號分別與最高的3位地址線P2.5(AB13)、P2.6(AB14)和P2.7(AB15)相連,每片6264各有兩個片選(允許工作)信號和CS2,其中是低電平有效,而CS2為高電平有效。僅當兩個片選信號都有效(即=0,CS2=1)時,6264才被啟動允許工作。電路中將高電平有效的選通信號CS2與VCC直接相連,讓CS2永遠有效,則由AB13、AB14和AB15控制。按照前面的“惟一訪問”原則,3片6264不能同時工作,AB13、AB14和AB15在任何時候只能有一個為低電平,由CPU選中其中的一片6264對其進行讀/寫操作,3片6264各占用一片惟一8KB地址空間。圖6-5地址線選法擴展3片8KBSRAM的參考電路圖6-5中的3片6264的地址分配如表6-3所示。按照圖6-5的電路原理,除了表6-3中所列出的地址空間可以使用外,其他地址都不能使用。這種擴展方法是將MCS-51單片機的外部64KB的數(shù)據存儲器地址空間劃分成3塊,每塊容量為8KB,分別歸3片存儲器占用。由于所有的16根地址線都被使用,其他地址就不能使用了,顯然這種擴展方法的缺點是浪費了MCS-51單片機系統(tǒng)的有限的地址資源。為了讓MCS-51單片機外部的64KB地址空間得到充分利用,可以采用地址譯碼器方法產生芯片選通信號。下面先介紹兩種常用的地址譯碼器芯片:74HC139和74HC138。

74HC139是一種雙2-4譯碼器集成電路,其內部的兩個2-4譯碼器相互獨立,各自有獨立的控制輸入端(G)和地址輸入端(A、B),各有4根低電平有效的輸出信號。

74HC139的內部結構原理如圖6-6所示,其真值表見表6-4(表中只給出了一半,另一半的邏輯真值表相同)。圖6-674HC139(2-4譯碼器)的內部結構原理

74HC138是一個3-8譯碼器,它有3個地址信號輸入端(A、B、C)和3個允許工作的控制輸入端(G1、、),有8根低有效電平的片選輸出信號(Y0~Y7)。它的3個允許工作控制信號中的G1是高電平有效的,當G1=0時,該3-8譯碼器被禁止工作,其8個輸出端均輸出無效電平(高電平);另外2個控制信號和都是低電平有效的,當其中任何一個處于高電平時,該74HC138將被禁止,其輸出端都輸出無效電平(高電平)。

74HC138的內部結構原理如圖6-7所示,其真值表見表6-5。圖6-774HC138(3-8譯碼器)的內部結構原理圖6-8是利用3-8譯碼器擴展片選信號的參考電路,圖中各器件的地址空間分配見表6-6??梢钥闯?,系統(tǒng)的64KB地址能夠被有效分配。圖6-8利用3-8譯碼器擴展3片8KBSRAM的參考電路6.2MCS-51系列單片機的外部程序存儲器的擴展

MCS-51單片機可尋址的程序空間為64KB,包括片內和片外兩部分。如果/VP與GND連接,片內程序存儲器被屏蔽,對那些ROM-Less型MCS-51系列單片機來講必須把/VP固定與GND連接。如8031、8032、DS80C320等單片機使用時其/VP必須接地。對那些內部有程序存儲器的MCS-51系列單片機來講,

/VP與GND連接時,它們內部的程序存儲器將不作用,如8751、8752、78E51、78E52、89C58等單片機內部都有4~32KB的程序存儲器空間,如果使用它們片內的程序存儲器,則其/VP必須與VCC連接。無論是ROM-Less型或是片內代用ROM的MCS-51系列單片機都可以擴展外部程序存儲器。如果片內帶有ROM的MCS-51單片機擴展外部程序存儲器時內部和外部的地址空間統(tǒng)一編址,當程序執(zhí)行的地址大于其片內的ROM地址時,MCS-51單片機將自動轉向外部擴展的程序存儲器執(zhí)行程序。絕大多數(shù)MCS-51單片機系統(tǒng)的程序存儲器在系統(tǒng)運行過程中都是“只讀”的,單片機從程序存儲器中讀取指令及執(zhí)行指令時不需要修改程序代碼。所以絕大多數(shù)MCS-51單片機系統(tǒng)都采用“只讀型存儲器”作為其程序存儲器。目前常用的可以作為程序存儲器的“只讀型存儲器”包括:●掩膜型ROM(MaskedReadOnlyMemory),縮寫為MROM;●一次性可編程ROM(OneTimesProgrammableReadOnlyMemory),縮寫為OTPROM;●電氣可編程ROM(ElectricallyProgrammableReadOnlyMemory),縮寫為EPROM;●電氣可擦寫可編程ROM(ElectricallyErasableProgrammableReadOnlyMemory),縮寫為EEPROM;

●快閃電氣可擦寫可編程ROM(FlashElectricallyErasableProgrammableReadOnlyMemory),縮寫為FlashROM。上面所列舉的這些存儲器具有多種形態(tài)的接口和多種位寬的結構。MCS-51單片機系統(tǒng)使用的所有這些存儲器都是8位結構的。由于MCS-51系列單片機不支持串行接口的程序加載,因此MCS-51單片機系統(tǒng)使用的程序存儲器都必須是并行接口的。6.2.1常用程序存儲器的特點

1.掩膜型ROM掩膜型ROM(MROM)是真正的只讀存儲器,對這類存儲器編程是在集成電路生產過程中進行的,一旦從IC制造廠交到用戶手中,用戶只能從該存儲器中讀數(shù)據,而不能改寫其內部的任何數(shù)據。目前的MROM使用在MCS-51單片機系統(tǒng)中有兩種,一種是MCS-51單片機本身內部的程序存儲器是MROM類型,另一種是獨立的MROM芯片。后一種較少使用。內部程序存儲器采用MROM的MCS-51系列單片機的型號都以83Cxx命名,譬如OKI(日本沖電)公司的M83C154等使用MROM作為內部程序存儲器。為了保護知識產權,目前使用MROM類型存儲器的MCS-51單片機的程序存儲器中的程序代碼只能在CPU加電狀態(tài)執(zhí)行代碼,但是不能將這些代碼讀出,能夠有效地防止這些單片機內部的代碼被非法復制。由于MROM的編程是在IC制造過程中進行的,如果使用MROM作為MCS-51系列單片機的程序存儲器,那么必須首先向IC制造廠定制,并將編制好的執(zhí)行代碼一起交給IC制造廠,當用戶拿到單片機之后就可以直接在自己的目標系統(tǒng)中使用了。但是其內部的代碼不能被修改、重新編程等。使用MROM作為MCS-51單片機系統(tǒng)的程序存儲器適合于成熟的、產量較大的產品,使用MROM可以降低產品的存儲器成本和提高生產效率。

2.一次性編程ROM

OTPROM不需要像MROM那樣必須在集成電路制造廠編程,往往可以由系統(tǒng)設計或系統(tǒng)生產者自己在系統(tǒng)生產時才對這類存儲器進行編程,相對MROM來講,使用OTPROM要靈活一些。OTPROM的特點是對這類存儲器編程是“一次性”的,這類存儲器的內容只能被一次性寫入,一旦寫完后,就再不能修改、擦除、重新編程其內部的內容。目前有使用OTPROM作為片內程序存儲器的MCS-51單片機,也有獨立的OTPROM存儲器芯片。使用OTPROM的MCS-51單片機有Hyundai公司的G97C系列單片機等,這種類型的MCS-51單片機內部的程序代碼也有加密機制,能夠禁止非法復制單片機內部的程序代碼。使用OTPROM作為程序存儲器的目的大多數(shù)是為了降低系統(tǒng)存儲器的成本。

3.電氣可編程ROM絕大多數(shù)的EPROM的型號都以27xxx命名,它是目前單片機系統(tǒng)中使用最多的一種程序存儲器之一。與其他類型的只讀存儲器比較,它具有價格低、穩(wěn)定等優(yōu)點,而且靈活性較好。

EPROM是一種多次可編程只讀存儲器(Multi-TimesProgrammableROM),單片機系統(tǒng)使用EPROM作為程序存儲器與使用MROM和OTPROM相比,允許升級系統(tǒng)的軟件代碼,但使用MROM和OTPROM存儲器時,升級系統(tǒng)的軟件代碼時必須更換程序存儲器芯片。

EPROM的編程是通過電氣方式完成的,在對EPROM芯片加載適當?shù)木幊屉妷汉?,按照特定的編程時序將數(shù)據一一寫入存儲器中。對EPROM編程之前必須保證整個存儲器芯片內部的數(shù)據全部被擦除,然后才能編程,即“空片編程”。擦除EPROM不能通過電氣方式,僅可以使用紫外線照射方式擦除,這就是所有的EPROM必須有一個透明的玻璃窗口的原因。人們生活環(huán)境的光線中都有紫外線成分,為了保證正常使用的EPROM中的數(shù)據不被環(huán)境光線中的紫外線破壞,使用中的EPROM的玻璃窗口必須被掩蓋。目前有使用EPROM作為片內程序存儲器的MCS-51單片機,如8751、8752、87520等,它們的型號多數(shù)都以87xxx命名。使用EPROM作為內部程序存儲器的MCS-51單片機多數(shù)都沒有加密機制,其內部的程序代碼或數(shù)據容易被非法復制。使用EPROM作為片內程序存儲器的MCS-51單片機與其他單片機使用時完全相同(兼容),區(qū)別僅在將代碼編程到片內程序存儲器中的過程和擦除的過程。在MCS-51單片機系統(tǒng)中常用的獨立EPROM存儲器有2716、2732、2764、27128、27256、27512,它們的區(qū)別是容量大小不同和芯片的引腳不同,它們的存儲容量分別是2KB、4KB、8KB、16KB、32KB、64KB。圖6-9是這些EPROM芯片DIP封裝的引腳名稱和排列圖。圖6-927系列EPROM的引腳名稱和排列圖所有的EPROM都有以下四種工作模式:

(1)讀模式。讀模式也稱在系統(tǒng)使用模式。進入這種模式的條件是使片選(允許工作)控制信號為低電平(的有效電平)狀態(tài),同時使輸出使能信號為低電平(的有效電平)。如果有獨立的VPP引腳(編程電壓輸入腳),該引腳應與VCC連接;如果有獨立的引腳(編程模式控制引腳,低電平有效),該引腳必須與VCC連接。這時EPROM將按照地址總線指定的地址將該地址中的數(shù)據發(fā)送到數(shù)據總線上。

(2)空閑模式。當片選控制信號為高電平時,EPROM芯片立即進入空閑模式,并且其數(shù)據總線處于高阻態(tài)。在空閑模式的EPROM將忽略所有輸入信號(包括、A0~A15)。

(3)編程模式。在EPROM的VPP引腳加載適當?shù)木幊屉妷?VPP必須按照IC制造廠提供的使用手冊確定,編程電壓過低或偏低將不能正確編程,編程電壓過高或偏高會損壞芯片),如果有獨立的引腳,將引腳、引腳、引腳加載適當?shù)碾娖?這些控制引腳在編程模式需要的電平必須按照IC制造廠的使用手冊確定,不同廠家、不同型號的EPROM,它們的電平不同),之后EPROM立即進入編程狀態(tài),在編程狀態(tài)EPROM從數(shù)據總線接收數(shù)據,并將數(shù)據寫到地址總線指定的地址單元。

(4)編程校驗模式。在VPP端加載適當?shù)碾妷?注意:這里的適當電壓不一定是編程電壓,必須根據IC制造廠的手冊確定),按照讀模式的要求(除了VPP的要求外),將數(shù)據從EPROM中讀出校驗。進入編程校驗模式的目的是將寫入的數(shù)據重新讀出與希望寫入的數(shù)據比較,以確定編程是否有誤。

EPROM的工作電壓一般都是+5V,除了編程時需要給編程電壓輸入端加較高的編程電壓外,其他所有引腳都與TTL電平兼容,可以直接與MCS-51單片機系統(tǒng)中的其他TTL器件組成的電路直接連接。絕大多數(shù)EPROM的編程電壓都大于+12V,部分EPROM器件的編程電壓可達到+30V。不同型號的EPROM的編程電壓不同,不同廠家提供的同型號的EPROM的編程電壓也不一定相同,所以在對EPROM編程時必須注意按照廠家的規(guī)定進行。

4.電氣可擦寫可編程ROM

EPROM的擦除是使用紫外線照射方式完成的,所以其擦除速度比較慢,一般容量的EPROM用適當照射強度的紫外線照射方式擦除整個芯片大約需要10~20分鐘時間。與之相比,EEPROM的改寫是采用電氣方法實現(xiàn),擦除和編程的速度都比較快且方便。

EEPROM一般都以28xxx命名,如2832、2864等。EEPROM不需要擦除或整片擦除后再寫數(shù)據,可以在電路中直接向指定的地址單元寫數(shù)據,或將該單元原來的數(shù)據改寫,它是惟一一種允許按字節(jié)改寫/編程的只讀存儲器,其使用非常靈活。但是EEPROM的缺點是相同存儲容量EEPROM的價格相對比其他類型的ROM都高。EEPROM一般不需要特殊的編程電壓,它在工作電壓狀態(tài)下就可以完成字節(jié)的改寫/編程操作。由于EEPROM具有這些特點,而且它的引腳與相同容量的SRAM兼容,EEPROM作為一種不揮發(fā)性存儲器更多是用于存儲在系統(tǒng)運行過程中產生的重要數(shù)據,如記錄測控系統(tǒng)中的測量結果。目前還沒有用EEPROM作為片內程序存儲器的MCS-51單片機,但是有些MCS-51單片機內部帶有EEPROM類型的數(shù)據存儲器,譬如Atmel公司的AT89S8252單片機,其內部不僅具有FlashROM型的程序存儲器,而且還具有EEPROM存儲器。但該存儲器不能作為程序存儲器使用,用戶可以將其作為內部的數(shù)據存儲器使用。更多的EEPROM是獨立的存儲器芯片。

5.快閃電氣可擦寫可編程ROM

FlashEEPROM俗稱FlashROM,它發(fā)展至今大約已經有20多年的歷史,是Intel公司推出的存儲器技術。近些年FlashROM已經逐步取代EPROM,隨著電子技術的發(fā)展其價格已經低于EPROM,它是目前存儲器市場占有率相當高的一種存儲器,廣泛使用于各種計算機系統(tǒng)和嵌入式系統(tǒng)。與其他存儲器相比,F(xiàn)lashROM的最大特點是讀訪問速度快、字節(jié)或扇區(qū)(Sector)編程速度快、壽命長(重復編程次數(shù)達1萬次以上)、功耗低、同等容量情況下其體積小等。大多數(shù)的FlashROM同EEPROM一樣不需要特殊的編程電壓,依靠工作電壓就可以完成字節(jié)或扇區(qū)的編程、擦除等操作。但是FlashROM不支持字節(jié)或扇區(qū)的改寫操作,在這一點上與EEPROM相比就不夠靈活。

FlashROM的存儲單元寫/擦除操作一般都按扇區(qū)進行,將一片存儲器劃分成若干個一定容量的扇區(qū),在對某一個字節(jié)編程之前必須先將該字節(jié)所在的扇區(qū)擦除為空再對整個扇區(qū)進行編程,而對EPROM存儲器編程之前必須首先將整片存儲器擦除后才能執(zhí)行字節(jié)編程。不同廠家、不同型號的FlashROM的扇區(qū)容量大小不同,目前有些FlashROM的最小扇區(qū)容量為16B,另外還有64B/Sector、128B/Sector、256B/Sector、512B/Sector、1KB/Sector等扇區(qū)容量(根據不同型號和不同制造廠家)。小扇區(qū)容量的FlashROM器件比較適合于作為數(shù)據存儲器應用;如果作為系統(tǒng)的程序存儲器使用,最好選擇大扇區(qū)容量的FlashROM器件。從價格上相比較而言,小扇區(qū)容量的器件比大扇區(qū)容量的器件要貴。程序存儲器在系統(tǒng)中正常使用時,往往是只讀的,不需要重復擦除、寫操作,雖然扇區(qū)容量的大小不同,但讀操作都是按字節(jié)方式進行的,而且所有的FlashROM的讀操作并不需要按扇區(qū)方式操作,而是直接按字節(jié)讀方式操作。目前以FlashROM作為片內程序存儲器的MCS-51單片機類型非常多,如Atmel公司的AT89系列單片機,Winbond公司的W78、W77系列單片機,Philips公司的P89、P87系列單片機,SST公司的ST89C、ST89F系列單片機等都采用FlashROM作為片內存儲器,它們的容量為4~64KB。由于FlashROM的先進性和優(yōu)越性,目前有許多采用FlashROM作為片內程序存儲器的MCS-51單片機具有在系統(tǒng)可編程(ISP)功能,如Atmel的AT89S系列、Philips公司的P89C系列單片機。另外,有些MCS-51單片機還具有在系統(tǒng)可編程可仿真功能,如Cygnal公司的C8051F系列單片機等。Cygnal公司的C8051F系列單片機支持標準JTAG(JointTestActionGroup)編程、仿真調試接口對其片內的程序存儲器在系統(tǒng)編程和在系統(tǒng)仿真功能,這個系列的單片機兼容8031的所有功能和指令,同時還在單片機的片內擴展了許多功能部件,如第二個UART、ADC(模擬信號數(shù)字轉換器)、DAC(數(shù)字信號模擬轉換器)、I2CBus接口等功能,是一種基于8032單片機內核的片上系統(tǒng)(SOC,SystemOnChip)。

MCS-51單片機結合FlashROM存儲器技術,將推動MCS-51系列單片機向真正的“單片”系統(tǒng)方向發(fā)展。從上面介紹的這五種類型的存儲器來看,EEPROM有其特有的優(yōu)點,但是,其價格昂貴;MROM和OTPROM屬低價格存儲器,但使用不夠靈活;FlashROM有逐步取代EROM的發(fā)展趨勢。6.2.2外部程序存儲器的擴展

1.ROM-Less型單片機擴展片外程序存儲器目前的ROM-Less型單片機包括:8031、8032,Dallas半導體的DS80C310、80C320、80C520、80C530,Hyundai公司的G90C32,Winbond公司的W78C32、W77C32,Philips公司的80C55x系列等等,這些MCS-51單片機在系統(tǒng)中使用必須擴展外部程序存儲器,而且其引腳必須與GND連接。圖6-10是ROM-Less型MCS-51單片機的一個典型應用電路。習慣將這個電路稱為“8031的最小系統(tǒng)電路”,它使用8031作為CPU,擴展高電平有效鎖存的地址鎖存器74HC373作為低8位地址總線鎖存器,使用64KB容量的EPROM作為系統(tǒng)的程序存儲器。圖6-108031單片機最小系統(tǒng)電路原理(EPROM型程序存儲器)根據用戶系統(tǒng)對程序存儲空間的需要,圖中的EPROM存儲器可以更換更小的存儲容量。在圖中沒有任何一個器件或連接是可以省略的,對于8031的應用系統(tǒng)這些器件是必需的。電路中的所有器件惟一可以更換型號的就是EPROM和CPU,它支持不同存儲容量的EPROM,支持不同型號的ROM-Less型MCS-51單片機。圖中的關鍵連接為:引腳必須與GND連接;必須與EPROM的輸出使能控制信號連接;EPROM的必須與GND連接;數(shù)據總線和地址總線與EPROM的數(shù)據總線和地址總線引腳一一對應連接。圖6-11是使用FlashROM作為8031的外部程序存儲器的典型電路原理。由于FlashROM允許電氣方式寫/擦除操作,這種類型的存儲器都有寫操作允許(使能)引腳。如果把FlashROM作為程序存儲器在系統(tǒng)中使用,系統(tǒng)正常運行時它以“只讀”模式工作,所以其引腳必須與VCC連接,即在系統(tǒng)中禁止寫操作。比較圖6-10和圖6-11,兩者的區(qū)別僅有一點,即FlashROM的引腳必須與VCC連接。

ROM-Less型MCS-51單片機必須使用擴展的外部程序存儲器,當其存儲空間都在64KB以內時,圖6-10和圖6-11都是可以直接利用的。這兩個電路中的程序存儲器的片選都是永遠有效的(與GND連接);存儲器的輸出使能信號都與連接。按照MCS-51系列單片機訪問外部存儲器的時序(參見圖6-3),兩片存儲器都僅工作在MCS-51單片機取指令的周期期間,在此期間僅向CPU輸出指令,雖然它們的片選信號永遠有效,但是它們的寫操作允許(使能)引腳都永遠無效,所以除了在CPU取指令時它們才工作之外,其他時間都不工作。而在CPU執(zhí)行指令階段,CPU訪問外部存儲器或外部地址都屬于數(shù)據存儲器或I/O地址。圖6-118031最小系統(tǒng)電路原理(FlashROM型程序存儲器)

2.帶有內部ROM型單片機擴展片外程序存儲器片內帶有程序存儲器的MCS-51單片機的種類也非常多,它們內部的程序存儲器容量往往不同,一般為4~64KB,當使用的MCS-51單片機的片內ROM不夠用時,還必須擴展外部程序存儲器。圖6-12是片內帶有4KB的FlashROM存儲器的單片機擴展外部程序存儲器的電路原理圖。圖6-12中/VP引腳必須與VCC連接,對8051來講,它們內部都有4KB的程序存儲器,其/VP與VCC連接時這4KB程序存儲器可以使用。當執(zhí)行的程序地址大于4KB后,CPU根據PC的值自動到外部擴展的程序存儲器中取指令。當使用MCS-51單片機的片內程序存儲器時,片內的地址空間和片外擴展的地址空間一起編址,其中內部地址空間的起始地址必須從0000H開始,即CPU被復位后必須從內部程序空間開始執(zhí)行程序。圖6-12片內帶有ROM的78E51擴展外部FlashROM作為程序存儲器的電路6.3MCS-51系列單片機的外部數(shù)據存儲器的擴展在基于單片機的工業(yè)控制系統(tǒng)、測控系統(tǒng)、記錄儀器等應用領域中,數(shù)據存儲器總是系統(tǒng)必不可少的部件?;?031內核的MCS-51系列單片機片內都帶有128B的SRAM型內部數(shù)據存儲器,基于8032內核的MCS-51系列單片機片內都帶有256B的SRAM型內部數(shù)據存儲器,它們可以作為通用寄存器、堆棧、數(shù)據緩存等目的使用。目前有許多MCS-51單片機片內除了帶有256B的片內SRAM型數(shù)據存儲器外,還在片內擴展了EEPROM型和SRAM型數(shù)據存儲器。如Atmel公司的AT89S8252內部擴展了2KB的EEPROM型數(shù)據存儲器;Philips公司的P89C660/2/4/8內部分別擴展了1KB、2KB、4KB、8KB的SRAM數(shù)據存儲器;Dallas、Winbond等公司的MCS-51單片機也有片內擴展1KB的SRAM型數(shù)據存儲器。單片機系統(tǒng)中使用的數(shù)據存儲器必須是可讀、可寫的存儲器,目前常用的數(shù)據存儲器包括以下五類:

●SRAM(StaticRandomAccessMemory,靜態(tài)隨機存取存儲器);

●NOVRAM(Non-VolatileRandomAccessMemory,不揮發(fā)隨機存取存儲器);

●EEPROM;

●FlashROM;

●FRAM(FerroelectricNonvolatileRandomAccessMemory,鐵電不揮發(fā)隨機存取存儲器)。這些類型的存儲器都支持并行接口訪問和串行接口訪問,都允許字節(jié)“讀操作”訪問,有些還允許字節(jié)“寫操作”或“擦除操作”訪問,有些支持扇區(qū)模式的“寫操作”或“擦除操作”訪問。其中SRAM是易揮發(fā)性的(掉電后數(shù)據丟失),其他類型的存儲器都是不揮發(fā)的(掉電后數(shù)據不丟失)。這五種類型存儲器的性能比較見表6-7。6.3.1常用數(shù)據存儲器

1.SRAM隨機訪問存儲器包括兩類:SRAM和DRAM。其中SRAM常用于8位和16位單片機系統(tǒng),而DRAM多用于PC或高檔單片機系統(tǒng)。由于DRAM芯片的存儲容量較大,而在有限的引腳實現(xiàn)大容量存儲空間,其地址譯碼電路往往采用矩陣結構,存儲陣列的行和列地址線是復用的,分別通過行地址控制信號(RAS)和列地址控制信號(CAS)并按照訪問時序分時選通,因此其譯碼電路比較復雜。另外,DRAM是依靠電容存儲電荷表示二進制數(shù)據,而電容都存在泄漏電流,所以控制電路必須按其原來存儲的數(shù)據信息不斷地給電容充電,即DRAM芯片的外圍必須“刷新”控制電路(俗稱刷新時鐘)。雖然DRAM芯片本身具有低成本、低功耗等優(yōu)點,但是它極容易被干擾而造成內部數(shù)據信息變化,而且芯片的外圍控制電路復雜,所以在8位或16位單片機的一般功能系統(tǒng)中較少使用,而且由于DRAM容易受干擾,在工業(yè)控制領域中也較少使用。而SRAM芯片的存儲容量相對偏小,價格相對較高,訪問速度也比較慢。但是,在單片機系統(tǒng)中所需的存儲容量一般都在幾兆位以內,速度都在200ns以內,這些對SRAM來講都是容易實現(xiàn)的,最關鍵的因素是SRAM的可靠性相對比DRAM要高得多,抗干擾性能也更好。

8位并行接口的SRAM芯片在MCS-51系列單片機的應用系統(tǒng)中被廣泛使用,目前這類存儲器多數(shù)以62xxx或61xxx命名,其存儲容量為2~512KB,有些甚至有更大的容量。圖6-13是DIP封裝的6116、6264、62128、62256、62512、621024的引腳排列和引腳名稱,它們的存儲容量分別為2KB、8KB、16KB、32KB、64KB、128KB。其中6264、62512和621024比其他芯片多一個高電平有效的片選信號CE2。圖6-1362系列SRAM的引腳名稱和排列圖

SRAM引腳的名稱和功能定義如下:

●A0~A16:地址總線(輸入端),器件存儲容量不同,地址總線寬度也不同;

●D0~D7:數(shù)據總線,8位雙向三態(tài)數(shù)據總線;

●:低電平有效的片選信號(輸入端);CE2:高電平有效的片選信號(輸入端),僅6264、62512、621024等芯片有;

●:低電平有效的數(shù)據輸出使能信號(輸入端);

●:低電平有效的數(shù)據寫使能信號(輸入端);

●VCC:供電電源正(輸入端),一般為DC+5V;

●GND:供電電源地;

●NU:未使用的引腳。所有的SRAM都具有以下四種工作狀態(tài)和模式:

(1)讀狀態(tài)。當VCC正常,和CE2(如果有該引腳)都處于有效電平狀態(tài),引腳被置為低電平(的有效電平)狀態(tài)時,SRAM芯片將地址總線上對應的地址單元中的數(shù)據發(fā)送到數(shù)據總線上。

(2)寫狀態(tài)。當VCC正常,和CE2(如果有該引腳)都處于有效電平狀態(tài),引腳被置為低電平(的有效電平)狀態(tài)時,SRAM芯片將數(shù)據總線上的數(shù)據寫到地址總線指定的地址單元中。

(3)空閑模式。當VCC正常,和CE2(如果有該引腳)的任何一個控制信號處于無效電平時,無論或處于任何狀態(tài),SRAM芯片立即進入空閑模式。退出空閑模式的條件就是讓和CE2(如果有該引腳)都處于有效的電平狀態(tài),并且和中的任何一個引腳處于有效電平狀態(tài)。

(4)維持數(shù)據狀態(tài)。當VCC電壓降到2~4V時,其他所有引腳都浮空,此時,SRAM處于維持內部數(shù)據狀態(tài)。SRAM進入維持內部存儲器中的數(shù)據狀態(tài)時,其消耗電流立即降到100μA以內,甚至有些SRAM芯片的維持數(shù)據狀態(tài)的消耗電流僅有10μA,這根據SRAM類型和制造廠家而不同。如果嵌入式單片機系統(tǒng)需要將SRAM中的數(shù)據在系統(tǒng)掉電后仍被保存,便于下次開機時使用,就必須為系統(tǒng)中使用SRAM芯片增加后備電池,在系統(tǒng)掉電后SRAM的各引腳浮空,利用后備電池在VCC端提供維持電壓。由于SRAM的維持數(shù)據狀態(tài)消耗的電流非常小,使用后備電池可以使SRAM中的數(shù)據保留較長的時間。圖6-14是8051外圍擴展32KB帶有后備電池的SRAM型數(shù)據存儲器的典型電路。如果系統(tǒng)需要在系統(tǒng)掉電后仍將32KBSRAM中的數(shù)據保存,則可在電路中使用3V的紐扣型后備電池(如CR2032)作為SRAM維持數(shù)據的后備電池。假設某電池的總功率為500mAh,SRAM的維持數(shù)據狀態(tài)的消耗電流為12μA(HY62C256),那么可以計算出使用該后備電池能夠維持數(shù)據不丟失的時間為維持的總小時數(shù)=≈41666小時那么,實際可以維持大約4.7年時間。圖中32KB的SRAM地址空間為0000H~7FFFH,其中SRAM的片選控制信號與P2.7(AB15)連接。當AB15為低電平時,SRAM的片選信號有效;當AB15為高電平時,SRAM不工作,處于空閑模式。由于MCS-51單片機在復位期間,各引腳的電平狀態(tài)都是未知的,而SRAM的寫狀態(tài)條件僅和有效時,也就是說,在CPU復位期間或CPU失控狀態(tài)下,SRAM中的數(shù)據就可能被改寫,這樣保存在SRAM中的數(shù)據極可能被改寫而出現(xiàn)非法數(shù)據。為了保證SRAM中的數(shù)據不被改寫,圖中將SRAM的片選引腳不直接與AB15連接,AB15與小功率開關型P型MOSFET管(QF1)的源極連接,MOSFET管的漏極與SRAM的連接,而P型MOSFET管的門極受CPU的復位信號控制。當8051處于復位狀態(tài)時,QF1的源極和漏極被截止,無論AB15處于何種電平狀態(tài),SRAM的片選控制信號都會被后備電池經過100kΩ(R3)電阻鉗位在后備電池電壓的電位(可以認為是高電平),迫使SRAM處于空閑狀態(tài),以保護SRAM中的數(shù)據在CPU復位期間不被非法改寫。一旦復位結束,QF1即處于完全導通狀態(tài),之后SRAM片選信號的電平狀態(tài)受AB15的電平狀態(tài)控制。當AB15為低電平狀態(tài)(CPU訪問SRAM)時,SRAM的端也為低電平;當AB15為高電平狀態(tài)時,SRAM的端也為高電平。圖6-148051外部擴展32KB帶有后備電池的SRAM數(shù)據存儲器圖中二極管VD1的作用是,在系統(tǒng)處于正常供電狀態(tài)下,VCC電壓可以經過VD1給SRAM供電;當系統(tǒng)的供電電源被關閉后,后備電池僅為SRAM供電維持其內部的數(shù)據不丟失,由于VD1的作用而使后備電池與系統(tǒng)中的其他器件分離。

2.NOVRAM目前常用的NOVRAM主要是Dallas半導體公司和Xicor公司的產品。其中Dallas的NOVRAM產品幾乎全都與其相同存儲容量和封裝的SRAM兼容,它們都采用“SRAM+后備Li電池+寫保護電路”的結構,所以其引腳、工作時序都與相同存儲容量的SRAM完全兼容,使用時幾乎完全相同,而且Dallas的這種結構的NOVRAM產品的存儲容量為2KB~2MB,種類繁多。由于這種類型的存儲器都帶有后備電池和寫保護電路,因此它們的體積都較大。而Xicor公司的NOVRAM采用“SRAM+EEPROM”結構,可以與MCS-51單片機的并行總線接口的產品有兩種型號,即X20C04和X20C16,其存儲容量分別為512B和2KB。Xicor公司的這種結構的NOVRAM相對Dallas公司的產品,其體積小,但是存儲器容量都較小,而且相對成本較高。另外,除了并行接口的NOVRAM,Xicor公司還生產有串行接口的NOVRAM,這種產品目前也有兩種型號,即X24C44和X24C45,它們也是采用串行接口的“SRAM+EEPROM”的結構。采用“SRAM+后備電池+寫保護電路”的NOVRAM的產品主要有DS1220Y/AB、DS1225Y/AB、DS1230Y/AB、DS1245Y/AB等,它們的存儲容量分別為2KB、8KB、32KB、128KB,從引腳和工作時序上完全兼容對應的SRAM分別為6116、6264、62256、621024,這些SRAM可以和Dallas公司對應存儲容量的NOVRAM相互替換。Dallas公司的這些型號的NOVRAM器件的引腳和功能請參考SRAM部分的說明,它們與8051的接口擴展電路與相同存儲容量的SRAM相同。圖6-15是8位并行接口采用“SRAM+EEPROM”結構(以X20C16為例)的NOVRAM的內部結構原理。它的內部有兩種類型的存儲器:SRAM和EEPROM,而且兩塊存儲陣列大小相等、相互影響。如果不揮發(fā)性控制信號為低電平狀態(tài),其內部的電壓檢測電路自動檢測芯片的供電電壓,當供電電源電壓降到自動存儲門限電壓時(大約4.0~4.3V),芯片自動將SRAM中的數(shù)據一一對應地保存(Store)到EEPROM中。系統(tǒng)供電電源全部關閉后,SRAM中的數(shù)據已經全部保存到EEPROM中,雖然SRAM中的數(shù)據全部丟失,但在系統(tǒng)重新加電后,通過系統(tǒng)軟件可以將數(shù)據從EEPROM中重新還原(Recall)到SRAM中。圖6-15X20C16的內部結構原理這種結構的NOVRAM在系統(tǒng)掉電后使用EEPROM保存存儲器中的數(shù)據,雖然EEPROM有擦寫次數(shù)的限制,但由于X20C16和X20C04的擦寫次數(shù)可達100萬次,而且這種結構存儲器中的EEPROM僅在系統(tǒng)每掉電一次才被寫一次,系統(tǒng)在正常工作時使用的是SRAM,而SRAM類型存儲器是沒有壽命限制的,所以X20C04和X20C16的壽命允許系統(tǒng)關閉電源達到100萬次,這足夠一個系統(tǒng)使用幾十年。圖6-16和表6-8是X20C16的引腳排列圖和各引腳的名稱與對應的功能描述。與相同存儲容量的SRAM(6116)相比,X20C16多了和兩個引腳,它們分別作為“不揮發(fā)性使能”控制信號的輸入端和自動存儲信號的輸出端使用。圖6-16X20C16的引腳排列圖圖6-17是X20C16與8051單片機連接的參考電路,在電路中使用P1.0作為X20C16的不揮發(fā)性使能控制信號。當P1.0為高電平時,CPU可以對X20C16內的SRAM進行讀操作或寫操作(根據→、→、的電平狀態(tài));當P1.0為低電平時,通過8051讀操作(、處于有效電平狀態(tài))可以將EEPROM中的數(shù)據恢復(Recall)到SRAM中。圖中X20C16的片選信號由AB15控制,其存儲空間為2KB,它們的地址范圍為0000H~07FFH。圖6-178051外部擴展2KB的NOVRAM型數(shù)據存儲器

3.EEPROM有關適合于MCS-51單片機系統(tǒng)使用的8位并行接口的EEPROM的特點在前一節(jié)中已經介紹過了,這里不再重復。常用的EEPROM除了前一節(jié)介紹的8位并行接口器件外,目前用得更多的則是串行接口的器件,如采用I2C總線(2線制)接口的24Cxx系列EEPROM器件,采用SPI(3線或4線制)接口的93xx系列EEPROM器件等。圖6-18是Atmel公司提供的采用I2C總線接口的AT24C01/02/04/08/16的內部結構框圖。圖6-18AT24Cxx系列串行EEPROM的內部結構

AT24Cxx串行存儲器的存儲容量分別為128B、256B、512B、1KB和2KB。由于MCS-51單片機的所有I/O口都支持位操作指令(SETBI/O和CLRI/O),因此它們與MCS-51系列單片機的任何兩根I/O線連接即可。AT24Cxx系列串行存儲器的寫或擦除操作壽命都可以達到100萬次以上,是一種可靠的節(jié)省MCS-51單片機資源的小存儲容量的數(shù)據存儲器,它們在MCS-51單片機系統(tǒng)中一般用來存儲那些非常重要的數(shù)據,譬如嵌入式系統(tǒng)惟一的通信識別序列碼、地址碼,測控系統(tǒng)的系統(tǒng)運行參數(shù)、補償或矯正參數(shù)等。圖6-19是3線串行接口的AT93Cxx系列EEPROM的內部結構,該系列存儲器的型號為AT93C46/56/66,這些存儲器的存儲陣列的字節(jié)結構是可配置的。當ORG引腳與VCC連接時,訪問存儲陣列為8位結構,相應的存儲容量分別為128B、256B和512B;當ORG引腳與GND連接時,訪問存儲陣列為16位結構,相應的存儲容量分別為64Word、128Word和256Word。雖然AT93Cxx系列存儲器的存儲容量比較小,但是其存儲器陣列可以靈活配置。這些存儲器往往用于存儲系統(tǒng)的運行參數(shù)等重要數(shù)據。其他的串行EEPROM種類繁多,而且它們的接口大多數(shù)都兼容I2C或SPI方式,采用2線、3線或4線制,容易與支持位操作指令的MCS-51系列單片機連接。目前部分串行EEPROM存儲器除了具有EEPROM陣列外,還增加了MCS-51單片機必需的電壓監(jiān)控、上電復位、Watchdog復位、RTC(RealTimeClock)等功能。如Xicor公司的X1228芯片,就集這些功能于一顆芯片內部,它是把專用的μP監(jiān)控復位芯片、串行EEPROM芯片、實時日歷時鐘芯片集成在X1228內部,這樣可以節(jié)省單片機的外圍器件數(shù)目,而且還可以節(jié)省系統(tǒng)印制電路板的面積。圖6-19AT93Cxx系列串行EEPROM的內部結構

4.FlashROM

SST公司提供的39SFxxx系列、29EExxx系列和28SFxxx系列FlashROM的引腳排列和名稱如圖6-20所示。這些存儲器單顆芯片的存儲容量為64~512KB,都采用8位并行接口,可以與8031最小應用系統(tǒng)直接連接使用。它們的共同特點是存儲器陣列按扇區(qū)(Sector)模式操作,其中讀操作是例外的(按字節(jié)方式),寫/擦除操作是按扇區(qū)進行的。它們的型號不同,扇區(qū)容量也不同,扇區(qū)容量為128B~8KB。圖6-20SST公司FlashROM存儲器的引腳名稱和排列圖各個引腳的功能如下:

●A0~A18:存儲器的地址總線輸入端,存儲容量不同,地址總線的寬度不同。

●DQ0~DQ7:雙向8位數(shù)據總線。在寫狀態(tài)時,從數(shù)據總線接收數(shù)據(輸入);讀狀態(tài)時,將數(shù)據發(fā)送到數(shù)據總線上(輸出);在空閑狀態(tài)時,處于高阻態(tài)。

●CE#:片選(允許工作)控制信號輸入端,低電平有效。當CE為高電平時,芯片進入空閑狀態(tài),忽略控制輸入信號,數(shù)據總線處于高阻態(tài)。

●WE#:允許寫信號輸入端,低電平有效。當CE#和WE#同時有效時,存儲器芯片從數(shù)據總線上接收數(shù)據,可以實現(xiàn)CPU對FlashROM的命令寄存器和存儲器陣列的寫操作。

●OE#:允許輸出信號輸入端,低電平有效。當CE#和OE#同時有效時,存儲器將地址總線指定的存儲單元中的數(shù)據發(fā)送到數(shù)據總線,實現(xiàn)CPU對存儲器陣列的讀操作。

●VCC:供電電源正輸入端,一般為DC+5V。

●GND:電源地。

●NC:未使用的引腳。下面以39SF040為例說明這些FlashROM的操作方法。39SF040的字節(jié)寫等操作命令序列見表6-9。該存儲器的讀操作與其他類型的并行存儲器的讀操作相同,支持任意字節(jié)地址的隨機讀操作。圖6-21是39SF040存儲器陣列字節(jié)地址的隨機讀操作時序。圖6-2139SF040存儲器陣列字節(jié)隨機讀操作時序

39SF040存儲器的字節(jié)寫操作必須按照表6-9中第一行的命令順序,所以單字節(jié)的寫操作由4個寫循環(huán)組成,包括3個命令的寫操作和1個數(shù)據的寫操作。完成4個寫循環(huán)后該器件自動啟動內部編程循環(huán),單字節(jié)的內部編程循環(huán)一般需要14μs的時間,在內部編程循環(huán)期間,器件不響應其他任何操作。圖6-22是39SF040存儲器陣列的單字節(jié)寫操作時序。圖6-2239SF040存儲器陣列的字節(jié)編程操作時序圖6-23和圖6-24分別是39SF040的扇區(qū)擦除操作時序和整片擦除操作時序。扇區(qū)擦除和整片擦除操作都需要6個總線周期才能完成。而且寫操作和擦除操作都需要一定時間的內部編程循環(huán)。對39SF040來講,扇區(qū)擦除操作的內部編程循環(huán)時間約需要18ms,整片擦除操作的內部編程循環(huán)約需要70ms。相對SRAM型存儲器,F(xiàn)lashROM寫操作的速度比較慢。雖然這些操作比較繁瑣,但是可以有效地保證存儲器陣列中的數(shù)據不會被非法改寫。圖6-2339SF040存儲器陣列的扇區(qū)擦除操作時序圖6-2439SF040存儲器陣列的整片擦除操作時序

SST公司的39SFxx系列FlashROM存儲器具有多種讀/寫速度,實際使用時需要根據具體的型號來確定。圖6-21~圖6-24中的時序時間常數(shù)隨不同型號而不相同,請參考SST公司相關器件的手冊。

FlashROM可以為嵌入式控制系統(tǒng)、測控系統(tǒng)、工業(yè)控制系統(tǒng)、智能記錄儀器等提供大容量的數(shù)據存儲器,目前更大容量的FlashROM已經達到幾十兆字節(jié)。

FlashROM作為MCS-51系列單片機外部擴展的數(shù)據存儲器時,其應用電路可以參考SRAM的電路,但是控制讀、寫和擦除操作軟件不同。

5.FRAM鐵電存儲器(FRAM)的核心技術是鐵電晶體材料,這一特殊材料使得鐵電存儲產品同時擁有隨機存取存儲器(RAM)和非易失性存儲產品的特性。鐵電晶體材料的工作原理是:當電場加載到鐵電晶體材料上時,晶體陣列中的中心原子會沿著電場方向運動,到達穩(wěn)定狀態(tài)。晶體陣列中每個自由浮動的中心原子只有兩個穩(wěn)定狀態(tài),一個狀態(tài)被用來記憶邏輯“0”,另一個狀態(tài)用來記憶邏輯“1”。其中心原子能夠在常溫、沒有電場的情況下停留在此狀態(tài)達100年以上時間,鐵電存儲器不需要定時刷新(與DRAM相比),能在斷電情況下保存數(shù)據(與常規(guī)SRAM相比)。由于在整個物理過程中沒有任何原子碰撞,F(xiàn)RAM擁有相當于SRAM的高速讀/寫、超低功耗和無限次寫/擦除等優(yōu)點,同時還具有數(shù)據掉電不丟失的優(yōu)點。它是近些年被開發(fā)并廣泛應用的一種新型存儲器,據部分專家預測,在未來FRAM將完全取代SRAM,但是,目前FRAM的價格比較高,大約0.1KB/元。

FRAM存儲器的專利權歸總部設在美國科羅拉多州的ColoradoSprings市的Ramtron公司,目前Toshiba、Hitachi、Fujistu、Rohm、Samsung、Infineon等半導體公司都獲得了Ramtron公司的授權,可提供各種不同的FRAM產品。目前市場上可以見到的Ramtron公司的FRAM產品見表6-10。表中的FM24Cxx產品完全兼容I2C總線接口的EEPROM產品;FM25xxx則完全兼容SPI接口的EEPROM產品;FM1608完全兼容62C64(SRAM),但增加了不揮發(fā)性;FM1808完全兼容62C256,但也增加了不揮發(fā)性;而FM3808既具有62C256的存儲器,又增加了不揮發(fā)性,而且該芯片內還帶有嵌入式控制系統(tǒng)的單片機必需的電壓監(jiān)控、實時日歷時鐘和Watchdog定時器功能。串行接口(I2C、SPI)的FRAM與相同容量的EEPROM相比,F(xiàn)RAM型存儲器的字節(jié)寫大約需要72μs,而串行接口的EEPROM存儲器的字節(jié)寫大約需要7ms。所有的EEPROM都有字節(jié)寫內部編程循環(huán)時間(大約5ms左右),而FRAM的字節(jié)寫沒有自編程等待時間,這樣在一些要求快速保存數(shù)據的應用領域,F(xiàn)RAM類型存儲器有非常好的優(yōu)越性。6.3.2并行接口數(shù)據存儲器的擴展

1.擴展并行接口的SRAM和NOVRAM作為外部數(shù)據存儲器

MCS-51單片機的外部擴展32KB的SRAM類型數(shù)據存儲器的電路參見圖6-14,圖中擴展的62C256的地址空間為0000H~7FFFH。下面的程序是實現(xiàn)將外部數(shù)據存儲器中的數(shù)據轉移到內部數(shù)據存儲器中,同時將原來的數(shù)據清零。外部數(shù)據存儲器的起始地址為1000H,將要轉移的數(shù)據個數(shù)由函數(shù)輸入變量“_len”確定,內部存儲器起始地址指針為函數(shù)的輸入變量“*_data”。#include<io51.h>

//使用8051單片機的頭文件#defineExRAMbaseAd

((unsignedchar*)0x011000)

//指向外部數(shù)據存儲器地址1000H的指針voidGetExRAMData(unsignedchar*_data,unsignedchar_len){

unsignedchari;

for(i=0;i<_len;i++)

{

_data[i]=*(ExRAMbaseAd+i);

//從外部數(shù)據存儲器中讀一個字節(jié)的數(shù)據,并將數(shù)據保存到_data數(shù)組中*(ExRAMbaseAd+i)=0x0;

//將外部存儲器中原來的數(shù)據清零

}}由于Dallas公司的NOVRAM型DS1230Y/AB存儲器與PDIP封裝的62C256的引腳、讀/寫時序完全相同,因此上面的程序和圖6-14同樣適合于DS1230Y/AB的應用電路。

2.擴展并行接口的FlashROM作為外部數(shù)據存儲器

FlashROM都是大存儲容量的存儲器,往往在嵌入式單片機應用系統(tǒng)中也需要擴展大存儲容量的FlashROM,以用于保存長時間的連續(xù)測量結果和系統(tǒng)事件記錄。下面介紹如何為MCS-51單片機應用系統(tǒng)擴展大于64KB數(shù)據存儲器的方法。

MCS-51系列單片機的地址總線寬度為16位,使用常規(guī)地址擴展法可以尋址的數(shù)據存儲器地址空間為216(64KB)。非常規(guī)擴展方法有兩種。一種方法是用P1口作為擴展的高位地址,占用P1口n根I/O線,就可以將數(shù)據存儲器的尋址空間擴展為2n×64KB。采用這種方法的缺點是隨著需要擴展的尋址空間的擴大,必須占用更多的P1口線,當需要擴展1MB(24×64KB)空間時,將占用P1

溫馨提示

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

評論

0/150

提交評論