EEPROM

合集下载

eeprom擦写原理

eeprom擦写原理

eeprom擦写原理EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种常见的非易失性存储器,它具有可擦写的特性,允许数据在不丢失的情况下被重写。

EEPROM的擦写原理是通过使用电场来改变存储单元的状态,从而实现数据的擦除和写入。

EEPROM的存储单元由一对互补的MOSFET(金属氧化物半导体场效应晶体管)构成,其中包含一个浮栅。

在正常操作时,浮栅上的电荷决定了存储单元的状态。

通过改变浮栅上的电荷量,可以实现数据的擦除和写入。

擦除操作是将存储单元的电荷量恢复到初始状态,以便写入新的数据。

擦除过程通常需要高电压,以产生足够的电场来清除浮栅上的电荷。

在擦除过程中,浮栅上的电荷会逐渐被电场击穿,从而导致电荷被释放。

擦除完成后,存储单元的状态被重置为逻辑“1”。

写入操作是将新的数据写入存储单元。

写入操作需要在特定的电压下,将电荷注入到浮栅中。

为了确保只有目标存储单元被写入,周围的存储单元会被屏蔽,以免受到误写的影响。

写入操作完成后,存储单元的状态被重置为新的数据。

EEPROM的擦写原理使得它成为一种重要的存储器,可以用于存储需要频繁更新的数据,如配置信息、用户数据等。

与传统的ROM (只读存储器)相比,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无需外部编程器进行编程 操作,进一步降低了开发和生产成本 。

什么是EEPROM?EEPROM 基础知识详解

什么是EEPROM?EEPROM 基础知识详解

什么是EEPROM?EEPROM 基础知识详解什么是EEPROM?EEPROM 基础知识详解什么是EEPROM?EEPROM 基础知识详解EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。

EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。

一般用在即插即用。

EEPROM(电可擦写可编程只读存储器)是可用户更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。

不像EPROM芯片,EEPROM不需从计算机中取出即可修改。

在一个EEPROM中,当计算机在使用的时候是可频繁地重编程的,EEPR OM的寿命是一个很重要的设计考虑参数。

一般用于即插即用(Plug & Play);常用在接口卡中,用来存放硬件设置数据;也常用在防止软件非法拷贝的"硬件锁"上面。

EEPROM-背景知识在微机的发展初期,BIOS都存放在ROM(Read Only Memory,只读存储器)中。

ROM内部的资料是在ROM的制造工序中,在工厂里用特殊的方法被烧录进去的,其中的内容只能读不能改,一旦烧录进去,用户只能验证写入的资料是否正确,不能再作任何修改。

如果发现资料有任何错误,则只有舍弃不用,重新订做一份。

RO M是在生产线上生产的,由于成本高,一般只用在大批量应用的场合。

由于ROM制造和升级的不便,后来人们发明了PROM(Programmable ROM,可编程ROM)。

最初从工厂中制作完成的PROM内部并没有资料,用户可以用专用的编程器将自己的资料写入,但是这种机会只有一次,一旦写入后也无法修改,若是出了错误,已写入的芯片只能报废。

PROM的特性和ROM相同,但是其成本比ROM高,而且写入资料的速度比ROM的量产速度要慢,一般只适用于少量需求的场合或是ROM量产前的验证。

eprom和eeprom的读写过程

eprom和eeprom的读写过程

eprom和eeprom的读写过程
EPROM(Erasable Programmable Read-Only Memory)和EEPROM(Electrically Erasable Programmable Read-Only Memory)都是一种非易失性存储器,可以用来存储数据并在需要时进行读取。

两者之间的主要区别在于擦除的方式不同。

1. EPROM的读写过程:
- 写入:EPROM使用特定的设备(EPROM编程器)将数据写入芯片。

设备通过一个特定的电压脉冲将数据编程到存储单元中,并将存储单元的电平状态改变从1变为0,以此来表示数据的存储。

- 读取:EPROM的读取是通过将特定地址的存储单元的电平状态转换为电压信号来完成的。

如果存储单元的电平为1,则读取的电压为低电平;如果存储单元的电平为0,则读取的电压为高电平。

2. EEPROM的读写过程:
- 写入:EEPROM的写入过程与EPROM相比更灵活。

可以通过特定的设备将数据写入EEPROM。

写入时,需要将要写入的地址和写入的数据发送给EEPROM,并将特定的命令信号发送给EEPROM,以启动写入操作。

写入操作完成后,EEPROM中相应地址的存储单元将保存写入的数据。

- 读取:EEPROM的读取过程与EPROM相似,通过将特定地址的存储单元的电平状态转换为电压信号来读取数据。

EEPROM的读取可以直接通过数据总线传输读取命令和地址,不需要额外的编程器。

需要注意的是,在实际操作中使用EPROM和EEPROM时,需要严格按照相关规范和设备说明进行操作,确保正确的读写过程,以免损坏芯片或丢失数据。

eeprom的写入时序

eeprom的写入时序

eeprom的写入时序EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种非易失性存储器,它可以被多次擦除和写入。

EEPROM的写入时序是指在进行数据写入时所需的操作步骤和时间顺序。

下面是关于EEPROM写入时序的文章:EEPROM的写入时序是指在对EEPROM进行数据写入时所需的操作步骤和时间顺序。

EEPROM是一种非易失性存储器,它可以被多次擦除和写入,因此在实际应用中,对EEPROM进行数据写入是非常常见的操作。

在进行EEPROM写入时,首先需要确定要写入的数据,然后将数据发送给EEPROM,接着进行写入操作。

在进行写入操作时,需要遵循一定的时序要求,以确保数据能够正确地被写入并保持稳定。

通常,EEPROM的写入时序包括以下几个步骤:1. 发送写入命令,首先需要向EEPROM发送写入命令,以告知EEPROM即将进行数据写入操作。

2. 发送地址,接着需要发送要写入数据的地址,以指定数据写入的位置。

3. 发送数据,一旦地址确定,就可以发送要写入的数据。

4. 写入确认,在数据发送完成后,需要发送写入确认命令,以告知EEPROM可以开始写入数据。

5. 写入时间,EEPROM需要一定的时间来完成数据写入操作,这个时间通常是毫秒级别的。

6. 写入完成确认,最后,需要发送写入完成确认命令,以告知系统数据写入已经完成。

在进行EEPROM写入时,以上步骤需要严格遵循,以确保数据能够正确地被写入并保持稳定。

同时,EEPROM的写入时序也受到EEPROM型号和制造商的影响,因此在实际应用中,需要根据具体的EEPROM型号和规格来确定相应的写入时序。

总之,EEPROM的写入时序是进行数据写入时所需的操作步骤和时间顺序,严格遵循写入时序是确保数据写入正确和稳定的关键。

对于工程师和开发人员来说,了解并掌握EEPROM的写入时序是非常重要的,可以帮助他们更好地进行EEPROM的数据写入操作。

eeprom的写入时序

eeprom的写入时序

eeprom的写入时序
EEPROM的写入时序是指在对EEPROM进行写入操作时所需遵循的时间顺序和时序要求。

EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种非易失性存储器,它可以被多次擦除和编程,因此在许多电子设备中被广泛使用。

在进行EEPROM的写入操作时,需要遵循一定的时序要求,以确保数据能够正确地被写入并保持稳定。

一般来说,EEPROM的写入时序包括以下几个关键步骤:
1. 地址输入,首先需要将要写入的数据的地址输入到EEPROM 中,以确定数据写入的位置。

2. 数据输入,接着需要将要写入的数据输入到EEPROM中,这些数据将被存储在指定的地址上。

3. 写入命令,在将地址和数据输入之后,需要发送写入命令给EEPROM,以启动写入操作。

4. 写入时间,EEPROM在接收到写入命令后需要一定的时间来
完成数据的写入操作,这个时间取决于EEPROM的规格和型号。

5. 写入确认,最后,需要进行写入确认的操作,以确保数据已经成功地被写入到EEPROM中。

在整个写入时序中,每个步骤都需要严格按照规定的时序要求来进行,以确保数据的准确性和稳定性。

此外,不同型号的EEPROM 可能有不同的写入时序要求,因此在实际应用中需要根据具体的规格手册来进行操作。

总之,EEPROM的写入时序是确保数据正确、稳定地被写入到EEPROM中的关键步骤,它对于电子设备的正常运行和数据的可靠存储起着至关重要的作用。

eeprom单元结构

eeprom单元结构EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种主要用于存储数据的电子器件。

它的存储过程是通过电流的方式来擦除和编程,相比于传统的ROM(Read-Only Memory),EEPROM具有可重写的特点,因此被广泛应用于各种电子设备中。

EEPROM的单元结构由位(Bit)和字节(Byte)组成。

在EEPROM 中,位是最小的存储单元,表示二进制的0或1。

而字节则是由8个位组成,可以存储一个字符或者一个整数。

每个EEPROM芯片都由多个单元组成,每个单元都有一个唯一的地址,通过这个地址可以定位到特定的存储单元。

在EEPROM中,单元的地址从0开始递增,可以分别读取和写入每个单元中存储的数据。

在使用EEPROM之前,需要先对其进行擦除操作。

擦除操作会将存储单元中的数据全部清空,使其恢复到初始状态,以便进行后续的编程操作。

在擦除完成后,可以对特定的单元进行编程,将所需的数据存储到相应的位置。

编程操作是通过向EEPROM芯片中写入电流来实现的。

编程时,需要指定一个地址,并将要存储的数据发送给芯片。

芯片会将数据写入到指定地址的存储单元中,从而完成编程操作。

读取操作则是相反的过程,通过指定地址,可以从EEPROM中读取相应的数据。

需要注意的是,EEPROM的写入操作通常比读取操作慢很多。

因为编程操作需要对存储单元进行改变,而读取操作只是简单地读取存储单元中的数据。

因此,在实际应用中,需要根据具体需求来选择合适的读取和编程速度。

总之,EEPROM的单元结构是由位和字节组成的,每个单元具有唯一的地址,可以进行读取和编程操作。

它是一种可重写的存储器,广泛应用于各种电子设备中。

在实际使用过程中,需要注意编程操作的速度和数据的读取。

通过合理使用EEPROM,可以实现数据的存储和读取,为电子设备的功能提供支持。

初始化eeprom参数

初始化eeprom参数
EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种可以通过电子方式擦除和编程的非易失性存储器。

初始化 EEPROM 参数通常涉及到以下几个步骤:
1. 选择 EEPROM 型号和规格:首先,你需要选择适合你的应用的EEPROM 型号和规格。

这包括确定存储容量、数据保持时间、工作电压范围等关键参数。

2. 确定存储内容:根据应用需求,确定 EEPROM 中需要存储的数据类型和格式。

这可能包括配置参数、设备标识、校准数据等。

3. 编写初始化程序:根据 EEPROM 的数据手册和技术规范,编写用于初始化 EEPROM 的程序。

这个程序需要能够向 EEPROM 中写入数据,并确保数据写入的一致性和正确性。

4. 测试和验证:在将程序部署到实际硬件之前,需要在开发或测试环境中对程序进行充分测试和验证。

确保 EEPROM 的初始化过程正确无误,并且存储的数据符合预期。

5. 安全性和可靠性考虑:在 EEPROM 初始化过程中,还需要考虑安全性和可靠性问题。

例如,防止意外擦除或写入错误数据,以及采取措施确保EEPROM 数据在设备生命周期内保持可靠性和一致性。

6. 文档记录:记录初始化 EEPROM 的详细过程和参数设置,以便于后续维护和故障排除。

请注意,具体的初始化过程可能会因不同的硬件设备和编程语言而有所不同。

在进行 EEPROM 初始化时,务必参考相关硬件的数据手册和技术规范,以
确保正确的操作和最佳的性能。

EEPROM原理知识详解

EEPROM原理知识详解EEPROM是Electrically Erasable Programmable Read-Only Memory 的缩写,即可擦除可编程只读存储器。

它是一种非易失性存储设备,可以在电源断开时保持数据内容不变。

EEPROM是一种用于存储数据的半导体存储设备,它可以被多次编程和擦除。

EEPROM原理知识如下:1.存储结构:2.数据读取:在数据读取时,传输栅允许电流通过,并将浮栅电容的电压提取到位线上,然后通过电路解码器将其转换为数字信号。

通过扫描操作从矩阵中读取指定地址的数据。

3.数据编程和擦除:在数据编程时,电子注入或去注入技术被用来改变浮栅电容中的电荷量。

对于电子注入,通过向传输栅施加一个较高的电压,电子将被注入浮栅中,从而改变其电荷量。

对于电子去注入,一个电压较高的信号被施加到传输栅,以将电子从浮栅中取出,从而改变其电荷量。

编程和擦除过程是通过在特定的时序下施加电压来实现的。

4.工作原理:EEPROM工作的时候,电压控制器将传输栅与浮栅电容分离,让传输栅允许电流通过。

在读取数据时,电压控制器连接传输栅和浮栅电容,以便将浮栅电容的电压提取到位线上。

在编程和擦除操作中,浮栅电容与传输栅被分离,电压控制器会将特定的电压序列施加到浮栅上,以改变电荷量。

通过施加适当的电压,数据可以从浮栅移动到传输栅,或者从传输栅移动到浮栅。

5.存储密度和速度:由于EEPROM的存储单元是矩阵结构,其存储密度相对较高,可以容纳大量的数据。

此外,EEPROM具有较快的速度,因为读取和编程擦除操作可以在不更改其他存储单元的情况下独立进行。

6.电源断电保护:总结: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操作时的数据寄存器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统中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 串行时钟。

一般在其上升沿将SDA上的数据写入存储器,而在下降沿从存储器读出数据并送往SDA。

⑷ WP:写保护。

此引脚接地时,允许写操作;与VCC相连时,所有写操作被禁止。

如果不连,该脚将在芯片内部下拉到地。

⑸ VCC:电源;GND:地;NC:悬空。

ⅱ)与处理器通信AT24C系列的接口特性:一般A0-A2、WP接VCC或GND,SCL、SDA接处理器的IIC接口相应管脚,即可实现处理器对EEPROM的操作。

ⅲ)设备地址(device address)对EEPROM读写数据前,需先发一个字节的device address以选择芯片进行读写。

其中首部四比特的“1010”为固定值;A0- A2用于对多个EEPROM进行区分,注意对AT24C不同型号,A0-A2可能用于指示片内物理地址,此时相应比特位值由访问地址决定;也可能为NC ,此时值置0;最后一比特为读写操作位,1表示读操作,0表示写操作。

器件地址格式见图2。

图2. EEPROM 器件地址格式ⅳ)写操作AT24C 系列的写操作有按字节写和按页写两种方式。

字节写时通常在向EEPROM 发送设备地址字并收到应答信号后,发送read address 选择待写数据的地址。

EEPROM 收到这个地址后返回一个ACK ,然后接收一字节数据,再返回一个ACK ,处理器收到此ACK 后发停止状态结束写。

页写时EEPROM 可一次连续写入整页数据。

其发地址过程与写字节时完全相同。

不同的是:当写完一个数据字节后,处理器不发停止状态,而是在应答信号后继续写入数据,每一个字节接收完毕后,EEPROM 都返回一个ACK ,一直到写完整页。

注意如果页写时写入数据超出该物理页边界,则超出数据将重新写入页首地址覆盖之前所写数据。

ⅴ)读操作读操作有当前地址读、随机读、多字节连续读三种方式。

其发地址过程与写操作相同,只把device address 的最低位改为读。

在当前地址读操作方式时无需发送read address ,每次只将当前地址所存数据读出,片内读地址始终保持自加,直到读完整个EEPROM 后又回到0地址。

而随机读要先写read address ,然后才能读。

多字节连续读操作既可以是当前地址读,也可以是随机地址读,每次处理器接收到一字节数据都返回一个ACK ,EEPROM 接收到此ACK 后会自动地址加1,接着输出下一个字节数据,直到处理器返回NO ACK 时,读过程结束。

表1. 各型号EEPROM 的参数1. AT24C 系列把地址空间物理分页,支持按页写模式,即在一次写操作中可连续写入一整页,由于每次写操作之后必须等待Write Cycle Time 之后才能继续对EEPROM 进行操作,所以EEPROM 型号 容量(bytes)页大小1 (bytes) 总页面数地址位(bits) A0-A2使用情况AT24C081k16648A2 used for device addressing andA0 A1 used for memory page addressing.2AT24C16 2k 16 128 8 No bit used for device address andA0 A1 A2 used for memory page addressing.AT24C32 4k 32 128 16 A0 A1 A2 used for device address . AT24C64 8k 32 256 16 A0 A1 A2 used for device address. AT24C128 16k 64 256 16 A0 A1 used for device address, A2 is NC. AT24C256 32k 64512 16 A0 A1 used for device address, A2 is NC. AT24C512 64k 128 512 16 A0 A1 used for device address, A2 is NC. AT24C1024 128k25651216A1 used for device address ,A0 A2 is NC.文件系统采用页写模式可大大提高写文件速度。

2. 对AT24C08,由于只用8bits的read address无法提供其容量为1024bytes的地址空间,所以使用device address中的A0 A1两位,提供210=1024bytes的寻址空间。

3.文件系统设计原理考虑到嵌入式系统资源的有限性和实时性要求,参考微机FAT文件系统的基本思想[3],作者设计出一个简单易行,实用行很强的嵌入式文件系统。

它采用二级树形目录组织,将整个EEPROM划分为三个部分,文件目录区;页面管理区;数据存储区。

(一)文件目录区这部分主要存储EEPROM内的文件信息,包括文件名、文件大小、修改时间、文件存储首页页地址四项。

文件信息结构定义如下:typedef struct{char FileName[13]; /*文件名:最大支持12位*/UINT8 FileDate[5]; /*生成日期:年月日时分*/UINT16 FirstPageAddr; /*首页地址*/UINT32 FileSize; /*文件大小*/}EEpromFileInfo; /*目录区文件信息格式*/(二)页面管理区图3.系统存储结构页面管理区以1-2bytes为1单元,单元总数与数据存储区物理页面总数相等,每个单元管理数据存储区的一个物理页,页面管理区单元的值指示着数据存储区相应物理页的使用状况:值为0表示数据区对应的物理页未被使用;为1表示数据区对应页为某文件的末页;为其他值则是文件下一页数据所在的物理页地址,所以可以把页面管理区理解为一个类链表结构,每一单元都指向文件下页存储位置。

注意单元的宽度(PageAddrWidth)为1或2由EEPROM 的总物理页数决定:当总物理页数大于256时,需2byte的单元宽度才能完全指示所有物理页。

(三)数据存储区数据存储区用于存储文件数据,它以页为单位划分,并与EEPROM的物理页完全重合,因此在操作文件时可以进行按页读写,极大的提高写文件速率。

综上所述,我们可以以读文件操作为例说明其基本原理(如图4所示):读文件时,先到文件目录区找到该文件,并按文件信息中的首页页地址读取文件数据,然后在页面管理区读取下页数据所在的物理页地址,继续文件数据的读写,如此反复进行,直到页面管理区单元的值为1则表示已读到文件末页。

图4. 文件系统读文件操作原理4.系统程序实现文件系统的程序实现包括两部分:底层的IIC读写驱动程序[4]和之上的文件系统函数。

(一)IIC读写驱动程序由于本系统兼容AT24C08-AT24C共八种EEPROM,它们的操作时序都不尽相同,有的型号read address只有1byte(如AT24C08),有的却是2bytes(如AT24C32),有的read address 不够编址空间,需借助device address中的A0-A2(如AT24C16)。

因此它们使用的IIC读写驱动也不能完全一样,在这里使用宏定义,首先定义EEPROM型号,再根据此型号定义EEPROM的各参数,例:#define AT24C1024 /*根据实际使用情况定义EEPROM型号*/ #ifdef AT24C1024#define TotalPhyPages 512 /*总物理页面数*/#define PageSize 256 /*页大小*/#define PageAddrWidth 2 /*页面管理区单元宽度:2bytes*/#define EEpromCapacity 131072 /*EEPROM容量大小*/#endif#ifdef AT24C1024A0=(UINT8)((EEpromAddr&0x10000)>>15);DeviceAddr=0xa0|A0; /*由读写地址EEpromAddr计算device address中的A0值*/ ReadAddr=(UINT16)(EEpromAddr&0xffff); /*计算ReadAddr*/MSB_flag=1; /*read address为2bytes:MSB+LSB*/#endif在得到变量DeviceAddr、ReadAddr、MSB_flag的值后很容易写出IIC读写程序。

(二)文件系统函数文件系统提供常用的文件操作函数[6]:格式化、文件的打开/关闭、读/写、新建/删除、文件的定位。

a)格式化:即给文件系统的初始化过程,只要将文件目录区和页面管理区全填0(标注未用)即可。

相关文档
最新文档