一种EEPROM的数据读/写方法与流程

文档序号:20770775发布日期:2020-05-19 20:16阅读:2462来源:国知局
一种EEPROM的数据读/写方法与流程

本发明涉及数据处理技术领域,特别涉及一种eeprom的数据读/写方法。



背景技术:

eeprom是指带电可擦可编程只读存储器,其可通过高于普通电压的作用来擦除和重编程,现有的eeprom的数据读写方法都是对于数据一次性的进行读写,期间是无法打断的,现有的eeprom读/写操作一般在主控芯片上电初始化或下电前进行,由于eeprom芯片本身特性,主控芯片向eeprom芯片一次性读/写大量数据时,会引起读/写时间过长的问题。



技术实现要素:

为了解决现有的eeprom的数据读写时需要耗费大量时间无法打断的问题,本发明提供一种不受时间和工况限制,可以按需随时读写的方法。

为了实现上述目的,本发明提供的技术方案是:一种eeprom的数据读/写方法,包括以下步骤:设定本次读/写操作所用时间;给定本次读/写操作的地址和数据剩余长度;判断数据剩余长度与固定读取长度或数据剩余长度与eeporm芯片当前页的剩余长度的大小;若数据剩余长度大于固定读取长度,则本次操作中可读的数据长度为固定读取长度,否则可读的数据长度为数据剩余长度;若数据剩余长度大于eeporm芯片当前页的剩余长度,则本次操作中可写的数据长度为eeporm芯片当前页的剩余长度,否则可写的数据长度为数据剩余长度;进行本次读/写操作。

在上述数据读/写方法中,当本次操作为写操作时,在给定本次读/写操作的地址和数据剩余长度之前需要判断该次写操作是否是第一次,若为第一次操作,则给定eeprom芯片写操作的首地址和待写入数据的总长度,否则需要判断上次写操作是否完成;若上次写操作没有完成,则继续重新判断是否是第一次进行写操作并计数,当计数达到阈值后终止写操作,若上次写操作已经完成,则继续接下来的步骤。

在上述数据读/写方法中,作为优选的技术方案,所述固定读取长度为eeporm芯片每页的数据长度。

进一步的,所述当前页的剩余长度为eeprom芯片当前页还可以储存的数据量。

作为优选的技术方案,每次读/写操作所用时间为1-5ms。

在上述技术方案中,当本次读/写操作结束后重复进行上述步骤直至数据剩余长度为0。

在上述技术方案的基础上,进一步的,当数据剩余长度为0时,所有标志和计数器复位。

本发明相对于现有技术的有益效果是:该方法通过将待读/写数据拆分成多个数据包,在固定的时间片内按顺序分批读/写,可以实现大量数据的实时交互,不受时间和工况限制,可以按需随时读/写,且连续读/写eeprom的过程中,不会打断其他代码连续运行。

附图说明

图1是写入数据至eeprom中的流程图;

图2是读取eeprom中数据的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明提供一种eeprom的数据读/写方法,该方法通过将待读/写数据拆分成多个数据包,在固定的时间片内按顺序分批读/写,可以实现大量数据的实时交互。下面对eeprom的数据的读取方法和写入方法做详细解释。

如图1所示,一种eeprom的数据写入方法,包括以下步骤:

s101:设定每次写入操作所需要的固定时间,该时间内完成一次数据写入步骤,一般该时间设定为1-5ms,在本实施例中,采用2ms,在此需要声明的是虽然本实施例中所规定的时间在1-5ms,但本发明的保护范围不局限于此,其他的时间也在本发明的保护范围内。

s102:判断该次写入操作是否是第一次,若为第一次操作,则给定eeprom芯片写操作的首地址a0和待写入数据的总长度l0,否则执行步骤s103;

s103:判断上一次写操作是否结束,若已结束,则执行步骤s104,否则记录一次错误次数,若错误次数超过一定的阈值,例如5次,则复位结束写操作,若错误次数没有超过阈值则重新回到步骤102;

s104:计算本次时间片内eeprom芯片写操作的地址a1和数据剩余长度l1,并执行步骤s105;

s105:判断待写入的数据长度是否为0,若数据剩余长度为0,则说明写操作全部完成,所有标志和计数器都清零;反之,则执行步骤s106;

s106:计算eeporm芯片当前页的剩余长度l2(即该页还可存储多少数据),并执行步骤s107;

s107:判断eeporm芯片当前页的剩余长度l2与数据剩余长度l1的大小,若eeprom芯片当前页剩余长度l2大于数据剩余长度l1,则执行步骤s108,反之,执行步骤s109;

s108:本次时间片内可写的数据长度为数据剩余长度l1,执行步骤s110;

s109:本次时间片内可写的数据长度为eeprom芯片当前页剩余长度l2,执行步骤s110;

s110:执行通用的eeprom芯片写操作,待写入操作完成后执行步骤s111;

s111:计算下个时间片内eeprom芯片写操作的地址a2,执行步骤s102。

该eeprom的数据写入方法通过将待写数据拆分成多个数据包,在固定的时间片内按顺序分批写入,可以实现大量数据的实时交互,不受时间和工况限制,可以按需随时写入,且连续写入eeprom的过程中,不会打断其他代码连续运行。

另外,本发明还提供一种eeprom的数据读取方法,具体包括以下步骤:

s201:设定每次读取操作所需要的固定时间,该时间内完成一次数据读取步骤,一般该时间设定为1-5ms,同样的在本实施例中,采用2ms,在此需要声明的是虽然本实施例中所规定的时间在1-5ms,但本发明的保护范围不局限于此,其他的时间也在本发明的保护范围内。

s202:给定本次时间片内eeprom芯片读操作的地址a3和数据剩余长度l3,并执行步骤s203;

s203:判断数据剩余长度l3与固定读取长度l4(该长度一般取eeprom芯片每页的数据长度)的大小,若数据剩余长度l3大于固定读取长度l4,则执行步骤s204,反之,执行步骤s205;

s204:本次时间片内可读的数据长度为固定读取长度l4,执行步骤s206;

s205:本次时间片内可读的数据长度为数据剩余长度l3,执行步骤s206;

s206:执行通用的eeprom芯片读操作,待本次读取数据操作完成后执行步骤s207;

s207:计算下个2ms内eeprom芯片读操作的地址a4,并执行步骤s208;

s208:判断数据剩余长度是否为0,若数据剩余长度为0,则结束,反之,执行步骤s202,下次执行步骤s202时,读取地址为a4,剩余的数据长度为l4-l3,以此类推重复上述的步骤直至将全部的数据读取完成,即剩余数据长度为0,则本次读取数据完成。

同样的,该eeprom的数据读取方法通过将待写数据拆分成多个数据包,在固定的时间片内按顺序分批读取,可以实现大量数据的实时交互,不受时间和工况限制,可以按需随时读取,且连续读取eeprom的过程中,不会打断其他代码连续运行。

以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1