一种基于单片机FLASH的数据库及数据库的运行方法技术

技术编号:35566444 阅读:7 留言:0更新日期:2022-11-12 15:50
本发明专利技术提供了一种基于单片机FLASH的数据库及数据库的运行方法,数据库按照以下方法构建:基于单片机FLASH每页容量,对Flash内部存储区,按照数据种类进行功能区域划分,每个功能区域由连续的2

【技术实现步骤摘要】
一种基于单片机FLASH的数据库及数据库的运行方法


[0001]本专利技术属于数据存储
,具体的说,涉及了一种基于单片机FLASH的数据库及数据库的运行方法。

技术介绍

[0002]单片机作为嵌入式开发的核心器件,在电子产品的开发中,起着不可或缺的作用。在单片机工作的过程中,会采集大量的数据供开发人员使用,分析解决问题,为产品开发提供依据。因此,开发者常常会把这些数据保存在单片机的FLASH中。然而单片机采集的数据种类是多种多样的,现有的方法只是存储在固定地址,且数据并无明显分类,存储读取数据时效率低下,无疑会拖慢产品的开发周期。
[0003]有如CN102819468A一种基于FLASH的小型数据备份及查询方法,通过利用存储数据的时间点和存储位置的影射关系,在每个数据存储页开始写数之前,写入一个时间标签。数据存储时以扇区为操作单位,每个扇区都有相似的存储结构,通过扇区号和页面时间标签鉴别前后顺序。当一个扇区存满数据时,查找最早使用过的扇区,清除该扇区,将之作为当前工作扇区,如此可实现均匀磨损,使得数据存储和查询都简洁快速。
[0004]也有如CN106202276A蓝牙OBD长时间数据保存实现方法。通过软件创建小型的数据库管理系统,数据库管理系统针对Flash内部存储不同数据信息的保存要求进行功能区域划分、数据擦除、更新、读写等操作。通过对Flash平衡写入处理、历史数据回滚机制,增加工况数据区保存数据量,减轻Flash擦写次数以达到延长Flash使用寿命,实现对蓝牙OBD长时间数据保存。r/>[0005]以上两件专利均在某一方面提出了解决方案,但是对于单片机Flash来说,目前普遍采用的单片机Flash容量均不是很大,而在一些应用场景下又需要单片机Flash能够存储足够大的数据量,同时还能满足快速存取。
[0006]为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。

技术实现思路

[0007]本专利技术的目的是针对现有技术的不足,从而提供一种基于单片机FLASH的数据库及数据库的运行方法。
[0008]为了实现上述目的,本专利技术所采用的技术方案是:本专利技术第一方面提供一种基于单片机FLASH的数据库,数据库按照以下方法构建:基于单片机FLASH每页容量,对Flash内部存储区,按照数据种类进行功能区域划分,每个功能区域由连续的2
n
页构成,n为正整数;功能区域包括报警记录区、报警记录解除区、故障记录区、故障记录解除区、上电记录区和掉电记录区;分区完成之后对数据库区域的存储单元做整体写0操作;单片机FLASH存储的每一条数据记录包括记录时间、记录覆写次数和记录内容,按位编码记录时间、记录覆写次数和记录内容,每条记录的容量为一页的1/2
m
,m为正整数,整
个数据库系统中m为固定值;其中,所述记录时间为数据记录产生的时间;所述记录内容为报警、报警解除、故障、故障解除、上电或掉电;所述记录覆写次数指示数据记录的新旧;每条数据记录根据所述记录内容存储于对应的功能区域;在每个功能区域内,每条数据记录按照产生的顺序,依次按页存储;当存储到功能区域结尾时,自动跳转到功能区域起始处循环存储,并自动覆盖原有数据。
[0009]本专利技术第二方面提供一种所述基于单片机FLASH的数据库的运行方法:每一次当数据库有数据读写需求时,首先根据读写的数据种类确定对应分区的页编号,在这些页中按由前向后的顺序遍历每一条数据记录的记录覆写次数,找到其中由大数向小数变化的分界点;如果所有数据记录的记录覆写次数一致,则标记该功能区域的首页的首地址为分界点;读取分界点下一条记录的覆写次数k,设定分界点前的最后一条数据记录为最新数据记录,设定分界点后的第一条数据记录为最旧数据记录;如果数据库需要查询一条数据记录,从最新数据记录开始向前检索;如果数据库需要写入一条数据记录,拟写入数据记录覆写于最旧数据记录所在的存储区域,并将写入最新记录的记录覆写次数标记为k+1。
[0010]基于上述,数据库的检索还包括在顺序检索的基础上叠加使用时间检索或事件检索,其中,事件包括报警事件、报警解除事件、故障事件、故障解除事件、上电事件和掉电事件。
[0011]基于上述,数据库的检索还包括单独使用时间检索或事件检索,其中,事件包括报警事件、报警解除事件、故障事件、故障解除事件、上电事件和掉电事件。
[0012]本专利技术的有益效果为:1)数据记录分类存储,方便顺序查询;2)数据按位编码,实现数据记录压缩;3)只保留最近数据记录,减小存储空间;4)不设数据库索引和指针,增加FLASH存储器寿命。
具体实施方式
[0013]下面通过具体实施方式,对本专利技术的技术方案做进一步的详细描述。
[0014]实施例1本实施例提供一种基于单片机FLASH的数据库,数据库按照以下方法构建:基于单片机FLASH每页容量,对Flash内部存储区,按照数据种类进行功能区域划分,每个功能区域由连续的2
n
页构成,n为正整数;功能区域包括报警记录区、报警记录解除区、故障记录区、故障记录解除区、上电记录区和掉电记录区;分区完成之后对数据库区域的存储单元做整体写0操作;单片机FLASH存储的每一条数据记录包括记录时间、记录覆写次数和记录内容,按位编码记录时间、记录覆写次数和记录内容,每条记录的容量为一页的1/2
m
,m为正整数,整个数据库系统中m为固定值;其中,所述记录时间为数据记录产生的时间;所述记录内容为报警、报警解除、故障、故障解除、上电或掉电;所述记录覆写次数指示数据记录的新旧;每条数据记录根据所述记录内容存储于对应的功能区域;在每个功能区域内,每条数据记录按照产生的顺序,依次按页存储;当存储到功能区域结尾时,自动跳转到功能区
域起始处循环存储,并自动覆盖原有数据。
[0015]实施例2本实施例提供一种实施例1所述基于单片机FLASH的数据库的运行方法,具体包括:每一次当数据库有数据读写需求时,首先根据读写的数据种类确定对应分区的页编号,在这些页中按由前向后的顺序遍历每一条数据记录的记录覆写次数,找到其中由大数向小数变化的分界点;如果所有数据记录的记录覆写次数一致,则标记该功能区域的首页的首地址为分界点;读取分界点下一条记录的覆写次数k,设定分界点前的最后一条数据记录为最新数据记录,设定分界点后的第一条数据记录为最旧数据记录;如果数据库需要查询一条数据记录,从最新数据记录开始向前检索;如果数据库需要写入一条数据记录,拟写入数据记录覆写于最旧数据记录所在的存储区域,并将写入最新记录的记录覆写次数标记为k+1。
[0016]实施例3本实施例与实施例2的区别在于:数据库的检索还包括在顺序检索的基础上叠加使用时间检索。
[0017]实施例4本实施例与实施例2的区别在于:数据库的检索还包括在顺序检索的基础上叠加使用事件检索,其中,事件包括报警事件、报警解除事件、故障事件、故障解除事件、上电事件和掉电事件。
[0018]本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于单片机FLASH的数据库,其特征在于,数据库按照以下方法构建:基于单片机FLASH每页容量,对Flash内部存储区,按照数据种类进行功能区域划分,每个功能区域由连续的2
n
页构成,n为正整数;功能区域包括报警记录区、报警记录解除区、故障记录区、故障记录解除区、上电记录区和掉电记录区;分区完成之后对数据库区域的存储单元做整体写0操作;单片机FLASH存储的每一条数据记录包括记录时间、记录覆写次数和记录内容,按位编码记录时间、记录覆写次数和记录内容,每条记录的容量为一页的1/2
m
,m为正整数,整个数据库系统中m为固定值;其中,所述记录时间为数据记录产生的时间;所述记录内容为报警、报警解除、故障、故障解除、上电或掉电;所述记录覆写次数指示数据记录的新旧;每条数据记录根据所述记录内容存储于对应的功能区域;在每个功能区域内,每条数据记录按照产生的顺序,依次按页存储;当存储到功能区域结尾时,自动跳转到功能区域起始处循环存储,并自动覆盖原有数据。2.一种权利要求1所述基于单片机FLASH的数据库的运行方法,其特征在于:每一...

【专利技术属性】
技术研发人员:李志刚张晓男桑小田侯梦迪杨满意兰永富高良
申请(专利权)人:汉威科技集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1