CN116521201B - 电池包的软件升级方法和电池包 - Google Patents
电池包的软件升级方法和电池包 Download PDFInfo
- Publication number
- CN116521201B CN116521201B CN202310464550.8A CN202310464550A CN116521201B CN 116521201 B CN116521201 B CN 116521201B CN 202310464550 A CN202310464550 A CN 202310464550A CN 116521201 B CN116521201 B CN 116521201B
- Authority
- CN
- China
- Prior art keywords
- program
- storage area
- upgrading
- application program
- mcu
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000012544 monitoring process Methods 0.000 claims abstract description 125
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 8
- 230000005856 abnormality Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 230000005611 electricity Effects 0.000 description 4
- 230000009191 jumping Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- WHXSMMKQMYFTQS-UHFFFAOYSA-N Lithium Chemical compound [Li] WHXSMMKQMYFTQS-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910052744 lithium Inorganic materials 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/425—Structural combination with electronic components, e.g. electronic circuits integrated to the outside of the casing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/48—Accumulators combined with arrangements for measuring, testing or indicating the condition of cells, e.g. the level or density of the electrolyte
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/425—Structural combination with electronic components, e.g. electronic circuits integrated to the outside of the casing
- H01M2010/4271—Battery management systems including electronic circuits, e.g. control of current or voltage to keep battery in healthy state, cell balancing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02E60/10—Energy storage using batteries
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Electrochemistry (AREA)
- General Chemical & Material Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种电池包的软件升级方法和电池包。该方法包括:确定是否需要对电池包的软件进行强制升级;若是,则将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中;由所述程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期;根据所述MCU监控电路的监控结果确定升级结果。本发明通过在电池包BMS的MCU外部设置MCU监控电路,实现在对BMS进行软件升级过程中根据监控结果确定升级结果,进而根据升级结果实现电池包的持续使用,解决了在升级过程中失败导致的电池包无法使用的问题,提高了软件升级的可靠性。
Description
技术领域
本发明涉及软件升级技术领域,尤其涉及一种电池包的软件升级方法和电池包。
背景技术
锂电池包里面的电池管理系统(Battery Management Systerm,BMS)需要在电池包的电压、电流或温度异常的时候,对电池包做出相应的保护,因此BMS需要在电池包的整个生命周期内都能够稳定的运行。由于电池包的使用周期长,因此需要根据实际需求对BMS的软件程序进行迭代升级,以保证对电池包保护的有效性。
由于电池包的BMS在软件升级过程中耗费时间长,并且按照现有软件升级技术中,如果出现软件升级失败则会导致电池包失效,因此会影响用户对电池包的使用体验感。
发明内容
本发明提供了一种电池包的软件升级方法和电池包,以避免在复杂场景中对电池包的BMS进行软件升级时出现升级失败的问题,提高软件升级过程中的可靠性。
根据本发明的一方面,提供了一种电池包的软件升级方法,由电池包BMS的MCU执行,所述MCU的内部存储区域划分为程序启动区域、当前应用程序存储区域、备份应用程序存储区域和参数存储区域,包括:
确定是否需要对电池包的软件进行强制升级;
若是,则将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中;
由所述程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期;
根据所述MCU监控电路的监控结果确定升级结果。
根据本发明的另一方面,提供了一种电池包管理系统,其特征在于,包括存储模块、控制模块和程序运行状态监控模块,所述存储模块的存储区域被划分为程序启动区域、当前应用程序存储区域,备份应用程序存储区域和参数存储区域,所述控制模块用于确定是否需要对电池包的软件进行强制升级;用于若需要强制升级,则将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中;用于控制所述程序启动区域中的启动程序配置所述程序运行状态监控模块的监控周期;以及用于根据所述程序运行状态监控模块的监控结果确定升级结果。
根据本发明的另一方面,提供了一种电池包,其特征在于,所述电池包包括:
至少一个MCU;以及
与所述至少一个MCU连接的存储器;其中,
所述存储器存储有可被所述至少一个MCU执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个MCU能够执行本发明任一实施例所述的电池包的软件升级方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的电池包的软件升级方法。
本发明实施例的技术方案,通过在电池包BMS的MCU外部设置MCU监控电路,实现在对BMS进行软件升级过程中根据监控结果确定升级结果,进而根据升级结果实现电池包的持续使用,解决了在升级过程中失败导致的电池包无法使用的问题,提高了软件升级过程中的可靠性。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
图1是根据本发明实施例一提供的一种电池包的软件升级方法的流程图;
图2是根据本发明实施例二提供的另一种电池包的软件升级方法的流程图;
图3是本发明实施例二中的程序更新流程的示意图;
图4是本发明实施例二中的程序传输流程的示意图;
图5是本发明实施例二的程序跳转步流程的示意图;
图6为本发明实施例三提供的一种电池包管理系统的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。应当进一步理解,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。再者,本文中使用的术语“或”、“和/或”、“包括以下至少一个”等可被解释为包括性的,或意味着任一个或任何组合。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种参数或模块,但这些参数或模块不应限于这些术语。这些术语仅用来将同一类型的参数或模块彼此区分开。例如,在不脱离本文范围的情况下,第一参数也可以被称为第二参数,类似地,第二参数也可以被称为第一参数。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应该理解,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请的权利范围。
实施例一
图1为本发明实施例一提供了一种电池包的软件升级方法的流程图,本实施例可适用于对电池包的BMS进行软件升级的情况。
本实施例由电池包BMS的MCU(Microcontroller Unit,微控制单元)执行,MCU的内部存储区域划分为程序启动区域、当前应用程序存储区域、备份应用程序存储区域和参数存储区域。
MCU的内部存储区域可以是MCU的内部FLASH,对内部存储区域进行分块划分,分别为程序启动区域、当前应用程序存储区域、备份应用程序存储区域和参数存储区域。其中,程序启动区域用于存储BMS中MUC运行的程序信息,如BootLoader程序。当前应用程序存储区域用于存储当前电池包的运行应用程序信息。备份应用程序存储区域用于存储电池包的备份应用程序,备份应用程序可以是上一版本的应用程序,或待升级的应用程序。参数存储区域用于存储软件运行过程中所需使用的参数信息,例如电池包的硬件信息以及运行软件的软件版本信息等。可选的,各个区域所占MCU内存大小可以根据实际使用情况进行划分,在此不作限制。
具体的,MCU在运行时首先运行程序启动区域中的BootLoader程序,然后跳转到当前应用程序存储区域中的当前应用程序信息进行执行。示例性的,在电池包出厂第一次烧录完成后,会对内部FLASH的BootLoader区域进行整个生命周期的写保护,确保任何情况下BootLoader都是可以正常运行的。
如图1所示,该方法包括:
S110、确定是否需要对电池包的软件进行强制升级。
若接收到强制升级指令或者待升级应用程序传输完成,则确定需要对电池包的软件进行强制升级。示例性的,可以选择在MCU重启时发送强制升级指令,保证应用程序在重启后升级成功,同时也可以避免用户在急需用电时被动升级程序而影响用户的用电需求。
具体的,为避免在对电池包的软件进行升级时影响电池包的正常使用,以及让用户等待较长的待升级应用程序的传输时间,本实施例中在电池包正常使用时可以先进行传输待升级应用程序,待升级应用程序传输完成后,选择合适的时机(如电池包重启时)进行对电池包的强制升级。或者,当接收到用户的强制升级指令后,也需要对电池包的软件进行强制升级。
在一个可行的实施例中,参数存储区域包括程序升级标志,程序升级标志包括待传输标志、强制升级标志、升级跳转中标志和升级完成标志;
相应的,所述步骤S110、确定是否需要对电池包的软件进行强制升级,包括:
确定参数存储区域中的程序升级标志是否为强制升级标志;
具体的,参数存储区域中的参数包括程序升级标志,用于对电池包的当前软件升级状态进行表示,其中,待传输标志表示当前需要接收待升级应用程序,示例性的,电池包获取到发布新版本的应用程序信息后,将程序升级标志设置为待传输标志,等待接收新版本的待升级应用程序;强制升级标志表示当前新版本的待升级应用程序传输完成,即待升级应用程序已经存储在备份应用程序存储区域中,可以随时进行电池包的软件升级;升级跳转中标志表示当前在进行新版本的应用程序替换旧版本的应用程序以及运行新版本的应用程序的过程中;升级完成标志表示新版本的应用程序成功替换旧版本的应用程序,当前正在运行的即为新版本的应用程序。MCU通过获取程序升级标志可以明确电池包当前的软件升级状态,从而执行对应的控制步骤。
具体的,当程序升级标志为强制升级标志时,表示当前需要对电池包的软件进行强制升级。示例性的,电池包在正常工作的时候,就能够接收需要升级的应用程序的数据包,在待升级程序传输完成后,在电池包空闲时将程序升级标志修改为强制升级标志,进而实现在电池包空闲的时候进行程序升级,进而能大幅提升用户的体验感,让用户一直正常用电,软件版本升级的过程不会影响到用户的正常用电。
S120、若是,则将备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中。
若确定需要对电池包的软件进行强制升级,表示当前待升级应用程序已经传输完成,存储在备份应用程序存储区域中,因此直接将备份应用程序存储区域中的待升级应用程序拷贝到当前应用程序存储区域中,以待对当前应用程序存储区域中的待升级应用程序进行运行启动。
可选的,若确定不需要对电池包的软件进行强制升级,则保持对当前应用程序存储区域中应用程序运行不变。
在一个可行的实施例中,备份应用程序存储区域中包括第一备份应用程序存储区域和第二备份应用程序存储区域;
相应的,所述步骤S120、若是,则将备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中,包括:
根据第一备份应用程序存储区域和第二备份应用程序存储区域中的程序信息确定目标备份应用程序存储区域;
将目标备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中。
由于在升级时需要对当前应用程序存储区域进行更新,因此为了保证在软件升级失败时可以进行版本回滚,将备份应用程序存储区域进行划分为第一备份应用程序存储区域和第二备份应用程序存储区域,实现不同版本的应用程序存储在不同备份应用程序存储区域中,保证软件运行的可靠性。
其中,程序信息可以是存储的应用程序的版本信息以及有效性。具体的,在进行升级前,确定第一备份应用程序存储区域和第二备份应用程序存储区域中存储应用程序的应用程序是否有效,若一个有效,另一个无效,则将存储有效应用程序的区域确定为目标备份应用程序存储区域。若两个区域均有效,则根据版本信息确定应用程序版本高的区域为目标备份应用程序存储区域。由于目标备份应用程序存储区域中存储的为版本更高的应用程序,因此将目标备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中,以待升级。
可选的,电池包在出厂时,第一备份应用程序存储区域和第二备份应用程序存储区域中的至少一个存储有出厂版本的应用程序备份,因此第一次进行软件升级如果出现失败,则仍然可以回滚至出厂版本的应用程序,保证了软件升级过程的可靠性。
S130、由程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期。
其中,MCU监控电路用于对程序启动区域的启动状态进行监控,MCU监控电路设置在MCU外部,可以避免因软件升级失败导致MCU重启后无法对程序启动状态继续监控的问题。示例性的,MCU监控电路可以是外置的看门狗电路等,在此并不作限制。
将备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域后,程序启动区域中的启动程序会进行对当前应用程序存储区域中的应用程序运行的过程,但是如果在升级过程中出现问题可能会导致当前应用程序存储区域中的应用程序无法正常运行,使得电池包司机。因此在此之前,启动程序需要配置监控电路的监控周期,该监控周期用于对应用程序的运行过程进行监控,即在监控周期内确定升级后的应用程序运行是否正常,如果在监控周期内应用程序运行出现故障,MCU监控电路会触发MCU重启,从而进行新的软件升级控制动作,避免软件升级失败后长时间的无反馈造成用户体验感差的问题。
在一个可行的实施例中,参数存储区域包括程序升级标志,程序升级标志包括待传输标志、强制升级标志、升级跳转中标志和升级完成标志;
相应的,在所述步骤S130、由程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期之前,该方法还包括:
将程序升级标志修改为升级跳转中标志。
具体的,将备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域后,则在下次程序启动区域中的启动程序运行时会自动运行当前应用程序存储区域中的应用程序,因此在配置监控周期前需要将程序升级标志修改为升级跳转中标志,表示当前处于软件版本的升级中。
S140、根据MCU监控电路的监控结果确定升级结果。
若在监控周期内检测到对当前应用程序存储区域中的应用程序初始化成功,则确定升级成功;否则确定升级失败。当前应用程序存储区域中的应用程序初始化成功表示最新版本的应用程序可以成功运行,则电池包可以运行在最新软件程序下。
在一个可行的实施例中,S140,包括:
若MCU监控电路在监控周期内接收到MCU的正常运行信号,则监控结果为升级成功;
否则,确定监控结果为升级失败。
具体的,程序启动区域中的启动程序运行当前应用程序存储区域中的应用程序运行成功后,则会发出MCU的正常运行信号。示例性的,当前应用程序存储区域中的应用程序在每个监控周期内运行正常时MCU会输出正常运行信号,由此MCU监控电路继续下一个监控周期的监控。如果在监控周期内运行出现错误,则表明本次软件升级可能出现了错误,MCU监控电路无法收到正常运行信号,因此MCU监控电路会输出重启信号给MCU的RST端,触发MCU重启。
在一个可行的实施例中,所述步骤S140、根据MCU监控电路的监控结果确定升级结果,包括:
若监控结果为升级成功,则将程序升级标志从升级跳转中标志修改为升级完成标志;或者,
若监控结果为升级失败,则由MCU监控电路触发MCU重启。
具体的,为了保证软件升级的可靠性,在升级成功后,对程序升级标志进行修改。在升级失败后,对MCU进行重启,以进行再一次的软件更新或者软件回滚,保证电池包的稳定运行。
在一个可行的实施例中,在触发MCU重启后,该方法还包括:
确定MCU重启原因,若MCU重启原因为MCU监控电路触发,则获取程序升级标志;
若程序升级标志为程序升级跳转中标志,则对目标备份应用程序存储区域和当前应用程序存储区域中的程序进行擦除,并确定另一备份应用程序存储区域中是否存储有备份程序;其中,另一备份应用程序存储区域为备份应用程序存储区域中除目标备份应用程序存储区域以外的存储区域;
若另一备份应用程序存储区域中存储有备份程序,则将另一备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中;
否则,将程序升级标志修改为待传输标志,等待接收新的升级程序包数据。
在MCU重启后,确定MCU重启原因,若是由MCU监控电路触发且程序升级标志为程序升级跳转中,则表示对当前应用程序存储区域中的程序初始化失败,且该初始化失败是由于应用程序升级所导致的,因此需要对当前应用程序存储区域以及拷贝的目标备用应用程序存储区域中的应用程序进行擦除。同时为了保证电池包软件运行的稳定性,将另一备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中,由于待升级软件的存储方法,另一备份应用程序存储区域中存储的是升级前应用程序,即重新将旧版本的应用程序拷贝到当前应用程序存储区域。因此将当前应用程序存储区域中的应用程序更新为另一备份应用程序存储区域中的应用程序,相当于在软件升级失败的情况下进行软件版本回滚,确保采用有效的应用程序进行控制,保证用户可以继续使用电池包。
若另一备份应用程序存储区域中未存储有备份程序,则将程序升级标志修改为待传输标志,等待接收新的升级程序包数据。示例性的,将所述程序升级标志修改为待传输标志后,等待上位机给BMS发送升级指令和传输新的待升级应用程序。
在一个可行的实施例中,在获取程序升级标志之后,该方法还包括:
若程序升级标志不是程序升级跳转中标志,则确定软件运行异常,并统计当前软件运行异常次数;
若当前软件运行异常次数小于阈值,则重新执行由程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期的操作;
若当前软件运行异常次数大于或等于阈值,则执行将另一备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中的操作。
具体的,若MCU重启原因为MCU监控电路触发,且程序升级标志不是程序升级跳转中,说明软件运行异常并非发生在对当前应用程序存储区域中的应用程序升级过程中,可能在执行过程前或执行过程后因一些异常情况导致的未接收到MCU的正常运行信号。因此这种情况下需要统计当前软件运行异常次数,即MCU重启原因为MCU监控电路触发,且程序升级标志不是程序升级跳转中这种原因导致的软件运行异常次数。
由于MCU重启原因为MCU监控电路触发,且程序升级标志不是程序升级跳转中这种原因导致的软件运行异常并不能说明当前应用程序存储区域中的应用程序异常,因此在当前软件运行异常次数小于阈值时,则重新对当前应用程序存储区域中的应用程序进行跳转执行,即重新执行由程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期的操作。在当前失败次数大于或等于阈值时,说明当前失败次数过多,此时说明当前应用程序存储区域中的应用程序异常,则执行将另一备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中的操作,并将当前应用程序存储区域和目标应用程序存储区域中的应用程序进行擦除,即进行软件回滚。
在一个可行的实施例中,在确定MCU重启原因之后,该方法还包括:
若MCU重启原因为MCU正常上电或软件重启,则获取程序升级标志;
若程序升级标志为强制升级标志,则根据备份应用程序存储区域中备份程序进行升级;
若程序升级标志为升级完成标志,则等待软件升级命令,以接收待升级程序包数据;
若程序升级标志为待传输标志,则接收待升级程序包数据,并将待升级程序包数据存储在备份应用程序存储区域中。
本实施方式中,在MCU重启后,确定MCU重启原因,若是MCU正常上电或软件重启,则表示是电池包正常重启,并非升级失败导致的重启,此时需要根据程序升级标志确定当前升级状态,进而根据当前升级状态确定下一步运行程序。
具体的,若程序升级标志为强制升级标志,则表示在重启前待升级应用程序传输完成,需要对电池包的软件进行强制升级。若程序升级标志为升级完成标志,则表示在重启前对软件升级完成,则此时只需等待发布下一次更新版本的应用程序后发出的软件升级命名即可,即等待接收更新版本的升级程序包数据。若程序升级标志为待传输标志,则表示当前有待升级应用程序等待传输接收,对待升级程序包数据进行接收,并将其存储在备份应用程序存储区域中。
通过判断MCU的重启原因以及程序升级标志可以对当前升级状态进行明确,以根据当前升级状态进行相应的升级动作,提高对电池包软件升级的准确性。
在一个可行的实施例中,该方法还包括:
响应于接收到软件升级命令,则根据软件升级命令中的待升级程序的版本信息确定是否符合电池包的硬件版本条件和软件版本条件;
若符合,将程序升级标志修改为待传输标志;
根据第一备份应用程序存储区域和第二备份应用程序存储区域中的备份程序的程序信息确定待传输备份应用程序存储区域;
接收包含序号和校验码的程序包数据,并判断序号是否符合序号规则,以及校验是否通过;
若序号符合序号规则,且校验通过,则将收到的程序包数据存储在待传输备份应用程序存储区域中,等待所有程序包传输完成后,将程序升级标志修改为强制升级标志。
具体的,软件升级命令是指上位机存在新版本的软件应用程序后向BMS发送的消息,即BMS在接收到上位机发送的软件升级命令后,表示上位机有待升级应用程序等待传输。示例性的,当电池包与手机进行蓝牙通信时,手机APP可以向电池包发送软件升级命令。在接收待升级应用程序之前,需要根据软件升级命令中的待升级程序的版本信息确定该待升级程序是否符合电池包的硬件版本条件和软件版本条件,以避免在不合适的硬件设备上进行升级程序导致电池包工作异常。示例性的,响应于接收到软件升级命令,根据第一备份应用程序存储区域和第二备份应用程序存储区域中的备份程序的程序信息,判断待升级程序的版本信息是否比当前备份区域的程序更新,如果不是则告诉上位机或者手机APP端或者其它升级工具,此时程序已经最新,不需要升级。进一步地,根据应用场景的不同,电池包可能会同时跟多个不同类型或者不同型号的硬件设备同时使用,因此在传输待升级应用程序之前,需要确认下该待升级程序是否符合该电池包的硬件版本条件,以避免在不合适的硬件设备上进行升级程序导致电池包工作异常。
若当前待升级程序的版本信息符合电池包的硬件版本条件和软件版本条件,则将程序升级标志修改为待传输标志,以表示当前正在进行待升级应用程序的传输。
在进行待升级应用程序的传输存储前,首先确定第一备份应用程序存储区域和第二备份应用程序存储区域中存储应用程序的程序信息,将存储的应用程序版本较低的区域确定为待传输备份应用程序存储区域,将传输过来的待升级应用程序存储在待传输备份应用程序存储区域中。示例性的,第一备份应用程序存储区域中的应用程序为版本V1.0,第二备份应用程序存储区域中的应用程序为版本V2.0,现在待升级应用程序为版本V3.0,则将待升级应用程序存储在第一备份应用程序存储区域中,若对版本V3.0升级失败,则仍可以根据第二备份应用程序存储区域中的应用程序进行版本回滚至版本V2.0。
可选的,待升级程序对应的程序包数据在传输时携带序号信息以及校验码信息,例如,在每个程序包数据的开头附带序号,末尾附带校验码,在序号连续且校验通过的条件下,将收到的程序包数据存储在待传输备份应用程序存储区域中,以避免程序数据在传输过程中出错。校验过程可以采用CRC32校验或MD5中的一种进行校验。
示例性的,上位机如手机APP端或者其它升级工具对待升级软件程序进行分包处理,然后在每包程序数据中加入序号和校验码,MCU接收到程序数据包后,判断当前包的校验是否通过以及当前数据包的序号是否连续,如果校验不通过或者序号不连续,则告诉上位机重新传输所需要序号的数据包的数据,如果校验通过并且序号连续,则回复正常,等待下一个的程序包数据的传输;直至所有程序包数据传输完成后,将程序升级标志修改为强制升级标志。
本实施例在电池包在正常工作的时候,就能够接收待升级应用程序的数据包,待升级应用程序接收完成后,在电池包空闲的时候再进行程序升级,进而能大幅提升用户的体验感,让用户一直正常用电,软件版本升级的过程不会影响到用户的正常用电。
在一个可行的实施例中,在将目标备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中之前,该方法还包括:
对目标备份应用程序存储区域中的备份程序进行校验;
相应的,在由程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期之前,方法还包括:
确定当前应用程序存储区域中的当前程序和目标备份应用程序存储区域中的备份程序的一致性比对结果。
为了保证升级成功的准确性,在所有数据包传输完成后,MCU会根据校验信息对接收到的程序文件进行校验,如果校验失败,则回复上位机传输失败,请求重新传输程序。并且在确定目标备份应用程序存储区域后,对目标备份应用程序存储区域中待拷贝的备份程序再次进行校验。校验成功则执行将目标备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中;若校验不成功,则对目标备份应用程序存储区域中的备份程序进行擦除。
在拷贝结束后,对比前应用程序存储区域中的当前程序和目标备份应用程序存储区域中的备份程序是否一致,以确保拷贝正确,进一步提高升级成功的概率。
上述实施例在数据传输环节,通过数据校验实现在数据传输出错后可以再次传输该包错误数据,既避免了数据传输错误,又最大化的节约传输时间,不需要对完整应用程序包进行再次传输。在传输完成和程序更新后,多次对需要升级的应用程序进行校验和对比,确保在当前应用程序区域的程序是完整正确的。在BootLoader加强了对程序版本的管控以及确定在重启后可以实现对程序的升级;在BootLoader跳转到当前应用程序的时候,加入了外部MCU监控电路确保跳转成功;并且整个管控过程都是自动的,在用户使用电池包的时候可传输程序数据,在用户长时间不使用电池包的时候再进行程序升级,大幅提升用户的体验感。
在一个可行的实施例中,MCU设置于电池系统中的主电池包的BMS中;所述电池系统中包括一个主电池包和至少一个从电池包;
相应的,在确定是否需要对电池包的软件进行强制升级之前,该方法还包括:
主电池包在接收到待升级程序包数据后,从至少一个从电池包中确定目标从电池包;
将待升级程序包数据发送至目标从电池包,并获取目标从电池包的升级结果;
若目标从电池包的升级结果为升级成功,则将待升级程序包数据发送至其它从电池包,并获取其它从电池包的升级结果;其中,其它从电池包为除目标从电池包以外的从电池包;当所有从电池包升级成功后,主电池包执行将备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中的操作;
若目标从电池包的升级结果为升级失败,则控制目标从电池包恢复上一版本的应用程序。
具体的,在由多个电池包串并联形成的电池系统中,从多个电池包中确定一个主电池包,其他电池包为从电池包。为了保证整个电池系统中软件升级的效率和准确性,主电池包先控制一个目标从电池包先进行软件升级,在目标从电池包软件升级成功的条件下再控制其他从电池包进行软件升级,在所有从电池包软件升级成功的条件下,主电池包在进行软件升级。
其中,目标从电池包可以是从电池包中没有工作电流持续时间最长的其中一个电池包。示例性的,主电池包或者上位机将长时间没有工作电流的某一个从机确定为目标从电池包,将待升级程序传输给该目标从电池包,并监控该目标从电池包的升级情况,如果该目标从电池包升级正常并且能够稳定运行一段时间,则再控制所有从电池包升级,当所有从电池包都能够正常工作一段时间之后,主电池包再开始进行自己升级,以确保待升级程序能够稳定运行以及整个电池系统中所有电池包的稳定升级。
本发明实施例的技术方案,通过在电池包BMS的MCU外部设置MCU监控电路,实现在对BMS进行软件升级过程中根据监控结果确定升级结果,进而根据升级结果实现电池包的持续使用,解决了在升级过程中失败导致的电池包无法使用的问题,提高了软件升级的可靠性。
实施例二
图2为本发明实施例二提供的一种电池包的软件升级方法的流程图,本实施例为电池包的软件升级方法的优选实施例。如图2所示,该方法包括:
在电池包中的MCU上电启动后,首先对电池包中的时钟、内部FLASH读写、串口、蓝牙以及CAN等进行初始化,初始化完成后确定MCU重启原因。
若MCU重启原因为由外部MCU监控电路触发导致,则确定程序升级标志是否为程序升级跳转中,若是,则说明上一次升级时程序跳转异常,则对目标备份应用程序存储区域和当前应用程序存储区域中的程序进行擦除,并确定另一备份应用程序存储区域中是否存储有备份程序;若另一备份应用程序存储区域中存储有备份程序,则在对该备份程序进行校验成功后,将另一备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中,执行程序更新流程;若该备份程序校验失败则对该备份程序进行擦除,并执行程序传输流程;若另一备份应用程序存储区域中不存储有备份程序,也执行程序传输流程。若MCU重启原因为由外部MCU监控电路触发导致,且程序升级标志不是程序升级跳转中,则确定升级失败,并统计当前升级失败次数;若当前升级失败次数小于阈值,则重新执行由程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期的操作;若当前升级失败次数大于或等于阈值,则执行将另一备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中的操作。
若MCU重启原因为MCU正常上电或软件重启,则获取程序升级标志和当前程序版本信息;判断程序升级标志是否为强制升级标志,若是则根据备份应用程序存储区域中备份程序进行升级,执行程序更新流程;若不是,则判断程序升级标志是否为升级完成标志,若是则等待软件升级命令,以接收待升级程序包数据;若不是,则判断程序升级标志是否为待传输标志,若是则执行程序传输流程,接收待升级程序包数据,并将待升级程序包数据存储在备份应用程序存储区域中;若程序升级标志不是待传输标志,则等待软件升级命令,以接收待升级程序包数据。若超过预设时间未接收到软件升级命令,则执行程序跳转步流程,即认为此次重启后仍按照当前应用程序存储区域中的当前版本进行运行,不进行软件升级;若在预设时间内接收到软件升级命令,则执行程序传输流程。
图3为本发明实施例二中的程序更新流程的示意图,包括:在进行升级前,确定第一备份应用程序存储区域和第二备份应用程序存储区域中存储应用程序的应用程序是否有效,若一个有效,另一个无效,则将存储有效应用程序的区域确定为目标备份应用程序存储区域。若两个区域均有效,则根据版本信息确定应用程序版本高的区域为目标备份应用程序存储区域。并对目标备份应用程序存储区域中的应用程序进行校验,若校验失败,则确定另一备份应用程序存储区域中是否存在备份程序,若存在,则对该备份程序的有效性进行验证,以及对该备份程序进行校验;若该备份程序校验失败,则执行程序传输流程。若目标备份应用程序存储区域中的应用程序校验成功,则将目标备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域中,为了保证应用程序的准确性,在进行应用程序跳转之前,确定拷贝应用程序是否一致,若一致,则执行程序跳转步流程。
图4为本发明实施例二中的程序传输流程的示意图;包括:响应于接收到软件升级命令,则根据软件升级命令中的待升级程序的版本信息确定是否符合电池包的硬件版本条件和软件版本条件;若符合,将程序升级标志修改为待传输标志;根据第一备份应用程序存储区域和第二备份应用程序存储区域中的备份程序的程序信息确定待传输备份应用程序存储区域;接收包含序号和校验的程序包数据,并判断序号是否符合序号规则,以及校验是否通过;若序号符合序号规则,且校验通过,则将收到的程序包数据存储在待传输备份应用程序存储区域中,等待所有程序包传输完成后,确定整个程序校验是否正确,若正确则等待MCU处于空闲状态或者直接接收到软件更新命令后将程序升级标志修改为强制升级标志,对软件进行升级。
图5为本发明实施例二的程序跳转步流程的示意图;包括:将备份应用程序存储区域中的备份程序拷贝到当前应用程序存储区域后,将程序升级标志修改为升级跳转中标志,设置外部MCU监控电路的喂狗周期,并启动MCU监控电路后,由程序启动区域中的启动程序进行当前应用程序存储区域中的应用程序的跳转。当前应用程序存储区域中的应用程序运行成功后会输出正常运行信号,在MCU监控电路的监控周期内,检测到了正常运行信号,则表示MCU正常运行,监控结果为升级成功,将程序升级标志修改为程序升级完成;若在监控周期内未接收到正常运行信号,则表示升级失败,MCU监控电路触发MCU重启。
本实施例为在实施例一基础上的优选实施方式,不构成对本发明保护范围的限制。
实施例三
图6为本发明实施例三提供的一种电池包管理系统的结构图,包括存储模块610、控制模块620和程序运行状态监控模块630,所述存储模块的存储区域被划分为程序启动区域、当前应用程序存储区域,备份应用程序存储区域和参数存储区域,所述程序运行状态监控模块630配置于所述控制模块620的外部,用于监控所述控制模块620的运行状态;所述控制模块用于确定是否需要对电池包的软件进行强制升级;用于若需要强制升级,则将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中;用于控制所述程序启动区域中的启动程序配置所述程序运行状态监控模块的监控周期;以及用于根据所述程序运行状态监控模块的监控结果确定升级结果。
可选的,所述参数存储区域包括程序升级标志,所述程序升级标志包括待传输标志、强制升级标志、升级跳转中标志和升级完成标志;
相应的,确定是否需要对电池包的软件进行强制升级,包括:
确定所述参数存储区域中的程序升级标志是否为强制升级标志;
相应的,在控制所述程序启动区域中的启动程序配置所述程序运行状态监控模块的监控周期之前,所述系统还包括:
将所述程序升级标志修改为升级跳转中标志。
可选的,根据所述程序运行状态监控模块的监控结果确定升级结果,包括:
若所述监控结果为升级成功,则将所述程序升级标志从升级跳转中标志修改为升级完成标志;或者
若所述监控结果为升级失败,则由所述程序运行状态监控模块触发MCU重启。
可选的,所述备份应用程序存储区域中包括第一备份应用程序存储区域和第二备份应用程序存储区域;
相应的,将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中,包括:
根据所述第一备份应用程序存储区域和第二备份应用程序存储区域中的程序信息确定目标备份应用程序存储区域;
将所述目标备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中。
可选的,在触发所述MCU重启后,所述系统还包括:
确定MCU重启原因,若所述MCU重启原因为所述程序运行状态监控模块触发,则获取所述程序升级标志;
若所述程序升级标志为程序升级跳转中标志,则对所述目标备份应用程序存储区域和所述当前应用程序存储区域中的程序进行擦除,并确定另一备份应用程序存储区域中是否存储有备份程序;其中,所述另一备份应用程序存储区域为所述备份应用程序存储区域中除目标备份应用程序存储区域以外的存储区域;
若所述另一备份应用程序存储区域中存储有备份程序,则将所述另一备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中;
否则,将所述程序升级标志修改为待传输标志,等待接收新的升级程序包数据。
可选的,在获取所述程序升级标志之后,所述系统还包括:
若所述程序升级标志不是程序升级跳转中标志,则确定软件运行异常,并统计当前软件运行异常次数;
若所述当前软件运行异常次数小于阈值,则重新执行控制所述程序启动区域中的启动程序配置所述程序运行状态监控模块的监控周期;
若所述当前软件运行异常次数大于或等于阈值,则执行将所述另一备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中的操作。
可选的,所述系统还包括:
响应于接收到软件升级命令,则根据软件升级命令中的待升级程序的版本信息确定是否符合所述电池包的硬件版本条件和软件版本条件;
若符合,将所述程序升级标志修改为待传输标志;
根据所述第一备份应用程序存储区域和第二备份应用程序存储区域中的备份程序的程序信息确定待传输备份应用程序存储区域;
接收包含序号和校验码的程序包数据,并判断所述序号是否符合序号规则,以及校验是否通过;
若所述序号符合序号规则,且校验通过,则将收到的程序包数据存储在所述待传输备份应用程序存储区域中,等待所有程序包传输完成后,将所述程序升级标志修改为强制升级标志。
可选的,在将所述目标备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中之前,所述系统还包括:
对所述目标备份应用程序存储区域中的备份程序进行校验;
相应的,在控制所述程序启动区域中的启动程序配置所述程序运行状态监控模块的监控周期之前,所述系统还包括:
确定所述当前应用程序存储区域中的当前程序和所述目标备份应用程序存储区域中的备份程序的一致性比对结果。
可选的,根据所述程序运行状态监控模块的监控结果确定升级结果,包括:
若所述程序运行状态监控模块在监控周期内接收到MCU的正常运行信号,则所述监控结果为升级成功;
否则,确定所述监控结果为升级失败。
可选的,在确定MCU重启原因之后,所述系统还包括:
若所述MCU重启原因为MCU正常上电或软件重启,则获取所述程序升级标志;
若所述程序升级标志为强制升级标志,则根据所述备份应用程序存储区域中备份程序进行升级;
若所述程序升级标志为升级完成标志,则等待软件升级命令,以接收待升级程序包数据;
若所述程序升级标志为待传输标志,则接收待升级程序包数据,并将所述待升级程序包数据存储在所述备份应用程序存储区域中。
可选的,所述MCU设置于电池系统中的主电池包中BMS中;所述电池系统中包括一个主电池包和至少一个从电池包;
相应的,在确定是否需要对电池包的软件进行强制升级之前,所述系统还包括:
所述主电池包在接收到待升级程序包数据后,从所述至少一个从电池包中确定目标从电池包;
将所述待升级程序包数据发送至所述目标从电池包,并获取所述目标从电池包的升级结果;
若所述目标从电池包的升级结果为升级成功,则将所述待升级程序包数据发送至其它从电池包,并获取所述其它从电池包的升级结果;其中,所述其它从电池包为除所述目标从电池包以外的从电池包;当所有从电池包升级成功后,主电池包执行所述将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中的操作;
若所述目标从电池包的升级结果为升级失败,则控制所述目标从电池包恢复上一版本的应用程序。
本发明实施例所提供的电池包管理系统可执行本发明任意实施例所提供的电池包的软件升级方法,具备执行方法相应的功能模块和有益效果。
本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定,且不违背公序良俗。
实施例四
根据本公开的实施例,本公开还提供了一种电池包、一种可读存储介质和一种计算机程序产品。
所述电池包包括:至少一个MCU;以及与所述至少一个MCU连接的存储器;其中,所述存储器存储有可被所述至少一个MCU执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个MCU能够执行上述实施例中所述的电池包的软件升级方法。
在一些实施例中,电池包的软件升级方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储器。在一些实施例中,计算机程序的部分或者全部可以经由存储器而被载入和/或安装到电池包上。当计算机程序加载到RAM并由MCU执行时,可以执行上文描述的方法电池包的软件升级的一个或多个步骤。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本申请技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
在本申请中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请技术方案的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本申请记载的范围。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得电池包执行本申请每个实施例的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (9)
1.一种电池包的软件升级方法,其特征在于,由电池包BMS的MCU执行,所述MCU的内部存储区域划分为程序启动区域、当前应用程序存储区域、备份应用程序存储区域和参数存储区域,所述方法包括:
确定是否需要对电池包的软件进行强制升级;
若是,则将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中;
由所述程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期,其中,所述MCU监控电路用于对程序启动区域的启动状态进行监控,所述监控周期用于对应用程序的运行过程进行监控,以确定升级后的所述应用程序运行是否正常;
根据所述MCU监控电路的监控结果确定升级结果;
其中,所述MCU设置于电池系统中的主电池包的BMS中;所述电池系统中包括一个主电池包和至少一个从电池包;
相应的,在确定是否需要对电池包的软件进行强制升级之前,所述方法还包括:
所述主电池包在接收到待升级程序包数据后,从所述至少一个从电池包中确定目标从电池包,其中,所述目标从电池包是所述至少一个从电池包中没有工作电流持续时间最长的一个电池包;
将所述待升级程序包数据发送至所述目标从电池包,并获取所述目标从电池包的升级结果;
若所述目标从电池包的升级结果为升级成功,则将所述待升级程序包数据发送至其它从电池包,并获取所述其它从电池包的升级结果;其中,所述其它从电池包为除所述目标从电池包以外的从电池包;当所有从电池包升级成功后,主电池包执行所述将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中的操作;
若所述目标从电池包的升级结果为升级失败,则控制所述目标从电池包恢复上一版本的应用程序;
其中,所述根据所述MCU监控电路的监控结果确定升级结果,包括:
若MCU监控电路在监控周期内接收到MCU的正常运行信号,则监控结果为升级成功;
否则,确定监控结果为升级失败。
2.根据权利要求1所述的方法,其特征在于,所述参数存储区域包括程序升级标志,所述程序升级标志包括待传输标志、强制升级标志、升级跳转中标志和升级完成标志;
相应的,确定是否需要对电池包的软件进行强制升级,包括:
确定所述参数存储区域中的程序升级标志是否为强制升级标志;
相应的,在由所述程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期之前,所述方法还包括:
将所述程序升级标志修改为升级跳转中标志。
3.根据权利要求2所述的方法,其特征在于,根据所述MCU监控电路的监控结果确定升级结果,还包括:
若所述监控结果为升级成功,则将所述程序升级标志从升级跳转中标志修改为升级完成标志;或者,
若所述监控结果为升级失败,则由所述MCU监控电路触发所述MCU重启。
4.根据权利要求3所述的方法,其特征在于,所述备份应用程序存储区域中包括第一备份应用程序存储区域和第二备份应用程序存储区域;
相应的,将所述备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中,包括:
根据所述第一备份应用程序存储区域和第二备份应用程序存储区域中的程序信息确定目标备份应用程序存储区域;
将所述目标备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中。
5.根据权利要求4所述的方法,其特征在于,在触发所述MCU重启后,所述方法还包括:
确定MCU重启原因,若所述MCU重启原因为所述MCU监控电路触发,则获取所述程序升级标志;
若所述程序升级标志为程序升级跳转中标志,则对所述目标备份应用程序存储区域和所述当前应用程序存储区域中的程序进行擦除,并确定另一备份应用程序存储区域中是否存储有备份程序;其中,所述另一备份应用程序存储区域为所述备份应用程序存储区域中除目标备份应用程序存储区域以外的存储区域;
若所述另一备份应用程序存储区域中存储有备份程序,则将所述另一备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中;
否则,将所述程序升级标志修改为待传输标志,等待接收新的升级程序包数据。
6.根据权利要求5所述的方法,其特征在于,在获取所述程序升级标志之后,所述方法还包括:
若所述程序升级标志不是程序升级跳转中标志,则确定软件运行异常,并统计当前软件运行异常次数;
若所述当前软件运行异常次数小于阈值,则重新执行由所述程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期的操作;
若所述当前软件运行异常次数大于或等于阈值,则执行将所述另一备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中的操作。
7.根据权利要求4-6中任一项所述的方法,其特征在于,所述方法还包括:
响应于接收到软件升级命令,则根据软件升级命令中的待升级程序的版本信息确定是否符合所述电池包的硬件版本条件和软件版本条件;
若符合,将所述程序升级标志修改为待传输标志;
根据所述第一备份应用程序存储区域和第二备份应用程序存储区域中的备份程序的程序信息确定待传输备份应用程序存储区域;
接收包含序号和校验码的程序包数据,并判断所述序号是否符合序号规则,以及校验是否通过;
若所述序号符合序号规则,且校验通过,则将收到的程序包数据存储在所述待传输备份应用程序存储区域中,等待所有程序包传输完成后,将所述程序升级标志修改为强制升级标志。
8.根据权利要求7所述的方法,其特征在于,在将所述目标备份应用程序存储区域中的备份程序拷贝到所述当前应用程序存储区域中之前,所述方法还包括:
对所述目标备份应用程序存储区域中的备份程序进行校验;
相应的,在由所述程序启动区域中的启动程序配置设置在MCU外部的MCU监控电路的监控周期之前,所述方法还包括:
确定所述当前应用程序存储区域中的当前程序和所述目标备份应用程序存储区域中的备份程序的一致性比对结果。
9.一种电池包,其特征在于,所述电池包包括:
至少一个MCU;以及
与所述至少一个MCU连接的存储器;其中,
所述存储器存储有可被所述至少一个MCU执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个MCU能够执行权利要求1-8中任一项所述的电池包的软件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310464550.8A CN116521201B (zh) | 2023-04-26 | 2023-04-26 | 电池包的软件升级方法和电池包 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310464550.8A CN116521201B (zh) | 2023-04-26 | 2023-04-26 | 电池包的软件升级方法和电池包 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116521201A CN116521201A (zh) | 2023-08-01 |
CN116521201B true CN116521201B (zh) | 2024-07-09 |
Family
ID=87397028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310464550.8A Active CN116521201B (zh) | 2023-04-26 | 2023-04-26 | 电池包的软件升级方法和电池包 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521201B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118363641B (zh) * | 2024-06-20 | 2024-08-30 | 深圳市智安新能源科技有限公司 | 电池设备的升级方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844312A (zh) * | 2017-11-06 | 2018-03-27 | 深圳市新国都技术股份有限公司 | 一种软件更新监控方法和系统 |
CN111142917A (zh) * | 2019-12-18 | 2020-05-12 | 广东美的厨房电器制造有限公司 | 一种家电多mcu系统在线升级方法、电子设备及介质 |
CN111641527A (zh) * | 2020-05-28 | 2020-09-08 | 四川爱创科技有限公司 | 一种嵌入式芯片软件远程升级备份方法 |
CN115756561A (zh) * | 2022-10-14 | 2023-03-07 | 广州汽车集团股份有限公司 | 软件升级方法、装置、计算机设备以及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1280724C (zh) * | 2002-06-21 | 2006-10-18 | 中兴通讯股份有限公司 | 一种软件在线升级的方法 |
CN108089943A (zh) * | 2016-11-21 | 2018-05-29 | 比亚迪股份有限公司 | 基于mcu系统的程序执行方法、装置和终端 |
KR20210031317A (ko) * | 2019-09-11 | 2021-03-19 | 주식회사 엘지화학 | 워치독 시스템, 워치독 방법, 및 워치독 시스템을 포함하는 배터리 관리 시스템 |
DE102020211540A1 (de) * | 2020-09-15 | 2022-03-17 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zur Absicherung eines Mikrocontrollers |
-
2023
- 2023-04-26 CN CN202310464550.8A patent/CN116521201B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844312A (zh) * | 2017-11-06 | 2018-03-27 | 深圳市新国都技术股份有限公司 | 一种软件更新监控方法和系统 |
CN111142917A (zh) * | 2019-12-18 | 2020-05-12 | 广东美的厨房电器制造有限公司 | 一种家电多mcu系统在线升级方法、电子设备及介质 |
CN111641527A (zh) * | 2020-05-28 | 2020-09-08 | 四川爱创科技有限公司 | 一种嵌入式芯片软件远程升级备份方法 |
CN115756561A (zh) * | 2022-10-14 | 2023-03-07 | 广州汽车集团股份有限公司 | 软件升级方法、装置、计算机设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116521201A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189445B (zh) | 一种物联网设备程序升级的方法 | |
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN110837388B (zh) | 机器人的软件升级方法、升级服务器、机器人及存储介质 | |
CN111104137B (zh) | 一种ota设备的升级方法及装置 | |
CN116521201B (zh) | 电池包的软件升级方法和电池包 | |
CN108449198A (zh) | 一种ota升级的方法、系统及存储设备 | |
CN103488501A (zh) | 光网络终端设备及其系统软件升级方法 | |
CN112631628A (zh) | 单片机升级方法、单片机、存储介质 | |
CN113656061A (zh) | 5g通信电源固件更新方法及更新装置 | |
CN112416411B (zh) | 升级方法及装置、设备端、服务器、计算机可读介质 | |
CN114237722B (zh) | 一种系统的启动方法、装置、设备及工程车辆 | |
CN115827046A (zh) | 实现spl分区ota升级的方法及装置、终端设备、芯片 | |
CN114064084A (zh) | Onu的升级管理方法、存储介质、电子装置和onu | |
CN115857998B (zh) | 基于zynq和fpga架构的升级方法、装置和介质 | |
CN117971265A (zh) | 雷达软件升级方法、装置、设备及可读存储介质 | |
CN116483409A (zh) | 一种远程固件更新的方法、系统、电子设备及存储介质 | |
CN116301995A (zh) | 基于bootloader架构的固件升级方法 | |
CN111338667B (zh) | 一种应用程序app的升级方法与升级装置 | |
CN115129349A (zh) | 电控固件的在线升级方法及装置、设备、介质 | |
CN110515642B (zh) | 一种应用程序升级方法及系统 | |
CN114518892A (zh) | 一种远程升级的方法及系统 | |
CN114741119A (zh) | 系统的启动方法、装置、计算机设备和存储介质 | |
CN116069372A (zh) | 控制器及其软件升级方法、装置、可读存储介质和电器 | |
CN112181454A (zh) | 一种无人值守设备的远程升级系统及方法 | |
CN114995845A (zh) | Ota升级方法和设备 |
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 |