EEPROM的应用

合集下载

2024年EEPROM市场规模分析

2024年EEPROM市场规模分析

2024年EEPROM市场规模分析1. 引言EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种非易失性存储器,具有电可擦除和可编程的特性。

EEPROM广泛应用于电子设备、汽车电子、通信设备等行业,因其存储容量大、读写速度快、可重写性强等特点受到市场的广泛关注。

本文将从全球和地区两个维度,对EEPROM市场规模进行分析。

2. 全球2024年EEPROM市场规模分析根据市场研究公司的数据显示,全球EEPROM市场具有稳定增长的趋势。

在过去几年中,EEPROM市场规模年均增速为5%以上。

主要原因包括电子设备普及以及对高性能和大容量存储需求的增加。

全球EEPROM市场根据产品类型划分,主要包括串行EEPROM和并行EEPROM。

其中,串行EEPROM市场占据主导地位,其市场规模预计将更进一步扩大。

串行EEPROM由于其小尺寸、低功耗,以及灵活性高等特点,被广泛用于便携式电子设备和无线通信设备等领域。

此外,全球主要制造商着眼于研发更高性能的EEPROM产品。

新的EEPROM产品不仅可以提供更大的容量,还有更高的读写速度和更低的功耗,以满足不断增长的市场需求。

因此,EEPROM市场的竞争将更加激烈。

3. 地区2024年EEPROM市场规模分析3.1 北美地区 EEPROM市场在北美地区具有较高的市场规模。

北美地区是全球电子设备和半导体行业的重要市场之一,这导致EEPROM的需求保持较高。

另外,北美地区的技术创新和新产品的引入也推动了EEPROM市场的发展。

3.2 欧洲地区欧洲地区的EEPROM市场同样显示出稳定增长的趋势。

欧洲的汽车电子行业发展迅猛,这进一步增加了对EEPROM的需求。

此外,欧洲地区的智能家居和物联网市场也对EEPROM市场的发展起到积极推动作用。

3.3 亚太地区亚太地区是全球EEPROM市场的最大消费地区之一。

该地区拥有庞大的电子产品制造业,因此对EEPROM的需求非常高。

eeprom原理

eeprom原理

eeprom原理
EEPROM原理及其应用
EEPROM是一种可擦写可编程只读存储器,它是一种非易失性存储器,可以在不需要电源的情况下保持数据。

EEPROM的工作原理是通过在存储器单元中存储电荷来存储数据。

当需要读取数据时,电荷被读取并转换为数字信号,然后传输到计算机或其他设备。

EEPROM的应用非常广泛,它可以用于存储各种类型的数据,包括程序代码、配置文件、用户设置等。

它还可以用于存储加密密钥和其他敏感信息,因为它可以在不需要电源的情况下保持数据,这使得它非常适合用于安全应用。

EEPROM的另一个重要应用是在微控制器和其他嵌入式系统中。

它可以用于存储程序代码和数据,这使得它非常适合用于小型设备和嵌入式系统。

由于EEPROM可以在不需要电源的情况下保持数据,因此它可以用于存储关键数据,例如系统配置和用户设置。

EEPROM的优点是它可以被多次擦写和编程,这使得它非常适合用于开发和测试。

它还可以在不需要电源的情况下保持数据,这使得它非常适合用于移动设备和其他需要长时间存储数据的应用。

EEPROM是一种非常有用的存储器,它可以用于各种应用,包括安全应用、嵌入式系统和移动设备。

它的优点是它可以被多次擦写和编程,并且可以在不需要电源的情况下保持数据。

因此,它是一种
非常有用的存储器,可以帮助开发人员和制造商开发出更好的产品。

EEPROM简介演示

EEPROM简介演示
智能家居中心
EEPROM在智能家居中心设备中用于存储场景设置、设备联动规则、语音助手配置等。 这些设置可以实现智能家居设备的智能化、自动化和互联互通。
医疗器械
医疗设备配置
EEPROM在医疗设备中用于存储设备配置参数,如输液泵流速设置、呼吸机潮气量设定、心电监护仪导联配置等。这 些配置参数对于设备的正常运行和治疗效果至关重要。
并行EEPROM使用并行接口 进行数据传输,它提供了更
高的读取和写入速度。
SPI(Serial Peripheral Interface)EEPROM是一种 使用SPI接口进行通信的串行 EEPROM,它具有高速和简
单的特点。
I2C(Inter-Integrated Circuit)EEPROM是一种使 用I2C接口进行通信的串行 EEPROM,它适用于多设备
EEPROM市场发展趋势
技术创新
随着技术的不断发展,EEPROM 在存储容量、读写速度、耐久性 等方面将持续提升,满足更多应
用场景的需求。
环保趋势
环保成为全球电子产业的重要议 题,EEPROM厂商将更加注重产 品的环保性能,推广无铅、低功
耗等环保型EEPROM产品。
市场拓展
随着物联网、智能家居、汽车电 子等新兴市场的崛起,EEPROM 将在更多领域得到应用,市场空
通信和长距离传输。
02
EEPROM的特点和优势
可重复编程
灵活性高
EEPROM(Electrically Erasable Programmable Read-Only Memory)可被多次编程和擦除, 使得其在存储器应用中具有很高的灵 活性。
无需外部编程器
与一次性可编程(OTP)存储器相比 ,EEPROM无需外部编程器进行编程 操作,进一步降低了开发和生产成本 。

STC系列单片机片内EEPROM的应用

STC系列单片机片内EEPROM的应用

(2)向STC12C5A60S2单片机片内EEPROM中某单元写入数据 (假设系统时钟频率为20MHz):
MOV IAP_DATA,#DATA;先将要写入旳数据送至IAP_DATA寄 存器
MOV IAP_ADDRH,#BYTE_ADDRH;送单元地址旳高8位 MOV IAP_ADDRL,#BYTE_ADDRL;送单元地址旳低8位 MOV IAP_CONTR,#10000010B;设置等待时间且允许对
MS1 MS0 • 操作任务旳选择
0
0
待机模式,不操作
0
1
对EEPROM进行读操作
1
0
对EEPROM进行写操作
1
1 对EEPROM进行擦除操作
2.控制寄存器IAP_CONTR
WT2 WT1 WT0 读(2个 时钟)
1 1 1 2个时钟
写(55us) 55个时钟
扇区擦除( 21ms) 21012个时钟
MOV IAP_ADDRH,DPH;送地址旳高8位
MOV IAP_TRIG,#5AH;开启写操作
MOV IAP_TRIG ,#0A5H
LCALL DELAY_55μs ;延时等待
RET
BYTE_READ:
;读
MOV IAP_CONTR,#82H
MOV IAP_CMD,#01H ;读EEPROM命令
• EEPROM分为若干个扇区,每个扇区旳大小为512B,数据 存储器旳擦除操作是按扇区进行旳,能够擦写旳次数在10 万次以上。
• 使用时,同一次修改旳数据应该存储于同一种扇区,不是 同一次修改旳数据最佳存储在不同旳扇区,不一定要存满 。内部EEPROM旳扇区地址如表10-1所示。
起始地址 结束地址 起始地址 结束地址

二线制串行EEPROM应用

二线制串行EEPROM应用
设计 应用
APPLICATION DESIGN
二线制串行EEPROM应用
滕云 大连东显电子有限公司
摘 要: 本文介绍了AT24C01系列二线制串行EEPROM的使用方法及串行EEPROM与单片机的软件接口,简要说明其在电机控制中 保存控制参数的应用
关键词: 串行EEPROM,二线制总线,参数保存
nop
setb SCL
nop Biblioteka nop nop nop
mov c, SDA
clr
SCL
pop b
ret
读一个字节:shin: setb SDA
push b
mov b, #8
; release SDA for ACK ; enforce SCL low and tAA ; ; raise ACK clock ; enforce SCL high ; ; ; ; get ACK bit ; drop ACK clock
2 二线制总线
二线制串行EEPROM通常为8脚器件,其管脚如下: SCL:串行时钟端。这个信号用于对输入和输出数据 的同步,写入串行EEPROM的数据用其上升沿同步,输出 数据用其下降沿同步。 SDA:串行数据(/地址)输入/输出端。这是串行双向 数据输入/输出线,这个引脚是漏极开路驱动,可以与任何 数目的其他漏极开路或集电极开路的器件"线或"连接。 WP:写保护。这个引脚用于硬件数据保护功能,当 其接地时,可以对整个存储器进行正常的读/写操作;当
图1 串行总线状态定义
① 总线非忙状态(A段) 数据线SDA和时钟线SCL都保持高电平。 ② 启动数据传输(B段) 当时钟线(SCL)为高电平状态时,数据线(SDA) 由高电平变为低电平的下降沿被认为是“启动”信号。只 有出现“启动”信号以后,其他的命令才有效。 ③ 停止数据传输(C段) 当时钟线(SCL)为高电平状态时,数据线(SDA) 由低电平变为高电平的上升沿被认为是“停止”信号。随

2024年EEPROM市场前景分析

2024年EEPROM市场前景分析

2024年EEPROM市场前景分析简介EEPROM(Electrically Erasable Programmable Read-Only Memory),又称电可擦除可编程只读存储器,是一种非易失性存储器。

它能在断电的情况下保持数据,并且具有擦除和编程的能力。

EEPROM广泛应用于各种电子设备中,例如智能手机、电视、计算机、汽车和工业设备等。

本文将对EEPROM市场的前景进行分析。

市场趋势1. 增长势头EEPROM市场目前正处于稳定的增长阶段。

随着智能设备市场的不断扩大,对于存储器需求的增加使EEPROM得到了广泛的应用。

特别是随着物联网技术的发展,对于数据的存储和传输变得越来越重要,这进一步推动了EEPROM市场的增长。

2. 技术进步EEPROM技术不断地进行改进和创新,新一代的EEPROM产品具有更高的存储容量、更快的读写速度和更低的功耗。

这些技术进步提供了更好的用户体验,并促进了EEPROM市场的发展。

3. 应用领域扩展除了传统的消费电子产品,EEPROM在其他行业中也得到了广泛应用。

例如,汽车行业对于存储器的需求越来越高,用于车载设备和车辆控制系统。

工业设备、医疗设备和安全系统等领域也对EEPROM有着持续的需求增长。

这些新的应用领域将进一步推动EEPROM市场的发展。

市场挑战1. 价格竞争EEPROM市场面临着激烈的价格竞争。

随着市场竞争的加剧,EEPROM产品的价格持续下降,这对厂商的利润率构成了压力。

价格竞争可能导致市场份额的争夺和产品降价,影响市场的整体发展。

2. 替代技术随着存储器技术的不断发展,一些新的存储器技术逐渐成熟并进入市场。

例如,闪存和非挥发性存储器等技术提供了更高的存储密度和更低的成本。

这些替代技术可能对EEPROM市场构成一定的威胁。

3. 环境法规电子产品的环保性成为越来越重要的问题。

许多国家和地区制定了相关法规来限制电子产品中有害物质的使用。

例如,欧盟的RoHS指令限制电子产品中铅、汞等有害物质的含量。

2024年EEPROM市场分析现状

2024年EEPROM市场分析现状

2024年EEPROM市场分析现状1. 引言EEPROM(Electrically Erasable Programmable Read-Only Memory)作为一种非易失性存储设备,在现代电子技术中扮演着重要的角色。

本文旨在对EEPROM市场的现状进行分析,并讨论EEPROM在各个行业中的应用和未来发展趋势。

2. EEPROM市场概述EEPROM市场在过去的几年中呈现出稳定增长的趋势。

电子产品的快速发展、存储需求的增加以及技术的不断更新是EEPROM市场增长的主要推动力。

此外,智能手机、电子游戏机、汽车电子等行业对EEPROM的需求也在不断扩大,为市场提供了更多的机遇。

3. EEPROM应用领域分析3.1 智能手机随着智能手机的普及,对存储容量和性能的要求不断提高。

EEPROM作为存储设备的一种重要选择,被广泛应用于智能手机中,用于存储操作系统、应用程序和用户数据。

未来,随着智能手机市场的持续增长,EEPROM在该领域的需求将进一步增加。

3.2 汽车电子现代汽车中的电子装置数量快速增加,这包括了车辆控制单元、信息娱乐系统、导航系统等。

EEPROM在汽车电子中的应用越来越广泛,主要用于存储车辆的配置数据和用户偏好设置。

汽车电子市场的增长为EEPROM市场提供了新的发展机遇。

3.3 工业自动化工业自动化领域对高可靠性、耐久性和高温性能的存储设备需求量大。

EEPROM 凭借其非易失性和工作温度范围宽广的特点,被广泛应用于工业自动化设备中,如PLC(Programmable Logic Controller)和工业控制器。

随着工业自动化市场的发展,EEPROM市场也将有更多的增长潜力。

4. EEPROM市场竞争态势目前,EEPROM市场存在着多个主要竞争厂商。

其中,以Intel、STMicroelectronics、Microchip等为代表的大型半导体公司在EEPROM领域处于领先地位。

这些公司凭借其丰富的经验和技术实力,不断推出新的产品和解决方案,保持了市场的竞争优势。

eeprom名词解释

eeprom名词解释

eeprom名词解释
EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种可擦
除和可编程的只读存储器,属于非易失性存储器的一种。

它能够在通电和非通电的情况下保持存储的数据,即使在断电的情况下也能保留数据。

EEPROM通过电子
电荷来存储数据,具有读取和写入数据的能力。

EEPROM在计算机和电子设备中广泛应用。

它常用于储存系统的配置信息、
固件升级程序、加密算法、数据存储等需要长期保存且需要经常更新的数据。

相比于传统的ROM芯片,EEPROM的重要特点在于它的可编程和可擦除性。

用户可以通过特定的编程器将数据写入EEPROM,并且可以根据需要随时擦除和重写其中
的数据。

EEPROM的擦除和写入操作是通过在芯片上施加高电压和地电压来实现的。

当需要擦除数据时,EEPROM会根据数据位的0和1在特定的位置存储电子电荷。

在写入新数据时,EEPROM会自动将原有的电子电荷擦除,并将新的电荷存储到
相关位置。

由于EEPROM具有可擦除和可编程的特性,它在电子设备中的应用非常广泛。

它不仅被用于存储固件和程序代码,还可以用于存储关键性数据,如设备ID、序
列号、密钥和密码等。

这些数据的长期保存和保密性对于设备的正常运行和安全性至关重要。

总结来说,EEPROM是一种可擦除和可编程的只读存储器,用于长期保存数
据和程序代码。

由于其高度可靠性和可编程性,EEPROM成为了各类电子设备中
不可或缺的一部分。

eeprom应用实例

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---AT24Cxx应用介绍

EEPROM---AT24Cxx应用介绍

EEPROM---AT24Cxx应⽤介绍结论:1、读写AT24CXX芯⽚,根据容量有多种⽅式:⼀、容量为AT24C01~AT24C16,⾸先发送设备地址(8位地址),再发送数据地址(8位地址),再发送或者接受数据。

⼆、AT24C32/AT24C64~AT24C512,⾸先发送设备地址(8位地址),再发送⾼位数据地址,再发送地位数据地址,再发送或者接受数据。

三、容量AT24C1024的芯⽚,是把容量⼀和容量⼆的⽅法结合,设备地址中要⽤⼀位作为数据地址位,存储地址长度是17位。

2、它的设备地址根据容量不同有区别: 1)、AT24C01~AT24C16:这⼀类⼜分为两类,分别为AT24C01/AT24C02和AT24C04~AT24C16;他们的设备地址为⾼7位,低1位⽤来作为读写标⽰位,1为读,0为写。

*1*、AT24C01/AT24C02。

AT24C01/AT24C02的A0、A1、A2引脚作为7位设备地址的低三位,⾼4为固定为1010B,低三位A0、A1、A2确定了AT24CXX的设备地址,所以⼀根I2C线上最⼤可以接8个AT24CXX,地址为1010000B~1010111B。

*2*、AT24C04~AT24C16的 A0、A1、A2只使⽤⼀部分,不⽤的悬空或者接地(数据⼿册中写的是悬空不接)。

举例:AT24C04只⽤A2、A1引脚作为设备地址,另外⼀位A0不⽤悬空,发送地址中对应的这位(A0)⽤来写⼊页寻址的页⾯号,⼀根I2C线上最⼤可以接4个,地址为101000xB~101011xB 2)、AT24C32/AT24C64:和AT24C01/AT24C02⼀样,区别是,发送数据地址变成16位。

注意事项:对AT24C32来说,WP置⾼,则只有四分之⼀受保护,即0x0C00-0x0FFF。

也就是说保护区为1KBytes。

对于低地址的四分之三,则不保护。

所以,如果数据较多时,可以有选择地存储。

STC单片机内部EEPROM的应用

STC单片机内部EEPROM的应用

ISP_IAP_enable()?/* 打开IAP 功能*/
for(i=0?i<len?i++)
{
/* 写一个字节*/
ISP_ADDRH=(unsigned char)(in_addr >> 8)?
ISP_TRIG=0xb9?/* 触发ISP_IAP 命令字节2 */
_nop_()?
}
/*
字节读
*/
unsigned char byte_read(unsigned int byte_addr)
{
ISP_ADDRH=(unsigned char)(byte_addr>>8)? /* 地址赋值*/
stc单片机EEPROM读写(一)
EEPROM 操作函数:
#define RdCommand 0x01
#define PrgCommand 0x02
#define EraseCommand 0x03
#define Error 1
#define Ok 0
#define WaitTime 0x01
#define PerSector 512
unsigned char xdata Ttotal[512]?
/*
打开ISP,IAP 功能
*/
void ISP_IAP_enable(void)
D7 D6 D5 D4 D3 D2 D1 D0
ISPEN SWBS SWRST - - WT2 WT1 WT0
启动到ISP 区或用户程序区,这在“STC 单片机自动下载”一节,亦有所应用。
如:
ISP_CONTR=0x60? 则可以实现从用户应用程序区软件复位到ISP 程序区开始运行

E2PROM的原理以及应用

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应用

SPI总线SPI总线(Serial Peripheral Interface串行外围设备接口总线)是三线式的串行总线,是由摩托罗拉公司所研发,使用三线进行数据传输,分别是SCK时钟引脚,SI数据输入引脚和SO数据输出引脚,另外还有CS片选引脚可以对同一总线上的芯片进行选通使用,SPI总线已被广泛使用在EEPROM、单片机和各种设备中。

常用串行EEPROM中的25XX系列芯片就是使用兼容SPI总线结构,采用先进COMS技术,体积小,是一种理想的低功耗非易失性存储器,广泛使用在各种家电、通讯、交通或工业设备中,通常是用于保存设备或个人的相关设置数据。

ATMEL公司生产的25系列的EEPROM存储容量从1K位到256K位。

其它一些芯片也会用到SPI总线,如常用的CPU监控芯片X5043、X5045就带有512字节的SPI界面EEPROM,常用于单片机系统的看门狗电路,同时也可以提供小数据量的存储,给电路设计带来很多的方便。

此文将用X5045为例讲述SPI的编程应用和X5045的一些其它功能。

X5045由Xicor公司出品,电压范围有2.7V到5.5V和4.5V到5.5V二个版本,擦写次数可达一百万次,最高时钟频率可达3.3MHz。

图一是X5045的PID封装实物图。

图1图2图二是X5045的引脚定义图。

CS/WDI是片选和看门狗复位输入,当CS为高时SO引脚变为高阻态,这时可以允许其它器件共用SPI总线,同时芯片也处于休眠状态,当CS为低时芯片被选中,并从休眠状态中唤醒,可以进行读写操作。

SO是串行数据输出,在读芯片时数据从此脚输出。

WP是写保护引脚,当WP为低时芯片写保护,不能对芯片写操作,但其它功能不受影响。

Vss是电源地。

SI是串行数据输入,接收来自控制器的数据和地址。

SCK是串行时钟输入,RESET是复位输出,Vcc是电源。

在25芯片中还有一个HOLD引脚,此引脚的功能是保持输入脚,ATMEL公司生产25芯片的HOLD引脚是低电平有效。

EEPROM原理与应用

EEPROM原理与应用
2023-2026
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的应用总结关于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操作时的数据寄存器。

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.67 ms(交流电网的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.清除所有数据页面,并且初始化所有校验页面.除最后一个写缓存被初始化为终止状态外,清除其它所有写缓存并置为可用状态.。

关于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要点

EEPROM要点

EEPROM要点EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种可以通过电压信号来擦除和写入数据的存储器。

与传统的只读存储器(ROM)不同,EEPROM具有可编程和可擦写的特性,使其具有广泛的应用。

下面将介绍EEPROM的原理、特点、优势和应用。

一、EEPROM的原理:二、EEPROM的特点:1.可擦写性:EEPROM可以通过特定的操作擦除和写入数据,而无需进行物理更换。

2.电子存储:EEPROM使用电子发射现象进行数据存储,不需要机械运动,速度快。

3.非易失性:和闪存一样,EEPROM在断电情况下也能保持数据的存储,不会丢失数据。

4.高密度存储:由于采用电子存储,EEPROM具有较高的存储密度,可容纳大量数据。

5.低功耗:EEPROM在读取和写入数据时的功耗较低,适用于功耗要求较高的应用。

三、EEPROM的优势:1.可电擦写:与传统的ROM相比,EEPROM具有可编程和可擦写的特性,使得数据的更新和更改变得更加灵活和方便。

2.电子存储:EEPROM采用电子存储方式,不需要机械运动,速度更快,读取和写入更加高效。

3.非易失性:EEPROM在断电情况下也能保持数据的存储,不会丢失数据,适用于存储重要数据的应用场景。

4.易于集成:EEPROM可以与其他电子元件集成在一起,减小封装尺寸,方便安装和维护。

四、EEPROM的应用:1.计算机:EEPROM可以用于存储BIOS和CMOS数据,以及标志位和配置信息等。

2.电子设备:EEPROM可以储存设备的固件程序、配置信息和运行参数,如电视机、手机等。

3.汽车电子:EEPROM可用于存储车载控制系统的参数、故障码和车辆配置等信息。

4.工业控制:EEPROM可用于存储控制器的程序和参数,如PLC、机器人等。

5.通信设备:EEPROM可用于存储无线通信设备的配置信息和网络参数。

总结:EEPROM作为一种可编程和可擦写的存储器,具有易于更新、电子存储、非易失性、高密度存储和低功耗的优点,广泛应用于计算机、电子设备、汽车电子、工业控制和通信设备等领域。

EEPROM读写访问

EEPROM读写访问
eepromeeprom应用应用atmega16单片机的片内含有512字节的eeprom用户可以通过操作其控制寄存器实现对eeprom中各个存储器的访一与eepromeeprom有关的寄存器有关的寄存器eeprom地址寄存器eearheearleeprom地址寄存器用于指定某个eeprom单元的地址其格式为
EEPROM写使能。当EEPROM的 地址和数据准备好后,用户必须 设置EEWE为“1”,才能将数据 写入EEPROM中。在置EEWE为 “1”前,EEMWE必须置“1”, 否则写入操作无效。
位 位名 读/写 初始值 7 6 5
EEPROM读使能。此位用于对 EEPROM的数据读取,当EEAR中 设置了EEPROM的读取地址后, EERE的置“1”操作将使单元的数 据送至EEDR寄存器中,此时EERE 位自动清“0”。
1
1
(1)休眠状态 为进入休眠状态,MCUCR中的SE位被设为1,且须执 行一条SLEEP指令。系统发生的任何一种中断和复位将使 MCU恢复到正常模式。
(2)空闲模式 SM位必须清零,SLEEP指令使MCU进入空闲状态, 当系统发生外部中断、定时器/计数器溢出中断和看门狗复 位单片机时返回正常模式。 (3)掉电模式 此模式下,只有复位和外部中断可以使单片机恢复正 常模式。 (4)节电方式库函数 void sleep_enable(void) //允许低功耗模式 void sleep_disable(void) //禁止低功耗模式 void idle(void) //闲置模式 void powerdown(void) //掉电模式 void powersave(void) //休眠模式 在调用这些库函数之前必须将头文件#include <sleep.h> 加入到源程序文件中。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

导读: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.清除所有数据页面,并且初始化所有校验页面.除最后一个写缓存被初始化为终止状态外,清除其它所有写缓存并置为可用状态.。

相关文档
最新文档