CN116400943A - 车辆控制器的升级方法、系统、设备、介质及车辆 - Google Patents

车辆控制器的升级方法、系统、设备、介质及车辆 Download PDF

Info

Publication number
CN116400943A
CN116400943A CN202310457239.0A CN202310457239A CN116400943A CN 116400943 A CN116400943 A CN 116400943A CN 202310457239 A CN202310457239 A CN 202310457239A CN 116400943 A CN116400943 A CN 116400943A
Authority
CN
China
Prior art keywords
firmware
partition
upgraded
controller
upgrade
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
CN202310457239.0A
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.)
Changzhou Xingyu Automotive Lighting Systems Co Ltd
Original Assignee
Changzhou Xingyu Automotive Lighting Systems 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 Changzhou Xingyu Automotive Lighting Systems Co Ltd filed Critical Changzhou Xingyu Automotive Lighting Systems Co Ltd
Priority to CN202310457239.0A priority Critical patent/CN116400943A/zh
Publication of CN116400943A publication Critical patent/CN116400943A/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

本发明涉及控制器通信技术领域,尤其涉及一种车辆控制器的升级方法,包括:将控制器与上位机建立通信连接;当控制器接收到升级请求时,读取控制器当前固件的版本,并向上位机请求获取升级固件的版本,根据当前固件的版本和升级固件的版本确定控制器是否进入升级;确定升级固件的分区;根据固件最后字节的地址和升级固件的分区地址,采用前、后端对其的方式对升级固件进行刷写;当固件升级成功后,自动更新升级固件的版本为当前应用层固件的版本,并跳转到升级固件的分区,同时保存前一个版本的固件;控制器升级成功后,向上位机反馈“升级成功”,控制器启动重启指令。有效解决因固件升级失败而使控制器无法正常使用的问题,降低对固件升级过程中产生的安全隐患的概率。

Description

车辆控制器的升级方法、系统、设备、介质及车辆
技术领域
本发明涉及控制器通信技术领域,尤其涉及一种车辆控制器的升级方法、系统、设备、介质及车辆。
背景技术
随着通信技术的发展,汽车的智能化程度越来越高。在智能车辆中,自动驾驶往往拥有相应的控制单元,相应的控制单元为车辆控制器,车辆控制器用于执行程序,以实现对数据的传输及信号的处理,可以理解为车辆控制器是自动驾驶领域的控制单元每个车辆控制器均包括MCU,通过MCU对相关部件进行逻辑控制,以实现特定的功能。
由于自动驾驶技术的成熟度、道路的工况复杂性、法律法规配套性、以及自动驾驶功能的迭代性等问题,自动驾驶软件需要不断的迭代升级。具体的,通过对MCU的固件进行升级以实现车辆控制器的升级。现有技术一般是将升级固件通过车辆控制器接口刷写到MCU指定分区内,刷写过程中易受通讯故障、意外断电等原因造成升级失败,导致MCU不能正常使用,严重时还会损坏MCU芯片,从而影响车辆的正常使用;另外,升级固件的大小会随着迭代不断变大,现有技术的升级策略显然无法满足升级需求。
发明内容
本发明要解决的技术问题是:为了解决现有技术中控制器的固件升级失败而造成车辆控制器无法正常使用的问题,本发明提供一种车辆控制器的升级方法,有效解决因固件升级失败而造成车辆控制器无法正常使用的问题,降低对固件升级过程中产生的安全隐患的概率。
本发明解决其技术问题所采用的技术方案是:一种车辆控制器的升级方法,包括:
S1:设备连接步骤,将待升级控制器与上位机建立通信连接;
S2:请求升级步骤,当所述待升级控制器接收到所述上位机传输的升级请求时,读取所述待升级控制器当前应用层固件的版本信息,并向所述上位机请求获取升级固件的版本信息,根据当前应用层固件的版本信息和升级固件的版本信息确定所述待升级控制器是否进入升级操作;
S3:确定升级固件的分区步骤,将Boot引导程序的分区划分为Boot分区、USERDATA分区、第一分区以及第二分区;
读取所述USER DATA分区内指定地址的“当前应用层固件执行分区标识符”,以确定当前应用层固件存储的分区;
若当前应用层固件存储的分区为第一分区,则将升级固件存储在第二分区;
若当前应用层固件存储的分区为第二分区,则将升级固件存储在第一分区。
S4:固件升级步骤,从USER DATA分区读取执行应用层固件最后字节的地址,获取升级固件的分区地址,根据应用层固件最后字节的地址和升级固件的分区地址,采用前端或后端对其的方式对升级固件进行刷写;
S5:更新步骤,当固件升级成功后,自动更新升级固件的版本信息为当前应用层固件的版本信息,并跳转到升级固件的分区,同时保存前一个版本的固件;
S6:重启步骤,所述待升级控制器升级成功后,向所述上位机反馈“升级成功”信息,同时自动保存参数至USER DATA分区,所述待升级控制器启动重启指令,以使得所述待升级控制器升级成功。
进一步,具体地,在步骤S1中,所述待升级控制器与所述上位机之间通过程序烧录设备建立通信连接。
进一步,具体地,在步骤S2中,根据当前应用层固件的版本信息和升级固件的版本信息确定所述待升级控制器是否进入升级操作包括以下步骤:
若升级固件的版本信息低于等于当前应用层固件的版本信息,则直接跳转到应用层固件,停止升级;
若升级固件的版本信息高于当前应用层固件的版本信息,所述待升级控制器进入升级操作,进入下一步骤。
进一步,具体地,所述步骤S4具体包括以下步骤:
若升级固件存储在第二分区,读取第二分区的最后字节的地址,从最后字节地址向前刷写升级固件;
或者,
若升级固件存储在第一分区,读取第一分区的首个字节地址,从首个字节地址向后刷写升级固件。
进一步,具体地,在刷写升级固件步骤中,还包括对升级固件进行校验,实时比对数据头、帧包号、数据长度以及数据区校验,若校验出错,则停止升级,并向所述上位机反馈错误信息,反之,若校验成功,则继续刷写升级固件;
进一步,具体地,在刷写升级固件步骤中,升级固件按照Flash最小擦除单位写入Flash内,若在设置的阈值内写入不成功,则停止升级,并向所述上位机反馈错误信息。
一种车辆控制器的升级系统,所述车辆控制器的升级系统包括:
上位机;
待升级控制器,与所述上位机通信连接,所述待升级控制器包括至少一个MCU,对每个所述MCU升级时采用如上所述的车辆控制器的升级方法。
一种计算机设备,包括:
处理器;
存储器,用于存储可执行指令;
其中,所述处理器用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现如上所述的车辆控制器的升级方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现如上所述的车辆控制器的升级方法。
一种车辆,采用如上所述的车辆控制器的升级系统。
本发明的有益效果是:
1、当新的升级程序在升级过程中出现故障等异常时,通过在Boot引导程序设置的第一分区和第二分区,能保证控制器不会崩溃,即使升级失败,也能返回当前的程序;
2、通过使用校验技术,最大限度的保障传输数据的正确性,降低软件升级过程中产生的安全隐患的概率,提高用户体验;
3、通过设置的第一分区和第二分区,当某次升级固件数据量增大超过预设分区大小时,本发明的升级方法依然可以适配硬件进行升级操作。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明实施例一的方法流程示意图。
图2是本发明实施例一Boot引导程序分区示意图。
图3是本发明实施例一的第二分区的固件升级示意图。
图4是本发明实施例一的步骤S4跳转伪代码部分示意图。
图5是本发明实施例二的系统结构示意图。
图6是本发明实施例三的硬件结构示意图。
图中10、计算机设备;1002、处理器;1004存储器;1006、传输装置;
20、上位机;
30、待升级控制器。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1:如图1所示,本申请实施例提供了一种车辆控制器的升级方法,包括:
S1:设备连接步骤,将待升级控制器30与上位机20建立通信连接。
在步骤S1中,若待升级控制器30配备的接口为CAN接口,待升级控制器30与上位机20之间通过USB转CAN调试器建立通信连接;若待升级控制器30配备的接口为以太网接口,待升级控制器30与上位机20之间通过USB转以太网适配器建立通信连接;在本实施例中,根据待升级控制器30配备的接口选择对应的程序烧录设备确保待升级控制器30与上位机20之间数据能够正常传输,进而保证控制器升级效率。程序烧录设备还可以是USB转UART/LIN等,优选USB转CAN调试器和USB转以太网适配器,抗干扰能力好。
S2:请求升级步骤,当待升级控制器30接收到上位机20传输的升级请求时,读取待升级控制器30当前应用层固件的版本信息,并向上位机20请求获取升级固件的版本信息,根据当前应用层固件的版本信息和升级固件的版本信息确定待升级控制器30是否进入升级操作。
在步骤S2中,根据当前应用层固件的版本信息和升级固件的版本信息确定待升级控制器30是否进入升级操作包括以下步骤:
若升级固件的版本信息低于等于当前应用层固件的版本信息,则直接跳转到应用层固件;若升级固件的版本信息高于当前应用层固件的版本信息,待升级控制器30进入升级操作,进入下一步骤。
在本实施例中,进入升级操作前,还会根据指定地址有无版本信息来决定是否进行升级操作,先将中断向量表映射到Boot引导程序,其次控制应用层固件跳转到Boot引导程序分区内对当前应用层固件的版本信息执行删除版本信息的函数指令,当删除完成后,则执行重启,重新启动后,再次对指定地址有无版本信息进行检测,若指定地址无版本信息,则进入升级操作;反之,则停止升级。Boot引导程序位于Flash的扇区0存储区内,版本信息的函数指令的地址定位于0x0003_8000。
在本实施例中,进入升级操作前,MCU还会进行串口、定时器以及看门狗的初始化工作,以提高控制器升级的可靠性。
S3:确定升级固件的分区步骤,如图2所示,将Boot引导程序的分区划分为Boot分区、USER DATA分区、第一分区以及第二分区;读取USER DATA分区内指定地址的“当前应用层固件执行分区标识符”,以确定当前应用层固件存储的分区;若当前应用层固件存储的分区为第一分区,则将升级固件存储在第二分区;若当前应用层固件存储的分区为第二分区,则将升级固件存储在第一分区。通过设置的第一分区和第二分区,控制器升级时,不会擦除当前应用层固件所在的分区的固件,而是在另一分区存储升级固件,防止在升级时因通信异常、意外断电、错误操作等意外的发生导致升级失败并不可恢复,若升级异常,当前应用层固件所在的分区的固件没有被擦除,控制器使用时,仍会跳转到当前应用层固件所在的分区,执行应用层固件,MCU能够正常使用,进而车辆也能够正常使用,有效解决因固件升级失败而造成MCU无法正常使用的问题,降低对固件升级过程中产生的安全隐患的概率;另外,还提高了MCU的使用寿命。
其中,Boot分区存放中断向量表等内容。
S4:固件升级步骤,从USER DATA分区读取执行应用层固件最后字节的地址,获取升级固件的分区地址,根据应用层固件最后字节的地址和升级固件的分区地址,采用前端或后端对其的方式对升级固件进行刷写。
若升级固件存储在第二分区,读取第二分区的最后字节的地址,从最后字节地址向前刷写升级固件;或者,若升级固件存储在第一分区,读取第一分区的首个字节地址,从首个字节地址向后刷写升级固件;在本实施例中,第一分区的内存与第二分区的内存为非固定大小,分区的大小随着升级固件的大小变化而变化。在本实施例中,升级固件会先在USE DATA分区内读取执行应用层固件最后字节的地址,同时获取分区升级固件的分区地址,根据应用层固件最后字节的地址和升级固件的分区地址计算出剩余FLASH的内存,当剩余FLASH的内存大于升级固件时,则根据升级固件大小计算出升级固件写入的首物理地址,根据获取的首物理地址对升级固件进行刷写另外,当升级固件存储在第二分区时,从最后字节地址向前刷写升级固件,或当升级固件存储在第一分区时,从首个字节地址向后刷写升级固件,使分区有足够多的内存实现对升级固件的刷写,换言之,当升级固件增大时,通过本实施例的车辆控制器的升级方法依然可以适配硬件进行升级操作,升级时更加的方便灵活。
在本实施例中,在刷写升级固件步骤中,还包括对升级固件进行校验,实时比对数据头、帧包号、数据长度以及数据区校验,若校验出错,则停止升级,并向上位机20反馈错误信息,反之,若校验成功,则继续刷写升级固件;最大程度的保证升级固件的完整性以及正确性,确保升级固件能够正确、完整的刷写。
在本实施例中,在刷写升级固件步骤中,升级固件按照Flash最小擦除单位写入Flash内,若在设置的阈值内写入不成功,则停止升级,并向上位机20反馈错误信息。按照Flash最小擦除单位写入Flash内,提高了写入速度,减少等待时间,稳定性好。
S5:更新步骤,当固件升级成功后,自动更新升级固件的版本信息为当前应用层固件的版本信息,并跳转到升级固件的分区,同时保存前一个版本的固件。
当升级固件完全写入至分区后,升级固件会将升级固件的版本信息写入USERDATA分区的最后字节的地址中;同时,新建一张升级固件对应的中断向量表,以保证Boot引导程序进行跳转后能正常执行,即固件升级成功后升级固件为当前应用层固件。
在本实施例中,建立两个跳转程序,分别为boot_jump,app_jump,boot_jump是从Boot引导程序中跳转到应用层固件中的指定地址;app_jump则是从应用层固件中跳转到Boot引导程序中的指定地址。如图4所示,为boot_jump和app_jump的跳转的伪代码,设0x0004_0000为应用层固件的首地址,跳转app_jump后,程序会重新跑一遍应用层固件的cstart.asm,由于在cstart.asm中会重新配置中断向量表的入口地址,所以无需另外配置中断向量表的入口地址。设0x0000_35000为删除版本信息函数所在地址,当从应用层固件中直接跳转至该函数顶端,并未重新配置中断向量表,所以在跳转前,对中断向量表的进行映射,将中断入口地址从0x0004_0200修改为0x0000_0200,以保证Boot引导程序进行跳转后应用层固件能正常执行。
S6:重启步骤,待升级控制器30升级成功后,向上位机20反馈“升级成功”信息,同时自动保存参数至USER DATA分区,待升级控制器30启动重启指令,以使得待升级控制器30升级成功。参数包括中断向量跳转入口信息、固件版本信息、升级相关的标志位等,以确保新的升级程序升级后能够正常运行。
需要说明的是,初次对待升级控制器30进行应用层固件刷写时,会将应用层固件默认保存在第一分区,且采用从前向后的方式(前端对其)刷写,当需要对控制器进行应用层固件的升级时,本实施例通过设置第二分区,且采用从后向前的方式(后端对其)刷写,一般情况下,升级固件的大小相对与当前固件会变大,本实施例能够应对升级的固件大小变化较大时,确保了控制器能够被升级成功。
本发明的一种车辆控制器的升级方法,当新的升级程序在升级过程中出现故障等异常时,通过在Boot引导程序设置的第一分区和第二分区,能保证控制器不会崩溃,即使升级失败,也能返回当前的程序;通过使用校验技术,最大限度的保障传输数据的正确性,降低软件升级过程中产生的安全隐患的概率,提高用户体验;通过设置的第一分区和第二分区,当某次升级固件数据量增大超过预设分区大小时,本发明的升级方法依然可以适配硬件进行升级操作。
实施例2:如图5所示,本申请实施例提供了一种车辆控制器的升级系统,车辆控制器的升级系统包括:
上位机20;
待升级控制器30,与上位机20通信连接,待升级控制器30包括至少一个MCU,对每个MCU升级时采用如上的车辆控制器的升级方法。
需要说明的是,上述实施例提供的系统,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的系统与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
实施例3:本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的一种车辆控制器的升级方法。
图6示出了一种用于实现本申请实施例所提供的一种车辆控制器的升级方法的设备的硬件结构示意图,设备可以参与构成或包含本申请实施例所提供的装置或系统。如图6所示,计算机设备10可以包括一个或多个处理器1002(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机设备10还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1004可用于存储应用软件的软件程序以及模块,如本申请实施例中的一种车辆控制器的升级方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机设备10的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1006可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机设备10(或移动设备)的用户界面进行交互。
实施例4:本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质可设置于服务器之中以保存用于实现方法实施例中一种车辆控制器的升级方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的一种车辆控制器的升级方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
实施例5:本发明实施例还提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施方式中提供的一种车辆控制器的升级方法。
实施例6:本发明实施例还提供了一种车辆,车辆包括如上的车辆控制器的升级系统。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

Claims (10)

1.一种车辆控制器的升级方法,其特征在于,包括:
S1:设备连接步骤,将待升级控制器(30)与上位机(20)建立通信连接;
S2:请求升级步骤,当所述待升级控制器(30)接收到所述上位机(20)传输的升级请求时,读取所述待升级控制器(30)当前应用层固件的版本信息,并向所述上位机(20)请求获取升级固件的版本信息,根据当前应用层固件的版本信息和升级固件的版本信息确定所述待升级控制器(30)是否进入升级操作;
S3:确定升级固件的分区步骤,将Boot引导程序的分区划分为Boot分区、USER DATA分区、第一分区以及第二分区;
读取所述USER DATA分区内指定地址的“当前应用层固件执行分区标识符”,以确定当前应用层固件存储的分区;
若当前应用层固件存储的分区为第一分区,则将升级固件存储在第二分区;
若当前应用层固件存储的分区为第二分区,则将升级固件存储在第一分区;
S4:固件升级步骤,从USER DATA分区读取执行应用层固件最后字节的地址,获取升级固件的分区地址,根据应用层固件最后字节的地址和升级固件的分区地址,采用前端或后端对其的方式对升级固件进行刷写;
S5:更新步骤,当固件升级成功后,自动更新升级固件的版本信息为当前应用层固件的版本信息,并跳转到升级固件的分区,同时保存前一个版本的固件;
S6:重启步骤,所述待升级控制器(30)升级成功后,向所述上位机(20)反馈“升级成功”信息,同时自动保存参数至USER DATA分区,所述待升级控制器(30)启动重启指令,以使得所述待升级控制器(30)升级成功。
2.如权利要求1所述的车辆控制器的升级方法,其特征在于,在步骤S1中,所述待升级控制器(30)与所述上位机(20)之间通过程序烧录设备建立通信连接。
3.如权利要求1所述的车辆控制器的升级方法,其特征在于,在步骤S2中,根据当前应用层固件的版本信息和升级固件的版本信息确定所述待升级控制器(30)是否进入升级操作包括以下步骤:
若升级固件的版本信息低于等于当前应用层固件的版本信息,则直接跳转到应用层固件,停止升级;
若升级固件的版本信息高于当前应用层固件的版本信息,所述待升级控制器(30)进入升级操作,进入下一步骤。
4.如权利要求1所述的车辆控制器的升级方法,其特征在于,所述步骤S4具体包括以下步骤:
若升级固件存储在第二分区,读取第二分区的最后字节的地址,从最后字节地址向前刷写升级固件;
或者,
若升级固件存储在第一分区,读取第一分区的首个字节地址,从首个字节地址向后刷写升级固件。
5.如权利要求4所述的车辆控制器的升级方法,其特征在于,在刷写升级固件步骤中,还包括对升级固件进行校验,实时比对数据头、帧包号、数据长度以及数据区校验,若校验出错,则停止升级,并向所述上位机(20)反馈错误信息,反之,若校验成功,则继续刷写升级固件。
6.如权利要求4所述的车辆控制器的升级方法,其特征在于,在刷写升级固件步骤中,升级固件按照Flash最小擦除单位写入Flash内,若在设置的阈值内写入不成功,则停止升级,并向所述上位机(20)反馈错误信息。
7.一种车辆控制器的升级系统,其特征在于,所述车辆控制器的升级系统包括:
上位机(20);
待升级控制器(30),与所述上位机(20)通信连接,所述待升级控制器(30)包括至少一个MCU,对每个所述MCU升级时采用如权利要求1至6中任一项所述的车辆控制器的升级方法。
8.一种计算机设备,其特征在于,包括:
处理器;
存储器,用于存储可执行指令;
其中,所述处理器用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现如权利要求1-6中任一项所述的车辆控制器的升级方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现如权利要求1-6中任一项所述的车辆控制器的升级方法。
10.一种车辆,其特征在于,采用如权利要求7所述的车辆控制器的升级系统。
CN202310457239.0A 2023-04-24 2023-04-24 车辆控制器的升级方法、系统、设备、介质及车辆 Pending CN116400943A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310457239.0A CN116400943A (zh) 2023-04-24 2023-04-24 车辆控制器的升级方法、系统、设备、介质及车辆

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310457239.0A CN116400943A (zh) 2023-04-24 2023-04-24 车辆控制器的升级方法、系统、设备、介质及车辆

Publications (1)

Publication Number Publication Date
CN116400943A true CN116400943A (zh) 2023-07-07

Family

ID=87016060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310457239.0A Pending CN116400943A (zh) 2023-04-24 2023-04-24 车辆控制器的升级方法、系统、设备、介质及车辆

Country Status (1)

Country Link
CN (1) CN116400943A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117850917A (zh) * 2024-01-10 2024-04-09 镁佳(武汉)科技有限公司 一种安全启动出厂部署方法及装置
CN117971283A (zh) * 2024-03-28 2024-05-03 深流微智能科技(深圳)有限公司 一种图形处理器的固件升级方法、终端设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117850917A (zh) * 2024-01-10 2024-04-09 镁佳(武汉)科技有限公司 一种安全启动出厂部署方法及装置
CN117971283A (zh) * 2024-03-28 2024-05-03 深流微智能科技(深圳)有限公司 一种图形处理器的固件升级方法、终端设备和存储介质

Similar Documents

Publication Publication Date Title
CN116400943A (zh) 车辆控制器的升级方法、系统、设备、介质及车辆
WO2022007656A1 (zh) Bootloader软件更新方法、装置、嵌入式控制器以及存储介质
CN108334331B (zh) 一种安全的电动汽车电池管理系统软件升级方法
CN112947977B (zh) 一种软件在线升级方法及系统
CN109002310A (zh) 固件升级方法
CN110908682B (zh) 一种车辆控制器的固件升级方法、系统、车辆和存储介质
CN103412561A (zh) 一种汽车控制器的刷新方法及装置
CN111813428A (zh) 终端固件的升级方法、装置、电子设备及存储介质
CN106598654B (zh) 一种在线更新PowerPC主板引导芯片的方法
CN114281394A (zh) 一种快速在线升级程序的方法、系统、设备及介质
CN108170457A (zh) 固件升级方法、装置及vr头戴式显示器
CN109901866A (zh) 用于多模块系统的在线升级方法及旋转导向系统
CN112631628A (zh) 单片机升级方法、单片机、存储介质
CN114153485B (zh) 基于高速口的多处理器程序升级方法及装置
CN113703803A (zh) 基于fpga的远程升级系统、方法及介质
CN117687664A (zh) 一种dsp的在线升级配置方法及装置
CN111159090B (zh) 一种信息处理方法、装置和电子设备
CN113127264A (zh) 数据存储装置修复方法
CN111078255B (zh) 一种软件升级方法和软件升级系统
CN111414182B (zh) 一种基于spi的fpga远程升级方法
CN116560688B (zh) 用于域控制器的软件更新方法
CN116700765A (zh) 伺服驱动器的固件升级方法及装置、伺服驱动器
CN106445592A (zh) 一种基于wifi与can总线远程多机程序升级方法
CN110457058A (zh) 控制节点在线升级方法、装置、上位机、系统及电子设备
US11586504B2 (en) Electronic apparatus and boot method thereof

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