CN115686362A - 一种智能电表的数据冻结方法 - Google Patents
一种智能电表的数据冻结方法 Download PDFInfo
- Publication number
- CN115686362A CN115686362A CN202211266212.5A CN202211266212A CN115686362A CN 115686362 A CN115686362 A CN 115686362A CN 202211266212 A CN202211266212 A CN 202211266212A CN 115686362 A CN115686362 A CN 115686362A
- Authority
- CN
- China
- Prior art keywords
- data
- address
- time information
- storage
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000008014 freezing Effects 0.000 title claims abstract description 18
- 238000007710 freezing Methods 0.000 title claims abstract description 18
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 208000032170 Congenital Abnormalities Diseases 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Read Only Memory (AREA)
Abstract
本发明涉及数据处理技术领域,具体涉及一种智能电表的数据冻结方法,包括基于未存储数据信息计算数据信息存储地址,基于未存储时间信息计算时间信息存储地址;判断所述未存储数据信息的数据长度是否大于所述数据信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储数据信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储数据信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储数据信息写入所述数据信息存储地址的当前页FLASH地址;所述未存储时间信息与所述为存储数据信息的存储方式相同,解决了现有的存储方法跨页的时候会存在数据不连续的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种智能电表的数据冻结方法。
背景技术
随着智能电表的大量使用,导致用户对其功能的要求越来越多,其中,数据的冻结存储是用户对其用电习惯分析的重要数据来源,当今智能电能表需要存储的数据量越来越大,存储灵活性要求越来越高,以及对于数据读取的效率要求也越来越高。传统的数据存储与读取方法已渐渐无法满足其性能要求,故现阶段,需提出一种更高效率的存储以及读取方法。
对于智能电表来说,现阶段要求的冻结有分钟冻结、小时冻结、日冻结、月冻结等,每种冻结数量也比较多,尤其是分钟冻结,按每15分钟冻结一次,冻结一年的数据量,则需要存储35040条。所以其对存储空间的要求比较大,EEPROM已经无法满足其要求,故一般采用FLASH地址芯片对其数据进行存储。
根据FLASH地址的特性,存在着一些先天性的缺陷,具体如下:
1、FLASH地址的每一bit数据都只能由1变0,不能由0变1,故当要对FLASH地址某地址进行写操作前,必须把该区域先擦除。
2、FLASH地址的擦除操作只能按页擦除,每页长度为4k,所以当要对某页写数据前,必须保证该页已经擦除过,且不能有重复性擦除操作的发生。
由于冻结数据需要同时存储多个点,比如以上所述的分钟冻结为35040条,所以为了保证数据量的完整性,需要很多页FLASH地址进行循环写操作,同时需要保证当数据存满后擦除首页时候,总的有效数据存储量不能小于35040,故实际存储量必须大于35040。
FLASH地址的单页长度为4k,而单条冻结数据的长度往往不是4096的公约数,按照之前常规的存储方法,跨页的时候往往会存在数据不连续的特点,导致搜索的时候操作比较复杂。
发明内容
本发明的目的在于提供一种智能电表的数据冻结方法,旨在解决现有的存储方法跨页的时候会存在数据不连续的问题。
为实现上述目的,本发明提供了一种智能电表的数据冻结方法,包括以下步骤:
基于未存储数据信息计算数据信息存储地址,基于未存储时间信息计算时间信息存储地址;
判断所述未存储数据信息的数据长度是否大于所述数据信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储数据信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储数据信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储数据信息写入所述数据信息存储地址的当前页FLASH地址;
判断所述未存储时间信息的数据长度是否大于所述时间信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储时间信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储时间信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储时间信息写入所述时间信息存储地址的当前页FLASH地址。
其中,在步骤判断所述未存储时间信息的数据长度是否大于所述时间信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储时间信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储时间信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储时间信息写入所述时间信息存储地址的当前页FLASH地址之后,所述方法还包括:
查找起始时间和结束时间所对应的两个地址指针,得到地址区域;
从所述时间信息存储地址中读取与所述地址区域对应的时间信息。
对所述时间信息进行分析,若分析合格,则将所述时间信息对应的数据信息读取出来,得到读取数据。
其中,所述查找起始时间和结束时间所对应的两个地址指针,包括:
通过二分法查找起始时间和结束时间所对应的两个地址指针。
其中,所述对所述时间信息进行分析,包括:
将所述时间信息放入RAM中进行逐个分析。
其中,在所述未存储时间信息存储到所述当前页FLASH地址之前,先将所述未存储时间信息的6个字节的时间格式转化为4byte的秒数据后进行存储。
本发明的一种智能电表的数据冻结方法,通过基于未存储数据信息计算数据信息存储地址,基于未存储时间信息计算时间信息存储地址;判断所述未存储数据信息的数据长度是否大于所述数据信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储数据信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储数据信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储数据信息写入所述数据信息存储地址的当前页FLASH地址;判断所述未存储时间信息的数据长度是否大于所述时间信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储时间信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储时间信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储时间信息写入所述时间信息存储地址的当前页FLASH地址。提高了数据的连续性。解决了现有的存储方法跨页的时候会存在数据不连续的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是数据信息和时间信息存储的流程图。
图2是数据信息和时间信息读取的流程图。
图3是本发明提供的一种智能电表的数据冻结方法的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
请参阅图1至图3,本发明提供一种智能电表的数据冻结方法,包括以下步骤:
S1基于未存储数据信息计算数据信息存储地址,基于未存储时间信息计算时间信息存储地址;
具体的,为了保证数据的连续性,本发明建立一个存储相关结构体,结构体中包含的数据为当前存储数量FrzNum、最大时间信息存储条数TimeMaxFrzNum、最大数据信息存储条数DataMaxFrzNum。
S2判断所述未存储数据信息的数据长度是否大于所述数据信息存储地址的当前页FLASH地址的剩余长度(由于单页长度为4K,且单条数据不可能会超过4K,所以如果一开始就判断到地址为该页的首地址,则直接写入),若小于剩余长度,则将所述未存储数据信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储数据信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储数据信息写入所述数据信息存储地址的当前页FLASH地址;
具体的,根据需求,计算TimeMaxFrzNum和DataMaxFrzNum,比如某冻结需要存储N条数据,则时间信息需要存储的页数TimePage=4*N/4096。通过这个公式算出的TimePage可能存在小数部分,所以需要多加一页,同时考虑到flash写之前需要整片擦除,故需要在原来的基础上再多加一页,总的来说TimePage=INT(4*N/4096)+2。其中INT()为取整函数。按照如此,可以推算出实际最大存储时间数量为TimeMaxFrzNum=(INT(4*N/4096)+2)*4096/4。假设单条冻结数据长度为DataLen,同理可推算出数据信息存储页数DataPage=INT(DataLen*N/4096)+2,最大数据存储条数DataMaxFrzNum=INT((INT(DataLen*N/4096)+2)*4096/DataLen)。
根据上述计算方式,需要所有的数据为连续的,但是往往DataLen不是4096的公约数,这个时候会出现当存到第INT(4096/DataLen)条的时候,该页剩余的长度不足DataLen,本发明针对这个问题提供了解决方法,具体为:我们假设剩余长度为Len1,那么我们则先把需要写入数据的前Len1长度先写入该页flash的剩余空间,然后擦除下一页,擦完之后再把剩余的数据DataLen-Len1写入该页,保证数据的连续性,方便后续查找。
本方法可以有效规避有FLASH芯片的写之前必须整页擦除的特性,使得后续应用中只要有FLASH的起始地址和数据长度,就可以把相应数据写进去,使得写入流程大大简化,同时由于所以数据连续,大大简化数据的查找流程。
S3判断所述未存储时间信息的数据长度是否大于所述时间信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储时间信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储时间信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储时间信息写入所述时间信息存储地址的当前页FLASH地址。
具体的,本发明把时间和数据进行分开存储,时间数据正常情况下为年月日时分秒,总共6个字节,为了提高读取效率以及节约存储空间,本发明在所述未存储时间信息存储到所述当前页FLASH地址之前,先将所述未存储时间信息的6个字节的时间格式转化为4byte的秒数据后进行存储。如此一来,一页flash可存储1024条时间数据。
本发明的存储思路为:假设时间信息冻结的基地址为TimeBaseAddr,关联数据信息冻结的基地址为DataBaseAddr,则每产生一条冻结记录,则计算存储地址TimeAddr=TimeBaseAddr+(FrzNum%TimeMaxFrzNum)*4。DataAddr=DataBaseAddr+(FrzNum%DataMaxFrzNum)*DataLen。然后把需要记录数据存储到计算所得的地址,存储成功后,无论已产生存储条数是否达到最大值,FrzNum都增加1,FrzNum为4字节长度数据,最大可容纳4294967295条数据,按每秒加一计算,溢出需要136.19年,已经远远超出电表寿命,故不用考虑数据溢出的危险。
S4查找起始时间和结束时间所对应的两个地址指针,得到地址区域;
具体的,通过二分法查找起始时间和结束时间所对应的两个地址指针。
S5从所述时间信息存储地址中读取与所述地址区域对应的时间信息Pstart和Pend。
S6对所述时间信息进行分析,若分析合格,则将所述时间信息对应的数据信息读取出来,得到读取数据。
具体的,将所述时间信息放入RAM中进行逐个分析,若分析合格,则将所述时间信息对应的数据信息读取出来,和时间数据进行组合,等到所有数据比对完成,把需要的数据组帧发送出去即可。这种方法大大减少了无用flash数据的读取,节约了时间,提高了效率。
本方法在判断到数据是否需要之前,对数据进行一次性读取并存放与RAM,然后只要操作RAM即可,如果数据需要,再读取对应的数据域,大大减少读取FLASH数据的数量,相比于传统方法减少了一定时间,优化效率。
以上所揭露的仅为本发明一种智能电表的数据冻结方法较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (5)
1.一种智能电表的数据冻结方法,其特征在于,包括以下步骤:
基于未存储数据信息计算数据信息存储地址,基于未存储时间信息计算时间信息存储地址;
判断所述未存储数据信息的数据长度是否大于所述数据信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储数据信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储数据信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储数据信息写入所述数据信息存储地址的当前页FLASH地址;
判断所述未存储时间信息的数据长度是否大于所述时间信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储时间信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储时间信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储时间信息写入所述时间信息存储地址的当前页FLASH地址。
2.如权利要求1所述的智能电表的数据冻结方法,其特征在于,
在步骤判断所述未存储时间信息的数据长度是否大于所述时间信息存储地址的当前页FLASH地址的剩余长度,若小于剩余长度,则将所述未存储时间信息写入所述当前页FLASH地址,若大于剩余长度,则先将所述未存储时间信息把剩余长度填满,并擦除下一页,然后将剩余的所述未存储时间信息写入所述时间信息存储地址的当前页FLASH地址之后,所述方法还包括:
查找起始时间和结束时间所对应的两个地址指针,得到地址区域;
从所述时间信息存储地址中读取与所述地址区域对应的时间信息。
对所述时间信息进行分析,若分析合格,则将所述时间信息对应的数据信息读取出来,得到读取数据。
3.如权利要求2所述的智能电表的数据冻结方法,其特征在于,
所述查找起始时间和结束时间所对应的两个地址指针,包括:
通过二分法查找起始时间和结束时间所对应的两个地址指针。
4.如权利要求3所述的智能电表的数据冻结方法,其特征在于,
所述对所述时间信息进行分析,包括:
将所述时间信息放入RAM中进行逐个分析。
5.如权利要求4所述的智能电表的数据冻结方法,其特征在于,
在所述未存储时间信息存储到所述当前页FLASH地址之前,先将所述未存储时间信息的6个字节的时间格式转化为4byte的秒数据后进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211266212.5A CN115686362A (zh) | 2022-10-15 | 2022-10-15 | 一种智能电表的数据冻结方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211266212.5A CN115686362A (zh) | 2022-10-15 | 2022-10-15 | 一种智能电表的数据冻结方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115686362A true CN115686362A (zh) | 2023-02-03 |
Family
ID=85066950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211266212.5A Pending CN115686362A (zh) | 2022-10-15 | 2022-10-15 | 一种智能电表的数据冻结方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115686362A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719845A (zh) * | 2023-08-07 | 2023-09-08 | 烟台东方威思顿电气有限公司 | 电能表周期冻结数据的快速查询方法 |
-
2022
- 2022-10-15 CN CN202211266212.5A patent/CN115686362A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719845A (zh) * | 2023-08-07 | 2023-09-08 | 烟台东方威思顿电气有限公司 | 电能表周期冻结数据的快速查询方法 |
CN116719845B (zh) * | 2023-08-07 | 2023-11-10 | 烟台东方威思顿电气有限公司 | 电能表周期冻结数据的快速查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101819509A (zh) | 一种固态硬盘读写方法 | |
CN101571827A (zh) | 保存日志的方法和日志系统 | |
CN104778203B (zh) | 费控智能电能表中负荷记录分块索引存储及查询方法 | |
CN110196847A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN101446921A (zh) | 一种Flash存储器的动态存储方法 | |
CN111143239B (zh) | 一种智能电表的冻结电量数据压缩存储方法和解压方法 | |
CN104461750A (zh) | 一种NAND flash的访问方法和装置 | |
CN109597580B (zh) | 适用于智能电表负荷曲线存储的flash操作方法 | |
CN105469834A (zh) | 嵌入式闪存的测试方法 | |
CN102169460A (zh) | 变长数据管理方法及装置 | |
CN115686362A (zh) | 一种智能电表的数据冻结方法 | |
CN102880615A (zh) | 一种数据存储方法和装置 | |
CN111813591A (zh) | Nand Flash的数据纠错方法、装置、电子设备及存储介质 | |
CN111124313A (zh) | 电力采集终端数据读写方法、装置和电子设备 | |
CN114356792B (zh) | 基于flash预擦除技术的电能表冻结数据存储方法及电能表 | |
CN112965919B (zh) | 一种电能表数据分钟冻结方法、存储介质及设备 | |
CN102736981B (zh) | 提高nor flash擦写寿命的方法 | |
WO2024187779A1 (zh) | 业务数据存储方法、装置、计算机设备和存储介质 | |
CN111208950B (zh) | 一种基于单片机的提升norflash使用周期的方法 | |
CN103176753B (zh) | 存储设备及其数据管理方法 | |
CN102981965A (zh) | 一种nand flash文件系统 | |
CN113778345B (zh) | 索引的创建方法、计算设备及存储介质 | |
CN116339614A (zh) | 一种基于串行Flash芯片的嵌入式文件系统及数据管理方法 | |
CN112511156B (zh) | 一种脉冲计量及存储方法 | |
CN114610237A (zh) | 一种仪器表设备运行日志组件的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |