本申请涉及物联网领域,具体而言,涉及一种基于udp局域网的整机烧录方法。
背景技术:
本方案适用于wifi类智能产品的整机阶段批量烧录固件工作。在wifi产品的生产过程中,可能会由于各种原因导致已经组装好的整机需要重新烧录固件。由于已经整机组装完毕,返工无疑会增加成本,造成时间和资源上的浪费。采用本方案,可以在不拆卸已安装好的整机前提下进行批量烧录升级固件。既减少了成本的浪费,同时采用批量的方式又提升了生产速度。
技术实现要素:
本申请的主要目的在于提供一种基于udp局域网的整机烧录方法,包括:
下位机向局域网特定端口发布广播包;
上位机监听到所述广播包后进入身份确认流程;
身份确认完成后进入烧录升级流程。
可选地,根据广播包的mac地址、固件版本信息等确认是否需要升级,如需要升级进入身份确认流程。
可选地,所述身份确认流程为:
所述上位机根据云端提供的账号信息与所述待烧录固件的固件信息进行信息交换;
通过预设的交互流程,所述固件经所述上位机获取所述云端返回的必要信息;
根据所述必要信息及所述固件的固件信息计算生成加密密钥。
可选地,所述预设的交互流程为:
将所述固件信息发送到所述云端;
所述云端返回校验结果和生成密钥参数;
所述上位机接收到所述秘钥参数后,通过预设的同信协议,以加密方式将所述秘钥参数发送到所述下位机;
所述下位机返回所述云端计算加密密钥参数,用于所述云端计算所述加密密钥;
所述下位机将所述参数发送给所述上位机;
所述下位机根据身份确认获得的信息生成加密密钥,此时所述上位机和所述下位机都获得了加密密钥。
可选地,所述烧录升级流程包括:
烧录升级流程中使用的加密密钥为所述身份确认流程所述下位机计算得出的所述加密密钥进行加解密;
根据所述云端获取到的固件升级文件,将文件校验信息,提前发送给所述下位机,用于后续校验文件是否烧录正确;
待进入准备升级状态,所述上位机将所述固件升级文件进行分包加密,且逐包将所述固件升级文件发送至所述下位机;
所述下位机接收到所述固件升级文件后,计算所述校验信息,并根据校验结果判断烧录文件是否发送成功。
可选地,逐包将所述固件升级文件发送至所述下位机,并检查数据包是否发送正确,如发生丢包,则重发所述数据包。
根据本申请的一方面,还提供了一种基于udp局域网的整机烧录系统,其特征在于,包括:
下位机,用于向局域网特定端口发布广播包;
上位机,用于上位机监听到所述广播包后进入身份确认流程;
烧录模块,用于身份确认完成后进入烧录升级流程。
本申请还公开了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
本申请还公开了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
与现有技术相比,本申请具有如下有益效果:
采用udp(userdatagramprotocol)通信方式可使用无线通信,无需破坏已组装好的成品,既节省了返工成本又节约了时间。同时由于可采用局域网广播发包的方式,上电即可进行广播包发送,无需进行tcp方式的网口设置,使用普通路由器即可进行烧录,节约了设置难度和设备成本。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和有益效果变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1-图2是根据本申请一个实施例的基于udp局域网的整机烧录方法的流程示意图;
图3是根据本申请一个实施例的系统示意图;
图4是根据本申请一个实施例的计算机设备的示意图;以及
图5是根据本申请一个实施例的计算机可读存储介质的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参照图1-3,本申请一实施例提供了一种基于udp局域网的整机烧录方法,包括:
s2:下位机向局域网特定端口发布广播包;
s4:上位机监听到所述广播包后进入身份确认流程;
s6:身份确认完成后进入烧录升级流程。
在本申请一实施例中,根据广播包的mac地址、固件版本信息等确认是否需要升级,如需要升级进入身份确认流程。
在本申请一实施例中,所述身份确认流程为:
所述上位机根据云端提供的账号信息与所述待烧录固件的固件信息进行信息交换;
通过预设的交互流程,所述固件经所述上位机获取所述云端返回的必要信息;
根据所述必要信息及所述固件的固件信息计算生成加密密钥。
在本申请一实施例中,所述预设的交互流程为:
将所述固件信息发送到所述云端;
所述云端返回校验结果和生成密钥参数;
所述上位机接收到所述秘钥参数后,通过预设的同信协议,以加密方式将所述秘钥参数发送到所述下位机;
所述下位机返回所述云端计算加密密钥参数,用于所述云端计算所述加密密钥;
所述下位机将所述参数发送给所述上位机;
所述下位机根据身份确认获得的信息生成加密密钥,此时所述上位机和所述下位机都获得了加密密钥。
在本申请一实施例中,所述烧录升级流程包括:
烧录升级流程中使用的加密密钥为所述身份确认流程所述下位机计算得出的所述加密密钥进行加解密;
根据所述云端获取到的固件升级文件,将文件校验信息,提前发送给所述下位机,用于后续校验文件是否烧录正确;
待进入准备升级状态,所述上位机将所述固件升级文件进行分包加密,且逐包将所述固件升级文件发送至所述下位机;
所述下位机接收到所述固件升级文件后,计算所述校验信息,并根据校验结果判断烧录文件是否发送成功。
在本申请一实施例中,逐包将所述固件升级文件发送至所述下位机,并检查数据包是否发送正确,如发生丢包,则重发所述数据包。
本申请还提供了,包括:
下位机,用于向局域网特定端口发布广播包;
上位机,用于上位机监听到所述广播包后进入身份确认流程;
烧录模块,用于身份确认完成后进入烧录升级流程。
本固件批量烧录方案的角色包括成品设备、升级软件、云端三部分组成。升级流程主要分为身份认证和烧录升级两部分。两部分都需要加密发送数据,确保安全。
首先云端部分需要配置固件升级所需要的固件信息,如固件升级文件、固件版本信息、校验信息、加密密钥等。同时云端需向软件提供身份认证账号。软件端根据账号登陆情况获取并下载云端信息到本地,进入升级准备状态。软件将升级固件文件存放在计算机本地,根据硬件下位机上行信息进入烧录流程。
固件下位机——即待烧录成品——上电后自动向局域网特定端口号发布广播包,广播包内容包括本地mac地址、固件版本信息等。上位机软件监听到广播包后进入身份确认流程,确认方式为根据云端提供的账号信息与固件进行信息交换。经过提前约定好的交互流程,固件经上位机获取云端返回的必要信息,再在云端和固件两方综合信息下计算生成加密密钥,此处生成的加密密钥为后续烧录发包使用,密钥本身不经软件转发,确保密钥安全。此处身份认证阶段与固件下位机通信采用aes256加密方式cbc模式,密钥需提前约定。
获取到加密密钥后,身份认证流程结束,进入烧录升级模式。烧录升级模式中使用的加密密钥采用身份认证阶段固件计算得出的加密密钥进行加解密。需确保每包数据的发送都经过加密。此处使用的加密方式为aes256ctr模式,此种加密方式加密速度快,在确保信息安全的前提下可以保证升级速度。
软件系统上位机的主要工作内容和流程为:
身份验证阶段通过云端提供的账号获取必要的烧录信息,如升级固件文件、固件版本信息等。同时接收局域网广播数据接收固件下位机发布的身份认证广播包。根据广播包的mac地址、固件版本信息等确认是否需要升级,如需要升级进入身份认证流程。将固件信息发送到云端,云端返回校验结果和生成密钥参数。软件接收到此数据后,通过提前约定好的同信协议,以加密方式将信息发送到固件。固件返回云端计算加密密钥参数,供云端计算加密密钥,同时将密钥发送给软件上位机,以便后续通信加密使用。固件根据身份认证获得的有效信息生成加密密钥,此时软件上位机和固件下位机都获得了有效的加密密钥,同时密钥在二者之间不做传输,确保了数据的安全。
身份认证阶段结束后,进入烧录升级阶段。烧录升级阶段根据云端获取到的固件升级文件,将文件校验信息,如crc32,提前发送给固件,以便后续校验文件是否烧录正确。待进入准备升级状态,软件将固件文件数据进行分包加密,逐包将数据发送给固件。同时需检查数据包是否发送正确,如发生丢包,需进行重发。固件接收到全部数据包后,计算crc32值,认为烧录文件发送成功。
与现有技术相比,本申请具有如下有益效果:
采用udp(userdatagramprotocol)通信方式可使用无线通信,无需破坏已组装好的成品,既节省了返工成本又节约了时间。同时由于可采用局域网广播发包的方式,上电即可进行广播包发送,无需进行tcp方式的网口设置,使用普通路由器即可进行烧录,节约了设置难度和设备成本。
请参照图4,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
请参照图5,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
1.一种基于udp局域网的整机烧录方法,其特征在于,包括:
下位机向局域网特定端口发布广播包;
上位机监听到所述广播包后进入身份确认流程;
身份确认完成后进入烧录升级流程。
2.根据权利要求1所述的基于udp局域网的整机烧录方法,其特征在于,根据广播包的mac地址、固件版本信息等确认是否需要升级,如需要升级进入身份确认流程。
3.根据权利要求2所述的基于udp局域网的整机烧录方法,其特征在于,所述身份确认流程为:
所述上位机根据云端提供的账号信息与所述待烧录固件的固件信息进行信息交换;
通过预设的交互流程,所述固件经所述上位机获取所述云端返回的必要信息;
根据所述必要信息及所述固件的固件信息计算生成加密密钥。
4.根据权利要求3所述的基于udp局域网的整机烧录方法,其特征在于,所述预设的交互流程为:
将所述固件信息发送到所述云端;
所述云端返回校验结果和生成密钥参数;
所述上位机接收到所述秘钥参数后,通过预设的同信协议,以加密方式将所述秘钥参数发送到所述下位机;
所述下位机返回所述云端计算加密密钥参数,用于所述云端计算所述加密密钥;
所述下位机将所述参数发送给所述上位机;
所述下位机根据身份确认获得的信息生成加密密钥,此时所述上位机和所述下位机都获得了加密密钥。
5.根据权利要求4所述的基于udp局域网的整机烧录方法,其特征在于,所述烧录升级流程包括:
烧录升级流程中使用的加密密钥为所述身份确认流程所述下位机计算得出的所述加密密钥进行加解密;
根据所述云端获取到的固件升级文件,将文件校验信息,提前发送给所述下位机,用于后续校验文件是否烧录正确;
待进入准备升级状态,所述上位机将所述固件升级文件进行分包加密,且逐包将所述固件升级文件发送至所述下位机;
所述下位机接收到所述固件升级文件后,计算所述校验信息,并根据校验结果判断烧录文件是否发送成功。
6.根据权利要求5所述的基于udp局域网的整机烧录方法,其特征在于,
逐包将所述固件升级文件发送至所述下位机,并检查数据包是否发送正确,如发生丢包,则重发所述数据包。
7.一种基于udp局域网的整机烧录系统,其特征在于,包括:
下位机,用于向局域网特定端口发布广播包;
上位机,用于上位机监听到所述广播包后进入身份确认流程;
烧录模块,用于身份确认完成后进入烧录升级流程。
8.一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,其特征在于,所述计算机程序在由处理器执行时实现如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,包括计算机可读代码,其特征在于,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行权利要求1-6中任一项所述的方法。
技术总结