at28c256中文资料用西尔特编程器读出数据后,重新写入新的at28c256中文资料写入会出错。

防止eeprom数据丢失的措施_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
防止eeprom数据丢失的措施
上传于||文档简介
&&并​行​E​E​P​R​O​M​存​贮​器​在​工​业​现​场​使​用​时​,​有​时​由​于​会​受​到​较​大​干​扰​则​可​能​导​致​其​存​贮​在​E​E​P​R​O​M​中​的​数​据​内​容​发​生​改​变​或​丢​失​。​文​中​介​绍​了​并​行​E​E​P​R​O​M​受​干​扰​而​丢​失​数​据​的​原​因​,​介​绍​了​A​T​M​E​L​公​司​A​T8​C​系​列​E​E​P​R​O​M​的​结​构​、​特​点​和​性​能​,​详​细​阐​述​了​该​E​E​P​R​O​M​卓​越​的​硬​件​和​软​件​数​据​保​护​(​S​D​P​)​功​能​,​最​后​给​出​了​S​D​P​算​法​和​部​分​C1​程​序​。
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
你可能喜欢查看: 2937|回复: 1
防止eeprom数据丢失的措施
签到天数: 3 天连续签到: 1 天[LV.2]偶尔看看I
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
摘要:并行EEPROM存贮器在工业现场使用时,有时由于会受到较大干扰则可能导致其存贮在EEPROM中的数据内容发生改变或丢失。文中介绍了并行EEPROM受干扰而丢失数据的原因,介绍了ATMEL公司AT28C系列EEPROM的结构、特点和性能,详细阐述了该EEPROM卓越的硬件和软件数据保护(SDP)功能,最后给出了SDP算法和部分C51。& &&&关键词:AT28C系列 抗干扰 数据保护 SDP
EEPROM是一种具有掉电记忆功能的存贮器,其内容可以象普通RAM一样进行改写,而且改写时能够自动擦除并换成新内容。它不象EPROM那样需要紫外线擦除;而只需用电即可擦除并改写存贮在其内部的内容。EEPROM通常在内部带有编程电源。由于它只需外接单一+5V电源,因此使用起来十分方便。和串行芯片相比,并行EEPROM的电路接口和编程均简单得多,所以在对电路板面积要求不很苛刻的情况下,使用EEPROM存贮器还是十分的方便。
& & & & & & & & & & & & & & & &
2 并行EEPROM中数据丢失的原因
并行EEPROM通常采用总线扩展接口方法,图1所示是基于AT28C256的接口电路,其中CS为地址译码产生的片选,RD和WR为的读、写信号。
编程时,只需一句MOVX指令即可完成EEPROM存贮器的读、写操作,使用十分方便,但并行EEPROM在工业现场往往会受到干扰而导致其存贮在内部的数据内容发生改变,从而造成数据的损坏或丢失。
经分析,EEPROM存贮器的数据丢失主要发生在上电、掉电或复位等情况下。主要表现在以下两种情况。
(1)当整个数据存贮系统中的CPU在复位信号解除后,一般都将会延时数百μs时间,因此,在这段时间内,读信号、写信号、地址信号和数据信号都可能随机变化,从面造成对存贮器的误写操作而使其中的数据改变。
(2)在电源缓慢升降过程中,当CPU处于临界工作状态时,其读写时序可能会出现混乱,从而使存贮器中的数据发生改变。
3 AT28C系列EEPROM简介
图2所示是ATMEL公司的AT28C系列并行EEPROM存贮器的逻辑框图,该系列中的主要产品有AT28C64(8k×8)、AT28C256(32K×8)、工
& & & & & & & & & & & & & & & & AT28C010(128K×8)、AT28C040(512×8)等型号,它们的结构基本相同。和普通的28系列EEPROM相比,AT28C系列EEPROM具有如下特点:
●具有64、128或256字节的标识字节(不同型号有不同);
●可快速读取,读取时间范围为120ns~150
●具有字节和页两种写模式,在页写模式中,EEPROM存贮器的内部定时器控制时序可在一个内部编程周期内写入一页数据,其页容量为64、128或256字节(依型号不同而不同);
●可提供数据保护功能,具有卓越的抗干扰能力。
在上述特性中,最具吸引力的无疑是完善的数据保护功能。
4 AT28C系列的数据保护措施
AT28C系列EEPROM一般采用硬件数据保护和软件数据保护(SDP)两类措施。
4.1 硬件数据保护
AT28C系列EEPROM的硬件数据保护措施有以下几种:
第一种措施是对Vcc实施监控,
& & & & & & & & & & & & & & & & 当Vcc低于3.8V时,禁止对EEPROM的写入;第二种是采用上电延时,即在系统上电时,当Vcc上升到3.8V后再延时5ms才允许写入数据;第三种是写放禁止,即在OE为低电平、CE为高电平或WE为高电平这三个条件中的任何一个出现时,禁止写入数据;最后一种是采用品噪声滤波,以使使得CE和WE信号线上窄于15ns的脉冲不能触发写操作。
4.2 软件数据保护
软件控制的数据保护功能可以由用户编程来启动或禁止,芯片出厂时设定为禁止。
通过执行三条特定写指令的序列可以使芯片进入SDP状态。一旦芯片进入SDP状态,应首先执行此写指令序列来使芯片允许写入,随后进字节或页写入操作,然后再使EEPROM自动进入SDP状态。以AT28C256为例的使能算法如图3所示。
将RAM中长度为N(N&64)的字节数组mydata存入AT28C256中起始地址为address的连续存储空间的C51程序如下:
XBYTE[OX5555]=0
XBYTE[OX2aaa]=0x55;
For(I=0;I&N;i+ +)
& & & & & & & & & & & & & & & &
XBYTE[address+i]=mydata;
不同型号的三条写指令序列地址和数据值将有所不同,对于AT28C64,这三个地址值为1555、0AAA和1555,而三个数据值则相同。
退出SDP状态(如AT28C256)的算法如图4所示。对于不同型号,地址和数据值也会有所不同。
需要指出的是,这里所说的三条写指令序列,只是用于EEPROM内部SDP所需的逻辑判断,而不会改变EEPROM中这三个地址的内容。
笔者曾用MP-100型编程器重写具有SDP功能的AT28C256芯片,结果未能改变任意一个字节的内容。在开发的多款仪器,利用该扩展AT28C系列EEPROM后,从未出现数据丢失的情况。
实践证明,AT28C系列EEPROM的数据保护功能非常有效,尤其是其软件数据保护功能。由于其具有卓越的抗干扰能力,因此值得推荐使用。
签到天数: 3 天连续签到: 1 天[LV.2]偶尔看看I
总结一下引起 AVR 内部 EEPROM 数据丢失的原因:
& & 1. 程序问题;
& & 2. 程序跑飞;
& & 3. EEPROM相关寄存器因强磁场、高压静电等外部干扰出错所产生的写入动作;
& & 4. 系统有很大的感性负载,在断电的时候会产生一个反向高压,EEPROM有可能会自擦除。
& && &……(还有什么原因,欢迎大家继续列举,以便完善及想办法解决)
& & 针对问题1,程序问题不再该文讨论范围内。
& & 针对问题2,程序跑飞,这个因该是引起 EEPROM 数据丢失的主要原因。但是引起程序跑飞的原因却是多方面的。
& & 第一. 电压不正常,工作不稳定,程序跑飞。针对这个问题,可以开启内部BOD、或者外加复位芯片解决,在低功耗场合,外部复位是有必要的,毕竟BOD功耗太高。
& & 第二,晶体振荡受干扰,频率不稳定,程序跑飞。针对这个问题,建议晶体使用全幅振荡,并且走线的时候尽量短,并且使用地线隔离。
& & 第三系统受外界环境干扰,修改了PC等寄存器,程序跑飞。针对这个干扰问题,这个引起程序跑飞的可能性应该不大,如果环境实在恶劣,那么就应该想到做电磁屏蔽,ESD保护等,如果还不行,那么只能建议换换别的单片机试试看了。
& & 针对问题3,我们只能优化电路设置,尽量避免,比如加屏蔽罩,加ESD保护,加TVS保护,电源加电容退耦等等。
& & 针对问题4, 如果系统真的具有很大的感性负载,那么请注意加续流二极管、滤波电容等做保护,不要让这种反向高压产生,无论如何,这种因为感性负载突然断电自激产生的高压,不仅仅会对EEPROM有影响,而是对整个系统都存在威胁。
经过上面硬件上的一些处理,虽然EEPROM数据丢
失的可能已经很小了,但是我们仍然不能保证EEPROM数据就不会丢失了。这时 EEPROM 数据的可*性,那就得从软件上去考虑了,接着我们从
软件的方面继续讨论。
& & 我的做法是,数据分块,分区,校验,备份。当然这里讲的处理方法,仅仅是提供一种想法,你可以做不同数据长度的分块,不同大小的
分区,采用不同的地址映射方法,以及采用更多次的数据备份。下面以 Mega168 为例继续讨论。
1. Mega168 EEPROM 512字节,把EEPROM分为两个区,每个区256个字节,然后以8个字节为一个段,那么每个区就有32段。&&
& & 数据区:0x000 - 0x0FF& &
& & 0段:0x000 - 0x007&&
& & 1段:0x008 - 0x00F&&
& && & ……&&
& & 31段:0x0F8 - 0x0FF&&
& & 备份区:0x100-0x1FF
& & 每个段8个字节,其中前6个字节为有效数据,后2个字节为CRC16校验,数据格式下图所示:
2. EEPROM读写操作
& & EEPROM的操作以段为单位,
& & 段写入函数:写数据到数据区时,先计算数据CRC16校验,然后同时把数据写入到数据区和备份区;
& & 段读取函数:读取数据时,同时读取数据区以及备份区,如果数据区校验有误,备份区数据校验正确,就用备份区数据恢复数据区数据;& &
&&如果备份区数据有误,数据区数据正确,那么数据写入备份区重新备份;如果数据区备份区数据都有误,那么返回读取失败。
3. 数据区与备份区的对应关系
& & 数据读写操作以段进行,内部的数据区与备份区怎么映射呢?为了防治数据与备份同时被意外修改,那么数据与备份地址空间相隔不能太近,并且数据与备份的地址,应该尽量不同。假设数据地址为 Data_Addr,备份地址为 Bakup_Addr,我使用下面的函数映射地址:
& && && && && &&&Bakup_Addr = ( Data_Addr + 0x100 ) ^ 0x03F&&
& & 加0x100是把地址定义到备份区, 与0x03F异或,是把低6bits取反,这样处理,数据与备份的地址空间较远,并且地址有7bits的不同。
& & 例如,第 3 段 的地址: 0x018 - 0x01F,&&
& && && & 对应的备份区为:0x127 - 0x120&&
& && && & 如下图所示:&&
4. 读写函数加入写保护判断,在读写EEPROM前关闭写保护,读写完毕后,立即开启写保护,这样可以有效防止程序跑飞造成的EEPROM意外修改。
5. 第0块建议禁止使用。
站长推荐 /2
招募版主,有兴趣的,可以联系我。
我们的技术交流群:,欢迎大家加入。
Powered by型号索引:
您现在的位置:>>AT28C256
暂无外观图
你是不是要找:
建议:请优先选择带或的供应商,采购更放心。指该供应商接受小批量订单。
2013+/14+&
256K 32K x 8 Paged CMOS E2PROM&
ATMEL&[ATMEL Corporation]&
AT28C256&&
256K EEPROM with 64-Byte Page & Software Protection&&
AT28C256-15&
256K 32K x 8 Paged CMOS E2PROM&
ATMEL&[ATMEL Corporation]&
AT28C256-15DM/883&
256K 32K x 8 Paged CMOS E2PROM&
ATMEL&[ATMEL Corporation]&
AT28C256-15FM/883&
256K 32K x 8 Paged CMOS E2PROM&
ATMEL&[ATMEL Corporation]&
AT28C256-15JC&
256K 32K x 8 Paged CMOS E2PROM&
ATMEL&[ATMEL Corporation]&
AT28C256-15JI&
256K 32K x 8 Paged CMOS E2PROM&
ATMEL&[ATMEL Corporation]&
AT28C256-15JU&
EEPROM, 256K, PARALLEL, SMD, 28C256; Memory Type:EEPROM; Interface Type:P Memory Size:256K Memory Configuration:32K x 8 Voltage, Memory Vcc:5V; Voltage, Supply Min:4.5V; Voltage, Supply Max:5.5V; Termination Type:SMD; Case Style:PLCC; No. of Pins:32; Operating Temperature Range:-40°C to +85°C; Base Number:28; IC Generic Number:28C256; Logic Function Number:28C256; Temp, Op. Max:+85°C; Temp, Op. Min:-40°C; Time, Access:150 Voltage, Vcc:5V &
¥2.00/pcs
¥4.50/pcs
¥7.60/pcs
¥9.50/pcs
¥24.00/pcs
¥24.00/pcs
¥165.00/pcs
&& 大器电路以及电路周围的电磁干扰源。因此,电压信号前端采用低通滤波器和差分放大器AD620等来抑制差模噪声和共模噪声,如图3所示。 图3 设VS为传感器的信号电压,VN1、VN2为外部噪声源在电缆线上的感应噪声信号,VNS为电路噪声。因此,差分放大器输出电压VO为: VO=A(V1-V2)=A(VS+VNS+(VN1+VN2));如果噪声源与信号源频谱不重叠,则经低通滤波电路后:VF≈AVS。 GAL译码电路 本模块电路中,单片机扩展外围器件较多,有程序存储器AT28C256、CAN控制器SJA1000、并口扩展82C55A和A/D转换AD1*。196单片机在模块中主要工作于8位总线宽度下,由于AD1*采用了12位并行输出模式,因此还需动态改变总线宽度。为了简化电路,以及适应196单片机较高总线速度的要求,译码电路放弃了传统的门电路组合的方法,采用了可多次编程的通用阵列逻辑器件(GENERIC ARRAY LOGIC)GAL16V8。这样可以减少元器件数量、降低线路复杂程度,同时降低故障机率及提高硬件设计的灵活性。 GAL16V8引脚分配及逻辑表达式如下: []
&& 理等功能,并对系统时序、上下电等进行控制,在辐射计的设计中处于重要位置。 1.1 数控单元硬件结构 系统由单片机、高速A/D转换器、程序存储器ROM、高速静态RAM、读写控制电路、通信电路等部分组成,如图2所示。通过锁存器实现地址总线和数据总线的复用,同时,RAM的读写由读写控制电路来实现。 数控单元采用ATMEL公司的AT89C51单片机作为控制器,具有4 KB闪存ROM,128 B RAM,支持电擦除1 000次,选择工作频率为11.059 6 MHZ。同时采用AT28C256扩展程序存储器ROM为256 KB,IDT71256扩展数据存储器RAM为256 KB,通过锁存器54HC573进行分时复用。 数据采集部分采用AD公司的16位并行模数转换器AD976A,采样速率可达200 KSPS。该高速A/D采用电荷重分布技术进行逐次逼近型模/数转换,因而不必外加采样保持器。电压输入范围为-10~+10V,分辨率高,可做到16位不失码,满足微波辐射计数控精度要求。 AT89C51串行口输出为TTL电平。为使其与PC机标准RS 232串口通信,系统选用MAX232 []
&& AT28C256做数据存储器我用87C196KC扩展了一片AT28C256做数据存储器,P3口经373到AT28C256的低地址,P4口上AT28C256的高地址,373的LE接了ALE,AT28C256的OE和WE分别接了单片机的RD和WR,AT28C256的CE接了P1.5口,这种接法应该没问题吧。数据写入的时候,OE为高 CE为低 WE为低,数据读取的时候,OE为低 CE为低 WE为高写了一个下面的程序,先写入,在判断写入的数是否正确,读取的数一直都是FF,不知道怎么回事,大家帮忙看看呀DATE: ANDB 0FH,#0DFH LD 22H,#8000HLOOP: LDB 20H,#00H STB 20H,[22H] CMPB 20H,[22H] JNE ERR LDB 20H,#0FFH STB 20H,[22H] CMPB 20H,[22H]+ JNE ERR CMP 22H,#9000H JNE LOOPHERE: NOP NOP []
&& 谢谢热心的COMPUTER00数据可以用电池保持住,这点没关系.铁电的写次数是多少?我印象中好像也是有限制的.有没有没有写次数限制的存储器呢?我看AT28C256的DATASHEET上好像没有说明写次数,是不是无限的呢?望各位DX帮忙.谢谢! []
&& 请问:AT28C256空片子能编进去M27256内部的程区吗?怎么编? []
&& 紧急求救-关于28C265的问题!希望仁兄帮帮我!你好朋友!我现在用89C51+74573+AT28C256做的一个数据存储。需要把89C51里的数据写到AT28C256里,硬件的连接是P0口与28C256的8为数据口连接,P2口和P0口通过74573和P2口一起连接到28C256的地址口(A0―A14),89C51WR连接到28C256的WE,89C51RD连接到28C256的OE,ALE连接到74573的G口,电源电压是5V;主要程序是: ORG 000H AJMP MAIN ORG 0030HMAIN: CLR P1.0 CLR P1.1 MOV DPTR,#0000H MOV R7,#100 MOV A,#1INPUT: MOVX @DPTR,A INC A INC DPTR DJNZ R7,INPUTLOOP: SJMP LOOP END请那为仁兄帮帮忙呀! []
&& AT28C256 []
相关搜索:
大小:762.46 KB
厂家:ATMEL&[ATMEL Corporation]}

我要回帖

更多关于 西尔特编程器官网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信