CN115098139A - 固件更新方法、系统、下位机和存储介质 - Google Patents

固件更新方法、系统、下位机和存储介质 Download PDF

Info

Publication number
CN115098139A
CN115098139A CN202210857048.9A CN202210857048A CN115098139A CN 115098139 A CN115098139 A CN 115098139A CN 202210857048 A CN202210857048 A CN 202210857048A CN 115098139 A CN115098139 A CN 115098139A
Authority
CN
China
Prior art keywords
firmware
board card
image data
header information
upper computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210857048.9A
Other languages
English (en)
Inventor
曾飞
梁剑龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Pudu Technology Co Ltd
Original Assignee
Shenzhen Pudu Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Pudu Technology Co Ltd filed Critical Shenzhen Pudu Technology Co Ltd
Priority to CN202210857048.9A priority Critical patent/CN115098139A/zh
Publication of CN115098139A publication Critical patent/CN115098139A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种固件更新方法、系统、下位机、存储介质和计算机程序产品。所述方法由下位机执行,包括:在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。采用本方法能够防止更新错误的固件。

Description

固件更新方法、系统、下位机和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种固件更新方法、系统、下位机、存储介质和计算机程序产品。
背景技术
机器人系统的结构复杂,通常包含多种类型的可编程芯片,随着计算机技术的发展,出现了固件更新技术,一些可编程芯片的固件需要不断地更新升级,以满足产品功能更新的需求。
现有技术中,在进行固件更新时,通常是将固件以裸文件(编译器编译后的二进制文件)的形式发送至升级工具,通过升级工具将固件烧录至特定的芯片。然而,在固件传输过程中,由于固件更名或者固件传输错误等原因,可能出现因固件错误导致设备无法运行的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够防止更新错误固件的固件更新方法、系统、装置、下位机、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种固件更新方法,由下位机执行,所述方法包括:
在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
在其中一个实施例中,在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据之前,所述方法还包括:校验板卡硬件信息是否包含在支持硬件版本中;若是,则校验支持芯片型号是否与板卡芯片型号一致;若是,则校验产品身份标识是否与板卡所属产品的身份标识一致;若是,则校验功能代码是否与板卡功能代码一致,若是,则确定固件头信息与板卡描述信息相匹配。
在其中一个实施例中,上位机对固件头信息和固件镜像数据进行校验的过程包括:通过上位机并基于固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值;通过上位机校验参考固件头校验值与固件数据包中的固件头校验值是否一致,若一致,则确定固件头信息校验成功;通过上位机校验参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,若一致,则确定固件镜像数据校验成功。
在其中一个实施例中,下位机中的目标板卡中预先烧录有引导固件,接收由上位机发送的固件头信息,包括:通过引导固件接收由上位机发送的固件头信息;接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡,包括:通过引导固件接收由上位机发送的固件镜像数据,并通过引导固件将固件镜像数据烧录至目标板卡。
在其中一个实施例中,所述方法还包括:通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并通过烧录控制板将接收到的引导固件镜像数据烧录至目标板卡中。
在其中一个实施例中,目标通信接口与引导固件镜像数据的数据协议相对应,且目标通信接口为烧录控制板中的多个通信接口中的其中一个通信接口;烧录接口和目标通信接口通过治具中的顶针实现连接。
第二方面,本申请还提供了一种固件更新系统。所述系统包括上位机和下位机,其中:
上位机,用于接收固件数据包,并对固件数据包中的固件头信息和固件镜像数据进行校验,在校验成功后,将固件头信息发送至下位机,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
下位机,用于接收由上位机发送的固件头信息;
下位机,还用于获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
下位机,还用于在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
第三方面,本申请还提供了一种固件更新装置。所述装置包括:
接收模块,用于在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
获取模块,用于获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
烧录模块,用于在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
第四方面,本申请还提供了一种下位机。所述下位机包括存储器和处理器,所述存储器存储有计算机程序,所述处理器调用并执行所述计算机程序时实现以下步骤:
在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
上述固件更新方法、系统、装置、下位机、存储介质和计算机程序产品,通过先由上位机对固件数据包中的固件头信息和固件镜像数据进行校验,判断固件头信息和固件镜像数据的文件格式是否正确;在固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息、获取目标板卡的板卡描述信息,其中,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;再对固件头信息和板卡描述信息进行校验,判断固件头信息和板卡描述信息是否相匹配;在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡,从而将与目标板卡对应的待更新的固件进行更新,达到防止更新错误固件的目的。
附图说明
图1为一个实施例中固件更新方法的应用环境图;
图2为一个实施例中固件更新方法的流程示意图;
图3为一个实施例中校验固件头信息和固件镜像数据步骤的流程示意图;
图4为另一个实施例中对目标板卡进行初始化操作步骤的流程示意图;
图5为另一个实施例中固件烧录装置的结构框图;
图6为另一个实施例中固件更新方法的流程示意图;
图7为一个实施例中固件更新装置的结构框图;
图8为一个实施例中下位机的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的固件更新方法,可以应用于如图1所示的应用环境中。其中,下位机102通过网络与上位机104进行通信,在上位机104对固件数据包中的固件头信息和固件镜像数据均校验成功后,下位机102接收由上位机104发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;下位机102获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;在固件头信息与板卡描述信息相匹配的情况下,下位机102接收由上位机104发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
其中,下位机102可以但不限于是各种PLC(可编程逻辑控制器,全称为Programmable Logic Controller)、STM32(STM32微控制器,是ARM Cortex-M内核的32位微控制器)、单片机、FPGA(现场可编程逻辑门阵列,全称为Field Programmable GateArray)、ARM(ARM处理器,全称为Advanced RISC Machine)等,设置在设备内部,用于直接控制设备并获取设备的运行状况。下位机102包括目标板卡,目标板卡上包含有至少一种类型的可编程芯片,通过将各类固件的固件镜像数据烧录至对应的可编程芯片,能够实现固件的更新。上位机104可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、工控机、智能触摸屏等,可以设置在设备内部,也可以设置在设备外部,用于直接发送操作指令,提供用户操作交互界面并向用户展示反馈数据。以设备是机器人为例,下位机102可以是设置在机器人底盘内的STM32,而上位机104可以是设置在机器人机头内的智能触摸屏,上位机104也可以是设置在机器人外部的个人计算机等,本申请实施例对此不作限定。
在一个实施例中,如图2所示,提供了一种固件更新方法,该方法由图1中的下位机执行,包括以下步骤:
步骤202,在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种。
其中,固件数据包是将固件镜像数据按照固件打包格式进行打包得到的数据包,固件数据包包括固件镜像数据和固件头信息,固件镜像数据设置在固件数据包的末位,固件头信息设置在固件镜像数据的前一位。固件镜像数据是待更新的固件的镜像数据,即待更新的固件的源码编译后得到的固件二进制文件。
参考表一,固件数据包可以是按照如下的固件打包格式进行打包得到的:
表一
TAG 固件头长度 固件头crc校验值 固件头信息 固件镜像数据
如表一所示,固件数据包还可以包括固件类型标识(即TAG)、固件头长度和固件头校验值(即固件头crc校验值,crc表示循环冗余校验,全称为cyclic redundancy check),固件类型标识、固件头长度和固件头校验值设置在固件头信息的前面,固件类型标识设置在固件数据包的首位,固件头长度设置在固件类型标识的后一位,固件头校验值设置在固件头长度的后一位。
其中,固件类型标识为固定字符串,例如“ABCDEFG”,用于标识固件数据包的文件类型为固件类型。固件头长度为固件头信息的长度,其值可以是32位无符号整型数据,以字节为单位。固件头校验值是根据固件头信息生成的固件头信息的校验值,可以为crc32校验值,用于校验固件头信息的文件格式是否正确,其值可以是32位无符号整型数据。
参考表二,固件头信息可以是打包以下信息得到的:
表二
Figure BDA0003756023720000071
如表二所示,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识(即产品id,id表示身份标识,其全称为identity document)和功能代码,支持硬件版本设置在支持芯片型号的前一位,支持芯片型号设置在产品身份标识的前一位,产品身份标识设置在功能代码的前一位。其中,支持硬件版本是固件镜像数据所支持的硬件板卡的版本号,用于标识更新固件镜像数据所使用的硬件板卡的版本信息。支持芯片型号是固件镜像数据所支持的芯片的类型,用于标识更新固件镜像数据所使用的芯片的类型信息。产品身份标识是固件镜像数据所支持的硬件板卡所属产品的身份标识,用于标识更新固件镜像数据所对应的产品信息。功能代码是更新固件镜像数据的功能代码,用于实现更新固件镜像数据。
如表二所示,固件头信息还可以包括固件版本号、固件镜像长度和固件镜像校验值(即固件镜像crc校验值),固件版本号设置在固件头信息的首位,即支持硬件版本的前一位;固件镜像长度和固件镜像校验值设置在固件头信息的末位,固件镜像长度设置在固件镜像校验值的前一位。
其中,固件版本号为固件镜像数据的版本号,用于标识固件镜像数据的版本信息。固件镜像长度为固件镜像数据的长度,其值可以是32位无符号整型数据,以字节为单位。固件镜像校验值是根据固件镜像数据生成的固件镜像数据的校验值,可以为crc32校验值,用于校验固件镜像数据的文件格式是否正确。
具体地,下位机在接收由上位机发送的固件头信息之前,需要先通过上位机获取固件数据包并对固件数据包进行解析,对固件数据包中的固件头信息和固件镜像数据进行校验,判断固件头信息和固件镜像数据的文件格式是否正确,若均校验成功,则表征固件头信息和固件镜像数据的文件格式均正确。上位机在固件头信息和固件镜像数据均校验成功后,将固件头信息发送至下位机。其中,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种。
步骤204,获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种。
其中,目标板卡是待更新固件的芯片所在的板卡,设置在下位机内部。参考表三,目标板卡的板卡描述信息可以是以下信息:
表三
板卡硬件信息 板卡所属产品id 板卡芯片型号 板卡功能代码
如表三所示,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识(即板卡所属产品id)、板卡芯片型号和板卡功能代码,板卡硬件信息设置在板卡所属产品的身份标识的前一位,板卡所属产品的身份标识设置在板卡芯片型号的前一位,板卡芯片型号设置在板卡功能代码的前一位。其中,板卡硬件信息是目标板卡所支持的硬件板卡的版本号或版本列表,板卡所属产品的身份标识是目标板卡所属产品的身份标识,板卡芯片型号是目标板卡所使用的芯片的类型,板卡功能代码是运行设备的功能代码。例如,目标板卡的板卡硬件信息为A01、板卡所属产品的身份标识为PJ0001、板卡芯片型号为stm32f103c8t6和板卡功能代码为motor_driver。
具体地,下位机获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种。
步骤206,在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
具体地,下位机在接收由上位机发送的固件镜像数据之前,需要先通过下位机对固件头信息和板卡描述信息进行校验,判断固件头信息和板卡描述信息是否相匹配,若匹配,则表征固件数据包中的固件镜像数据是与目标板卡对应的待更新的固件的镜像数据,即固件数据包中的固件镜像数据属于正确的、目标板卡支持的固件;若不匹配,则表征固件数据包中的固件镜像数据属于错误的、目标板卡不支持的固件。下位机在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
上述固件更新方法中,通过先由上位机对固件数据包中的固件头信息和固件镜像数据进行校验,判断固件头信息和固件镜像数据的文件格式是否正确;在固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息、获取目标板卡的板卡描述信息,其中,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;再对固件头信息和板卡描述信息进行校验,判断固件头信息和板卡描述信息是否相匹配;在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡,从而将与目标板卡对应的待更新的固件进行更新,达到防止更新错误固件的目的。
在一个实施例中,在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据之前,固件更新方法还包括校验板卡硬件信息是否包含在支持硬件版本中;若是,则校验支持芯片型号是否与板卡芯片型号一致;若是,则校验产品身份标识是否与板卡所属产品的身份标识一致;若是,则校验功能代码是否与板卡功能代码一致,若是,则确定固件头信息与板卡描述信息相匹配。
具体地,下位机在接收由上位机发送的固件镜像数据之前,校验板卡硬件信息是否包含在支持硬件版本中;若板卡硬件信息包含在支持硬件版本中,则校验支持芯片型号是否与板卡芯片型号一致;若支持芯片型号与板卡芯片型号一致,则校验产品身份标识是否与板卡所属产品的身份标识一致;若产品身份标识与板卡所属产品的身份标识一致,则校验功能代码是否与板卡功能代码一致;若功能代码与板卡功能代码一致,则确定固件头信息与板卡描述信息相匹配;若支持硬件版本不包含在板卡硬件信息中、支持芯片型号与板卡芯片型号不一致、产品身份标识与板卡所属产品的身份标识不一致或者功能代码与板卡功能代码不一致,则确定固件头信息与板卡描述信息不匹配,反馈固件错误信息至上位机,以指示上位机重新获取固件数据包并对重新获取得固件数据包进行解析。
本实施例中,通过校验板卡硬件信息是否包含在支持硬件版本中、支持芯片型号是否与板卡芯片型号一致、产品身份标识是否与板卡所属产品的身份标识一致、以及功能代码是否与板卡功能代码一致,能够达到在接收由上位机发送的固件镜像数据之前,确定固件头信息与板卡描述信息相匹配的目的。
在一个实施例中,如图3所示,上位机对固件头信息和固件镜像数据进行校验的过程包括:
步骤302,通过上位机并基于固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值。
其中,参考固件头校验值是上位机根据固件数据包中的固件头信息生成的固件头信息的校验值,参考固件镜像校验值是上位机根据固件数据包中的固件镜像数据生成的固件镜像数据的校验值。
具体地,下位机在接收由上位机发送的固件头信息之前,需要先通过上位机获取固件数据包并对固件数据包进行解析。下位机通过上位机对固件数据包进行解析,获取到固件数据包中的固件头信息、固件头校验值、固件镜像数据和固件镜像校验值,通过上位机根据固件数据包中的固件头信息生成参考固件头校验值,根据固件数据包中的固件镜像数据生成参考固件镜像校验值。
步骤304,通过上位机校验参考固件头校验值与固件数据包中的固件头校验值是否一致,若一致,则确定固件头信息校验成功。
其中,固件数据包中的固件头校验值是在将固件镜像数据按照固件打包格式进行打包的过程中,通过PC机(个人计算机,全称为Personal Computer)等终端根据固件头信息生成的固件头信息的校验值,并在打包完成后,作为固件数据包的其中一个字段。
具体地,下位机通过上位机校验参考固件头校验值是否与固件数据包中的固件头校验值一致,若一致,则确定固件头信息校验成功,以通过上位机校验固件镜像数据;若不一致,则确定固件头信息校验失败,反馈文件格式错误信息,以指示上位机重新获取固件数据包并对重新获取得固件数据包进行解析。
步骤306,通过上位机校验参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,若一致,则确定固件镜像数据校验成功。
其中,固件镜像数据的固件镜像校验值是在将固件镜像数据按照固件打包格式进行打包的过程中,通过PC机等终端根据固件镜像数据生成的固件镜像数据的校验值,并在打包完成后,作为固件数据包的其中一个字段。
具体地,在固件头信息校验成功之后,下位机通过上位机校验参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,若一致,则确定固件头信息校验成功;若不一致,则确定固件镜像数据校验失败,反馈文件格式错误信息,以指示上位机重新获取固件数据包并对重新获取得固件数据包进行解析。
本实施例中,通过上位机并基于固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值,校验参考固件头校验值是否与固件数据包中的固件头校验值一致,以及参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,能够达到确定固件头信息和固件镜像数据均校验成功的目的。
在一个实施例中,下位机中的目标板卡中预先烧录有引导固件,接收由上位机发送的固件头信息,包括通过引导固件接收由上位机发送的固件头信息;接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡,包括通过引导固件接收由上位机发送的固件镜像数据,并通过引导固件将固件镜像数据烧录至目标板卡。
其中,引导固件为预先烧录至目标板卡中的升级引导程序,用于接收上位机发送的固件头信息、固件镜像数据,还用于从目标板卡的芯片中获取目标板卡的板卡描述信息。
具体地,在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,下位机通过引导固件接收由上位机发送的固件头信息;通过引导固件获取目标板卡的板卡描述信息;在固件头信息与板卡描述信息相匹配的情况下,通过引导固件接收由上位机发送的固件镜像数据,并通过引导固件将固件镜像数据烧录至目标板卡。
本实施例中,通过在下位机中的目标板卡中预先烧录引导固件,能够达到通过引导固件实现固件更新方法的目的,进而基于引导固件的固件更新方法能够解决由于固件命名错误、固件传输错误等导致的固件更新后设备无法运行的问题,提高了设备的稳定性、减少了故障率。
在一个实施例中,该固件更新方法还包括通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并将接收到的引导固件镜像数据烧录至目标板卡中。
其中,引导固件镜像数据是引导固件的镜像数据,即引导固件的源码编译后得到的固件二进制文件。烧录控制板为固件烧录装置的硬件工具。目标通信接口是与引导固件镜像数据对应的通信接口。
具体地,下位机通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并通过烧录控制板将接收到的引导固件镜像数据烧录至目标板卡中。
本实施例中,通过目标板卡的烧录接口接收由烧录控制板传输的引导固件镜像数据,并通过烧录控制板将接收到的引导固件镜像数据烧录至目标板卡中,能够达到将引导固件烧录至目标板卡的目的。
在一个实施例中,目标通信接口与引导固件镜像数据的数据协议相对应,且目标通信接口为烧录控制板中的多个通信接口中的其中一个通信接口;烧录接口和目标通信接口通过治具中的顶针实现连接。
其中,烧录控制板具有多个数据传输类型的通信接口,可以包含dap(调试适配协议,全称为debug adapter protocol)、can(控制器局域网总线,全称为controller areanetwork)、串口、spi(串行外设接口,全称为serial peripheral interface)、i2c(两线式串行总线,全称为inter-integrated circuit)。目标通信接口的数据传输类型与引导固件镜像数据的数据协议相对应,且目标通信接口为烧录控制板中的多个通信接口中的其中一个通信接口。
固件烧录工具为固件烧录装置的软件工具(PC工具),安装在PC机等终端,具备dap、can、串口、spi、i2c通信控制功能,用于固件镜像数据的下发。
治具用于固定目标板卡。治具中设有顶针,顶针用于将目标板卡的烧录接口和烧录控制板的通信接口连接。
具体地,在下位机通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据之前,下位机通过固件烧录工具确定烧录控制板的目标通信接口,将引导固件镜像数据发送至烧录控制板的目标通信接口,并通过治具中的顶针将目标板卡的烧录接口连接到烧录控制板的目标通信接口。
本实施例中,通过固件烧录工具确定目标通信接口,并将引导固件镜像数据发送至目标通信接口,并通过治具中的顶针将目标板卡的烧录接口连接到烧录控制板的目标通信接口,能够达到将目标板卡和烧录控制板电气连接的目的。并且,由于烧录控制板具有多个数据传输类型的通信接口,可以包含dap、can、串口、spi、i2c,固件烧录工具具备dap、can、串口、spi、i2c通信控制功能,因此通过统一固件烧录装置的软件工具和硬件工具,而不需要为了烧录一个板卡上各种芯片而打开各种软件工具、联结各类调试、烧录硬件工具,能够达到简化生产流程、提高烧录效率的目的。
在一个实施例中,如图4所示,提供了一种固件更新方法,包括在目标板卡贴片出厂后,对目标板卡进行初始化操作,包括:通过固件烧录装置将引导固件烧录至目标板卡中,并在引导固件烧录完成后,通过上位机通过协议并基于引导固件进行板卡描述信息配置。其中,引导固件用于接收上位机工具发送的固件头信息、固件镜像数据,并校验固件镜像数据的有效性,在固件镜像数据有效的情况下,将固件镜像数据烧录至目标板卡的mcu的flash中,引导固件还用于从mcu的flash中获取目标板卡的板卡描述信息。
如图5所示,提供了一种固件烧录装置,包括固件烧录工具、烧录控制板、治具。其中,固件烧录工具为PC端软件,属于固件烧录装置的软件工具,具备can通信、dap、串口、spi、i2c通信控制功能,用于固件下发。烧录控制板为固件烧录装置的硬件工具,包括usbhub(usb集线器),usb集线器包含can、dap、串口、spi、i2c硬件总线接口(通信接口)。治具用于固定各种硬件版本的板卡,并将对应板卡的烧录接口通过顶针连接到烧录控制板,实现对应板卡和烧录控制板的电气连接。
如图6所示,将固件镜像数据按照固件打包格式打包后得到固件数据包(也可以称为固件文件)之后,该固件更新方法还包括以下步骤:
1、上位机工具解析固件文件,获取固件头信息、固件头crc校验值、固件镜像数据和固件镜像crc校验值;其中,上位机工具为上位机中的软件,用于校验固件头信息和固件镜像数据,并下发固件头信息和固件镜像数据至引导固件;
2、上位机工具对固件头信息进行校验,基于固件头信息生成参考固件头校验值,校验参考固件头校验值与固件头crc校验值是否一致,确定固件头信息是否校验成功;
3、若固件头信息校验成功,则上位机工具对固件镜像数据进行校验,基于固件镜像数据生成参考固件镜像校验值,校验参考固件镜像校验值与固件镜像crc校验值是否一致,确定固件镜像数据是否校验成功;若固件头信息校验不成功,则上位机工具输出文件非法格式错误信息;
4、若固件镜像数据校验成功,则上位机工具发送固件头信息至引导固件;若固件镜像数据校验不成功,则上位机工具输出文件非法格式错误信息;
5、引导固件接收固件头信息,并获取目标板卡的板卡描述信息;其中,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码,目标板卡的板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码,板卡描述信息保存在目标板卡的mcu内置flash中;
6、引导固件校验板卡硬件信息是否在支持硬件版本中;
7、若是,则引导固件校验支持芯片型号是否与板卡芯片型号一致;若否,则引导固件反馈不支持固件错误;
8、若是,则引导固件校验产品id是否与板卡所属产品id一致;若否,则引导固件反馈不支持固件错误;
9、若是,则引导固件校验功能代码是否与板卡功能代码一致;若否,则引导固件反馈不支持固件错误;
10、若是,则引导固件确定固件镜像数据为有效,引导固件接收固件镜像数据;
11、引导固件烧录固件镜像数据至目标板卡的flash。
本实施例中,通过对固件镜像数据进行打包,并通过引导固件对打包后的固件数据包进行更新,能够达到固件更新时防止更新错误固件的目的。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种固件更新系统,系统包括上位机和下位机,其中:
上位机,用于接收固件数据包,并对固件数据包中的固件头信息和固件镜像数据进行校验,在校验成功后,将固件头信息发送至下位机,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
下位机,用于接收由上位机发送的固件头信息;
下位机,还用于获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
下位机,还用于在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
在一个实施例中,下位机还用于校验板卡硬件信息是否包含在支持硬件版本中;若是,则校验支持芯片型号是否与板卡芯片型号一致;若是,则校验产品身份标识是否与板卡所属产品的身份标识一致;若是,则校验功能代码是否与板卡功能代码一致,若是,则确定固件头信息与板卡描述信息相匹配。
在一个实施例中,上位机还用于基于固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值;校验参考固件头校验值与固件数据包中的固件头校验值是否一致,若一致,则确定固件头信息校验成功;校验参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,若一致,则确定固件镜像数据校验成功。
在一个实施例中,下位机中的目标板卡中预先烧录有引导固件,下位机还用于通过引导固件接收由上位机发送的固件头信息;通过引导固件接收由上位机发送的固件镜像数据,并通过引导固件将固件镜像数据烧录至目标板卡。
在一个实施例中,下位机还用于通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并通过烧录控制板将接收到的引导固件镜像数据烧录至目标板卡中。
在一个实施例中,目标通信接口与引导固件镜像数据的数据协议相对应,且目标通信接口为烧录控制板中的多个通信接口中的其中一个通信接口;烧录接口和目标通信接口通过治具中的顶针实现连接。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的固件更新方法的固件更新装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个固件更新装置实施例中的具体限定可以参见上文中对于固件更新方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种固件更新装置700,包括:接收模块702、获取模块704和烧录模块706,其中:
接收模块702,用于在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种。
获取模块704,用于获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种。
烧录模块706,用于在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
在一个实施例中,固件更新装置700还包括校验模块,校验模块用于校验板卡硬件信息是否包含在支持硬件版本中;若是,则校验支持芯片型号是否与板卡芯片型号一致;若是,则校验产品身份标识是否与板卡所属产品的身份标识一致;若是,则校验功能代码是否与板卡功能代码一致,若是,则确定固件头信息与板卡描述信息相匹配。
在一个实施例中,校验模块还用于通过上位机并基于固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值;通过上位机校验参考固件头校验值与固件数据包中的固件头校验值是否一致,校验参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,若均一致,则确定固件头信息和固件镜像数据均校验成功。
在一个实施例中,下位机中的目标板卡中预先烧录有引导固件,接收模块702还用于通过引导固件接收由上位机发送的固件头信息;烧录模块706还用于通过引导固件接收由上位机发送的固件镜像数据,并通过引导固件将固件镜像数据烧录至目标板卡。
在一个实施例中,烧录模块706还用于通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并通过烧录控制板将接收到的引导固件镜像数据烧录至目标板卡中。
在一个实施例中,目标通信接口与引导固件镜像数据的数据协议相对应,且目标通信接口为烧录控制板中的多个通信接口中的其中一个通信接口;烧录接口和目标通信接口通过治具中的顶针实现连接。
上述固件更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于下位机中的处理器中,也可以以软件形式存储于下位机中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种下位机,该下位机可以是各种PLC、STM32、单片机、FPGA、ARM等,设置在设备内部,其内部结构图可以如图8所示。该下位机包括目标板卡,目标板卡包括处理器、存储器和烧录接口。其中,处理器、存储器和烧录接口通过系统总线连接。其中,该下位机的处理器用于更新固件。该下位机的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该下位机的烧录接口用于处理器与上位机通过网络连接通信,并与烧录控制板电气连接。该计算机程序被处理器执行时以实现一种固件更新方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的下位机的限定,具体的下位机可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种下位机,包括存储器和处理器,存储器中存储有计算机程序,该处理器调用并执行计算机程序时实现以下步骤:在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:校验板卡硬件信息是否包含在支持硬件版本中;若是,则校验支持芯片型号是否与板卡芯片型号一致;若是,则校验产品身份标识是否与板卡所属产品的身份标识一致;若是,则校验功能代码是否与板卡功能代码一致,若是,则确定固件头信息与板卡描述信息相匹配。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过上位机并基于固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值;通过上位机校验参考固件头校验值与固件数据包中的固件头校验值是否一致,校验参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,若均一致,则确定固件头信息和固件镜像数据均校验成功。
在一个实施例中,下位机中的目标板卡中预先烧录有引导固件,处理器执行计算机程序时还实现以下步骤:通过引导固件接收由上位机发送的固件头信息;接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡,包括:通过引导固件接收由上位机发送的固件镜像数据,并通过引导固件将固件镜像数据烧录至目标板卡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并通过烧录控制板将接收到的引导固件镜像数据烧录至目标板卡中。
在一个实施例中,目标通信接口与引导固件镜像数据的数据协议相对应,且目标通信接口为烧录控制板中的多个通信接口中的其中一个通信接口;烧录接口和目标通信接口通过治具中的顶针实现连接。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:校验板卡硬件信息是否包含在支持硬件版本中;若是,则校验支持芯片型号是否与板卡芯片型号一致;若是,则校验产品身份标识是否与板卡所属产品的身份标识一致;若是,则校验功能代码是否与板卡功能代码一致,若是,则确定固件头信息与板卡描述信息相匹配。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过上位机并基于固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值;通过上位机校验参考固件头校验值与固件数据包中的固件头校验值是否一致,校验参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,若均一致,则确定固件头信息和固件镜像数据均校验成功。
在一个实施例中,下位机中的目标板卡中预先烧录有引导固件,计算机程序被处理器执行时还实现以下步骤:通过引导固件接收由上位机发送的固件头信息;接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡,包括:通过引导固件接收由上位机发送的固件镜像数据,并通过引导固件将固件镜像数据烧录至目标板卡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并通过烧录控制板将接收到的引导固件镜像数据烧录至目标板卡中。
在一个实施例中,目标通信接口与引导固件镜像数据的数据协议相对应,且目标通信接口为烧录控制板中的多个通信接口中的其中一个通信接口;烧录接口和目标通信接口通过治具中的顶针实现连接。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由上位机发送的固件头信息,固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;获取目标板卡的板卡描述信息,板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;在固件头信息与板卡描述信息相匹配的情况下,接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:校验板卡硬件信息是否包含在支持硬件版本中;若是,则校验支持芯片型号是否与板卡芯片型号一致;若是,则校验产品身份标识是否与板卡所属产品的身份标识一致;若是,则校验功能代码是否与板卡功能代码一致,若是,则确定固件头信息与板卡描述信息相匹配。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过上位机并基于固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值;通过上位机校验参考固件头校验值与固件数据包中的固件头校验值是否一致,校验参考固件镜像校验值是否与固件镜像数据的固件镜像校验值一致,若均一致,则确定固件头信息和固件镜像数据均校验成功。
在一个实施例中,下位机中的目标板卡中预先烧录有引导固件,计算机程序被处理器执行时还实现以下步骤:通过引导固件接收由上位机发送的固件头信息;接收由上位机发送的固件镜像数据,并将固件镜像数据烧录至目标板卡,包括:通过引导固件接收由上位机发送的固件镜像数据,并通过引导固件将固件镜像数据烧录至目标板卡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并通过烧录控制板将接收到的引导固件镜像数据烧录至目标板卡中。
在一个实施例中,目标通信接口与引导固件镜像数据的数据协议相对应,且目标通信接口为烧录控制板中的多个通信接口中的其中一个通信接口;烧录接口和目标通信接口通过治具中的顶针实现连接。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种固件更新方法,其特征在于,由下位机执行,所述方法包括:
在上位机对固件数据包中的固件头信息和固件镜像数据均校验成功后,接收由所述上位机发送的固件头信息,所述固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
获取目标板卡的板卡描述信息,所述板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
在所述固件头信息与所述板卡描述信息相匹配的情况下,接收由所述上位机发送的所述固件镜像数据,并将所述固件镜像数据烧录至所述目标板卡。
2.根据权利要求1所述的方法,其特征在于,所述上位机对所述固件头信息和所述固件镜像数据进行校验的过程包括:
通过所述上位机并基于所述固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值;
通过所述上位机校验所述参考固件头校验值与所述固件数据包中的固件头校验值是否一致,若一致,则确定所述固件头信息校验成功;
通过所述上位机校验所述参考固件镜像校验值是否与所述固件镜像数据的固件镜像校验值一致,若一致,则确定所述固件镜像数据校验成功。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述下位机中的目标板卡中预先烧录有引导固件,所述接收由所述上位机发送的固件头信息,包括:
通过所述引导固件接收由所述上位机发送的固件头信息;
所述接收由所述上位机发送的所述固件镜像数据,并将所述固件镜像数据烧录至所述目标板卡,包括:
通过所述引导固件接收由所述上位机发送的所述固件镜像数据,并通过所述引导固件将所述固件镜像数据烧录至所述目标板卡。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过所述目标板卡中的烧录接口,接收由烧录控制板中的目标通信接口传输的引导固件镜像数据,并通过所述烧录控制板将接收到的所述引导固件镜像数据烧录至所述目标板卡中。
5.根据权利要求4所述的方法,其特征在于,所述目标通信接口与所述引导固件镜像数据的数据协议相对应,且所述目标通信接口为所述烧录控制板中的多个通信接口中的其中一个通信接口;所述烧录接口和所述目标通信接口通过治具中的顶针实现连接。
6.一种固件更新系统,其特征在于,所述系统包括上位机和下位机,其中:
所述上位机,用于接收固件数据包,并对固件数据包中的固件头信息和固件镜像数据进行校验,在校验成功后,将所述固件头信息发送至下位机,所述固件头信息包括支持硬件版本、支持芯片型号、产品身份标识和功能代码中的至少一种;
所述下位机,用于接收由所述上位机发送的固件头信息;
所述下位机,还用于获取目标板卡的板卡描述信息,所述板卡描述信息包括板卡硬件信息、板卡所属产品的身份标识、板卡芯片型号和板卡功能代码中的至少一种;
所述下位机,还用于在所述固件头信息与所述板卡描述信息相匹配的情况下,接收由所述上位机发送的所述固件镜像数据,并将所述固件镜像数据烧录至所述目标板卡。
7.根据权利要求6所述的系统,其特征在于,所述上位机还用于:
基于所述固件头信息生成参考固件头校验值,以及基于固件镜像数据生成参考固件镜像校验值;
校验所述参考固件头校验值与所述固件数据包中的固件头校验值是否一致,若一致,则确定所述固件头信息校验成功;
校验所述参考固件镜像校验值是否与所述固件镜像数据的固件镜像校验值一致,若一致,则确定所述固件镜像数据校验成功。
8.一种下位机,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器调用并执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN202210857048.9A 2022-07-20 2022-07-20 固件更新方法、系统、下位机和存储介质 Pending CN115098139A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210857048.9A CN115098139A (zh) 2022-07-20 2022-07-20 固件更新方法、系统、下位机和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210857048.9A CN115098139A (zh) 2022-07-20 2022-07-20 固件更新方法、系统、下位机和存储介质

Publications (1)

Publication Number Publication Date
CN115098139A true CN115098139A (zh) 2022-09-23

Family

ID=83299109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210857048.9A Pending CN115098139A (zh) 2022-07-20 2022-07-20 固件更新方法、系统、下位机和存储介质

Country Status (1)

Country Link
CN (1) CN115098139A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115469910A (zh) * 2022-11-15 2022-12-13 浙江日风电气股份有限公司 一种光伏逆变器固件更新的方法、装置、系统及存储介质
CN116880868A (zh) * 2023-06-07 2023-10-13 珠海妙存科技有限公司 一种基于ufs的开卡方法、系统、装置与介质
CN117573147A (zh) * 2023-10-27 2024-02-20 福氏新能源技术(上海)有限公司 一种基于背板总线控制的mcu烧录控制方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115469910A (zh) * 2022-11-15 2022-12-13 浙江日风电气股份有限公司 一种光伏逆变器固件更新的方法、装置、系统及存储介质
CN115469910B (zh) * 2022-11-15 2023-02-03 浙江日风电气股份有限公司 一种光伏逆变器固件更新的方法、装置、系统及存储介质
CN116880868A (zh) * 2023-06-07 2023-10-13 珠海妙存科技有限公司 一种基于ufs的开卡方法、系统、装置与介质
CN117573147A (zh) * 2023-10-27 2024-02-20 福氏新能源技术(上海)有限公司 一种基于背板总线控制的mcu烧录控制方法

Similar Documents

Publication Publication Date Title
CN115098139A (zh) 固件更新方法、系统、下位机和存储介质
CN102736938B (zh) Fpga配置程序的烧写方法
US7650556B2 (en) System and method for checking and correcting BIOS errors
CN111813428A (zh) 终端固件的升级方法、装置、电子设备及存储介质
CN102426531A (zh) 一种智能终端、应用程序更新系统及其更新方法
WO2017202338A1 (zh) 机顶盒加载驱动的方法及系统
US9507680B2 (en) Verification system and method for automated verification of register information for an electronic system
CN102163155A (zh) 存储设备的升级方法及升级控制装置
CN106776105B (zh) 一种系统启动文件的校验及编译方法
CN112817935A (zh) 基于字段类型的数据处理方法、装置、设备及存储介质
CN115695186A (zh) 一种物联网设备升级方法、系统及电子设备
US20130080751A1 (en) Method and device for updating bios program for computer system
CN110569058A (zh) 系统升级方法、装置、终端及计算机可读存储介质
CN113760334A (zh) 一种ecu程序刷写方法以及装置
CN110019485A (zh) 一种产品数据入库方法、终端设备及存储介质
US20190146804A1 (en) Method for synchronization of system management data
CN112463042B (zh) 一种数据卷导入数据校验方法、装置、终端及存储介质
CN108052337A (zh) 一种eMMC量产工具的固件升级方法及装置
CN114564336A (zh) 数据一致性校验方法、装置、设备以及存储介质
CN115858256A (zh) 一种物联网设备的测试方法、装置及电子设备
CN102736976B (zh) 调试系统及其调试方法
CN112417012A (zh) 数据处理方法及系统
CN110865932A (zh) 一种程序内部接口测试方法、系统、终端及存储介质
CN113835762B (zh) 硬盘背板默认配置更新方法及系统
CN114968864B (zh) 验证环境的搭建方法、芯片的验证方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination