CN117082048A - 一种嵌入式软件在线升级方法和系统 - Google Patents

一种嵌入式软件在线升级方法和系统 Download PDF

Info

Publication number
CN117082048A
CN117082048A CN202310866564.2A CN202310866564A CN117082048A CN 117082048 A CN117082048 A CN 117082048A CN 202310866564 A CN202310866564 A CN 202310866564A CN 117082048 A CN117082048 A CN 117082048A
Authority
CN
China
Prior art keywords
software
online upgrade
upgraded
file
online
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
CN202310866564.2A
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.)
Leihua Electronic Technology Research Institute Aviation Industry Corp of China
Original Assignee
Leihua Electronic Technology Research Institute Aviation Industry Corp of China
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 Leihua Electronic Technology Research Institute Aviation Industry Corp of China filed Critical Leihua Electronic Technology Research Institute Aviation Industry Corp of China
Priority to CN202310866564.2A priority Critical patent/CN117082048A/zh
Publication of CN117082048A publication Critical patent/CN117082048A/zh
Pending legal-status Critical Current

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种嵌入式软件在线升级方法和系统,涉及数据处理技术领域,所述方法包括预定义应答通讯机制,进行详细的指令控制和状态返回,准确识别软件在线升级相应的步骤;对于数据传输过程中存在的同步/校验传输错误,或者数据单包传输错误,或者在线升级数据整个文件传输错误时,启动灵巧的自适应精准错误重传机制,增加数据传输成功率;使用数据校验和、当前数据包CRC校验和、整个文件CRC校验和等多重校验机制,保证数据传输安全正确;数据文件进行双区乒乓烧录,保证嵌入式软件升级文件的安全备份性,从而有效提高了嵌入式软件在线升级的数据传输成功率、数据传输安全性、数据安全正确性和数据文件安全备份性,同时易于工程实现。

Description

一种嵌入式软件在线升级方法和系统
技术领域
本发明涉及数据处理技术领域,特别涉及一种嵌入式软件在线升级方法和系统。
背景技术
随着电子技术以及信息化产业的飞速发展,以嵌入式软件为核心的各种产品得到广泛应用。这些产品在生命周期内需对其功能进行完善,在线升级便是被广泛采用的一种功能完善机制,这种升级方式不受复杂环境的限制,充分提高了系统的升级的便利性与可维护性。
现有技术中的软件在线升级方法存在较多缺陷,例如:采用数据块无加密通讯机制,缺乏对于下发数据是否与待升级软件不匹配、数据文件烧录失败等问题的解决方案,且对于软件在线升级失败的处理方案较为复杂。
发明内容
有鉴于此,本发明第一方面提供了一种嵌入式软件在线升级方法,以解决现有技术中嵌入式软件在线升级的数据传输成功率、数据传输安全性、数据安全正确性和数据文件安全备份性较差的技术问题。该方法包括:
预设通讯协议,分别包括对应答通讯机制、软件加解密通讯机制、软件ID号匹配机制、多重校验机制、自适应精准错误重传机制的预设;
上位机和待升级软件基于所述预设的通讯协议进行通讯握手,握手成功后所述上位机和所述待升级软件基于所述预设通讯协议进行在线升级文件的数据块传输,所述在线升级文件的数据块传输包括多个单包数据块传输;
获得所述待升级软件接收的在线升级数据块,判断所述在线升级数据块中软件配置项ID号是否与所述待升级软件的配置项匹配,如果匹配,所述待升级软件根据所述在线升级数据块中的“单包在线升级数据块”计算出单包校验和,将所述单包校验和与“当前数据包CRC校验和”比对,获得所述单包数据块传输是否正确的结果;
如果所述单包数据块传输正确,进行所述在线升级文件中下一单包数据块的传输,所述待升级软件完成所述在线升级文件的全部单包数据块传输之后,根据接收的所有“单包在线升级数据块”拼接获得所述在线升级文件;
所述待升级软件对所述在线升级文件计算文件校验和,将所述文件校验和与“整个文件CRC校验和”进行比对,如果比对结果为正确,完成所述在线升级文件的传输。
进一步的,如果所述在线升级数据块中软件配置项ID号与所述待升级软件的配置项不匹配,所述待升级软件向所述上位机返回“升级软件ID号错误”状态,所述上位机终止所述待升级软件的在线升级并输出第一错误信息。
进一步的,如果所述单包校验和与所述“当前数据包CRC校验和”的比对结果为错误,重新获取当前包的所述在线升级数据块。
进一步的,如果所述文件校验和与“整个文件CRC校验和”的比对结果为正确,根据所述在线升级文件中任一单包的所述在线升级数据块的“加密升级类型”判断所述在线升级文件是否为加密数据;如果所述在线升级文件为加密数据,根据所述“加密升级类型”对应的解密算法对所述在线升级文件进行数据解密。
进一步的,如果所述文件校验和与所述“整个文件CRC校验和”的比对结果为错误,所述上位机对所述在线升级文件的全部单包数据块进行重发;预设所述上位机的重发次数阈值,判断所述上位机的重发次数是否超过所述重发次数阈值,如果所述上位机的重发次数超过所述重发次数阈值,所述上位机终止所述待升级软件的在线升级并输出第二错误信息。
进一步的,所述待升级软件接收所述上位机发送的所述在线升级数据块后,所述待升级软件反馈状态信息至所述上位机,包括:
判断所述上位机是否接收到所述状态信息,如果所述上位机未接收到所述状态信息或者接收所述状态信息错误,获得所述上位机的等待时间;
判断所述等待时间是否超出第一阈值,如果所述等待时间超出所述第一阈值,所述上位机对所述待升级软件重发当前包的所述在线升级数据块;
判断所述上位机的重发次数是否超过所述重发次数阈值,如果所述上位机的重发次数超过所述重发次数阈值,所述上位机终止所述待升级软件的在线升级并输出第三错误信息。
进一步的,完成所述在线升级文件的传输后,包括:
获得所述待升级软件的第一烧录分区,所述待升级软件的可用烧录分区包括第一烧录分区和第二烧录分区;
所述待升级软件对所述在线升级文件在所述第一烧录分区进行烧录,如果烧录成功,将所述第二烧录分区设置为所述待升级软件的下一次的烧录分区,完成所述待升级软件的升级;
如果所述在线升级文件在所述第一烧录分区烧录失败,将所述第一烧录分区作为所述待升级软件下一次的烧录分区,所述上位机终止所述待升级软件的在线升级并输出第四错误信息。
本发明第二方面还提供了一种一种嵌入式软件在线升级系统,所述系统包括:
通讯握手模块,用于预设通讯协议,分别包括对应答通讯机制、软件加解密通讯机制、软件ID号匹配机制、多重校验机制、自适应精准错误重传机制的预设;上位机和待升级软件基于所述预设的通讯协议进行通讯握手,握手成功后所述上位机和所述待升级软件基于所述预设通讯协议进行在线升级文件的数据块传输,所述在线升级文件的数据块传输包括多个单包数据块传输;
在线升级数据块传输模块,用于获得所述待升级软件接收的在线升级数据块,判断所述在线升级数据块中软件配置项ID号是否与所述待升级软件的配置项匹配,如果匹配,所述待升级软件根据所述在线升级数据块中的“单包在线升级数据块”计算出单包校验和,将所述单包校验和与“当前数据包CRC校验和”比对,获得所述单包数据块传输是否正确的结果;如果所述单包数据块传输正确,进行所述在线升级文件中下一单包数据块的传输,所述待升级软件完成所述在线升级文件的全部单包数据块传输之后,根据接收的所有“单包在线升级数据块”拼接获得所述在线升级文件;
校验和比对模块,用于所述待升级软件对所述在线升级文件计算文件校验和,将所述文件校验和与“整个文件CRC校验和”进行比对,如果比对结果为正确,完成所述在线升级文件的传输。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:本发明通过提供一种嵌入式软件在线升级方法,通过预定义应答通讯机制,进行详细的指令控制和状态返回,准确识别软件在线升级相应的步骤;对于数据传输过程中存在的同步/校验传输错误,或者数据单包传输错误,或者在线升级数据整个文件传输错误时,启动灵巧的自适应精准错误重传机制,增加数据传输成功率;使用数据校验和、当前数据包CRC校验和、整个文件CRC校验和等多重校验机制,保证数据传输安全正确;数据文件进行双区乒乓烧录,保证嵌入式软件升级文件的安全备份性,从而有效提高了嵌入式软件在线升级的数据传输成功率、数据传输安全性、数据安全正确性和数据文件安全备份性,同时易于工程实现。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的通讯握手成功流程示意图;
图2是本发明实施例提供的数据块传输流程示意图;
图3是本发明实施例提供的数据通讯异常流程示意图;
图4是本发明实施例提供的数据文件烧录流程示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明通过提供一种嵌入式软件在线升级方法,通过预定义应答通讯机制,进行详细的指令控制和状态返回,准确识别软件在线升级相应的步骤;对于数据传输过程中存在的同步/校验传输错误,或者数据单包传输错误,或者在线升级数据整个文件传输错误时,启动灵巧的自适应精准错误重传机制,增加数据传输成功率;使用数据校验和、当前数据包CRC校验和、整个文件CRC校验和等多重校验机制,保证数据传输安全正确;数据文件进行双区乒乓烧录,保证嵌入式软件升级文件的安全备份性,从而有效提高了嵌入式软件在线升级的数据传输成功率、数据传输安全性、数据安全正确性和数据文件安全备份性,同时易于工程实现。
本申请提供的一种嵌入式软件在线升级方法,主要包括如下步骤:
步骤S100:预设通讯协议,分别包括对应答通讯机制、软件加解密通讯机制、软件ID号匹配机制、多重校验机制、自适应精准错误重传机制的预设;
具体而言,步骤S100中,通讯协议的预设具体包括以下内容:
(1)应答通讯机制;
a)在线升级控制字设计:
通过控制字“在线升级控制”来区分是否对待升级软件的在线升级控制;通过控制字“控制字类型”来区分请求进入在线升级、确认进入在线升级、在线升级数据传输;
具体在线升级控制字见表1中所示的各在线升级控制字:
表1:在线升级控制字
b)在线升级数据块设计:
通过控制字“在线升级控制”来区分是否对待升级软件的在线升级控制;
通过控制字“控制字类型”来区分请求进入在线升级、确认进入在线升级、在线升级数据传输;
通过控制字“数据总包数”来体现需要传输的数据总包数;
通过控制字“当前数据包编号”来体现当前传输的数据包包号;
通过控制字“当前数据包有效字节数”来体现当前数据包有效字节数量;
具体在线升级数据块见表2中所示的各在线升级数据块:
表2:在线升级数据块
c)在线升级状态字设计:
通过状态字“在线升级状态”来区分是否为待升级软件的在线升级状态返回;
通过状态字“当前数据包编号”来体现对应接收的数据包;通过状态字“数据状态”区分在线升级询问、允许在线升级数据传输、在线升级数据传输完成、在线升级数据单包传输错误、在线升级数据整个文件传输错误、在线升级成功、在线升级失败;
通过状态字“在线升级进度百分比”来体现在线升级进度;
具体在线升级状态字见表3中所示的各在线升级状态字:
表3:在线升级状态字
(2)软件加解密通讯机制:
在线升级数据块设计中通过控制字“加密升级类型”来区分是无加密升级、DES加密升级、RSA加密升级、自定义加密升级等;具体信息字见表2的在线升级数据块;
数据块传输成功后进行对应加密升级类型的数据解密处理;
在线升级状态字设计中通过状态字“加密升级类型”来区分是无加密升级、DES加密升级、RSA加密升级、自定义加密升级等;具体信息字见表3中的在线升级状态字。
(3)软件ID号匹配机制:
在线升级数据块设计中通过控制字“软件配置项ID号”来区分所要升级软件的ID号,若与所要升级软件的ID号不一致,则需要中止软件升级流程,在线升级状态字“在线升级状态”为升级软件ID号错误;具体信息字见表2中的在线升级数据块和表3中的在线升级状态字。
(4)多重校验机制:
在线升级控制字、在线升级数据块、在线升级状态字通过“校验和”来体现当前通讯字正确的校验和;具体信息见表1在线升级控制字;
在线升级数据块设计中通过控制字“当前数据包CRC校验和”来体现当前数据包使用CRC校验后正确的校验和;
通过在线升级数据块控制字“整个文件CRC校验和”来体现整个文件使用CRC校验后正确的校验和;具体信息见表3在线升级状态字。
(5)自适应精准错误重传机制:
在线升级控制字和数据块同步头、同步尾或者校验和传输错误,或者待升级软件未收到上位机发送的在线升级控制字和数据块信息时,对未有响应的在线升级控制字和数据块进行重传;
在线升级状态字“在线升级状态”为在线升级状态返回,状态字“数据包号”为N,状态字“数据状态”为在线升级数据单包传输错误时,启动单包重传;
在线升级状态字“在线升级状态”为在线升级状态返回,状态字“数据包号”为最后一个包号,状态字“数据状态”为在线升级数据整个文件传输错误时,启动整个文件重传。
步骤S200:上位机和待升级软件基于所述预设的通讯协议进行通讯握手,握手成功后所述上位机和所述待升级软件基于所述预设通讯协议进行在线升级文件的数据块传输,所述在线升级文件的数据块传输包括多个单包数据块传输;
具体而言,如图1所示,上位机发送“请求在线升级”命令至所述待升级软件,待升级软件收到命令后,向上位机返回“允许进入在线升级”状态,上位机收到“允许进入在线升级”状态后,发送“确认进入在线升级”命令至所述待升级软件,待升级软件收到命令后,向上位机返回“允许在线升级数据传输”状态,上位机收到“允许在线升级数据传输”状态后,通讯握手成功,所述上位机和所述待升级软件基于所述预设通讯协议进行在线升级文件的数据块传输,包括多个单包数据块传输。本申请利用灵巧的应答通讯机制,进行详细的指令控制和状态返回,能够准确识别软件在线升级相应的步骤。
步骤S300:获得所述待升级软件接收的在线升级数据块,判断所述在线升级数据块中软件配置项ID号是否与所述待升级软件的配置项匹配,如果匹配,所述待升级软件根据所述在线升级数据块中的“单包在线升级数据块”计算出单包校验和,将所述单包校验和与“当前数据包CRC校验和”比对,获得所述单包数据块传输是否正确的结果;
进一步的,步骤S300中,如果所述在线升级数据块中软件配置项ID号与所述待升级软件的配置项不匹配,所述待升级软件向所述上位机返回“升级软件ID号错误”状态,所述上位机终止所述待升级软件的在线升级并输出第一错误信息。
进一步的,步骤S300中,如果所述单包校验和与所述“当前数据包CRC校验和”的比对结果为错误,重新获取当前包的所述在线升级数据块。
步骤S400:如果所述单包数据块传输正确,进行所述在线升级文件中下一单包数据块的传输,所述待升级软件完成所述在线升级文件的全部单包数据块传输之后,根据接收的所有“单包在线升级数据块”拼接获得所述在线升级文件;
步骤S500:所述待升级软件对所述在线升级文件计算文件校验和,将所述文件校验和与“整个文件CRC校验和”进行比对,如果比对结果为正确,完成所述在线升级文件的传输。
进一步的,步骤S500还包括:
如果所述文件校验和与所述“整个文件CRC校验和”的比对结果为错误,所述上位机对所述在线升级文件的全部单包数据块进行重发;预设所述上位机的重发次数阈值,判断所述上位机的重发次数是否超过所述重发次数阈值,如果所述上位机的重发次数超过所述重发次数阈值,所述上位机终止所述待升级软件的在线升级并输出第二错误信息。
具体而言,通信握手成功后进行在线升级数据块传输流程,待升级软件需根据表2在线升级数据块中软件配置项ID号是否正确来判断是否为本配置项软件的升级;若软件配置项ID号不匹配,则向上位机返回“升级软件ID号错误”状态;若软件配置项ID号匹配时,需要分别校验在线升级数据块中“当前数据包CRC校验和”和“整个文件CRC校验和”。包括:待升级软件根据所述在线升级数据块中的“单包在线升级数据块”计算出单包校验和,将单包校验和与“当前数据包CRC校验和”比对,判断单包数据块是否正确传输;如果正确,完成所有单包数据块的传输之后,根据接收的所有“单包在线升级数据块”拼接获得所述在线升级文件;若“当前数据包CRC校验和”错误,则需要进行单包重传。获得在线升级文件之后,所述待升级软件对所述在线升级文件计算文件校验和,将文件校验和与“整个文件CRC校验和”进行比对,如果比对成功,则完成在线升级文件的传输;若“整个文件CRC校验和”错误,则需要进行整个文件重传,且多次重传失败则数据块或者数据文件传输异常,软件升级失败。本申请对于数据传输过程中存在的同步/校验传输错误,或者数据单包传输错误,或者在线升级数据整个文件传输错误时,启动灵巧的自适应精准错误重传机制,增加了数据传输成功率。
进一步的,步骤S500还包括:
如果所述文件校验和与“整个文件CRC校验和”的比对结果为正确,根据所述在线升级文件中任一单包的所述在线升级数据块的“加密升级类型”判断所述在线升级文件是否为加密数据;如果所述在线升级文件为加密数据,根据所述“加密升级类型”对应的解密算法对所述在线升级文件进行数据解密。
具体而言,如图2所示,所述在线升级文件完成正确接收后,根据在线升级文件中任一单包的所述在线升级数据块的“加密升级类型”判断在线升级文件是否为加密数据,若为加密数据则根据“加密升级类型”对应的解密算法进行数据解密,若为非加密数据则不需要进行解密处理。本申请对于高密级软件加密传输的需要,进行数据解密的处理,增加了高密级软件传输的可扩展性,提高数据传输安全性的需求;检查下发数据与待升级软件的一致性,保证待升级软件数据文件安全正确。通过使用数据校验和、当前数据包CRC校验和、整个文件CRC校验和等多重校验机制,保证数据传输安全正确。
进一步的,步骤S300中,所述待升级软件接收所述上位机发送的所述在线升级数据块后,所述待升级软件反馈状态信息至所述上位机,具体包括:
步骤S310:判断所述上位机是否接收到所述状态信息,如果所述上位机未接收到所述状态信息或者接收所述状态信息错误,获得所述上位机的等待时间;
步骤S320:判断所述等待时间是否超出第一阈值,如果所述等待时间超出所述第一阈值,所述上位机对所述待升级软件重发当前包的所述在线升级数据块;
步骤S330:判断所述上位机的重发次数是否超过所述重发次数阈值,如果所述上位机的重发次数超过所述重发次数阈值,所述上位机终止所述待升级软件的在线升级并输出第三错误信息。
具体而言,如图3所示,在通讯正常情况下可以进行正确的软件在线升级工作,若通讯异常,则不能完成软件在线升级工作。上位机发送控制信息或者数据块信息时,待升级软件未收到信息或者接收信息错误,则不进行状态信息返回,上位机判断等待时间在第一阈值内接收到数据,若在第一阈值内未收到数据,则进行上一次的控制信息或数据块信息的重发;如果在重发次数阈值内多次重发还未收到待升级软件返回的状态信息,则数据传输异常,软件升级失败;上位机若在第一阈值内接收到数据,但接收数据错误,也进行上一次的控制信息/数据块信息的重发,多次重发仍然接收数据错误,则数据传输错误,软件升级失败。
进一步的,步骤S500中,完成所述在线升级文件的传输后,具体包括:
步骤S510:获得所述待升级软件的第一烧录分区,所述待升级软件的可用烧录分区包括第一烧录分区和第二烧录分区;
步骤S520:所述待升级软件对所述在线升级文件在所述第一烧录分区进行烧录,如果烧录成功,将所述第二烧录分区设置为所述待升级软件的下一次的烧录分区,完成所述待升级软件的升级;
步骤S530:如果所述在线升级文件在所述第一烧录分区烧录失败,将所述第一烧录分区作为所述待升级软件下一次的烧录分区,所述上位机终止所述待升级软件的在线升级并输出第四错误信息。
具体而言,如图4所示,数据传输成功或者数据解密成功后,所述待升级软件的烧录分区在A区,则在A区进行烧录,若A区烧录成功,则设置下一次烧录分区号为B区,在线升级成功;若A区烧录失败,则设置下一次烧录分区号为A区,在线升级失败。如果待升级软件的烧录分区在B区,则烧录同理进行。若数据烧录成功但是重新上电后不能成功启动程序,则可以手动从上一次正常启动的分区启动程序,重新进行软件升级。本申请通过对数据文件进行双区乒乓烧录,保证嵌入式软件升级文件的安全备份性。
基于同一发明构思,本发明实施例中还提供了一种嵌入式软件在线升级系统,如下面的实施例所述。由于一种嵌入式软件在线升级系统解决问题的原理与一种嵌入式软件在线升级方法相似,因此一种嵌入式软件在线升级系统的实施可以参见一种嵌入式软件在线升级方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明实施例还提供了一种嵌入式软件在线升级系统,包括:
通讯握手模块,用于预设通讯协议,分别包括对应答通讯机制、软件加解密通讯机制、软件ID号匹配机制、多重校验机制、自适应精准错误重传机制的预设;上位机和待升级软件基于所述预设的通讯协议进行通讯握手,握手成功后所述上位机和所述待升级软件基于所述预设通讯协议进行在线升级文件的数据块传输,所述在线升级文件的数据块传输包括多个单包数据块传输;
在线升级数据块传输模块,用于获得所述待升级软件接收的在线升级数据块,判断所述在线升级数据块中软件配置项ID号是否与所述待升级软件的配置项匹配,如果匹配,所述待升级软件根据所述在线升级数据块中的“单包在线升级数据块”计算出单包校验和,将所述单包校验和与“当前数据包CRC校验和”比对,获得所述单包数据块传输是否正确的结果;如果所述单包数据块传输正确,进行所述在线升级文件中下一单包数据块的传输,所述待升级软件完成所述在线升级文件的全部单包数据块传输之后,根据接收的所有“单包在线升级数据块”拼接获得所述在线升级文件;
校验和比对模块,用于所述待升级软件对所述在线升级文件计算文件校验和,将所述文件校验和与“整个文件CRC校验和”进行比对,如果比对结果为正确,完成所述在线升级文件的传输。
本发明实施例实现了如下技术效果:
本发明采用灵巧的应答通讯机制、自适应精准错误重传机制、软件ID号匹配机制、支持高密级软件加解密通讯、多重数据校验机制、数据文件双区乒乓烧录机制,有效提高嵌入式软件在线升级的数据传输成功率、数据传输安全性、数据安全正确性和数据文件安全备份性。适用于各种通讯总线类型的嵌入式软件在线升级,也适用于远程嵌入式软件在线升级。经某型雷达嵌入式软件在线升级试验,本发明实用有效,同时易于工程实现。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种嵌入式软件在线升级方法,其特征在于,包括:
预设通讯协议,包括预设对应答通讯机制、软件加解密通讯机制、软件ID号匹配机制、多重校验机制、自适应精准错误重传机制;
上位机和待升级软件基于各所述预设通讯协议进行通讯握手,握手成功后所述上位机和所述待升级软件基于所述预设通讯协议进行在线升级文件的数据块传输,所述在线升级文件的数据块传输包括多个单包数据块传输;
获得所述待升级软件接收的在线升级数据块,判断所述在线升级数据块中软件配置项ID号是否与所述待升级软件的配置项匹配;如果匹配,则所述待升级软件根据所述在线升级数据块中的单包在线升级数据块计算出单包校验和,将所述单包校验和与当前数据包CRC校验和比对,获得所述单包数据块传输是否正确的结果;
如果所述单包数据块传输正确,进行所述在线升级文件中下一单包数据块的传输,所述待升级软件完成所述在线升级文件的全部单包数据块传输之后,根据接收的所有单包在线升级数据块拼接获得所述在线升级文件;
所述待升级软件对所述在线升级文件计算文件校验和,将所述文件校验和与整个文件CRC校验和进行比对,如果比对结果为正确,完成所述在线升级文件的传输。
2.根据权利要求1所述的一种嵌入式软件在线升级方法,其特征在于,如果所述在线升级数据块中软件配置项ID号与所述待升级软件的配置项不匹配,则所述待升级软件向所述上位机返回升级软件ID号错误状态,所述上位机终止所述待升级软件的在线升级并输出第一错误信息。
3.根据权利要求1所述的一种嵌入式软件在线升级方法,其特征在于,如果所述单包校验和与所述当前数据包CRC校验和的比对结果为错误,重新获取当前包的所述在线升级数据块。
4.根据权利要求3所述的一种嵌入式软件在线升级方法,其特征在于,如果所述文件校验和与整个文件CRC校验和的比对结果为正确,根据所述在线升级文件中任一单包的所述在线升级数据块的加密升级类型判断所述在线升级文件是否为加密数据;
如果所述在线升级文件为加密数据,根据所述加密升级类型对应的解密算法对所述在线升级文件进行数据解密。
5.根据权利要求4所述的一种嵌入式软件在线升级方法,其特征在于,如果所述文件校验和与所述整个文件CRC校验和的比对结果为错误,所述上位机对所述在线升级文件的全部单包数据块进行重发;
预设所述上位机的重发次数阈值,判断所述上位机的重发次数是否超过所述重发次数阈值,如果所述上位机的重发次数超过所述重发次数阈值,所述上位机终止所述待升级软件的在线升级并输出第二错误信息。
6.根据权利要求1所述的一种嵌入式软件在线升级方法,其特征在于,所述待升级软件接收所述上位机发送的所述在线升级数据块后,所述待升级软件反馈状态信息至所述上位机,包括:
判断所述上位机是否接收到所述状态信息,如果所述上位机未接收到所述状态信息或者接收所述状态信息错误,获得所述上位机的等待时间;
判断所述等待时间是否超出第一阈值,如果所述等待时间超出所述第一阈值,所述上位机对所述待升级软件重发当前包的所述在线升级数据块;
判断所述上位机的重发次数是否超过所述重发次数阈值,如果所述上位机的重发次数超过所述重发次数阈值,所述上位机终止所述待升级软件的在线升级并输出第三错误信息。
7.根据权利要求1所述的一种嵌入式软件在线升级方法,其特征在于,完成所述在线升级文件的传输后,包括:
获得所述待升级软件的第一烧录分区,所述待升级软件的可用烧录分区包括第一烧录分区和第二烧录分区;
所述待升级软件对所述在线升级文件在所述第一烧录分区进行烧录,如果烧录成功,将所述第二烧录分区设置为所述待升级软件的下一次的烧录分区,完成所述待升级软件的升级;
如果所述在线升级文件在所述第一烧录分区烧录失败,将所述第一烧录分区作为所述待升级软件下一次的烧录分区,所述上位机终止所述待升级软件的在线升级并输出第四错误信息。
8.一种嵌入式软件在线升级系统,其特征在于,包括:
通讯握手模块,用于预设通讯协议,包括预设对应答通讯机制、软件加解密通讯机制、软件ID号匹配机制、多重校验机制、自适应精准错误重传机制的预设;上位机和待升级软件基于所述预设的通讯协议进行通讯握手,握手成功后所述上位机和所述待升级软件基于所述预设通讯协议进行在线升级文件的数据块传输,所述在线升级文件的数据块传输包括多个单包数据块传输;
在线升级数据块传输模块,用于获得所述待升级软件接收的在线升级数据块,判断所述在线升级数据块中软件配置项ID号是否与所述待升级软件的配置项匹配,如果匹配,所述待升级软件根据所述在线升级数据块中的单包在线升级数据块计算出单包校验和,将所述单包校验和与当前数据包CRC校验和比对,获得所述单包数据块传输是否正确的结果;如果所述单包数据块传输正确,进行所述在线升级文件中下一单包数据块的传输,所述待升级软件完成所述在线升级文件的全部单包数据块传输之后,根据接收的所有单包在线升级数据块拼接获得所述在线升级文件;
校验和比对模块,用于所述待升级软件对所述在线升级文件计算文件校验和,将所述文件校验和与整个文件CRC校验和进行比对,如果比对结果为正确,完成所述在线升级文件的传输。
CN202310866564.2A 2023-07-13 2023-07-13 一种嵌入式软件在线升级方法和系统 Pending CN117082048A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310866564.2A CN117082048A (zh) 2023-07-13 2023-07-13 一种嵌入式软件在线升级方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310866564.2A CN117082048A (zh) 2023-07-13 2023-07-13 一种嵌入式软件在线升级方法和系统

Publications (1)

Publication Number Publication Date
CN117082048A true CN117082048A (zh) 2023-11-17

Family

ID=88706944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310866564.2A Pending CN117082048A (zh) 2023-07-13 2023-07-13 一种嵌入式软件在线升级方法和系统

Country Status (1)

Country Link
CN (1) CN117082048A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687664A (zh) * 2023-12-03 2024-03-12 武汉船舶通信研究所(中国船舶集团有限公司第七二二研究所) 一种dsp的在线升级配置方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687664A (zh) * 2023-12-03 2024-03-12 武汉船舶通信研究所(中国船舶集团有限公司第七二二研究所) 一种dsp的在线升级配置方法及装置

Similar Documents

Publication Publication Date Title
EP0217351B1 (en) Communication control apparatus
US7650388B2 (en) Wireless identification protocol with confirmation of successful transmission
CN105224362A (zh) 上位机对下位机进行程序升级的方法及系统
CN117082048A (zh) 一种嵌入式软件在线升级方法和系统
CN107357595B (zh) 一种基于总线的多驱动器固件在线更新系统
CN110309160B (zh) 数据入链事务处理方法、装置、计算机设备及存储介质
US9621358B2 (en) Method of conducting safety-critical communications
JP2003051796A (ja) ダウンロードシステム
WO2011137640A1 (zh) 文件传输方法、文件发送装置和文件接收装置
CN111538516A (zh) 服务器电源固件升级方法、装置、设备及可读存储介质
US4947317A (en) Communication protocol for a three nodes system having dedicated connections and bit indicating function of exchanged message
CN112636984B (zh) 联盟链配置更新方法、设备及计算机介质
CN117687664A (zh) 一种dsp的在线升级配置方法及装置
WO2017049557A1 (zh) 为适配器升级的方法、移动终端和适配器
CN113722770B (zh) 基于分级的数据完整性的端到端的保护方法及系统
US20050262224A1 (en) Method for modifying one or more parameters for the operation of a network and subscribers for carrying out this method
CN113391832A (zh) 机载软件升级方法、升级包加载方法、装置和设备
JP4652096B2 (ja) 送信装置及び受信装置におけるメモリ領域を同期させる方法、並びに受信装置
JPH06290130A (ja) データ通信制御装置
CN111008092A (zh) 一种焊机通信管理方法及焊机
JP2001257696A (ja) マスタスレーブ間の通信方式
CN111813424A (zh) 一种远程升级方法、装置、电子设备及存储介质
WO2024164868A1 (zh) 清洁机器人系统的通信方法、装置及设备
CN117971269A (zh) 一种软件升级方法及装置
CN1996895A (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