一种终端设备远程升级方法与流程

未命名 07-22 阅读:89 评论:0

1.本发明涉及软件升级技术领域,尤其涉及一种终端设备远程升级方法。


背景技术:

2.目前,嵌入式设备具有低成本高可靠的特点,广泛应用在工业,民用等诸多领域。嵌入式设备通常是面向特定应用场景开发的设备,包含业务模块以及嵌入式程序更新程序重新覆写。在实际应用中需要更新业务模块实现修正功能、增强在实现远程升级功能过程中,会出现各种异常情况导,例如升级过程中断电,网络传输过程中丢包等情况,就会出现业务模块代码不完整,这就造成无法正常使用。
3.现有方案中,一般采用多业务模块冗余备份容错,这样主业务模块损坏,可以有备份方案,保证可用。但上述方案中,也无法避免无法解决远程升级的问题,而且也导致存储成功增加,增加设备成本。
4.因此,现有技术存在缺陷,需要改进。


技术实现要素:

5.本发明的目的是克服现有技术的不足,提供一种终端设备远程升级方法。
6.本发明的技术方案如下:提供一种终端设备远程升级方法,包括如下步骤:
7.步骤1:发起升级之前,预先对嵌入式程序进行完整性检测;
8.步骤2:检测完整后,对数据包进行处理,针对性对硬件模块缓存的大小来决定分包大小,同时下发一个配置清单以及相关数据包数据到设备上通知设备,让嵌入式升级程序准备好升级任务,在未接收完整数据包的情况下,嵌入式程序不执行替换动作;
9.步骤3:当单包数据接收完成后,同步返回信息,告知升级服务器接收情况;
10.步骤4:当单包数据接收成功后,进行下一个数据包的发送;如果单包数据接收失败,或等待超时的情况,则进行补传;
11.步骤5:当终端设备判断接收完成所有的数据包并完成检验工作后,发起对业务模块进行替换;
12.步骤6:完成替换后,终端设备执行重启动作;
13.步骤7:完成对业务模块的升级后,上报升级设备当前版本号到升级服务系统,同步升级进度。
14.进一步地,所述步骤1中采用哈希算法验证文件的完整性。
15.进一步地,所述嵌入式升级程序采用socket通信管道接收下发的数据字节。
16.进一步地,在下发数据包的过程中,终端升级模块检测数据包的合法性,如果数据包合法,则正常进行传输任务;如果升级包不合法,则终止当前升级任务。
17.进一步地,在下发数据包的过程中,终端设备循环判断设备是否具有足够的存储空间,若终端设备空间足够,则正常进行传输任务;如果终端设备空间不足,则终止当前升级任务。
18.进一步地,在所述步骤5中,对下发单包数据使用循环冗余码校验,检验数据完整性。
19.进一步地,在升级过程中,在升级服务系统上显示升级进度以及预计升级完成时间。
20.采用上述方案,本发明所提供的终端设备远程升级方法,将数据包拆分成若干单包数据,并依次序进行下发,终端设备在接收完整的数据包之后,再对业务模块进行替换,从而解决嵌入式程序在升级过程中,在设备异常情况下容易导致设备无法正常使用的问题,完成在减少存储成本的远程以及升级过程中异常不会导致程序不完成覆写导致程序无法正常使用等情况,能够稳定快速的对嵌入式程序完成升级。
具体实施方式
21.以下结合具体实施例,对本发明进行详细说明。
22.本发明提供一种终端设备远程升级方法,包括如下步骤:
23.步骤1:升级系统服务会在启动终端设备时,检测远程升级系统是否配置更新程序,如果没有,则正常启动终端设备,如果存在更新程序,并且远程升级系统配置下发了升级指令,则终端设备的升级模块开始运行。升级系统服务是指的可以操作嵌入式程序版本管理,及提供下发升级数据包的一个服务,一般运行在liunx系统上。
24.发起升级之前,预先对嵌入式程序进行完整性检测。采用哈希算法验证文件的完整性。
25.步骤2:检测完整后,对数据包进行处理,针对性对硬件模块缓存的大小来决定分包大小,例如配置单包100个字节,则会对数据包每100字节进行封包。同时下发一个配置清单以及相关数据包数据,如数据包总大小、单包大小、包数量等数据到设备上通知设备,让嵌入式升级程序准备好升级任务,在未接收完整数据包的情况下,嵌入式程序不执行替换动作。所述嵌入式升级程序采用socket通信管道接收下发的数据字节。
26.步骤3:当单包数据接收完成后,同步返回信息,告知升级服务器接收情况。
27.在接收过程中,终端升级模块检测数据包的合法性,如果数据包合法,则正常进行传输任务;如果升级包不合法,则终止当前升级任务,避免进行无效操作。
28.同时,终端设备循环判断设备是否具有足够的存储空间,若终端设备空间足够,则正常进行传输任务;如果终端设备空间不足,则终止当前升级任务,保证业务系统正常使用。
29.步骤4:当单包数据接收成功后,进行下一个数据包的发送。如果单包数据接收失败,或等待超时的情况,则进行补传。进行补传时,只需要对上一包未成功的单包机型重新下发,不用重头开始下发,提高了升级效率,节省资源。
30.在升级过程中,在升级服务系统上显示升级进度以及预计升级完成时间。
31.步骤5:当终端设备判断接收完成所有的数据包并完成检验工作后,发起对业务模块进行替换。对下发单包数据使用循环冗余码校验(crc,cyclical redundancy check),检验数据完整性,保证数据完整,如果数据存在缺失的情况,则进行补传。
32.在接收完整数据包并校验完成后,再发起对业务模块的替换,避免在未接收完整数据包之前断电,或发生其他异常情况,而已经对业务模块发起替换动作,导致嵌入式设备
无法正常使用的情况。
33.步骤6:完成替换后,终端设备执行重启动作。
34.步骤7:完成对业务模块的升级后,上报升级设备当前版本号到升级服务系统,同步升级进度。
35.本发明所提供的终端设备远程升级方法,将数据包拆分成若干单包数据,并依次序进行下发,终端设备在接收完整的数据包之后,再对业务模块进行替换,从而解决嵌入式程序在升级过程中,在设备异常情况下容易导致设备无法正常使用的问题,完成在减少存储成本的远程以及升级过程中异常不会导致程序不完成覆写导致程序无法正常使用等情况,能够稳定快速的对嵌入式程序完成升级。
36.以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。


技术特征:
1.一种终端设备远程升级方法,其特征在于,包括如下步骤:步骤1:发起升级之前,预先对嵌入式程序进行完整性检测;步骤2:检测完整后,对数据包进行处理,针对性对硬件模块缓存的大小来决定分包大小,同时下发一个配置清单以及相关数据包数据到设备上通知设备,让嵌入式升级程序准备好升级任务,在未接收完整数据包的情况下,嵌入式程序不执行替换动作;步骤3:当单包数据接收完成后,同步返回信息,告知升级服务器接收情况;步骤4:当单包数据接收成功后,进行下一个数据包的发送;如果单包数据接收失败,或等待超时的情况,则进行补传;步骤5:当终端设备判断接收完成所有的数据包并完成检验工作后,发起对业务模块进行替换;步骤6:完成替换后,终端设备执行重启动作;步骤7:完成对业务模块的升级后,上报升级设备当前版本号到升级服务系统,同步升级进度。2.根据权利要求1所述的终端设备远程升级方法,其特征在于,所述步骤1中采用哈希算法验证文件的完整性。3.根据权利要求1所述的终端设备远程升级方法,其特征在于,所述嵌入式升级程序采用socket通信管道接收下发的数据字节。4.根据权利要求1所述的终端设备远程升级方法,其特征在于,在下发数据包的过程中,终端升级模块检测数据包的合法性,如果数据包合法,则正常进行传输任务;如果升级包不合法,则终止当前升级任务。5.根据权利要求1所述的终端设备远程升级方法,其特征在于,在下发数据包的过程中,终端设备循环判断设备是否具有足够的存储空间,若终端设备空间足够,则正常进行传输任务;如果终端设备空间不足,则终止当前升级任务。6.根据权利要求1所述的终端设备远程升级方法,其特征在于,在所述步骤5中,对下发单包数据使用循环冗余码校验,检验数据完整性。7.根据权利要求1所述的终端设备远程升级方法,其特征在于,在升级过程中,在升级服务系统上显示升级进度以及预计升级完成时间。

技术总结
本发明公开一种终端设备远程升级方法。本发明所提供的终端设备远程升级方法,将数据包拆分成若干单包数据,并依次序进行下发,终端设备在接收完整的数据包之后,再对业务模块进行替换,从而解决嵌入式程序在升级过程中,在设备异常情况下容易导致设备无法正常使用的问题,完成在减少存储成本的远程以及升级过程中异常不会导致程序不完成覆写导致程序无法正常使用等情况,能够稳定快速的对嵌入式程序完成升级。完成升级。


技术研发人员:何钰 何晓军 钟先银
受保护的技术使用者:深圳市德仪科技有限公司
技术研发日:2023.04.20
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐