文件系统在EEPROM中的应用
EEPROM原理与应用
EEPROM原理与应用EEPROM的原理是在存储芯片中,每个存储单元由一个电场可控可擦写的浮动栅电容和一个选择晶体管组成。
这样,当需要写入数据时,电荷可以被注入到浮动栅电容中,改变了栅电容的电压,从而改变了其阈值电压,最终改变了存储单元的状态。
当需要擦除数据时,注入的电荷被移除,恢复了存储单元的初始状态。
EEPROM的主要特点是可擦写性和无需外部电源保持数据的可靠性。
相比于传统的ROM,EEPROM可以根据需要随时擦除和写入数据,无需更换芯片。
此外,EEPROM还具有易于控制、可靠性高、速度快的优点。
这使得EEPROM成为许多应用场景下的理想选择。
EEPROM在许多领域有着广泛的应用。
其中之一是在计算机系统中,通常用来存储BIOS(Basic Input Output System)固件,这是一种可以在计算机启动时自动加载的软件。
通过EEPROM存储的BIOS可以随时更新,从而提供更好的系统兼容性和性能。
另一个应用领域是存储设备,如闪存驱动器和SD卡。
这些设备使用EEPROM来存储用户数据,并具有快速的读取和写入速度、较长的存储寿命以及低功耗特性。
由于这些优点,EEPROM已成为了许多移动设备和计算设备的标准存储解决方案。
此外,EEPROM还在电子设备的配置和校准中发挥重要作用。
例如,在手机制造过程中,每个手机都需要经过一系列的校准和配置,以适应不同的运营商和网络环境。
EEPROM提供了一种可靠的方式来存储和更新这些配置和校准数据。
总的来说,EEPROM作为一种可擦写的存储器,具有易于控制、可靠性高和速度快的特点,使其在计算机系统、存储设备、电子设备的配置与校准以及传感器数据存储等领域得到了广泛的应用。
随着技术的进步,EEPROM的存储密度和性能也在不断提高,将为更多的应用场景提供更好的解决方案。
EEPROM写入库说明
问题描述:当高性能电容的时间(根据 CPU 类型不同而不同)用完,或者电池模块过期(200天),修改过的参数就会丢失。
使用以下程序库所提供的子程序,可以在 CPU 中的内部 EEPROM 中保存完整的变量区域,在运行期内该区域是不易失的(在系统手册中仅说明了保存单个变量)。
软件要求:此操作程序库使用需要 STEP 7 Micro/WIN V4.0 SP7 或者更高的版本。
警告:当 CPU 启动时,包含 DB (数据块)的存储卡不可以被插入。
如果包含 DB 的存储卡被插入,CPU 会读出存储卡的内容而不是去读内部 EEPROM,同时存储数据被错误的写回。
合并和使用库:1.将下载的文件“store_to_eeprom.zip”保存在电脑上。
2.在独立的目录下解压文件“store_to_eeprom.zip”。
3.双击开始解压的 STEP 7 Micro/WIN 库“store_to_eeprom.mwl”。
4.在 STEP 7-Micro/WIN 对话栏中打开确认集成的库。
增加的“EEPROM (v1.0)”文件夹中包含了子程序“EEPROM_Direct"”和“EEPROM_Indirect”。
图:01使用子程序:1.在网络中从文件夹“EEPROM (v1.0)”插入所需要的子程序。
2.根据例程中的参数列表给所选子程序分配输入输出参数。
使用适当的逻辑连接,以确保在执行期间程序执行触发输入位“Start”保持为1 (高)。
更多的信息也可以在子程序的注释中得到。
.注意:不能以很高的频率在 EEPROM 上保存数据。
EEPROM 典型的存储次数为100,000次。
如果超过这个值,CPU 将发生故障。
如果按小时在 EEPROM 上保存数值,那么 EEPROM 的预计使用寿命是 11 到 12 年。
起始地址为直接寻址“EEPROM_direct"”例程:图: 02表: 01起始地址为间接寻址“EEPROM_indirect”例程:图: 03表:02程序测试:程序运行后,删除可保持的 V 变量并将存储的数据装载回 CPU。
eeprom原理
eeprom原理
EEPROM原理及其应用
EEPROM是一种可擦写可编程只读存储器,它是一种非易失性存储器,可以在不需要电源的情况下保持数据。
EEPROM的工作原理是通过在存储器单元中存储电荷来存储数据。
当需要读取数据时,电荷被读取并转换为数字信号,然后传输到计算机或其他设备。
EEPROM的应用非常广泛,它可以用于存储各种类型的数据,包括程序代码、配置文件、用户设置等。
它还可以用于存储加密密钥和其他敏感信息,因为它可以在不需要电源的情况下保持数据,这使得它非常适合用于安全应用。
EEPROM的另一个重要应用是在微控制器和其他嵌入式系统中。
它可以用于存储程序代码和数据,这使得它非常适合用于小型设备和嵌入式系统。
由于EEPROM可以在不需要电源的情况下保持数据,因此它可以用于存储关键数据,例如系统配置和用户设置。
EEPROM的优点是它可以被多次擦写和编程,这使得它非常适合用于开发和测试。
它还可以在不需要电源的情况下保持数据,这使得它非常适合用于移动设备和其他需要长时间存储数据的应用。
EEPROM是一种非常有用的存储器,它可以用于各种应用,包括安全应用、嵌入式系统和移动设备。
它的优点是它可以被多次擦写和编程,并且可以在不需要电源的情况下保持数据。
因此,它是一种
非常有用的存储器,可以帮助开发人员和制造商开发出更好的产品。
EEPROM
嵌入式系统中EEPROM文件系统的设计与实现彭晓锋北京邮电大学电信工程学院,北京(100876)摘要:AT24CXX系列EEPROM在嵌入式领域有着广泛的运用。
本文参考微机文件系统的原理实现能兼容AT24C08-AT24C1024的简单文件系统,实验结果证明本系统高效可行。
关键词:EEPROM, 文件系统,嵌入式1.引言随着大量嵌入式设备的出现,在嵌入式系统中用于存储数据的EEPROM因其简单、方便、可靠的性能和低廉的价格而被广为使用。
当今社会嵌入式系统无所不在,各种嵌入式设备品种繁多,差别巨大。
因此各公司也推出多种不同容量不同型号的EEPROM适应多样的市场应用。
人们一方面希望能像管理大容量存储器(如硬盘,FLASH等)中数据一样简单便捷的操作EEPROM中的数据(包括打开、关闭、读写文件等),同时也希望这种文件系统能兼容不同容量、型号,具有较强的通用性。
而对于采用两线IIC总线读写方式[1]的EEPROM来说,无法使用类似与FLASH所支持的TFFS之类的文件系统,本文参照上述思想,实现了一种能兼容AT24C08-AT24C1024类似于文件系统的用于管理EEPROM中数据的方法,并在实践项目中得到良好运用。
2.AT24CXX系列EEPROM简介AT24CXX系列是ATMEL公司生产的串行电可擦的可编程存储器,它采用8引脚封装,具有可掉电记忆,结构紧凑、存储容量大等特点,可以在2线总线上并接多片芯片,适用于具有大容量数据存储要求的嵌入式系统[2]。
ⅰ)封装及管脚说明AT24C08-AT24C1024的封装如图1所示(对不同型号A0-A2相应改为NC,详见表1),各引脚的功能如下:⑴ A0、A1、A2:器件地址(device address)。
IIC串行总线需连接多个EEPROM芯片时,可用A0、A1、A2来区分各芯片,悬空时为0。
⑵ SDA:I2C 串行数据。
图1. A T24CXX系列EEPROM封装⑶ SCL:I2C 串行时钟。
eeprom应用实例
EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种可擦写的
非易失性存储器,常用于嵌入式系统中保存配置信息、历史数据等。
以下是一个简单的EEPROM应用实例,演示如何在Arduino上使用EEPROM来存储和读取数据。
示例:在Arduino上使用EEPROM存储和读取一个整数
这个简单的Arduino示例演示了以下步骤:
1.包含EEPROM库:#include <EEPROM.h>包含了Arduino的EEPROM库。
2.定义EEPROM地址和要存储的值:address是EEPROM的地址,value是要
存储的整数值。
3.在setup中读取EEPROM:在setup函数中,首先从EEPROM读取存储的
值。
如果EEPROM中没有有效数据(255表示未写入数据),则使用默认
值。
4.在loop中执行任务:在loop函数中,你可以执行其他任务。
这个例子中,
简单地模拟值的变化,将新值写入EEPROM,并在串口上打印当前值。
5.等待一段时间:为了能够观察到EEPROM的变化,使用delay(1000)在每次
循环中等待1秒。
这只是一个简单的示例,实际应用中,你可能会使用EEPROM来存储设备配置、历史数据、用户设置等信息。
请注意,EEPROM有限的写入寿命,过于频繁的写入可能会导致擦写次数用尽。
单片机EEPROM存储技术研究与应用分析
单片机EEPROM存储技术研究与应用分析单片机(微控制器)是一种集成了中央处理器、存储器与外围设备接口的集成电路芯片,常用于各种电子设备控制系统中。
EEPROM(Electrically Erasable Programmable Read-Only Memory)存储技术是一种可擦写的非易失性存储器技术,在单片机中广泛应用于存储重要的数据和程序。
本文将对单片机EEPROM存储技术进行研究与应用分析,探讨其原理、特点、应用场景以及未来的发展趋势。
一、EEPROM存储技术原理EEPROM存储技术是一种非易失性存储器技术,其存储单元可以通过电编程和电擦除来改变其状态。
与传统的ROM存储器不同,EEPROM存储器可以随时擦除和编程,使其适用于存储需要频繁更新或修改的数据和程序。
EEPROM存储单元由一对浮动门和控制电路组成。
当进行编程操作时,控制电路通过给浮动门施加高电压,从而使电荷注入存储单元。
而在擦除操作中,通过施加高电压,擦除浮动门上的电荷。
这种电编程和擦除的行为使得EEPROM存储器具有了可随时修改的特性。
二、EEPROM存储技术特点1. 非易失性存储:EEPROM存储器在断电或掉电情况下仍然能够保持数据和程序,不需要外部电源供电维持存储信息,确保了数据的长期保存。
2. 随机读写访问:与传统的EPROM存储器相比,EEPROM存储器可以进行随机读写访问,而不需要整体擦除。
3. 多次擦写操作:EEPROM存储器可以进行多次擦写操作,可达到10万次以上,具有较高的可靠性和耐久性。
4. 体积小巧:EEPROOM存储器芯片体积小巧,适合于嵌入式系统和各种小型电子设备中的应用。
5. 低功耗:EEPROM存储器对功耗要求较低,可以在电池供电的场景中广泛应用。
三、EEPROM存储技术应用场景1. 数据存储:EEPROM 存储技术可用于存储各种配置信息、参数设置、状态信息等,在控制系统、仪器仪表、工业自动化等领域得到广泛应用。
EEPROM原理与应用教程文件
HUAWEI TECHNOLOGIES Co., Ltd.
HUAWEI Confidential
Page 7
I2C接口EEPROM写操作
➢ 页写操作(Page Write):
◆以24LC08为例,它的存储结构为:4(block)×256×8(bit) ,Page Write Buffer大小为16bytes。那么Page Write时,在Control Byte指定Block选择 位“B1B0”,在Word Address指定8位地址“A7A6A5A4A3A2A1A0”。那样 “B1B0”和“A7A6A5A4”就指定了当前Page Write是哪个Page, “B1B0A7A6A5A40000”为当前Page的下界,“B1B0A7 A6A5A41111”为当 前Page的上界,而“A3A2A1A0”指定了从当前Page的哪个单元开始写。 内部地址循环计数器就从“A3A2A1A0”开始计数,每写1次加1,当计数 值为“1111”时,如果继续写的话,计数值就回到“0000”。
◆所以一次Page Write操作时,数据不要超过1个Page的长度,否则会造 成数据覆盖。
HUAWEI TECHNOLOGIES Co., Ltd.
HUAWEI Confidential
Page 8
I2C接口EEPROM读操作
➢ 当前地址读操作:
EEPROM原理与应用
ONE
KEEP VIEW
XX
XX
EEPROM原理与应用
XX
XX
XX
汇报人:XX
REPORTING
XX
CATALOGUE
目 录
• EEPROM基本概念与原理 • EEPROM类型及性能参数 • EEPROM在嵌入式系统中的应用 • EEPROM在通信协议中的应用 • EEPROM编程实践指导 • EEPROM市场前景及发展趋势
系统升级与维护
在嵌入式系统中,EEPROM可用于存储固件程序或升级文件。当系统需要升级或维护时 ,微控制器可以从EEPROM中读取相应的文件并执行相应的操作,从而实现对系统的更 新和维护。
PART 05
EEPROM编程实践指导
开发环境搭建与工具准备
硬件准备
01
选择合适的EEPROM芯片,并准备好相应的开发板和连接线。
注意EEPROM的工作电压、工 作温度和封装等参数,确保与 实际应用环境相匹配。
PART 03
EEPROM在嵌入式系统 中的应用
数据存储与读取功能实现
01
02
03
非易失性存储
EEPROM可在断电后保留 数据,适用于需要长期保 存的数据。
读写操作
EEPROM支持按字节或按 页进行读写操作,方便灵 活。
数据保持时间指的是在规定的温度范围内 ,EEPROM中的数据可以保持不丢失的最 长时间。
选型注意事项
根据应用需求选择合适的 EEPROM类型,例如串行或并
行EEPROM。
根据存储容量需求选择合适的 EEPROM芯片,确保足够的存
储空间。
考虑EEPROM的擦写次数和写 入速度等性能参数,以满足应 用要求。
EEPROM原理与应用
EEPROM原理与应用EEPROM的原理是通过在存储芯片中嵌入一些浮动栅(Floating Gate)和控制栅(Control Gate),来实现数据的存储和编程。
在编程过程中,通过加高压电压来改变浮动栅中的电荷量,从而改变存储单元的导通性质,从而实现数据的编程。
在擦除过程中,通过加高压电压来将浮动栅中的电荷释放,从而恢复存储单元的导通性质,实现数据的擦除。
1.系统配置存储:EEPROM可以用来存储计算机系统配置信息,如BIOS设置、CMOS数据等。
这些数据在断电后并不会丢失,可以起到保持计算机状态的作用。
2.数据存储:EEPROM可以用来存储大量的数据,如用户信息、日志数据、设置数据等。
由于EEPROM具有非易失性,这些数据在断电后也不会丢失。
3.车载电子系统:EEPROM可以用来存储车辆的参数信息、行驶数据等。
这些数据在车辆启动时可以快速读取,提高了系统的启动速度和响应速度。
4.智能卡:EEPROM可以用于存储智能卡中的用户信息、密码、交易记录等。
这些数据在刷卡时可以快速读取,提高了刷卡交易的效率。
除了以上几个主要应用之外,EEPROM还有许多其他领域的应用,如嵌入式系统、通信设备、消费电子产品等。
EEPROM相比于传统的EPROM(Erasable Programmable Read-Only Memory)和EPROM具有很多优势。
首先,EEPROM可以通过电子擦除和编程,无需使用紫外线来擦除和编程,操作更加简便。
其次,EEPROM具有非易失性,数据在断电后也不会丢失,可以有效保护数据的安全性。
此外,EEPROM还可以进行片内编程和片外编程,提供了更多的灵活性和选择性。
然而,EEPROM也存在一些不足之处。
首先,EEPROM的擦写速度较慢,通常需要几毫秒到几百毫秒的时间。
其次,EEPROM的耐久性有限,一般只能擦写几万次到几十万次。
此外,EEPROM的成本也较高。
这些因素限制了EEPROM的一些应用领域。
EEPROM原理与应用 PPT
I2C接口EEPROM读操作
➢ 任意读操作:
任意读操作序列见上图。 ◆Master要先送出写操作命令,并且送出地址,地址可以是任意的。 ◆Master要重新发出开始指令来结束写操作,然后再送出包含读命令的控制字节。 ◆Master接收1个字节后,无效Acknowledge bit,并送出Stop指令,结束当前读操
◆WP为写保护管脚,高电平使能。 ◆A[2:0]为地址输入管脚,用来作为EEPROM地址识别位,不同的EEPROM使
用的位数不同。 ◆VCC为电源管脚,不同的EEPROM有不同的电源电压要求。同时,不同的供
电电压支持的最高时钟频率也不同,电压越高支持的时钟频率也越高。I2C接 口EEPROM支持的最高时钟频率一般为100KHz~400KHz。 ◆GND为地管脚。
大家学习辛苦了,还是要坚持
继续保持安静
I2C接口EEPROM写操作
➢ 页写操作(Page Write):
◆以24LC08为例,它的存储结构为:4(block)×256×8(bit) ,Page Write Buffer大小为16bytes。那么Page Write时,在Control Byte指定Block选择 位“B1B0”,在Word Address指定8位地址“A7A6A5A4A3A2A1A0”。那样 “B1B0”和“A7A6A5A4”就指定了当前Page Write是哪个Page, “B1B0A7A6A5A40000”为当前Page的下界,“B1B0A7 A6A5A41111”为当 前Page的上界,而“A3A2A1A0”指定了从当前Page的哪个单元开始写。 内部地址循环计数器就从“A3A2A1A0”开始计数,每写1次加1,当计数 值为“1111”时,如果继续写的话,计数值就回到“0000”。
文件系统在EEPROM中的应用
文件系统在EEPROM中的应用
刘辉;蒋朝根
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2010(000)002
【摘要】介绍文件系统在Atmel公司的EEPROM芯片AT24C512中的应用.本文主要针对嵌入式Linux系统,通过编写EEPROM的块设备驱动程序,并格式化为相应的文件系统,从而达到按文件方式存取EEPROM的目的.
【总页数】3页(P20-21,25)
【作者】刘辉;蒋朝根
【作者单位】西南交通大学,信息科学与技术学院,成都,610031;西南交通大学,信息科学与技术学院,成都,610031
【正文语种】中文
【中图分类】TP3
【相关文献】
1.串行EEPROM FM4442的特性及其在智能ODN中的应用 [J], 梁侃
2.串行EEPROM中数据文件系统的建立 [J], 单传伟;张东来
3.串行EEPROM中数据文件系统的建立 [J], 单传伟;张东来
4.JFFS2文件系统在嵌入式Linux根文件系统中的应用研究 [J], 耿增涛;史永宏
5.串行EEPROM中的数据保护技术及应用中应注意的问题 [J], 姚锡林
因版权原因,仅展示原文概要,查看原文内容请购买。
EEPROM存储器和应用
; 待发送字节信息存放在寄存器A中,返回标志存放在Fhbit(位地址)中,0表示成功,1
; 表示失败(即从器件没有应答,发送失败)
PROC SentByte
SentByte:
NOP
MOV R7,#08H ; 初始化发送数据位长度R7
SentLOOP:
CLR SCL
NOP
; 根据CPU时钟频率可以插入0~2条空操作指令
; 发送及接收成功标志存放在0F0H位单元中
NOACK BIT 0F1H
; 读操作时主器件非应答标志位,1表示非应 答,0表示应答
1) 启动
;“启动” I2C总线串行EEPROM子程序
START:
CLR SCL
NOP
SETB SDA
NOP
SETB SCL
NOP
; 插入空操作指令的数目由CPU时钟频率决定。SCL 高电平时间最小
; 处于输出状态,且输出低电平,因此不能省去该指令
ReceLOOP:
CLR SCL
NOP
; 根据CPU时钟频率可以插入0~4条空操作指令
NOP
NOP
NOP
SETB SCL
MOV C,SDA ; 读数据位
RLC A
DJNZ R7,ReceLOOP
NOP
CLR SCL
; 当R7=0,则表示已接收到Acc.7位,将SCL置低电平,
M A ST ER
A D D R E SS
SD A L IN E S
BYTE
SL A V E
A D D R E SS (n) ST A R T A D D R E SS
*
S
ACK
ACK
ACK
DATAn
关于EEPROM的应用总结
关于EEPROM的应用总结关于EEPROM的应用总结当在程序运行的过程中你希望修改某个变量并且此变量的值在掉电以后不丢失,那么你就可以采用将变量数据写入EEPROM的方式来实现。
什么是EEPROM,即Electrically Erasable ProgrammableRead_Only Memory首先它是一种存储器,并且可以通过高电压来进行反复擦写的存储器。
具有掉电数据不丢失的特点。
比如常用的24C系列,93C系列的器件。
一般这种器件采用I2C的方式与单片机进行通讯,对于这种通讯方式及器件的应用另作总结。
这里主要总结一下,STC12C5204AD芯片内部包含的EEPROM的应用方法。
STC12C5201AD系列单片机内部集成了EEPROM是与程序空间分开的,利用ISP/IAP技术可将内部data flash当EEPROM,擦写10万次以上。
EEPROM可分为若干个扇区,每个扇区包含512字节。
使用时建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定要用满。
数据存储器的擦除操作是按扇区进行的。
在程序中可对EEPROM进行字节读写/字节编程/扇区擦除操作。
在工作电压Vcc偏低时,建议不要进行EEPROM/IAP操作。
以免发生数据错误。
应用的步骤1、声明与EEPROM相关的寄存器2、编写EEPROM初始化函数3、编写字节擦除函数4、编写字节编程函数5、编写字节读取函数6、在需要读取EEPROM字节内容时直接调用字节读取函数即可7、在需要进行写EEPROM字节时,先调用字节擦除函数,将字节内容擦除成FFH后,在调用字节编程函数,将数据写入到EEPROM的地址单元中。
与EEPROM应用相关的寄存器符号描述地位地址及符号复位值址IAP_DATA ISP/IAP flash dataregisterC2H11111111BIAP_AD DRH ISP/IAP flashaddress highC3H00000000BIAP_AD DRL ISP/IAP flashaddress lowC4HIAP_CMDISP/IAP flashcommand registerC5HMS1MSIAP_TRIGISP/IAP flashcommand triggerC6HxxxxxxxxxBIAP_CO NTR ISP/IAP controlregisterC7HIAPENSWBS SWRSTCMD_FAILWT2WT1WT0000X000BPCON Power control87H SOMDSMOD0LVDFPOFGF1GFPDIDL00110000B1、IAP_DATA:ISP/IAP数据寄存器ISP/IAP操作时的数据寄存器。
E2PROM的原理以及应用
EEPROM的原理以及应用一、常用串行EEPROM的简介1) 引脚描述SCL:串行时钟SDA:串行数据A2~0:设备地址、页地址WP:写禁止VCC:电源供电GND:地2) 内存管理以Atmel公司的2线EEPROM为例,从A T24C01~A T24C16,其内存架构分别由16page*8byte、32page*8byte、32page*16byte、64page*16byte、128page*16byte组成。
寻址字节需要7~11bit的数据字。
AT24C32和A T24C64分别由128page*32byte、256page*32byte组成。
系统提供了2个字节的寻址数据字。
3) 器件操作时钟和数据传输:SDA引脚正常状态下由外部器件拉高。
SDA上的数据只有在SCL 为低的时间段才能进行改变,在SCL为高时SDA数据的更改会表现为如下所述的一个开始条件或者一个结束条件。
开始条件:SCL为高,SDA由高变为低是一个开始条件,开始命令优先于其他所有的命令。
结束条件:SCL为高,SDA由低变为高是一个结束条件。
在一个读序列之后的结束命令,会将EEPROM置于一个待机电源模式。
响应:所有的地址和数据字都是以8bit字,串行的传入或者传出EEPROM。
在第九个时钟周期,EEPROM发出一个0来作为收到一个字的响应信号。
Twr:一个写序列的有效结束条件到一个内部的写周期结束。
注:页写的自加计数是低5位自加,高位不变,以保证在当前页。
页写到当前页的最后边界时,会计数到最开始到位置。
如果MCU发给EEPROM的数据超过了32个时,会发生卷边,覆盖掉前面的数据。
注:上次读、写操作的地址加1。
只要芯片不掉电,就会暂存在芯片中。
注意:连续读时每读完1字节后主机要发应答给主机,但在最后1字节后(即停止信号前)主机不发应答。
二、相关其他存储器非易失性记忆体像EPROM, EEPROM和FLASH 能在断电后仍保存资料.但由于所有这些记忆体均起源自唯读存贮器(ROM) 技术, 所以您不难想象得到它们都有不易写入的缺点.确切的来说,这些缺点包括写入缓慢,有限写入次数,写入时需要特大功耗等等.美国Ramtron公司铁电存贮器(FRAM)的核心技术是铁电晶体材料.这一特殊材料使得铁电存贮产品同时拥有随机存取记忆体(RAM) 和非易失性存贮产品的特性.铁电晶体材料的工作原理是: 当我们把电场加载到铁电晶体材料上,晶阵中的中心原子会沿着电场方向运动,到达稳定状态.晶阵中的每个自由浮动的中心原子只有两个稳定状态.一个我们拿来记忆逻辑中的0,另一个记忆1.中心原子能在常温,没有电场的情况下停留在此状态达一百年以上.铁电记忆体不需要定时刷新,能在断电情况下保存数据.三、EEPROM应用中出现问题以及处理的办法在实际应用过程中,发现一些问题,整理如下,希望能够对各位有所帮助。
关于EEPROM的应用总结
关于EEPROM的应用总结EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种非易失性存储器,与传统的ROM相比,EEPROM具有可擦写操作的能力,允许从存储器中擦除已有的信息,并在需要时重新编程新的数据。
EEPROM的应用非常广泛,主要集中在以下几个方面:1.嵌入式系统EEPROM在嵌入式系统中发挥了重要作用。
嵌入式系统通常需要存储一些参数、控制字或调整值。
EEPROM提供了一种可编程的存储解决方案,可以存储和更新这些信息。
例如,智能手机、数码相机、家电设备等嵌入式系统中的参数设置、用户配置和设备状态可以使用EEPROM存储。
2.电子设备校准和校验在许多电子设备中,EEPROM用于存储校准参数,以确保设备的精准性和可靠性。
例如,传感器、计量设备和测试设备经常要求进行校正以提高准确性。
EEPROM可以存储这些校准系数值,以便在需要时进行校准和修正。
3.网络和通信设备EEPROM在网络设备中广泛应用。
例如,以太网交换机和路由器中经常使用EEPROM存储引导配置、MAC地址和其他网络参数。
这些参数可以在电源断电后进行保存,以便在设备重新启动后恢复。
4.汽车电子EEPROM在汽车电子中扮演着至关重要的角色。
汽车的各种控制单元需要保存与车辆性能和操作相关的参数和配置。
例如,发动机控制单元(ECU)存储着发动机性能和排放控制相关的校准参数。
其他控制单元,如仪表盘、音频和通信系统,也使用EEPROM存储信息。
5.消费电子产品EEPROM广泛应用于各种消费电子产品中。
例如,电视机、音响系统、游戏机、智能手表等常常使用EEPROM存储用户首选项、设置参数和设备状态信息。
这使得用户在断电或设备重启后可以保留他们的个人配置和偏好。
6.传感器和测量设备传感器和测量设备通常需要对数据进行校准和校验。
EEPROM被广泛用于存储这些校准参数。
例如,温度传感器、湿度传感器、压力传感器等常常使用EEPROM来存储校准系数,以确保测量结果的准确性。
EEPROM的应用
导读:1.EEPROM巧妙应用之单片机章程2.基于I2C串行通信的EEPROM在电视中的设计应用3.EEPROM的保护措施在MAXQ环境中1.EEPROM巧妙应用之单片机章程引言全球各单片机生产厂商在MCS-51内核基础上,派生了大量的51内核系列单片机,极大地丰富了MCS-51的种群,致使MCS-51单片机是目前国内应用最广泛的一种单片机型.其中STC公司推出了STC89系列单片机,增加了大量新功能,提高了51的性能,是MCS-51家族中的佼佼者.早期的单片机控制系统,采用单片机加片外EEPROM配合,来存储一些需要预置的重要参数,并在数码管上显示出来.由于单片机控制的整流器要求实时性很强,而早期EEPROM的写周期在10 ms左右,因此运行参数的预置是在整流器待机的情况下进行的.而很多情况下需要在运行的同时记录数据,如用单片机控制的12脉波汽车电泳整流器要求在运行的同时实时记录重要数据,而且在掉电时不丢失.由于在12脉波整流器中运行的单片机程序,其周期必须小于1.67ms(交流电网的1个周期是20 ms,除以12就是l_67 ms),这就要求实时记录的时间在1ms以下甚至更短(考虑到程序的执行时间).经查阅资料发现,目前很多EEPROM达不到这个要求[1],即使时间最短的AT89S8252单片机片内.EEP-ROM的写周期也是2.5 ms.本文通过对EEPROM的巧妙应用,实现了整流器在线记录数据的功能.1 寻找符合要求的单片机设备使用的是Atmel公司的AT89C52(40DIP封装)单片机和EEPROM芯片2817A.要想在不改变原设备电路板的情况下完成要求的功能,就只能在兼容的MCS-51系列单片机中想办法.AT89S8252片内含有2 KB的EEPROM,经编程测试发现,它虽然能实时记录数据并且断电不丢失,但是在向片内EEPROM中记录1个数据时,能引起输出电压和电流的波动,不能满足实际运行的需要.其原因是AT89S8252单片机片内EEPROM的写周期为2.5 ms,超过了1.67 ms的程序的执行周期,从而影响了程序的正常运行.所以执行周期是解决问题的关键.STC89C51RC/RD+系列单片机片内含有EEPROM(Data Flash),读1个字节/编程1个字节/擦除1个扇区(512字节)的时间分别为10/μs/60μs/10 ms.编程1个字节的时间为60μs,远小于AT89S8252片内EEPROM 2.5 ms的编程时间,这为解决问题提供了思路.2问题的解决单片机STC89C55RD+(40DIP封装),其引脚、功能完全与AT89C52兼容,与MCS-51程序也兼容,片内含有20KB的Flash程序存储器,16KB的EEPROM数据存储器.把原用于AT89C52中的程序写到STC89C255RD+中,放到原设备上运行,可长期稳定地运行.经修改的在整流器中运行的单片机程序,实时记录一些数据到STC289C55RD+的EEPROM中,整流器可正常运行,但不能执行扇区擦除操作.执行扇区擦除操作将严重影响整流器的正常运行,引起输出电压和电流的很大波动.执行扇区擦除操作时,从示波器来看整流器的输出间断了20 ms,电压电流显示很大的波动.用示波器捕捉到了EEPROM写时的波形,输出波形暂停了20 ms,1个周波电压,电压波形如图1所示,不执行扇区擦除操作时的波形如图2所示.从图中可以看出,问题得到了很好的解决.究其原因,这与EEPROM的特点有关.STC89C5lRC/RD+系列单片机片内的EEPROM,与普通的EEPROM不同.普通的EEPROM有字节读/写功能,不需要擦除,在字节写的时候自动擦除.而STC89C51RC/RD+系列单片机片内的EEPROM,具有Flash的特性,只能在擦除了扇区后进行字节写,写过的字节中不能重复写,只有待扇区擦除后才能重新写,而且没有字节擦除功能,只能扇区擦除.3 EEPROM(Data FIash)的巧妙应用基于以上EEPROM(Data Flash)不易擦除的特点,可以写后先不擦除.利用EEPROM(Data Flash)容易写、时间短(字节写只有60 μs)的特点,可以充分利用其写的功能.根据汽车电泳整流器的特点:每泳1辆汽车,整流器的输出电流就从0逐渐上升到最大电流,然后又逐渐回到0.从电流的变化可以准确地识别出电泳过的车的数量.每识别出1辆车,就在EEPROM(Data Flash)的1个字节中(起始地址为0000H)写入#01H(也可以是其他数,但不能为#OFFH),然后地址自动加1,等待识别出下一辆车.这样就通过EEPROM(Data Flash)字节地址的方式,间接记录了汽车电泳整流器电泳过的车辆总数,并可在数码管上显示出来.16 KB的EEPROM(Data Flash)可记录16 384辆车.待将计满时,可按擦除按钮擦除EEP-ROM(Data Flash)中的所有扇区,再重新计数.如按每10分钟电泳1辆车,1天工作16小时,可连续记录16 384/60/10×16)=170天.此种方法也可用于对电泳整流器连续工作时间的累计,如每10分钟记录1个数据,可连续记录16 384/(60/10)=2 730小时.整流器停机断电后,每次开机给单片机上电时,在初始化程序中,首先从地址#0000H读片内EEPROM的数据,如果数据不为#OFFH,地址自动加1,再读下一个字节,直到所读数据为#OFFH为止.此时EEPROM的地址指针数据,即为前面累加的电泳车辆数(或累计电泳工作时间),可在数码管上显示出来.整流器工作后,按前述结语结合上产的实际情况,在不改变原设备电路板的情况下,通过使用MCS-51系列兼容单片机STC89C55RD+,巧妙利用其片内EEPROM,实现了在整流器运行的同时记录数据的功能,切掉点情况下不丢失数据.这种方法有效地提高了原设备的功能,给用户的使用到来了极大的方便,并且通过实验验证了此方法是可行的.2.基于I2C串行通信的EEPROM在电视中的设计应用1 前言近年来,数字化电视技术迅猛发展,特别是遥控系统的面市,各厂商在电视机中加人微处理器(MCU),各种人工智能化彩电完全替代了老式电视手动(机械式)控制和记忆方式.随着电视专用MCU功能日益强大,用户使用的功能日趋丰富,所需存储的数据和刷新速度不断提高,先后涌现出各种型号和规格的存储器.目前,电视机中应用最为广泛的是E2PROM.因为E2PROM保存着大量与电视机工作状态密切相关的数据,其可靠性就遥控电视而言至关重要,视为第二核心器件.E2PROM与第一核心器件 (MCU)保持通信,并存储电视机的工作信息.有时由于存储数据的丢失造成重大损失,甚至导致数据无法修复.因此,在电视系统中,对于系统数据和用户数据的存储一般采用电可擦除存储器E2PROM.E2PROM具有操作简便、数据存储时间长、存储温度范围广、可擦写次数多等优点.以ATMEL公司推出的 AT24CXX系列为代表的串口通信E2PROM,以其质量可靠、接口简单等优点,逐渐成为电视产品设计中E2PROM的首选器件.2 AT24CXX系列简介与并行通信存储器相比,串行通信存储器以其占用很少的资源和I/O总线、体积小等优点而应用广泛.典型的串行通信E2PROM AT24CXX是I2C总线串行器件,具有工作电源宽(1.8~5.5 V),抗干扰能力强f输入引脚内置施密特触发器滤波抑制噪声),功耗低(写状态时最大工作电流3 mA),高可靠性(写次数100万次,数据保存100年),支持在线编程等特点.图1给出AT24CXX的内部结构框图,SDA引脚可实现双向串行数据传输,在SCL引脚输入时钟信号的上升沿将数据送入E2PROM,并在时钟的下降沿将数据读出.根据存储器空间地址的大小,AT24CXX分为C02/2K、C04/4K、C08(A)/8K、C16/16K等多种版本,各版本器件除存储空间不同外,其内部性能基本一致,用户可根据实际使用的条件合理选择相应器件.A2、A1和A0引脚为AT24CXX的硬件连接的器件地址输入引脚.一条总线上最多可挂接8个AT24C02或4个AT24C04或2个AT24C08(A)或1个AT24C16.另外,AT24CXX系列器件具有用于硬件数据写保护功能引脚.当该引脚接低电平时,允许器件正常读/写操作;当该引脚接高电平时,器件启动写保护功能.各版本器件的写保护功能说明及存储结构如表1所示.3 AT24CXX在彩电中的设计及应用虽然AT24CXX外围引脚和元件数很少,接口电路简单,但在实际CRT彩电应用中,由于电视机内存在高压跳火等干扰信号,E2PROM会出现一些"怪"现象,导致电视机工作异常.以下给出导致电视机异常工作的主要现象.3.1 非人为因素改变E2PROM部分数据这种现象表现为电视机的工作状态在某次开机后工作异常.如果在发现异常后无任何处理,将在一段时间内保持异常状态.最常见现象如系统关键数据 (行、场数据)的突变,这种现象一般是由开机时显像管打火或其他原因导致I2C总线数据线工作异常产生的误操作.出现这种现象时,如果在工厂菜单或用户菜单里根据标准数据调整这些突变的数据,则可以纠正解决;如果这些突变的数据无法调整,则必须采取软件复位、E2PROM赋初始值等方法解决.从硬件上预防这种现象的方法大多是在I2C总线的SDA、SCL数据线靠近E2PROM引脚处,与地线间加稳压二极管,从而起到保护总线端口的作用,如图2中的VD1、VD2.根据长期产品跟踪的结果表明,采用此方法E2PROM数据出错率小于3‰.但是此方法只能减小寄存器数据出错率,而不能从根本上消除数据出错,但一般也不会导致E2PROM相应数据区域物理损坏.这种方法的优点是简单易行,几乎不占用器件资源.目前最科学的方法是利用E2PROM的写保护功能,AT24C08A的第7引脚是数据通信写保护引脚WP(低电平有效),将其与MCU处理器 I/O接口连接,如图3所示.在E2PROM写操作期间,MCU处理器I/O接口输出低电平,E2PROM允许I2C总线写入数据,而在其他操作过程中,该I/O接口输出高电平,E2PROM不允许I2C总线写入数据.此方法成本低(省去两个稳压二极管),出错率更低,但需软件支持.根据统计,使用 E2FROM写保护功能,数据出错率小于1‰.如果同时使用上述这两种方法,E2PROM数据出错率则更低,效果更佳.3.2 E2PROM部分区域物理损坏常温下,短期内不会产生E2PROM部分区域物理损坏的现象.由于E2PROM在常温下的可擦写100万次.但在高温下,E2PROM的可擦写数大大降低.如果高温下频繁对E2PROM进行擦写操作,短期内易导致E2PROM部分区域物理损坏.其表现为特定数据无法正常存储,即使使用烧录器强制烧录也不能恢复.判定E2PROM部分区域物理损坏的方法:用烧录器将E2PROM中每个地址分别置0和1状态,可检查有无区域物理损坏.确认是 E2PROM损坏,则必须更换新的E2PROM才能排除电视机的故障.若软件处理不当则引起这种现象.要防止这种情况发生必须从软件着手,从而避免对特定区域频繁操作.典型实例是某高清CRT彩电AFT频率自动跟踪系统及其他一些判别系统的软件设计.以AFT频率自动跟踪系统为例,当环境工作温度及电源电压变化后,高频调谐器会有一定的频率点漂移.软件设计时,频率点偏移后,软件程序应即时记录下新的频率点偏移电压值并将其数值存储到E2PROM指定地址中.高温下,由于相关器件的参数发生变化,频点会随温度升高不断漂移,使E2PROM数据刷新异常频繁,从而导致电视机在高温负荷试验中出现E2PROM 物理损坏.在查明原因后,应对该软件进行修改,将实时存储频点数据方式改为频率跟踪掉电存储方式,即只在电视机关机掉电的情况下记录该数据,这样可减少 E2PROM数据刷新次数,从而解决上述问题.4 结语E2PROM作为一种通用存储器件,在设计时往往容易忽视一些对其细节方面的考虑,其中一些问题在设计试制阶段被发现并解决,还有一些问题是要在量产乃至售后一段时间后才暴露出来.因此,完整的现代电子产品系统,更多的是需要依靠软硬件相互配合开发,才能使产品的可靠性到达最佳状态.3.EEPROM的保护措施在MAXQ环境中介绍在嵌入式微控制器应用中,通常都要用到非易失性存储器.无论是掉电时维持需要保存的设置,还是存储公司的重要记录,可靠的非易失性存储器都是现代微控制器领域的一个基本单元.非易失性存储常常采用外部串行存储器实现.多年以来,该领域用到了数十亿颗类似存储器件,它们的可靠性得到了的广泛认可.目前,存储器可以做到几百字节到1兆字节甚至更大的容量,在每一个需要保持设置的设备中,都能找到这样一个紧凑、廉价的器件.包括EEPROM、闪存和旋转式存储器在内,所有类型的非易失性存储器都面临一个共同的问题:写周期被中断时,数据会丢失.一旦在写周期执行过程中掉电,那么即使再恢复电源,也很难修复损坏的数据. 本文提出了一种基于事务的提交-回退机制,用于保护一个外部串行EEPROM存储器件的内容.这些措施同样适用于大多数MAXQ微控制器的内置EEPROM.可以下载本应用的代码文件(ZIP,20.5kb).I2C EEPROM的特点串行存储器件有多种接口,但最常用的接口是I2C接口.这种总线接口有很多优点:高度标准化的接口;控制器和存储器之间只需两条线;而且具有灵活的时序要求,可以由软件驱动.一个I2C主机可以驱动很多I2C从机,从而最大程度减少了主机的引脚数.在所有EEPROM器件中,写周期都要比读周期长的多.因为在写周期过程中,电荷需要借助隧道效应并通过绝缘层进行转移,而这个过程很费时间.虽然增加电压可以加快这个过程,但是过高的电压会导致绝缘层的介质击穿,从而损坏器件.典型的EEPROM器件写周期持续10毫秒左右;而读周期通常需要几百个纳秒.为了显着缩短写周期的时间,许多I2C EEPROM器件采用页面模式.该模式允许将多个字节传送到缓存中,然后将数据一次性写入存储区.I2C存储器件的典型页面尺寸为32字节.因此,可以在一个写周期内向EEPROM填入32个字节.这一点非常重要,因为串行EEPROM器件都具有特定的耐久度:即每个页面所能承受的写周期次数上限.典型的写周期次数从10,000到1,000,000次.然而,即使存储器件能够承受1百万次写周期,软件也会很快将其损耗殆尽.软件每秒仅执行100次写周期,那么不到3个小时就会耗尽器件的写周期次数.考虑到这些基本的EEPROM特性,设计者为一个嵌入式处理器设计可靠的非易失存储系统时,需切记以下几点:不要在同一页面上反复执行写操作.尤其是不要将某个页面设置成写入任何其它页面时都要更新的"目录".如果在写周期过程中电源被中断,必须提供以下机制:(1) 检测被中断的写操作;(2) 完成被中断的操作;(3) 或者将事件回退至写操作之前的状态.必须通过某些数据校验机制(校验和、CRC或消息摘要)来保证数据的完整性.设计目标虽然上面提到的EEPROM问题可通过多种非易失文件系统加以解决,但这样的文件机制对于小型嵌入式微控制器来说负担过重.很多文件系统需要更多的RAM,远远超出了小型微控制器所能提供的容量,而且对于多数应用,也不需要一个完整的文件系统.考虑到这一点,下面列出了EEPROM数据保护机制的设计目标:精简:保护机制用于存储校验数据的空间不应超过EEPROM的10%,它应该只需要少量的计算开销.块大小:被保护的块大小,应该和EEPROM的写操作页面大小一样.由于EEPROM器件的页面大小通常是2的偶数次幂,因此与每个块保留1或2个字节的做法相比,相同的尺寸大小更便于软件编码.耐久性:每个保护周期不要对同一页面进行写操作.可靠性:每次掉电情况下,数据都应是可恢复的.这里提到的保护机制有6个接口函数:读、写、提交、回退、检查和清理.读函数接收一个块编号和一个指向32字节缓存的指针.如果缓存地址和块编号处于有效范围内,程序就会将指定的块数据读入缓存,并校验数据的有效性.它会返回如下状态:有效读(valid read)、无效读(invalid read)、无效缓存地址(invalid buffer address)、无效页面编号(invalid page number)或保护失败(protectiON failure).写函数接收一个块编号和一个指向填好数据的32字节缓存的指针.如果缓存地址和块编号处于有效范围内,程序就会将数据写入非易失性缓存,并标记缓存状态以准备提交.提交和回退函数,是可以在写操作之后执行的互补型操作.提交函数将最近被写入的缓存数据复制到对应的存储区最终位置,并为下一个待写入的数据块准备好缓存结构.回退函数实际上就是一个"取消"操作.它消除最近一次写操作产生的效果,并为下一个写操作准备好缓存子系统. 检查函数读取存储器件的每个数据块,并检查存储数据的有效性.该函数还检查缓存子系统,以确保没有未执行的写操作.任何无效块或未执行的写操作都会使检查函数返回一个错误状态.清理函数修复一个数据损坏的EEPROM.实际上,它将试图找出发生的错误,并采取相应的解决措施.关于这些函数的更多细节,参见下面的操作详解.图1. EEPROM存储器的结构.存储器被划分为3个区域:主存储区,包含实际用户数据;校验存储区,包含主存储区每1页的CRC;缓存,包含存储临时写入数据的四个缓存.EEPROM结构参考上面图1给出的EEPROM结构.EEPROM包含三个主要区域:主存储区:EEPROM的最大区域用于存储用户数据.在一个16kB器件内,包括512页、每页32字节的存储空间.在这样的器件中,开始的473个页面专门用来存储数据.校验存储区:EEPROM的第二个部分,用于校验主存储区每个页面的数据.校验存储区的每1页都包含15个16位的CRC值.每1页的最后1个CRC用于校验本页数据.校验存储区占用31页(从473到503页).缓存:EEPROM的最后部分,包含由8个页面构成的4个写缓存.每个缓存包含4个域:数据域,它包含32字节数据,执行下一个提交命令时,数据将被写入主存储区;地址域,它表示缓存数据要写入的页面地址;状态域,它表示缓存的状态(包括可用(available)、占用(occupied)和终止(expired)状态);16位CRC域,用来校验整个写缓存.缓存结构见图1所示.这种EEPROM结构可以实现主要的设计目标.首先,由于主存储区每1页数据的校验结果都存储在另一个位置,所以页面的所有位都用于存储用户数据.其次,由于主存储区的每1页都通过校验存储区的特定字来校验,因此校验存储区不会有单点错误,并且也不会在每个写周期中都去更新整个校验存储区的同一页面.最后,使用4个写缓存分散了写周期带来的损耗.操作详解对于一个不带保护功能的EEPROM,具体操作非常简单.一个读周期简单地将字节从所选择的地址传送给主机;一个写周期将字节从主机写入EEPROM,并等待操作完成(大多数器件需要几个毫秒的时间).然而,在一个提供保护的EEPROM环境下,读和写操作就比较复杂了.在以下各节中,对每个操作进行了分解,以便了解函数被调用时到底是如何操作的.读操作图2. 读操作的流程图读操作这个最简单的接口函数,也是相当复杂的.图2给出了操作流程:检查页面地址和缓存地址,以检验它们的有效性.如果地址无效,则就此结束操作,函数返回一个无效缓存地址或无效页面编号错误代码.将所选页面读入缓存.计算校验页面的地址,并将相应的校验页面读入暂存区.计算校验页面的CRC.如果校验页面的数据无效,则返回一个保护失败错误代码.计算数据缓存的CRC,并将其与暂存区中对应读取页面的CRC进行比较.如果CRC匹配,则程序返回有效读代码;如果CRC不匹配,则程序返回无效读代码.无论结果怎样,实际读取的数据都保存在返回缓存中,以供调用读操作的程序使用.写操作图3. 写操作的流程图如上所述,写操作并不是真正将数据写入主存储区.实际上,写操作是将数据写入4个缓存之一.在这种方式下,主存储区内原先的数据将一直保持到整个有效写操作流程完成后为止.图3的流程说明了以下几点:检查页面地址和缓存地址,以检验其有效性.如果地址无效,操作在这里结束,函数返回一个无效缓存地址或无效页面编号错误代码.读取每个写缓存的状态域.如果任何缓存处于占用状态,则操作失败并返回写过程(write sequence)错误代码.4个写缓存之一应处于终止状态.如果是这样,激活下一个缓存.数据被复制到写缓存的数据域.页面地址被写入地址域.计算CRC校验结果并将其写入CRC域.将状态改为占用.将前一个缓存置为可用状态(即更新原来的终止状态).需要注意,此时对新写的页面进行读操作,将返回页面原来的数值.只有等提交操作完成后,才会返回新值.提交操作图4. 提交操作的流程提交函数不需要参数.它的工作就是如实地将数据从写缓存传送到主存储区,然后将写缓存标记为终止状态.提交函数的操作流程如图4所示:读取每个写缓存的状态域.应该只有1个缓存标记为占用状态.否则,函数在此结束,并返回一个写过程错误代码.对被占用的缓存进行CRC校验.如果不匹配,则返回一个数据损坏错误代码.提取页面地址,并将数据写入主存储区的指定页面.计算缓存的数据部分的CRC.该值被保存在一个临时寄存器中.找到对应所选主存储区页面的校验页面,并读取该校验页面的内容.用前面计算的CRC更新校验页面,为校验页面计算新的CRC.将校验页面数据重新写回校验存储区.将写缓存更新为终止状态.回退操作图5. 回退操作的流程图如图5所示,回退函数是最简单的操作之一.由于主存储区只有在完成一个提交操作后才更新数据,而不是在一个写操作之后更新的,所以回退操作只需将写缓存置为无效状态即可.读取每个写缓存的状态域.应该只有一个缓存被标记为占用.否则,函数在此结束,并返回一个写过程错误代码.将所选的写缓存状态域置为终止.检查操作图6. 检查操作的流程图在任何上电情况下,都需要调用检查函数以确保EEPROM可以接受数据.检查函数检验存储系统的可用性,并报告任何发现的错误.该函数的检查操作如图6所示:读取每个写缓存.确认只有一个缓存不是可用状态.如果只有一个缓存含有未定义的状态代码,则返回一个写操作中断(interrupted write)错误代码.如果所有缓存均包含未定义的状态代码,则返回EEPROM未初始化(uninitialized EEPROM)错误代码.如果仅有一个缓存包含占用状态代码,计算此缓存的CRC.如果CRC不匹配,则返回一个写操作中断错误代码.检查校验存储区的每一个页面.如果任何页面没有通过CRC校验,则返回保护失败错误代码.最后,检查主存储区的每一页,并与存储的各页CRC进行对比.如果有1页未通过CRC校验,则返回一个提交中断(interrupted commit)错误代码.清理操作图7. 清理操作的流程清理函数解决EEPROM系统存在的任何问题.在清理操作退出时,无论EEPROM子系统先前是何种状态,都应该可以继续使用了.所有未提交的写操作将被回退,并且完成失败的提交操作.图7演示了清理操作是如何工作的:如果检查操作返回一个EEPROM未初始化的错误代码,则初始化EEPROM.清除所有数据页面,并且初始化所有校验页面.除最后一个写缓存被初始化为终止状态外,清除其它所有写缓存并置为可用状态.。
STM32模拟EEPROM的使用和优化
保存数据是 16 位的,后面 16 位是该数据的虚拟地址,注意:1 个数据有唯 1 个虚拟地址,地址必须为:0~0xfffe 范围内(每页将按 4 字节分块,1 块保存 1 个 16 位数据)。下面继续说明 16 位虚拟地址的作用。
Figure 3 显示了数据更新的过程: 1. 写数据 假设保存的数据虚拟地址是 0X7777,那么程序写数据是从当前有效页页首地址开始查询虚 拟地址位置为 0XFFFF 的空间,如果是 0XFFFF 那么该位置可以保存数据;如果不是,那 么继续找下 1 个位置,如果本页无 0XFFFF 的空间那么表示本页已满,那么将本页【有效 数据】复制到另外 1 页继续保存数据。 当两次保存同一虚拟地址的数据时如右图所示:从上到下,第 2 个虚拟地址是 0X7777 对应 的数据 1245 才是有效的。清楚了这点,那么读数据要怎么处理基本就明白了。 2. 读数据 读数据时是从有效页的末尾地址开始检测是否是有效数据,如果是那么立即返回,程序是通过虚拟地址判断有 效数据的,第 1 个匹配的虚拟地址的数据才是有效的 3. 页满时处理数据 说到这里,看到不少使用例子程序不成功的问题,那么就请注意下面了,他们的错误估计是下面的原因造成的。 当 1 页写满时其实里面有很多无效数据,你只需要将【有效数据】复制到另外 1 页就成。如何复制有效数据呢? 我想很多人估计忽略了 【#define NumbOfVar ((uint8_t)0x03) /* Variables' number */】,NumbOfVar 就是你程 序中实际要保存的数据量,这个必须与实际保持一致,不能多也不能少,这个如果不一致,那么在换页时将出 错,没换页之前倒是没问题的,原因在于:程序在换页时将根据 NumbOfVar 的值复制有效数据的个数,如果比 实际少,那么换页时将丢失数据,如果比实际多那么将出现旧数据覆盖最新数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
( c o l fI f r t n S in e 8 S h o n o ma i ce c F c n l g o o e h o o y,S u h s io o g Un v r i o t we t a t n ie st J y,(b n d l 0 1 ' e g u 6 0 3 ,Ch n ) ia
ga r mm e orEE[R(M nd f r a td i o t ore p ndig fl y t m :t r f r df ) a o m te nt hec r s o n ie s s e he e o e,EEPR (M s a c s e h o h fls ) i c e s d t r ug i . e
关 键 词 :E R ) ;AT2 C 1 ;L n x EP (M 4 5 2 iu ;文 件 系统
中 图分 类 号 :TP 3
文献 标 识 码 :A
App a i fFi s em n EEPROM l t i c on o Sy t l e i
Li u ,Ja g Ch o e uH i in a g n
在 读 写 EE R(M 前 , 要 一 个 开 始 标 志 和 一 个 8位 P ) 需
的 设 备 地 址 去 寻址 。其 设 备 地 址 格 式 如 下 :
AT2 C 1 4 5 2来 创 建 文 件 系 统 , 然 也 适 用 于 其 他 同 类
产品。
M SB
IS B
提 供 一 个结 束标 志 , 而是 存 处 理 器 得 到 应 答 信 号后 继 续 写
入 数 据 , 到 写 完小 于等 于一 页 的 数 据 。字节 写 和页 写 的 直 操 作 如 图 2和 图 3所 示 。
1 1 封 装 及 引脚 介绍 .
AT 4 5 2 有 多 种 封 装 : S 2C 1 TS OP、 DI S C、 B P P、 OI d —
凑 、4 KB存 储 量 等 特 点 , 以在 2线 总 线 上 并 接 多 片 6 可 芷片 , 用 于 具 有 较 大 容 量 重 要 数 据 存 储 要 求 的 嵌 入 式 : 适
系统。
AT2 C 1 4 5 供 字 节 写 和 1 8字 节 页 写 功 能 。字 节 2提 2 写 与 页 写操 作 主要 Ⅸ别 在 于 : 者 不 需 要 每 写 入 一字 节就 后
封装 小 得 到 广 泛 应 用 。本 文 主 要 针 对 两 线 E P ) E R(M
W P: 写保 护 。低 电平 写 于 许 , 电平 写 禁 止 。 亡 高
VC 电 源 。 GND: 。 NC: 空 。 C: 地 悬
1 2 芯 片 操 作 简 介 .
( )设 备 寻 址 ( e i d rs ig 1 d vc a de sn ) e
ห้องสมุดไป่ตู้
1 A 20 1 T 4 5 2简 介 Ⅲ
其 中 , 后 一位 为 读 写 操 作 位 , 最 】表 示 读 操 作 , 0表 示
AT 4 ;1 2 (5 2是 At l 司 生 产 的 串 行 电 可 擦 的 可 编 me 公 写操作 。 ( )写 操 作 2
程存 储 器 。它 采用 8引 脚 封 装 , 有 可 掉 电记 忆 、 构 紧 具 结
Key wor ds:EEPR(M ;A T2 2;Ii x;fl yse ) 4(51 nu ie s t m
S I: 行 时钟 。 C 串
引 言
在 嵌 入 式 系 统 巾 , E ROM 凭 借 使 用 简 单 、 能 可 EP 性
靠 、 格 低 廉 的 特 点而 J 应 用 丁 小 量 而 又 重要 的数 据 存 价 泛 储 领 域 。 目前 , 人 式 产 品 层 m 不 穷 , 用 繁 多 , 应 的 嵌 应 相 E P E ROM 随 之 … 现 。其 中 , 线 E t ) 冈 其 引 脚 少 、 两 E M R(
文 件 系统 在 E P E ROM 中 的 应 用
刘 辉 。蒋 朝 根
( 南 交通 大 学 信 息 科 学 与 技术 学 院 ,成都 6 0 3 ) 10 I
摘 要 :介 绍 文 件 系统 在 At l 司 的 E P ) 芯 片 AT2 C 1 中 的 应 用 。 本 文 主 要 针 对 嵌 入 式 I n x 系 统 , 过 编 写 me 公 E R(M 4 52 Au 通 E P ) 的 块 设 备 驱 动 程 序 , 格 式 化 为 相 应 的 文 件 系 统 , 而 达 到 按 文 件 方 式 存 取 E R ) 的 目的 。 E R(M 并 从 EP (M
DA A T
事
] 口l l 田皿
田圈
田皿
口
4C51 2 图 1 AT2
量重 差量
重
雪 重
引 脚 图
GA 、 AP等 。 其 引 脚 顺 序 如 图 1 2S
所乐 。 A O
VCC W P
S CL S DA
器件 爱
地 址≥
第1 字 个
地 址
第个 2字
地址
A0 A】 设 备 地 址 。当 串行 总 线 , : 上 挂 接 多 片 EE R(M 芯 片 时 , 这 G D P ) 用 N 个 地 址 来 区分 各 芯 片 。 S DA: 行 数 据 。 串