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

一种Lora设备自组网方法以及升级系统与流程

2022-07-30 17:50:57 来源:中国专利 TAG:

一种lora设备自组网方法以及升级系统
技术领域
1.本发明属于lora设备组网技术领域,具体涉及lora设备自组网方法以及升级系统。


背景技术:

2.如今正处于物联网的时代,物联网技术的发展,无线通信技术也同样受到了高度的重视,在各种的无线通信技术中,不仅仅需要速率和稳定性更高的5g技术,同样的我们也需要功耗低、距离远、连接大的lpwan技术,多样性的发展才能使我们能根据各自不同的情况也能选到适合的通信技术;其中,lora技术因其独特的灵活性,受到了广大物联网用户的认可;
3.lora因其功耗低,传输距离远,组网灵活等诸多特性与物联网碎片化、低成本、大连接的需求十分的契合,因此被广泛部署在智慧社区、智能家居和楼宇、智能表计、智慧农业、智能物流等多个垂直行业,前景广阔;
4.但是电池寿命和长距离通信之间的正确平衡,扩频因子是一个关键指标,扩频因子(sf)决定每秒发送多少个线性调频脉冲,即数据的载体,网络根据通信设备和网关之间的环境条件来决定扩展因子;较低的sf意味着每秒发送更多的chirps;因此,您可以每秒编码更多数据,较高的sf意味着每秒更少的chirps;因此,每秒能编码的数据较少。由于数据速率低,发送具有较高sf的相同数量的数据需要更长的传输时间,即空中时间;更长的通话时间意味着调制解调器的启动和运行时间更长,并且消耗更多的能量;因些如何实现自组网以及组网后如何自动设置合适的扩频因子实现lora设备长期性能最优化,以及在组网后设备之间的能否自动升级是迫切需要解决的问题。


技术实现要素:

5.本发明的目的在于提供一种,以解决lora设备无法自组网以及组网后无法达到性能最优化的问题。
6.为实现上述目的,本发明提供如下技术方案:一种lora设备自组网的方法,包括以下步骤:
7.入网步骤:
8.设置发送扩频因子和接收扩频因子,随机选择发送信道,并对选择的发送信道进行信道活动检测,若检测到该信道空闲,则发送入网报文,等待分配短地址,若分配短地址未超时,则入网成功;
9.扩频因子自适应步骤:
10.使用入网成功的扩频因子,并进入接收模式,若达到预设的发送时间则随机选择发送信道,并对选择的发送信道进行信道活动检测,若该信道空闲则发送数据;
11.若未达到预设的发送时间,检测是否收到报文,若收到报文后分析该报文类型若报文中载有链路复位指令则发送指令给设备,该设备重新执行入网步骤;
12.若报文中,载有心跳报文,则将心跳超时数值清零;
13.若心跳报文超时,则将心跳报文超时数值增加1,若心跳报文超时到达预定次数发送指令给设备,设备复位重新执行入网步骤;否则重新进入接收模式。
14.优选的,入网步骤中,若分配短地址超时则将发送因子和接收扩频因子数值均增加1,并返回随机选择发送信道。
15.优选的,入网步骤中,所述等待分配短地址超时时间默认值为10s。
16.优选的,所述心跳报文中设置有扩频因子的地址列表,收到心跳报文后,判断当前心跳报文的地址是否在地址列表中,若在地址列表中则根据地址列表中的命令调整扩频因子。
17.优选的,入网步骤和扩频因子自适应步骤中,若信道活动检测的状态为非空闲,则返回随机选择发送信道步骤。
18.优选的,所述发送和接收扩频因子初始值设为9,当扩频因子的数值为12时,若分配短地址时间超时,则扩频因子不再增加,重新执行入网步骤。
19.本发明另提供一种lora设备自组网方法的升级系统,包括:上位机;
20.透传模块;
21.子设备;
22.其中,所述上位机、透传模块、子设备均内置有单片机芯片,所述单片机芯片的flash区包括内置引导升级代码的bootloder区、用于运行应用的应用程序区;
23.所述应用程序区在使用时若实际应用程序小于应用程序区的50%容量时将应用程序区分成子应用程序区、备份程序区。
24.优选的,所述上位机与透传模块之间点对点的升级步骤包括:
25.上位机和透传模块执行入网步骤、扩频因子自适应步骤;
26.启动升级状态:所述上位机发送启动透传模块程序升级指令,所述透传模块对启动升级程序确认;
27.发送固件数据:所述上位机发送透传模块程序数据,所述透传模块对程序数据确认;
28.退出升级状态:所述上位机发送退出透传模块程序升级,所述透传模块:对退出升级程序确认。
29.优选的,所述上位机与子设备之间广播的升级步骤包括:
30.点对点发送进入广播升级状态:所述上位机发送启动子设备程序广播升级;所述子设备对程序数据确认;
31.其中,子设备有一个超时时间,从进入升级状态开始计时,每收到一次数据,计时重新开始,直到超时后自动退出升级状态;
32.广播发送固件数据:所述上位机第一次广播发送子设备程序数据,重复广播三次;
33.广播发送退出升级状态:所述上位机广播发送子设备退出程序升级,重复广播三次;
34.点对点发送查询子设备固件版本:所述上位机发送读取子设备固件版本,所述子设备回复固件版本;
35.点对点升级:所述上位机根据子设备固件版本统计情况对未升级成功的子设备进
行点对点升级,包括以下步骤:
36.启动升级状态:所述上位机发送启动子设备程序升级,所述子设备对启动升级程序确认;
37.发送固件数据:所述上位机发送子设备程序数据,所述子设备对程序数据确认;
38.退出升级状态:所述上位机发送退出子设备程序升级,所述子设备对退出升级程序确认。
39.优选的,所述报文格式:
40.报文头,用于标注类型,其中,子设备上行标注为wx-m、子设备上行标注为wx-s、透传模块标注为wx-p;
41.长度,用于记载报文总长度;
42.功能码,用于记载功能代码;
43.序号,用于记载帧序号,上下行报文之间的对应;
44.vlan,用于记载vlan号;
45.信道,用于指定指定通信信道;
46.源地址,用于发送端地址;
47.目的地址,用于接收设备地址,0xffff表示广播报文,若上行报文中,目的地址无效,其实际值为子设备接收信号强度;
48.未连接子设备数目,用于记载未连接子设备的数量;
49.未连接子设备id用于记载所有未连接的子设备id,每个id四个字节;
50.应用数据,用于记载应用数据;
51.校验码,用于记载差错校验码。
52.本发明的技术效果和优点:该lora设备自组网方法以及升级系统,实施便捷,配置简单,通过入网步骤,实现了设备的自动联网,解决了因中断造成的断网,通过扩频因子自适应步骤提高了使用时间,降低了运行的能耗,实现了设备运行的最优化,通过对报文的定义改进实现了传输的高效率,降低了通信的错误率,实现了自动升级,提高了工作效率。
附图说明
53.图1为本发明的流程图;
54.图2为本发明入网步骤的流程图;
55.图3为本发明扩频因子自适应步骤的流程图。
具体实施方式
56.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
57.本发明提供了如图1中所示的一种lora设备自组网的方法,包括以下步骤:
58.入网步骤:如图2所示,
59.设置发送扩频因子和接收扩频因子,随机选择发送信道,并对选择的发送信道进
行信道活动检测,若检测到该信道空闲,则发送入网报文,等待分配短地址,若分配短地址未超时,则入网成功;所述等待分配短地址超时时间默认值为10s。
60.入网步骤中,若分配短地址超时则将发送因子和接收扩频因子数值均增加1,并返回随机选择发送信道。
61.扩频因子自适应步骤:如图3所示,
62.使用入网成功的扩频因子,并进入接收模式,若达到预设的发送时间则随机选择发送信道,并对选择的发送信道进行信道活动检测,若该信道空闲则发送数据;
63.若未达到预设的发送时间,检测是否收到报文,若收到报文后分析该报文类型若报文中载有链路复位指令则发送指令给设备,该设备重新执行入网步骤;
64.若报文中,载有心跳报文,则将心跳超时数值清零;
65.若心跳报文超时,则将心跳报文超时数值增加1,若心跳报文超时到达预定次数发送指令给设备,设备复位重新执行入网步骤;否则重新进入接收模式。所述心跳报文中设置有扩频因子的地址列表,收到心跳报文后,判断当前心跳报文的地址是否在地址列表中,若在地址列表中则根据地址列表中的命令调整扩频因子。
66.本实施例中,入网步骤和扩频因子自适应步骤中,若信道活动检测的状态为非空闲,则返回随机选择发送信道步骤。
67.需要注意的是,所述发送和接收扩频因子初始值设为9,当扩频因子的数值为12时,若分配短地址时间超时,则扩频因子不再增加,重新执行入网步骤;
68.本发明另提供一种lora设备自组网方法的升级系统,包括:上位机;
69.透传模块;
70.子设备;
71.其中,所述上位机、透传模块、子设备均内置有单片机芯片,所述单片机芯片的flash区包括内置引导升级代码的bootloder区、用于运行应用的应用程序区;本实施例中,单片机芯片为stm32;
72.所述应用程序区在使用时若实际应用程序小于应用程序区的50%容量时将应用程序区分成子应用程序区、备份程序区;本实施例中,将stm32单片机芯片的flash区(s78s总共192k)分成2个区;一个是bootloder区(设置为32k);一个是应用程序区(160k),当然当实际应用程序小于应用程序区的一半时,应用区分成2个区,一个应用程序区(80k),一个备份程序区(80k),当实际应用程序大于应用程序区的一半时,应用区不再划分,具体根据实际应用程序大小进行操作;bootloder区放置引导升级代码,此处代码的功能是,可以通过串口对系统进行升级;串口升级使用广播或点对点方式进行通讯;
73.标准帧:用于采集器线程和lora透传模块通信;
74.扩展帧:用于和子设备通信,包含完整的信道、地址等信息;
75.所述上位机与透传模块之间点对点的升级步骤包括:
76.上位机和透传模块执行入网步骤、扩频因子自适应步骤;
77.启动升级状态:所述上位机发送启动透传模块程序升级指令,所述透传模块对启动升级程序确认;
78.发送固件数据:所述上位机发送透传模块程序数据,所述透传模块对程序数据确认;
79.退出升级状态:所述上位机发送退出透传模块程序升级,所述透传模块:对退出升级程序确认。
80.所述上位机与子设备之间广播的升级步骤包括:
81.点对点发送进入广播升级状态:所述上位机发送启动子设备程序广播升级;所述子设备对程序数据确认;
82.其中,子设备有一个超时时间,从进入升级状态开始计时,每收到一次数据,计时重新开始,直到超时后自动退出升级状态;
83.广播发送固件数据:所述上位机第一次广播发送子设备程序数据,重复广播三次;
84.广播发送退出升级状态:所述上位机广播发送子设备退出程序升级,重复广播三次;
85.点对点发送查询子设备固件版本:所述上位机发送读取子设备固件版本,所述子设备回复固件版本;
86.点对点升级:所述上位机根据子设备固件版本统计情况对未升级成功的子设备进行点对点升级,包括以下步骤:
87.启动升级状态:所述上位机发送启动子设备程序升级,所述子设备对启动升级程序确认;
88.发送固件数据:所述上位机发送子设备程序数据,所述子设备对程序数据确认;
89.退出升级状态:所述上位机发送退出子设备程序升级,所述子设备对退出升级程序确认。
90.所述报文格式:
91.报文头,用于标注类型,其中,子设备上行标注为wx-m、子设备上行标注为wx-s、透传模块标注为wx-p;
92.长度,用于记载报文总长度;
93.功能码,用于记载功能代码;
94.序号,用于记载帧序号,上下行报文之间的对应;
95.vlan,用于记载vlan号;
96.信道,用于指定指定通信信道;
97.源地址,用于发送端地址;
98.目的地址,用于接收设备地址,0xffff表示广播报文,若上行报文中,目的地址无效,其实际值为子设备接收信号强度;
99.未连接子设备数目,用于记载未连接子设备的数量;
100.未连接子设备id用于记载所有未连接的子设备id,每个id四个字节;
101.应用数据,用于记载应用数据;
102.校验码,用于记载差错校验码;
103.本实施例中,报文格式结构如表1所示,
[0104][0105]
表1
[0106]
报文中的功能码如表2所示:
[0107]
[0108][0109]
表2
[0110]
本实施例中,透传模块的型号为dsv300c;
[0111]
dsv300c透传模块升级(点对点)
[0112]
启动升级状态(功能码0x30,无回复时重发三次)
[0113]
上位机:发送启动lora透传模块程序升级;
[0114]
模块:对启动升级程序确认(模块回复)(sts_ack)。
[0115]
发送固件数据(功能码0x31,无回复时重发三次)
[0116]
上位机:发送lora透传模块程序数据;
[0117]
模块:对程序数据确认(模块回复)(sts_ack)。
[0118]
退出升级状态(功能码0x32,无回复时重发三次)
[0119]
上位机:发送退出lora透传模块程序升级,
[0120]
模块:对退出升级程序确认(模块回复)(sts_ack)。
[0121]
dsv301m端点升级(广播 点对点)
[0122]
首先广播升级
[0123]
点对点发送进入广播升级状态(功能码0x35,无回复时重发三次)
[0124]
上位机:发送启动子设备程序广播升级;
[0125]
子设备:对程序数据确认(模块回复)(sts_ack)。
[0126]
需要注意的是:子设备有一个超时时间,从进入升级状态开始计时,每收到一次数据,计时重新开始,直到超时后自动退出升级状态。
[0127]
广播发送固件数据(功能码0x36)
[0128]
上位机第一次广播发送子设备程序数据,重复广播三次。
[0129]
广播发送退出升级状态(功能码0x37)
[0130]
上位机广播发送子设备退出程序升级,重复广播三次。
[0131]
点对点发送查询子设备固件版本(功能码0x38,无回复时重发三次)
[0132]
上位机:发送读取子设备固件版本(上位机统计升级情况)
[0133]
子设备:回复固件版本。
[0134]
其次点对点升级
[0135]
上位机根据子设备固件版本统计情况对未升级成功的子设备进行点对点升级,过程如下
[0136]
启动升级状态(功能码0x40,无回复时重发三次)
[0137]
上位机:发送启动子设备程序升级;
[0138]
子设备:对启动升级程序确认(子设备回复)(sts_ack)。
[0139]
发送固件数据(功能码0x41,无回复时重发三次)
[0140]
上位机:发送子设备程序数据;
[0141]
子设备:对程序数据确认(子设备回复)(sts_ack)。
[0142]
退出升级状态(功能码0x42,无回复时重发三次)
[0143]
上位机:发送退出子设备程序升级,
[0144]
子设备:对退出升级程序确认(子设备回复)(sts_ack)。
[0145]
五、应用数据
[0146]
状态应答(sts_ack)
[0147]
用于上行确认,一个字节,0表示否定,1表示肯定。
[0148]
lora透传模块升级参数数据(main_prog_para)
[0149][0150]
lora透传模块程序数据(main_prog_data)
[0151]
名称长度说明分包编号2具体分包编号程序数据n实际程序数据,(n暂定128)
[0152]
子设备升级参数数据(sub_dev_prog_para)
[0153][0154][0155]
子设备程序数据(sub_dev_prog_data)
[0156]
名称长度说明分包编号2具体分包编号程序数据n实际程序数据,(n暂定128)
[0157]
子设备回复程序版本数据(sts_version)
[0158]
名称长度说明固件版本日期6180508v1.00,ascii表示,去掉v和“.”[0159]
子设备升级参数数据(dev_prog_para)
[0160][0161]
子设备程序数据(dev_prog_data)
[0162]
名称长度说明分包编号2具体分包编号程序数据n实际程序数据,(n暂定128)
[0163]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献