一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种物联网数据监控点和寄存器地址自适应映射方法与流程

2022-04-06 22:42:46 来源:中国专利 TAG:


1.本发明属于物联网技术领域,具体涉及一种物联网数据监控点和寄存器地址自适应映射方法。


背景技术:

2.近年来,随着物联网和数字经济不断发展,物联网技术被广泛的应用到工业领域,同时物联网获取传感器数据成为接入万物互联的第一步。
3.当获取到传感器和寄存器的值之后,需要展示给用户或者上传到云服务器,以监控点形式上传到云服务器上。监控点是将需要上报数据属性抽象化成一个字段。
4.每个监控点和寄存器存在一定的映射关系。对于简单的监控点映射,可以直接通过读取寄存器数据方式来获取。而对于复杂的映射关系,则需要考虑到代码的可扩展性和便捷性等因素。
5.现有的技术方案可以归纳为以下几种:
6.1)学术界常采用旁路转换缓存(translation lookaside buffer,以下简称tlb),虽然tlb在一定程度上可以避免多次对映射的查询,但是随着内存映射情况变多而变得更加复杂。同时多页表项的映射常常超过几兆空间大小,这对一个嵌入式系统来说是不能接受的。
7.2)李振元在其专利【cn 107133233 a】中,采用建立单映射表存放需要对应的参数,虽然可以建立映射关系,但是随着存放的数据越多,数据都存在一个表中,使得映射表空间变得很大,在遍历查找需要的数据时的时间复杂度极高,对于嵌入式系统来说实时性不够高。
8.3)李彭伟在其专利【cn 109325086 a】中,对离散的地理数据采用多叉树状映射结构,虽然可以形成多级映射,但是在代码实现较复杂且树状结构占用空间过大,不适用嵌入式系统。
9.因此,根据嵌入式系统存储空间小,实时性高等特点,本发明实现一种在嵌入式系统中使用既能实现快速查找且通用方便的映射方法。


技术实现要素:

10.本发明针对以上问题,提出了一种对能够对数据监控点和寄存器地址自适应映射的方法。
11.该方法是一种线性表映射,且包括:
12.根据监控点和寄存器的映射关系构成一个映射网络;
13.根据所述的监控点首字段的特点,使用分类散列函数将其划分成一级映射表,一级映射表每个元素对应一类监控点信息集合;
14.根据一级映射表,在此基础上构建二级映射表,二级映射表存放映射信息,并计算存放物理地址首地址,并存储各寄存器链表。
15.根据映射表检索监控点的映射信息,若检索到,则取出该对应信息。若不能检索到,则根据现在顺序在二级映射表中新增该监控点信息并自动计算存放物理地址首地址。
16.其中,分类散列函数公式为:
17.hash(key)=(key-65)%26;
18.其中,key为监控点首字段ascii码值。
19.其中,存放映射信息包括监控点值,对应寄存器的数量,类型种类,是否需要更新,32位地址信息中包括存放寄存器信息链表的物理地址。
20.其中,新增存放监控点映射信息的寄存器物理地址首地址可以动态进行调整。
21.其中,存放映射使用双向链表来存储所对应的寄存器的地址,方便查找和存储。
22.本发明的有益效果:
23.1)本发明通过建立两级映射表来将数据监控点和寄存器的映射有效的建立起来。为了保证数据监控点能和多种类型的不连续寄存器组进行更好的对应和通用性,将需要对应的寄存器放在一起组成双向链表,便于增加,删除和查找。
24.2)针对嵌入式设备内存空间小的特点,将需要保存的信息参数用尽量少的字段来进行存储。
25.3)同时,针对要新增加数据监控点信息时,能够做到不修改代码,用信息参数来判断是否需要更新,进行自动添加,并写入flash中,使得下次重新启动之后,能够更新映射表来达到自适应的效果。
26.4)将存储的物理位置和映射表相分离,保证了代码结构的解耦。
附图说明
27.图1为本发明监控点和寄存器自适应方法的流程图;
28.图2为本发明监控点和寄存器之间构成的映射网络;
29.图3为本发明中一级映射表和初始化的二级映射表;
30.图4为本发明中的二级映射表及用来存储的双向链表;
31.图5为本发明完整功能图。
具体实施方式
32.为使本发明的目的、技术方案和有益效果表述更加清楚,下面将结合附图及具体实例对本发明作进一步地详细描述。如图1为本发明监控点和寄存器自适应方法的流程图。
33.步骤101、根据监控点和寄存器的映射关系构成一个映射网络。
34.需要说明的是,监控点和寄存器关系可以分为一对一,一对多个连续,一对多个不连续。对于前两者,可以通过之间读取寄存器值来获取数值。而对于一对多个不连续,需要先构建一个映射关系。具体示例如图2所示。由图可得,监控点a001分别对应3个不同的寄存器组。
35.步骤102、根据所述的监控点首字段的特点,使用分类散列函数将其划分成一级映射表,一级映射表每个元素对应一类监控点信息集合。
36.需要说明的是,该分类散列函数公式为hash(key)=(key-65)%26。具体示例如图3所示。其中s301为一级映射表,s302为初始的二级映射表。
37.步骤103、根据一级映射表,在此基础上构建二级映射表,二级映射表存放映射信息,并计算存放物理地址首地址,并存储各寄存器链表。
38.需要说明的是,存放映射信息包括监控点值,对应寄存器的数量,类型种类,是否需要更新,32位地址信息中包括存放寄存器信息链表的物理地址。如图4所示。其中,存放映射使用双向链表来存储所对应的寄存器的地址,方便查找和存储。
39.在图4中,s401和s402表示的是二级映射表整体内容。s401一共有三部分组成,分别是监控点名称,映射参数信息,存放双向链表的物理地址首地址。
40.s401中第一列表示的是监控点的名称。s401中第二列和第三列是一个8位的数据,代表的是所映射寄存器的总数量。最大可映射的寄存器数量为255。s401中第四列和第五列一共8位,其中前7位表示的是是否有此类型的寄存器,各不同类型寄存器对应的位数关系如s403所示。最后一位对应的是否更新字段,0表示不需要更新,1表示的是需要更新。
41.s401最后一列是存放双向链表的物理地址首地址,若该监控点需要新增映射寄存器,那么下一行监控点映射信息中该项地址空间需要自动进行偏移,保证可以获取到正确的数据。
42.s402是某监控点对应的寄存器,可通过该双向链表进行读取数据。链表头为整个链表数据所占字节数。
43.步骤104、根据映射表检索监控点的映射信息,若检索到,则取出该对应信息。若不能检索到,则根据现在顺序在二级映射表中新增该监控点信息并自动计算存放物理地址首地址。
44.需要说明的是,若在对应的映射表中未找到相应的映射信息,说明该寄存器的映射并没有存储到表中。那么可以在查找的该类型二级映射表中创建一行监控点的映射信息,并将是否更新字段值置为1。使用者再次将映射信息输入之后,则可以存储到刚刚创建的二级映射表中,并将是否更新字段值置为0。最后将整个映射表以文件形式存到rom当中,以备掉电之后重新检索。需要说明的是,图5为本发明完整功能图。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献