用于嵌入式系统的环境数据编码方法与流程



1.本技术涉及数据编码技术领域,特别涉及一种用于嵌入式系统的环境数据编码方法。


背景技术:



2.现有的嵌入式设备,如蓝牙温湿度传感器等,在工作时需要对环境数据(比如温度、湿度、光强度、气压、气味等)进行存储,而现有技术中,通常采用直接存储方式(直接保存采样到的环境数据原始值)和通用压缩算法(例如使用基于哈夫曼各种压缩算法);但是这种存储方式和压缩算法存在如下缺陷:
3.直接存储方式,可以随新增数据做增量编码,但由于存放的是原始数据,含有大量的冗余信息,故此rom空间使用效率不高;
4.通用压缩算法,由于对全部数据做统计,不能做增量编码,而且需要使用较多的ram空间;
5.因此,现有编码方法对于物联网应用来说,硬件资源要求较高,不能适用于低成本的使用场景。


技术实现要素:



6.本技术提出一种用于嵌入式系统的环境数据编码方法,为存储资源较紧张的物联网产品提供高效的数据压缩编码方案。
7.本技术实施例提供一种用于嵌入式系统的环境数据编码方法,包括如下步骤:
8.s1:将存储空间划分为若干独立的bulk块,任一所述bulk块设置一头部空间,所述头部空间包含起始时间戳信息和数据时间间隔信息;
9.s2:在任一所述bulk块的头部空间后,记录该bulk块内的第一条环境数据,且该第一条环境数据采用实际值记录;
10.s3:按照预定的时间间隔,在第一条环境数据后依次记录该bulk块内的后续环境数据,具体包括:
11.a.若当前环境数据相较于前一环境数据没有变化,则用一个比特0表示当前的环境数据无变化;
12.b.若当前环境数据相较于前一环境数据发生变化,则用一个比特1表示当前的环境数据发生变化;
13.c.在步骤b中,若当前的环境数据相较于前一环境数据发生的变化小于预定的阈值,则记录当前的环境数据为1+变化量,其中1代表变化小于预定的阈值,变化量包括0或1,0表示为当前环境数据相较前一环境数据的变化量为增加一个阈值,1表示为当前环境数据相较前一环境数据的变化量为减少一个阈值;
14.d.在步骤b中,若当前的环境数据相较于前一环境数据发生的变化大于预定的阈值,则记录当前的环境数据为0+实际值,其中0代表变化大于预定的阈值,实际值为当前的
环境数据实际值。
15.一些实施例中,任一所述bulk块划分为若干个sector区,任一所述bulk块的头部空间设置在该bulk块内的第一个sector区。
16.一些实施例中,任一所述sector区记录的第一条环境数据均采用实际值记录。
17.一些实施例中,当一个sector区的空间使用完毕或剩余的空间不足以写入下一条环境数据时,切换到下一个sector区进行记录。
18.一些实施例中,所述起始时间戳信息用于记录该bulk块内记录第一个环境数据时的时间,所述数据时间间隔信息用于记录该bulk块内相邻两个环境数据记录的时间间隔。
19.一些实施例中,所述存储空间按照擦写大小进行bulk块的划分,所述bulk块包括1024字节、4096字节。
20.一些实施例中,所述bulk块按照擦写大小进行sector区的划分,所述sector区包括256字节。
21.一些实施例中,所述实际值的记录采用固定格式记录,该固定格式包括2个字节或3个字节。
22.一些实施例中,所述环境数据包括数值量、状态量。
23.一些实施例中,所述数值量为需要用数值表示的数据,包括温度、湿度;所述状态量为表示工作状态的数据,包括开关状态。
24.与现有技术相比,本技术的有益效果是:通过较简单的编码方法,对于保存环境数据这种特殊的场合,不需要增加硬件资源,就能够取得明显的压缩效果,为存储资源较紧张的物联网产品提供高效的数据压缩编码方案。
附图说明
25.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
26.图1为本技术编码方法流程图;
27.图2为本技术实施例的流程框图;
28.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
29.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。
30.除非另有定义,本技术所使用的的所有技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
31.应当说明的是,对于环境数据,在时域上一般不会发生跳变,当前时间的数据和前一个时间的数据有较强的相关性,在进行编码时,可以只考虑前后数据是否发生变化(变化绝对值小于某一个指定的阈值则认为不变,该阈值可能是采样的精度,也可能是节省存储
空间而设定的数值)以及变化的幅度,基于环境数据的这种特性,本技术提出了如下的编码方法用以提升编码压缩效果,同时,为了提高编码效率,采用了比特流的方式,解码器可以根据当前的若干比特解析出原始值。
32.具体地,参考图1,本实施例提出,一种用于嵌入式系统的环境数据编码方法,包括如下步骤:
33.s1:将存储空间划分为若干独立的bulk块,任一所述bulk块设置一头部空间,所述头部空间包含起始时间戳信息和数据时间间隔信息;
34.s2:在任一所述bulk块的头部空间后,记录该bulk块内的第一条环境数据,且该第一条环境数据采用实际值记录;
35.s3:按照预定的时间间隔,在第一条环境数据后依次记录该bulk块内的后续环境数据,具体包括:
36.a.若当前环境数据相较于前一环境数据没有变化,则用一个比特0表示当前的环境数据无变化;
37.b.若当前环境数据相较于前一环境数据发生变化,则用一个比特1表示当前的环境数据发生变化;
38.c.在步骤b中,若当前的环境数据相较于前一环境数据发生的变化小于预定的阈值,则记录当前的环境数据为1+变化量,其中1代表变化小于预定的阈值,变化量包括0或1,0表示为当前环境数据相较前一环境数据的变化量为增加一个阈值,1表示为当前环境数据相较前一环境数据的变化量为减少一个阈值;
39.d.在步骤b中,若当前的环境数据相较于前一环境数据发生的变化大于预定的阈值,则记录当前的环境数据为0+实际值,其中0代表变化大于预定的阈值,实际值为当前的环境数据实际值。
40.应当说明的是,考虑到用户可能修改数据存储的间隔,本发明将整个存储区域划分成若干bulk块,可以根据实际情况调整其大小,每个bulk的头部空间需要包含起始时间戳信息、数据时间间隔信息,当用户更改时间间隔时,新数据需要保存到下一个bulk块里。除此之外,头部空间内还可以根据需要存放crc校验、数据个数等信息
41.进一步地,为了避免编码引入的误差逐渐积累,本实施例还将一个bulk块划分成若干sector区,每个sector区里第一个环境数据都保存实际值,其后的环境数据采用增量编码。
42.具体地,任一所述bulk块划分为若干个sector区,任一所述bulk块的头部空间设置在该bulk块内的第一个sector区。
43.进一步地,任一所述sector区记录的第一条环境数据均采用实际值记录。
44.进一步地,当一个sector区的空间使用完毕或剩余的空间不足以写入下一条环境数据时,切换到下一个sector区进行记录。
45.进一步地,所述起始时间戳信息用于记录该bulk块内记录第一个环境数据时的时间,所述数据时间间隔信息用于记录该bulk块内相邻两个环境数据记录的时间间隔。
46.进一步地,bulk块和sector区的划分大小,可以根据实际情况做调整,本实施例中,所述存储空间按照擦写大小进行bulk块的划分,所述bulk块包括1024字节、4096字节。所述bulk块按照擦写大小进行sector区的划分,所述sector区包括256字节。
47.进一步地,所述实际值的记录采用固定格式记录,该固定格式包括2个字节或3个字节。
48.进一步地,所述环境数据包括数值量、状态量。
49.进一步地,所述数值量为需要用数值表示的数据,包括温度、湿度;所述状态量为表示工作状态的数据,包括开关状态。
50.如上所述,由于环境数据包括数值量、状态量等,因此,一条环境数据内包含多个变量,以下,通过具体的实施例对环境数据的记录进行详细说明,下述实施例中,环境数据包括开关状态(状态量)、温度(数值量)、湿度(数值量)三个变量。约定状态量表示门的开关状态(1表示开,0表示关),需要一个比特;湿度范围为0-100%,精度单位为1%,需要7个比特;温度范围为-40℃到62℃,精度单位为0.1℃,需要10个比特(0表示-40℃,1020表示62℃)。即一条原始数据需要7+10+1=18比特进行编码。
51.一.记录第一条环境数据,设当前的环境温度为25℃,湿度为60%,开关状态为开,则保存第一条环境数据的实际值为“650 60 1”,用二进制表示为“1010001010 0111100 1”;
52.二.记录第二条环境数据:
53.1.若第二条环境数据相较于第一条环境数据没有变化,仍为温度为25℃,湿度为60%,开关状态为开,则保存第二条环境数据为“0”,至此第二条数据记录完毕,用二进制表示为“0”,节省了17比特;
54.2.若第二条环境数据相较于第一条环境数据发生变化,包括其中一个变量或多个变量发生变化,则首先记录“1”,表示第二条环境数据发生变化,然后依次对各个变量依次进行记录,当前二进制编码为“1”;
55.a.首先记录第二条环境数据的开关状态数据,若开关状态为开则记录“1”,若开关状态为关则记录“0”,当前二进制编码为“1x”,其中x为开关状态,为1或0;
56.b.然后记录温度和湿度数据:
57.b1.若第二条环境数据的温度和湿度均不变,则记录“100”,其中1表示采用变化量的方式记录,第一个0表示温度不变,第二个0表示湿度不变,至此第二条数据记录完毕,用二进制表示为“1x100”,其中x为开关量,节省了13比特;
58.b2.若第二条环境数据的温度和湿度的变化均小于阈值(,如第二条环境数据的温度为25.1℃,湿度为59%,则记录“11101”,其中,第一个1表示第二条环境数据的温度和湿度采用变化量的方式进行记录,第二和第三个1表示温度和湿度都发生了变化,第一个0表示第二条环境数据的温度相较于第一条环境数据增加0.1℃,最后一个1表示第二条环境数据的湿度相较于第一条环境数据降低1%,至此第二条数据记录完毕,用二进制表示为“1x11101”,其中x为开关量,节省了11比特;
59.b3.若第二条环境数据的温度和湿度的一个或多个的变化较大,超过阈值,如温度为25.2℃,湿度为58%;
60.则首先记录“0”,此处的0表示第二条环境数据的温度和湿度采用实际值记录;
61.然后记录第二条环境数据的温度和湿度实际值,至此第二条数据记录完毕,用二进制表示为“1x0 1010001100 0111010”,多用2比特。
62.三.后续的环境数据的记录方式与第二条环境数据的记录方式相同,将当前的环
境数据与上一条环境数据做对比即可,以此类推,在此不再进行赘述。
63.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:


1.用于嵌入式系统的环境数据编码方法,其特征在于,包括如下步骤:s1:将存储空间划分为若干独立的bulk块,任一所述bulk块设置一头部空间,所述头部空间包含起始时间戳信息和数据时间间隔信息;s2:在任一所述bulk块的头部空间后,记录该bulk块内的第一条环境数据,且该第一条环境数据采用实际值记录;s3:按照预定的时间间隔,在第一条环境数据后依次记录该bulk块内的后续环境数据,具体包括:a.若当前环境数据相较于前一环境数据没有变化,则用一个比特0表示当前的环境数据无变化;b.若当前环境数据相较于前一环境数据发生变化,则用一个比特1表示当前的环境数据发生变化;c.在步骤b中,若当前的环境数据相较于前一环境数据发生的变化小于预定的阈值,则记录当前的环境数据为1+变化量,其中1代表当前的环境数据采用变化量的方式记录,变化量包括0或1,0表示为当前环境数据相较前一环境数据的变化量为增加一个阈值,1表示为当前环境数据相较前一环境数据的变化量为减少一个阈值;d.在步骤b中,若当前的环境数据相较于前一环境数据发生的变化大于预定的阈值,则记录当前的环境数据为0+实际值,其中0代表当前环境数据采用实际值的方式记录,实际值为当前的环境数据实际值。2.如权利要求1所述的用于嵌入式系统的环境数据编码方法,其特征在于,任一所述bulk块划分为若干个sector区,任一所述bulk块的头部空间设置在该bulk块内的第一个sector区。3.如权利要求2所述的用于嵌入式系统的环境数据编码方法,其特征在于,任一所述sector区记录的第一条环境数据均采用实际值记录。4.如权利要求2所述的用于嵌入式系统的环境数据编码方法,其特征在于,当一个sector区的空间使用完毕或剩余的空间不足以写入下一条环境数据时,切换到下一个sector区进行记录。5.如权利要求1所述的用于嵌入式系统的环境数据编码方法,其特征在于,所述起始时间戳信息用于记录该bulk块内记录第一个环境数据时的时间,所述数据时间间隔信息用于记录该bulk块内相邻两个环境数据记录的时间间隔。6.如权利要求1所述的用于嵌入式系统的环境数据编码方法,其特征在于,所述存储空间按照擦写大小进行bulk块的划分,所述bulk块包括1024字节、4096字节。7.如权利要求2所述的用于嵌入式系统的环境数据编码方法,其特征在于,所述bulk块按照擦写大小进行sector区的划分,所述sector区包括256字节。8.如权利要求1所述的用于嵌入式系统的环境数据编码方法,其特征在于,所述实际值的记录采用固定格式记录,该固定格式包括2个字节或3个字节。9.如权利要求1~8任一所述的用于嵌入式系统的环境数据编码方法,其特征在于,所述环境数据包括数值量、状态量。10.如权利要求9所述的用于嵌入式系统的环境数据编码方法,其特征在于,所述数值量为需要用数值表示的数据,包括温度、湿度;所述状态量为表示工作状态的数据,包括开
关状态。

技术总结


本申请公开了一种用于嵌入式系统的环境数据编码方法,包括如下步骤:将存储空间划分为若干独立的BULK块,任一所述BULK块设置一头部空间,所述头部空间包含起始时间戳信息和数据时间间隔信息;在任一所述BULK块的头部空间后,记录该BULK块内的第一条环境数据,且该第一条环境数据采用实际值记录;按照预定的时间间隔,在第一条环境数据后依次记录该BULK块内的后续环境数据。本申请技术方案为存储资源较紧张的物联网产品提供高效的数据压缩编码方案。案。案。


技术研发人员:

郑荣藩 成飞

受保护的技术使用者:

深圳市鼎飞技术有限公司

技术研发日:

2022.09.09

技术公布日:

2023/1/31

本文发布于:2024-09-23 04:19:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/66287.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   环境   所述   阈值
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议