CN113645316A - 升级数据处理方法、上位机、下位机、设备及存储介质 - Google Patents

升级数据处理方法、上位机、下位机、设备及存储介质 Download PDF

Info

Publication number
CN113645316A
CN113645316A CN202111200298.7A CN202111200298A CN113645316A CN 113645316 A CN113645316 A CN 113645316A CN 202111200298 A CN202111200298 A CN 202111200298A CN 113645316 A CN113645316 A CN 113645316A
Authority
CN
China
Prior art keywords
upgrade
lower computer
upgrade data
data
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.)
Granted
Application number
CN202111200298.7A
Other languages
English (en)
Other versions
CN113645316B (zh
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.)
Guangdong Haoyun Technology Co Ltd
Original Assignee
Guangdong Haoyun 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 Guangdong Haoyun Technology Co Ltd filed Critical Guangdong Haoyun Technology Co Ltd
Priority to CN202111200298.7A priority Critical patent/CN113645316B/zh
Publication of CN113645316A publication Critical patent/CN113645316A/zh
Application granted granted Critical
Publication of CN113645316B publication Critical patent/CN113645316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Abstract

本申请提供一种升级数据处理方法、上位机、下位机、设备及存储介质,属于软件技术的领域,其中一种方法应用于上位机,上位机与下位机通信连接,该方法包括:将升级目标文件划分成多个升级数据包,以每次发送一行升级数据的方式,向下位机连续发送单个升级数据包中的升级数据,直至发送完单个升级数据包的升级数据后,向下位机发出包结束命令,并在接收到下位机发送的空闲命令后,继续以每次发送一行升级数据的方式,向下位机连续发送下一个升级数据包的升级数据,直至下位机接收完所述升级目标文件,从而能够减少上位机和下位机在数据传输过程中的应答次数和等待对方应答造成的时耗。

Description

升级数据处理方法、上位机、下位机、设备及存储介质
技术领域
本申请涉及软件技术的领域,尤其是涉及一种升级数据处理方法、上位机、下位机、设备及存储介质。
背景技术
随着电子技术和信息技术的发展,汽车或者农机领域电控系统智能化程度越来越高,电控系统的程序文件随之增大,同时功能更新也越来越快,从而电子控制单元(Electronic Control Unit,ECU控制器)的固件程序更新频率也越来越高,ECU控制器软件升级大多数都是基于CAN总线的。由于CAN总线一般数据域都采用8个字节,而CAN报文中数据域在整帧报文中占的比例在50%左右,使得CAN总线传输数据时的有效数据的载荷率较低。
目前,升级软件一般采用的方法为:上位机每发完一行或者一帧报文,下位机应答上位机一次。采用这样的升级方法,每传输一行数据,上位机和下位机就要进行一次交互,升级的目标文件越大时,交互次数越多,从而存在升级时耗长、体验差的问题。
发明内容
本申请的目的包括,提供一种升级数据处理方法、上位机、下位机、设备及存储介质,能够改善现有技术中由于交互次数越多,而导致的升级时耗长、体验差的问题。
第一方面,本申请提供一种升级数据处理方法,采用如下的技术方案:
一种升级数据处理方法,应用于上位机,所述上位机与下位机通信连接,所述方法包括:
应用于上位机,所述上位机与下位机通信连接,所述方法包括:
将升级目标文件划分成多个升级数据包,每个所述升级数据包包括多行升级数据;
以每次发送一行升级数据的方式,向所述下位机连续发送单个所述升级数据包中的升级数据,直至发送完单个所述升级数据包的升级数据后,向所述下位机发出包结束命令,所述包结束命令用于促使所述下位机对接收的单个所述升级数据包的升级数据逐行进行有效校验;
接收到所述下位机发送的空闲命令后,继续以每次发送一行升级数据的方式,向所述下位机连续发送下一个所述升级数据包的升级数据,直至所述下位机接收完所述升级目标文件。
在一种可行的实施方式中,所述方法还包括:
在所述下位机接收完所述升级目标文件后,向所述下位机发送文件结束命令,所述文件结束命令用于促使所述下位机对接收到的所述升级目标文件的有效升级数据进行升级校验,所述有效升级数据为通过有效校验的升级数据。
在一种可行的实施方式中,在所述向所述下位机发出包结束命令的步骤之后,在所述接收到所述下位机发送的空闲命令的步骤之前,所述方法还包括:
接收所述下位机发送的第一校验值,所述第一校验值是所述下位机根据对接收的单个所述升级数据包的升级数据逐行进行有效校验,而得到的用于表征所述下位机接收的升级数据包的每行升级数据的有效情况;
对所述第一校验值进行解析,若解析结果表明至少有一行升级数据未被所述下位机有效接收,则以每次发送一行升级数据的方式,向所述下位机重新发送未被有效接收的升级数据,直至该未被有效接收的升级数据被所述下位机有效接收。
在一种可行的实施方式中,所述以每次发送一行升级数据的方式,向所述下位机连续发送单个所述升级数据包中的升级数据的步骤,包括:
向所述下位机发送包开始命令,所述包开始命令用于促使所述下位机做好接收准备;
接收到所述下位机在做好接收准备之后发送的待收命令后,以每次发送一行升级数据的方式,向所述下位机发送单个所述升级数据包中的升级数据。
在一种可行的实施方式中,所述在所述下位机接收完所述升级目标文件后,向所述下位机发送文件结束命令的步骤,包括:
在所述下位机接收完所述升级目标文件,向所述下位机发送文件结束命令,所述文件结束命令包括所述升级目标文件的第一CRC校验值,所述升级目标文件的第一CRC校验值是根据向所述下位机发送的所述升级数据计算得到的;
所述文件结束命令用于促使所述下位机根据接收到的所述升级目标文件的有效升级数据计算得到第二CRC校验值,并与所述第一CRC校验值进行比较;
所述升级校验为在所述第一CRC校验值与所述第二CRC校验值一致的情况下进行升级,在所述第一CRC校验值与所述第二CRC校验值不一致的情况下不进行升级。
第二方面,本申请提供一种升级数据处理方法,采用如下的技术方案:
一种升级数据处理方法,应用于下位机,所述下位机与上位机通信连接,所述上位机存储有包括多个升级数据包的升级目标文件,每个所述升级数据包包括多行升级数据,所述方法包括:
接收所述上位机以每次发送一行升级数据的方式所连续发送的单个所述升级数据包的升级数据;
在接收到所述上位机发送的包结束命令后,对接收的单个所述升级数据包的升级数据逐行进行有效校验以生成第一校验值,并向所述上位机发送所述第一校验值,所述第一校验值用于促使所述上位机得到所述下位机未有效接收的升级数据;
接收所述上位机以每次发送一行升级数据的方式重新发送的升级数据,直至有效接收完单个所述升级数据包的所有升级数据,所述重新发送的升级数据为所述下位机未有效接收的升级数据;
对有效接收完的单个所述升级数据包的所有升级数据进行写入处理,并在写入处理结束后向所述上位机发送空闲命令,直至有效接收完所述升级目标文件,所述空闲命令用于促使所述上位机继续发送下一个所述升级数据包的升级数据。
在一种可行的实施方式中,所述方法还包括:
接收所述上位机在所述下位机接收完所述升级目标文件后发送的文件结束命令,所述文件结束命令包括所述升级目标文件的第一CRC校验值,所述第一CRC校验值是所述上位机根据向所述下位机发送的所述升级数据计算得到的;
根据接收的所述升级目标文件的有效升级数据,计算得到第二CRC校验值,并将所述第二CRC校验值与第一CRC校验值进行比较,以进行升级校验;所述有效升级数据为通过有效校验的升级数据。
在一种可行的实施方式中,所述对有效接收完的单个所述升级数据包的所有升级数据进行写入处理的步骤,包括:
解析每一行升级数据,从所述升级数据包的所有升级数据中提取需要写入闪存的数据和地址,并将该提取出的数据和地址写入闪存镜像缓存;
当所述闪存镜像缓存写满后,将所述闪存镜像缓存内的数据写入闪存。
第三方案,本申请提供一种上位机,采用如下的技术方案:
一种上位机,应用于上位机,所述上位机与下位机通信连接,用于实现如第一方面所述的升级数据处理方法。
第四方面,本申请提供一种下位机,采用如下的技术方案:
一种下位机,所述下位机与上位机通信连接,用于实现如第二方面所述的升级数据处理方法。
第五方面,本申请提供一种电子设备,采用如下的技术方案:
一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第二方面所述的方法。
第六方面,本身提供一种计算机可读存储设置,采用如下的技术方案:
一种存储介质,所述存储介质包括计算机程序,所述计算机程序运行时控制所述存储介质所在的电子设备执行如第一方面或第二方面所述的方法。
本申请实施方式的有益效果包括,例如:
在本申请提供的升级数据处理方法中,上位机将升级目标文件分成多个升级数据包后,以包为单位,以每次发送一行升级数据的方式,连续向下位机逐行发送单个升级数据包的升级数据,且下位机每接收完一个升级数据包的升级数据,就对该升级数据包进行有效校验,即下位机以升级数据包为单位进行升级数据的统一校验,从而能够减少上位机和下位机在数据传输过程中的应答次数和等待对方应答造成的时耗,提高通信中有效数据的载荷率,进而能够提高升级体验;并且,上位机接收到下位机在有效接收完单个升级数据包的升级数据后发送的空闲命令后,上位机才继续发送下一个升级数据包的升级数据,从而在一定程度上能够确保下位机能够有效接收完升级目标文件。
附图说明
为了更清楚地说明本公开的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施方式,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请提供的软件升级系统的方框结构图。
图2为一种实施方式中应用于上位机的一种升级数据处理方法的流程示意图。
图3为应用于上位机的一种升级数据处理方法的另一种流程示意图。
图4为应用于上位机的一种升级数据处理方法的又一种流程示意图。
图5为图2或图3或图4中步骤S120的部分子步骤的流程示意图。
图6为进行软件升级时上位机与下位机之间的交互示意图。
图7为进行软件升级时上位机的一种工作流程示意图。
图8为一种实施方式中应用于下位机的一种升级数据处理方法的流程示意图。
图9为图8中步骤S340的部分子步骤的流程示意图。
图10为进行软件升级时下位机的一种工作流程示意图。
图11为上位机的方框结构图。
图12为下位机的方框结构图。
图13为本申请提供的电子设备的方框结构图。
附图标记说明:010-预处理模块;020-第一发送模块;030-第二发送模块;040-第一接收模块;050-发送模块;060-第二接收模块;070-写入模块;080-处理器;090-存储器。
具体实施方式
为使本申请实施方式的目的、技术方案和优点更加清楚,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整的描述,显然,所描述的实施方式是本申请一部分实施方式,而不是全部的实施方式。通常在此处附图中描述和示出的本申请实施方式的组件可以以各自不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施方式的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下获得的所有其他实施方式,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
ECU控制器软件升级大多数都是基于CAN总线的,由于CAN总线一般数据域都采用8个字节,而CAN报文中数据域在整帧报文中占的比例在50%左右,使得CAN总线传输数据时的有效数据的载荷率较低。
一般的,升级的目标文件都是采用hex、s19格式或者bin文件。若目标文件采用bin格式,则文件内容都是有效数据,但是没有地址信息,这对通信过程数据完整性和传输数据的组织要求很高,所以很少采用这种方式。hex和s19两种格式的文件的内容都是ASCII码,升级的目标文件采用这两种格式时,每一行数据都有数据的目标地址和行校验,这有利于传输、通信过程的校验和下位机数据的烧写。但是使用这两种格式的文件,在CAN总线上传输一个字节ASCII码时实际需要传输2个字节,进一步降低了有效数据的载荷率,导致升级的目标文件较大时,升级耗时就越长。
基于上述考虑,本申请提供一种升级数据处理方法。
请参考图1,本申请提供的升级数据处理方法,可以应用于软件升级系统中,该软件升级系统包括上位机,以及多个终端。上位机与多个终端可通过网络通信连接。多个终端中待升级的终端作为下位机,上位机向下位机发起升级连接请求,下位机响应该请求,实现上位机与下位机的通信连接。上位机通过将升级目标文件划分成多个升级数据包,每个所述升级数据包包括多行升级数据;上位机以每次发送一行升级数据的方式,向下位机连续发送单个升级数据包的升级数据,直至发送完单个升级数据包的升级数据后,向下位机发出包结束命令,包结束命令用于促使下位机对接收的单个升级数据包的升级数据逐行进行有效校验;上位机接收到下位机发送的空闲命令后,继续以每次发送一行升级数据的方式,向下位机连续发送下一个升级数据包的升级数据,直至下位机接收完升级目标文件,空闲命令为下位机在处理完有效接收的单个升级数据包后发送。其中,上位机可以但不限于是各种个人计算机、笔记本电脑、平板电脑和服务器,下位机可以但不限于是控制器和服务器。
在一个实施方式中,如图2所示,提供了一种升级数据处理方法。本实施方式主要以该方法应用于软件升级系统中的上位机来举例说明。
步骤S110,将升级目标文件划分成多个升级数据包。
其中,每个升级数据包包括多行升级数据,且升级目标文件的格式可以为S19格式。应当理解的是,多行为两行以上,即每个升级数据包包括两行以上的升级数据。
具体地,上位机将升级目标文件划分成多个升级数据包。
步骤S120,以每次发送一行升级数据的方式,向下位机连续发送单个升级数据包中的升级数据,直至发送完单个升级数据包的升级数据后,向下位机发出包结束命令。
其中,包结束命令用于促使下位机对接收的单个升级数据包的升级数据逐行进行有效校验。有效校验是指校验该行升级数据是否为非空,为空则不通过有效校验,非空则通过有效校验。
具体地,上位机以每次发送一行升级数据的方式,向下位机连续发送单个升级数据包的升级数据,即逐行发送升级数据,直至发送完单个升级数据包的升级数据后,并向下位机发出包结束命令。下位机接收到包结束命令后,对接收的单个升级数据包的升级数据进行有效校验。
步骤S130,接收到下位机发送的空闲命令后,继续以每次发送一行升级数据的方式,向下位机连续发送下一个升级数据包的升级数据,直至下位机接收完升级目标文件。
其中,空闲命令为下位机在处理完有效接收的单个升级数据包后发送。有效接收的单个升级数据包指的是每行升级数据都不为空的升级数据包。
具体地,下位机在处理完有效接收的单个升级数据包后,向上位机发送空闲命令。上位机接收到空闲命令后,继续以每次发送一行升级数据的方式,向下位机连续发送下一个升级数据包的升级数据,直至下位机有效接受完升级目标文件。
上述升级数据处理方法中,上位机将升级目标文件分成多个升级数据包后,以包为单位,以每次发送一行升级数据的方式,连续向下位机逐行发送单个升级数据包的升级数据,且下位机每接收完一个升级数据包的升级数据,就对该升级数据包进行有效校验,即下位机以升级数据包为单位进行升级数据的统一校验,从而能够减少上位机和下位机在数据传输过程中的应答次数和等待对方应答造成的时耗,提高通信中有效数据的载荷率,进而能够提高升级体验;并且,上位机接收到下位机在有效接收完单个升级数据包的升级数据后发送的空闲命令后,上位机才继续发送下一个升级数据包的升级数据,从而在一定程度上能够确保下位机能够有效接收完升级目标文件。
在其他实施方式中,升级目标文件的格式也可以为hex格式或其他格式。
进一步的,如图3所示,上述提供的升级数据处理方法还包括步骤S140。
步骤S140,在下位机接收完升级目标文件后,向下位机发送文件结束命令。
其中,文件结束命令用于促使下位机对接收到的升级目标文件的有效升级数据进行升级校验,有效升级数据为通过有效校验的升级数据,即不为空的升级数据。
具体地,上位机在下位机接收完所有的升级数据包后,向下位机发送文件结束命令。下位机接收到文件结束命令后,开始对接收到的升级目标文件的有效升级数据进行升级校验。
通过对下位机发送文件结束命令,使下位机根据有效升级数据进行升级校验,以在一定程度上保证升级目标文件的正确传输,以及一定程度上避免通信造成文件数据的丢失造成升级程序后不能运行的情况。
在上述基础上,如图4所示,本申请提供的升级数据处理方法还包括步骤S150,该步骤S150在步骤S120之后,在步骤S130之前执行。
S150,接收下位机发送的第一校验值,对第一校验值进行解析,若解析结果表明至少有一行升级数据未被下位机有效接收,则以每次发送一行升级数据的方式,向下位机重新发送未被有效接收的升级数据,直至该未被有效接收的升级数据被下位机有效接收。
其中,第一校验值是下位机根据对接收的单个升级数据包的升级数据逐行进行有效校验,而得到的用于表征下位机接收的升级数据包的每行升级数据的有效情况。
具体地,下位机在接收到上位机发送的包结束命令之后,开始对接收的单个升级数据包的多行升级数据逐行进行有效校验,有效校验为校验该行升级数据是否为非空,完成校验后,生成该升级数据包的第一校验值。其中,第一校验值为按位表示升级数据包的每行升级数据是否有效接收的值。
例如,第一校验值为1111,则得到该第一校验值的升级数据包一共有4行升级数据,且每行升级数据都被有效接收。若第一校验值为1101,则表明得到该第一校验值的升级数据包一共有4行升级数据,且第三行升级数据未被有效接收。
上位机接收下位机发送的第一校验值,对第一校验值进行解析,得到未被下位机有效接收的升级数据,或解析后得知升级数据包的升级数据全被下位机有效接收,此时完成该升级数据包的有效发送。
若上位机对第一校验值进行解析后,得到有一行或一行以上的升级数据未被下位机有效接收,则向下位机重新连续发送该未被有效接收的升级数据。下位机接收完上位机重新发送的几行升级数据后,对该重新发送的几行升级数据进行有效校验,并把生成的第一校验值发送给上位机,上位机对该第一校验值进行解析。如此反复,直至上位机完成该升级数据包的有效发送。
上位机和下位机之间,以升级数据包为单位进行交互,即一个升级数据包的升级数据传输完成进行一次交互,能够有效减少上位机和下位机在数据传输过程中的应答次数和等待对方应答造成的耗时,提高通信中有效数据的载荷率;并且上位机和下位机对一包升级数据包的传输结果进行确认,只对下位机没有接收到的数据进行重发,保证数据传输的完整性,也能够在一定程度上避免对已经正确传输的数据进行重发而产生的时耗。
需要说明的是,由于一帧报文最多8个字节,下位机在接收到包结束命令后,需要响应上位机,即给上位机发送第一校验值,此时响应上位机时,其中一个字节为命令,剩下7个字节,即56位,每一位表示一行,因此,一包升级数据包的升级数据最多为56行。
在一种实施方式中,如图5所示,步骤S120中以每次发送一行升级数据的方式,向下位机连续发送单个升级数据包中的升级数据的步骤包括如下子步骤。
步骤S201,向下位机发送包开始命令。
其中,包开始命令用于促使下位机做好接收准备。
步骤S202,接收到下位机在做好接收准备之后发送的待收命令后,以每次发送一行升级数据的方式,向下位机连续发送单个升级数据包中的升级数据。
具体地,下位机接收到包开始命令后,开始做接收准备,在做好接收准备后,向上位机发送待收命令。上位机接收待收命令后,开始向下位机连续发送单个升级数据包的升级数据。
需要说明的是,包开始命令包括升级数据包的行数。从而下位机能够根据包开始命令里的升级数据包的行数,判断接收的升级数据包的升级数据是否遗漏或超项。
在一种实施方式中,步骤S140具体包括:在下位机接收完升级目标文件后,向下位机发送文件结束命令。
其中,文件结束命令包括第一CRC校验值,升级目标文件的第一CRC校验值是上位机根据向下位机发送的所述升级数据计算得到的。文件结束命令促使下位机根据接收到的升级目标文件的有效升级数据计算得到第二CRC校验值,并与第一CRC校验值进行比较,来进行升级校验。
具体地,上位机发送完最后一个升级数据包的升级数据后,且接收到的该升级数据包对应的第一校验值表明该升级数据包的升级数据都被下位机有效接收,则上位机计算出升级目标文件的第一CRC校验值,并将包含第一CRC校验值的文件结束命令发送给下位机。下位机接收到文件结束命令后,根据接收到的升级目标文件的所有有效升级数据,计算出第二CRC校验值,并将第一CRC校验值和第二CRC校验值进行比较,若两者一致,则进行升级,否则,不进行升级,以完成升级校验。
每个升级数据包发送成功后进行每行升级数据的有效校验,升级目标文件的所有升级数据包的所有升级数据都被下位机有效接收后,进行升级校验,以在一定程度上保证升级目标文件的正确传输,从而能够改善通信造成升级目标文件数据的丢失造成升级程序后不能运行的情况。
基于上述升级数据处理方法,如图6所示,为上位机和下位机之间的交互示意图。如图7所示,为上位机进行升级数据处理时的工作流程示意图。
本申请还提供另一种升级数据处理方法,如图8所示,本实施方式主要以该方法应用于软件升级系统中的下位机来举例说明。需要说明的是,与下位机通信连接的上位机中存储有包括多个升级数据包的升级目标文件,每个升级数据包包括多行升级数据。
步骤S310,接收上位机以每次发送一行升级数据的方式所连续发送的单个升级数据包的升级数据。
步骤S320,在接收到上位机发送的包结束命令后,对接收的单个升级数据包的升级数据逐行进行有效校验以生成第一校验值,并向上位机发送第一校验值。
具体地,下位机接收上位机以每次发送一行升级数据的方式,所连续发送的单个升级数据包的多行数据,并保存到接收缓存中。上位机发送完单个升级数据包的升级数据后,发送包结束命令到下位机。下位机接收到包结束命令后,对接收的该单个升级数据包的升级数据逐行进行有效校验,即校验每一行升级数据是否为非空,以生成第一校验值,并将第一校验值发送至上位机。
步骤S330,接收上位机以每次发送一行升级数据的方式重新发送的升级数据,直至有效接收完单个升级数据包的所有升级数据。
其中,上位机重新发送的升级数据为下位机未有效接收的升级数据。
具体地,上位机对接收到的第一校验值进行解析,若上位机的解析结果表明有未被有效接收的升级数据,则上位机重新发送该未被有效接收的升级数据至下位机,下位机接收该重新发送的升级数据,重新进行有效校验,直至有效接收完单个升级数据包的升级数据。
步骤S340,对有效接收完的单个升级数据包的所有升级数据进行写入处理,并在写入处理结束后向上位机发送空闲命令,直至有效接收完升级目标文件。
其中,空闲命令用于促使上位机继续发送下一个升级数据包的升级数据。
具体地,下位机对有效接收的单个升级数据包的所有升级数据进行写入处理,在写入处理结束后,向上位机发送空闲命令。上位机收到空闲命令后,若已发送完所有的升级数据包,则不再发送升级数据。否则,继续发送下一个升级数据包的升级数据,直至所有的升级数据包都被下位机有效接收。
上述升级数据处理方法中,下位机在接收完的单个升级数据包的升级数据后,才进行有效校验,即下位机与下位机在一包升级数据包为的升级数据的传输结束后才进行校验,能够减少上位机和下位机在数据传输过程中的应答次数和等待对方应答造成的时耗,提高通信中有效数据的载荷率,进而能够提高升级体验;并且接收到下位机在有效接收完单个升级数据包的所有数据后发送的空闲命令后,上位机才继续发送下一个升级数据包的升级数据,从而在一定程度上能够确保下位机能够有效接收完升级目标文件。
进一步地,继续参照图8,应用于下位机的升级数据处理方法还包括以下步骤。
步骤S350,接收上位机在下位机接收完升级目标文件后发送的文件结束命令。
具体地,下位机对有效接收的单个升级数据包的所有升级数据进行写入处理,在写入处理结束后,向上位机发送空闲命令。上位机收到空闲命令后,若已发送完所有的升级数据包,则表明下位机已接收完升级目标文件,基于此,上位机向下位机发送文件结束命令。
步骤S360,根据接收的升级目标文件的有效升级数据,计算得到第二CRC校验值,并将第二CRC校验值与第一CRC校验值进行比较,以进行升级校验。
具体地,下位机接收到文件结束命令后,根据接收到的升级目标文件的所有有效升级数据,计算出第二CRC校验值,并将第一CRC校验值和第二CRC校验值进行比较,若两者一致,则进行升级,否则,不进行升级,以完成升级校验。
下位机根据有效升级数据进行升级校验,以在一定程度上保证升级目标文件的正确传输,以及一定程度上避免通信造成文件数据的丢失造成升级程序后不能运行的情况。
在一种实施方式中,如图10所示,为步骤S340中“对有效接收完的单个升级数据包的所有升级数据进行写入处理”的子步骤的流程示意图。
步骤S410,解析每一行升级数据,从升级数据包的所有升级数据中提取需要写入闪存的数据和地址,并将该提取出的数据和地址写入闪存镜像缓存。
步骤S420,当闪存镜像缓存写满后,将闪存镜像缓存内的数据写入闪存。
具体地,下位机对有效接收的升级数据包的每行升级数据进行解析,将需要写入闪存的数据和地址提取出并写入闪存镜像缓存内。在这过程中,一旦闪存镜像缓存写满,则将闪存镜像缓存内的数据写入闪存。当解析完所有的升级数据,完成将提取出的数据和地址写入闪存镜像缓存内,且闪存镜像缓存的数据写入闪存的工作结束,则意味着下位完成写入处理,处于空闲状态。
基于上述升级数据处理方法,如图10所示,为下位机进行升级数据处理时的工作流程示意图。
应该理解的是,虽然图2-图10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图10中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一种实施方式中,如图11所示,本申请提供一种上位机,该上位机与下位机通信连接,该上位机能够实现上述应用上位机的升级数据处理方法。
具体地,该上位机可以包括预处理模块010、第一发送模块020和第二发送模块030。
预处理模块010,用于将升级目标文件划分成多个升级数据包。其中,每个升级数据包包括多行升级数据。
第一发送模块020,用于以每次发送一行升级数据的方式,向下位机连续发送单个升级数据包中的升级数据,直至发送完单个升级数据包的升级数据后,向下位机发出包结束命令。
其中,包结束命令用于促使下位机对接收的单个升级数据包的升级数据逐行进行有效校验。
第二发送模块030,用于接收到下位机发送的空闲命令后,继续以每次发送一行升级数据的方式,向下位机连续发送下一个升级数据包的升级数据,直至下位机接收完升级目标文件。
其中,空闲命令为下位机在处理完有效接收的单个升级数据包后所发送。
在一种实施方式中,如图12所示,本申请还提供一种下位机,该下位机与上位机通信连接,上位机存储有包括多个升级数据包的升级目标文件,每个升级数据包包括多行升级数据,该下位机能够实现上述应用于下位机的升级数据处理方法。
具体地,该下位机可以包括第一接收模块040、发送模块050、第二接收模块060和写入模块070。
第一接收模块040,用于接收上位机以每次发送一行升级数据的方式所连续发送的单个升级数据包的升级数据。
发送模块050,用于在接收到上位机发送的包结束命令后,对接收的单个升级数据包的升级数据逐行进行有效校验以生成第一校验值,并向上位机发送第一校验值。其中,第一校验值用于促使上位机得到下位机未有效接收的升级数据。
第二接收模块060,用于接收上位机以每次发送一行升级数据的方式重新发送的升级数据,直至有效接收完单个升级数据包的所有升级数据。其中,上位机重新发送的升级数据为所述下位机未有效接收的升级数据。
写入模块070,用于对有效接收完的单个升级数据包的所有升级数据进行写入处理,并在写入处理结束后向上位机发送空闲命令,直至有效接收完升级目标文件。
其中,空闲命令用于促使上位机继续发送下一个升级数据包的升级数据。
关于上位机和下位机的具体限定可以参见上文中对于升级数据处理方法的限定,在此不再赘述。上述上位机和下位机中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器080中,也可以以软件形式存储于计算机设备中的存储器090中,以便于处理器080调用执行以上各个模块对应的操作。
在一种实施方式中,如图13所示,本申请还提供一种电子设备,为本申请该电子设备可以包括但不限于存储器090和处理器080。
其中,处理器080和存储器090均位于电子设备中却二者分离设置。然而,应当理解的是,存储器090可以替换成计算机可读存储介质,且存储器090和存储介质都可以是独立于电子设备之外,且可以由处理器080通过总线接口来访问。此外,存储器090可以集成到处理器080中,例如,可以是高速缓存和/或通用寄存器。
在本实施方式中,存储介质和存储器090均可用于存储计算机程序,处理器080执行计算机程序时,能够实现本申请实施方式给出的升级数据处理方法。
在一个实施方式中,实现上述升级数据处理方法的上位机或者下位机,存储在汽车或者智能农机设备的ECU控制器上,其中智能农机设备可为无人拖拉机或农用机具等。
在一个实施方式中,实现上述升级数据处理方法的电子设备,可为汽车或者智能农机设备,其中智能农机设备可为无人拖拉机或农用机具等。
需要说明的是,图13所示的电子设备的结构示意图,电子设备还可以包括比图13中所示更多或更少的组件,或者具有与图13所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。电子设备可以是,但不限于计算机、手机、IPad、服务器、笔记本电脑、移动上网设备等。
在本公开所提供的几个实施方式中,应该理解到,所揭露的装置、系统图和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施方式中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本公开各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的可选实施方式而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (12)

1.一种升级数据处理方法,其特征在于,应用于上位机,所述上位机与下位机通信连接,所述方法包括:
将升级目标文件划分成多个升级数据包,每个所述升级数据包包括多行升级数据;
以每次发送一行升级数据的方式,向所述下位机连续发送单个所述升级数据包中的升级数据,直至发送完单个所述升级数据包的升级数据后,向所述下位机发出包结束命令,所述包结束命令用于促使所述下位机对接收的单个所述升级数据包的升级数据逐行进行有效校验;
接收到所述下位机发送的空闲命令后,继续以每次发送一行升级数据的方式,向所述下位机连续发送下一个所述升级数据包的升级数据,直至所述下位机接收完所述升级目标文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述下位机接收完所述升级目标文件后,向所述下位机发送文件结束命令,所述文件结束命令用于促使所述下位机对接收到的所述升级目标文件的有效升级数据进行升级校验,所述有效升级数据为通过有效校验的升级数据。
3.根据权利要求1或2所述的方法,其特征在于,在所述向所述下位机发出包结束命令的步骤之后,在所述接收到所述下位机发送的空闲命令的步骤之前,所述方法还包括:
接收所述下位机发送的第一校验值,所述第一校验值是所述下位机根据对接收的单个所述升级数据包的升级数据逐行进行有效校验,而得到的用于表征所述下位机接收的升级数据包的每行升级数据的有效情况;
对所述第一校验值进行解析,若解析结果表明至少有一行升级数据未被所述下位机有效接收,则以每次发送一行升级数据的方式,向所述下位机重新发送未被有效接收的升级数据,直至该未被有效接收的升级数据被所述下位机有效接收。
4.根据权利要求1或2所述方法,其特征在于,所述以每次发送一行升级数据的方式,向所述下位机连续发送单个所述升级数据包中的升级数据的步骤,包括:
向所述下位机发送包开始命令,所述包开始命令用于促使所述下位机做好接收准备;
接收到所述下位机在做好接收准备之后发送的待收命令后,以每次发送一行升级数据的方式,向所述下位机发送单个所述升级数据包中的升级数据。
5.根据权利要求2所述的方法,其特征在于,所述在所述下位机接收完所述升级目标文件后,向所述下位机发送文件结束命令的步骤,包括:
在所述下位机接收完所述升级目标文件,向所述下位机发送文件结束命令,所述文件结束命令包括所述升级目标文件的第一CRC校验值,所述升级目标文件的第一CRC校验值是根据向所述下位机发送的所述升级数据计算得到的;
所述文件结束命令用于促使所述下位机根据接收到的所述升级目标文件的有效升级数据计算得到第二CRC校验值,并与所述第一CRC校验值进行比较;
所述升级校验为在所述第一CRC校验值与所述第二CRC校验值一致的情况下进行升级,在所述第一CRC校验值与所述第二CRC校验值不一致的情况下不进行升级。
6.一种升级数据处理方法,其特征在于,应用于下位机,所述下位机与上位机通信连接,所述上位机存储有包括多个升级数据包的升级目标文件,每个所述升级数据包包括多行升级数据,所述方法包括:
接收所述上位机以每次发送一行升级数据的方式所连续发送的单个所述升级数据包的升级数据;
在接收到所述上位机发送的包结束命令后,对接收的单个所述升级数据包的升级数据逐行进行有效校验以生成第一校验值,并向所述上位机发送所述第一校验值,所述第一校验值用于促使所述上位机得到所述下位机未有效接收的升级数据;
接收所述上位机以每次发送一行升级数据的方式重新发送的升级数据,直至有效接收完单个所述升级数据包的所有升级数据,所述重新发送的升级数据为所述下位机未有效接收的升级数据;
对有效接收完的单个所述升级数据包的所有升级数据进行写入处理,并在写入处理结束后向所述上位机发送空闲命令,直至有效接收完所述升级目标文件,所述空闲命令用于促使所述上位机继续发送下一个所述升级数据包的升级数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述上位机在所述下位机接收完所述升级目标文件后发送的文件结束命令,所述文件结束命令包括所述升级目标文件的第一CRC校验值,所述第一CRC校验值是所述上位机根据向所述下位机发送的所述升级数据计算得到的;
根据接收的所述升级目标文件的有效升级数据,计算得到第二CRC校验值,并将所述第二CRC校验值与第一CRC校验值进行比较,以进行升级校验;所述有效升级数据为通过有效校验的升级数据。
8.根据权利要求6所述的方法,其特征在于,所述对有效接收完的单个所述升级数据包的所有升级数据进行写入处理的步骤,包括:
解析每一行升级数据,从所述升级数据包的所有升级数据中提取需要写入闪存的数据和地址,并将该提取出的数据和地址写入闪存镜像缓存;
当所述闪存镜像缓存写满后,将所述闪存镜像缓存内的数据写入闪存。
9.一种上位机,其特征在于,所述上位机与下位机通信连接,用于实现如权利要求1至5任一项所述的升级数据处理方法。
10.一种下位机,其特征在于,所述下位机与上位机通信连接,用于实现如权利要求6至8任一项所述的升级数据处理方法。
11.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的方法。
12.一种存储介质,其特征在于,所述存储介质包括计算机程序,所述计算机程序运行时控制所述存储介质所在的电子设备执行如权利要求1至8任一项所述的方法。
CN202111200298.7A 2021-10-15 2021-10-15 升级数据处理方法、上位机、下位机、设备及存储介质 Active CN113645316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111200298.7A CN113645316B (zh) 2021-10-15 2021-10-15 升级数据处理方法、上位机、下位机、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111200298.7A CN113645316B (zh) 2021-10-15 2021-10-15 升级数据处理方法、上位机、下位机、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113645316A true CN113645316A (zh) 2021-11-12
CN113645316B CN113645316B (zh) 2022-02-08

Family

ID=78426957

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111200298.7A Active CN113645316B (zh) 2021-10-15 2021-10-15 升级数据处理方法、上位机、下位机、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113645316B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114594752A (zh) * 2022-03-04 2022-06-07 潍柴雷沃重工股份有限公司 一种拖拉机控制单元软件刷写方法及存储介质
CN114594752B (zh) * 2022-03-04 2024-05-14 潍柴雷沃智慧农业科技股份有限公司 一种拖拉机控制单元软件刷写方法及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040264650A1 (en) * 2003-06-30 2004-12-30 Wright Robert Hollis Method, system and computer program product for facilitating the analysis of automatic line insulation testing data
US20080126607A1 (en) * 2006-09-20 2008-05-29 Integrated Device Technology, Inc. Method of handling flow control in daisy-chain protocols
CN101286867A (zh) * 2007-05-29 2008-10-15 深圳市同洲电子股份有限公司 一种网络设备的软件升级方法与系统
CN105187287A (zh) * 2015-09-16 2015-12-23 中航锂电(洛阳)有限公司 一种基于can总线的电池管理系统软件升级方法
CN106897088A (zh) * 2017-01-19 2017-06-27 深圳市沃特玛电池有限公司 软件升级系统及软件升级方法
CN109086058A (zh) * 2017-06-13 2018-12-25 荣成华泰汽车有限公司 车载程序升级系统
CN110716727A (zh) * 2019-09-02 2020-01-21 领翌技术(横琴)有限公司 软件升级方法及系统
CN111104143A (zh) * 2019-12-26 2020-05-05 北谷电子有限公司上海分公司 一种固件升级方法及升级装置
CN111722858A (zh) * 2020-05-27 2020-09-29 科华恒盛股份有限公司 在线升级方法及终端设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040264650A1 (en) * 2003-06-30 2004-12-30 Wright Robert Hollis Method, system and computer program product for facilitating the analysis of automatic line insulation testing data
US20080126607A1 (en) * 2006-09-20 2008-05-29 Integrated Device Technology, Inc. Method of handling flow control in daisy-chain protocols
CN101286867A (zh) * 2007-05-29 2008-10-15 深圳市同洲电子股份有限公司 一种网络设备的软件升级方法与系统
CN105187287A (zh) * 2015-09-16 2015-12-23 中航锂电(洛阳)有限公司 一种基于can总线的电池管理系统软件升级方法
CN106897088A (zh) * 2017-01-19 2017-06-27 深圳市沃特玛电池有限公司 软件升级系统及软件升级方法
CN109086058A (zh) * 2017-06-13 2018-12-25 荣成华泰汽车有限公司 车载程序升级系统
CN110716727A (zh) * 2019-09-02 2020-01-21 领翌技术(横琴)有限公司 软件升级方法及系统
CN111104143A (zh) * 2019-12-26 2020-05-05 北谷电子有限公司上海分公司 一种固件升级方法及升级装置
CN111722858A (zh) * 2020-05-27 2020-09-29 科华恒盛股份有限公司 在线升级方法及终端设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李会; 王宜怀; 王磊: "基于CAN的数据无损代码更新方法设计与应用", 《电子技术应用》 *
樊晓清; 顾国华; 隋修宝; 刘宁: "红外热像仪与上位机通信系统设计", 《光学与光电技术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114594752A (zh) * 2022-03-04 2022-06-07 潍柴雷沃重工股份有限公司 一种拖拉机控制单元软件刷写方法及存储介质
CN114594752B (zh) * 2022-03-04 2024-05-14 潍柴雷沃智慧农业科技股份有限公司 一种拖拉机控制单元软件刷写方法及存储介质

Also Published As

Publication number Publication date
CN113645316B (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
US20190057214A1 (en) Update control device, terminal, and method of controlling
CN109976767B (zh) 软件烧录方法和装置
US10116746B2 (en) Data storage method and network interface card
CN109428773B (zh) 一种通信方法和装置
CN111382123B (zh) 文件存储方法、装置、设备及存储介质
US10274919B2 (en) Method, device and computer program product for programming a plurality of control units
CN104917586A (zh) 传输数据的校验方法、装置及系统
CN110908837A (zh) 应用程序异常处理方法、装置、电子设备及存储介质
CN111736866A (zh) 兼容一对一和一对多的在线升级方法及终端设备
CN114637611A (zh) 基于消息队列的信息处理方法、装置及计算机设备
CN114285838A (zh) 一种文件上传方法、装置、系统、存储介质及电子设备
CN108133026B (zh) 一种多数据的处理方法、系统及存储介质
CN113645316B (zh) 升级数据处理方法、上位机、下位机、设备及存储介质
CN107277163B (zh) 一种设备远程映射方法及装置
CN112286565B (zh) 一种基于存储容器的嵌入式系统差分升级方法
CN111147597B (zh) 文件传输方法、终端、电子设备及存储介质
CN108306815A (zh) 一种获取消息的方法、装置、设备及计算机可读存储介质
CN110134419B (zh) 一种双面柜的系统升级方法、装置、设备及存储介质
CN109800202B (zh) 一种基于pcie的数据传输系统、方法及装置
CN112912841A (zh) 硬件升级方法、装置、设备和存储介质
CN115412547A (zh) 一种文件上传方法及文件上传系统
CN112333262A (zh) 数据更新提示方法、装置、计算机设备及可读存储介质
CN103024029B (zh) 一种路由器软件升级的方法和系统
CN110599326A (zh) 借贷风险控制方法、装置及终端设备
CN111722858A (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
GR01 Patent grant
GR01 Patent grant