一种物联网数据透传方法及系统与流程

文档序号:31948201发布日期:2022-10-26 05:50阅读:161来源:国知局
一种物联网数据透传方法及系统与流程

1.本发明属于物联网技术领域,更具体地,涉及一种物联网数据透传方法及系统。


背景技术:

2.在装备制造、安防、物流、智能家居等行业场景中,对于能够提供图像的自动化巡检设备存在现实的需求,它通常用于无人值守的环境下,能够配置为定时定点、由外部条件触发或其他策略,自动拍摄目标对象的图像,并且进行存储和传输。
3.目前,某些特定场景具备为设备提供充分的供电、网络等基础环境支撑,但同时又对巡检设备提出了微型化、低成本、远程可控、免维护等更高要求。例如,公路广告牌的运行监测、智能冰柜所存放食品的自动辨识等。现有的巡检设备方案,尤其是基于单片机的微型设备,在图像处理方面通常依赖于外部存储介质,或须使用串口、以太网等有线连接的后端计算机设备,不便于在上述场景中灵活部署,实现无人值守、无人维护。
4.因此,期待发明一种物联网数据透传方法,能够解决现有巡检设备不能灵活部署难以实现无人值守和无人维护的问题。


技术实现要素:

5.本发明的目的是提出一种物联网数据透传方法及系统,以解决现有巡检设备不能灵活部署难以实现无人值守和无人维护的问题。
6.为了实现上述目的,本发明提供一种物联网数据透传方法,包括:
7.步骤1:接收主机发出的下行文件操作指令;
8.步骤2:基于接收的所述下行文件操作指令,形成第一上报数据队列;
9.步骤3:应用时间邮戳ts对所述第一上报数据队列中每个第一上报数据包分配编号,并将具有相同编号的所述第一上报数据包组成一个上行分组数据包;
10.步骤4:采用回合制的发送方式将所有所述上行分组数据包逐批上传至所述主机。
11.可选地,所述步骤4包括:
12.步骤41:将每组所述上行分组数据包中一批第一预设数量的所述第一上报数据包上传至所述主机;
13.步骤42:接收所述主机对该批所述第一上报数据包接收情况的应答包,并基于所述接收情况的应答包,将该批所述第一上报数据包中所有未上传至所述主机的所述第一上报数据包重新上传至所述主机,重复执行步骤42,直至该批所述第一上报数据包中所有未上传至所述主机的所述第一上报数据包均上传至所述主机;
14.步骤43:将所述上行分组数据包中下一批第二预设数量的所述第一上报数据包上传至所述主机,重复执行步骤42-步骤43,直至该组所述上行分组数据包中所有所述第一上报数据包均上传至所述主机。
15.可选地,所述步骤1之前还包括:
16.步骤1’:通过终端心跳探针判断所述终端与所述主机之间的连接状态;
17.所述步骤1’包括:
18.步骤11’:获取沉默计时器记录的所述主机向终端传输下行数据包的第一时间间隔,判断第一时间间隔是否超出第一预设时间,如果是则发送心跳包至所述主机;
19.步骤12’:获取所述沉默计时器记录的所述主机向所述终端转发的所述心跳包的第二时间间隔,并判断所述第二时间间隔是否超出第二预设时间,如果否,则恢复上行数据包的发送。
20.可选地,当所述主机转发所述心跳包时,将所述沉默计时器进行清零操作。
21.可选地,所述步骤12’之后包括:
22.步骤1201:如果所述第二时间间隔超出第二预设时间,发送一个所述心跳包于所述主机;
23.步骤1202:判断是否接收到所述主机发出的对所述心跳包的应答包,如果否则继续发送新的所述心跳包于所述主机,重复执行步骤1202并统计所述心跳包的发送次数;
24.步骤1203:如果所述心跳包的发送次数大于预设次数,则所述终端认为所述主机掉线,从而禁止所述上行数据包发出;
25.步骤1204:检测与路由器ap的通信连接,如果与所述路由器ap的通信连接正常,则发送一个所述心跳包于所述主机,并重复执行步骤1202-步骤1204,直至收到所述主机对所述心跳包的应答包,恢复所述上行数据包发出。
26.可选地,还包括:
27.产生第二上报数据队列,并将所述时间邮戳ts的邮戳值写入所述第二上报数据中队列对应的第二上报数据包相应字段;
28.将一个所述第二上报数据包上传至所述主机;
29.接收所述主机响应于接收的该所述第二上报数据包发送的下行应答包,发送相邻邮戳值的所述第二上报数据包于所述主机。
30.可选地,当所述终端发出一个所述第二上报数据包时,所述数据传输通道处于阻塞状态,直到接收到所述主机发送的所述下行应答包才解除所述阻塞状态。
31.可选地,所述主机接收所述第二上报数据包后,执行以下操作:
32.当ts_host=0时,所述主机接收到所述终端发送的第二上报数据包p1时,更新ts_host=t1,并发送已暂存副本的下行应答包r1于所述终端;
33.当ts_hos>0时,所述主机接收到所述终端发送的第二上报数据包p2时,ts_dev=t2,如果t1==t2,则表示p2是p1的重复包,进而所述主机丢弃p2并发送所述下行应答包r1副本于所述终端;
34.当ts_hos>0时,所述主机接收到所述终端发送的第二上报数据包p3时,ts_dev=t3,如果t1<t3且(t3-t1)<10000ms,则更新ts_host=t3,并发送已暂存副本的下行应答包r3于所述终端;
35.当ts_host>0时,所述主机接收到所述终端发送的第二上报数据包p4时,ts_dev=t4,如果t1>t4且(t4+60000-t1)<10000ms,则更新ts_host=t4,并发送已暂存副本的下行应答包r4于所述终端。
36.可选地,还包括:
37.产生第三上报数据队列,并将所述第三上报数据队列中的每个第三上报数据包发
送至所述主机,其中,相邻的所述第三上报数据包的发送时间间隔为大于1s;
38.接收所述主机响应于接收的所述第三上报数据包发送的下行心跳包。
39.一种物联网数据透传系统,用于执行所述的物联网数据透传方法,其特征在于,包括终端和主机;
40.所述终端,用于接收主机发出的下行文件操作指令;并基于接收的所述下行文件操作指令,形成第一上报数据队列;应用时间邮戳ts对所述第一上报数据队列中每个第一上报数据包分配编号,并将具有相同编号的第一上报数据包组成一个上行分组数据包;以及采用回合制的发送方式将所有所述上行分组数据包逐批上传至所述主机;
41.所述主机,用于发送所述下行文件操作指令;以及接收所述终端上传的所有所述上行分组数据包。
42.本发明的有益效果在于:
43.本发明的物联网数据透传方法首先接收主机发出的下行文件操作指令,进而形成第一上报数据队列,然后应用时间邮戳ts对第一上报数据队列中每个第一上报数据包分配编号,并将具有相同编号的第一上报数据包组成一个上行分组数据包,最后采用回合制的发送方式将所有上行分组数据包逐批上传至主机;本发明的物联网数据透传方法可以以协议栈方式实现适配多种设备平台,且本发明的物联网数据透传方法提出的协议栈规则支持先缓存整帧图像、分段输出图像的先入先出方案,实现了图像文件在网络传输层之上的分段传输、重组和出错或丢包的分段重传修正机制,从而使得中低端单片机可以绕开高清拍摄所需的高带宽及高内存,而只需像驱动低速设备一样驱动现成的智能摄像模块,花费很少内存,就能够实现高清图像的拍摄和采集。
44.本发明的其它特征和优点将在随后具体实施方式部分予以详细说明。
附图说明
45.通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。
46.图1示出了根据本发明的一个实施例的一种物联网数据透传方法的流程图。
47.图2示出了根据本发明的一个实施例的一种物联网数据透传方法的设备平台体系的结构图。
48.图3示出了根据本发明的一个实施例的一种物联网数据透传系统的组网示意图。
具体实施方式
49.下面将更详细地描述本发明的优选实施方式。虽然以下描述了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
50.根据本发明的一种物联网数据透传方法,包括:
51.步骤1:接收主机发出的下行文件操作指令;
52.步骤2:基于接收的下行文件操作指令,形成第一上报数据队列;
[0059][0060]
在一个示例中,步骤4包括:
[0061]
步骤41:将每组上行分组数据包中一批第一预设数量的第一上报数据包上传至主机;
[0062]
步骤42:接收主机对该批第一上报数据包接收情况的应答包,并基于接收情况的应答包,将该批第一上报数据包中所有未上传至主机的第一上报数据包重新上传至主机,重复执行步骤42,直至该批第一上报数据包中所有未上传至主机的第一上报数据包均上传至主机;
[0063]
步骤43:将上行分组数据包中下一批第二预设数量的第一上报数据包上传至主机,重复执行步骤42-步骤43,直至该组上行分组数据包中所有第一上报数据包均上传至主机。
[0064]
具体地,本通道主要用于诸如数据文件上传等需要分包上传的操作。其中又根据方向分为两类:下行文件操作指令和上行分组数据包。
[0065]
(1)下行文件操作指令。由主机发出,指定了本次文件操作的分配编号以及具体操作、属性参数,例如单拍操作指令,分辨率、压缩比等。
[0066]
(2)上行分组数据包。终端执行文件指令后产生出文件,然后对该文件进行分组并打上顺序标签逐批上传。主机收到后再重组出原文件。
[0067]
在无线环境下进行文件分组上传,需要引入一系列机制以保证可靠性。
[0068]
(1)文件分配编号。直接用时间邮戳作为文件分配编号,目的是保证本文件在一段时间内全程操作的唯一准确性。因此终端在属于本文件的数据包上传过程中,所有分组包都使用同一个文件编号。
[0069]
(2)上传1回合=16连发+1个主机应答。终端对文件的分组为每包固定载荷1024字节。但若发一包就等待主机回应一次,则太低效率。所以采取回合制的发送方式。1回合=终端连发16个分包,然后主机以1个应答包来反应本回合16个分包的接收情况。终端由此得知哪些包已经送达,再连环发出本回合未成功的包,主机也再次回应,这样双方交互,直到终端得知本回合所有包都成功送达,则进入下一回合。
[0070]
注:除了最后一回合不确定连发包数,其他回合都是固定16发。
[0071]
(3)终端对于主机不遵从通道阻塞原则的处理。原则上主机应该遵从本通道阻塞的规矩。即发出一文件指令后,要么把文件接收完整,要么收到文件错误报告,才能继续进行新的文件指令。但如果开发者不遵从这个原则,比如在发出拍摄指令cmd1后没有等图像传输完毕就下发新的拍摄指令cmd2,终端分为两种情况对待:
[0072]
a.若终端还未开始发出任何对应cmd1的文件分包,cmd2会被直接丢弃。
[0073]
b.若终端已经开始了对应cmd1的文件分包上传,一旦收到cmd2,则终止cmd1所属文件的所有传输,直接执行cmd2。
[0074]
下行文件指令包格式如表1所示:
[0075]
表1
[0076][0077]
上行分组数据包格式如表2所示:
[0078]
表2
[0079][0080]
应答本回合接收情况之下行应答包格式如表3所示(与表2对应):
[0081]
表3
[0082][0083]
需要说明的是:
[0084]
(1)当终端发出本回合最后一个结尾包(参数9的bit7=1),会每25ms重复发出此包,直到收到主机应答。
[0085]
(2)当主机收到某分包的参数9的bit7=1,表示本回合第n轮连环发完毕,主机需要应答本回合最新的数据包接收情况。
[0086]
(3)假如本回合的第1轮连环发终端发了17~33号包,而主机只收到21~33号包,通过应答包把这个情况告知终端。则终端以20号包作为新的结尾包,把20号包的参数9的bit7置1,参数9的bit{4~0}的值+1,然后第2轮连环发出17、18、19、20号包。之后每隔25ms重复发20号,直到主机再次应答。
[0087]
(4)若结尾包重发次数>300没收到应答,终端终止传输。
[0088]
在一个示例中,步骤1之前还包括:
[0089]
步骤1’:通过终端心跳探针判断终端与主机之间的连接状态;
[0090]
所述步骤1’包括:
[0091]
步骤11’:获取沉默计时器记录的主机向终端传输下行数据包的第一时间间隔,判断第一时间间隔是否超出第一预设时间,如果是则发送心跳包至主机;
[0092]
步骤12’:获取沉默计时器记录的主机向终端转发的心跳包的第二时间间隔,并判断第二时间间隔是否超出第二预设时间,如果否,则恢复上行数据包的发送。
[0093]
具体地,终端心跳探针用于终端试探是否跟主机保持连线;终端自身运行有一个连线沉默计时器,每当收到主机的任何下行包,该计时器清零。因此在平时传输图像或其他数据时心跳包是不会发出的,只在双方均无数据交互达到一定时长才会发出心跳探针包。
[0094]
在一个示例中,当主机转发心跳包时,将沉默计时器进行清零操作。
[0095]
在一个示例中,步骤12’之后包括:
[0096]
步骤1201:如果第二时间间隔超出第二预设时间,发送一个心跳包于主机;
[0097]
步骤1202:判断是否接收到主机发出的对心跳包的应答包,如果否则继续发送新的心跳包于所述主机,重复执行步骤1202并统计心跳包的发送次数;
[0098]
步骤1203:如果心跳包的发送次数大于预设次数,则终端认为主机掉线,从而禁止上行数据包发出;
[0099]
步骤1204:检测与路由器ap的通信连接,如果与路由器ap的通信连接正常,则发送一个心跳包于所述主机,并重复执行步骤1202-步骤1204,直至收到主机对心跳包的应答包,恢复上行数据包发出。
[0100]
具体地,在实际应用中,整个心跳探针流程如下步骤:
[0101]
1.当终端连线沉默计时器>5s,停止计时并发心跳包给主机。
[0102]
2.主机收到后需要把该包转发回终端,以此清零沉默计时器。
[0103]
3.当终端超时3s没收到任何下行包,继续发第2~5个心跳包。
[0104]
4.当连续5个心跳包都超时收不到主机回复,则终端认为主机掉线,禁止一切wifi数据包发出,并转为检测与路由器ap的连线。
[0105]
5.如果ap连线正常则跳回步骤3循环,直到收到主机回复,则转为上线状态,恢复其他wifi包的发送。
[0106]
心跳探针包格式如表4所示(主机收到后原包发回即可):
[0107]
表4
[0108]
偏移长度名称说明32时间邮戳1~60000ms循环时值51通道类型+操作码0x0069参数9byte无定义
[0109]
在一个示例中,物联网数据透传方法还包括:
[0110]
产生第二上报数据队列,并将时间邮戳ts的邮戳值写入第二上报数据中队列对应的第二上报数据包相应字段;
[0111]
将一个第二上报数据包上传至主机;
[0112]
接收主机响应于接收的该第二上报数据包发送的下行应答包,发送相邻邮戳值的第二上报数据包于主机。
[0113]
在一个示例中,当终端发出一个第二上报数据包时,数据传输通道处于阻塞状态,直到接收到主机发送的下行应答包才解除阻塞状态。
[0114]
在一个示例中,主机接收第二上报数据包后,执行以下操作:
[0115]
当ts_host=0时,主机接收到终端发送的第二上报数据包p1时,更新ts_host=t1,并发送已暂存副本的下行应答包r1于终端;
[0116]
当ts_hos>0时,主机接收到终端发送的第二上报数据包p2时,ts_dev=t2,如果t1==t2,则表示p2是p1的重复包,进而主机丢弃p2并发送下行应答包r1副本于终端;
[0117]
当ts_hos>0时,主机接收到终端发送的第二上报数据包p3时,ts_dev=t3,如果t1<t3且(t3-t1)<10000ms,则更新ts_host=t3,并发送已暂存副本的下行应答包r3于终端;
[0118]
当ts_host>0时,主机接收到终端发送的第二上报数据包p4时,ts_dev=t4,如果t1>t4且(t4+60000-t1)<10000ms,则更新ts_host=t4,并发送已暂存副本的下行应答包r4于终端。
[0119]
具体地,终端上行精准报告包,指终端产生了上报数据(如串口上行转发,某按键触发之类),要求严格准确送达主机。因此需要主机收到后返回相应的应答。终端在发出一包后,此通道随即处于阻塞状态,后面有新报告产生的话只能排队等待或队列报满直接被丢弃,直到收到正确应答终端才解除阻塞,发出队列中的新报告;或重发次数超出最大值(比如主机掉线)而强制结束本次通信,并清空队列。
[0120]
这里引入2个概念:时间邮戳和接收端通道静止计时器,其目的是为了保证报告包的唯一性(在60s内的唯一性,已经足够),使得接收端准确识别重复的包从而避免重复执行操作,以及使得发送端识别到准确的应答,如表5所示。
[0121]
表5
[0122][0123]
在一个示例中,物联网数据透传方法还包括:
[0124]
产生第三上报数据队列,并将第三上报数据队列中的每个第三上报数据包发送至主机,其中,相邻的第三上报数据包的发送时间间隔为大于1s;
[0125]
接收主机响应于接收的第三上报数据包发送的下行心跳包。
[0126]
具体地,指终端产生了上报数据,但不要求每包都准确无误到达主机,即允许发生丢包。此类包原则上不需要主机应答,但最好主机收到后也发出下行心跳包(操作码=0x00,其他字段随便)来保持连线。此类报告包不宜发送周期太短,最好>1s一包。
[0127]
上行粗放报告包格式如表6所示:
[0128]
表6
[0129][0130]
根据本发明的一种物联网数据透传系统,用于执行所述的物联网数据透传方法,其特征在于,包括终端和主机;
[0131]
终端,用于接收主机发出的下行文件操作指令;并基于接收的下行文件操作指令,形成第一上报数据队列;应用时间邮戳ts对第一上报数据队列中每个第一上报数据包分配编号,并将具有相同编号的第一上报数据包组成一个上行分组数据包;以及采用回合制的发送方式将所有上行分组数据包逐批上传至主机;
[0132]
主机,用于发送下行文件操作指令;以及接收终端上传的所有上行分组数据包。
[0133]
实施例1
[0134]
如图1所示,根据本发明的一种物联网数据透传方法,包括:
[0135]
步骤1:接收主机发出的下行文件操作指令;
[0136]
步骤2:基于接收的下行文件操作指令,形成第一上报数据队列;
[0137]
步骤3:应用时间邮戳ts对第一上报数据队列中每个第一上报数据包分配编号,并将具有相同编号的第一上报数据包组成一个上行分组数据包;
[0138]
步骤4:采用回合制的发送方式将所有上行分组数据包逐批上传至主机。
[0139]
其中,步骤4包括:
[0140]
步骤41:将每组上行分组数据包中一批第一预设数量的第一上报数据包上传至主机;
[0141]
步骤42:接收主机对该批第一上报数据包接收情况的应答包,并基于接收情况的应答包,将该批第一上报数据包中所有未上传至主机的第一上报数据包重新上传至主机,重复执行步骤42,直至该批第一上报数据包中所有未上传至主机的所述第一上报数据包均上传至主机;
[0142]
步骤43:将上行分组数据包中下一批第二预设数量的第一上报数据包上传至主机,重复执行步骤42-步骤43,直至该组上行分组数据包中所有第一上报数据包均上传至主机。
[0143]
其中,步骤1之前还包括:
[0144]
步骤1’:通过终端心跳探针判断终端与主机之间的连接状态;
[0145]
步骤1’包括:
[0146]
步骤11’:获取沉默计时器记录的主机向终端传输下行数据包的第一时间间隔,判断第一时间间隔是否超出第一预设时间,如果是则发送心跳包至主机;
[0147]
步骤12’:获取沉默计时器记录的主机向终端转发的心跳包的第二时间间隔,并判断第二时间间隔是否超出第二预设时间,如果否,则恢复上行数据包的发送。
[0148]
其中,当主机转发心跳包时,将沉默计时器进行清零操作。
[0149]
其中,步骤12’之后包括:
[0150]
步骤1201:如果第二时间间隔超出第二预设时间,发送一个心跳包于主机;
[0151]
步骤1202:判断是否接收到主机发出的对心跳包的应答包,如果否则继续发送新的心跳包于主机,重复执行步骤1202并统计心跳包的发送次数;
[0152]
步骤1203:如果心跳包的发送次数大于预设次数,则终端认为主机掉线,从而禁止上行数据包发出;
[0153]
步骤1204:检测与路由器ap的通信连接,如果与路由器ap的通信连接正常,则发送一个心跳包于主机,并重复执行步骤1202-步骤1204,直至收到主机对心跳包的应答包,恢复上行数据包发出。
[0154]
其中,物联网数据透传方法还包括:
[0155]
产生第二上报数据队列,并将时间邮戳ts的邮戳值写入第二上报数据中队列对应的第二上报数据包相应字段;
[0156]
将一个第二上报数据包上传至主机;
[0157]
接收主机响应于接收的该第二上报数据包发送的下行应答包,发送相邻邮戳值的第二上报数据包于主机。
[0158]
其中,当终端发出一个第二上报数据包时,数据传输通道处于阻塞状态,直到接收到主机发送的下行应答包才解除阻塞状态。
[0159]
其中,主机接收第二上报数据包后,执行以下操作:
[0160]
当ts_host=0时,主机接收到终端发送的第二上报数据包p1时,更新ts_host=t1,并发送已暂存副本的下行应答包r1于终端;
[0161]
当ts_hos>0时,主机接收到终端发送的第二上报数据包p2时,ts_dev=t2,如果t1==t2,则表示p2是p1的重复包,进而主机丢弃p2并发送下行应答包r1副本于终端;
[0162]
当ts_hos>0时,主机接收到终端发送的第二上报数据包p3时,ts_dev=t3,如果t1<t3且(t3-t1)<10000ms,则更新ts_host=t3,并发送已暂存副本的下行应答包r3于终端;
[0163]
当ts_host>0时,主机接收到终端发送的第二上报数据包p4时,ts_dev=t4,如果t1>t4且(t4+60000-t1)<10000ms,则更新ts_host=t4,并发送已暂存副本的下行应答包r4于终端。
[0164]
其中,物联网数据透传方法还包括:
[0165]
产生第三上报数据队列,并将第三上报数据队列中的每个第三上报数据包发送至所述主机,其中,相邻的第三上报数据包的发送时间间隔为大于1s;
[0166]
接收主机响应于接收的第三上报数据包发送的下行心跳包。
[0167]
具体地,本发明方法提出的物联网图像数据透传方法,可以以协议栈方式实现适配多种设备平台。尤其支持简单、成本低廉的物联网设备,如图2所示的一体化图像采集模块,通过uart或spi接口接收来自其他主机终端发来的拍摄指令,然后控制传感器拍摄并进行图像采集的相关工作,最后向主机分段发回图像数据包。从而将传统模式下繁琐复杂的图像拍摄过程,转化为只需根据协议格式给拍摄模块下发几条简单指令,然后异步的等待接收数据包并重组图像文件即可。
[0168]
实施例2
[0169]
如图3所示,一种物联网数据透传系统,用于执行所述的物联网数据透传方法,其
特征在于,包括终端和主机;
[0170]
终端,用于接收主机发出的下行文件操作指令;并基于接收的下行文件操作指令,形成第一上报数据队列;应用时间邮戳ts对第一上报数据队列中每个第一上报数据包分配编号,并将具有相同编号的第一上报数据包组成一个上行分组数据包;以及采用回合制的发送方式将所有上行分组数据包逐批上传至主机;
[0171]
主机,用于发送下行文件操作指令;以及接收终端上传的所有上行分组数据包。
[0172]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1