[align=left]
1 前言
EEPROM是一種具有掉電記憶功能的存貯器,其內(nèi)容可以象普通RAM一樣進行改寫,而且改寫時能夠自動擦除并換成新內(nèi)容。它不象EPROM那樣需要紫外線擦除;而只需用電即可擦除并改寫存貯在其內(nèi)部的內(nèi)容。EEPROM通常在內(nèi)部帶有編程電源。由于它只需外接單一+5V電源,因此使用起來十分方便。和串行芯片相比,并行EEPROM的電路接口和編程設(shè)計均簡單得多,所以在對電路板面積要求不很苛刻的情況下,使用EEPROM存貯器還是十分的方便。
[b]2 并行EEPROM中數(shù)據(jù)丟失的原因
[/b] 并行EEPROM通常采用總線擴展接口方法,圖1所示是基于AT28C256的接口電路,其中為地址譯碼產(chǎn)生的片選信號為單片機的讀、寫信號。
[/align]
[img=224,250]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/gydzyqj/2002-2/26-1.jpg[/img]
編程時,只需一句MOVX指令即可完成EEP-ROM存貯器的讀、寫操作,使用十分方便,但并行EEPROM在工業(yè)現(xiàn)場往往會受到干擾而導(dǎo)致其存貯在內(nèi)部的數(shù)據(jù)內(nèi)容發(fā)生改變,從而造成數(shù)據(jù)的損壞或丟失。
經(jīng)分析,EEPROM存貯器的數(shù)據(jù)丟失主要發(fā)生在系統(tǒng)上電、掉電或復(fù)位等情況下。主要表現(xiàn)在以下兩種情況:
(1)當(dāng)整個數(shù)據(jù)存貯系統(tǒng)中的CPU在復(fù)位信號解除后,一般都將會延時數(shù)百μs時間,因此,在這段時間內(nèi),讀信號、寫信號、地址信號和數(shù)據(jù)信號都可能隨機變化,從而造成對存貯器的誤寫操作而使其中的數(shù)據(jù)改變。
(2)在電源緩慢升降過程中,當(dāng)CPU處于臨界工作狀態(tài)時,其讀寫時序可能會出現(xiàn)混亂,從而使存貯器中的數(shù)據(jù)發(fā)生改變。
[b]3 AT28C系列EEPROM簡介
[/b] 圖2所示是ATMEL公司的AT28C系列并行EEPROM存貯器的邏輯框圖,該系列中的主要產(chǎn)品有AT28C64(8K×8)、AT28C256(32K×8)、AT28C010(128K×8)、AT28C040(512K×8)等型號,它們的結(jié)構(gòu)基本相同。和普通的28系列EEPROM相比,AT28C系列EEPROM具有如下特點:
●具有64、128或256字節(jié)的標(biāo)識字節(jié)(不同型號有不同);
●可快速讀取,讀取時間范圍為120ns~150ns;
●具有字節(jié)和頁兩種寫模式,在頁寫模式中,EEPROM存貯器的內(nèi)部定時器控制時序可在一個內(nèi)部編程周期內(nèi)寫入一頁數(shù)據(jù),其頁容量為64、128或256字節(jié)(依型號不同而不同);
●可提供數(shù)據(jù)保護功能,具有卓越的抗干擾能力。
[img=286,165]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/gydzyqj/2002-2/27-2.jpg[/img]
在上述特性中,最具吸引力的無疑是完善的數(shù)據(jù)保護功能。
[b]4 AT28C系列的數(shù)據(jù)保護措施
[/b] AT28C系列EEPROM一般采用硬件數(shù)據(jù)保護和軟件數(shù)據(jù)保護(SDP)兩類措施。
4.1 硬件數(shù)據(jù)保護
AT28C系列EEPROM的硬件數(shù)據(jù)保護措施有以下幾種:
第一種措施是對Vcc實施監(jiān)控,當(dāng)Vcc低于3.8V時,禁止對EEPROM的寫入;第二種是采用上電延時,即在系統(tǒng)上電時,當(dāng)Vcc上升到3.8V后再延時5ms才允許寫入數(shù)據(jù);第三種是寫入禁止,即在為低電平、為高電平或為高電平這三個條件中的任何一個出現(xiàn)時,禁止寫入數(shù)據(jù);最后一種是采用噪聲濾波,以便使得和信號線上窄于15ns的脈沖不能觸發(fā)寫操作。
4.2 軟件數(shù)據(jù)保護
軟件控制的數(shù)據(jù)保護功能可以由用戶編程來啟動或禁止,芯片出廠時設(shè)定為禁止。
[img=189,154]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/gydzyqj/2002-2/27-1.jpg[/img]
[img=217,212]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/gydzyqj/2002-2/27-6.jpg[/img]
通過執(zhí)行三條特定寫指令的序列可以使芯片進入SDP狀態(tài)。一旦芯片進入SDP狀態(tài),應(yīng)首先執(zhí)行此寫指令序列來使芯片允許寫入,隨后進行字節(jié)或頁寫入操作,然后再使EEPROM自動進入SDP狀態(tài)。以AT28C256為例的使能算法如圖3所示。
將RAM中長度為N(N<64)的字節(jié)數(shù)組mydata存入AT28C256中起始地址為address的連續(xù)存儲空間的C51程序如下:
[img=258,108]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/gydzyqj/2002-2/27-7.jpg[/img]
不同型號的三條寫指令序列地址和數(shù)據(jù)值將有所不同,對于AT28C64,這三個地址值為1555、0AAA和1555,而三個數(shù)據(jù)值則相同。
退出SDP狀態(tài)(如AT28C256)的算法如圖4所示。對于不同型號,地址和數(shù)據(jù)值也會有所不同。
需要指出的是,這里所說的三條寫指令序列,只是用于EEPROM內(nèi)部SDP所需的邏輯判斷,而不會改變EEPROM中這三個地址的內(nèi)容。
[b]5 結(jié)論
[/b] 筆者曾用MP-100型編程器重寫具有SDP功能的AT28C256芯片,結(jié)果未能改變?nèi)我庖粋€字節(jié)的內(nèi)容。在開發(fā)的多款儀器中,利用該技術(shù)擴展AT28C系列EEPROM后,從未出現(xiàn)數(shù)據(jù)丟失的情況。
實踐證明,AT28C系列EEPROM的數(shù)據(jù)保護功能非常有效,尤其是其軟件數(shù)據(jù)保護功能。由于其具有卓越的抗干擾能力,因此值得推薦使用。