三線制Microware同步串行EEPROM在MCS-51單
介紹了三線制Microware串行總線及其相關(guān)的EEPROM,設(shè)計(jì)了該類EEPROM與AT89C51的連接和軟件模擬,并給出C51源程序。
關(guān)鍵詞:三線制,串行總線,EEPROM,MCS-51
1三線制Microware串行總線
三線制Microware同步串行總線接口是松下半導(dǎo)體公司在其生產(chǎn)的COP系列和HPC系列微控制器上采用的一種串行總線。它使用的三根信號(hào)線是數(shù)據(jù)輸入線SI、數(shù)據(jù)輸出線SO和時(shí)鐘信號(hào)線SK。由于三線制Microware總線只需3~4根數(shù)據(jù)線和控制線即可擴(kuò)展具有三線制Microware總線的各種I/O器件,而并行總線擴(kuò)展方法要8根數(shù)據(jù)線、8~16根地址線和2~3位控制線,因而使用三線制Microware串行總線可以簡(jiǎn)化電路設(shè)計(jì),提高設(shè)計(jì)的可靠性。
2具有三線制Microware總線的EEPROM
EEPROM是一種可用電氣方法在線擦除和再編程的只讀存儲(chǔ)器,它既有RAM在聯(lián)機(jī)操作中可讀可改寫的特性,又具有非易失性存儲(chǔ)器ROM在掉電后仍然能保持所存儲(chǔ)數(shù)據(jù)的優(yōu)點(diǎn)。93C06/46/56/66是采用CMOS工藝制成的分別為64/128/256/512×8位,或16/64/128/256×16位8引腳的支持三線制Microware串行總線的EEPROM,其自定時(shí)寫周期包括自動(dòng)擦除時(shí)間不超過(guò)10ms,而Microchip公司的串行EEPROM的擦除和寫入一個(gè)字節(jié)的時(shí)間可縮短到2ms以下,擦除/寫入周期壽命一般都已達(dá)到10萬(wàn)次以上,有的產(chǎn)品(如NS和Microchip的產(chǎn)品)可達(dá)到100萬(wàn)次,片內(nèi)寫入的數(shù)據(jù)保存壽命在40年以上,采用單一電源+5V供電,低功耗工作電流400μA,備用時(shí)為25μA,三態(tài)輸出,與TTL電平兼容。
NM93C06/46/56/66是松下半導(dǎo)體公司的產(chǎn)品,與其兼容的有Microchip公司的93C06/46/56/66(4.5V~5.5V)、93LC/46/56/66(2.0V~6.0V)、93AA06/46/56/66和Atmel公司的AT93C46/56/66,其封裝形式如圖1。
引腳說(shuō)明:CS:片選信號(hào);SK:串行時(shí)鐘輸入信號(hào),是微處理器與EEPROM之間通信的同步信號(hào),數(shù)據(jù)在它的上升沿鎖定有效;
DI:數(shù)據(jù)輸入;
DO:數(shù)據(jù)輸出;
ORG:Microchip公司產(chǎn)品特有引腳,接Vcc時(shí)內(nèi)部存儲(chǔ)組織結(jié)構(gòu)是16位為一個(gè)單元,接GND時(shí)內(nèi)部存儲(chǔ)組織結(jié)構(gòu)是8位為一個(gè)單元。
芯片有7種指令,指令集的安排見(jiàn)表1。表1
注意:在操作碼為00時(shí),為了區(qū)分不同指令,借用地址的前兩位來(lái)識(shí)別。此外還有整片寫指令(WRAL-Write All)和整片擦除指令(ERAL-EraseAll)。
不同型號(hào)的EEPROM有不同的存儲(chǔ)空間,93C66有512字節(jié)的存儲(chǔ)空間,其地址為A8…A0,在編程時(shí)A8可以作為操作指令字節(jié)的最后一位,如:讀93C66中某個(gè)存儲(chǔ)單元(8位)中的數(shù)據(jù),讀指令0000110A8,地址碼××××××××,如果A8為0,則地址00H…FFH,如果A8為1,地址為100H…1FFH。而93C06/46/56的存儲(chǔ)空間不超過(guò)256個(gè)字節(jié),A8始終為0。
有關(guān)93C06/46/56/66的具體操作時(shí)序見(jiàn)參考文獻(xiàn)〔1〕。
3三線制Microware總線EEPROM在MCS┐51單片機(jī)上的運(yùn)用
串行EEPROM技術(shù)是一種非易失性存儲(chǔ)器技術(shù),它是嵌入式控制解決方案中的先進(jìn)技術(shù),在MCS-51單片機(jī)應(yīng)用系統(tǒng)中可用于數(shù)據(jù)的掉電保護(hù)、可在線設(shè)置參數(shù)的存儲(chǔ)、用戶在線可編程查表法中的表格存儲(chǔ)、微控制器I/O線較少情況下的應(yīng)用等等場(chǎng)合。
MCS-51系列單片機(jī)沒(méi)有三線制Microware串行總線接口,它與93C06/46/56/66等具有三線制Microware串行總線的EEPROM連接時(shí),要使用軟件來(lái)模擬三線制Microware串行總線的操作,包括串行時(shí)鐘、數(shù)據(jù)輸入、數(shù)據(jù)輸出。圖2為串行EEPROM AT93C66與AT89C51單片機(jī)的硬件連接圖,R為上拉電阻,AT89C51的P1.0模擬AT93C66的片選端CS,P1.1模擬AT93C66的時(shí)鐘輸入端SK,P1.2模擬它的數(shù)據(jù)輸入端DI,P1.3模擬數(shù)據(jù)輸出端DO(DI和DO也可以連接在一起)。當(dāng)在時(shí)鐘的上升沿第一次檢測(cè)到CS和DI都為高電平時(shí),啟動(dòng)AT93C66。寫操作時(shí),AT89C51的P1.1由低變高,產(chǎn)生一個(gè)脈沖,在脈沖的上升沿將1位數(shù)據(jù)(先為高位)從P1.2輸出到AT93C66中,清P1.1為0,再置P1.1為1,P1.2又輸出1位數(shù)據(jù)……依次循環(huán)8次,AT89C51完成1個(gè)字節(jié)的輸出操作。寫入周期完成后,P1.0由高變低,并保持最少100ns后變?yōu)楦唠娖剑@時(shí)93C66的DO線用來(lái)表示芯片的狀態(tài),DO為1表示數(shù)據(jù)已寫入指定的地址中,為0則表示正在編程,AT89C51可以查詢P1.3的狀態(tài)來(lái)決定是否繼續(xù)操作。讀操作時(shí),P1.1由低變高,AT89C51經(jīng)P1.3從AT93C66讀入1位數(shù)據(jù),循環(huán)8次,讀入1個(gè)字節(jié)。根據(jù)操作時(shí)序可以寫出AT90C51與93C66連接時(shí)的操作程序。
模擬三線制Mircroware串行總線的操作源程序。根據(jù)AT93C66的指令集,規(guī)定如下指令格式:
指令格式:00001××A8,其中1為起始位,××為操作碼,A8為第9位地址碼;
讀指令(READ):00001100,即0x0c(如果對(duì)93C66的100H…1FFH地址空間操作,則指令最后一位為1,寫和擦除指令均如此);
寫指令(WRITE):00001010,即0x0a;
擦除指令(ERASE):00001110,即0x0e;
擦/寫允許指令(EWEN):0000100110000000,即0x0980,該指令分兩次寫入;
本程序用C51語(yǔ)言編寫(不包括整片寫和擦除功能)
[!--empirenews.page--]