一种基于无线广播的升级方法和装置及电子设备与流程

文档序号:24069586发布日期:2021-02-26 14:27阅读:51来源:国知局
一种基于无线广播的升级方法和装置及电子设备与流程

[0001]
本发明涉及无线技术领域,具体涉及一种基于无线广播的升级方法和装置及电子设备。


背景技术:

[0002]
目前基于无线物联网组网的方案比较成熟,无线物联网组网广泛应用在智慧城市、智慧环境、智慧农业等领域中,例如在消防领域中,随着无线技术的发展,出现了基于无线的火灾报警系统,该系统由一个网关设备和终端节点组成,网关设备负责终端节点与服务器之间的消息转发,终端节点进行前端的火警探测。现有技术中采用无线通讯的终端节点支持代码远程升级功能,终端节点根据网关设备发送的升级包进行远程升级。
[0003]
由于火警优先的原因,通常火警要求终端节点的消息能在10秒内上报到服务器,而传统的无线升级方案,由于未考虑消防行业的实际情况,网关设备在向终端节点下发升级包时,没有预留火警的紧急上报通道,导致现有的基于无线的火灾报警系统不能很好的满足火警及时上报的要求。


技术实现要素:

[0004]
本发明提供一种基于无线广播的升级方法和装置及电子设备,用以解决现有的基于无线的火灾报警系统不能很好的满足火警及时上报的要求的问题。
[0005]
根据本申请实施例的第一方面,提供一种基于无线广播的升级方法,该方法包括:
[0006]
通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,确定是否存在需要升级的目标终端;
[0007]
若是,将指示所述目标终端升级的升级命令,通过第一信道广播,以使所述目标终端收到升级命令后,将当前信道从第一信道转换为第二信道,其中,所述第二信道仅用于升级数据包传输;
[0008]
开启第二信道广播所述目标终端的升级数据包,至广播完升级数据包时关闭所述第二信道。
[0009]
可选地,开启第二信道广播所述目标终端的升级数据包,包括:
[0010]
开启第二信道,并将当前信道在第一信道和第二信道间轮番的切换;或者
[0011]
开启第二信道,在通过第二信道广播所述目标终端的升级数据包的同时,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息。
[0012]
可选地,广播完升级数据包时关闭所述第二信道,包括:
[0013]
确定广播完升级数据时,通过第二信道向所述目标终端广播升级结束命令,以使所述第目标终端将当前信道从第二信道转换为第一信道;
[0014]
关闭所述第二信道。
[0015]
可选地,开启第二信道广播所述目标终端的升级数据包,包括:
[0016]
若所述网关设备和目标终端之间通过一条信道连接时,将当前信道在第一信道和
第二信道间轮番的切换;
[0017]
若所述网关设备和目标终端之间通过至少两条信道连接时,则将其中一条信道作为第一信道监听与所述网关设备通信的多个目标终端的上报信息,并将其中的另外一条信道作为第二信道广播所述目标终端的升级数据包。
[0018]
可选地,向目标终端广播的升级数据包,包括如下至少一项:
[0019]
帧头,用于携带指示网关设备与目标终端进行通信的控制信息;
[0020]
网关设备地址,所述网关设备地址为网关设备的ip地址;
[0021]
节点地址,所述节点地址用于表示所述网关设备通过广播形式下发数据包;
[0022]
帧命令类型;
[0023]
数据长度,用于表征所述数据包的大小;
[0024]
通讯数据,所述通讯数据为数据包的升级数据内容;
[0025]
校验和,所述校验和为广播数据包过程中数据位数的累加和。
[0026]
可选地,通过携带升级命令的升级数据包指示所述目标终端升级,且该所述升级命令数据包的通讯数据包括如下至少一项:
[0027]
用于指示所述目标终端开始升级的升级标志符;
[0028]
用于指示所述目标终端判断升级数据类型与目标终端自身类型是否一致的升级类型;
[0029]
用于指示所述目标终端判断升级数据版本和目标终端自身版本是否一致的升级数据代码版本号;
[0030]
用于指示所述目标终端判断当前升级状态的升级数据分包数,其中,所述升级数据包包括至少一个升级数据分包;
[0031]
用于指示所述目标终端判断所述数据包是否正确的升级数据分包总累加和;
[0032]
用于指示所述目标终端判断数据包是否正确的升级数据包的总crc16校验值;
[0033]
用于指示所述目标终端判断当前升级时长超出预设时长时,确定强制结束当前升级流程的升级超时时间。
[0034]
可选地,所述升级数据包中的通讯数据包括如下至少一项:
[0035]
用于指示所述目标终端开始升级的升级标志符;
[0036]
用于指示当前升级数据状态的升级数据分包序号;
[0037]
用于指示所述目标终端升级的升级数据内容;
[0038]
用于指示所述目标终端判断数据包是否正确的升级数据包的crc16校验值。
[0039]
可选地,所述升级数据包包括至少一个升级数据分包,还包括:
[0040]
向至少一个目标终端轮流发送确认升级状态的消息,并接收升级失败的至少一个目标终端上报的升级数据表,其中,所述升级数据表中携带目标终端接收各升级数据分包是否成功的标识;
[0041]
根据所述升级数据表,确定升级失败的至少一个目标终端;
[0042]
通过第二信道向所述升级失败的至少一个目标终端,发送携带未接收成功的升级数据分包,通过第一信道接收所述升级失败的至少一个目标终端上报的数据。
[0043]
根据本申请实施例的第二方面,提供一种基于无线广播的升级装置,该装置包括:
[0044]
监听模块,用于通过第一信道监听与所述网关设备通信的多个目标终端的上报信
息,确定是否存在需要升级的目标终端;
[0045]
转换模块,用于若存在需要升级的目标终端,将指示所述目标终端升级的升级命令,通过第一信道广播,以使所述目标终端收到升级命令后,将当前信道从第一信道转换为第二信道,其中,所述第二信道仅用于升级数据包传输;
[0046]
广播模块,用于开启第二信道广播所述目标终端的升级数据包,至广播完升级数据包时关闭所述第二信道。
[0047]
可选地,广播模块用于开启第二信道广播所述目标终端的升级数据包,具体用于:
[0048]
开启第二信道,并将当前信道在第一信道和第二信道间轮番的切换;或者
[0049]
开启第二信道,在通过第二信道广播所述目标终端的升级数据包的同时,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息。
[0050]
可选地,广播模块用于广播完升级数据包时关闭所述第二信道,具体用于:
[0051]
确定广播完升级数据时,通过第二信道向所述目标终端广播升级结束命令,以使所述第目标终端将当前信道从第二信道转换为第一信道;
[0052]
关闭所述第二信道。
[0053]
可选地,广播模块用于开启第二信道广播所述目标终端的升级数据包,具体用于:
[0054]
若所述网关设备和目标终端之间通过一条信道连接时,将当前信道在第一信道和第二信道间轮番的切换;
[0055]
若所述网关设备和目标终端之间通过至少两条信道连接时,则将其中一条信道作为第一信道监听与所述网关设备通信的多个目标终端的上报信息,并将其中的另外一条信道作为第二信道广播所述目标终端的升级数据包。
[0056]
可选地,广播模块用于向目标终端广播的升级数据包,包括如下至少一项:
[0057]
帧头,用于携带指示网关设备与目标终端进行通信的控制信息;
[0058]
网关设备地址,所述网关设备地址为网关设备的ip地址;
[0059]
节点地址,所述节点地址用于表示所述网关设备通过广播形式下发数据包;
[0060]
帧命令类型;
[0061]
数据长度,用于表征所述数据包的大小;
[0062]
通讯数据,所述通讯数据为数据包的升级数据内容;
[0063]
校验和,所述校验和为广播数据包过程中数据位数的累加和。
[0064]
可选地,转换模块用于通过携带升级命令的升级数据包指示所述目标终端升级,且该所述升级命令数据包的通讯数据包括如下至少一项:
[0065]
用于指示所述目标终端开始升级的升级标志符;
[0066]
用于指示所述目标终端判断升级数据类型与目标终端自身类型是否一致的升级类型;
[0067]
用于指示所述目标终端判断升级数据版本和目标终端自身版本是否一致的升级数据代码版本号;
[0068]
用于指示所述目标终端判断当前升级状态的升级数据分包数,其中,所述升级数据包包括至少一个升级数据分包;
[0069]
用于指示所述目标终端判断所述数据包是否正确的升级数据分包总累加和;
[0070]
用于指示所述目标终端判断数据包是否正确的升级数据包的总crc16校验值;
[0071]
用于指示所述目标终端判断当前升级时长超出预设时长时,确定强制结束当前升级流程的升级超时时间。
[0072]
可选地,所述升级数据包中的通讯数据包括如下至少一项:
[0073]
用于指示所述目标终端开始升级的升级标志符;
[0074]
用于指示当前升级数据状态的升级数据分包序号;
[0075]
用于指示所述目标终端升级的升级数据内容;
[0076]
用于指示所述目标终端判断数据包是否正确的升级数据包的crc16校验值。
[0077]
可选地,所述升级数据包包括至少一个升级数据分包,还包括:
[0078]
向至少一个目标终端轮流发送确认升级状态的消息,并接收升级失败的至少一个目标终端上报的升级数据表,其中,所述升级数据表中携带目标终端接收各升级数据分包是否成功的标识;
[0079]
根据所述升级数据表,确定升级失败的至少一个目标终端;
[0080]
通过第二信道向所述升级失败的至少一个目标终端,发送携带未接收成功的升级数据分包,通过第一信道接收所述升级失败的至少一个目标终端上报的数据。
[0081]
根据本申请实施例的第三方面,提供一种基于无线广播的升级的电子设备,包括:存储器、处理器;
[0082]
其中,所述存储器用于存储程序;
[0083]
所述处理器被配置为执行所述存储器中的程序,以实现上述第一方面提供的方法。
[0084]
根据本申请实施例的第四方面,提供一种芯片,所述芯片与用户设备中的存储器耦合,使得所述芯片在运行时调用所述存储器中存储的程序指令,实现本申请实施例上述各个方面以及各个方面涉及的任一可能涉及的方法。
[0085]
根据本申请实施例的第五方面,提供一种计算机可读存储介质,该计算机存储介质存储有程序指令,当其在计算机上运行时,使得计算机执行本申请实施例上述各个方面以及各个方面涉及的任一可能涉及的方法。
[0086]
根据本申请实施例的第六方面,提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本申请实施例上述各个方面以及各个方面涉及的任一可能涉及的方法。
[0087]
另外,第二方面至第六方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
[0088]
利用本发明提供的一种基于无线广播的升级方法和装置及电子设备,具有以下有益效果:
[0089]
本发明提供的一种基于无线广播的升级方法和装置及电子设备,可以在网关设备设置向终端广播携带升级开始命令或升级数据的数据包的第二信道,和接收终端上报数据的第一信道,由此,网关设备在通过第二信道向终端广播数据包时,可以通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,这样例如在消防行业,网关设备可以及时处理监听与所述网关设备通信的多个目标终端的上报信息,解决现有的基于无线的火灾报警系统不能很好的满足火警及时上报的要求的问题。
附图说明
[0090]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0091]
图1为本发明实施例提供的一种基于无线广播的升级方法示意图;
[0092]
图2为本发明实施例提供的一种网关设备通过半双工方式对终端进行升级的方法示意图;
[0093]
图3为本发明实施例提供的一种网关设备通过全双工方式对终端进行升级的示意图;
[0094]
图4为本发明实施例提供的一种基于无线广播的升级方法示意图;
[0095]
图5为本发明实施例提供的一种基于无线广播的升级方法示意图;
[0096]
图6为本发明实施例提供的一种基于无线广播的升级装置示意图;
[0097]
图7为本发明实施例提供的一种基于无线广播的升级的电子设备示意图。
具体实施方式
[0098]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0099]
本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0100]
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0101]
现有技术中采用无线通讯的终端节点支持代码远程升级功能,终端节点根据网关设备发送的升级包进行远程升级,现有的对上述终端进行远程升级的方法包括以下方式。
[0102]
其中包括一种基于lora通讯的升级方法,上述方法提供基于lora(long range radio,远距离无线电)通讯的升级方法、系统及相应的终端设备和服务器,以解决现有技术方案中的基于lora通讯的终端设备不具备升级功能的问题。具体的升级方法包括:将终端设备分组;响应于固件代码升级任务,服务器向各组终端设备发送用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,以及向各组终端设备在预设时间以预设扩频因子广播升级包;终端设备响应于服务器发送的升级通知指令,根据升级通知指令接收服务器广播的升级包。通过上述方式,实现基于lora通讯的终端设备固件代码升级,并基于终端设备分组以扩频因子sf的进行升级,提高升级效率。
[0103]
但是上述方案在设备升级过程中,还存在以下问题:
[0104]
1)上述方案在升级过程中,并未预留信息时间片,用于紧急状态的上传;
[0105]
2)上述方案中设备升级接收是通过升级超时时间来判定的,升级超时时间是由网关设备来下发的,网关设备无法提前终止升级流程,对于电池供电的设备来说,会比较浪费电池资源;
[0106]
3)上述方案中升级失败后,失败的节点重新和节点通讯时,是终端通讯节点随机和网关设备通讯,来获取失败的升级包的信息,采用这种方式,存在多个终端通讯节点同时通讯的情况下,可能出现获取升级包失败的情况,效率较低。
[0107]
基于上述问题,本申请实施例提出一种基于无线广播的升级方法,该方法可以在网关设备设置向终端广播携带升级开始命令或升级数据的数据包的第二信道,和接收终端上报数据的第一信道,由此,网关设备在通过第二信道向终端广播数据包时,可以通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,这样例如在消防行业,网关设备可以及时处理监听与所述网关设备通信的多个目标终端的上报信息,解决现有的基于无线的火灾报警系统不能很好的满足火警及时上报的要求的问题,且本申请提出的方法中,网关设备可以在确定满足升级异常条件或者完成所有升级数据的数据包的广播时,通过第二信道向连接的终端广播携带升级结束命令的数据包,也即网关设备可以根据实际情况来终止升级流程,且终端在确定接收携带升级数据的数据包的升级时间超过预设的升级超时时间时,也可以强制结束当前升级流程。
[0108]
如图1所示,为本申请实施例提供的一种基于无线广播的升级方法,包括:
[0109]
步骤s101,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,确定是否存在需要升级的目标终端;
[0110]
需要说明的是,一个网关设备可能连接多个目标终端,且与该网关设备连接的目标终端的类型也不完全一致,具体的,可能包括烟感、温度等不同类型的终端,网关设备在对终端升级的过程中,一次广播的升级数据包能够使一种类型的终端进行升级,因此,作为一种可选地实施方式,网关设备可以通过多个目标终端上报信息确定是否存在需要升级的目标终端;
[0111]
步骤s102,若是,将指示所述目标终端升级的升级命令,通过第一信道广播,以使所述目标终端收到升级命令后,将当前信道从第一信道转换为第二信道,其中,所述第二信道仅用于升级数据包传输;
[0112]
若存在需要升级的目标终端,则网关设备需要通过第一信道向目标终端广播数据包,通过第二信道监听与所述网关设备通信的多个目标终端的上报信息,当确定需要对连接的终端进行代码远程升级时,网关设备需要通过第一信道以广播的形式向目标终端广播相关的数据包,可选地,上述数据包的格式包括如下至少一项:
[0113]
1)帧头,帧头包括接收方主机物理地址的定位以及其它网络信息,用来区分不同数据的标记,可选地,本申请实施例中帧头的大小为1字节;
[0114]
2)网关设备地址,网关设备地址是具有路由功能的设备的ip地址,可选地,本申请实施例中网关设备地址的大小为2字节;
[0115]
3)节点地址,节点地址用于表示当前命令为广播命令,可选地,本申请实施例中,节点地址统一设置为ffh、ffh,节点地址的大小为2字节;
[0116]
4)帧命令类型,用于确定当前数据包的帧类型,可选地,本申请实施例中帧命令类型为2字节;
[0117]
5)数据长度,可选地,本申请实施例中数据长度为1字节;
[0118]
6)通讯数据,所述通讯地址为数据包的升级数据内容,不同作用的命令,对应的通讯数据格式也不相同,具体的,本申请实施例中数据包包括网关设备向终端广播指示目标终端进行升级的升级命令,网关设备向终端广播的升级数据包,和网关设备向终端广播的升级结束命令。下面将结合具体的命令类型具体介绍上述通讯数据的格式,在此不做赘述,可选地,本申请实施例中通讯数据的大小不超过55字节;
[0119]
7)校验和,在数据处理和数据通信领域中,用于校验目的地一组数据项的和。通常是以十六进制为数制表示的形式。如果校验和的数值超过十六进制的ff,也就是255,就要求其补码作为校验和。用来在通信中,尤其是远距离通信中保证数据的完整性和准确性,可选地,本申请实施例中校验和的大小为1字节。
[0120]
可选地,数据包格式中包括的上述内容的大小仅为本申请实施例中限定的一种,本领域的技术人员可以根据实际需求进行设定。
[0121]
可选地,网关设备首先通过第一信道向目标终端广播升级命令,对于携带升级命令的数据包,其中通讯数据的格式包括如下至少一项:
[0122]
1)用于指示目标终端开始升级的升级标志符,可选地,上述升级标识符可以用具体的数值表示,具体的,可以将升级标识符设置为1来表示目标终端开始升级,本申请实施例中,升级标志符的大小为1字节;
[0123]
2)用于指示目标终端判断升级数据类型与目标终端自身类型是否一致的升级类型,由于网关设备连接多个目标终端,且连接的各个目标终端的类型不同,因此目标终端在接收到网关设备广播的数据包时,需要判断当前升级的类型是否与目标终端自身的类型一致,例如,若网关设备下发的数据包中对应的升级类型设置为烟感,则此时烟感类型的终端需要进行升级,而非烟感类型的终端忽略此次升级过程,本申请实施例中,升级类型的大小为1字节;
[0124]
3)用于指示目标终端判断升级数据版本和目标终端自身版本是否一致的升级数据代码版本号,由于终端当前代码对应一定的版本号,若网关设备广播的数据包代码的版本号与终端代码对应的版本号一致时,则此时终端不需要进行升级,作为一种可选的实施方式,当网关设备广播的数据包代码的版本号低于终端代码的版本号,终端也不需要升级,仅在网关设备广播的数据包代码的版本号高于终端代码的版本号时,终端进行此次升级流程,本申请实施例中,升级数据代码版本号的大小为2字节;
[0125]
4)用于指示所述目标终端判断当前升级状态的升级数据分包数,其中,所述携带升级数据的数据包包括至少一个升级数据分包,可选地,当升级数据较大时,网关设备需要向终端发送多个升级数据分包,每一升级数据分包携带一部分的升级数据内容,终端可以通过判定当前的升级数据分包数,确定当前的升级状态,本申请实施例中,升级数据分包数的大小为2字节;
[0126]
5)用于指示所述目标终端判断所述数据包是否正确的升级数据分包总累加和,当升级完成时,终端可以通过判定当前收到的升级数据分包的总累加和,和携带升级开始命名的数据包中携带的升级数据分包总累加和是否一致,若不一致,则当前升级过程失败,本申请实施例中,升级数据分包总累加和的大小为2字节;
[0127]
6)用于指示所述目标终端判断数据包是否正确的升级数据包的总crc16校验值,
本申请实施例中,升级数据包的总crc16校验值为2字节,可选地,crc16即循环冗余校验码,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(crc)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性;
[0128]
7)用于指示所述目标终端判断当前升级时长超出预设时长时,确定强制结束当前升级流程的升级超时时间,当终端确定当前升级时长超过预设时长时,还没有接收到携带升级结束命令的数据包,则此时认为网关设备可能出现异常,终端可以强制结束当前升级流程,本申请实施例中,升级超时时间的大小为2字节。
[0129]
可选地,目标终端可以通过与网关设备连接的通道来上报数据,或者接受网关设备广播的数据包,但是对于单通道的终端来说,在该通道上同时只能进行数据上报或数据接收,在正常工作状态下,终端对应的通道作为第一信道上报数据,当接收到网关设备通过第一信道广播的携带升级开始命令的数据包时,终端由将连接的通道作为第一信道上报数据,转换为将通道作为第二信道接收数据。
[0130]
可选地,终端接收网关设备广播的携带升级开始命令的数据包后,通过判断数据包的内容确定是否符合升级要求,终端在接收到网关设备通过第一信道广播的携带升级开始命令的数据包时,可以对所述数据包中的网关设备地址、节点地址、升级标志符、升级类型或升级数据代码版本号等进行校验,若检验数据包中携带的上述信息准确或与终端对应,则将当前终端作为目标终端,并进行信道转换,上述信道转换为将连接的通道作为第一信道上报数据,转换为将通道作为第二信道接收数据。
[0131]
步骤s103,开启第二信道广播所述目标终端的升级数据包,至广播完升级数据包时关闭所述第二信道。
[0132]
可选的,网关设备在广播数据包,和/或接收数据时,可以通过半双工方式和全双工方式,针对半双工方式和全双工方式进行数据传输时,网关设备在开启第二信道广播所述目标终端的升级数据包,包括以下两种方式:
[0133]
1)开启第二信道,并将当前信道在第一信道和第二信道间轮番的切换;具体的,若所述网关设备和目标终端之间通过一条信道连接时,将当前信道在第一信道和第二信道间轮番的切换。
[0134]
2)开启第二信道,在通过第二信道广播所述目标终端的升级数据包的同时,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息;具体的,若所述网关设备和目标终端之间通过至少两条信道连接时,则将其中一条信道作为第一信道监听与所述网关设备通信的多个目标终端的上报信息,并将其中的另外一条信道作为第二信道广播所述目标终端的升级数据包。
[0135]
下面具体介绍本申请实施例中利用半双工和全双工通信方式进行广播的过程:
[0136]
1)半双工方式
[0137]
当网关设备仅支持单通道进行通信时,采用半双工的方式通过第二信道向目标终端广播升级数据包,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,具体的,所述第一信道和第二信道均为上述单通道;
[0138]
具体的,当网关设备仅支持单通道进行通信时,网关设备同时只能通过该通道接收终端上报的数据,或者向终端广播携带升级数据的数据包,在现有技术中,单通道的网关
设备在向终端广播升级数据时,无法接收当前终端或者其他终端上报的数据,但由于火警要求终端节点的消息能在10秒内上报到服务器,因此现有的基于无线的火灾报警系统不能很好的满足火警及时上报的要求;
[0139]
基于此,本申请实施例提出网关设备通过第二信道向目标终端广播携带升级数据的数据包时,轮番通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,或者同时通过第一信道监听与网关设备通信的多个目标终端的上报信息,具体的,可以但不限于预设一个定时转换时间,当网关设备向目标终端广播数据包的时间超过上述定时转换时间时,网关设备将当前通道转换为第一信道监听与所述网关设备通信的多个目标终端的上报信息,持续一段接收时间后,再将通道作为第二信道广播升级数据包,循环上述过程,直到网关设备向目标终端广播完上述升级数据,关闭第二信道,具体的流程图如图2所示。
[0140]
2)全双工方式
[0141]
当网关设备支持多通道进行通信时,采用全双工的方式通过第二信道向目标终端广播携带升级数据的数据包,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息;
[0142]
具体的,当网关设备支持多通道通信时,网关设备可以选取其中的一个通道作为第一信道,选取除第一信道外的一个其他通道作为第二信道,这样通过第二信道向目标终端广播升级数据包时,同时通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,具体的流程图如图3所示。
[0143]
可选地,对于携带升级数据的数据包,其中通讯数据的格式包括如下至少一项:
[0144]
1)用于指示所述目标终端开始升级的升级标志符,可选地,上述升级标识符可以用具体的数值表示,具体的,可以将升级标识符设置为1来表示终端开始升级,本申请实施例中升级标志符的大小为1个字节;
[0145]
2)用于指示所述升级数据状态的升级数据分包序号,可选地,终端可以随时根据升级数据分包序号来检验当前的升级数据状态,本申请实施例中,升级数据分包序号的大小为2个字节;
[0146]
3)用于指示所述目标终端升级的升级数据内容,可选地,终端根据上述升级数据内容来进行具体的升级操作,本申请实施例中,升级数据内容的大小为48字节;
[0147]
4)用于指示所述目标终端判断数据包是否正确的升级数据包的crc16校验值,可选地,crc16校验值,用于终端快速判断当前的这个升级数据分包是否正确,如果正确,将升级包保存到指定地址位置,升级标志置1,如果判断升级包错误,则该升级包丢弃,升级标志置0,本申请实施例中,crc16校验值的大小为2个字节。
[0148]
可选地,确定广播完升级数据时,通过第二信道向所述目标终端广播升级结束命令,以使所述第目标终端将当前信道从第二信道转换为第一信道;关闭所述第二信道,作为一种可选地实施方式,当升级异常时也可以通过第二信道向所述目标终端广播升级结束命令,以使所述第目标终端将当前信道从第二信道转换为第一信道,其中,升级异常条件包括但限于网关设备发生异常,或者终端发生断电等异常行为。
[0149]
可选地,上述升级结束命令中的通讯数据包括用于指示所述目标终端结束升级的升级标志符,具体的,该升级标志符可以通过具体的数值标识,例如将升级标志符置为0来表示升级结束命令。
[0150]
采用广播升级的方式,可以带来升级效率的极大提升。以一个网关设备连接32个终端为例,相比较原先传统的点对点的方案,在不考虑升级失败的情况下,采用点对点升级方案,假设网关设备完成一个终端的升级时间为5min,完成全部终端的升级,需要的总时间为5min*32=160min。而本申请实施例采用广播方式升级,由于所有的终端同时接受升级包数据,完成升级的时间只需5min,升级效率大大提升。
[0151]
可选地,当广播升级完成后,网关设备向至少一个目标终端轮流发送确认升级状态的消息,并接收升级失败的至少一个目标终端上报的升级数据表,其中,升级数据表中携带目标终端接收各升级数据分包是否成功的标识;
[0152]
网关设备根据所述升级数据表,确定升级失败的至少一个目标终端;
[0153]
网关设备采用半双工或全双工方式,通过第二信道向所述升级失败的至少一个目标终端,发送携带未接收成功的升级数据分包,通过第一信道接收所述升级失败的至少一个目标终端上报的数据。
[0154]
具体的,终端引入的升级表,一共有175个字节,每个字节有8个位,每个位表示1个升级包的状态,最多可以表示1400个升级包的升级状态,如果终端收到升级数据分包成功,则在对应的位置置1,否则置0。(以每个升级包有48个字节计算,可以支持升级67k大小的升级文件)。
[0155]
现有技术中,当升级失败后,失败的终端,重新和网关设备通讯时,是终端通讯节点随机和网关设备通讯,来获取失败的升级包的信息,采用这种方式,存在多个终端通讯节点同时通讯的情况下,可能出现获取升级包失败的情况,效率低下,但是本申请实施例的方式汇总,由于这种方式是网关设备发起的查询流程,不会出现多个终端同时向网关设备请求升级文件,进而导致数据碰撞的情况。
[0156]
可选地,本申请实施例可以采用semthch的sx1302的无线通讯芯片,上述无线通讯芯片内部有多个无线射频的通道,网关设备采用该无线芯片,可实现在不同的信道时,同时的数据发送和接收,支持全双工工作,相比较现有的单通道的方式,可提升升级效率。
[0157]
下面结合具体的实施例,详细介绍本申请实施例提出的一种基于无线广播的升级方法,其中,分别从网关设备为单通道通信和双通道通信两个方面进行阐述。
[0158]
如图4所示,为网关设备为单通道时,本申请提出的一种基于无线广播的升级方法,包括:
[0159]
步骤s401,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,确定是否存在需要升级的目标终端;
[0160]
步骤s402,若是,将指示所述目标终端升级的升级命令,通过第一信道广播,以使所述目标终端收到升级命令后,将当前信道从第一信道转换为第二信道,其中,所述第二信道仅用于升级数据包传输;
[0161]
步骤s403,开启第二信道,并将当前信道在第一信道和第二信道间轮番的切换;
[0162]
步骤s404,确定广播完升级数据时,通过第二信道向所述目标终端广播升级结束命令,以使所述第目标终端将当前信道从第二信道转换为第一信道,并关闭第二信道;
[0163]
步骤s405,向至少一个目标终端轮流发送确认升级状态的消息,并接收升级失败的至少一个目标终端上报的升级数据表,其中,所述升级数据表中携带目标终端接收各升级数据分包是否成功的标识;
[0164]
步骤s406,根据所述升级数据表,确定升级失败的至少一个目标终端;
[0165]
步骤s407,通过第二信道向所述升级失败的至少一个目标终端,发送携带未接收成功的升级数据分包,通过第一信道接收所述升级失败的至少一个目标终端上报的数据。
[0166]
如图5所示,为网关设备为多通道时,本申请提出的一种基于无线广播的升级方法,包括:
[0167]
步骤s501,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,确定是否存在需要升级的目标终端;
[0168]
步骤s502,将指示所述目标终端升级的升级命令,通过第一信道广播,以使所述目标终端收到升级命令后,将当前信道从第一信道转换为第二信道,其中,所述第二信道仅用于升级数据包传输;
[0169]
步骤s503,开启第二信道,在通过第二信道广播所述目标终端的升级数据包的同时,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息;
[0170]
步骤s504,确定广播完升级数据时,通过第二信道向所述目标终端广播升级结束命令,以使所述第目标终端将当前信道从第二信道转换为第一信道,并关闭第二信道;
[0171]
步骤s505,向至少一个目标终端轮流发送确认升级状态的消息,并接收升级失败的至少一个目标终端上报的升级数据表,其中,所述升级数据表中携带目标终端接收各升级数据分包是否成功的标识;
[0172]
步骤s506,根据所述升级数据表,确定升级失败的至少一个目标终端;
[0173]
步骤s507,通过第二信道向所述升级失败的至少一个目标终端,发送携带未接收成功的升级数据分包,通过第一信道接收所述升级失败的至少一个目标终端上报的数据。
[0174]
以上对本发明中一种基于无线广播的升级方法进行说明,以下对执行上述基于无线广播的升级的装置进行说明。
[0175]
请参阅图6本发明实施例提供的一种基于无线广播的升级的装置,包括:
[0176]
监听模块601,用于通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,确定是否存在需要升级的目标终端;
[0177]
转换模块602,用于若存在需要升级的目标终端,将指示所述目标终端升级的升级命令,通过第一信道广播,以使所述目标终端收到升级命令后,将当前信道从第一信道转换为第二信道,其中,所述第二信道仅用于升级数据包传输;
[0178]
广播模块603,用于开启第二信道广播所述目标终端的升级数据包,至广播完升级数据包时关闭所述第二信道。
[0179]
可选地,广播模块用于开启第二信道广播所述目标终端的升级数据包,具体用于:
[0180]
开启第二信道,并将当前信道在第一信道和第二信道间轮番的切换;或者
[0181]
开启第二信道,在通过第二信道广播所述目标终端的升级数据包的同时,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息。
[0182]
可选地,广播模块用于广播完升级数据包时关闭所述第二信道,具体用于:
[0183]
确定广播完升级数据时,通过第二信道向所述目标终端广播升级结束命令,以使所述第目标终端将当前信道从第二信道转换为第一信道;
[0184]
关闭所述第二信道。
[0185]
可选地,广播模块用于开启第二信道广播所述目标终端的升级数据包,具体用于:
[0186]
若所述网关设备和目标终端之间通过一条信道连接时,将当前信道在第一信道和第二信道间轮番的切换;
[0187]
若所述网关设备和目标终端之间通过至少两条信道连接时,则将其中一条信道作为第一信道监听与所述网关设备通信的多个目标终端的上报信息,并将其中的另外一条信道作为第二信道广播所述目标终端的升级数据包。
[0188]
可选地,广播模块用于向目标终端广播的升级数据包,包括如下至少一项:
[0189]
帧头,用于携带指示网关设备与目标终端进行通信的控制信息;
[0190]
网关设备地址,所述网关设备地址为网关设备的ip地址;
[0191]
节点地址,所述节点地址用于表示所述网关设备通过广播形式下发数据包;
[0192]
帧命令类型;
[0193]
数据长度,用于表征所述数据包的大小;
[0194]
通讯数据,所述通讯数据为数据包的升级数据内容;
[0195]
校验和,所述校验和为广播数据包过程中数据位数的累加和。
[0196]
可选地,转换模块用于通过携带升级命令的升级数据包指示所述目标终端升级,且该所述升级命令数据包的通讯数据包括如下至少一项:
[0197]
用于指示所述目标终端开始升级的升级标志符;
[0198]
用于指示所述目标终端判断升级数据类型与目标终端自身类型是否一致的升级类型;
[0199]
用于指示所述目标终端判断升级数据版本和目标终端自身版本是否一致的升级数据代码版本号;
[0200]
用于指示所述目标终端判断当前升级状态的升级数据分包数,其中,所述升级数据包包括至少一个升级数据分包;
[0201]
用于指示所述目标终端判断所述数据包是否正确的升级数据分包总累加和;
[0202]
用于指示所述目标终端判断数据包是否正确的升级数据包的总crc16校验值;
[0203]
用于指示所述目标终端判断当前升级时长超出预设时长时,确定强制结束当前升级流程的升级超时时间。
[0204]
可选地,所述升级数据包中的通讯数据包括如下至少一项:
[0205]
用于指示所述目标终端开始升级的升级标志符;
[0206]
用于指示当前升级数据状态的升级数据分包序号;
[0207]
用于指示所述目标终端升级的升级数据内容;
[0208]
用于指示所述目标终端判断数据包是否正确的升级数据包的crc16校验值。
[0209]
可选地,所述升级数据包包括至少一个升级数据分包,还包括:
[0210]
向至少一个目标终端轮流发送确认升级状态的消息,并接收升级失败的至少一个目标终端上报的升级数据表,其中,所述升级数据表中携带目标终端接收各升级数据分包是否成功的标识;
[0211]
根据所述升级数据表,确定升级失败的至少一个目标终端;
[0212]
通过第二信道向所述升级失败的至少一个目标终端,发送携带未接收成功的升级数据分包,通过第一信道接收所述升级失败的至少一个目标终端上报的数据。
[0213]
上面从模块化功能实体的角度对本申请实施例中的一种基于无线广播的升级装
置进行了描述,下面从硬件处理的角度对本申请实施例中的基于无线广播的升级的电子设备进行描述。
[0214]
请参阅图7,本申请实施例中一种基于无线广播的升级的电子设备,包括:
[0215]
至少一个处理器701和至少一个存储器702,以及总线系统709;
[0216]
其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行下列过程:
[0217]
通过第一信道监听与所述网关设备通信的多个目标终端的上报信息,确定是否存在需要升级的目标终端;
[0218]
若是,将指示所述目标终端升级的升级命令,通过第一信道广播,以使所述目标终端收到升级命令后,将当前信道从第一信道转换为第二信道,其中,所述第二信道仅用于升级数据包传输;
[0219]
开启第二信道广播所述目标终端的升级数据包,至广播完升级数据包时关闭所述第二信道。
[0220]
图7是本申请实施例提供的一种基于无线广播的升级的电子设备示意图,该设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(英文全称:central processing units,英文简称:cpu)701(例如,一个或一个以上处理器)和存储器702,一个或一个以上存储应用程序704或数据705的存储介质703(例如一个或一个以上海量存储设备)。其中,存储器702和存储介质703可以是短暂存储或持久存储。存储在存储介质703的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对信息处理装置中的一系列指令操作。更进一步地,处理器701可以设置为与存储介质703通信,在设备700上执行存储介质703中的一系列指令操作。
[0221]
设备700还可以包括一个或一个以上有线或无线网络接口707,一个或一个以上输入输出接口708,和/或,一个或一个以上操作系统706,例如windows server,mac os x,unix,linux,freebsd等。
[0222]
可选地,所述处理器用于开启第二信道广播所述目标终端的升级数据包,具体用于:
[0223]
开启第二信道,并将当前信道在第一信道和第二信道间轮番的切换;或者
[0224]
开启第二信道,在通过第二信道广播所述目标终端的升级数据包的同时,通过第一信道监听与所述网关设备通信的多个目标终端的上报信息。
[0225]
可选地,所述处理器用于广播完升级数据包时关闭所述第二信道,具体用于:
[0226]
确定广播完升级数据时,通过第二信道向所述目标终端广播升级结束命令,以使所述第目标终端将当前信道从第二信道转换为第一信道;
[0227]
关闭所述第二信道。
[0228]
可选地,所述处理器用于开启第二信道广播所述目标终端的升级数据包,具体用于:
[0229]
若所述网关设备和目标终端之间通过一条信道连接时,将当前信道在第一信道和第二信道间轮番的切换;
[0230]
若所述网关设备和目标终端之间通过至少两条信道连接时,则将其中一条信道作为第一信道监听与所述网关设备通信的多个目标终端的上报信息,并将其中的另外一条信
道作为第二信道广播所述目标终端的升级数据包。
[0231]
可选地,向目标终端广播的升级数据包,包括如下至少一项:
[0232]
帧头,用于携带指示网关设备与目标终端进行通信的控制信息;
[0233]
网关设备地址,所述网关设备地址为网关设备的ip地址;
[0234]
节点地址,所述节点地址用于表示所述网关设备通过广播形式下发数据包;
[0235]
帧命令类型;
[0236]
数据长度,用于表征所述数据包的大小;
[0237]
通讯数据,所述通讯数据为数据包的升级数据内容;
[0238]
校验和,所述校验和为广播数据包过程中数据位数的累加和。
[0239]
可选地,通过携带升级命令的升级数据包指示所述目标终端升级,且该所述升级命令数据包的通讯数据包括如下至少一项:
[0240]
用于指示所述目标终端开始升级的升级标志符;
[0241]
用于指示所述目标终端判断升级数据类型与目标终端自身类型是否一致的升级类型;
[0242]
用于指示所述目标终端判断升级数据版本和目标终端自身版本是否一致的升级数据代码版本号;
[0243]
用于指示所述目标终端判断当前升级状态的升级数据分包数,其中,所述升级数据包包括至少一个升级数据分包;
[0244]
用于指示所述目标终端判断所述数据包是否正确的升级数据分包总累加和;
[0245]
用于指示所述目标终端判断数据包是否正确的升级数据包的总crc16校验值;
[0246]
用于指示所述目标终端判断当前升级时长超出预设时长时,确定强制结束当前升级流程的升级超时时间。
[0247]
可选地,所述升级数据包中的通讯数据包括如下至少一项:
[0248]
用于指示所述目标终端开始升级的升级标志符;
[0249]
用于指示当前升级数据状态的升级数据分包序号;
[0250]
用于指示所述目标终端升级的升级数据内容;
[0251]
用于指示所述目标终端判断数据包是否正确的升级数据包的crc16校验值。
[0252]
可选地,所述升级数据包包括至少一个升级数据分包,还包括:
[0253]
向至少一个目标终端轮流发送确认升级状态的消息,并接收升级失败的至少一个目标终端上报的升级数据表,其中,所述升级数据表中携带目标终端接收各升级数据分包是否成功的标识;
[0254]
根据所述升级数据表,确定升级失败的至少一个目标终端;
[0255]
通过第二信道向所述升级失败的至少一个目标终端,发送携带未接收成功的升级数据分包,通过第一信道接收所述升级失败的至少一个目标终端上报的数据。
[0256]
本发明实施例还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述实施例提供的基于无线广播的升级的方法。
[0257]
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行上述实施例提供的基于无线广播的升级方法。
[0258]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0259]
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0260]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0261]
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0262]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0263]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0264]
以上对本申请所提供的技术方案进行了详细介绍,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1