CN110908690B - 一种基于can总线的多个bmu应用程序在线升级方法 - Google Patents

一种基于can总线的多个bmu应用程序在线升级方法 Download PDF

Info

Publication number
CN110908690B
CN110908690B CN201911199356.1A CN201911199356A CN110908690B CN 110908690 B CN110908690 B CN 110908690B CN 201911199356 A CN201911199356 A CN 201911199356A CN 110908690 B CN110908690 B CN 110908690B
Authority
CN
China
Prior art keywords
bmu
node
app
version information
command
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
Application number
CN201911199356.1A
Other languages
English (en)
Other versions
CN110908690A (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.)
Southeast University
Nanjing SAC Automation Co Ltd
Original Assignee
Southeast University
Nanjing SAC Automation 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 Southeast University, Nanjing SAC Automation Co Ltd filed Critical Southeast University
Priority to CN201911199356.1A priority Critical patent/CN110908690B/zh
Publication of CN110908690A publication Critical patent/CN110908690A/zh
Application granted granted Critical
Publication of CN110908690B publication Critical patent/CN110908690B/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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

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

Abstract

本发明公开了一种基于CAN总线的多个BMU应用程序在线升级方法。该方法为:PC机通过USB‑CAN转换器向CAN组网广播查询命令,提取节点BMU当前App的版本信息并与PC机中的升级App版本信息对比,选中版本信息不一致的BMU发送地址跳转指令,对应的节点BMU从App模式跳转到BootLoader模式,跳转成功以后进入CAN循环等待模式;PC机向该节点BMU发送程序下载命令并与节点BMU建立连接、向节点BMU发送升级App数据包,节点BMU将接收的升级App代码存固化在当前App代码占用的FALSH地址内,覆盖当前App代码、复位重启、进行系统初始化、执行BootLoader程序、进入CAN循环等待,等待期间未收到PC机命令,BMU将FALSH内的当前App加载到RAM中,并跳转到当前App入口开始执行当前App。本发明避免了对现场设备的拆卸和升级失败造成事故。

Description

一种基于CAN总线的多个BMU应用程序在线升级方法
技术领域:
本发明涉及储能电站电池管理系统领域,具体涉及一种基于CAN总线的多个BMU应用程序在线升级方法。
背景技术:
BMU,即分布式电池组管理模块,作为储能电站电池管理系统的最基本单元,在安装完成以后,BMU固定于电池插箱内,要更新其运行程序,一般需到现场利用BMU上的调试接口(JTAG、BDM等),工作量大且维护困难。
储能电站电池管理系统走线较多,且内部含有高压电池组,到现场对BMU程序升级,具有一定风险,一般建议通过远程通信对BMU的程序进行在线升级。目前,多数厂家会预先在BMU中固化BootLoader程序,BMU在上电运行App前会预先运行BootLoader,以决定是否更新运行程序,用户可通过串口向BMU下载应用程序代码。当电池管理系统中具有多个BMU或者BMU的拆卸不方便时,通过串口对系统中的BMU程序进行升级,需要逐个对BMU的App进行升级,花费大量人力。
发明内容
本发明提出一种基于CAN总线的多个BMU应用程序在线升级方法。可避免到现场插拔串口及拆卸设备外壳引起的不便,同时,可避免程序升级成功的BMU重复升级。
上述的目的通过以下技术方案实现:
一种基于CAN总线的多个BMU应用程序在线升级方法,该方法包括如下步骤:
S1:CAN组网内的各个节点BMU通过其上的拨码开关设置ID,该ID为唯一编码,预先存储在节点BMU寄存器内,PC机通过USB-CAN转换器向CAN组网广播查询命令,CAN组网内的各个节点BMU返回各自在电池簇内的ID;
S2:PC机通过各节点BMU的ID选择相应的节点BMU,选定前提取节点BMU当前App的版本信息并与PC机中的升级App版本信息对比,选中版本信息不一致的节点BMU,针对App版本一致的节点BMU即认为其当前App已经是最新版本,无需重复升级;
S3:PC机向选中的版本信息不一致的节点BMU发送地址跳转指令,对应的节点BMU从App模式跳转到BootLoader模式,跳转成功以后,对应的节点BMU向PC机返回成功跳转应答并进入CAN循环等待模式;
S4:PC机收到步骤S3中选中节点BMU的成功跳转应答以后,向该节点BMU发送程序下载命令,该节点BMU收到命令以后向PC机发送握手请求,PC机回复节点BMU的握手请求,与节点BMU建立连接;若节点BMU与PC机握手失败,节点BMU进入CAN循环等待模式,若在CAN循环等待期间未收到升级命令,跳转到当前App入口,运行当前App;
S5: PC机与节点BMU建立连接以后,向该节点BMU发送升级App数据包,FALSH内的App区分为:默认App区和当前App区,节点BMU将接收的App代码固化在当前App的FALSH地址内,覆盖当前的App;
S6:节点BMU接收完升级App数据包以后,向PC机返回确认信息,然后复位重启,进行系统初始化,执行BootLoader程序,进入CAN循环等待;等待期间未收到PC机命令,BMU将FALSH内的当前App加载到RAM中,并跳转到当前App入口开始执行当前App,如果升级失败,则该节点BMU跳转到默认App区入口,运行默认App。
有益效果:
本发明可通过CAN总线实现对组网内的多个BMU应用程序在线升级,同时,可避免对已经升级完程序的节点BMU进行重复升级,且在节点BMU程序升级失败时可运行默认App,避免了对现场设备的拆卸,提高了储能电站程序升级效率和管控水品。
附图说明
图1是本发明的方法流程图。
图2是CAN组网的多个节点BMU网络拓扑。
图3是FALSH内Bootloader程序、默认App区和当前App区存储结构示意图。
图4是节点BMU程序升级成功复位重启以后的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。
为了更好的说明本文方案,下面通过具体实例并结合附图,说明本发明的具体实施方式:
本发明涉及的系统包括装有升级所需软件的PC机、USB-CAN转换器和电池管理单元(BMU),BMU通过CAN总线和上层单元组网,PC机通过USB-CAN转换器接入CAN总线,具体步骤如下:
S1:PC机通过USB-CAN转换器向CAN组网广播查询命令,CAN组网内的各个BMU返回各自在电池簇内的ID;ID可通过BMU上的6位拨码开关设置,该ID为唯一编码,预先存储在BMU寄存器内,占一个字节的存储空间,拨码开关接VCC为0,接GND为1,如第10个电池管理单元的序号可通过拨码开关设置为00001010(高位补0),6位拨码开关最多可为26个电池管理单元分配序号;
S2:PC机通过ID选择相应的节点BMU,选定前提取节点BMU当前App的版本信息并与PC机中的升级App数据包版本信息对比,各个节点BMU的版本信息被存储在FALSH内,占一个字节的存储空间,PC机仅选中版本信息不一致的节点BMU;
S201:进一步,针对App版本信息一致的节点BMU即认为其App已经是最新版本,无需升级,避免对已经升级程序的节点BMU进行重复升级;
S3:PC机向选中的节点BMU发送地址跳转指令,对应的节点BMU从App模式跳转到BootLoader模式,跳转成功以后,对应的节点BMU向PC返回成功跳转应答,节点BMU进入CAN循环等待模式;
S4:PC收到节点BMU的成功跳转应答以后,向节点BMU发送升级App数据包下载命令,节点BMU收到命令以后向PC机发送握手请求,PC机回复握手请求,与节点BMU建立连接;
S401:进一步,若在CAN循环等待期间,节点BMU未收到PC机的命令,则认为PC机未下发升级App数据包命令,循环结束即跳转到当前App程序入口,执行当前App;
S5:PC机与节点BMU建立连接以后,向节点BMU发送升级App数据包,升级数据包是bin文件或hex文件;FALSH内存分为BootLoader存储区、默认App存储区及当前App存储区,节点BMU将接收的升级App数据包覆盖当前App;BootLoader最主要的功能是完全对App数据的擦除和重写操作,BootLoader程序需存储在的FALSH地址内;
S6:节点BMU接收完升级App数据包以后,复位重启,进行系统初始化,执行BootLoader程序,进入CAN循环等待模式;若等待期间未收到PC机命令,节点BMU将FALSH内的当前App加载到RAM中,并跳转到当前App入口开始执行当前App;
S7:进一步,在系统升级过程中出现升级数据包丢失、连接中断等情况导致升级失败,节点BMU跳转到默认App区入口,运行默认App,避免升级失败导致节点BMU无法正常启动运。
以上描述显示了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (6)

1.一种基于CAN总线的多个BMU应用程序在线升级方法,其特征在于,该方法包括如下步骤:
S1:PC机通过USB-CAN转换器向CAN组网广播查询命令,CAN组网内的各个节点BMU返回各自在电池簇内的ID;
S2:PC机通过ID选择CAN组网内相应的节点BMU,提取节点BMU当前App的版本信息并与PC机中的升级App版本信息对比,选中版本信息不一致的BMU;
S3:PC机向选中的节点BMU发送地址跳转指令,对应的节点BMU从App模式跳转到BootLoader模式,跳转成功以后,对应的节点BMU向PC机返回成功跳转应答,节点BMU进入CAN循环等待模式;
S4:PC机收到节点BMU的成功跳转应答以后,向节点BMU发送程序下载命令,节点BMU收到命令以后向PC发送握手命令,PC机回复握手命令,与节点BMU建立连接;
S5:PC机与节点BMU建立连接以后,向节点BMU发送升级App数据包,节点BMU将接收的升级App代码固化在当前App代码占用的FALSH地址内,覆盖当前App代码;
S6:节点BMU接收完升级App数据包以后,复位重启,进行系统初始化,执行BootLoader程序,进入CAN循环等待,等待期间未收到PC机命令,BMU将FALSH内的当前App加载到RAM中,并跳转到当前App入口开始执行当前App。
2.如权利要求1所述的基于CAN总线的多个BMU应用程序在线升级方法,其特征在于,S1中所述CAN组网内各个节点BMU的ID通过各自节点BMU上的6位拨码开关设置。
3.如权利要求1所述的基于CAN总线多个BMU应用程序在线升级方法,其特征在于,S2中节点BMU当前App的版本信息与PC机中的升级App版本一致时,不选择对应的节点BMU。
4.如权利要求书1所述的基于CAN总线的多个BMU应用程序在线升级方法,其特征在于,S3中节点BMU进入CAN循环等待模式,若在循环周期内未收到命令,跳转到默认App入口执行默认App。
5.如权利要求书1所述的基于CAN总线的对个BMU应用程序在线升级方法,其特征在于,S4中若节点BMU与PC机握手失败,节点BMU进入循环等待模式。
6.如权利要求书1所述的基于CAN总线的多个BMU应用程序在线升级方法,其特征在于,S6中BootLoader程序区和App区均存放在FLASH内,且App区分为:默认App区和当前App区。
CN201911199356.1A 2019-11-29 2019-11-29 一种基于can总线的多个bmu应用程序在线升级方法 Active CN110908690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911199356.1A CN110908690B (zh) 2019-11-29 2019-11-29 一种基于can总线的多个bmu应用程序在线升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911199356.1A CN110908690B (zh) 2019-11-29 2019-11-29 一种基于can总线的多个bmu应用程序在线升级方法

Publications (2)

Publication Number Publication Date
CN110908690A CN110908690A (zh) 2020-03-24
CN110908690B true CN110908690B (zh) 2022-11-22

Family

ID=69820540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911199356.1A Active CN110908690B (zh) 2019-11-29 2019-11-29 一种基于can总线的多个bmu应用程序在线升级方法

Country Status (1)

Country Link
CN (1) CN110908690B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671577B (zh) * 2020-12-23 2023-04-18 潍柴动力股份有限公司 终端设备的升级方法、装置、网络节点及计算机存储介质
CN112732311B (zh) * 2020-12-28 2024-05-03 上海瑞浦青创新能源有限公司 一种大型储能系统bms程序热更新方法、系统及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019788A (zh) * 2012-12-14 2013-04-03 上海邮政科学研究院 一种基于can总线的远程在线升级方法
CN108628624A (zh) * 2018-04-08 2018-10-09 华南理工大学 一种基于can总线的多节点单片机在线更新代码的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019788A (zh) * 2012-12-14 2013-04-03 上海邮政科学研究院 一种基于can总线的远程在线升级方法
CN108628624A (zh) * 2018-04-08 2018-10-09 华南理工大学 一种基于can总线的多节点单片机在线更新代码的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种改良安全机制的嵌入式远程升级系统的研究;邓力等;《电子测量技术》;20170815(第08期);全文 *
基于CAN总线节点的远程在线升级系统设计;王建斌等;《单片机与嵌入式系统应用》;20150701(第07期);全文 *

Also Published As

Publication number Publication date
CN110908690A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
CN104090796B (zh) 一种嵌入式设备程序更新方法和系统
CN106095480B (zh) 一种光模块固件升级的方法及装置
CN104102518B (zh) 一种双cpu系统及其程序升级方法
CN103176824B (zh) 一种系统升级的方法及装置
CN110908690B (zh) 一种基于can总线的多个bmu应用程序在线升级方法
CN103077058B (zh) 一种安装应用程序的方法及装置
CN103186404B (zh) 系统固件更新方法与使用该方法的服务器系统
CN103761088A (zh) 一种适用于arm架构移动设备的多操作系统切换方法
CN103793238A (zh) 机柜与其同时更新多个基本输入输出系统的方法
US20120117557A1 (en) Method and system for upgrading wireless data card
CN101860545A (zh) 一种实现设备自动配置的系统及方法
JP2004229266A (ja) 家電ネットワークシステム、家電ネットワーク用アダプタ、インデックスサーバー、家電ネットワーク接続方法、家電ネットワーク用アダプタ制御方法、インデックスサーバーの動作方法
CN103580908A (zh) 服务器的配置方法及系统
CN104750515A (zh) 固件版本升级的方法及系统
CN102665196A (zh) 一种无线传感器网络的在线渐进式程序更新方法
CN103106083B (zh) 一种固件的加载方法及装置
CN112910714A (zh) 具有主从机结构的物联网终端设备的远程固件升级方法
CN103605536A (zh) 一种嵌入式操作系统的启动方法、装置及基板管理控制器
CN103490929B (zh) 一种服务器多适应性固件制作和实施方法
CN107656751A (zh) 用户程序升级方法及装置
CN110362323B (zh) 基于分布式自组网的嵌入式终端设备程序更新方法
CN103092659A (zh) 脱离仿真器支持环境的dsp软件升级系统及其升级方法
CN102402444A (zh) 一种软件远程升级的方法
CN105183580A (zh) 一种引导程序的存储方法、故障恢复方法及设备
CN113360175A (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