AT28C系列EEPROM中数据的保护
扫描二维码
随时随地手机看文章
1 前言
EEPROM是一种具有掉电记忆功能的存贮器,其内容可以象普通RAM一样进行改写,而且改写时能够自动擦除并换成新内容。它不象EPROM那样需要紫外线擦除;而只需用电即可擦除并改写存贮在其内部的内容。EEPROM通常在内部带有编程电源。由于它只需外接单一+5V电源,因此使用起来十分方便。和串行芯片相比,并行EEPROM的电路接口和编程设计均简单得多,所以在对电路板面积要求不很苛刻的情况下,使用EEPROM存贮器还是十分的方便。
2 并行EEPROM中数据丢失的原因
并行EEPROM通常采用总线扩展接口方法,图1所示是基于AT28C256的接口电路,其中为地址译码产生的片选信号为单片机的读、写信号。
编程时,只需一句MOVX指令即可完成EEP-ROM存贮器的读、写操作,使用十分方便,但并行EEPROM在工业现场往往会受到干扰而导致其存贮在内部的数据内容发生改变,从而造成数据的损坏或丢失。
经分析,EEPROM存贮器的数据丢失主要发生在系统上电、掉电或复位等情况下。主要表现在以下两种情况:
(1)当整个数据存贮系统中的CPU在复位信号解除后,一般都将会延时数百μs时间,因此,在这段时间内,读信号、写信号、地址信号和数据信号都可能随机变化,从而造成对存贮器的误写操作而使其中的数据改变。
(2)在电源缓慢升降过程中,当CPU处于临界工作状态时,其读写时序可能会出现混乱,从而使存贮器中的数据发生改变。
3 AT28C系列EEPROM简介
图2所示是ATMEL公司的AT28C系列并行EEPROM存贮器的逻辑框图,该系列中的主要产品有AT28C64(8K×8)、AT28C256(32K×8)、AT28C010(128K×8)、AT28C040(512K×8)等型号,它们的结构基本相同。和普通的28系列EEPROM相比,AT28C系列EEPROM具有如下特点:
●具有64、128或256字节的标识字节(不同型号有不同);
●可快速读取,读取时间范围为120ns~150ns;
●具有字节和页两种写模式,在页写模式中,EEPROM存贮器的内部定时器控制时序可在一个内部编程周期内写入一页数据,其页容量为64、128或256字节(依型号不同而不同);
●可提供数据保护功能,具有卓越的抗干扰能力。
在上述特性中,最具吸引力的无疑是完善的数据保护功能。
4 AT28C系列的数据保护措施
AT28C系列EEPROM一般采用硬件数据保护和软件数据保护(SDP)两类措施。
4.1 硬件数据保护
AT28C系列EEPROM的硬件数据保护措施有以下几种:
第一种措施是对Vcc实施监控,当Vcc低于3.8V时,禁止对EEPROM的写入;第二种是采用上电延时,即在系统上电时,当Vcc上升到3.8V后再延时5ms才允许写入数据;第三种是写入禁止,即在为低电平、为高电平或为高电平这三个条件中的任何一个出现时,禁止写入数据;最后一种是采用噪声滤波,以便使得和信号线上窄于15ns的脉冲不能触发写操作。
4.2 软件数据保护
软件控制的数据保护功能可以由用户编程来启动或禁止,芯片出厂时设定为禁止。
过执行三条特定写指令的序列可以使芯片进入SDP状态。一旦芯片进入SDP状态,应首先执行此写指令序列来使芯片允许写入,随后进行字节或页写入操作,然后再使EEPROM自动进入SDP状态。以AT28C256为例的使能算法如图3所示。
将RAM中长度为N(N<64)的字节数组mydata存入AT28C256中起始地址为address的连续存储空间的C51程序如下:
不同型号的三条写指令序列地址和数据值将有所不同,对于AT28C64,这三个地址值为1555、0AAA和1555,而三个数据值则相同。
退出SDP状态(如AT28C256)的算法如图4所示。对于不同型号,地址和数据值也会有所不同。
需要指出的是,这里所说的三条写指令序列,只是用于EEPROM内部SDP所需的逻辑判断,而不会改变EEPROM中这三个地址的内容。
5 结论
笔者曾用MP-100型编程器重写具有SDP功能的AT28C256芯片,结果未能改变任意一个字节的内容。在开发的多款仪器中,利用该技术扩展AT28C系列EEPROM后,从未出现数据丢失的情况。
实践证明,AT28C系列EEPROM的数据保护功能非常有效,尤其是其软件数据保护功能。由于其具有卓越的抗干扰能力,因此值得推荐使用。