新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 三線制Microware同步串行EEPROM在MCS-51單片機上的運用

三線制Microware同步串行EEPROM在MCS-51單片機上的運用

作者: 時間:2012-02-09 來源:網(wǎng)絡 收藏

1 Microware

  Microware同步接口是 NationalSemicondutor公司在其生產(chǎn)的COP系列和HPC系列微控制器上采用的一種,它使用的三根信號線分別為數(shù)據(jù)輸入線 SI、數(shù)據(jù)輸出線SO和時鐘信號線SK。由于Microware總線只需3~4根數(shù)據(jù)線和控制線即可擴展具有三線制Microware總線的各種 I/O器件,而并行總線擴展方法卻需要8根數(shù)據(jù)線、8~16根地址線和2~3位的控制線,因此,使用三線制Microware串行總線可以簡化電路設計,提高設計的可靠性。

2 三線制Microware總線的

  是一種可用電氣方法在線擦除和再編程的只讀存儲器,它既有 RAM在聯(lián)機操作中可讀可改寫的特性,又具有非易失性存儲器ROM在掉電后仍然能保持所存儲的數(shù)據(jù)的優(yōu)點。93C06/46/56/66是采用CMOS工藝制成的分別為64/128/256/512×8位或16/64/128/256×16位8引腳的可支持三線制Microware串行總線的 ,其自定時寫周期的自動擦除時間不超過10ms,Microchip公司的串行EEPROM的擦除和寫入一個字節(jié)的時間可縮短到2ms以下,擦除/寫入周期壽命一般都可達到10萬次以上,有的產(chǎn)品(如NS公司和Microchip公司的產(chǎn)品)已可達到100萬次,片內(nèi)寫入的數(shù)據(jù)保存壽命可達 40年以上。這些三線制Microware總線的EEPROM一般采用單一+5V電源供電,低功耗時工作電流僅400μA,備用時為25μA,同時具有三態(tài)輸出,并可與TTL電平兼容。

  NM93C06/46/56/66是National Semiconductor公司的產(chǎn)品,與其兼容的有Microchip公司的93C06/46/56/66(4.5V~5.5V)、 93LC46/56/66(2.0V~6.0V)、93AA06/46/56/66和Atmel公司的AT93C46/56/66等產(chǎn)品,其中 AT93C66的引腳排列如圖1所示。各引腳說明如下:

  CS:片選信號;
  SK:串行時鐘輸入信號,同時也是微處理器與EEPROM之間通信的同步信號,數(shù)據(jù)在它的上升沿鎖定有效;
  DI:數(shù)據(jù)輸入;
  DO:數(shù)據(jù)輸出;
  ORG:Microchip公司產(chǎn)品特有引腳。該引腳接Vcc時,器件的內(nèi)部存儲組織結(jié)構(gòu)以16位為一個單元;接GND時,器件的內(nèi)部存儲組織結(jié)構(gòu)以8位為一個單元。

  該芯片有7種指令,其中5種指令集的安排如 表1所列,此外,還有整片寫指令(WRAL-Write All)和整片擦除指令(ERAL-Erase All)。應當說明的是:在操作碼為00時,為了區(qū)分不同指令,通常借用地址的前兩位來識別。

  不同型號的EEPROM有不同的存儲空間,93C66有512字節(jié)的存儲空間,其地址為 A8~A0,在編程時,A8可以作為操作指令字節(jié)的最后一位,如果需要讀93C56中某個存儲單元(8位)中的數(shù)據(jù),其讀指令為0000110A8,地址碼為××××××××,此時,如果A8為0,則地址為00H…FFH,如果A8為1,則地址為100H…1FFH,而93C06/46/56的存儲空間不超過256個字節(jié),其A8始終為0。

  有關(guān)93C06/46/56/66的具體操作時序可參考有關(guān)文獻[1]。

3 在單片機上的應用

  串行EEPROM技術(shù)是一種非易失性存儲器技術(shù),它是嵌入式控制解決方案中的先進技術(shù),可在單片機應用系統(tǒng)中用于數(shù)據(jù)的掉電保護、在線設置參數(shù)的存儲、用戶在線編程查表法中的表格存儲,以及在微控制器的I/O線較少情況下的應用等。

  系列單片機沒有三線制Microware串行總線接口,當它與 93C06/46/56/66等具有三線制Microware串行總線的EEPROM連接時,應使用相應的軟件來模擬三線制Microware串行總線的操作,其中包括串行時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出。圖2為串行EEPROM芯片AT93C66與AT89C51單片機的硬件連接圖,圖中的R為上拉電阻, AT89C51的P1.0口用于模擬AT93C66的片選端CS,P1.1口模擬AT93C66的時鐘輸入端SK,P1.2口模擬它的數(shù)據(jù)輸入端 DI,P1.3口模擬數(shù)據(jù)輸出端DO(DI和DO也可以連接在一起)。當在時鐘的上升沿第一次檢測到CS和DI都為高電平時,可啟動AT93C66。在寫操作時,首先使AT89C51的P1.1由低變高并產(chǎn)生一個脈沖,再在脈沖的上升沿將1 位數(shù)據(jù)(先為高位)從P1.2輸出到AT93C66中,并清P1.1為0,然后再置P1.1為1,隨之P1.2又輸出1位數(shù)據(jù)……依次循環(huán)8次, AT89C51便可完成1個字節(jié)的輸出操作。在寫入周期完成后,P1.0由高變低,并在保持最少100ns后變?yōu)楦唠娖?,這時93C66的DO線用來表示芯片的狀態(tài),DO為1表示數(shù)據(jù)已寫入指定的地址中,D0為0則表示正在編程。利用AT89C51可通過查詢P1.3的狀態(tài)來決定是否繼續(xù)操作,讀操作時, P1.1由低變高,AT89C51經(jīng)P1.3從AT93C66讀入1位數(shù)據(jù),并循環(huán)8次,然后讀入1個字節(jié),下面是根據(jù)操作時序?qū)懗龅腁T90C51與 93C66連接時的模擬三線制Microware串行總線的操作源程序。

  首先根據(jù)AT93C66的指令集,規(guī)定如下指令格式:
  指令格式:00001××A8,其中1為起始位,××為操作碼,A8為第9位地址碼;
  讀指令(READ):00001100,即0x0c(如果對93C66的100H…1FFH地址空間操作,則指令最后一位為1,寫和擦除指令均如此); 寫指令(WRITE):00001010,即0x0a 擦除指令(ERASE):00001110,即0x0e
  擦/寫允許指令(EWEN):0000100110000000,即0x0980,該指令分兩次寫入。

  本程序可用C51語言編寫,具體代碼如下(不包括整片寫和擦除功能):


上一頁 1 2 下一頁

關(guān)鍵詞: 三線制 串行總線 EEPROM MCS-51

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉