版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章MCS-51系列單片機(jī)的外部資源擴(kuò)展6.1MCS-51系列單片機(jī)的外部地址擴(kuò)展6.2MCS-51系列單片機(jī)的外部程序存儲(chǔ)器的擴(kuò)展6.3MCS-51系列單片機(jī)的外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展6.4MCS-51系列單片機(jī)的外部I/O通道的擴(kuò)展習(xí)題六6.1MCS-51系列單片機(jī)的外部地址擴(kuò)展6.1.1MCS-51系列單片機(jī)的外部資源擴(kuò)展概述
1.?dāng)?shù)據(jù)總線
MCS-51系列單片機(jī)的數(shù)據(jù)總線寬度為8位(DB0~DB7),由P0口提供,它是一個(gè)三態(tài)結(jié)構(gòu)的雙向輸入/輸出端口,在系統(tǒng)外部資源擴(kuò)展時(shí),是外圍器件和CPU內(nèi)部功能部件之間的信息傳輸通道,通過這個(gè)通道,外圍擴(kuò)展電路與累加器之間可以交換數(shù)據(jù)和指令等信息。
2.地址總線
MCS-51系列單片機(jī)的地址總線寬度為16位,可以尋址的最大空間為216(65?536)即64KB。低8位地址總線(AB0~AB7)由P0口提供,高8位地址總線(AB8~AB15)由P2口提供。由于P0端口既作為數(shù)據(jù)總線使用又作為低8位地址總線使用,因此只能采用“分時(shí)復(fù)用”方式。“分時(shí)復(fù)用”的輔助信號(hào)是ALE,因此擴(kuò)展外部資源時(shí)需要使用外部低8位地址鎖存器,在ALE輸出有效電平(高電平)時(shí),P0端口的信息作為低8位地址信息鎖存在外部地址鎖存器中,然后P0就可以切換為雙向數(shù)據(jù)總線使用。
P2端口本身具有輸出鎖存能力,因此無需外部鎖存器即可直接作為高8位地址總線使用。
3.控制總線
MCS-51系列單片機(jī)的控制信號(hào)線包括、、ALE、和。這5根信號(hào)線構(gòu)成了MCS-51單片機(jī)的控制總線,控制總線的作用是控制外部擴(kuò)展的接口電路和單片機(jī)本身的工作狀態(tài)。和的作用:這兩個(gè)信號(hào)都是由CPU發(fā)出的,分別是CPU對片外接口(包括存儲(chǔ)器和I/O)的寫和讀操作控制信號(hào)。當(dāng)CPU執(zhí)行MOVX指令(訪問外部接口資源)時(shí),有效的和信號(hào)(低電平有效)從CPU的P3.6和P3.7管腳自動(dòng)輸出。
ALE的作用:P0端口分時(shí)復(fù)用為低8位地址總線和數(shù)據(jù)總線,“分時(shí)復(fù)用”的“分時(shí)”輔助信號(hào)就是ALE。在進(jìn)行外部地址擴(kuò)展時(shí),ALE在P0端口輸出低8位地址信息的同時(shí)保持有效電平,允許外部地址鎖存器使用ALE信號(hào)作為觸發(fā)將低8位地址鎖存在外部的地址鎖存器中。的作用:用于區(qū)分CPU正在訪問的地址空間是否屬于程序地址空間的控制信號(hào)。當(dāng)為低電平時(shí),表示CPU處于取指令階段,如果有外部程序存儲(chǔ)器,此時(shí)外部程序存儲(chǔ)器可以將指令送出(“讀”外部程序地址空間);否則,為高電平期間,表示CPU處于執(zhí)行周期階段,可以訪問外部的數(shù)據(jù)存儲(chǔ)器和I/O地址空間。信號(hào)由CPU發(fā)出。的作用:對MCS-51系列單片機(jī)來講,是輸入信號(hào)。是MCS-51系列單片機(jī)控制總線中惟一一個(gè)用于控制CPU工作狀態(tài)的控制信號(hào)。當(dāng)被外部電路強(qiáng)制拉到低電平(=0)時(shí),MCS-51系列單片機(jī)僅使用外部程序存儲(chǔ)器,而且無論使用的單片機(jī)是否有片內(nèi)程序存儲(chǔ)器(即片內(nèi)程序被屏蔽);當(dāng)被外部電路強(qiáng)制鉗位到高電平(=1)時(shí),MCS-51系列單片機(jī)允許使用片內(nèi)程序存儲(chǔ)器,當(dāng)片內(nèi)地址空間小于64KB時(shí),也可以訪問外部程序存儲(chǔ)器,但外部程序存儲(chǔ)器與片內(nèi)程序存儲(chǔ)器地址重疊部分不能使用。顯然,對那些片內(nèi)沒有程序存儲(chǔ)器的MCS-51系列單片機(jī)來講,必須強(qiáng)制拉到低電平,如第二章中提到的8031和8032、DS80C320等。采用“三總線”結(jié)構(gòu)的典型擴(kuò)展電路如圖6-1所示。MCS-51系列單片機(jī)的地址總線寬度為16位,所以采用MCS-51系列單片機(jī)為核心的單片機(jī)應(yīng)用系統(tǒng)的最大尋址能力為64KB,地址范圍為0000H~FFFFH。MCS-51系列單片機(jī)的指令操作流水線采用兩階段(取指令階段和執(zhí)行指令階段),而且兩個(gè)階段的狀態(tài)由來區(qū)分。在取指令操作階段(狀態(tài)),CPU僅對程序存儲(chǔ)器(代碼段地址空間)操作(取指令操作);而在指令執(zhí)行階段(狀態(tài)),CPU僅對數(shù)據(jù)存儲(chǔ)器或I/O地址空間操作(數(shù)據(jù)存儲(chǔ)器或I/O地址的讀/寫操作)。這樣外部資源擴(kuò)展電路如果使用控制信號(hào)來區(qū)分程序地址空間和非程序地址空間,那么MCS-51系列單片機(jī)系統(tǒng)就可以擴(kuò)展兩個(gè)64KB地址空間,即一個(gè)64KB的程序地址空間和另一個(gè)64KB的非程序(數(shù)據(jù)存儲(chǔ)器和I/O端口)地址空間。圖6-1MCS-51系列單片機(jī)外部擴(kuò)展的“三總線”結(jié)構(gòu)如圖6-2所示,圖中給出了Intel8031單片機(jī)的外部擴(kuò)展64KB的程序存儲(chǔ)器(27C512)和64KB的數(shù)據(jù)存儲(chǔ)器的典型電路。其中,外部程序存儲(chǔ)器的地址范圍為0000H~FFFFH,外部數(shù)據(jù)存儲(chǔ)器的地址范圍為0000H~FFFFH。這兩片存儲(chǔ)器分別工作在低電平期間(CPU取指令階段)和高電平期間(CPU執(zhí)行指令階段),即27C512僅在CPU取指令時(shí)才占用數(shù)據(jù)總線、地址總線和控制總線,向CPU發(fā)送指令;而CPU在執(zhí)行指令階段需要訪問外部地址時(shí),62C512才能工作并占用數(shù)據(jù)總線、地址總線和控制總線,將來自CPU的數(shù)據(jù)寫入SRAM或?qū)?shù)據(jù)發(fā)送給CPU。如執(zhí)行下面的程序:
MOV
DPTR,#8000H;16位數(shù)據(jù)指針指向8000H地址
MOVX
A,@DPTR
;將外部的8000H地址中的數(shù)據(jù)讀到累加器
MOV
R4,A
;將累加器中的內(nèi)容保存到寄存器R4中
MOV
A,#55H ;將立即數(shù)55H傳送到累加器中
MOVX
@DPTR,A
;將累加器中的內(nèi)容寫到外部的8000H地址中
RET ;子程序返回,讀得的數(shù)據(jù)存在R4中
…圖6-28031外部擴(kuò)展64KB數(shù)據(jù)存儲(chǔ)器和64KB程序存儲(chǔ)器的典型電路相同功能的C語言程序如下:unsignedcharGetByteFromExAd8000(void){
#define
EXAd8000
(unsignedchar*)(0x018000)//定義一個(gè)指向外部數(shù)據(jù)存儲(chǔ)空間的(地址為8000H)的字節(jié)型指針
unsignedchar_data;
data=*EXAd8000;
//從外部數(shù)據(jù)存儲(chǔ)器8000H地址讀數(shù)據(jù)到data變量中*EXAd8000=0x55;
//寫55H到外部數(shù)據(jù)存儲(chǔ)器8000H地址
return(_data);
//子程序返回,讀得的數(shù)據(jù)作為函數(shù)返回值}在圖6-2所示的電路中,用戶編寫的程序代碼被編譯生成可執(zhí)行的機(jī)器碼(即可執(zhí)行代碼)后,由于Intel8031單片機(jī)片內(nèi)無ROM空間,因此可執(zhí)行代碼被存放在擴(kuò)展的EPROM中,CPU自動(dòng)按照程序流程在取指令階段從EPROM中取指令,其他階段的操作都是按照程序意圖對內(nèi)部功能單元或擴(kuò)展的SRAM芯片62512進(jìn)行讀或?qū)懖僮?。需要注意,由于SRAM占用了所有的外部數(shù)據(jù)存儲(chǔ)空間(64KB),因此執(zhí)行程序的過程中只要執(zhí)行了訪問外部地址空間指令(MOVX),那么必定是對SRAM的操作。為了說明圖6-2的電路,圖6-3給出了MCS-51系列單片機(jī)擴(kuò)展外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的操作時(shí)序,可以根據(jù)操作時(shí)序來驗(yàn)證電路原理是否正確。圖6-3MCS-51系列單片機(jī)外部程序和數(shù)據(jù)存儲(chǔ)器的訪問時(shí)序圖6-3中的時(shí)間參數(shù)如表6-1所示。6.1.2常用的地址鎖存器和地址譯碼器在對MCS-51系列單片機(jī)的外部地址資源進(jìn)行擴(kuò)展時(shí),往往不會(huì)總是按照圖6-2那樣僅擴(kuò)展64KB程序空間和64KB數(shù)據(jù)存儲(chǔ)空間,而且也不僅有2片外部器件,往往需要更多的片選(使能)信號(hào),將64KB的數(shù)據(jù)存儲(chǔ)地址劃分成若干段,然后分配給不同的外圍器件,以擴(kuò)展單片機(jī)系統(tǒng)的功能。MCS-51系列單片機(jī)的16位地址總線被劃分成高8位(AB8~AB15)和低8位(AB0~AB7),并分別從P2和P0口送出。在進(jìn)行外部資源擴(kuò)展時(shí)P2口為高8位地址總線專用,而P0口則分時(shí)復(fù)用為低8位地址總線和8位數(shù)據(jù)總線,由于這種分時(shí)復(fù)用機(jī)制,因此要求MCS-51系列單片機(jī)擴(kuò)展外部地址資源時(shí)必須有外部帶鎖存功能的寄存器。當(dāng)MCS-51單片機(jī)訪問外部地址空間時(shí),P0口首先將低8位地址信息送出,同時(shí)有效的地址鎖存使能信號(hào)從ALE腳位輸出,將低8位地址信息鎖存在擴(kuò)展的外部寄存器中,然后P0口轉(zhuǎn)為發(fā)送數(shù)據(jù)或接收數(shù)據(jù)的數(shù)據(jù)總線使用。在單片機(jī)外部用于鎖存地址的寄存器稱為地址鎖存器。所有地址總線和數(shù)據(jù)總線復(fù)用的CPU需要訪問外部地址資源時(shí),都必須在其復(fù)用的總線上連接地址鎖存器(大多數(shù)兼容Intel總線時(shí)序的CPU都這樣)?,F(xiàn)在使用的地址鎖存器都采用的是集成電路形式,俗稱地址鎖存芯片。在MCS-51單片機(jī)系統(tǒng)中常用的地址鎖存器有74HC373和74HC573等,它們都是高電平觸發(fā)鎖存的地址(或數(shù)據(jù))鎖存器。圖6-4是地址鎖存器74HC373的內(nèi)部結(jié)構(gòu)原理。它是由8個(gè)帶三態(tài)輸出控制的D型鎖存器組合構(gòu)成的,其輸入信號(hào)包括8個(gè)D型鎖存器的輸入端1D~8D、輸出三態(tài)控制信號(hào)和允許鎖存信號(hào)LE,輸出信號(hào)為1Q~8Q。圖6-474HC373的內(nèi)部結(jié)構(gòu)原理表6-2給出了74HC373的輸入狀態(tài)與輸出狀態(tài)的對應(yīng)關(guān)系表(即邏輯真值表)。根據(jù)圖6-4和表6-2,74HC373的鎖存觸發(fā)信號(hào)的有效電平是高電平,也就是說,在74HC373的鎖存允許信號(hào)LE的輸入端處于高電平時(shí),D型鎖存器的輸出端Q鎖存相應(yīng)的輸入端D的狀態(tài),一旦LE引腳的高電平撤消(進(jìn)入低電平),D型鎖存器的輸出端Q則保持最后一次的鎖存狀態(tài)直至LE端再次出現(xiàn)高電平(鎖存允許電平)。74HC573的內(nèi)部原理、真值表與74HC373完全相同,但兩者的引腳排列不相同。
MCS-51單片機(jī)進(jìn)行擴(kuò)展時(shí),如果外部的器件比較多,譬如有多片數(shù)據(jù)存儲(chǔ)器、多片程序存儲(chǔ)器或有程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器以及其他功能的擴(kuò)展器件,往往需要給這些器件各自分配獨(dú)立的片選(使能)信號(hào),這時(shí)就需要使用地址譯碼器來產(chǎn)生多個(gè)片選信號(hào)分配給各個(gè)外圍器件,便于MCS-51單片機(jī)訪問這些器件。為什么要給MCS-51單片機(jī)的外圍器件各自分配一個(gè)獨(dú)立的片選信號(hào)?假定某系統(tǒng)以8031單片機(jī)作為處理器,需要擴(kuò)展外部程序存儲(chǔ)器(IC1)、第一片外部數(shù)據(jù)存儲(chǔ)器(IC2)和第二片數(shù)據(jù)存儲(chǔ)器(IC3)。當(dāng)8031復(fù)位后進(jìn)入正常工作時(shí),8031首先需要到外部程序存儲(chǔ)器(IC1)中取指令碼,然后執(zhí)行指令碼。在8031取指令碼的過程中,8031首先從P0口和P2口送出指令地址信息,此時(shí)程序存儲(chǔ)器必須能夠被允許工作,按照地址總線上的地址信息將8031要取的指令碼發(fā)送到數(shù)據(jù)總線上,然后8031從P0口(數(shù)據(jù)總線)讀回指令碼,假設(shè)在程序存儲(chǔ)器輸出指令碼期間有另一片數(shù)據(jù)存儲(chǔ)器也被選中(由于譯碼電路錯(cuò)誤),也根據(jù)地址信息送出數(shù)據(jù)到數(shù)據(jù)總線上,這時(shí)指令碼信息被破壞,8031得到的指令碼是非法的,如此一來8031就不能正常運(yùn)行程序。顯然,在CPU到外部程序存儲(chǔ)器中取指令碼時(shí),必須且僅有一片程序存儲(chǔ)器給CPU發(fā)送正確的指令,而此時(shí)其他器件必須處于不工作狀態(tài),那么外部程序存儲(chǔ)器的片選信號(hào)必須各自惟一、獨(dú)立。假設(shè)8031取得正確的指令碼后,執(zhí)行的指令是需要8031到外部的第一片數(shù)據(jù)存儲(chǔ)器(IC2)“讀”數(shù)據(jù),8031立即進(jìn)入讀外部存儲(chǔ)器周期。在8031讀外部數(shù)據(jù)存儲(chǔ)器的過程中,8031首先從P0和P2口送出地址信息,如果外部譯碼電路將產(chǎn)生惟一的片選信號(hào)選中第一片外部數(shù)據(jù)存儲(chǔ)器(IC2),則第一片外部數(shù)據(jù)存儲(chǔ)器(IC2)被允許工作,然后按照地址總線上的地址信息將對應(yīng)的數(shù)據(jù)發(fā)送到數(shù)據(jù)總線上,8031從P0(數(shù)據(jù)總線)將數(shù)據(jù)讀回累加器。在這個(gè)過程中,如果錯(cuò)誤的譯碼電路將兩片外部數(shù)據(jù)存儲(chǔ)器都選中,那么兩片數(shù)據(jù)存儲(chǔ)器同時(shí)向數(shù)據(jù)總線發(fā)送數(shù)據(jù),這樣會(huì)造成數(shù)據(jù)總線上的數(shù)據(jù)被破壞,8031得到的數(shù)據(jù)便是非法的。8031“寫”外部數(shù)據(jù)存儲(chǔ)器的過程是,8031首先發(fā)送地址信息,然后伴隨WR有效時(shí)P0口發(fā)送出數(shù)據(jù)信息,將要被寫的數(shù)據(jù)存儲(chǔ)器是數(shù)據(jù)的接收者。在這個(gè)過程中,如果兩個(gè)數(shù)據(jù)存儲(chǔ)器都被選中,數(shù)據(jù)將會(huì)同時(shí)寫到兩片數(shù)據(jù)存儲(chǔ)器中,這也是不合適的。總之,MCS-51單片機(jī)對連接在其地址和數(shù)據(jù)、控制總線上的器件進(jìn)行訪問時(shí),任何時(shí)間僅且只能和惟一一個(gè)外圍器件之間傳輸數(shù)據(jù)或指令。這就是“惟一”訪問原則。產(chǎn)生外圍器件惟一片選信號(hào)的方法有兩種:線選法和地址譯碼器選通法。地址線選法擴(kuò)展多片數(shù)據(jù)存儲(chǔ)器的參考電路如圖6-5所示。圖中3片6264(8KBSRAM)的片選信號(hào)分別與最高的3位地址線P2.5(AB13)、P2.6(AB14)和P2.7(AB15)相連,每片6264各有兩個(gè)片選(允許工作)信號(hào)和CS2,其中是低電平有效,而CS2為高電平有效。僅當(dāng)兩個(gè)片選信號(hào)都有效(即=0,CS2=1)時(shí),6264才被啟動(dòng)允許工作。電路中將高電平有效的選通信號(hào)CS2與VCC直接相連,讓CS2永遠(yuǎn)有效,則由AB13、AB14和AB15控制。按照前面的“惟一訪問”原則,3片6264不能同時(shí)工作,AB13、AB14和AB15在任何時(shí)候只能有一個(gè)為低電平,由CPU選中其中的一片6264對其進(jìn)行讀/寫操作,3片6264各占用一片惟一8KB地址空間。圖6-5地址線選法擴(kuò)展3片8KBSRAM的參考電路圖6-5中的3片6264的地址分配如表6-3所示。按照圖6-5的電路原理,除了表6-3中所列出的地址空間可以使用外,其他地址都不能使用。這種擴(kuò)展方法是將MCS-51單片機(jī)的外部64KB的數(shù)據(jù)存儲(chǔ)器地址空間劃分成3塊,每塊容量為8KB,分別歸3片存儲(chǔ)器占用。由于所有的16根地址線都被使用,其他地址就不能使用了,顯然這種擴(kuò)展方法的缺點(diǎn)是浪費(fèi)了MCS-51單片機(jī)系統(tǒng)的有限的地址資源。為了讓MCS-51單片機(jī)外部的64KB地址空間得到充分利用,可以采用地址譯碼器方法產(chǎn)生芯片選通信號(hào)。下面先介紹兩種常用的地址譯碼器芯片:74HC139和74HC138。
74HC139是一種雙2-4譯碼器集成電路,其內(nèi)部的兩個(gè)2-4譯碼器相互獨(dú)立,各自有獨(dú)立的控制輸入端(G)和地址輸入端(A、B),各有4根低電平有效的輸出信號(hào)。
74HC139的內(nèi)部結(jié)構(gòu)原理如圖6-6所示,其真值表見表6-4(表中只給出了一半,另一半的邏輯真值表相同)。圖6-674HC139(2-4譯碼器)的內(nèi)部結(jié)構(gòu)原理
74HC138是一個(gè)3-8譯碼器,它有3個(gè)地址信號(hào)輸入端(A、B、C)和3個(gè)允許工作的控制輸入端(G1、、),有8根低有效電平的片選輸出信號(hào)(Y0~Y7)。它的3個(gè)允許工作控制信號(hào)中的G1是高電平有效的,當(dāng)G1=0時(shí),該3-8譯碼器被禁止工作,其8個(gè)輸出端均輸出無效電平(高電平);另外2個(gè)控制信號(hào)和都是低電平有效的,當(dāng)其中任何一個(gè)處于高電平時(shí),該74HC138將被禁止,其輸出端都輸出無效電平(高電平)。
74HC138的內(nèi)部結(jié)構(gòu)原理如圖6-7所示,其真值表見表6-5。圖6-774HC138(3-8譯碼器)的內(nèi)部結(jié)構(gòu)原理圖6-8是利用3-8譯碼器擴(kuò)展片選信號(hào)的參考電路,圖中各器件的地址空間分配見表6-6??梢钥闯觯到y(tǒng)的64KB地址能夠被有效分配。圖6-8利用3-8譯碼器擴(kuò)展3片8KBSRAM的參考電路6.2MCS-51系列單片機(jī)的外部程序存儲(chǔ)器的擴(kuò)展
MCS-51單片機(jī)可尋址的程序空間為64KB,包括片內(nèi)和片外兩部分。如果/VP與GND連接,片內(nèi)程序存儲(chǔ)器被屏蔽,對那些ROM-Less型MCS-51系列單片機(jī)來講必須把/VP固定與GND連接。如8031、8032、DS80C320等單片機(jī)使用時(shí)其/VP必須接地。對那些內(nèi)部有程序存儲(chǔ)器的MCS-51系列單片機(jī)來講,
/VP與GND連接時(shí),它們內(nèi)部的程序存儲(chǔ)器將不作用,如8751、8752、78E51、78E52、89C58等單片機(jī)內(nèi)部都有4~32KB的程序存儲(chǔ)器空間,如果使用它們片內(nèi)的程序存儲(chǔ)器,則其/VP必須與VCC連接。無論是ROM-Less型或是片內(nèi)代用ROM的MCS-51系列單片機(jī)都可以擴(kuò)展外部程序存儲(chǔ)器。如果片內(nèi)帶有ROM的MCS-51單片機(jī)擴(kuò)展外部程序存儲(chǔ)器時(shí)內(nèi)部和外部的地址空間統(tǒng)一編址,當(dāng)程序執(zhí)行的地址大于其片內(nèi)的ROM地址時(shí),MCS-51單片機(jī)將自動(dòng)轉(zhuǎn)向外部擴(kuò)展的程序存儲(chǔ)器執(zhí)行程序。絕大多數(shù)MCS-51單片機(jī)系統(tǒng)的程序存儲(chǔ)器在系統(tǒng)運(yùn)行過程中都是“只讀”的,單片機(jī)從程序存儲(chǔ)器中讀取指令及執(zhí)行指令時(shí)不需要修改程序代碼。所以絕大多數(shù)MCS-51單片機(jī)系統(tǒng)都采用“只讀型存儲(chǔ)器”作為其程序存儲(chǔ)器。目前常用的可以作為程序存儲(chǔ)器的“只讀型存儲(chǔ)器”包括:●掩膜型ROM(MaskedReadOnlyMemory),縮寫為MROM;●一次性可編程ROM(OneTimesProgrammableReadOnlyMemory),縮寫為OTPROM;●電氣可編程ROM(ElectricallyProgrammableReadOnlyMemory),縮寫為EPROM;●電氣可擦寫可編程ROM(ElectricallyErasableProgrammableReadOnlyMemory),縮寫為EEPROM;
●快閃電氣可擦寫可編程ROM(FlashElectricallyErasableProgrammableReadOnlyMemory),縮寫為FlashROM。上面所列舉的這些存儲(chǔ)器具有多種形態(tài)的接口和多種位寬的結(jié)構(gòu)。MCS-51單片機(jī)系統(tǒng)使用的所有這些存儲(chǔ)器都是8位結(jié)構(gòu)的。由于MCS-51系列單片機(jī)不支持串行接口的程序加載,因此MCS-51單片機(jī)系統(tǒng)使用的程序存儲(chǔ)器都必須是并行接口的。6.2.1常用程序存儲(chǔ)器的特點(diǎn)
1.掩膜型ROM掩膜型ROM(MROM)是真正的只讀存儲(chǔ)器,對這類存儲(chǔ)器編程是在集成電路生產(chǎn)過程中進(jìn)行的,一旦從IC制造廠交到用戶手中,用戶只能從該存儲(chǔ)器中讀數(shù)據(jù),而不能改寫其內(nèi)部的任何數(shù)據(jù)。目前的MROM使用在MCS-51單片機(jī)系統(tǒng)中有兩種,一種是MCS-51單片機(jī)本身內(nèi)部的程序存儲(chǔ)器是MROM類型,另一種是獨(dú)立的MROM芯片。后一種較少使用。內(nèi)部程序存儲(chǔ)器采用MROM的MCS-51系列單片機(jī)的型號(hào)都以83Cxx命名,譬如OKI(日本沖電)公司的M83C154等使用MROM作為內(nèi)部程序存儲(chǔ)器。為了保護(hù)知識(shí)產(chǎn)權(quán),目前使用MROM類型存儲(chǔ)器的MCS-51單片機(jī)的程序存儲(chǔ)器中的程序代碼只能在CPU加電狀態(tài)執(zhí)行代碼,但是不能將這些代碼讀出,能夠有效地防止這些單片機(jī)內(nèi)部的代碼被非法復(fù)制。由于MROM的編程是在IC制造過程中進(jìn)行的,如果使用MROM作為MCS-51系列單片機(jī)的程序存儲(chǔ)器,那么必須首先向IC制造廠定制,并將編制好的執(zhí)行代碼一起交給IC制造廠,當(dāng)用戶拿到單片機(jī)之后就可以直接在自己的目標(biāo)系統(tǒng)中使用了。但是其內(nèi)部的代碼不能被修改、重新編程等。使用MROM作為MCS-51單片機(jī)系統(tǒng)的程序存儲(chǔ)器適合于成熟的、產(chǎn)量較大的產(chǎn)品,使用MROM可以降低產(chǎn)品的存儲(chǔ)器成本和提高生產(chǎn)效率。
2.一次性編程ROM
OTPROM不需要像MROM那樣必須在集成電路制造廠編程,往往可以由系統(tǒng)設(shè)計(jì)或系統(tǒng)生產(chǎn)者自己在系統(tǒng)生產(chǎn)時(shí)才對這類存儲(chǔ)器進(jìn)行編程,相對MROM來講,使用OTPROM要靈活一些。OTPROM的特點(diǎn)是對這類存儲(chǔ)器編程是“一次性”的,這類存儲(chǔ)器的內(nèi)容只能被一次性寫入,一旦寫完后,就再不能修改、擦除、重新編程其內(nèi)部的內(nèi)容。目前有使用OTPROM作為片內(nèi)程序存儲(chǔ)器的MCS-51單片機(jī),也有獨(dú)立的OTPROM存儲(chǔ)器芯片。使用OTPROM的MCS-51單片機(jī)有Hyundai公司的G97C系列單片機(jī)等,這種類型的MCS-51單片機(jī)內(nèi)部的程序代碼也有加密機(jī)制,能夠禁止非法復(fù)制單片機(jī)內(nèi)部的程序代碼。使用OTPROM作為程序存儲(chǔ)器的目的大多數(shù)是為了降低系統(tǒng)存儲(chǔ)器的成本。
3.電氣可編程ROM絕大多數(shù)的EPROM的型號(hào)都以27xxx命名,它是目前單片機(jī)系統(tǒng)中使用最多的一種程序存儲(chǔ)器之一。與其他類型的只讀存儲(chǔ)器比較,它具有價(jià)格低、穩(wěn)定等優(yōu)點(diǎn),而且靈活性較好。
EPROM是一種多次可編程只讀存儲(chǔ)器(Multi-TimesProgrammableROM),單片機(jī)系統(tǒng)使用EPROM作為程序存儲(chǔ)器與使用MROM和OTPROM相比,允許升級(jí)系統(tǒng)的軟件代碼,但使用MROM和OTPROM存儲(chǔ)器時(shí),升級(jí)系統(tǒng)的軟件代碼時(shí)必須更換程序存儲(chǔ)器芯片。
EPROM的編程是通過電氣方式完成的,在對EPROM芯片加載適當(dāng)?shù)木幊屉妷汉?,按照特定的編程時(shí)序?qū)?shù)據(jù)一一寫入存儲(chǔ)器中。對EPROM編程之前必須保證整個(gè)存儲(chǔ)器芯片內(nèi)部的數(shù)據(jù)全部被擦除,然后才能編程,即“空片編程”。擦除EPROM不能通過電氣方式,僅可以使用紫外線照射方式擦除,這就是所有的EPROM必須有一個(gè)透明的玻璃窗口的原因。人們生活環(huán)境的光線中都有紫外線成分,為了保證正常使用的EPROM中的數(shù)據(jù)不被環(huán)境光線中的紫外線破壞,使用中的EPROM的玻璃窗口必須被掩蓋。目前有使用EPROM作為片內(nèi)程序存儲(chǔ)器的MCS-51單片機(jī),如8751、8752、87520等,它們的型號(hào)多數(shù)都以87xxx命名。使用EPROM作為內(nèi)部程序存儲(chǔ)器的MCS-51單片機(jī)多數(shù)都沒有加密機(jī)制,其內(nèi)部的程序代碼或數(shù)據(jù)容易被非法復(fù)制。使用EPROM作為片內(nèi)程序存儲(chǔ)器的MCS-51單片機(jī)與其他單片機(jī)使用時(shí)完全相同(兼容),區(qū)別僅在將代碼編程到片內(nèi)程序存儲(chǔ)器中的過程和擦除的過程。在MCS-51單片機(jī)系統(tǒng)中常用的獨(dú)立EPROM存儲(chǔ)器有2716、2732、2764、27128、27256、27512,它們的區(qū)別是容量大小不同和芯片的引腳不同,它們的存儲(chǔ)容量分別是2KB、4KB、8KB、16KB、32KB、64KB。圖6-9是這些EPROM芯片DIP封裝的引腳名稱和排列圖。圖6-927系列EPROM的引腳名稱和排列圖所有的EPROM都有以下四種工作模式:
(1)讀模式。讀模式也稱在系統(tǒng)使用模式。進(jìn)入這種模式的條件是使片選(允許工作)控制信號(hào)為低電平(的有效電平)狀態(tài),同時(shí)使輸出使能信號(hào)為低電平(的有效電平)。如果有獨(dú)立的VPP引腳(編程電壓輸入腳),該引腳應(yīng)與VCC連接;如果有獨(dú)立的引腳(編程模式控制引腳,低電平有效),該引腳必須與VCC連接。這時(shí)EPROM將按照地址總線指定的地址將該地址中的數(shù)據(jù)發(fā)送到數(shù)據(jù)總線上。
(2)空閑模式。當(dāng)片選控制信號(hào)為高電平時(shí),EPROM芯片立即進(jìn)入空閑模式,并且其數(shù)據(jù)總線處于高阻態(tài)。在空閑模式的EPROM將忽略所有輸入信號(hào)(包括、A0~A15)。
(3)編程模式。在EPROM的VPP引腳加載適當(dāng)?shù)木幊屉妷?VPP必須按照IC制造廠提供的使用手冊確定,編程電壓過低或偏低將不能正確編程,編程電壓過高或偏高會(huì)損壞芯片),如果有獨(dú)立的引腳,將引腳、引腳、引腳加載適當(dāng)?shù)碾娖?這些控制引腳在編程模式需要的電平必須按照IC制造廠的使用手冊確定,不同廠家、不同型號(hào)的EPROM,它們的電平不同),之后EPROM立即進(jìn)入編程狀態(tài),在編程狀態(tài)EPROM從數(shù)據(jù)總線接收數(shù)據(jù),并將數(shù)據(jù)寫到地址總線指定的地址單元。
(4)編程校驗(yàn)?zāi)J?。在VPP端加載適當(dāng)?shù)碾妷?注意:這里的適當(dāng)電壓不一定是編程電壓,必須根據(jù)IC制造廠的手冊確定),按照讀模式的要求(除了VPP的要求外),將數(shù)據(jù)從EPROM中讀出校驗(yàn)。進(jìn)入編程校驗(yàn)?zāi)J降哪康氖菍懭氲臄?shù)據(jù)重新讀出與希望寫入的數(shù)據(jù)比較,以確定編程是否有誤。
EPROM的工作電壓一般都是+5V,除了編程時(shí)需要給編程電壓輸入端加較高的編程電壓外,其他所有引腳都與TTL電平兼容,可以直接與MCS-51單片機(jī)系統(tǒng)中的其他TTL器件組成的電路直接連接。絕大多數(shù)EPROM的編程電壓都大于+12V,部分EPROM器件的編程電壓可達(dá)到+30V。不同型號(hào)的EPROM的編程電壓不同,不同廠家提供的同型號(hào)的EPROM的編程電壓也不一定相同,所以在對EPROM編程時(shí)必須注意按照廠家的規(guī)定進(jìn)行。
4.電氣可擦寫可編程ROM
EPROM的擦除是使用紫外線照射方式完成的,所以其擦除速度比較慢,一般容量的EPROM用適當(dāng)照射強(qiáng)度的紫外線照射方式擦除整個(gè)芯片大約需要10~20分鐘時(shí)間。與之相比,EEPROM的改寫是采用電氣方法實(shí)現(xiàn),擦除和編程的速度都比較快且方便。
EEPROM一般都以28xxx命名,如2832、2864等。EEPROM不需要擦除或整片擦除后再寫數(shù)據(jù),可以在電路中直接向指定的地址單元寫數(shù)據(jù),或?qū)⒃搯卧瓉淼臄?shù)據(jù)改寫,它是惟一一種允許按字節(jié)改寫/編程的只讀存儲(chǔ)器,其使用非常靈活。但是EEPROM的缺點(diǎn)是相同存儲(chǔ)容量EEPROM的價(jià)格相對比其他類型的ROM都高。EEPROM一般不需要特殊的編程電壓,它在工作電壓狀態(tài)下就可以完成字節(jié)的改寫/編程操作。由于EEPROM具有這些特點(diǎn),而且它的引腳與相同容量的SRAM兼容,EEPROM作為一種不揮發(fā)性存儲(chǔ)器更多是用于存儲(chǔ)在系統(tǒng)運(yùn)行過程中產(chǎn)生的重要數(shù)據(jù),如記錄測控系統(tǒng)中的測量結(jié)果。目前還沒有用EEPROM作為片內(nèi)程序存儲(chǔ)器的MCS-51單片機(jī),但是有些MCS-51單片機(jī)內(nèi)部帶有EEPROM類型的數(shù)據(jù)存儲(chǔ)器,譬如Atmel公司的AT89S8252單片機(jī),其內(nèi)部不僅具有FlashROM型的程序存儲(chǔ)器,而且還具有EEPROM存儲(chǔ)器。但該存儲(chǔ)器不能作為程序存儲(chǔ)器使用,用戶可以將其作為內(nèi)部的數(shù)據(jù)存儲(chǔ)器使用。更多的EEPROM是獨(dú)立的存儲(chǔ)器芯片。
5.快閃電氣可擦寫可編程ROM
FlashEEPROM俗稱FlashROM,它發(fā)展至今大約已經(jīng)有20多年的歷史,是Intel公司推出的存儲(chǔ)器技術(shù)。近些年FlashROM已經(jīng)逐步取代EPROM,隨著電子技術(shù)的發(fā)展其價(jià)格已經(jīng)低于EPROM,它是目前存儲(chǔ)器市場占有率相當(dāng)高的一種存儲(chǔ)器,廣泛使用于各種計(jì)算機(jī)系統(tǒng)和嵌入式系統(tǒng)。與其他存儲(chǔ)器相比,F(xiàn)lashROM的最大特點(diǎn)是讀訪問速度快、字節(jié)或扇區(qū)(Sector)編程速度快、壽命長(重復(fù)編程次數(shù)達(dá)1萬次以上)、功耗低、同等容量情況下其體積小等。大多數(shù)的FlashROM同EEPROM一樣不需要特殊的編程電壓,依靠工作電壓就可以完成字節(jié)或扇區(qū)的編程、擦除等操作。但是FlashROM不支持字節(jié)或扇區(qū)的改寫操作,在這一點(diǎn)上與EEPROM相比就不夠靈活。
FlashROM的存儲(chǔ)單元寫/擦除操作一般都按扇區(qū)進(jìn)行,將一片存儲(chǔ)器劃分成若干個(gè)一定容量的扇區(qū),在對某一個(gè)字節(jié)編程之前必須先將該字節(jié)所在的扇區(qū)擦除為空再對整個(gè)扇區(qū)進(jìn)行編程,而對EPROM存儲(chǔ)器編程之前必須首先將整片存儲(chǔ)器擦除后才能執(zhí)行字節(jié)編程。不同廠家、不同型號(hào)的FlashROM的扇區(qū)容量大小不同,目前有些FlashROM的最小扇區(qū)容量為16B,另外還有64B/Sector、128B/Sector、256B/Sector、512B/Sector、1KB/Sector等扇區(qū)容量(根據(jù)不同型號(hào)和不同制造廠家)。小扇區(qū)容量的FlashROM器件比較適合于作為數(shù)據(jù)存儲(chǔ)器應(yīng)用;如果作為系統(tǒng)的程序存儲(chǔ)器使用,最好選擇大扇區(qū)容量的FlashROM器件。從價(jià)格上相比較而言,小扇區(qū)容量的器件比大扇區(qū)容量的器件要貴。程序存儲(chǔ)器在系統(tǒng)中正常使用時(shí),往往是只讀的,不需要重復(fù)擦除、寫操作,雖然扇區(qū)容量的大小不同,但讀操作都是按字節(jié)方式進(jìn)行的,而且所有的FlashROM的讀操作并不需要按扇區(qū)方式操作,而是直接按字節(jié)讀方式操作。目前以FlashROM作為片內(nèi)程序存儲(chǔ)器的MCS-51單片機(jī)類型非常多,如Atmel公司的AT89系列單片機(jī),Winbond公司的W78、W77系列單片機(jī),Philips公司的P89、P87系列單片機(jī),SST公司的ST89C、ST89F系列單片機(jī)等都采用FlashROM作為片內(nèi)存儲(chǔ)器,它們的容量為4~64KB。由于FlashROM的先進(jìn)性和優(yōu)越性,目前有許多采用FlashROM作為片內(nèi)程序存儲(chǔ)器的MCS-51單片機(jī)具有在系統(tǒng)可編程(ISP)功能,如Atmel的AT89S系列、Philips公司的P89C系列單片機(jī)。另外,有些MCS-51單片機(jī)還具有在系統(tǒng)可編程可仿真功能,如Cygnal公司的C8051F系列單片機(jī)等。Cygnal公司的C8051F系列單片機(jī)支持標(biāo)準(zhǔn)JTAG(JointTestActionGroup)編程、仿真調(diào)試接口對其片內(nèi)的程序存儲(chǔ)器在系統(tǒng)編程和在系統(tǒng)仿真功能,這個(gè)系列的單片機(jī)兼容8031的所有功能和指令,同時(shí)還在單片機(jī)的片內(nèi)擴(kuò)展了許多功能部件,如第二個(gè)UART、ADC(模擬信號(hào)數(shù)字轉(zhuǎn)換器)、DAC(數(shù)字信號(hào)模擬轉(zhuǎn)換器)、I2CBus接口等功能,是一種基于8032單片機(jī)內(nèi)核的片上系統(tǒng)(SOC,SystemOnChip)。
MCS-51單片機(jī)結(jié)合FlashROM存儲(chǔ)器技術(shù),將推動(dòng)MCS-51系列單片機(jī)向真正的“單片”系統(tǒng)方向發(fā)展。從上面介紹的這五種類型的存儲(chǔ)器來看,EEPROM有其特有的優(yōu)點(diǎn),但是,其價(jià)格昂貴;MROM和OTPROM屬低價(jià)格存儲(chǔ)器,但使用不夠靈活;FlashROM有逐步取代EROM的發(fā)展趨勢。6.2.2外部程序存儲(chǔ)器的擴(kuò)展
1.ROM-Less型單片機(jī)擴(kuò)展片外程序存儲(chǔ)器目前的ROM-Less型單片機(jī)包括:8031、8032,Dallas半導(dǎo)體的DS80C310、80C320、80C520、80C530,Hyundai公司的G90C32,Winbond公司的W78C32、W77C32,Philips公司的80C55x系列等等,這些MCS-51單片機(jī)在系統(tǒng)中使用必須擴(kuò)展外部程序存儲(chǔ)器,而且其引腳必須與GND連接。圖6-10是ROM-Less型MCS-51單片機(jī)的一個(gè)典型應(yīng)用電路。習(xí)慣將這個(gè)電路稱為“8031的最小系統(tǒng)電路”,它使用8031作為CPU,擴(kuò)展高電平有效鎖存的地址鎖存器74HC373作為低8位地址總線鎖存器,使用64KB容量的EPROM作為系統(tǒng)的程序存儲(chǔ)器。圖6-108031單片機(jī)最小系統(tǒng)電路原理(EPROM型程序存儲(chǔ)器)根據(jù)用戶系統(tǒng)對程序存儲(chǔ)空間的需要,圖中的EPROM存儲(chǔ)器可以更換更小的存儲(chǔ)容量。在圖中沒有任何一個(gè)器件或連接是可以省略的,對于8031的應(yīng)用系統(tǒng)這些器件是必需的。電路中的所有器件惟一可以更換型號(hào)的就是EPROM和CPU,它支持不同存儲(chǔ)容量的EPROM,支持不同型號(hào)的ROM-Less型MCS-51單片機(jī)。圖中的關(guān)鍵連接為:引腳必須與GND連接;必須與EPROM的輸出使能控制信號(hào)連接;EPROM的必須與GND連接;數(shù)據(jù)總線和地址總線與EPROM的數(shù)據(jù)總線和地址總線引腳一一對應(yīng)連接。圖6-11是使用FlashROM作為8031的外部程序存儲(chǔ)器的典型電路原理。由于FlashROM允許電氣方式寫/擦除操作,這種類型的存儲(chǔ)器都有寫操作允許(使能)引腳。如果把FlashROM作為程序存儲(chǔ)器在系統(tǒng)中使用,系統(tǒng)正常運(yùn)行時(shí)它以“只讀”模式工作,所以其引腳必須與VCC連接,即在系統(tǒng)中禁止寫操作。比較圖6-10和圖6-11,兩者的區(qū)別僅有一點(diǎn),即FlashROM的引腳必須與VCC連接。
ROM-Less型MCS-51單片機(jī)必須使用擴(kuò)展的外部程序存儲(chǔ)器,當(dāng)其存儲(chǔ)空間都在64KB以內(nèi)時(shí),圖6-10和圖6-11都是可以直接利用的。這兩個(gè)電路中的程序存儲(chǔ)器的片選都是永遠(yuǎn)有效的(與GND連接);存儲(chǔ)器的輸出使能信號(hào)都與連接。按照MCS-51系列單片機(jī)訪問外部存儲(chǔ)器的時(shí)序(參見圖6-3),兩片存儲(chǔ)器都僅工作在MCS-51單片機(jī)取指令的周期期間,在此期間僅向CPU輸出指令,雖然它們的片選信號(hào)永遠(yuǎn)有效,但是它們的寫操作允許(使能)引腳都永遠(yuǎn)無效,所以除了在CPU取指令時(shí)它們才工作之外,其他時(shí)間都不工作。而在CPU執(zhí)行指令階段,CPU訪問外部存儲(chǔ)器或外部地址都屬于數(shù)據(jù)存儲(chǔ)器或I/O地址。圖6-118031最小系統(tǒng)電路原理(FlashROM型程序存儲(chǔ)器)
2.帶有內(nèi)部ROM型單片機(jī)擴(kuò)展片外程序存儲(chǔ)器片內(nèi)帶有程序存儲(chǔ)器的MCS-51單片機(jī)的種類也非常多,它們內(nèi)部的程序存儲(chǔ)器容量往往不同,一般為4~64KB,當(dāng)使用的MCS-51單片機(jī)的片內(nèi)ROM不夠用時(shí),還必須擴(kuò)展外部程序存儲(chǔ)器。圖6-12是片內(nèi)帶有4KB的FlashROM存儲(chǔ)器的單片機(jī)擴(kuò)展外部程序存儲(chǔ)器的電路原理圖。圖6-12中/VP引腳必須與VCC連接,對8051來講,它們內(nèi)部都有4KB的程序存儲(chǔ)器,其/VP與VCC連接時(shí)這4KB程序存儲(chǔ)器可以使用。當(dāng)執(zhí)行的程序地址大于4KB后,CPU根據(jù)PC的值自動(dòng)到外部擴(kuò)展的程序存儲(chǔ)器中取指令。當(dāng)使用MCS-51單片機(jī)的片內(nèi)程序存儲(chǔ)器時(shí),片內(nèi)的地址空間和片外擴(kuò)展的地址空間一起編址,其中內(nèi)部地址空間的起始地址必須從0000H開始,即CPU被復(fù)位后必須從內(nèi)部程序空間開始執(zhí)行程序。圖6-12片內(nèi)帶有ROM的78E51擴(kuò)展外部FlashROM作為程序存儲(chǔ)器的電路6.3MCS-51系列單片機(jī)的外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展在基于單片機(jī)的工業(yè)控制系統(tǒng)、測控系統(tǒng)、記錄儀器等應(yīng)用領(lǐng)域中,數(shù)據(jù)存儲(chǔ)器總是系統(tǒng)必不可少的部件。基于8031內(nèi)核的MCS-51系列單片機(jī)片內(nèi)都帶有128B的SRAM型內(nèi)部數(shù)據(jù)存儲(chǔ)器,基于8032內(nèi)核的MCS-51系列單片機(jī)片內(nèi)都帶有256B的SRAM型內(nèi)部數(shù)據(jù)存儲(chǔ)器,它們可以作為通用寄存器、堆棧、數(shù)據(jù)緩存等目的使用。目前有許多MCS-51單片機(jī)片內(nèi)除了帶有256B的片內(nèi)SRAM型數(shù)據(jù)存儲(chǔ)器外,還在片內(nèi)擴(kuò)展了EEPROM型和SRAM型數(shù)據(jù)存儲(chǔ)器。如Atmel公司的AT89S8252內(nèi)部擴(kuò)展了2KB的EEPROM型數(shù)據(jù)存儲(chǔ)器;Philips公司的P89C660/2/4/8內(nèi)部分別擴(kuò)展了1KB、2KB、4KB、8KB的SRAM數(shù)據(jù)存儲(chǔ)器;Dallas、Winbond等公司的MCS-51單片機(jī)也有片內(nèi)擴(kuò)展1KB的SRAM型數(shù)據(jù)存儲(chǔ)器。單片機(jī)系統(tǒng)中使用的數(shù)據(jù)存儲(chǔ)器必須是可讀、可寫的存儲(chǔ)器,目前常用的數(shù)據(jù)存儲(chǔ)器包括以下五類:
●SRAM(StaticRandomAccessMemory,靜態(tài)隨機(jī)存取存儲(chǔ)器);
●NOVRAM(Non-VolatileRandomAccessMemory,不揮發(fā)隨機(jī)存取存儲(chǔ)器);
●EEPROM;
●FlashROM;
●FRAM(FerroelectricNonvolatileRandomAccessMemory,鐵電不揮發(fā)隨機(jī)存取存儲(chǔ)器)。這些類型的存儲(chǔ)器都支持并行接口訪問和串行接口訪問,都允許字節(jié)“讀操作”訪問,有些還允許字節(jié)“寫操作”或“擦除操作”訪問,有些支持扇區(qū)模式的“寫操作”或“擦除操作”訪問。其中SRAM是易揮發(fā)性的(掉電后數(shù)據(jù)丟失),其他類型的存儲(chǔ)器都是不揮發(fā)的(掉電后數(shù)據(jù)不丟失)。這五種類型存儲(chǔ)器的性能比較見表6-7。6.3.1常用數(shù)據(jù)存儲(chǔ)器
1.SRAM隨機(jī)訪問存儲(chǔ)器包括兩類:SRAM和DRAM。其中SRAM常用于8位和16位單片機(jī)系統(tǒng),而DRAM多用于PC或高檔單片機(jī)系統(tǒng)。由于DRAM芯片的存儲(chǔ)容量較大,而在有限的引腳實(shí)現(xiàn)大容量存儲(chǔ)空間,其地址譯碼電路往往采用矩陣結(jié)構(gòu),存儲(chǔ)陣列的行和列地址線是復(fù)用的,分別通過行地址控制信號(hào)(RAS)和列地址控制信號(hào)(CAS)并按照訪問時(shí)序分時(shí)選通,因此其譯碼電路比較復(fù)雜。另外,DRAM是依靠電容存儲(chǔ)電荷表示二進(jìn)制數(shù)據(jù),而電容都存在泄漏電流,所以控制電路必須按其原來存儲(chǔ)的數(shù)據(jù)信息不斷地給電容充電,即DRAM芯片的外圍必須“刷新”控制電路(俗稱刷新時(shí)鐘)。雖然DRAM芯片本身具有低成本、低功耗等優(yōu)點(diǎn),但是它極容易被干擾而造成內(nèi)部數(shù)據(jù)信息變化,而且芯片的外圍控制電路復(fù)雜,所以在8位或16位單片機(jī)的一般功能系統(tǒng)中較少使用,而且由于DRAM容易受干擾,在工業(yè)控制領(lǐng)域中也較少使用。而SRAM芯片的存儲(chǔ)容量相對偏小,價(jià)格相對較高,訪問速度也比較慢。但是,在單片機(jī)系統(tǒng)中所需的存儲(chǔ)容量一般都在幾兆位以內(nèi),速度都在200ns以內(nèi),這些對SRAM來講都是容易實(shí)現(xiàn)的,最關(guān)鍵的因素是SRAM的可靠性相對比DRAM要高得多,抗干擾性能也更好。
8位并行接口的SRAM芯片在MCS-51系列單片機(jī)的應(yīng)用系統(tǒng)中被廣泛使用,目前這類存儲(chǔ)器多數(shù)以62xxx或61xxx命名,其存儲(chǔ)容量為2~512KB,有些甚至有更大的容量。圖6-13是DIP封裝的6116、6264、62128、62256、62512、621024的引腳排列和引腳名稱,它們的存儲(chǔ)容量分別為2KB、8KB、16KB、32KB、64KB、128KB。其中6264、62512和621024比其他芯片多一個(gè)高電平有效的片選信號(hào)CE2。圖6-1362系列SRAM的引腳名稱和排列圖
SRAM引腳的名稱和功能定義如下:
●A0~A16:地址總線(輸入端),器件存儲(chǔ)容量不同,地址總線寬度也不同;
●D0~D7:數(shù)據(jù)總線,8位雙向三態(tài)數(shù)據(jù)總線;
●:低電平有效的片選信號(hào)(輸入端);CE2:高電平有效的片選信號(hào)(輸入端),僅6264、62512、621024等芯片有;
●:低電平有效的數(shù)據(jù)輸出使能信號(hào)(輸入端);
●:低電平有效的數(shù)據(jù)寫使能信號(hào)(輸入端);
●VCC:供電電源正(輸入端),一般為DC+5V;
●GND:供電電源地;
●NU:未使用的引腳。所有的SRAM都具有以下四種工作狀態(tài)和模式:
(1)讀狀態(tài)。當(dāng)VCC正常,和CE2(如果有該引腳)都處于有效電平狀態(tài),引腳被置為低電平(的有效電平)狀態(tài)時(shí),SRAM芯片將地址總線上對應(yīng)的地址單元中的數(shù)據(jù)發(fā)送到數(shù)據(jù)總線上。
(2)寫狀態(tài)。當(dāng)VCC正常,和CE2(如果有該引腳)都處于有效電平狀態(tài),引腳被置為低電平(的有效電平)狀態(tài)時(shí),SRAM芯片將數(shù)據(jù)總線上的數(shù)據(jù)寫到地址總線指定的地址單元中。
(3)空閑模式。當(dāng)VCC正常,和CE2(如果有該引腳)的任何一個(gè)控制信號(hào)處于無效電平時(shí),無論或處于任何狀態(tài),SRAM芯片立即進(jìn)入空閑模式。退出空閑模式的條件就是讓和CE2(如果有該引腳)都處于有效的電平狀態(tài),并且和中的任何一個(gè)引腳處于有效電平狀態(tài)。
(4)維持?jǐn)?shù)據(jù)狀態(tài)。當(dāng)VCC電壓降到2~4V時(shí),其他所有引腳都浮空,此時(shí),SRAM處于維持內(nèi)部數(shù)據(jù)狀態(tài)。SRAM進(jìn)入維持內(nèi)部存儲(chǔ)器中的數(shù)據(jù)狀態(tài)時(shí),其消耗電流立即降到100μA以內(nèi),甚至有些SRAM芯片的維持?jǐn)?shù)據(jù)狀態(tài)的消耗電流僅有10μA,這根據(jù)SRAM類型和制造廠家而不同。如果嵌入式單片機(jī)系統(tǒng)需要將SRAM中的數(shù)據(jù)在系統(tǒng)掉電后仍被保存,便于下次開機(jī)時(shí)使用,就必須為系統(tǒng)中使用SRAM芯片增加后備電池,在系統(tǒng)掉電后SRAM的各引腳浮空,利用后備電池在VCC端提供維持電壓。由于SRAM的維持?jǐn)?shù)據(jù)狀態(tài)消耗的電流非常小,使用后備電池可以使SRAM中的數(shù)據(jù)保留較長的時(shí)間。圖6-14是8051外圍擴(kuò)展32KB帶有后備電池的SRAM型數(shù)據(jù)存儲(chǔ)器的典型電路。如果系統(tǒng)需要在系統(tǒng)掉電后仍將32KBSRAM中的數(shù)據(jù)保存,則可在電路中使用3V的紐扣型后備電池(如CR2032)作為SRAM維持?jǐn)?shù)據(jù)的后備電池。假設(shè)某電池的總功率為500mAh,SRAM的維持?jǐn)?shù)據(jù)狀態(tài)的消耗電流為12μA(HY62C256),那么可以計(jì)算出使用該后備電池能夠維持?jǐn)?shù)據(jù)不丟失的時(shí)間為維持的總小時(shí)數(shù)=≈41666小時(shí)那么,實(shí)際可以維持大約4.7年時(shí)間。圖中32KB的SRAM地址空間為0000H~7FFFH,其中SRAM的片選控制信號(hào)與P2.7(AB15)連接。當(dāng)AB15為低電平時(shí),SRAM的片選信號(hào)有效;當(dāng)AB15為高電平時(shí),SRAM不工作,處于空閑模式。由于MCS-51單片機(jī)在復(fù)位期間,各引腳的電平狀態(tài)都是未知的,而SRAM的寫狀態(tài)條件僅和有效時(shí),也就是說,在CPU復(fù)位期間或CPU失控狀態(tài)下,SRAM中的數(shù)據(jù)就可能被改寫,這樣保存在SRAM中的數(shù)據(jù)極可能被改寫而出現(xiàn)非法數(shù)據(jù)。為了保證SRAM中的數(shù)據(jù)不被改寫,圖中將SRAM的片選引腳不直接與AB15連接,AB15與小功率開關(guān)型P型MOSFET管(QF1)的源極連接,MOSFET管的漏極與SRAM的連接,而P型MOSFET管的門極受CPU的復(fù)位信號(hào)控制。當(dāng)8051處于復(fù)位狀態(tài)時(shí),QF1的源極和漏極被截止,無論AB15處于何種電平狀態(tài),SRAM的片選控制信號(hào)都會(huì)被后備電池經(jīng)過100kΩ(R3)電阻鉗位在后備電池電壓的電位(可以認(rèn)為是高電平),迫使SRAM處于空閑狀態(tài),以保護(hù)SRAM中的數(shù)據(jù)在CPU復(fù)位期間不被非法改寫。一旦復(fù)位結(jié)束,QF1即處于完全導(dǎo)通狀態(tài),之后SRAM片選信號(hào)的電平狀態(tài)受AB15的電平狀態(tài)控制。當(dāng)AB15為低電平狀態(tài)(CPU訪問SRAM)時(shí),SRAM的端也為低電平;當(dāng)AB15為高電平狀態(tài)時(shí),SRAM的端也為高電平。圖6-148051外部擴(kuò)展32KB帶有后備電池的SRAM數(shù)據(jù)存儲(chǔ)器圖中二極管VD1的作用是,在系統(tǒng)處于正常供電狀態(tài)下,VCC電壓可以經(jīng)過VD1給SRAM供電;當(dāng)系統(tǒng)的供電電源被關(guān)閉后,后備電池僅為SRAM供電維持其內(nèi)部的數(shù)據(jù)不丟失,由于VD1的作用而使后備電池與系統(tǒng)中的其他器件分離。
2.NOVRAM目前常用的NOVRAM主要是Dallas半導(dǎo)體公司和Xicor公司的產(chǎn)品。其中Dallas的NOVRAM產(chǎn)品幾乎全都與其相同存儲(chǔ)容量和封裝的SRAM兼容,它們都采用“SRAM+后備Li電池+寫保護(hù)電路”的結(jié)構(gòu),所以其引腳、工作時(shí)序都與相同存儲(chǔ)容量的SRAM完全兼容,使用時(shí)幾乎完全相同,而且Dallas的這種結(jié)構(gòu)的NOVRAM產(chǎn)品的存儲(chǔ)容量為2KB~2MB,種類繁多。由于這種類型的存儲(chǔ)器都帶有后備電池和寫保護(hù)電路,因此它們的體積都較大。而Xicor公司的NOVRAM采用“SRAM+EEPROM”結(jié)構(gòu),可以與MCS-51單片機(jī)的并行總線接口的產(chǎn)品有兩種型號(hào),即X20C04和X20C16,其存儲(chǔ)容量分別為512B和2KB。Xicor公司的這種結(jié)構(gòu)的NOVRAM相對Dallas公司的產(chǎn)品,其體積小,但是存儲(chǔ)器容量都較小,而且相對成本較高。另外,除了并行接口的NOVRAM,Xicor公司還生產(chǎn)有串行接口的NOVRAM,這種產(chǎn)品目前也有兩種型號(hào),即X24C44和X24C45,它們也是采用串行接口的“SRAM+EEPROM”的結(jié)構(gòu)。采用“SRAM+后備電池+寫保護(hù)電路”的NOVRAM的產(chǎn)品主要有DS1220Y/AB、DS1225Y/AB、DS1230Y/AB、DS1245Y/AB等,它們的存儲(chǔ)容量分別為2KB、8KB、32KB、128KB,從引腳和工作時(shí)序上完全兼容對應(yīng)的SRAM分別為6116、6264、62256、621024,這些SRAM可以和Dallas公司對應(yīng)存儲(chǔ)容量的NOVRAM相互替換。Dallas公司的這些型號(hào)的NOVRAM器件的引腳和功能請參考SRAM部分的說明,它們與8051的接口擴(kuò)展電路與相同存儲(chǔ)容量的SRAM相同。圖6-15是8位并行接口采用“SRAM+EEPROM”結(jié)構(gòu)(以X20C16為例)的NOVRAM的內(nèi)部結(jié)構(gòu)原理。它的內(nèi)部有兩種類型的存儲(chǔ)器:SRAM和EEPROM,而且兩塊存儲(chǔ)陣列大小相等、相互影響。如果不揮發(fā)性控制信號(hào)為低電平狀態(tài),其內(nèi)部的電壓檢測電路自動(dòng)檢測芯片的供電電壓,當(dāng)供電電源電壓降到自動(dòng)存儲(chǔ)門限電壓時(shí)(大約4.0~4.3V),芯片自動(dòng)將SRAM中的數(shù)據(jù)一一對應(yīng)地保存(Store)到EEPROM中。系統(tǒng)供電電源全部關(guān)閉后,SRAM中的數(shù)據(jù)已經(jīng)全部保存到EEPROM中,雖然SRAM中的數(shù)據(jù)全部丟失,但在系統(tǒng)重新加電后,通過系統(tǒng)軟件可以將數(shù)據(jù)從EEPROM中重新還原(Recall)到SRAM中。圖6-15X20C16的內(nèi)部結(jié)構(gòu)原理這種結(jié)構(gòu)的NOVRAM在系統(tǒng)掉電后使用EEPROM保存存儲(chǔ)器中的數(shù)據(jù),雖然EEPROM有擦寫次數(shù)的限制,但由于X20C16和X20C04的擦寫次數(shù)可達(dá)100萬次,而且這種結(jié)構(gòu)存儲(chǔ)器中的EEPROM僅在系統(tǒng)每掉電一次才被寫一次,系統(tǒng)在正常工作時(shí)使用的是SRAM,而SRAM類型存儲(chǔ)器是沒有壽命限制的,所以X20C04和X20C16的壽命允許系統(tǒng)關(guān)閉電源達(dá)到100萬次,這足夠一個(gè)系統(tǒng)使用幾十年。圖6-16和表6-8是X20C16的引腳排列圖和各引腳的名稱與對應(yīng)的功能描述。與相同存儲(chǔ)容量的SRAM(6116)相比,X20C16多了和兩個(gè)引腳,它們分別作為“不揮發(fā)性使能”控制信號(hào)的輸入端和自動(dòng)存儲(chǔ)信號(hào)的輸出端使用。圖6-16X20C16的引腳排列圖圖6-17是X20C16與8051單片機(jī)連接的參考電路,在電路中使用P1.0作為X20C16的不揮發(fā)性使能控制信號(hào)。當(dāng)P1.0為高電平時(shí),CPU可以對X20C16內(nèi)的SRAM進(jìn)行讀操作或?qū)懖僮?根據(jù)→、→、的電平狀態(tài));當(dāng)P1.0為低電平時(shí),通過8051讀操作(、處于有效電平狀態(tài))可以將EEPROM中的數(shù)據(jù)恢復(fù)(Recall)到SRAM中。圖中X20C16的片選信號(hào)由AB15控制,其存儲(chǔ)空間為2KB,它們的地址范圍為0000H~07FFH。圖6-178051外部擴(kuò)展2KB的NOVRAM型數(shù)據(jù)存儲(chǔ)器
3.EEPROM有關(guān)適合于MCS-51單片機(jī)系統(tǒng)使用的8位并行接口的EEPROM的特點(diǎn)在前一節(jié)中已經(jīng)介紹過了,這里不再重復(fù)。常用的EEPROM除了前一節(jié)介紹的8位并行接口器件外,目前用得更多的則是串行接口的器件,如采用I2C總線(2線制)接口的24Cxx系列EEPROM器件,采用SPI(3線或4線制)接口的93xx系列EEPROM器件等。圖6-18是Atmel公司提供的采用I2C總線接口的AT24C01/02/04/08/16的內(nèi)部結(jié)構(gòu)框圖。圖6-18AT24Cxx系列串行EEPROM的內(nèi)部結(jié)構(gòu)
AT24Cxx串行存儲(chǔ)器的存儲(chǔ)容量分別為128B、256B、512B、1KB和2KB。由于MCS-51單片機(jī)的所有I/O口都支持位操作指令(SETBI/O和CLRI/O),因此它們與MCS-51系列單片機(jī)的任何兩根I/O線連接即可。AT24Cxx系列串行存儲(chǔ)器的寫或擦除操作壽命都可以達(dá)到100萬次以上,是一種可靠的節(jié)省MCS-51單片機(jī)資源的小存儲(chǔ)容量的數(shù)據(jù)存儲(chǔ)器,它們在MCS-51單片機(jī)系統(tǒng)中一般用來存儲(chǔ)那些非常重要的數(shù)據(jù),譬如嵌入式系統(tǒng)惟一的通信識(shí)別序列碼、地址碼,測控系統(tǒng)的系統(tǒng)運(yùn)行參數(shù)、補(bǔ)償或矯正參數(shù)等。圖6-19是3線串行接口的AT93Cxx系列EEPROM的內(nèi)部結(jié)構(gòu),該系列存儲(chǔ)器的型號(hào)為AT93C46/56/66,這些存儲(chǔ)器的存儲(chǔ)陣列的字節(jié)結(jié)構(gòu)是可配置的。當(dāng)ORG引腳與VCC連接時(shí),訪問存儲(chǔ)陣列為8位結(jié)構(gòu),相應(yīng)的存儲(chǔ)容量分別為128B、256B和512B;當(dāng)ORG引腳與GND連接時(shí),訪問存儲(chǔ)陣列為16位結(jié)構(gòu),相應(yīng)的存儲(chǔ)容量分別為64Word、128Word和256Word。雖然AT93Cxx系列存儲(chǔ)器的存儲(chǔ)容量比較小,但是其存儲(chǔ)器陣列可以靈活配置。這些存儲(chǔ)器往往用于存儲(chǔ)系統(tǒng)的運(yùn)行參數(shù)等重要數(shù)據(jù)。其他的串行EEPROM種類繁多,而且它們的接口大多數(shù)都兼容I2C或SPI方式,采用2線、3線或4線制,容易與支持位操作指令的MCS-51系列單片機(jī)連接。目前部分串行EEPROM存儲(chǔ)器除了具有EEPROM陣列外,還增加了MCS-51單片機(jī)必需的電壓監(jiān)控、上電復(fù)位、Watchdog復(fù)位、RTC(RealTimeClock)等功能。如Xicor公司的X1228芯片,就集這些功能于一顆芯片內(nèi)部,它是把專用的μP監(jiān)控復(fù)位芯片、串行EEPROM芯片、實(shí)時(shí)日歷時(shí)鐘芯片集成在X1228內(nèi)部,這樣可以節(jié)省單片機(jī)的外圍器件數(shù)目,而且還可以節(jié)省系統(tǒng)印制電路板的面積。圖6-19AT93Cxx系列串行EEPROM的內(nèi)部結(jié)構(gòu)
4.FlashROM
SST公司提供的39SFxxx系列、29EExxx系列和28SFxxx系列FlashROM的引腳排列和名稱如圖6-20所示。這些存儲(chǔ)器單顆芯片的存儲(chǔ)容量為64~512KB,都采用8位并行接口,可以與8031最小應(yīng)用系統(tǒng)直接連接使用。它們的共同特點(diǎn)是存儲(chǔ)器陣列按扇區(qū)(Sector)模式操作,其中讀操作是例外的(按字節(jié)方式),寫/擦除操作是按扇區(qū)進(jìn)行的。它們的型號(hào)不同,扇區(qū)容量也不同,扇區(qū)容量為128B~8KB。圖6-20SST公司FlashROM存儲(chǔ)器的引腳名稱和排列圖各個(gè)引腳的功能如下:
●A0~A18:存儲(chǔ)器的地址總線輸入端,存儲(chǔ)容量不同,地址總線的寬度不同。
●DQ0~DQ7:雙向8位數(shù)據(jù)總線。在寫狀態(tài)時(shí),從數(shù)據(jù)總線接收數(shù)據(jù)(輸入);讀狀態(tài)時(shí),將數(shù)據(jù)發(fā)送到數(shù)據(jù)總線上(輸出);在空閑狀態(tài)時(shí),處于高阻態(tài)。
●CE#:片選(允許工作)控制信號(hào)輸入端,低電平有效。當(dāng)CE為高電平時(shí),芯片進(jìn)入空閑狀態(tài),忽略控制輸入信號(hào),數(shù)據(jù)總線處于高阻態(tài)。
●WE#:允許寫信號(hào)輸入端,低電平有效。當(dāng)CE#和WE#同時(shí)有效時(shí),存儲(chǔ)器芯片從數(shù)據(jù)總線上接收數(shù)據(jù),可以實(shí)現(xiàn)CPU對FlashROM的命令寄存器和存儲(chǔ)器陣列的寫操作。
●OE#:允許輸出信號(hào)輸入端,低電平有效。當(dāng)CE#和OE#同時(shí)有效時(shí),存儲(chǔ)器將地址總線指定的存儲(chǔ)單元中的數(shù)據(jù)發(fā)送到數(shù)據(jù)總線,實(shí)現(xiàn)CPU對存儲(chǔ)器陣列的讀操作。
●VCC:供電電源正輸入端,一般為DC+5V。
●GND:電源地。
●NC:未使用的引腳。下面以39SF040為例說明這些FlashROM的操作方法。39SF040的字節(jié)寫等操作命令序列見表6-9。該存儲(chǔ)器的讀操作與其他類型的并行存儲(chǔ)器的讀操作相同,支持任意字節(jié)地址的隨機(jī)讀操作。圖6-21是39SF040存儲(chǔ)器陣列字節(jié)地址的隨機(jī)讀操作時(shí)序。圖6-2139SF040存儲(chǔ)器陣列字節(jié)隨機(jī)讀操作時(shí)序
39SF040存儲(chǔ)器的字節(jié)寫操作必須按照表6-9中第一行的命令順序,所以單字節(jié)的寫操作由4個(gè)寫循環(huán)組成,包括3個(gè)命令的寫操作和1個(gè)數(shù)據(jù)的寫操作。完成4個(gè)寫循環(huán)后該器件自動(dòng)啟動(dòng)內(nèi)部編程循環(huán),單字節(jié)的內(nèi)部編程循環(huán)一般需要14μs的時(shí)間,在內(nèi)部編程循環(huán)期間,器件不響應(yīng)其他任何操作。圖6-22是39SF040存儲(chǔ)器陣列的單字節(jié)寫操作時(shí)序。圖6-2239SF040存儲(chǔ)器陣列的字節(jié)編程操作時(shí)序圖6-23和圖6-24分別是39SF040的扇區(qū)擦除操作時(shí)序和整片擦除操作時(shí)序。扇區(qū)擦除和整片擦除操作都需要6個(gè)總線周期才能完成。而且寫操作和擦除操作都需要一定時(shí)間的內(nèi)部編程循環(huán)。對39SF040來講,扇區(qū)擦除操作的內(nèi)部編程循環(huán)時(shí)間約需要18ms,整片擦除操作的內(nèi)部編程循環(huán)約需要70ms。相對SRAM型存儲(chǔ)器,F(xiàn)lashROM寫操作的速度比較慢。雖然這些操作比較繁瑣,但是可以有效地保證存儲(chǔ)器陣列中的數(shù)據(jù)不會(huì)被非法改寫。圖6-2339SF040存儲(chǔ)器陣列的扇區(qū)擦除操作時(shí)序圖6-2439SF040存儲(chǔ)器陣列的整片擦除操作時(shí)序
SST公司的39SFxx系列FlashROM存儲(chǔ)器具有多種讀/寫速度,實(shí)際使用時(shí)需要根據(jù)具體的型號(hào)來確定。圖6-21~圖6-24中的時(shí)序時(shí)間常數(shù)隨不同型號(hào)而不相同,請參考SST公司相關(guān)器件的手冊。
FlashROM可以為嵌入式控制系統(tǒng)、測控系統(tǒng)、工業(yè)控制系統(tǒng)、智能記錄儀器等提供大容量的數(shù)據(jù)存儲(chǔ)器,目前更大容量的FlashROM已經(jīng)達(dá)到幾十兆字節(jié)。
FlashROM作為MCS-51系列單片機(jī)外部擴(kuò)展的數(shù)據(jù)存儲(chǔ)器時(shí),其應(yīng)用電路可以參考SRAM的電路,但是控制讀、寫和擦除操作軟件不同。
5.FRAM鐵電存儲(chǔ)器(FRAM)的核心技術(shù)是鐵電晶體材料,這一特殊材料使得鐵電存儲(chǔ)產(chǎn)品同時(shí)擁有隨機(jī)存取存儲(chǔ)器(RAM)和非易失性存儲(chǔ)產(chǎn)品的特性。鐵電晶體材料的工作原理是:當(dāng)電場加載到鐵電晶體材料上時(shí),晶體陣列中的中心原子會(huì)沿著電場方向運(yùn)動(dòng),到達(dá)穩(wěn)定狀態(tài)。晶體陣列中每個(gè)自由浮動(dòng)的中心原子只有兩個(gè)穩(wěn)定狀態(tài),一個(gè)狀態(tài)被用來記憶邏輯“0”,另一個(gè)狀態(tài)用來記憶邏輯“1”。其中心原子能夠在常溫、沒有電場的情況下停留在此狀態(tài)達(dá)100年以上時(shí)間,鐵電存儲(chǔ)器不需要定時(shí)刷新(與DRAM相比),能在斷電情況下保存數(shù)據(jù)(與常規(guī)SRAM相比)。由于在整個(gè)物理過程中沒有任何原子碰撞,F(xiàn)RAM擁有相當(dāng)于SRAM的高速讀/寫、超低功耗和無限次寫/擦除等優(yōu)點(diǎn),同時(shí)還具有數(shù)據(jù)掉電不丟失的優(yōu)點(diǎn)。它是近些年被開發(fā)并廣泛應(yīng)用的一種新型存儲(chǔ)器,據(jù)部分專家預(yù)測,在未來FRAM將完全取代SRAM,但是,目前FRAM的價(jià)格比較高,大約0.1KB/元。
FRAM存儲(chǔ)器的專利權(quán)歸總部設(shè)在美國科羅拉多州的ColoradoSprings市的Ramtron公司,目前Toshiba、Hitachi、Fujistu、Rohm、Samsung、Infineon等半導(dǎo)體公司都獲得了Ramtron公司的授權(quán),可提供各種不同的FRAM產(chǎn)品。目前市場上可以見到的Ramtron公司的FRAM產(chǎn)品見表6-10。表中的FM24Cxx產(chǎn)品完全兼容I2C總線接口的EEPROM產(chǎn)品;FM25xxx則完全兼容SPI接口的EEPROM產(chǎn)品;FM1608完全兼容62C64(SRAM),但增加了不揮發(fā)性;FM1808完全兼容62C256,但也增加了不揮發(fā)性;而FM3808既具有62C256的存儲(chǔ)器,又增加了不揮發(fā)性,而且該芯片內(nèi)還帶有嵌入式控制系統(tǒng)的單片機(jī)必需的電壓監(jiān)控、實(shí)時(shí)日歷時(shí)鐘和Watchdog定時(shí)器功能。串行接口(I2C、SPI)的FRAM與相同容量的EEPROM相比,F(xiàn)RAM型存儲(chǔ)器的字節(jié)寫大約需要72μs,而串行接口的EEPROM存儲(chǔ)器的字節(jié)寫大約需要7ms。所有的EEPROM都有字節(jié)寫內(nèi)部編程循環(huán)時(shí)間(大約5ms左右),而FRAM的字節(jié)寫沒有自編程等待時(shí)間,這樣在一些要求快速保存數(shù)據(jù)的應(yīng)用領(lǐng)域,F(xiàn)RAM類型存儲(chǔ)器有非常好的優(yōu)越性。6.3.2并行接口數(shù)據(jù)存儲(chǔ)器的擴(kuò)展
1.?dāng)U展并行接口的SRAM和NOVRAM作為外部數(shù)據(jù)存儲(chǔ)器
MCS-51單片機(jī)的外部擴(kuò)展32KB的SRAM類型數(shù)據(jù)存儲(chǔ)器的電路參見圖6-14,圖中擴(kuò)展的62C256的地址空間為0000H~7FFFH。下面的程序是實(shí)現(xiàn)將外部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)轉(zhuǎn)移到內(nèi)部數(shù)據(jù)存儲(chǔ)器中,同時(shí)將原來的數(shù)據(jù)清零。外部數(shù)據(jù)存儲(chǔ)器的起始地址為1000H,將要轉(zhuǎn)移的數(shù)據(jù)個(gè)數(shù)由函數(shù)輸入變量“_len”確定,內(nèi)部存儲(chǔ)器起始地址指針為函數(shù)的輸入變量“*_data”。#include<io51.h>
//使用8051單片機(jī)的頭文件#defineExRAMbaseAd
((unsignedchar*)0x011000)
//指向外部數(shù)據(jù)存儲(chǔ)器地址1000H的指針voidGetExRAMData(unsignedchar*_data,unsignedchar_len){
unsignedchari;
for(i=0;i<_len;i++)
{
_data[i]=*(ExRAMbaseAd+i);
//從外部數(shù)據(jù)存儲(chǔ)器中讀一個(gè)字節(jié)的數(shù)據(jù),并將數(shù)據(jù)保存到_data數(shù)組中*(ExRAMbaseAd+i)=0x0;
//將外部存儲(chǔ)器中原來的數(shù)據(jù)清零
}}由于Dallas公司的NOVRAM型DS1230Y/AB存儲(chǔ)器與PDIP封裝的62C256的引腳、讀/寫時(shí)序完全相同,因此上面的程序和圖6-14同樣適合于DS1230Y/AB的應(yīng)用電路。
2.?dāng)U展并行接口的FlashROM作為外部數(shù)據(jù)存儲(chǔ)器
FlashROM都是大存儲(chǔ)容量的存儲(chǔ)器,往往在嵌入式單片機(jī)應(yīng)用系統(tǒng)中也需要擴(kuò)展大存儲(chǔ)容量的FlashROM,以用于保存長時(shí)間的連續(xù)測量結(jié)果和系統(tǒng)事件記錄。下面介紹如何為MCS-51單片機(jī)應(yīng)用系統(tǒng)擴(kuò)展大于64KB數(shù)據(jù)存儲(chǔ)器的方法。
MCS-51系列單片機(jī)的地址總線寬度為16位,使用常規(guī)地址擴(kuò)展法可以尋址的數(shù)據(jù)存儲(chǔ)器地址空間為216(64KB)。非常規(guī)擴(kuò)展方法有兩種。一種方法是用P1口作為擴(kuò)展的高位地址,占用P1口n根I/O線,就可以將數(shù)據(jù)存儲(chǔ)器的尋址空間擴(kuò)展為2n×64KB。采用這種方法的缺點(diǎn)是隨著需要擴(kuò)展的尋址空間的擴(kuò)大,必須占用更多的P1口線,當(dāng)需要擴(kuò)展1MB(24×64KB)空間時(shí),將占用P1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量檢驗(yàn)員聘用合同格式
- 2024年度醫(yī)療器械代理注冊合同規(guī)范范本3篇
- 食品安全合同管理流程
- 2025年度五星級(jí)酒店VIP客戶住宿服務(wù)協(xié)議書3篇
- 能源檢測薪資結(jié)構(gòu)
- 語言培訓(xùn)中心外教勞動(dòng)合同樣本
- 2025奧菱達(dá)電梯有限企業(yè)電梯部件供應(yīng)及維修服務(wù)協(xié)議3篇
- 施工成本鋼結(jié)構(gòu)安全協(xié)議
- 投資入伙協(xié)議書范本
- 2025年度口腔醫(yī)療市場營銷合作協(xié)議書3篇
- 搞笑朗誦我愛上班臺(tái)詞
- 高考語文復(fù)習(xí)小說閱讀之人物形象課件54張
- 控制系統(tǒng)的滯后校正設(shè)計(jì)
- 20以內(nèi)加減法口算題100道計(jì)時(shí)精編版(共計(jì)3500道)可直接打印
- 錯(cuò)題資源與利用方式
- 燈會(huì)安全施工方案
- 井下繩索取芯的自動(dòng)化與智能化發(fā)展研究
- CNAS-CL02:2023 醫(yī)學(xué)實(shí)驗(yàn)室質(zhì)量和能力認(rèn)可準(zhǔn)則
- 增值稅發(fā)票銷貨清單
- 溫濕度記錄表
- 痛經(jīng)癥狀量表(CMSS)全
評(píng)論
0/150
提交評(píng)論