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