CN111930406A - 车载终端微控制单元软件升级方法、电子设备及存储介质 - Google Patents

车载终端微控制单元软件升级方法、电子设备及存储介质 Download PDF

Info

Publication number
CN111930406A
CN111930406A CN202011081795.5A CN202011081795A CN111930406A CN 111930406 A CN111930406 A CN 111930406A CN 202011081795 A CN202011081795 A CN 202011081795A CN 111930406 A CN111930406 A CN 111930406A
Authority
CN
China
Prior art keywords
instruction
software
software upgrading
data
vehicle
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
CN202011081795.5A
Other languages
English (en)
Other versions
CN111930406B (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.)
Mushroom Car Union Information Technology Co Ltd
Original Assignee
Mushroom Car Union Information 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 Mushroom Car Union Information Technology Co Ltd filed Critical Mushroom Car Union Information Technology Co Ltd
Priority to CN202011081795.5A priority Critical patent/CN111930406B/zh
Publication of CN111930406A publication Critical patent/CN111930406A/zh
Application granted granted Critical
Publication of CN111930406B publication Critical patent/CN111930406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

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

Abstract

本发明实施例提供一种车载终端微控制单元软件升级方法、电子设备及存储介质;方法包括:接收第一指令,并对所述第一指令进行校验,当校验通过后,确定对车载终端微控制单元所安装的软件进行升级;在空闲时间段内,向车载终端主处理器发送第二指令;在预设的时间间隔内接收到所述软件升级数据包的数据分包后,校验并存储所述数据分包;判断所述软件升级数据包是否已经接收完成,如果没有接收完成,更新所述偏移量,然后重新执行发送第二指令的步骤,如果接收完成,执行发送第三指令的步骤;向主处理器发送第三指令;接收第四指令,根据所述第四指令所指定的时机重启进入bootloader,完成软件的升级更新。

Description

车载终端微控制单元软件升级方法、电子设备及存储介质
技术领域
本发明涉及车载设备技术领域,尤其涉及一种车载终端微控制单元软件升级方法、电子设备及存储介质。
背景技术
车载终端作为车联网系统中三大组成部分之一,负责采集车辆实时运行数据,实现对车辆所有工作信息和静、动态信息的采集、存储和发送。
车载终端一般包括主处理器和MCU(Microcontroller Unit,微控制单元),MCU主要负责实时性处理,比如IO(输入输出)检测。
MCU中的软件需要升级。在现有技术中,对MCU中的软件进行升级的方法主要有两种:
方法一:主处理器下发升级指令,MCU收到指令后进入bootloader程序(bootloader程序是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中,然后跳转到操作系统所在的空间,启动操作系统运行),然后接收主处理器下发的程序文件数据,写入对应的应用程序区域,接收完毕后跳转执行,完成程序升级。
方法二:主处理器下发升级指令,MCU收到指令后在应用程序中接收主处理器下发的程序文件数据,写入备份应用程序区域,接收完成后,进入bootloader,将备份区程序搬移至主应用区,跳转执行,完成程序升级。
前述方法一的特点是流程简单,但MCU在整个软件升级过程中均处于bootloader流程,实时性较差。
前述方法二的特点是在应用程序中进行程序升级。该方法在软件升级过程中,由主处理器主导升级用的程序文件数据的下发。一旦传输网络发生网络延迟,会导致MCU接收数据超时,可能造成软件升级失败;或者,虽然没有网络延迟,但下发程序文件数据时,MCU正在处理高优先级任务,造成延迟接收,主处理器认为MCU接收超时,同样会造成软件升级失败。
如何既能保证MCU在程序升级过程中的系统实时性,又能稳定可靠的完成程序升级流程,是亟待解决的技术问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种车载终端微控制单元软件升级方法、电子设备及存储介质。
本发明第一方面实施例提供一种车载终端微控制单元软件升级方法,应用于车载终端微控制单元,方法包括:
接收并校验第一指令的步骤,包括:接收第一指令,并对所述第一指令进行校验,当校验通过后,确定对车载终端微控制单元所安装的软件进行升级;其中,所述第一指令用于指示开始软件升级;
发送第二指令的步骤,包括:在空闲时间段内,向车载终端主处理器发送第二指令;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收数据分包的步骤,包括:在预设的时间间隔内接收到所述软件升级数据包的数据分包后,校验并存储所述数据分包;
判断步骤,包括:判断所述软件升级数据包是否已经接收完成,如果没有接收完成,更新所述偏移量,然后重新执行发送第二指令的步骤,如果接收完成,执行发送第三指令的步骤;
发送第三指令的步骤,包括:向主处理器发送第三指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;
接收第四指令的步骤,包括:接收第四指令,根据所述第四指令所指定的时机重启进入bootloader,完成软件的升级更新;其中,所述第四指令用于指示软件升级的时机。
上述技术方案中,所述接收数据分包的步骤还包括:
在预设的时间间隔内未接收到所述软件升级数据包的数据分包,向车载终端主处理器重新发送第二指令;
当重新发送第二指令的次数超出了预设值,结束软件升级。
上述技术方案中,所述根据所述第四指令所指定的时机重启进入bootloader,包括:
当所述第四指令指定立即进行软件升级时,立刻重启进入bootloader;
当所述第四指令指定在空闲时进行软件升级时,待下一个空闲时间段到来后,重启进入bootloader。
上述技术方案中,所述完成软件的升级更新,包括:
判断第一应用程序区和第二应用程序区的内容是否一致;其中,所述第一应用程序区用于存储车载终端微控制单元的已安装软件,所述第二应用程序区用于存储软件升级数据包;
当不一致时,校验所述第二应用程序区的数据正确性;
校验通过后,将所述第二应用程序区的数据写入第一应用程序区,写入完成后,运行软件,完成软件的升级。
本发明第二方面实施例提供一种车载终端微控制单元软件升级方法,应用于车载终端主处理器,方法包括:
发送第一指令的步骤,包括:发送第一指令;其中,所述第一指令用于指示开始软件升级;
接收第二指令并生成数据分包的步骤,包括:接收第二指令,根据所述第二指令以及待传输的软件升级数据包,生成数据分包并发送;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收第三指令并生成第四指令的步骤,包括:接收第三指令,根据所述软件升级数据包的紧急程度确定软件升级的时机,生成第四指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;所述第四指令用于指示软件升级的时机。
上述技术方案中,所述根据所述软件升级数据包的紧急程度确定软件升级的时机,包括:
当所述软件升级数据包的紧急程度高于预设等级时,指定立即进行软件升级;
当所述软件升级数据包的紧急程度低于或等于预设等级时,指定在空闲时进行软件升级。
本发明第三方面实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明第一方面实施例所述车载终端微控制单元软件升级方法的步骤,或实现如本发明第二方面实施例所述车载终端微控制单元软件升级方法的步骤。
本发明第四方面实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明第一方面实施例所述车载终端微控制单元软件升级方法的步骤,或实现如本发明第二方面实施例所述车载终端微控制单元软件升级方法的步骤。
本发明实施例提供的车载终端微控制单元软件升级方法、电子设备及存储介质,在下载软件升级数据包时,由微控制单元在空闲时段主动向主处理器请求下载软件升级数据包,使得软件升级数据包的下载过程不会被高优先级的任务打断,避免了因为接收延迟做造成的软件升级失败;在进行软件升级时,根据升级的紧要程度立即进行软件升级或在空闲时进行软件升级,提高了系统的实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为车载终端的示意图;
图2为本发明实施例提供的车载终端微控制单元软件升级方法的流程图;
图3为车载终端微控制单元的存储器的示意图;
图4为本发明另一实施例提供的车载终端微控制单元软件升级方法的流程图;
图5为车载终端微控制单元的示意图;
图6为车载终端主处理器的示意图;
图7为本发明实施例提供的车载终端微控制单元软件升级的时序图;
图8为本发明实施例所涉及的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
车载终端是车辆监控管理系统的前端设备,也被称为车辆调度监控终端。
图1为车载终端的示意图,如图1所示,车载终端主要包括主处理器与微控制单元(MCU),主处理器通过串口(或者USB、网络等通信方式)与MCU连接。
图2为本发明实施例提供的车载终端微控制单元软件升级方法的流程图,如图2所示,本发明实施例提供的车载终端微控制单元软件升级方法,应用于车载终端微控制单元,方法包括:
步骤201、接收第一指令,并对所述第一指令进行校验,当校验通过后,确定对车载终端微控制单元所安装的软件进行升级。
在本发明实施例中,所述第一指令用于指示车载终端微控制单元所安装软件开始升级。第一指令由车载终端主处理器生成并发送。第一指令包括软件升级用的程序文件数据的大小,也就是通常所说的软件升级数据包的大小。
车载终端微控制单元对第一指令进行校验,以确定能否对所安装的软件进行升级。具体的说,对第一指令进行校验包括:将软件升级数据包的大小与车载终端微控制单元的空闲存储区域的大小进行比较,如果所述空闲存储区域大于或等于软件升级数据包的大小,则第一指令通过校验;如果所述空闲存储区域小于软件升级数据包的大小,则第一指令不通过校验。
例如,车载终端微控制单元的存储器(FLASH)中可用于存放软件升级数据包的空间大小为30Kb,如果软件升级数据包大于30Kb,那么无法完成软件升级过程,返回错误代码;如果软件升级数据包小于或等于30Kb,那么可以继续后续的软件升级操作。
本发明实施例中主要对第一指令通过校验的情况做进一步的讨论,对于第一指令未通过校验的情况,停止软件升级过程。
步骤202、在空闲时间段内,向车载终端主处理器发送第二指令。
本领域技术人员都知道,在RTOS(Real Time Operating System,实时操作系统)运行过程中,车载终端微控制单元的CPU并非每时每刻都处于忙碌状态。在一些时间段内,CPU的处理能力达到饱和状态,在一些时间段内,CPU的处理能力存在一定的闲置。在本发明实施例中,将CPU处理能力存在闲置的时间段称为空闲时间段。
如何获取空闲时间段是本领域技术人员的公知常识,不在本发明实施例中做详细描述。
当车载终端微控制单元处于空闲时间段时,向车载终端主处理器发送请求第二指令;其中,所述第二指令用于请求下载软件升级数据包。
第二指令包括偏移量和数据分包的大小。
由于软件升级数据包通常有较大的数据量,因此需要将软件升级数据包切分成多个小数据包,并将这些小数据包作为传输的基本单元进行传输。在本发明实施例中,将切分得到的小数据包称为数据分包。数据分包的大小可根据实际需要设置,如一个数据分包的大小为64字节。
在本发明实施例中,偏移量用于指示软件升级数据中已传输数据的位置。本领域技术人员很容易理解,在软件升级数据包传输过程中,偏移量的值会随着数据传输过程而发生变化。
步骤203、在预设的时间间隔内接收到所述软件升级数据包的数据分包后,校验并存储所述数据分包。
由于数据的传输会受到网络状况、主处理器响应等外部环境的影响,因此在本发明实施例中,为所述数据分包的传输设置了一个时间间隔。所述时间间隔是数据分包正常传输所需要的时间,正常情况下,应当可以在预设的时间间隔内接收到所述数据分包。
对所述数据分包进行校验,可以验证数据分包的完整性、正确性。如何对数据分包进行校验是本领域技术人员的公知常识,因此不在此处重复说明。
车载终端微控制单元在存储通过校验的数据分包时,可在一个专门的区域内存储通过校验的数据分包。图3为车载终端微控制单元的存储器的示意图,在该存储器中包括有两个存储区域,分别为第一应用程序区和第二应用程序区。若第一应用程序区用于存储车载终端微控制单元升级前的软件,则第二应用程序区可用于存储软件升级数据包的数据分包,当软件升级数据包接收完成后,第二应用程序区存储了完整的软件升级数据包。
步骤204、判断所述软件升级数据包是否已经接收完成,如果没有接收完成,更新所述偏移量,然后重新执行步骤202,如果接收完成,执行步骤205。
由于软件升级数据包切分成了多个数据分包并分别传输,因此需要对软件升级数据包是否已经接收完成进行判断。如果没有接收完成,需要继续接收过程,如果接收完成,才能利用软件升级数据包对车载终端微控制单元的软件进行升级。
在继续接收时,需要根据已接收到的数据分包对偏移量进行更新,然后重新发送第二指令。
步骤205、向主处理器发送第三指令。
车载终端微控制单元接收到完整的软件升级数据包并存储后,向主处理器发送第三指令,所述第三指令用于指示软件升级数据包接收的工作已经完成。主处理器接收到第三指令后,可以知道软件升级数据包传输的过程已经结束。
步骤206、接收第四指令,根据所述第四指令所指定的时机重启进入bootloader,完成软件的升级更新。
在本发明实施例中,所述第四指令用于指示软件升级的时机。
软件升级的紧急程度会存在差异。一些涉及到安全性、实时性以及重要功能变化的软件升级紧急程度高,需要在软件升级数据包传输完成后,立即开始软件升级更新过程。一些次要功能变化的软件升级紧急程度低,在软件升级数据包传输完成后,允许等待一定时间再开始软件升级更新过程。
车载终端主控制器会根据软件升级的紧急程度发送第四指令,该指令描述了是否需要立即进行软件升级。根据第四指令,如果需要立即进行软件升级,车载终端微控制单元立刻重启进入bootloader,完成软件的升级更新流程。如果无需立即进行软件升级,车载终端微控制单元则会选择在CPU空闲时自动进入bootloader,完成软件的升级更新流程。
bootloader在对软件进行升级时,会判断车载终端微控制单元中的第一应用程序区和第二应用程序区内容是否一致,所述内容包括软件的大小、校验和、软件版本号以及硬件版本号;如果不一致,通过校验和校验第二应用程序区的数据正确性;校验通过后,将第二应用程序区的程序数据写入第一应用程序区,写入完成后,执行跳转运行新软件,完成软件的升级。
本发明实施例提供的车载终端微控制单元软件升级方法在下载软件升级数据包时,由微控制单元在空闲时段主动向主处理器请求下载软件升级数据包,使得软件升级数据包的下载过程不会被高优先级的任务打断,避免了因为接收延迟做造成的软件升级失败;在进行软件升级时,根据升级的紧要程度立即进行软件升级或在空闲时进行软件升级,提高了系统的实时性。
基于上述任一实施例,在本发明实施例中,所述步骤203还包括:
在预设的时间间隔内未接收到所述软件升级数据包的数据分包,向车载终端主处理器重新发送第二指令;
当重新发送第二指令的次数超出了预设值,结束软件升级。
在本发明之前的实施例中已经提到,预设的时间间隔是数据分包正常传输所需要的时间,正常情况下,应当可以在预设的时间间隔内接收到所述数据分包。但如果在预设的时间间隔内无法接收到软件升级数据包的数据分包,则说明可能存在网络延迟等意外状况,此时需要向车载终端主处理器重新发送第二指令。如果重新发送第二指令的次数超过了预设值,则软件升级的过程失败。
在本发明实施例中,预设的时间间隔的大小为500ms,在本发明的其他实施例中,预设的时间间隔的大小也可以是其他值。
在本发明实施例中,预设值的大小是5次,在本发明的其他实施例中,预设值的大小也可以是其他值。
本发明实施例提供的车载终端微控制单元软件升级方法在下载软件升级数据包时,由微控制单元在空闲时段主动向主处理器请求下载软件升级数据包,使得软件升级数据包的下载过程不会被高优先级的任务打断,避免了因为接收延迟做造成的软件升级失败;在进行软件升级时,根据升级的紧要程度立即进行软件升级或在空闲时进行软件升级,提高了系统的实时性。
基于上述任一实施例,图4为本发明另一实施例提供的车载终端微控制单元软件升级方法的流程图,该方法应用于车载终端主处理器,如图4所示,方法包括:
步骤401、发送第一指令。
在本发明实施例中,所述第一指令用于指示车载终端微控制单元所安装软件开始升级。第一指令包括软件升级用的程序文件数据的大小,也就是通常所说的软件升级数据包的大小。
步骤402、接收第二指令,根据所述第二指令以及待传输的软件升级数据包,生成数据分包并发送。
在本发明实施例中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元。
第二指令中包括有偏移量以及数据分包的大小,因此主处理器可以根据数据分包的大小对待传输的软件升级数据包进行切分,根据偏移量确定选取哪些数据分包进行传输。
在本发明实施例中,下载软件升级数据包的操作并非由主处理器主动发起,而是由微控制单元发起。这使得微控制单元可以在空闲时间段发起请求下载软件升级数据包的第二指令,避免软件升级数据包的下载过程不会被高优先级的任务打断。
步骤403、接收第三指令,根据所述软件升级数据包的紧急程度确定软件升级的时机,生成第四指令。
在本发明实施例中,所述第三指令用于指示软件升级数据包接收的工作已经完成;所述第四指令用于指示软件升级的时机。
主处理器接收到第三指令后,根据第三指令确定微控制单元已经完成了软件升级数据包的接收工作。接着,对软件升级数据包的紧急程度进行判断,当所述软件升级数据包的紧急程度高于预设等级时,指定立即进行软件升级;当所述软件升级数据包的紧急程度低于或等于预设等级时,指定在空闲时进行软件升级。
紧急程度的等级可以分为“非常紧急”、“紧急”、“正常”等。具体如何划分,可以根据实际情况确定。预设等级可以是“紧急”这一等级。
本发明实施例提供的车载终端微控制单元软件升级方法在下载软件升级数据包时,由微控制单元在空闲时段主动向主处理器请求下载软件升级数据包,使得软件升级数据包的下载过程不会被高优先级的任务打断,避免了因为接收延迟做造成的软件升级失败;在进行软件升级时,由主处理器根据升级的紧要程度决定是立即进行软件升级,还是在空闲时进行软件升级,提高了系统的实时性。
基于上述任一实施例,本发明另一实施例提供一种车载终端微控制单元软件升级系统,包括车载终端微控制单元以及车载终端主处理器,车载终端微控制单元与车载终端主处理器连接。
图5为车载终端微控制单元的示意图,如图5所示,车载终端微控制单元包括:
接收并校验第一指令模块501,用于接收第一指令,并对所述第一指令进行校验,当校验通过后,确定对车载终端微控制单元所安装的软件进行升级;其中,所述第一指令用于指示开始软件升级;
发送第二指令模块502,用于在空闲时间段内,向车载终端主处理器发送第二指令;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收数据分包模块503,用于在预设的时间间隔内接收到所述软件升级数据包的数据分包后,校验并存储所述数据分包;
判断模块504,用于判断所述软件升级数据包是否已经接收完成,如果没有接收完成,更新所述偏移量,然后重新执行发送第二指令的步骤,如果接收完成,执行发送第三指令的步骤;
发送第三指令模块505,用于向主处理器发送第三指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;
接收第四指令模块506,用于接收第四指令,根据所述第四指令所指定的时机重启进入bootloader,完成软件的升级更新;其中,所述第四指令用于指示软件升级的时机。
本发明实施例提供的车载终端微控制单元在下载软件升级数据包时,由微控制单元在空闲时段主动向主处理器请求下载软件升级数据包,使得软件升级数据包的下载过程不会被高优先级的任务打断,避免了因为接收延迟做造成的软件升级失败;在进行软件升级时,根据升级的紧要程度立即进行软件升级或在空闲时进行软件升级,提高了系统的实时性。
图6为车载终端主处理器的示意图,如图6所示,车载终端主处理器包括:
发送第一指令模块601,用于发送第一指令;其中,所述第一指令用于指示开始软件升级;
接收第二指令并生成数据分包模块602,用于接收第二指令,根据所述第二指令以及待传输的软件升级数据包,生成数据分包并发送;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收第三指令并生成第四指令模块603,用于接收第三指令,根据所述软件升级数据包的紧急程度确定软件升级的时机,生成第四指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;所述第四指令用于指示软件升级的时机。
本发明实施例提供的车载终端主处理器在下载软件升级数据包时,由微控制单元在空闲时段主动向主处理器请求下载软件升级数据包,使得软件升级数据包的下载过程不会被高优先级的任务打断,避免了因为接收延迟做造成的软件升级失败;在进行软件升级时,由主处理器根据升级的紧要程度决定是立即进行软件升级,还是在空闲时进行软件升级,提高了系统的实时性。
图7为本发明实施例提供的车载终端微控制单元软件升级的时序图,如图7所示,在一个实施例中,车载终端微控制单元软件升级过程如下:
步骤1、主处理器下发升级指令:包含升级文件包的大小信息。
步骤2、MCU接收到升级指令后,对升级文件包大小进行校验,如果满足需求则继续更新,否则,停止更新。
例如:预设flash可以存放的升级文件包大小为30Kb,升级文件包大于30Kb时停止更新,返回错误代码。
步骤3、如果步骤2通过校验,进入更新流程,MCU会在闲时向主处理器发送索要升级文件数据指令,采用分包方式,例如每包64字节(可变,可设置),指令中包含偏移量和分包大小。
步骤4、主处理器收到索要升级文件数据指令后,按照偏移量和分包大小将对应数据发送给MCU。
步骤5、MCU发送索要升级数据后如果超时(500ms,可变)没有收到主处理器回复,则进行重发,如果超过预设重发次数(5次),本次更新失败,结束更新流程。
步骤6、MCU收到主处理器发送的升级文件数据后,校验通过后,写入flash的第二应用程序区。判断是否接收完成,如果没有接收完成,设置偏移量,重复步骤3~步骤6。
步骤7、MCU接收完成升级文件包后,向主处理器发送接收写入完成指令。
步骤8、主处理器根据本次MCU程序升级的重要级别,向MCU发送是否立即更新的指令。
步骤9、MCU收到步骤8中主处理器发送的指令,如果需要立即更新,MCU立刻重启进入bootloader,完成更新流程。如果无需立即更新,MCU则会选择在CPU空闲时自动进入bootloader,完成更新流程。
图8为本发明实施例所涉及的电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:
接收并校验第一指令的步骤,包括:接收第一指令,并对所述第一指令进行校验,当校验通过后,确定对车载终端微控制单元所安装的软件进行升级;其中,所述第一指令用于指示开始软件升级;
发送第二指令的步骤,包括:在空闲时间段内,向车载终端主处理器发送第二指令;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收数据分包的步骤,包括:在预设的时间间隔内接收到所述软件升级数据包的数据分包后,校验并存储所述数据分包;
判断步骤,包括:判断所述软件升级数据包是否已经接收完成,如果没有接收完成,更新所述偏移量,然后重新执行发送第二指令的步骤,如果接收完成,执行发送第三指令的步骤;
发送第三指令的步骤,包括:向主处理器发送第三指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;
接收第四指令的步骤,包括:接收第四指令,根据所述第四指令所指定的时机重启进入bootloader,完成软件的升级更新;其中,所述第四指令用于指示软件升级的时机。
或执行如下步骤:
发送第一指令的步骤,包括:发送第一指令;其中,所述第一指令用于指示开始软件升级;
接收第二指令并生成数据分包的步骤,包括:接收第二指令,根据所述第二指令以及待传输的软件升级数据包,生成数据分包并发送;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收第三指令并生成第四指令的步骤,包括:接收第三指令,根据所述软件升级数据包的紧急程度确定软件升级的时机,生成第四指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;所述第四指令用于指示软件升级的时机。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:
接收并校验第一指令的步骤,包括:接收第一指令,并对所述第一指令进行校验,当校验通过后,确定对车载终端微控制单元所安装的软件进行升级;其中,所述第一指令用于指示开始软件升级;
发送第二指令的步骤,包括:在空闲时间段内,向车载终端主处理器发送第二指令;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收数据分包的步骤,包括:在预设的时间间隔内接收到所述软件升级数据包的数据分包后,校验并存储所述数据分包;
判断步骤,包括:判断所述软件升级数据包是否已经接收完成,如果没有接收完成,更新所述偏移量,然后重新执行发送第二指令的步骤,如果接收完成,执行发送第三指令的步骤;
发送第三指令的步骤,包括:向主处理器发送第三指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;
接收第四指令的步骤,包括:接收第四指令,根据所述第四指令所指定的时机重启进入bootloader,完成软件的升级更新;其中,所述第四指令用于指示软件升级的时机。
或例如包括:
发送第一指令的步骤,包括:发送第一指令;其中,所述第一指令用于指示开始软件升级;
接收第二指令并生成数据分包的步骤,包括:接收第二指令,根据所述第二指令以及待传输的软件升级数据包,生成数据分包并发送;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收第三指令并生成第四指令的步骤,包括:接收第三指令,根据所述软件升级数据包的紧急程度确定软件升级的时机,生成第四指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;所述第四指令用于指示软件升级的时机。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种车载终端微控制单元软件升级方法,其特征在于,应用于车载终端微控制单元,方法包括:
接收并校验第一指令的步骤,包括:接收第一指令,并对所述第一指令进行校验,当校验通过后,确定对车载终端微控制单元所安装的软件进行升级;其中,所述第一指令用于指示开始软件升级;
发送第二指令的步骤,包括:在空闲时间段内,向车载终端主处理器发送第二指令;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收数据分包的步骤,包括:在预设的时间间隔内接收到所述软件升级数据包的数据分包后,校验并存储所述数据分包;
判断步骤,包括:判断所述软件升级数据包是否已经接收完成,如果没有接收完成,更新所述偏移量,然后重新执行发送第二指令的步骤,如果接收完成,执行发送第三指令的步骤;
发送第三指令的步骤,包括:向主处理器发送第三指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;
接收第四指令的步骤,包括:接收第四指令,根据所述第四指令所指定的时机重启进入bootloader,完成软件的升级更新;其中,所述第四指令用于指示软件升级的时机。
2.根据权利要求1所述的车载终端微控制单元软件升级方法,其特征在于,所述接收数据分包的步骤还包括:
在预设的时间间隔内未接收到所述软件升级数据包的数据分包,向车载终端主处理器重新发送第二指令;
当重新发送第二指令的次数超出了预设值,结束软件升级。
3.根据权利要求1所述的车载终端微控制单元软件升级方法,其特征在于, 所述根据所述第四指令所指定的时机重启进入bootloader,包括:
当所述第四指令指定立即进行软件升级时,立刻重启进入bootloader;
当所述第四指令指定在空闲时进行软件升级时,待下一个空闲时间段到来后,重启进入bootloader。
4.根据权利要求1所述的车载终端微控制单元软件升级方法,其特征在于,所述完成软件的升级更新,包括:
判断第一应用程序区和第二应用程序区的内容是否一致;其中,所述第一应用程序区用于存储车载终端微控制单元的已安装软件,所述第二应用程序区用于存储软件升级数据包;
当不一致时,校验所述第二应用程序区的数据正确性;
校验通过后,将所述第二应用程序区的数据写入第一应用程序区,写入完成后,运行软件,完成软件的升级。
5.一种车载终端微控制单元软件升级方法,其特征在于,应用于车载终端主处理器,方法包括:
发送第一指令的步骤,包括:发送第一指令;其中,所述第一指令用于指示开始软件升级;
接收第二指令并生成数据分包的步骤,包括:接收第二指令,根据所述第二指令以及待传输的软件升级数据包,生成数据分包并发送;其中,所述第二指令用于请求下载软件升级数据包;所述第二指令包括偏移量和数据分包的大小;所述偏移量用于指示软件升级数据中已传输数据的位置;所述数据分包是对软件升级数据包进行切分所得到的、用于网络传输的单元;
接收第三指令并生成第四指令的步骤,包括:接收第三指令,根据所述软件升级数据包的紧急程度确定软件升级的时机,生成第四指令;其中,所述第三指令用于指示软件升级数据包接收的工作已经完成;所述第四指令用于指示软件升级的时机。
6.根据权利要求5所述的车载终端微控制单元软件升级方法,其特征在于,所述根据所述软件升级数据包的紧急程度确定软件升级的时机,包括:
当所述软件升级数据包的紧急程度高于预设等级时,指定立即进行软件升级;
当所述软件升级数据包的紧急程度低于或等于预设等级时,指定在空闲时进行软件升级。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述车载终端微控制单元软件升级方法的步骤,或实现如权利要求5或6所述车载终端微控制单元软件升级方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述车载终端微控制单元软件升级方法的步骤,或实现如权利要求5或6所述车载终端微控制单元软件升级方法的步骤。
CN202011081795.5A 2020-10-12 2020-10-12 车载终端微控制单元软件升级方法、电子设备及存储介质 Active CN111930406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011081795.5A CN111930406B (zh) 2020-10-12 2020-10-12 车载终端微控制单元软件升级方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011081795.5A CN111930406B (zh) 2020-10-12 2020-10-12 车载终端微控制单元软件升级方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111930406A true CN111930406A (zh) 2020-11-13
CN111930406B CN111930406B (zh) 2021-01-22

Family

ID=73334711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011081795.5A Active CN111930406B (zh) 2020-10-12 2020-10-12 车载终端微控制单元软件升级方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111930406B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631637A (zh) * 2020-12-30 2021-04-09 重庆芯讯通无线科技有限公司 基于rtos的ota升级方法、系统、设备及存储介质
CN113741943A (zh) * 2021-11-08 2021-12-03 湘投云储科技有限公司 一种嵌入式设备程序升级系统及方法
CN114594752A (zh) * 2022-03-04 2022-06-07 潍柴雷沃重工股份有限公司 一种拖拉机控制单元软件刷写方法及存储介质
CN115309431A (zh) * 2022-09-29 2022-11-08 荣耀终端有限公司 一种参数更新方法、可读介质和电子设备
CN116909609A (zh) * 2023-09-12 2023-10-20 英纳法智联科技(北京)有限公司 车载智能设备的软件升级方法、装置及车载智能设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101951391A (zh) * 2010-04-13 2011-01-19 杭州海康威视系统技术有限公司 监控设备远程升级的方法、装置及系统
CN103577202A (zh) * 2012-07-23 2014-02-12 深圳市中兴移动通信有限公司 软件升级方法与系统
CN107168739A (zh) * 2017-05-15 2017-09-15 万达百汇科技(深圳)有限公司 Pos机、pos机无线通讯模块固件升级方法及装置
WO2019057312A1 (en) * 2017-09-25 2019-03-28 Thyssenkrupp Presta Ag METHOD FOR UPDATING REMOTE ONLINE SOFTWARE IN MOTOR VEHICLES

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101951391A (zh) * 2010-04-13 2011-01-19 杭州海康威视系统技术有限公司 监控设备远程升级的方法、装置及系统
CN103577202A (zh) * 2012-07-23 2014-02-12 深圳市中兴移动通信有限公司 软件升级方法与系统
CN107168739A (zh) * 2017-05-15 2017-09-15 万达百汇科技(深圳)有限公司 Pos机、pos机无线通讯模块固件升级方法及装置
WO2019057312A1 (en) * 2017-09-25 2019-03-28 Thyssenkrupp Presta Ag METHOD FOR UPDATING REMOTE ONLINE SOFTWARE IN MOTOR VEHICLES

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631637A (zh) * 2020-12-30 2021-04-09 重庆芯讯通无线科技有限公司 基于rtos的ota升级方法、系统、设备及存储介质
CN112631637B (zh) * 2020-12-30 2024-04-02 重庆芯讯通无线科技有限公司 基于rtos的ota升级方法、系统、设备及存储介质
CN113741943A (zh) * 2021-11-08 2021-12-03 湘投云储科技有限公司 一种嵌入式设备程序升级系统及方法
CN114594752A (zh) * 2022-03-04 2022-06-07 潍柴雷沃重工股份有限公司 一种拖拉机控制单元软件刷写方法及存储介质
CN114594752B (zh) * 2022-03-04 2024-05-14 潍柴雷沃智慧农业科技股份有限公司 一种拖拉机控制单元软件刷写方法及存储介质
CN115309431A (zh) * 2022-09-29 2022-11-08 荣耀终端有限公司 一种参数更新方法、可读介质和电子设备
CN116909609A (zh) * 2023-09-12 2023-10-20 英纳法智联科技(北京)有限公司 车载智能设备的软件升级方法、装置及车载智能设备
CN116909609B (zh) * 2023-09-12 2023-12-22 英纳法智联科技(北京)有限公司 车载智能设备的软件升级方法、装置及车载智能设备

Also Published As

Publication number Publication date
CN111930406B (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
CN111930406B (zh) 车载终端微控制单元软件升级方法、电子设备及存储介质
CN110083374B (zh) 一种升级回滚方法、系统及终端设备
CN111399884A (zh) 一种车辆组件的升级方法、装置及电子设备
CN103488501A (zh) 光网络终端设备及其系统软件升级方法
US10274919B2 (en) Method, device and computer program product for programming a plurality of control units
CN108132797A (zh) 一种遥控器、SoC芯片及其应用程序的升级方法
CN112181455B (zh) 微控制器的在线升级方法、微控制器及存储介质
CN113760332A (zh) 软件升级方法和电子设备
CN114915554B (zh) 远程升级方法、装置、计算机设备和存储介质
CN111736866A (zh) 兼容一对一和一对多的在线升级方法及终端设备
CN114064091A (zh) Ota升级控制方法、装置、电子设备及自动驾驶车辆
CN116466986B (zh) 储能系统的设备软件升级方法、装置、通讯模块以及介质
CN112764818B (zh) 设备管理方法、装置、电子设备及可读存储介质
CN114237722B (zh) 一种系统的启动方法、装置、设备及工程车辆
CN116483409A (zh) 一种远程固件更新的方法、系统、电子设备及存储介质
CN116633780A (zh) 车辆的网关升级方法、装置、车辆及存储介质
CN116489143A (zh) 数据下载方法及相关装置
CN109428936B (zh) App的升级方法、装置、系统、电子设备及存储介质
CN116361114A (zh) 一种ai板卡监控保活方法、装置、设备及介质
CN112118567A (zh) 设备升级方法、电子设备和介质
CN115934130A (zh) 一种ecu升级方法、装置、设备及介质
CN115344289A (zh) 一种客户端升级方法、装置、终端设备及存储介质
CN111615819A (zh) 一种传输数据的方法和装置
CN115098138A (zh) 电池管理系统的功能升级方法、装置、电子设备及介质
CN115220747A (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