本发明涉及嵌入式设备升级管理,特别指一种嵌入式设备固件升级方法。
背景技术:
1、嵌入式设备在运维过程中,经常需要对估计进行升级,但是,传统的嵌入式设备固件升级方法存在如下缺点:
2、1、在嵌入式设备的研发过程中,硬件复用的现象十分常见,硬件的复用能够降低嵌入式设备研发的成本、增加嵌入式设备的稳定性;但传统上并未针对固件进行明确的区分,随着项目增多可能会造成固件的管理混乱,无法校验烧写的固件是否属于该项目的固件,造成后期测试维护困难;2、嵌入式设备在迭代时会出现外设硬件(例如mcu型号、硬件版本号、半成品代码等)更换的情况,而传统上没有合适的校验方法,会导致错烧固件带来固件故障和损坏;3、下位机的固件升级通常需要笨重复杂的上位机,给后期维护升级带来不便。
3、因此,如何提供一种嵌入式设备固件升级方法,实现提升嵌入式设备固件升级的可靠性以及便捷性,成为一个亟待解决的技术问题。
技术实现思路
1、本发明要解决的技术问题,在于提供一种嵌入式设备固件升级方法,实现提升嵌入式设备固件升级的可靠性以及便捷性。
2、本发明是这样实现的:一种嵌入式设备固件升级方法,包括如下步骤:
3、步骤s10、将存储有固件的u盘插入升级盒的usb接口中;
4、步骤s20、升级盒从u盘读取并存储所述固件,解析所述固件得到头部信息段以及升级源文件,对所述头部信息段以及升级源文件进行第一校验;
5、步骤s30、升级盒通过rj45接口向下位机发送所述头部信息段,下位机对接收的所述头部信息段进行第二校验;
6、步骤s40、下位机从升级盒下载所述升级源文件;
7、步骤s50、下位机基于所述升级源文件对连接的嵌入式设备自动执行固件升级操作。
8、进一步的,所述步骤s10中,所述固件包括头部信息段以及升级源文件;
9、所述头部信息段包括项目号、半成品代码、mcu型号、升级源文件长度、硬件版本号、软件版本号、升级源文件的第一md5校验码、第二md5校验码;
10、所述第二md5校验码为对项目号、半成品代码、mcu型号、升级源文件长度、硬件版本号、软件版本号以及第一md5校验码进行md5计算得到。
11、进一步的,所述项目号、半成品代码、mcu型号、升级源文件长度、硬件版本号、软件版本号、第一md5校验码以及第二md5校验码的长度依次为16byte、16byte、28byte、4byte、16byte、16byte、16byte、16byte。
12、进一步的,所述升级源文件为bin格式。
13、进一步的,所述步骤s20具体为:
14、升级盒基于文件名以及文件格式从u盘读取所述固件,将所述固件存储至指定路径,并实时解析所述固件得到头部信息段以及升级源文件;
15、升级盒基于所述头部信息段携带的第一md5校验码对升级源文件进行第一完整性校验后,基于所述头部信息段携带的第二md5校验码对头部信息段进行第二完整性校验,以完成所述头部信息段以及升级源文件的第一校验,并通过显示屏显示所述第一校验的校验结果。
16、进一步的,所述步骤s30具体包括:
17、步骤s31、升级盒通过rj45接口向下位机发送头部信息段写入命令,下位机基于接收的所述头部信息段写入命令向升级盒反馈响应口令;
18、步骤s32、升级盒判断在预设时长内是否收到所述响应口令、所述响应口令的格式是否正确,若是,则与下位机通信成功,进入步骤s33;若否,则与下位机通信失败,通过显示屏显示通信失败通知;
19、步骤s33、升级盒通过rj45接口向下位机发送所述头部信息段;
20、步骤s34、下位机解析接收的所述头部信息段得到项目号、半成品代码、mcu型号、升级源文件长度、硬件版本号、软件版本号、第一md5校验码以及第二md5校验码,将所述项目号、半成品代码、mcu型号、硬件版本号以及软件版本号分别与指定的寄存器进行对比,若对比一致,则进入步骤s35;若对比不一致,则通过显示屏显示匹配失败通知;
21、步骤s35、下位机基于所述升级源文件长度对本机的存储空间进行校验,校验通过,则进入步骤s40;校验不通过,则通过显示屏显示存储空间不足通知。
22、进一步的,所述步骤s40具体包括:
23、步骤s41、升级盒将所述升级源文件依序分割为若干个报文,依序设定各所述报文的报文id;
24、步骤s42、下位机基于所述报文id依序从升级盒下载所述报文,当所述报文传输中断时,产生一个对应的断点标志位;
25、步骤s43、下位机基于所述软件版本号、断点标志位以及报文id生成断点续传口令,将所述断点续传口令发送给升级盒;
26、步骤s44、升级盒对接收的所述断点续传口令进行校验后,将对应的所述报文发送给下位机;
27、步骤s45、下位机接收完所有的所述报文后,基于所述报文id将各报文组合成升级源文件,基于所述第一md5校验码对升级源文件进行完整性校验。
28、本发明的优点在于:
29、通过将存储有固件的u盘插入升级盒的usb接口中,升级盒从u盘读取并存储所述固件,解析固件得到头部信息段以及升级源文件,头部信息段包括项目号、半成品代码、mcu型号、升级源文件长度、硬件版本号、软件版本号、第一md5校验码以及第二md5校验码;接着升级盒对头部信息段以及升级源文件进行第一校验后,向下位机发送头部信息段,下位机对接收的头部信息段进行第二校验后,下位机从升级盒下载升级源文件,基于升级源文件对连接的嵌入式设备自动执行固件升级操作;即通过头部信息段携带的项目号、半成品代码、mcu型号、硬件版本号以及软件版本号,可快速进行项目、硬件的匹配,避免固件管理混乱,结合第一md5校验码以及第二md5校验码的md5校验,避免错烧固件,且升级过程中通过设有usb接口和rj45接口的升级盒连接u盘和下位机即可,无需笨重复杂的上位机,最终极大的提升了嵌入式设备固件升级的可靠性以及便捷性。
1.一种嵌入式设备固件升级方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种嵌入式设备固件升级方法,其特征在于:所述步骤s10中,所述固件包括头部信息段以及升级源文件;
3.如权利要求2所述的一种嵌入式设备固件升级方法,其特征在于:所述项目号、半成品代码、mcu型号、升级源文件长度、硬件版本号、软件版本号、第一md5校验码以及第二md5校验码的长度依次为16byte、16byte、28byte、4byte、16byte、16byte、16byte、16byte。
4.如权利要求2所述的一种嵌入式设备固件升级方法,其特征在于:所述升级源文件为bin格式。
5.如权利要求2所述的一种嵌入式设备固件升级方法,其特征在于:所述步骤s20具体为:
6.如权利要求2所述的一种嵌入式设备固件升级方法,其特征在于:所述步骤s30具体包括:
7.如权利要求2所述的一种嵌入式设备固件升级方法,其特征在于:所述步骤s40具体包括: